.food-page{
  padding-bottom:8px;
}
.food-page .breadcrumb{
  margin-bottom:14px;
}
.food-hero{
  margin-bottom:20px;
}
.food-hero-main{
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(360px, .92fr);
  gap:22px;
  align-items:stretch;
}
.food-hero-summary{
  padding:28px 30px 24px;
  border:1px solid #ece7df;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 26px rgba(17,24,39,.05);
}
.food-title{
  margin:0 0 10px;
  color:#222;
  font-size:25px;
  line-height:1.35;
}
.school-detail-page .school-hero-head{
  display:flex;
  align-items:flex-start;
  gap:18px;
  margin-bottom:12px;
}
.school-detail-page .school-logo-card{
  flex:0 0 92px;
  width:92px;
  height:92px;
  border-radius:22px;
  background:#fff;
  border:1px solid #e8e2d8;
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.school-detail-page .school-logo-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.school-detail-page .school-hero-heading{
  min-width:0;
  flex:1 1 auto;
  padding-top:2px;
}
.school-detail-page .school-title{
  margin-bottom:8px;
}
.school-detail-page .school-meta-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}
.school-detail-page .school-meta-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid rgba(245,158,11,.45);
  background:linear-gradient(180deg,#fffaf2 0%,#fff3de 100%);
  color:#d97706;
  font-size:13px;
  font-weight:700;
  line-height:1;
  user-select:none;
  pointer-events:none;
}
.school-detail-page .school-location-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid #e6ddd0;
  background:#faf7f2;
  color:#6b7280;
  font-size:13px;
  line-height:1.4;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.food-rank-line{
  margin:0 0 12px;
}
.food-rank-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:3px 4px 3px 10px;
  border-radius:999px;
  background:linear-gradient(180deg,#fffdfa 0%,#fff7eb 100%);
  border:1px solid rgba(217,119,6,.16);
  box-shadow:0 6px 16px rgba(15,23,42,.05),inset 0 1px 0 rgba(255,255,255,.75);
  vertical-align:middle;
}
.food-rank-tag-label{
  position:relative;
  padding-left:10px;
  font-size:11.5px;
  color:#8a5618;
  font-weight:700;
  letter-spacing:.2px;
  white-space:nowrap;
}
.food-rank-tag-label::before{
  content:'';
  position:absolute;
  left:0;
  top:50%;
  width:5px;
  height:5px;
  margin-top:-2.5px;
  border-radius:50%;
  background:#d97706;
  box-shadow:0 0 0 4px rgba(217,119,6,.10);
}
.food-rank-tag-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  height:26px;
  padding:0 12px;
  border-radius:999px;
  background:linear-gradient(135deg,#8a5618 0%,#b56b1b 100%);
  color:#fff;
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.4px;
  box-shadow:0 8px 16px rgba(181,107,27,.18);
}
.scenic-detail-page .food-scenic-badge{
  display:inline-flex;
  align-items:stretch;
  overflow:hidden;
  border-radius:14px;
  border:1px solid rgba(13,110,74,.16);
  background:linear-gradient(135deg,#f5fbf7 0%,#edf8f1 100%);
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.scenic-detail-page .food-scenic-badge-level{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:68px;
  padding:0 16px;
  height:34px;
  background:linear-gradient(135deg,#1f8f5f 0%,#127a4c 100%);
  color:#fff;
  font-size:18px;
  font-weight:800;
  letter-spacing:.8px;
}
.scenic-detail-page .food-scenic-badge-text{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  color:#166534;
  font-size:12px;
  font-weight:700;
  letter-spacing:1.4px;
  white-space:nowrap;
}
.food-rating-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:10px;
  color:#666;
  font-size:14px;
}
.food-stars{
  font-size:15px;
  letter-spacing:1px;
  color:#d1d5db;
}
.food-stars span{
  color:#d1d5db;
}
.food-stars span.on{
  color:#ff8b37;
}
.food-score{
  color:#ff6b2d;
  font-size:18px;
  font-weight:800;
}
.food-review,
.food-price{
  color:#666;
}
.food-score-grid{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-bottom:12px;
  color:#444;
  font-size:14px;
}
.food-info-card{
  border-top:1px solid #f0ece5;
  border-bottom:1px solid #f0ece5;
}
.food-info-row{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:14px 0;
  border-bottom:1px solid #f5f1eb;
}
.food-info-row:last-child{
  border-bottom:0;
}
.food-info-label{
  flex:none;
  width:72px;
  color:#666;
  font-size:14px;
  line-height:1.7;
}
.food-info-value{
  min-width:0;
  flex:1 1 auto;
  color:#2f2f2f;
  font-size:14px;
  line-height:1.8;
}
.food-info-highlights{
  color:#965f1d;
}
.food-info-row-address .food-info-value{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.food-address-text{
  min-width:0;
  flex:1 1 auto;
}
.food-map-link{
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:80px;
  height:32px;
  padding:0 14px;
  border-radius:999px;
  background:#fff6f0;
  color:#f0672b;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
}
.food-map-link:hover{
  background:#ffe9db;
}
.food-info-note{
  margin-top:10px;
  padding:8px 12px;
  border-radius:12px;
  background:#f1f4f8;
  color:#7a8597;
  font-size:12px;
  line-height:1.7;
}
.food-hero-summary .tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:0;
  margin-bottom:12px;
}
.food-hero-summary .tags span{
  font-size:11.5px;
  background:#ecf7f1;
  color:#1f6b45;
  padding:4px 10px;
  border-radius:2px;
}
.food-hero-media{
  min-width:0;
}
.food-gallery .hero-gallery-main{
  border-radius:18px;
  aspect-ratio:4 / 3;
  background:#f4f1ec;
  box-shadow:0 12px 28px rgba(17,24,39,.08);
}
.food-gallery.is-empty .hero-gallery-main,
.food-gallery .hero-gallery-main.is-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #d9d8cf;
  background:#efefe8;
  box-shadow:none;
}
.food-gallery.is-empty .hero-gallery-main::after,
.food-gallery .hero-gallery-main.is-empty::after{
  display:none;
}
.hero-gallery-empty-text{
  padding:72px 24px 56px;
  font-family:var(--serif);
  font-size:clamp(28px,4.4vw,46px);
  font-weight:700;
  line-height:1.7;
  letter-spacing:2px;
  color:#5d7781;
  text-align:center;
  word-break:break-word;
}
.food-gallery .hero-gallery-thumbs{
  margin-top:12px;
  padding:8px;
  border-radius:16px;
}
.food-plate{
  border-radius:18px;
  background:linear-gradient(180deg,#fff8f1 0%,#f6ede3 100%);
  color:#8b5c2f;
  box-shadow:0 12px 28px rgba(17,24,39,.06);
}
.food-data-strip{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
  margin-bottom:22px;
}
.food-data-strip div{
  padding:16px 18px;
  border:1px solid #eee6db;
  border-radius:16px;
  background:#fff;
  color:#706152;
  font-size:13px;
  line-height:1.8;
}
.food-data-strip b{
  display:block;
  margin-bottom:4px;
  color:#2e251d;
  font-size:20px;
}
.food-body{
  align-items:start;
  gap:20px;
  margin-bottom:8px;
}
.food-article{
  padding:26px 28px 28px;
  border-radius:18px;
  background:#fff;
  border:1px solid #eee6db;
  box-shadow:0 10px 22px rgba(17,24,39,.04);
}
.food-article h2{
  margin:0 0 16px;
  color:#2e251d;
  font-size:22px;
}
.food-article h2 + p,
.food-article h2 + .entry-content{
  margin-top:0;
}
.food-article p{
  margin:0 0 12px;
  color:#56493b;
  line-height:1.95;
}
.food-article .entry-content{
  color:#56493b;
}
.food-article .entry-content > :first-child{
  margin-top:0;
}
.food-article .entry-content > :last-child{
  margin-bottom:0;
}
.food-factbox{
  margin:12px 0 20px;
  border-radius:16px;
  border:1px solid #f0e7dc;
  background:#fcfaf7;
  overflow:hidden;
}
.food-factbox div{
  border-bottom:1px solid #efe6dc;
}
.food-factbox div:last-child{
  border-bottom:0;
}
.food-sharebar{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #f2e9de;
}
.food-sidebar{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.food-sidebar .side-box-hot,
.food-side-box{
  border:1px solid #eee6db;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 22px rgba(17,24,39,.04);
}
.food-sidebar .side-box-hot h4,
.food-side-box h4{
  margin:0;
  padding:14px 16px 10px;
  color:#2e251d;
  border-bottom:1px solid #f3ece3;
  font-size:16px;
  line-height:1.4;
}
.food-sidebar .side-box-hot h4::after{
  margin-left:10px;
}
.food-sidebar .side-hot-list{
  padding:10px 12px 12px;
}
.food-sidebar .side-hot-item + .side-hot-item{
  margin-top:8px;
}
.food-sidebar .side-hot-link{
  padding:8px;
  border-radius:14px;
}
.school-detail-page .food-sidebar .side-hot-link{
  grid-template-columns:80px minmax(0,1fr);
}
.school-detail-page .food-sidebar .side-hot-thumb{
  width:80px;
  aspect-ratio:1 / 1;
  padding:8px;
  box-sizing:border-box;
  border-radius:18px;
  border:1px solid #e8e2d8;
  background:#fff;
}
.school-detail-page .food-sidebar .side-hot-thumb img{
  object-fit:contain;
}
.food-sidebar .side-list{
  margin:0;
  padding:6px 16px 12px;
  list-style:none;
}
.food-sidebar .side-list li{
  margin:0;
  color:#6f5c49;
  font-size:13px;
  line-height:1.75;
}
.food-sidebar .side-list li + li{
  margin-top:8px;
  padding-top:8px;
  border-top:1px dashed #efe4d7;
}
.food-sidebar .side-list .idx{
  display:inline-block;
  margin-right:6px;
  color:#b56b1b;
  font-weight:700;
}
.food-sidebar .side-list a{
  color:#3d342c;
  text-decoration:none;
}
.food-sidebar .side-list a:hover{
  color:#b56b1b;
}
.food-side-score{
  padding:20px 18px 18px;
  text-align:center;
}
.food-side-score-main{
  margin-bottom:6px;
  color:#f0672b;
  font-size:42px;
  font-weight:800;
  line-height:1;
}
.food-side-score p{
  margin:0 0 14px;
  color:#7b6a58;
  font-size:13px;
}
.food-side-score-list{
  display:grid;
  gap:10px;
}
.food-side-score-list span{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  background:#faf5ef;
  color:#7c5a36;
  font-size:13px;
  font-weight:700;
}
.food-page .detail-links-panel{
  margin-top:0;
  border-color:#eee6db;
  background:linear-gradient(180deg,#fff 0%,#fcfaf7 100%);
  box-shadow:0 10px 22px rgba(17,24,39,.04);
}
.food-footer-links-wrap{
  padding-top:0;
  padding-bottom:20px;
}
.food-footer-links-wrap .detail-links-panel{
  margin-top:0;
}
.food-page .detail-links-inner{
  gap:12px;
}
.food-page .detail-links-row{
  grid-template-columns:118px minmax(0,1fr);
  gap:10px;
}
.food-page .detail-links-val{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  line-height:1.9;
}
.food-page .detail-links-val a{
  display:inline-flex;
  align-items:center;
  margin-right:0;
  margin-bottom:0;
  white-space:normal;
}
@media (max-width: 1100px){
  .food-hero-main{
    grid-template-columns:1fr;
  }
  .food-data-strip{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (max-width: 768px){
  .food-hero-summary{
    padding:20px 18px 18px;
  }
  .hero-gallery-empty-text{
    padding:56px 18px 42px;
    font-size:clamp(22px,7vw,34px);
    line-height:1.65;
    letter-spacing:1px;
  }
  .food-title{
    font-size:20px;
  }
  .school-detail-page .school-hero-head{
    gap:12px;
    margin-bottom:10px;
  }
  .school-detail-page .school-logo-card{
    flex-basis:72px;
    width:72px;
    height:72px;
    border-radius:18px;
  }
  .school-detail-page .school-location-chip{
    max-width:100%;
    font-size:12px;
    padding:5px 10px;
  }
  .school-detail-page .school-meta-badge{
    min-height:28px;
    padding:0 10px;
    font-size:12px;
  }
  .school-detail-page .food-sidebar .side-hot-link{
    grid-template-columns:72px minmax(0,1fr);
  }
  .school-detail-page .food-sidebar .side-hot-thumb{
    width:72px;
    padding:6px;
    border-radius:16px;
  }
  .food-info-row{
    display:block;
  }
  .food-info-label{
    display:block;
    width:auto;
    margin-bottom:4px;
  }
  .food-info-row-address .food-info-value{
    display:block;
  }
  .food-map-link{
    margin-top:10px;
  }
  .food-page .detail-links-row{
    grid-template-columns:1fr;
    gap:4px;
  }
  .food-data-strip{
    grid-template-columns:1fr;
  }
  .food-article{
    padding:20px 16px 22px;
  }
  .food-sidebar{
    display:none;
  }
  .food-sidebar .side-box-hot h4,
  .food-side-box h4{
    padding:13px 14px 9px;
  }
  .food-sidebar .side-list{
    padding:6px 14px 10px;
  }
}
