/* ==========================================================================
   theme.css · 统一设计层（2026-10-13）
   最后加载，统一所有页面的字号、版心、导航、标题、按钮与卡片。
   原有 site.css / mobile.css / 各页 CSS 不删，只在这里覆盖。
   手机：正文 16px、说明 14px、可点区域 ≥44px。
   ========================================================================== */

:root{
  --t-bg:#f7f5ef;
  --t-paper:#ffffff;
  --t-ink:#1e2b26;
  --t-text:#34433d;
  --t-muted:#66736c;
  --t-line:#e4e1d7;
  --t-line-strong:#d3d0c4;
  --t-green:#1f4e40;
  --t-green-2:#2f6a57;
  --t-green-soft:#e9efe9;
  --t-accent:#b4533a;
  --t-accent-soft:#f6e9e2;
  --t-gold:#a5711f;
  --t-radius:16px;
  --t-radius-sm:10px;
  --t-shadow:0 1px 2px rgba(30,43,38,.04),0 8px 24px -12px rgba(30,43,38,.12);
  --t-shadow-hover:0 2px 4px rgba(30,43,38,.05),0 16px 32px -14px rgba(30,43,38,.2);
  --t-max:1200px;
  --t-gutter:32px;
  --t-serif:"Noto Serif SC","Songti SC","Source Han Serif SC","Noto Serif CJK SC",Georgia,serif;
  --t-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;

  /* 旧变量统一到新尺度 */
  --reading:21px;
  --type-scale:.909091; /* 22px × .909 ≈ 20px（住宿、差评、优惠页） */
  --ink:var(--t-ink);
  --muted:var(--t-muted);
  --green:var(--t-green);
  --cream:var(--t-bg);
  --line:var(--t-line);
  --serif:var(--t-serif);
}
@media (min-width:2000px){:root{--type-scale:.909091}}
@media (max-width:780px){:root{--reading:16px;--type-scale:.727273;--t-gutter:16px}}

/* ---------- 基础 ---------- */
html body{
  font-family:var(--t-sans);
  font-size:var(--reading);
  line-height:1.75;
  color:var(--t-text);
  background:var(--t-bg);
  background-image:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
html body h1,html body h2,html body h3,html body h4{color:var(--t-ink);letter-spacing:-.005em}
html body a{text-underline-offset:3px;text-decoration-thickness:1px}
html body ::selection{background:#d9e6dc}

/* ---------- 版心 ---------- */
html body main.wrap,
html body main.food-wrap,
html body main.shop-wrap,
html body main.tv-wrap,
html body main.dd-wrap,
html body main.ov-wrap,
html body>main:not(._){
  max-width:var(--t-max);
  margin-left:auto;margin-right:auto;
  padding-left:var(--t-gutter);padding-right:var(--t-gutter);
  padding-top:48px;padding-bottom:72px;
  box-sizing:border-box;
}
@media (max-width:780px){
  html body main.wrap,html body main.food-wrap,html body main.shop-wrap,html body main.tv-wrap,
  html body main.dd-wrap,html body main.ov-wrap,html body>main:not(._){padding-top:24px;padding-bottom:48px}
}

/* ---------- 顶部导航：一行、吸顶、毛玻璃 ---------- */
html body .site-header{
  position:sticky;top:0;z-index:950;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:24px;
  max-width:none;margin:0;
  padding:12px max(var(--t-gutter),calc((100% - var(--t-max))/2 + var(--t-gutter)));
  background:rgba(247,245,239,.86);
  -webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);
  border-bottom:1px solid var(--t-line);
  font-size:16px;
}
html body .site-header::before{display:none}
html body .site-header .brand{display:flex;align-items:center;gap:10px;flex:none;text-decoration:none;color:var(--t-ink);font-size:17px;font-weight:700;line-height:1.2;font-family:var(--t-serif)}
html body .site-header .brand small{display:block;font-family:var(--t-sans);font-size:10px;letter-spacing:.18em;font-weight:600;color:var(--t-muted);margin-top:3px}
html body .site-header .brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--t-green);color:#fff;font-size:16px;font-family:var(--t-serif);box-shadow:none}
html body .site-nav{display:flex;flex-wrap:nowrap;gap:2px;overflow-x:auto;scrollbar-width:none;width:auto;justify-content:flex-end;grid-template-columns:none}
html body .site-nav::-webkit-scrollbar{display:none}
html body .site-nav a{
  flex:none;white-space:nowrap;
  font-size:15px;font-weight:600;line-height:1;
  padding:10px 13px;border-radius:999px;
  color:var(--t-text);background:transparent;box-shadow:none;transform:none;
  min-height:0;
}
html body .site-nav a:hover{background:var(--t-green-soft);color:var(--t-green);transform:none}
html body .site-nav a[aria-current=page]{background:var(--t-green);color:#fff;box-shadow:none}
html body .site-nav a.nav-fav{color:var(--t-accent);grid-column:auto}
html body .site-nav a.nav-fav[aria-current=page]{background:var(--t-accent);color:#fff}
@media (max-width:1100px){
  html body .site-header{flex-wrap:wrap;gap:8px 16px;padding-top:10px;padding-bottom:8px}
  html body .site-nav{width:100%;justify-content:flex-start;margin:0 calc(var(--t-gutter) * -1);padding:0 var(--t-gutter);box-sizing:content-box}
}
@media (max-width:780px){
  html body .site-header{position:sticky}
  html body .site-header .brand{font-size:16px}
  html body .site-nav a{font-size:15px;padding:0 14px;min-height:40px;display:inline-flex;align-items:center}
}

/* ---------- 标题层级 ---------- */
html body h1{
  font-family:var(--t-serif);font-weight:800;
  font-size:clamp(32px,3.6vw,48px)!important;
  line-height:1.18!important;
  margin:14px 0 18px;
  text-wrap:balance;
}
html body h1 em{font-style:normal;color:var(--t-accent)}
html body main h2{
  font-family:var(--t-serif);font-weight:800;
  font-size:clamp(24px,2.3vw,32px);
  line-height:1.3;text-wrap:balance;
}
html body main h3{font-size:clamp(18px,1.5vw,21px);line-height:1.4}
html body main h4{font-size:17px;line-height:1.45}
@media (max-width:780px){
  html body h1{font-size:30px!important}
  html body main h2{font-size:24px}
  html body main h3{font-size:18px}
  html body main h4{font-size:16px}
}

/* 小标题 / eyebrow */
html body .eyebrow,html body .food-eyebrow,html body .shop-eyebrow,html body .dd-eyebrow,html body .ov-eyebrow,
html body .section-number,html body .tv-eyebrow{
  font-family:var(--t-sans);
  font-size:13px!important;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--t-accent);
}
html body .eyebrow::before,html body .food-eyebrow::before,html body .shop-eyebrow::before{display:none}

/* 区块标题行：左标题、右说明 */
html body .food-section-heading,html body .shop-section-heading,html body .dd-section-heading,html body .ov-section-heading,html body .tv-head{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px 48px;align-items:end;
  border-bottom:1px solid var(--t-line);padding-bottom:20px;margin-bottom:28px;
}
html body .food-section-heading h2,html body .shop-section-heading h2,html body .dd-section-heading h2,html body .ov-section-heading h2,html body .tv-head h2{margin:8px 0 0}
html body .food-section-heading>p,html body .shop-section-heading>p,html body .dd-section-heading>p,html body .ov-section-heading>p,html body .tv-head>p{
  margin:0;font-size:16px;line-height:1.7;color:var(--t-muted);max-width:none;
}
@media (max-width:900px){
  html body .food-section-heading,html body .shop-section-heading,html body .dd-section-heading,html body .ov-section-heading,html body .tv-head{grid-template-columns:1fr}
  html body .food-section-heading>p,html body .shop-section-heading>p,html body .dd-section-heading>p,html body .ov-section-heading>p,html body .tv-head>p{font-size:14px}
}

/* 区块间距 */
html body main>section{margin-top:72px}
html body main>section:first-child,html body main>section[class$="-hero"]{margin-top:0}
@media (max-width:780px){html body main>section{margin-top:48px}}

/* ---------- 首屏 ---------- */
html body .food-hero,html body .shop-hero,html body .ov-hero,html body .dd-hero,html body .tv-hero,html body main.wrap>.intro{
  gap:48px;align-items:center;padding:16px 0 40px;margin-bottom:8px;
}
html body .food-hero p,html body .shop-hero-copy>p,html body .ov-hero p,html body .dd-hero p,html body .tv-hero p,html body main.wrap>.intro p{
  font-size:18px;line-height:1.75;color:var(--t-text);max-width:38em;
}
html body .food-cover img{border-radius:var(--t-radius)}
@media (max-width:780px){
  html body .food-hero p,html body .shop-hero-copy>p,html body .ov-hero p,html body .dd-hero p,html body .tv-hero p,html body main.wrap>.intro p{font-size:16px}
}

/* ---------- 按钮 ---------- */
html body .food-button,html body .shop-button,html body .ov-actions a,html body .dd-actions a,html body .tv-btns a,
html body .food-hero-actions a,html body .shop-actions a{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:44px;padding:0 20px;border-radius:999px;
  font-size:15px!important;font-weight:650;line-height:1.2;text-decoration:none;
  background:var(--t-paper);color:var(--t-green)!important;
  border:1px solid var(--t-line-strong);box-shadow:none;
  transition:background .15s,border-color .15s,color .15s,transform .15s;
}
html body .food-button:hover,html body .shop-button:hover,html body .ov-actions a:hover,html body .dd-actions a:hover,html body .tv-btns a:hover,
html body .food-hero-actions a:hover,html body .shop-actions a:hover{border-color:var(--t-green);background:var(--t-green-soft);transform:translateY(-1px)}
html body .food-hero-actions a:first-child,html body .shop-actions a:first-child,html body .ov-actions a:first-child,html body .dd-actions>a:first-child,
html body .food-button:not(.secondary),html body .shop-button:not(.light){
  background:var(--t-green);color:#fff!important;border-color:var(--t-green);
}
html body .food-hero-actions a:first-child:hover,html body .shop-actions a:first-child:hover,html body .ov-actions a:first-child:hover,
html body .food-button:not(.secondary):hover,html body .shop-button:not(.light):hover{background:var(--t-green-2)}
html body .food-hero-actions,html body .shop-actions,html body .ov-actions,html body .tv-btns{display:flex;flex-wrap:wrap;gap:10px}

/* 通用按钮、输入框 */
html body main button,html body main select,html body main input[type=text],html body main input[type=search],html body main input[type=number]{
  font-family:inherit;border-radius:999px;
}
html body main select,html body main input[type=text],html body main input[type=search],html body main input[type=number]{
  border:1px solid var(--t-line-strong);background:var(--t-paper);min-height:44px;padding:0 14px;font-size:15px;color:var(--t-ink);
}

/* 筛选标签 */
html body .pick-tabs button,html body .shop-tabs button,html body .dd-tabs button,html body .food-kind-tabs button,html body .fav-views button,html body .food-map-tools button,html body .areas button{
  border-radius:999px!important;font-size:14px!important;font-weight:650;min-height:40px!important;padding:0 16px!important;
  background:var(--t-paper)!important;color:var(--t-text)!important;border:1px solid var(--t-line-strong)!important;box-shadow:none!important;
}
html body .pick-tabs button[aria-pressed=true],html body .shop-tabs button[aria-pressed=true],html body .dd-tabs button[aria-pressed=true],
html body .food-kind-tabs button[aria-pressed=true],html body .fav-views button[aria-pressed=true],html body .food-map-tools button[aria-pressed=true],
html body .areas button[aria-pressed=true],html body .shop-tabs button.active,html body .dd-tabs button.active,html body .food-kind-tabs button.active,html body .areas button.active{
  background:var(--t-green)!important;color:#fff!important;border-color:var(--t-green)!important;
}
@media (max-width:780px){
  html body .pick-tabs button,html body .shop-tabs button,html body .dd-tabs button,html body .food-kind-tabs button,html body .fav-views button,html body .food-map-tools button,html body .areas button{min-height:44px!important;font-size:15px!important}
}

/* ---------- 卡片 ---------- */
html body .pick-card,html body .food-card,html body .shop-item,html body .shop-route,html body .shop-video,html body .shop-brand-section .shop-brand-grid>*:not(.shop-brand-letter),
html body .ov-area,html body .fav-card,html body .dd-place-grid>article,html body .dd-route-grid>article,html body .dd-video-grid article,
html body .tv-grid>article,html body .tv-grid>div,html body .album,html body .cards .card,html body .pick-panel,html body .food-guide-card,html body .food-route-grid>article{
  background-color:var(--t-paper);
  border:1px solid var(--t-line);
  border-radius:var(--t-radius);
  box-shadow:var(--t-shadow);
}
html body .pick-card,html body .food-card,html body .shop-item,html body .ov-area,html body .fav-card,html body .dd-place-grid>article{transition:box-shadow .2s,transform .2s}
@media (hover:hover){
  html body .pick-card:hover,html body .food-card:hover,html body .shop-item:hover,html body .dd-place-grid>article:hover{box-shadow:var(--t-shadow-hover);transform:translateY(-2px)}
}
html body .pick-card::before{height:3px;background:var(--t-green)}
html body .pick-card.multi::before{background:linear-gradient(90deg,var(--t-green),var(--t-accent))}

/* 标签胶囊 */
html body .pick-area,html body .chips span,html body .chip{background:var(--t-green-soft);color:var(--t-green)}
html body .pick-cat{background:var(--t-accent-soft);color:var(--t-accent)}
html body .pick-hot{background:var(--t-gold);color:#fff}

/* 说明条 / 提示块 */
html body .food-note,html body .shop-note,html body .ov-note,html body .dd-note,html body .notice,html body .review-banner,html body .note,html body .important{
  border-radius:var(--t-radius-sm);border:1px solid var(--t-line);background:#fbfaf6;
  font-size:15px;line-height:1.7;color:var(--t-text);box-shadow:none;
}
@media (max-width:780px){
  html body .food-note,html body .shop-note,html body .ov-note,html body .dd-note,html body .notice,html body .review-banner,html body .note,html body .important{font-size:14px}
}

/* 统计条 */
html body .food-intro-strip,html body .stats{border-radius:var(--t-radius);border:1px solid var(--t-line);background:var(--t-paper);box-shadow:var(--t-shadow)}
html body .food-intro-strip strong,html body .stats strong,html body .stat strong{font-family:var(--t-serif);color:var(--t-green)}

/* 表格 */
html body main table{border-collapse:collapse;font-size:15px}
html body main th{background:#f2f0e8;color:var(--t-ink);font-weight:700}
html body main th,html body main td{border-color:var(--t-line)}

/* 地图容器 */
html body .leaflet-container{border-radius:var(--t-radius);font-family:var(--t-sans)}

/* ---------- 页脚 ---------- */
html body .site-footer{
  max-width:var(--t-max);margin:40px auto 0;box-sizing:border-box;
  padding:28px var(--t-gutter) 40px;border-top:1px solid var(--t-line);
  font-size:14px;line-height:1.8;color:var(--t-muted);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;background:transparent;
}
html body .site-footer a{color:var(--t-green)}

/* ---------- 底部浮动条（喜欢 / 比较） ---------- */
html body .comparebar{
  border-radius:999px;background:rgba(31,78,64,.96);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  box-shadow:0 12px 32px -12px rgba(0,0,0,.35);
  font-size:15px;
}
html body .comparebar button{font-size:14px;min-height:40px;border-radius:999px}

/* 焦点 */
html body a:focus-visible,html body button:focus-visible,html body summary:focus-visible,html body select:focus-visible,html body input:focus-visible{
  outline:2px solid var(--t-accent);outline-offset:2px;
}

/* 打印不显示导航 */
@media print{html body .site-header{display:none!important}}

/* 吸顶层级：筛选栏贴在导航下方；地图控件不压导航 */
html body .leaflet-container{isolation:isolate;z-index:0}
@media (min-width:1101px){
  html body.lodging-body .filters{top:61px;padding:12px 0}
}
@media (max-width:1100px){
  html body.lodging-body .filters{position:relative;top:auto}
}

/* 首页地图标签：缩小，避免盖住街道 */
html body .district-label{font-size:16px;line-height:30px;font-family:var(--t-sans)}
html body .district-label b{font-weight:700;color:var(--t-ink);border-color:var(--t-line);border-radius:999px;padding:3px 10px}
html body .metro-name{font-size:14px;line-height:22px;top:-26px}
@media (max-width:780px){html body .district-label{font-size:15px;line-height:28px}}
html body .shop-brand-letter{background:var(--t-green);color:#f8f5ec;border-radius:var(--t-radius)}
html body .shop-brand-letter h3{color:#fff}
html body .hanwoo-picture figcaption a{color:inherit}
html body .favorites-body .fav-stat.empty strong,html body .fav-stat.empty strong{color:#8f9a92}
html body main a.tv-btn{background:var(--t-green);color:#fff!important;border:1px solid var(--t-green);border-radius:999px;min-height:44px;font-size:15px;box-shadow:none}
html body main a.tv-btn:hover{background:var(--t-green-2)}
html body main a.tv-btn.light{background:var(--t-paper);color:var(--t-green)!important;border-color:var(--t-line-strong)}
html body .ov-hero .ov-dates p{color:inherit;font-size:15px;max-width:none}
html body .site-footer a{color:var(--t-green)!important}
html body .site-footer span,html body .site-footer p{color:var(--t-muted)}

/* 桌面正文统一在 15–17px */
@media (min-width:781px){
  html body.reviews-body main,html body.savings-body main{font-size:17px}
  html body .food-price-intro p{font-size:17px}
  html body .pick-card .pick-order{font-size:16px}
  html body .pick-card .pick-meta,html body .pick-card .pick-note,html body .pick-card .pick-video,html body .pick-card .pick-foot,html body .pick-sources p{font-size:14px}
  html body .pick-mentions li{font-size:15px}
}

/* 手机：标签与说明不小于 14px，心形按钮可点区域 44px */
@media (max-width:900px){
  html body :is(.eyebrow,.food-eyebrow,.shop-eyebrow,.tv-eyebrow,.dd-eyebrow,.section-number,.chip,.photo-note,.mapcaption,.legend-exit,.legend-metro,
    .food-tag,.food-price-status,.food-menu-date,.food-photo-credit,.food-map-status,.food-sources a,.food-map-legend span,
    .shop-card-brand,.shop-price-note,.shop-photo-link,.shop-photo-tag,.shop-card-meta span,.shop-video-meta span,.shop-no-photo,.shop-no-photo *,
    .tv-tag,.dd-conflict,.dd-meta,.dd-price-note,.dd-source-note,.dd-source-note a,.dd-tag,.dd-map-legend span,.dd-filters p,
    .ov-chip,.ov-new,.ov-eyebrow,.like-text,main th,main .tag,.fav-privacy,.photo-more,.pick-order small,main figcaption,main figcaption *,main p.footer,.site-nav a.nav-fav){font-size:14px!important}
  html body .like-btn.small{width:44px;height:44px;min-height:44px!important}
  html body .like-btn:not(.small){min-height:44px}
}

/* 手机：博主吃逛页、页脚、筛选计数的小字也不小于 14px */
@media (max-width:900px){
  html body.explore-body :is(.ex-ko,.ex-place-number,.ex-product-links a,.ex-source em,.ex-filter-bottom label,.explore-fields label,.ex-search-label,
    .coverage-note p,.coverage-note summary,.explore-eyebrow,.map-explanation,.ex-group-title span,.video-state,summary span,button span){font-size:14px!important}
  html body .site-footer,html body .site-footer :is(a,span,p){font-size:14px}
  html body main button>span{font-size:14px}
}
