/*
Theme Name: Eatery Child
Theme URI: https://github.com/eatery-factory
Description: 요식업 프랜차이즈 SEO/AEO 콘텐츠 사이트 — GeneratePress 자식 테마. eatery-factory 가 생성·배포한다.
Author: eatery-factory
Template: generatepress
Version: 3.16.0
Text Domain: wp-eatery-child
*/

/* ============================================================
   0. 토큰 기본값 — 런타임에 inc/brand-css.php 가 같은 :root 블록을 덮어쓴다
   디자인 기준: docs/design-reference/apple/DESIGN.md
   브랜드 색(primary·secondary·accent)은 브랜드별 추출값을 그대로 쓰고,
   중립색·타이포·여백·반경(10/28/980px)·그림자 없는 평면은 애플 기준을 따른다.
   ============================================================ */
:root {
  --color-primary: #1F6FB2;
  --color-secondary: #0B3D6E;
  --color-accent: #3CB4AC;
  --color-text: #1D1D1F;
  --color-bg: #FFFFFF;
  --color-surface: #F5F5F7;
  --color-border: #D2D2D7;
  --color-on-primary: #FFFFFF;
  --color-muted: #6E6E73;   /* 보조 글자 — 애플 Platinum(#86868B)을 WCAG 4.5 에 맞춰 한 단계 어둡게 */
  --font-body: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
  --font-heading: var(--font-body);
  --radius: 28px;           /* 카드·사진 */
  --radius-sm: 10px;        /* 작은 요소 */
  --radius-pill: 980px;     /* 버튼·칩·페이지 번호 */
  --max-width: 1120px;
  --content-width: 720px;
  --section-pad: clamp(4rem, 9vw, 7.5rem);
  --tracking-tight: -0.022em;
  --tracking-display: -0.03em;
}

/* ============================================================
   1. 기본 타이포그래피
   ============================================================ */
body {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.75;
  letter-spacing: -0.01em;
  word-break: keep-all;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .main-title { font-family: var(--font-heading); font-weight: 700; line-height: 1.2; letter-spacing: var(--tracking-tight); color: var(--color-text); }
a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* 헤더 — 반투명 흰 바탕 + 흐림, 스크롤해도 따라온다 */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, .82);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, .08);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation a { font-size: .9375rem; font-weight: 500; color: var(--color-text); }
.main-navigation a:hover { color: var(--color-primary); text-decoration: none; }
.main-navigation .current-menu-item > a { color: var(--color-primary); }
.site-logo .header-image, .custom-logo { max-height: 48px; width: auto; }
/* 로고가 있으면 글자 제목은 중복 — GeneratePress 는 로고 다음에 제목을 놓으므로 형제 선택자로 숨긴다 */
.site-logo + .site-branding .main-title, .site-logo + .site-branding .site-description { display: none; }
.inside-header, .inside-article, .site-content { max-width: var(--max-width); }
.entry-content > * { max-width: var(--content-width); }
.entry-content > .alignwide, .entry-content > .eatery-section--wide { max-width: var(--max-width); }

/* 상단 카테고리 — 가운데 큰 로고 + 좌우 링크 (inc/header.php · 프리뷰 base.html.j2 와 같은 마크업). GeneratePress 기본 헤더·메뉴는 숨긴다 */
.site-header, #site-navigation, .main-navigation, .mobile-menu-control-wrapper, .menu-toggle, #mobile-header { display: none !important; }
.eatery-topbar {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, .9);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, .08);
}
.admin-bar .eatery-topbar { top: 32px; }
@media (max-width: 782px) { .admin-bar .eatery-topbar { top: 46px; } }
.eatery-topbar__inner {
  max-width: 1400px; margin: 0 auto; padding: 1.35rem 2rem; min-height: 112px;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .5rem 3.5rem;
}
.eatery-topbar__side { display: flex; align-items: center; gap: .6rem 4rem; }
.eatery-topbar__side--left { justify-content: flex-end; }
.eatery-topbar__side--right { justify-content: flex-start; }
.eatery-topbar__link { color: var(--color-text); font-size: 1.125rem; font-weight: 600; letter-spacing: .08em; white-space: nowrap; text-decoration: none; }
.eatery-topbar__link:hover, .eatery-topbar__link.is-current { color: var(--color-primary); text-decoration: none; }
.eatery-topbar__logo { display: flex; justify-content: center; align-items: center; text-decoration: none; }
.eatery-topbar__logo-img { display: block; height: 88px; width: auto; max-width: 420px; object-fit: contain; }
.eatery-topbar__logo-text { font-size: 2.6rem; font-weight: 800; letter-spacing: var(--tracking-display); color: var(--color-text); line-height: 1.1; }
@media (max-width: 1100px) { .eatery-topbar__side { gap: .6rem 2.2rem; } .eatery-topbar__inner { gap: .5rem 2rem; } .eatery-topbar__link { font-size: 1rem; } }
@media (max-width: 720px) {   /* 좁은 화면 — 로고를 위에, 링크는 그 아래 한 줄(넘치면 줄바꿈)로 */
  .eatery-topbar__inner { display: flex; flex-wrap: wrap; justify-content: center; padding: .9rem 1rem; min-height: 0; gap: .45rem 1.5rem; }
  .eatery-topbar__logo { order: 0; flex-basis: 100%; }
  .eatery-topbar__logo-img { height: clamp(44px, 13vw, 56px); max-width: 70vw; }
  .eatery-topbar__logo-text { font-size: 1.9rem; }
  .eatery-topbar__side { display: contents; }
  /* 항목이 2~4개여도 화면 폭에 맞춰 글자·간격이 줄어 한 줄에 들어간다(4칸: NAVER · INSTAGRAM · KAKAOTALK · GOOGLE) — 좌우 대칭 */
  .eatery-topbar__inner { flex-wrap: wrap; column-gap: clamp(.7rem, 4.2vw, 1.5rem); }
  .eatery-topbar__link { order: 1; font-size: clamp(.625rem, 2.65vw, .8125rem); letter-spacing: clamp(.01em, .25vw, .05em); }
}
/* 첫 화면: 배경 사진이 있으면 메뉴바를 사진 위에 투명하게 얹는다 (inc/header.php) */
.eatery-topbar-overlay .eatery-topbar { position: fixed; left: 0; right: 0; top: 0; background: transparent; border-bottom-color: transparent;
  -webkit-backdrop-filter: none; backdrop-filter: none; transition: background-color .25s, border-color .25s; }
.eatery-topbar-overlay .eatery-topbar:not(.is-scrolled) .eatery-topbar__link { color: #fff; text-shadow: 0 1px 10px rgba(0, 0, 0, .5); }
.eatery-topbar-overlay .eatery-topbar:not(.is-scrolled) .eatery-topbar__logo-img { filter: drop-shadow(0 1px 8px rgba(0, 0, 0, .55)); }
.eatery-topbar-overlay .eatery-topbar:not(.is-scrolled) .eatery-topbar__logo-text { color: #fff; text-shadow: 0 1px 10px rgba(0, 0, 0, .5); }
.eatery-topbar-overlay .eatery-topbar.is-scrolled { background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  border-bottom-color: rgba(0, 0, 0, .08); }
/* 사진 배너 — 16:9 사진이 잘리지 않게 배너가 16:9 로 높아진다(낮은 화면은 화면 높이 92%까지). 위 메뉴바 자리만 아주 옅은 어두운 막 */
.eatery-topbar-overlay .eatery-hero { height: min(56.25vw, 92vh); min-height: 0; padding: 0; display: block; }
.eatery-topbar-overlay .eatery-hero--image::before { background: linear-gradient(180deg, rgba(0, 0, 0, .38) 0%, rgba(0, 0, 0, 0) 30%); }
@media (max-width: 768px) {   /* 모바일 — 전용 사진이 있으면 세로 4:5, 없으면 PC 사진의 가운데를 4:3 으로 */
  .eatery-topbar-overlay .eatery-hero { height: min(75vw, 92vh); }
  .eatery-topbar-overlay .eatery-hero--m { height: min(125vw, 92vh); }
}
.admin-bar.eatery-topbar-overlay .eatery-topbar { top: 32px; }
@media (max-width: 720px) {   /* 모바일 — 메뉴바는 사진·배너 위에 얹지 않고 위에 따로 둔다(배너 안의 글자·로고와 겹치지 않게). 흰 바탕 + 어두운 글자 */
  .eatery-topbar-overlay .eatery-topbar { position: sticky; background: rgba(255, 255, 255, .94); border-bottom-color: rgba(0, 0, 0, .08);
    -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); }
  .eatery-topbar-overlay .eatery-topbar:not(.is-scrolled) .eatery-topbar__link { color: var(--color-text); text-shadow: none; }
  .eatery-topbar-overlay .eatery-topbar:not(.is-scrolled) .eatery-topbar__logo-img { filter: none; }
  .eatery-topbar-overlay .eatery-topbar:not(.is-scrolled) .eatery-topbar__logo-text { color: var(--color-text); text-shadow: none; }
  .admin-bar.eatery-topbar-overlay .eatery-topbar { top: 46px; }
  .eatery-banners .eatery-banner:first-child::after { display: none; }
  .eatery-topbar-overlay .eatery-hero--image::before { background: none; }
}
/* 오늘 영업 상태 — 첫 화면 맨 위 알약 (JS 가 한국 시간으로 채운다) */
.eatery-open { display: inline-block; margin-bottom: .9rem; padding: .3em .95em; border-radius: var(--radius-pill); font-size: .9rem; font-weight: 700;
  background: rgba(255, 255, 255, .18); color: inherit; border: 1px solid rgba(255, 255, 255, .5); }
.eatery-open.is-on { background: rgba(60, 180, 120, .9); border-color: transparent; color: #fff; }
.eatery-open[hidden] { display: none; }
/* 첫 화면 — 사진만 있는 배너(글자 없음): 제목(h1)은 화면에 보이지 않게 둔다 */
.eatery-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* 디자인 배너(통이미지) — 잘리지 않고 원본 비율 그대로 폭에 맞춰 위에서부터 이어 붙인다 (모바일: 전용 이미지 또는 가운데 확대) */
.eatery-banners { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.eatery-banner { position: relative; overflow: hidden; line-height: 0; }
.eatery-banner img { display: block; width: 100%; height: auto; }
.eatery-banners .eatery-banner:first-child::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 22%; pointer-events: none;
  background: linear-gradient(180deg, rgba(0, 0, 0, .28) 0%, rgba(0, 0, 0, 0) 100%); }   /* 메뉴바 글자가 읽히도록 맨 위만 옅게 */
@media (max-width: 768px) {
  .eatery-banner--zoom img { width: calc(100% / var(--mw, 1)); max-width: none; margin-left: calc(-1 * (100% / var(--mw, 1) - 100%) * var(--fx, .5)); }
}
/* 게시판형 글 목록(고객 후기·지점 소식) — 번호 · 제목 · (지점) · 작성일, 15개씩 + 1…n 페이지 번호 */
.eatery-board-wrap { max-width: var(--max-width); margin: 0 auto; }
.eatery-board__meta { margin: 0 0 .6rem; color: var(--color-muted); font-size: .9rem; }
.eatery-board { width: 100%; border-collapse: collapse; border-top: 2px solid var(--color-text); }
.eatery-board th { padding: .8rem .6rem; font-size: .875rem; font-weight: 600; color: var(--color-muted); text-align: center; border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.eatery-board td { padding: 1rem .6rem; border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.eatery-board__no { width: 4.5rem; text-align: center; color: var(--color-muted); }
.eatery-board__branch { width: 8rem; text-align: center; color: var(--color-muted); }
.eatery-board__date { width: 7.5rem; text-align: center; color: var(--color-muted); white-space: nowrap; }
.eatery-board__title a { color: var(--color-text); font-weight: 600; text-decoration: none; }
.eatery-board__title a:hover { color: var(--color-primary); text-decoration: underline; }
.eatery-pager { display: flex; justify-content: center; flex-wrap: wrap; gap: .35rem; margin: 2rem 0 0; }
.eatery-pager .page-numbers { min-width: 2.4rem; height: 2.4rem; padding: 0 .7rem; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-sm);
  border: 1px solid var(--color-border); color: var(--color-text); text-decoration: none; font-weight: 600; font-size: .95rem; }
.eatery-pager a.page-numbers:hover { border-color: var(--color-primary); color: var(--color-primary); }
.eatery-pager .page-numbers.current { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
.eatery-pager .page-numbers.dots { border-color: transparent; }
@media (max-width: 640px) {   /* 좁은 화면 — 한 줄에 번호·날짜는 작게, 제목은 크게 */
  .eatery-board thead { display: none; }
  .eatery-board, .eatery-board tbody { display: block; }
  .eatery-board tr { display: grid; grid-template-columns: 2.2rem 1fr; gap: .15rem .5rem; padding: .9rem 0; border-bottom: 1px solid var(--color-border); }
  .eatery-board td { padding: 0; border: 0; text-align: left; width: auto; }
  .eatery-board__no { grid-row: 1 / span 2; align-self: start; font-size: .85rem; padding-top: .15rem; }
  .eatery-board__title { grid-column: 2; }
  .eatery-board__branch, .eatery-board__date { grid-column: 2; font-size: .8rem; display: inline; }
}
.eatery-menus__group { margin: 2.4rem 0 0; }
.eatery-menus__group h2 { margin: 0 0 1rem; }
/* 매장 안내 큰 카드(지점 1곳) */
.eatery-store-feature { display: grid; grid-template-columns: 1.15fr 1fr; background: var(--color-bg); border-radius: var(--radius); overflow: hidden; }
.eatery-store-feature__media { position: relative; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--color-primary) 10%, var(--color-bg)); }
.eatery-store-feature__media img { width: 100%; height: auto; max-height: 560px; object-fit: contain; display: block; }   /* 사진 비율 그대로 — 잘라내지 않는다(너무 긴 세로 사진만 상한 + 여백) */
.eatery-store-feature__media:has(.eatery-store-feature__icon) { min-height: 340px; }
.eatery-store-feature__icon { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--color-primary); }
.eatery-store-feature__icon svg { width: 96px; height: 96px; }
.eatery-store-feature__body { padding: clamp(1.6rem, 3.2vw, 2.8rem); display: flex; flex-direction: column; justify-content: center; gap: .9rem; }
.eatery-store-feature__body h3 { margin: 0; font-size: clamp(1.5rem, 3vw, 2rem); }
.eatery-store-feature__facts { margin: 0; display: grid; gap: .55rem; }
.eatery-store-feature__facts > div { display: grid; grid-template-columns: 3.2rem 1fr; gap: .6rem; align-items: baseline; }
.eatery-store-feature__facts dt { color: var(--color-muted); font-size: .875rem; font-weight: 600; }
.eatery-store-feature__facts dd { margin: 0; }
.eatery-store-feature__actions { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: .5rem; margin-top: .6rem; }
.eatery-store-feature__actions .eatery-btn { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; padding-left: .6rem; padding-right: .6rem; text-align: center; }
@media (max-width: 380px) { .eatery-store-feature__actions { grid-auto-flow: row; grid-auto-columns: auto; } }
@media (max-width: 768px) { .eatery-store-feature { grid-template-columns: 1fr; } .eatery-store-feature__media:has(.eatery-store-feature__icon) { min-height: 230px; } .eatery-store-feature__media img { max-height: 480px; } }
/* 요일별 영업시간 — 오늘은 색이 채워진다 */
.eatery-week { display: flex; flex-direction: column; gap: .35rem; }
.eatery-week__row { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .6rem 1.1rem; border-radius: 12px; background: var(--color-surface); font-weight: 600; font-size: .9375rem; }
.eatery-week__day { min-width: 2rem; }
.eatery-week__time { font-weight: 500; text-align: right; font-size: .9rem; }
.eatery-week__row.is-closed .eatery-week__time { color: var(--color-muted); }
.eatery-week__row.is-today { background: var(--color-primary); color: var(--color-on-primary); }
.eatery-week__row.is-today .eatery-week__time { color: inherit; font-weight: 600; }
.eatery-week__note { margin: .6rem .3rem 0; font-size: .875rem; color: var(--color-muted); }
.eatery-open--inline { margin: 0 0 .8rem; background: color-mix(in srgb, var(--color-primary) 10%, var(--color-bg)); color: var(--color-primary); border-color: transparent; }
.eatery-open--inline.is-on { background: #2FA36B; color: #fff; }
/* 영업시간 | 오시는 길 — 두 칸의 제목 줄·위아래 끝이 맞는다 (같은 높이로 늘어나고, 안쪽이 그 높이를 채운다) */
.eatery-slider__slide .eatery-info-grid { align-items: stretch; }
.eatery-slider__slide .eatery-info-grid > div { display: flex; flex-direction: column; }
.eatery-info-grid h2 { display: flex; align-items: center; gap: .8rem; min-height: 2.6rem; margin: 0 0 1rem; }
.eatery-info-grid h2 .eatery-open { margin: 0; font-size: .8rem; }
.eatery-slider__slide .eatery-week { flex: 1; justify-content: space-between; }
.eatery-slider__slide .eatery-week__row { flex: 1; }
.eatery-slider__slide .eatery-hours-panel { flex: 1; display: flex; flex-direction: column; }
.eatery-slider__slide .eatery-hours-panel .eatery-directions { flex: 1; display: flex; flex-direction: column; }
.eatery-slider__slide .eatery-hours-panel .eatery-map { flex: 1; aspect-ratio: auto; min-height: 220px; }
.eatery-badge--season { background: #FFF1DB; color: #9A5B00; }
.eatery-directions__links { display: flex; flex-wrap: wrap; gap: .5rem; }
/* 오시는 길 — 주소 · 보조 안내 · 네이버 지도/전화 버튼 두 개만(구글 약도·구글 버튼은 없앴다) */
.eatery-directions__addr { font-weight: 600; margin: 0 0 .4rem; line-height: 1.5; }
.eatery-directions__meta { color: var(--color-muted); font-size: .9rem; margin: 0 0 .4rem; }
.eatery-directions__links { margin: .9rem 0 0; }
.eatery-directions__links .eatery-btn { flex: 1 1 9rem; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding-top: .65rem; padding-bottom: .65rem; font-size: .9375rem; }
.eatery-ico { width: 1.15em; height: 1.15em; flex: none; }
@media (max-width: 480px) { .eatery-directions__links .eatery-btn { flex-basis: 100%; } }   /* 좁은 화면은 버튼을 한 줄씩 — 전화번호가 줄바꿈되지 않게 */
.eatery-slider__slide .eatery-hours-panel .eatery-directions { justify-content: center; }
.eatery-more-btn { margin-left: .8rem; font-size: .875rem; padding: .45em 1.1em; vertical-align: middle; }

/* 버튼 — 알약 모양. 한 화면에 채운 버튼은 하나, 나머지는 테두리만 */
.eatery-btn {
  display: inline-flex; align-items: center; gap: .4em; padding: .75em 1.4em; border-radius: var(--radius-pill);
  font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; line-height: 1.2; text-decoration: none;
  background: var(--color-primary); color: var(--color-on-primary); border: 1px solid var(--color-primary);
  transition: background-color .2s, color .2s, border-color .2s;
}
.eatery-btn:hover { background: var(--color-secondary); border-color: var(--color-secondary); color: var(--color-on-primary); text-decoration: none; }
.eatery-btn--ghost { background: transparent; color: var(--color-primary); }
.eatery-btn--ghost:hover { background: var(--color-primary); color: var(--color-on-primary); }

/* ============================================================
   2. 첫 화면
   ============================================================ */
/* 화면 폭을 꽉 채우는 띠 — 본문 폭(1120)에 갇힌 색 상자가 아니라, 헤더·푸터처럼 좌우 끝까지 */
.site-content > .eatery-front { width: 100%; }
/* 100vw 에는 세로 스크롤바 폭이 포함돼 오른쪽이 살짝 넘친다 — body 에서 잘라낸다.
   (main 에 걸면 main 자신이 띠를 본문 폭으로 잘라버린다 — 2026-09-18 실서버에서 그랬다.)
   overflow: clip 은 스크롤 컨테이너를 만들지 않아 고정 헤더(sticky)에 영향이 없다. */
body { overflow-x: clip; }
.eatery-bleed, .eatery-hero, .eatery-home-section--surface { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

.eatery-hero { position: relative; padding: clamp(5rem, 12vw, 9rem) 1.25rem clamp(4rem, 9vw, 7rem); background: var(--color-surface); }
.eatery-hero--solid { background: var(--color-primary); color: var(--color-on-primary); }
.eatery-hero--gradient { background: linear-gradient(160deg, var(--color-primary) 0%, var(--color-secondary) 100%); color: var(--color-on-primary); }
.eatery-hero--soft { background: color-mix(in srgb, var(--color-primary) 9%, var(--color-surface)); }
/* 브랜드·매장 사진이 있으면 배경으로 — 글자가 읽히도록 브랜드색 → 투명 그라데이션을 덮는다 */
.eatery-hero--image { background-image: var(--hero-img); background-size: cover; background-position: var(--hero-pos, center); color: var(--color-on-primary); }
/* 좁은 화면 — 모바일 전용 사진(--hero-img-m)이 있으면 그것을, 없으면 같은 사진의 가운데를 쓴다 */
@media (max-width: 768px) { .eatery-hero--image { background-image: var(--hero-img-m, var(--hero-img)); background-position: var(--hero-pos-m, center); }
  .eatery-hero--zoom::after { background-image: var(--hero-img-m, var(--hero-img)); } }
.eatery-hero--image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, color-mix(in srgb, var(--color-secondary) 88%, transparent) 0%, color-mix(in srgb, var(--color-secondary) 55%, transparent) 55%, color-mix(in srgb, var(--color-secondary) 20%, transparent) 100%); }
.eatery-hero--image > .eatery-hero__inner { position: relative; z-index: 2; }
/* 사진 축소(hero_zoom < 100) — 사진을 ::after 층에 작게 놓고 양옆을 흐리게 지워 브랜드색 바탕과 이어 붙인다. 글자 막(::before)은 그 위. */
.eatery-hero--zoom { background: var(--color-secondary); isolation: isolate; }
.eatery-hero--zoom::before { z-index: 1; }
.eatery-hero--zoom::after { content: ""; position: absolute; inset: 0; z-index: 0;
  background: var(--hero-img) var(--hero-pos, center 50%) / var(--hero-zoom, 100%) auto no-repeat;
  /* 흐림 구간은 배너 끝이 아니라 사진 끝 기준: 사진은 가운데에 --hero-zoom 폭으로 놓이므로 양옆 여백 = (100% - 폭) / 2 */
  --hero-gap: calc((100% - var(--hero-zoom, 100%)) / 2); --hero-fade: calc(var(--hero-zoom, 100%) * .16);
  -webkit-mask-image: linear-gradient(90deg, transparent var(--hero-gap), #000 calc(var(--hero-gap) + var(--hero-fade)), #000 calc(100% - var(--hero-gap) - var(--hero-fade)), transparent calc(100% - var(--hero-gap)));
  mask-image: linear-gradient(90deg, transparent var(--hero-gap), #000 calc(var(--hero-gap) + var(--hero-fade)), #000 calc(100% - var(--hero-gap) - var(--hero-fade)), transparent calc(100% - var(--hero-gap))); }
.eatery-hero--solid h1, .eatery-hero--gradient h1, .eatery-hero--image h1,
.eatery-hero--solid .eatery-hero__eyebrow, .eatery-hero--gradient .eatery-hero__eyebrow, .eatery-hero--image .eatery-hero__eyebrow,
.eatery-hero--solid .eatery-hero__sub, .eatery-hero--gradient .eatery-hero__sub, .eatery-hero--image .eatery-hero__sub { color: var(--color-on-primary); }
.eatery-hero--solid .eatery-hero__sub, .eatery-hero--gradient .eatery-hero__sub, .eatery-hero--image .eatery-hero__sub { opacity: .88; }
.eatery-hero--solid .eatery-btn, .eatery-hero--gradient .eatery-btn, .eatery-hero--image .eatery-btn { background: var(--color-on-primary); color: var(--color-primary); border-color: var(--color-on-primary); }
.eatery-hero--solid .eatery-btn:hover, .eatery-hero--gradient .eatery-btn:hover, .eatery-hero--image .eatery-btn:hover { background: transparent; color: var(--color-on-primary); }
.eatery-hero--solid .eatery-btn--ghost, .eatery-hero--gradient .eatery-btn--ghost, .eatery-hero--image .eatery-btn--ghost { background: transparent; color: var(--color-on-primary); }
.eatery-hero--solid .eatery-btn--ghost:hover, .eatery-hero--gradient .eatery-btn--ghost:hover, .eatery-hero--image .eatery-btn--ghost:hover { background: var(--color-on-primary); color: var(--color-primary); }
.eatery-hero__inner { max-width: var(--max-width); margin: 0 auto; }
.eatery-hero__eyebrow { font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.01em; color: var(--color-secondary); margin-bottom: .9rem; }
.eatery-hero h1 { font-size: clamp(2.5rem, 7vw, 5rem); line-height: 1.05; letter-spacing: var(--tracking-display); margin: 0 0 1.1rem; }
.eatery-hero__sub { font-size: clamp(1.125rem, 2vw, 1.375rem); line-height: 1.5; letter-spacing: -0.015em; color: var(--color-muted); max-width: 34em; margin: 0 0 2.2rem; }
.eatery-hero__actions { display: flex; gap: .75rem 1rem; flex-wrap: wrap; align-items: center; }

/* 섹션 — 흰 바탕과 옅은 회색 바탕을 번갈아 쌓는다 */
/* 흰 섹션은 좌우 여백까지 포함한 폭 — 글 시작선이 히어로·회색 섹션과 같은 세로줄에 맞도록 */
.eatery-home-section { max-width: calc(var(--max-width) + 2.5rem); margin: 0 auto; padding: var(--section-pad) 1.25rem; }
.eatery-home-section > h2, .eatery-home-section__inner > h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.5rem); line-height: 1.15; letter-spacing: var(--tracking-display); margin: 0 0 2rem;
  display: flex; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; flex-wrap: wrap;
}
.eatery-more { font-size: 1.0625rem; font-weight: 500; letter-spacing: -0.01em; white-space: nowrap; }
.eatery-muted { color: var(--color-muted); font-weight: 500; }
.eatery-home-section--surface { background: var(--color-surface); max-width: none; padding-left: 1.25rem; padding-right: 1.25rem; }
.eatery-home-section--surface > .eatery-home-section__inner { max-width: var(--max-width); margin: 0 auto; }
.eatery-home-section--surface .eatery-branch-card, .eatery-home-section--surface .eatery-post-card, .eatery-home-section--surface .eatery-menu-card,
.eatery-home-section--surface .eatery-hours-panel { background: var(--color-bg); }

/* 브랜드 소개·시그니처 메뉴 띠 */
.eatery-intro-grid { display: grid; grid-template-columns: minmax(220px, 2fr) 3fr; gap: 2.5rem; align-items: center; }
/* 브랜드 소개 사진 — 갤러리·히어로 사진이 있으면 그대로, 없으면 업종 아이콘을 같은 자리에(빈 칸으로 보이지 않게) */
.eatery-intro__photo { aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; background: var(--color-bg); }
.eatery-intro__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eatery-intro__photo iframe { width: 100%; height: 100%; border: 0; display: block; }
.eatery-intro__photo--icon { display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--color-primary) 9%, var(--color-bg)); color: var(--color-primary); }
.eatery-intro__photo--icon svg { width: 30%; height: 30%; }
.eatery-intro__lead { font-size: clamp(1.25rem, 2.2vw, 1.5rem); line-height: 1.5; letter-spacing: -0.015em; margin: 0 0 .75rem; }
.eatery-intro__depts { color: var(--color-muted); margin: 0; }
.eatery-intro__h3 { font-size: .9375rem; color: var(--color-muted); margin: 1.5rem 0 .6rem; }
@media (max-width: 768px) { .eatery-intro-grid { grid-template-columns: 1fr; gap: 1.5rem; } .eatery-intro__photo { aspect-ratio: 16 / 9; } }

/* 모바일 — 첫 화면 대표 메뉴는 세로로 길게 늘어놓지 않고 가로 한 줄로 넘겨 본다(스와이프, 다음 카드가 살짝 보인다). 전체 메뉴 페이지는 2열 */
@media (max-width: 768px) {
  .eatery-home-section > .eatery-menu-grid { display: flex; gap: 1rem; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    margin: 1.25rem -1.25rem 0; padding: 0 1.25rem .75rem; scroll-padding-left: 1.25rem; scrollbar-width: none; overscroll-behavior-x: contain; }
  .eatery-home-section > .eatery-menu-grid::-webkit-scrollbar { display: none; }
  .eatery-home-section > .eatery-menu-grid > .eatery-menu-card { flex: 0 0 min(72%, 300px); scroll-snap-align: start; }
  .eatery-menus .eatery-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .eatery-menus .eatery-menu-card__body { padding: .9rem 1rem 1.1rem; }
}
/* 메뉴 카드 그리드 (첫 화면) */
/* 메뉴 분류 탭 — 전체(가격 높은 순) + 분류. 좁은 화면은 가로로 밀어서 */
.eatery-menu-tabs { display: flex; gap: .5rem; margin: 0 0 1.25rem; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.eatery-menu-tabs::-webkit-scrollbar { display: none; }
.eatery-menu-tab { flex: none; font: inherit; font-size: .9375rem; font-weight: 600; padding: .5em 1.1em; border-radius: 980px; cursor: pointer; white-space: nowrap;
  border: 1px solid var(--color-primary); background: transparent; color: var(--color-primary); }
.eatery-menu-tab.is-active { background: var(--color-primary); color: var(--color-on-primary, #fff); }
.eatery-menu-cell { display: contents; }
.eatery-menu-cell[hidden] { display: none; }
.eatery-menu-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.5rem; margin-top: 1.75rem; }
.eatery-menu-card { background: var(--color-surface); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.eatery-menu-card__photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.eatery-menu-card__photo--empty { background: color-mix(in srgb, var(--color-primary) 8%, var(--color-bg)); display: flex; align-items: center; justify-content: center; color: var(--color-primary); }
.eatery-menu-card__photo--empty svg { width: 44px; height: 44px; opacity: .45; }
.eatery-menu-card__body { padding: 1.25rem 1.5rem 1.5rem; }
.eatery-menu-card h3 { margin: 0 0 .35rem; font-size: 1.25rem; }
.eatery-menu-card--compact h3 { font-size: 1.125rem; }
.eatery-menu-card__body > p { margin: 0 0 .5rem; }
.eatery-price { font-weight: 700; color: var(--color-secondary); margin: 0 0 .5rem; }
.eatery-origin { font-size: .9375rem; }
.eatery-menu-list, .eatery-branch-list { padding-left: 1.2rem; }
.eatery-menu-availability { font-size: .9375rem; margin-top: 1rem; }
.eatery-branch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; }
.eatery-branch-card { background: var(--color-surface); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.eatery-branch-card__photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.eatery-branch-card__body { padding: 1.25rem 1.5rem 1.5rem; }
.eatery-branch-card h3 { margin: 0 0 .5rem; font-size: 1.25rem; }
.eatery-branch-card h3 a { color: var(--color-text); text-decoration: none; }
.eatery-branch-card h3 a:hover { color: var(--color-primary); }
.eatery-branch-card p { margin: 0 0 .3rem; }

/* 주제 카드 (글이 없을 때) — 카드 위쪽 색면에 주제 이름을 크게 */
.eatery-post-card__ph { position: relative; }

/* 영업시간·오시는 길 패널 */
.eatery-hours-panel { background: var(--color-surface); border-radius: var(--radius); padding: 1.5rem 1.75rem; }
.eatery-hours-panel .eatery-hours { max-width: none; margin: 0; }
.eatery-hours-panel .eatery-hours tr:last-child th, .eatery-hours-panel .eatery-hours tr:last-child td { border-bottom: 0; }
.eatery-hours-panel .eatery-directions p, .eatery-hours-panel .eatery-directions__phone { margin: 0 0 .75rem; }
.eatery-hours-panel .eatery-directions p:last-child { margin-bottom: 0; }
/* 오시는 길 약도 — 주소 문자만 있던 자리에 지도를 보여준다. 그림자 없이 둥근 모서리로 자른다(디자인 기준). */
.eatery-map { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius-sm); overflow: hidden;
  background: var(--color-border); margin: 0 0 1.1rem; }
.eatery-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.eatery-hours-panel .eatery-map { margin-bottom: .9rem; }

/* 헤더 전화 버튼 (데스크톱) · 하단 고정 바 (모바일) */
.eatery-header-cta { display: inline-flex; align-items: center; gap: .4rem; margin-left: .75rem; }
.eatery-header-cta .eatery-btn { padding: .55em 1.1em; font-size: .9375rem; }
/* 예약 버튼 — 강조색(accent)이 있으면 그걸로, 없으면 primary. 예약은 예약 페이지(캐치테이블 등)에서 받는다(이 사이트는 보내기만) */
.eatery-btn--booking { background: var(--color-accent, var(--color-primary)); color: var(--color-on-primary); border-color: transparent; }
.eatery-btn--booking:hover { filter: brightness(.94); color: var(--color-on-primary); }
/* 헤더의 예약 버튼 글씨 — 상위 테마의 메뉴 링크 색(#222)이 덮어써서 색 배경 위에서 어둡게 보였다 */
.site-header .main-navigation .eatery-header-cta .eatery-btn--booking, .site-header .main-navigation .eatery-header-cta .eatery-btn--booking:hover { color: var(--color-on-primary); }
/* 화면을 내리면 따라오는 상단 예약 바 — **좁은 화면 전용**.
   넓은 화면은 헤더(.site-header)가 이미 따라오고 그 안에 예약 버튼이 있어서 이 바를 띄우면 두 겹이 된다.
   맨 위에서는 숨고(첫 화면 버튼과 겹치지 않게), 조금 내리면 나타나 계속 따라다닌다. */
.eatery-sticky-cta { display: none; position: fixed; top: 0; left: 0; right: 0; z-index: 80; visibility: hidden; opacity: 0; transform: translateY(-100%);
  transition: transform .22s ease, opacity .22s ease, visibility .22s;
  background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, .08); }
.eatery-sticky-cta.is-on { visibility: visible; opacity: 1; transform: none; }
.eatery-sticky-cta__inner { max-width: var(--eatery-content-width, 1100px); margin: 0 auto; display: flex; align-items: center; gap: .5rem; padding: .5rem 1.25rem; }
.eatery-sticky-cta__name { flex: 1 1 auto; min-width: 0; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eatery-sticky-cta a { flex: 0 0 auto; display: inline-flex; align-items: center; padding: .5em 1.05em; border-radius: 999px; font-weight: 700; font-size: .9375rem; text-decoration: none; }
.eatery-sticky-cta .eatery-sticky-cta__call { border: 1px solid var(--color-primary); color: var(--color-primary); }
.eatery-sticky-cta .eatery-sticky-cta__book { background: var(--color-accent, var(--color-primary)); color: var(--color-on-primary); }
.eatery-sticky-cta .eatery-sticky-cta__book:hover { filter: brightness(.94); color: var(--color-on-primary); }
@media (prefers-reduced-motion: reduce) { .eatery-sticky-cta { transition: none; } }
.admin-bar .eatery-sticky-cta { top: 32px; }
@media (max-width: 768px) {
  .eatery-sticky-cta { display: block; }
  .eatery-sticky-cta__inner { padding: .45rem .9rem; }
  .eatery-sticky-cta__name { font-size: .95rem; }
  .admin-bar .eatery-sticky-cta { top: 46px; }
}
.eatery-cta-bar { display: none; }
@media (max-width: 768px) {
  /* 좁은 화면에서는 헤더를 따라오게 두지 않는다 — 로고·메뉴까지 계속 붙어 다니면 화면을 많이 먹는다.
     대신 얇은 .eatery-sticky-cta 한 줄(브랜드명·전화·예약)이 따라온다. 맨 위에서는 헤더의 예약 버튼이 보인다. */
  .site-header { position: static; }
  /* 좁은 화면에서도 예약 버튼은 상단에 남긴다 — 작게 */
  .eatery-header-cta { margin-left: .4rem; }
  .eatery-header-cta .eatery-btn { padding: .45em .9em; font-size: .875rem; }
  /* 상위 테마의 모바일 메뉴가 버튼 줄 높이를 60px 로 늘려 헤더가 두 줄로 깨졌다 — 로고·예약·메뉴를 한 줄에 */
  .site-header .inside-header { flex-wrap: nowrap; align-items: center; padding: .6rem 1rem; }
  .site-header .site-branding-container { flex: 0 0 auto; }
  .site-header .site-logo { max-width: none; }
  .site-header .site-logo img { width: auto; height: 34px; max-width: none; }
  .site-header .mobile-menu-control-wrapper { flex: 0 0 auto; display: flex; align-items: center; width: auto; margin-left: auto; }
  .site-header .main-navigation .eatery-header-cta .eatery-btn { line-height: 1.4; }
  .site-header .main-navigation .menu-toggle { line-height: 1.4; padding: .5rem .7rem; }
  .eatery-cta-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 1px;
    background: rgba(0, 0, 0, .08); border-top: 1px solid rgba(0, 0, 0, .08); padding-bottom: env(safe-area-inset-bottom); }
  .eatery-cta-bar a { display: flex; align-items: center; justify-content: center; padding: .95rem .5rem; font-weight: 700; font-size: 1rem; text-decoration: none;
    background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); color: var(--color-text); }
  .eatery-cta-bar .eatery-cta-bar__call { background: var(--color-primary); color: var(--color-on-primary); }
  .eatery-cta-bar .eatery-cta-bar__book { background: var(--color-accent, var(--color-primary)); color: var(--color-on-primary); }
  body.has-eatery-cta-bar { padding-bottom: 3.6rem; }
}
/* 글 끝 — 홈페이지 링크 + 예약 버튼 (GA link_location=post) */
.eatery-post-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.eatery-post-cta__book { display: inline-block; padding: .5em 1.1em; border-radius: 980px; font-weight: 600; font-size: .9375rem; text-decoration: none;
  background: var(--color-accent, var(--color-primary)); color: var(--color-on-primary); }
.eatery-post-cta__book:hover { filter: brightness(.94); color: var(--color-on-primary); text-decoration: none; }

/* 지점·메뉴 분류 — 알약 모양 칩 */

/* 칼럼·블로그 카드 — 그림자·테두리 없이 바탕색 차이와 둥근 모서리로만 구분 */
.eatery-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; }
.eatery-post-card { display: flex; flex-direction: column; background: var(--color-surface); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--color-text); }
.eatery-post-card:hover { text-decoration: none; }
.eatery-post-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.eatery-post-card__ph { aspect-ratio: 16 / 9; background: var(--color-border); background: color-mix(in srgb, var(--color-primary) 14%, var(--color-surface)); }
.eatery-post-card__body { padding: 1.5rem 1.75rem 1.75rem; }
.eatery-post-card__cat { font-size: .875rem; font-weight: 600; letter-spacing: -0.01em; color: var(--color-secondary); }
.eatery-post-card__title { font-size: 1.1875rem; font-weight: 700; letter-spacing: var(--tracking-tight); line-height: 1.35; margin: .4rem 0 .6rem; }
.eatery-post-card__date { font-size: .875rem; color: var(--color-muted); }
.eatery-post-card:hover .eatery-post-card__title { color: var(--color-primary); }
/* 칼럼·블로그에 아직 글이 없을 때 — 빈 색상 상자 여러 개 대신 아이콘 하나 + 안내 한 줄 (사진이 아니라 아이콘: specialty_icon 주석 참고) */
.eatery-empty-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.1rem;
  padding: 3.5rem 1.5rem; border-radius: var(--radius); background: var(--color-surface); text-align: center; }
.eatery-home-section--surface .eatery-empty-panel { background: var(--color-bg); }
.eatery-empty-panel__icon { width: 72px; height: 72px; border-radius: 50%;
  background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));
  display: flex; align-items: center; justify-content: center; color: var(--color-primary); }
.eatery-home-section--surface .eatery-empty-panel__icon { background: color-mix(in srgb, var(--color-primary) 10%, var(--color-bg)); }
.eatery-empty-panel__icon svg { width: 34px; height: 34px; }

.eatery-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
@media (max-width: 768px) {
  .eatery-info-grid { grid-template-columns: 1fr; gap: 1.75rem; }
  /* 모바일 — 영업시간·오시는 길을 한 단계 더 작게 */
  .eatery-info-grid h2 { font-size: 1.375rem; min-height: 0; margin-bottom: .7rem; gap: .6rem; }
  .eatery-info-grid h2 .eatery-open { font-size: .7rem; padding: .2em .7em; }
  .eatery-week { gap: .25rem; }
  .eatery-week__row { padding: .42rem .85rem; border-radius: 10px; font-size: .8125rem; gap: .5rem; }
  .eatery-week__time { font-size: .8125rem; }
  .eatery-hours-panel { padding: 1.1rem 1.25rem; }
  .eatery-week__note { font-size: .8125rem; margin-top: .4rem; }
}

/* 다국어 — 글 맨 위 언어 전환 · 첫 화면 아래 언어 링크 (inc/i18n.php) */
.eatery-langswitch, .eatery-langlinks { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; }
.eatery-langlinks { justify-content: center; margin: 2.5rem 0 0; }
.eatery-lang { display: inline-block; padding: .3em .9em; border: 1px solid var(--color-border); border-radius: 980px; font-size: .9375rem; text-decoration: none; color: var(--color-primary); }
.eatery-lang:hover { background: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-primary); }
.eatery-lang.is-current { background: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-primary); }
.eatery-disclosure { display: inline-block; margin-top: .25rem; }

/* 영업시간·오시는 길 슬라이드 — 지점마다 한 장. 좌우 버튼 + 밀기(scroll-snap). 스크립트가 없어도 밀어서 넘길 수 있다. */
.eatery-slider__bar { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin: 0 0 1.75rem; }
.eatery-slider__label { min-width: 14rem; text-align: center; font-size: 1.125rem; font-weight: 700; letter-spacing: -0.01em; }
.eatery-slider__count { font-weight: 500; font-size: .9375rem; margin-left: .35rem; }
.eatery-slider__btn { flex: none; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--color-border);
  background: var(--color-surface); color: var(--color-primary); font: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.eatery-slider__btn:hover { background: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-primary); }
.eatery-slider__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.eatery-slider__track::-webkit-scrollbar { display: none; }
.eatery-slider__slide { flex: 0 0 100%; min-width: 0; box-sizing: border-box; scroll-snap-align: start; scroll-snap-stop: always; }
.eatery-slider__slide { overflow: hidden; }
.eatery-slider__slide .eatery-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.eatery-slider__slide .eatery-info-grid > * { min-width: 0; }
.eatery-slider__slide .eatery-hours th, .eatery-slider__slide .eatery-hours td { overflow-wrap: anywhere; }
@media (max-width: 768px) {
  .eatery-slider__label { min-width: 0; flex: 1; }
  .eatery-slider__slide .eatery-info-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================================
   3. 공통 블록 (페이지·글)
   ============================================================ */
.eatery-section { margin: 0 0 3.5rem; }
.eatery-section h2 { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.2; letter-spacing: var(--tracking-display); margin: 0 0 1.25rem; }
.eatery-hours { width: 100%; max-width: 480px; border-collapse: collapse; margin: 0 0 1rem; }
.eatery-hours th, .eatery-hours td { text-align: left; padding: .8rem 0; border-bottom: 1px solid var(--color-border); }
.eatery-hours th { width: 30%; color: var(--color-muted); font-weight: 600; }
.eatery-badge { display: inline-block; font-size: .75rem; font-weight: 600; padding: .2em .7em; border-radius: var(--radius-pill); background: var(--color-surface); color: var(--color-secondary); vertical-align: middle; margin-left: .4em; }

/* 지점 카드 — 사진(3:4)이 있으면 위에, 없으면 이름 첫 글자 원. 한 명뿐이어도 카드가 홀로 떠 보이지 않게 폭을 제한 */

/* 고정 페이지 제목·본문 — GeneratePress 기본 크기를 그대로 두면 첫 화면과 다른 사이트처럼 보인다 */
.page .entry-header h1, .page .entry-title { font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1.1; letter-spacing: var(--tracking-display); margin: 0 0 1.25rem; }
.page .entry-content { line-height: 1.8; }
.page .entry-content > p:first-of-type { font-size: 1.1875rem; color: var(--color-muted); }

/* 매장 둘러보기 (브랜드 소개·지점 페이지) */
.eatery-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.eatery-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: var(--radius-sm); }


/* 부작용·한계 고지 — 제56조②7호: 본문과 같은 가독성. 글자 크기·색·줄간격을 줄이지 않는다. */
.eatery-source { font-size: inherit; color: inherit; line-height: inherit; border-left: 3px solid var(--color-accent); padding: .25rem 0 .25rem 1.1rem; margin: 1.25rem 0; }
.eatery-source strong { font-size: inherit; color: inherit; margin-right: .4em; }
.eatery-source a { color: var(--color-primary); }
.eatery-quote { margin: 1.5rem 0; padding: 1.25rem 1.5rem; background: var(--color-surface); border-radius: var(--radius); border-left: 3px solid var(--color-primary); font-size: 1.0625rem; line-height: 1.75; }
.eatery-quote p { margin: 0 0 .5rem; }
.eatery-quote p:last-child { margin: 0; }

/* 직접 답변 박스 — AI 인용 대상 */
.eatery-direct-answer { background: var(--color-surface); border-radius: var(--radius); padding: 1.75rem 2rem; margin: 0 0 2rem; font-size: 1.1875rem; line-height: 1.6; letter-spacing: -0.015em; }
.eatery-direct-answer strong { display: block; color: var(--color-secondary); font-size: .9375rem; font-weight: 600; letter-spacing: -0.01em; margin-bottom: .5rem; }

.eatery-faq { margin: 3.5rem 0; }
.eatery-faq h2 { font-size: 1.75rem; }
.eatery-faq dl { margin: 0; }
.eatery-faq dt { font-weight: 700; font-size: 1.125rem; letter-spacing: -0.015em; margin: 0; padding: 1.25rem 0 .4rem; border-top: 1px solid var(--color-border); }
.eatery-faq dt:first-child { border-top: 0; padding-top: 0; }
.eatery-faq dd { margin: 0; }

.eatery-sources { margin: 2.5rem 0; font-size: .9375rem; color: var(--color-muted); }
.eatery-sources h2 { font-size: 1.25rem; color: var(--color-text); }
.eatery-sources ol { padding-left: 1.3rem; }

.eatery-author-box { display: flex; gap: 1.25rem; align-items: flex-start; background: var(--color-surface); border-radius: var(--radius); padding: 1.75rem 2rem; margin: 3rem 0 1.25rem; }
.eatery-author-box__label { font-size: .875rem; font-weight: 600; color: var(--color-muted); }
.eatery-author-box__name { font-size: 1.1875rem; font-weight: 700; letter-spacing: var(--tracking-tight); }
.eatery-author-box__home { margin: .6rem 0 0; font-size: .9375rem; }
.eatery-author-box__home a { color: var(--color-primary); text-decoration: none; }
.eatery-author-box__home a:hover { text-decoration: underline; }
.eatery-author-box__cred { color: var(--color-secondary); font-size: .9375rem; font-weight: 600; }
.eatery-author-box__bio { font-size: .9375rem; margin: .4rem 0 0; }

.eatery-disclaimer { font-size: .95rem; color: var(--color-text); border-top: 1px solid var(--color-border); padding-top: 1.25rem; margin: 2rem 0 0; }
.eatery-disclaimer p { margin: 0 0 .4rem; }

.eatery-related { margin: 3.5rem 0 0; }
.eatery-related h2 { font-size: 1.5rem; margin-bottom: 1.25rem; }

.eatery-byline { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .9375rem; color: var(--color-muted); margin: 0 0 2rem; }
.eatery-byline .eatery-byline__author { color: var(--color-text); font-weight: 600; }
.single-post .entry-meta, .single-post .posted-on, .single-post .byline { display: none; }

.eatery-breadcrumb { font-size: .875rem; color: var(--color-muted); margin: 0 0 1.25rem; }
.eatery-breadcrumb a { color: var(--color-muted); }
.eatery-breadcrumb a:hover { color: var(--color-primary); }

.eatery-legal-line { font-size: .875rem; color: var(--color-muted); margin-top: 2rem; }
.eatery-todo-note { color: #B45309; font-style: italic; }
.eatery-effective { color: var(--color-muted); font-size: .9375rem; }

/* 푸터 법정 표기 */
.site-info { background: var(--color-surface); }
.eatery-legal { font-size: .85rem; line-height: 1.8; color: var(--color-muted); }
.eatery-legal > div + div { margin-top: .3rem; }
.eatery-legal__links a { margin-right: 1.25rem; color: var(--color-text); }
.eatery-legal__links a:hover { color: var(--color-primary); }

/* 카테고리 아카이브 — 카드형 그리드 (archive.php) */
.eatery-archive { max-width: var(--max-width); margin: 0 auto; padding: clamp(3rem, 7vw, 5rem) 1.25rem var(--section-pad); }
.archive .page-header, .eatery-archive .page-header { margin-bottom: .5rem; padding: 0; }   /* 부모 테마의 40px 안쪽 여백이 제목만 오른쪽으로 밀어 설명·카드와 왼쪽 줄이 어긋났다 */
.archive .page-header h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1.1; letter-spacing: var(--tracking-display); margin: 0; }
.eatery-archive-intro { color: var(--color-muted); font-size: 1.1875rem; line-height: 1.55; max-width: 40em; margin: 1rem 0 3rem; }
.eatery-archive-empty { color: var(--color-muted); padding: 2rem 0; }
.eatery-archive-sub { margin: 3rem 0 1.25rem; }
.eatery-archive-more { margin: 2rem 0 0; text-align: center; }
.eatery-archive .eatery-post-grid { margin-bottom: 3rem; }
.pagination, .navigation.pagination { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.6em; height: 2.6em; padding: 0 .7em; border-radius: var(--radius-pill); background: var(--color-surface); text-decoration: none; color: var(--color-text); font-weight: 600; font-size: .9375rem; }
.pagination .page-numbers.current { background: var(--color-primary); color: var(--color-on-primary); }
.pagination .page-numbers:hover:not(.current) { color: var(--color-primary); }
.pagination .page-numbers.dots { background: none; }

/* 기사 본문 */
.single-post .entry-title, .single-post > h1 { font-size: clamp(2rem, 4.5vw, 3rem); line-height: 1.15; letter-spacing: var(--tracking-display); margin: 0 0 1rem; }
.single-post .entry-content { line-height: 1.85; }
.single-post .entry-content h2 { font-size: clamp(1.5rem, 3vw, 1.875rem); line-height: 1.25; letter-spacing: var(--tracking-display); margin: 3rem 0 1rem; scroll-margin-top: 90px; }
.single-post .entry-content h3 { font-size: 1.25rem; margin: 2rem 0 .6rem; }
.single-post .entry-content table { border-collapse: collapse; width: 100%; margin: 1.5rem 0; font-size: 1rem; }
.single-post .entry-content th, .single-post .entry-content td { text-align: left; border-bottom: 1px solid var(--color-border); padding: .7rem .8rem; }
.single-post .entry-content th { background: var(--color-surface); font-weight: 600; }
.single-post .entry-content img { border-radius: var(--radius); }

@media (max-width: 480px) {
  .eatery-hero { padding: 4rem 1.25rem 3.5rem; }
  .eatery-home-section { padding: 3.5rem 1.25rem; }
  .eatery-home-section > h2, .eatery-home-section__inner > h2 { font-size: 1.625rem; gap: .35rem .75rem; }
  .eatery-more { font-size: .9375rem; }
  .eatery-author-box { flex-direction: column; }
}

@media print {
  .site-header, .site-footer, .eatery-related, .eatery-hero__actions { display: none; }
  .site-header { position: static; }
}

/* ============================================================
   404 — 없는 주소 안내 (404.php)
   ============================================================ */
.eatery-404 { max-width: 720px; margin: 0 auto; padding: 2rem 1rem 4rem; }
.eatery-404__lead { color: var(--color-muted); margin: .5rem 0 1.5rem; }
.eatery-404__search { margin: 0 0 2rem; }
.eatery-404__section { margin: 1.75rem 0; }
.eatery-404__section h2 { font-size: 1.125rem; margin: 0 0 .6rem; }
.eatery-404__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem .75rem; }
.eatery-404__links li { background: var(--color-surface); border-radius: var(--radius); padding: .5rem .9rem; }
.eatery-404__links a { color: var(--color-primary); text-decoration: none; }
.eatery-404__links a:hover { text-decoration: underline; }
.eatery-404__count { color: var(--color-muted); font-size: .875rem; margin-left: .25rem; }
.eatery-post-card__img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
