/* ============================================================
   云暖・旅居 —— 全站唯一样式表
   视觉世界：山野手作编辑部
   设计系统 token 见 :root；后续子代理只允许按 CONVENTIONS.md
   追加组件样式，不得改动本文件基础样式。
   ============================================================ */

/* ---------- 设计 token ---------- */
:root{
  /* 色板（oklch 派生，全站唯一） */
  --paper:#EDE6D8;      /* 纸米 主底 */
  --paper-deep:#E1D8C4; /* 纸米深 分区/卡底 */
  --text:#3A3127;       /* 深棕褐 正文（禁近黑） */
  --ink:#3A3127;        /* 墨色 文字/边框强调（非黑深棕褐，补齐全站 var(--ink) 引用） */
  --text-soft:#5B4F40;  /* 深棕褐浅 次级文字 */
  --moss:#40594C;       /* 松烟青 主强调 */
  --moss-deep:#2F4A3E;  /* 深松烟青 深色区/主视觉底（非黑） */
  --earthen:#B4603A;    /* 陶土赤 唯一记忆点强调 */
  --earthen-deep:#964E2B; /* 陶土赤加深 按钮底/小字强调（对比度≥4.5:1） */
  --mist:#E3E9E2;       /* 雾青 浅洗涤区 */
  --indigo:#3B4E6E;     /* 靛蓝 扎染蓝 极少量 */

  /* 字体 */
  --serif:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;

  /* 版式 */
  --measure:34em;                 /* 中文行长约 40 全角字 */
  --radius:3px;                   /* 编辑式手作小圆角（非零、不堆圆角卡片） */
  --gutter:clamp(1.1rem, 4vw, 2.6rem);
  --section-y:clamp(3.2rem, 7vw, 5.6rem);

  /* 排印阶梯（移动 → 桌面） */
  --fs-xs:.78rem;
  --fs-sm:.9rem;
  --fs-body:1.02rem;
  --fs-lg:1.22rem;
  --fs-xl:1.6rem;
  --fs-2xl:2rem;
  --fs-hero:clamp(2.2rem, 6.4vw, 3.9rem);
}

/* ---------- 基础 ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  color:var(--text);
  font-family:var(--sans);
  font-weight:400;
  font-size:var(--fs-body);
  line-height:1.75;
}
img{max-width:100%;height:auto;display:block;}
/* 移动端横向溢出防御：阻止网格/弹性子项 min-content 撑开布局，文本与链接断词换行 */
.wrap,.hero-content,main,section,.site-nav,.footer-inner{min-width:0;}
.grid-4>*,.grid-3>*,.grid-2>*,.state-grid>*,.fact-strip>*,.taste-grid>*,.climate>*,.hero-actions>*,.pc-row>*{min-width:0;}
a,p,h1,h2,h3,h4,li,span,.btn{overflow-wrap:break-word;word-wrap:break-word;}
body{overflow-x:clip;}
a{color:var(--moss);text-decoration-thickness:1px;text-underline-offset:3px;}
a:hover{color:var(--earthen);}
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:600;
  line-height:1.28;
  margin:0 0 .55em;
  text-wrap:balance;
}
h1{font-weight:900;}
p{margin:0 0 1em;max-width:var(--measure);}
ul,ol{margin:0 0 1em;padding-left:1.2em;}
li{margin-bottom:.35em;}
:focus-visible{outline:3px solid var(--earthen);outline-offset:3px;border-radius:1px;}
::selection{background:var(--earthen);color:var(--paper);}
.visually-hidden{
  position:absolute;width:1px;height:1px;margin:-1px;
  padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;
}

/* 跳转链接 */
.skip-link{
  position:absolute;left:1rem;top:0.5rem;z-index:120;
  transform:translateY(-300%);
  background:var(--moss-deep);color:var(--paper);
  padding:.5rem 1rem;text-decoration:none;
}
.skip-link:focus{transform:none;}

/* ---------- 通用容器 ---------- */
.wrap{max-width:76rem;margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:var(--section-y);}
.section--mist{background:var(--mist);}
.section--paper-deep{background:var(--paper-deep);}
.section--moss{
  background:var(--moss-deep);
  color:#EFE9DA;
}
.section--moss p,.section--moss li{color:#D9D2C2;}
.section--ink{
  background:var(--moss-deep);
  color:#EFE9DA;
}
.section--ink p,.section--ink li{color:#D9D2C2;}
.band--ink{
  background:var(--moss-deep);
  color:#EFE9DA;
}
.band--ink .section-label{color:#E8D9B8;}
.band--ink h1,.band--ink h2{color:#FBF7ED;}
.band--ink p{color:#D6CDBA;}
.section-label{
  font-family:var(--serif);
  font-size:var(--fs-sm);
  font-weight:600;
  letter-spacing:.04em;
  color:var(--earthen-deep);
  margin:0 0 .9rem;
  display:flex;align-items:center;gap:.6rem;
}
.section-label::before{
  content:"";width:1.6rem;height:2px;background:currentColor;display:inline-block;
}
.section-head h2{font-size:var(--fs-2xl);}
.section-head p{color:var(--text-soft);}
.section-lead{
  font-family:var(--serif);font-size:var(--fs-lg);
  color:var(--text);max-width:var(--measure);
}

/* ---------- 品牌印章 ---------- */
.brand-seal{
  width:2.2rem;height:2.2rem;flex:none;
  color:var(--earthen);
}
.seal-lg{width:5.2rem;height:5.2rem;}

/* ---------- 山形/雾纹分隔 ---------- */
.mountain-divider{
  display:block;width:100%;height:clamp(3rem,7vw,5.5rem);
  color:var(--moss);
}
.mountain-divider .ridge-far{fill:var(--indigo);opacity:.18;}
.mountain-divider .ridge-near{fill:currentColor;opacity:.34;}
.mountain-divider .mist-line{stroke:var(--earthen);stroke-width:2;opacity:.6;fill:none;}
.mountain-divider--mist{color:var(--moss);}
.mountain-divider--moss{color:var(--moss-deep);}

/* ---------- 页头与导航 ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(237,230,216,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(47,74,62,.14);
}
.header-inner{
  max-width:76rem;margin-inline:auto;padding-inline:var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:3.9rem;
}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--text);}
.brand-name{
  font-family:var(--serif);font-weight:900;font-size:1.14rem;letter-spacing:.05em;
}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.2rem;}
.site-nav a{
  display:inline-block;padding:.45rem .72rem;
  color:var(--text-soft);text-decoration:none;
  font-size:.94rem;border-bottom:2px solid transparent;
}
.site-nav a:hover{color:var(--text);}
.site-nav a[aria-current="page"]{
  color:var(--text);border-bottom-color:var(--earthen);font-weight:500;
}
.nav-toggle{
  display:none;
  background:none;border:1px solid rgba(47,74,62,.25);
  width:2.7rem;height:2.7rem;border-radius:2px;
  color:var(--text);cursor:pointer;
  align-items:center;justify-content:center;
}
.nav-toggle svg{width:1.5rem;height:1.5rem;}
.nav-toggle .icon-close{display:none;}
.nav-toggle[aria-expanded="true"] .icon-close{display:block;}
.nav-toggle[aria-expanded="true"] .icon-menu{display:none;}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
  min-height:30rem;
}
@media (min-width:720px){
  .hero{aspect-ratio:16/9;min-height:26rem;}
}
@media (min-width:1024px){
  .hero{aspect-ratio:16/9;min-height:0;max-height:86vh;}
}
.hero-media{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center 62%;
}
.hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(100deg,
    rgba(47,74,62,.8) 0%,
    rgba(47,74,62,.5) 34%,
    rgba(47,74,62,.14) 68%,
    rgba(47,74,62,.04) 100%);
}
.hero-content{
  position:absolute;z-index:2;inset:0;
  display:flex;flex-direction:column;justify-content:flex-end;
  max-width:76rem;margin-inline:auto;
  padding:clamp(3rem,9vw,6rem) var(--gutter) clamp(2.6rem,7vw,4.5rem);
  color:#F4EFE4;
}
.hero-kicker{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--serif);font-size:var(--fs-sm);
  letter-spacing:.06em;color:#E8DFCC;
  margin:0 0 1.1rem;
}
.hero-kicker svg{width:1.15rem;height:1.15rem;color:var(--earthen);}
.hero-title{
  font-size:var(--fs-hero);font-weight:900;color:#FBF7ED;
  max-width:13em;margin:0 0 .8rem;
}
.hero-sub{
  font-size:var(--fs-lg);color:#EFE9DB;
  max-width:26em;margin:0 0 1.6rem;
}
.hero-foot{font-size:var(--fs-sm);color:#CFC6B2;max-width:30em;margin:1.6rem 0 0;}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;}

/* ---- Hero 标题行断行辅助 ---- */
.hero-title .hl{display:block;}
.hero-seal{
  position:absolute;z-index:2;
  right:max(var(--gutter), 4vw);top:clamp(2.2rem,6vw,4rem);
  transform:rotate(-8deg);
  color:var(--earthen);
}
.hero-seal svg{width:clamp(3.6rem,8vw,5.4rem);height:auto;}

/* 纵向 Hero（州页/美食页），21:9 主视觉 */
.hero--tall{aspect-ratio:21/9;min-height:26rem;}
@media (max-width:719px){.hero--tall{aspect-ratio:4/3;min-height:24rem;}}
.hero--tall .hero-content{justify-content:flex-end;}

/* ---- Hero 进场 staged 序列（main.js 加 .hero--play 触发；印章先落→标题逐行压入→副题/CTA 随后）---- */
.hero--play .hero-seal{animation:seal-drop .6s cubic-bezier(.2,.75,.28,1.18) .1s both;}
.hero--play .hero-kicker{animation:fade-up .5s ease-out .18s both;}
.hero--play .hero-title .hl{animation:line-press .62s cubic-bezier(.22,.9,.32,1) .28s both;}
.hero--play .hero-title .hl:nth-child(2){animation-delay:.42s;}
.hero--play .hero-sub{animation:fade-up .55s ease-out .56s both;}
.hero--play .hero-foot{animation:fade-up .55s ease-out .66s both;}
.hero--play .hero-actions{animation:fade-up .55s ease-out .76s both;}
@keyframes seal-drop{
  from{opacity:0;transform:translateY(-1.5rem) rotate(-20deg) scale(.9);}
  to{opacity:1;transform:translateY(0) rotate(-8deg) scale(1);}
}
@keyframes line-press{
  from{opacity:0;transform:translateY(.9em);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes fade-up{
  from{opacity:0;transform:translateY(.7em);}
  to{opacity:1;transform:translateY(0);}
}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.72rem 1.35rem;
  font-family:var(--sans);font-size:.96rem;font-weight:500;
  text-decoration:none;cursor:pointer;
  border:1px solid transparent;border-radius:2px;
  line-height:1.3;transition:background .18s,color .18s,border-color .18s;
}
.btn svg{width:1.05rem;height:1.05rem;}
.btn--earthen{background:var(--earthen);color:#FFF7EC;}
.btn--earthen:hover{background:#9E5330;color:#FFF7EC;}
.btn--moss{background:var(--moss);color:#F2EEE2;}
.btn--moss:hover{background:var(--moss-deep);color:#F2EEE2;}
.btn--ghost{
  background:transparent;border-color:rgba(244,239,228,.65);color:#F4EFE4;
}
.btn--ghost:hover{background:rgba(244,239,228,.14);color:#FFFDF6;}
.btn--ghost-dark{
  background:transparent;border-color:rgba(47,74,62,.4);color:var(--text);
}
.btn--ghost-dark:hover{border-color:var(--text);background:rgba(47,74,62,.05);}

/* ---------- 卡片与网格 ---------- */
.card{
  background:var(--paper-deep);
  border:1px solid rgba(47,74,62,.12);
  padding:1.5rem 1.5rem 1.6rem;
}
.card h3{font-size:var(--fs-lg);}
.card p{color:var(--text-soft);font-size:var(--fs-sm);}
.card .card-mark{
  font-family:var(--serif);font-size:var(--fs-2xl);font-weight:900;
  color:var(--earthen);line-height:1;display:block;margin-bottom:.6rem;
}
.card--moss{background:var(--moss);color:#F2EEE2;border-color:transparent;}
.card--moss h3{color:#FBF7ED;}
.card--moss p{color:#CFE0D4;}

/* 网格断点列数约定：4→2→1、3→1，杜绝 N%C==1 */
.grid-4{display:grid;gap:1.1rem;grid-template-columns:1fr;}
.grid-3{display:grid;gap:1.1rem;grid-template-columns:1fr;}
.grid-2{display:grid;gap:1.4rem;grid-template-columns:1fr;}
@media (min-width:720px){
  .grid-2{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:1024px){
  .grid-4{grid-template-columns:repeat(4,1fr);}
  .grid-3{grid-template-columns:repeat(3,1fr);}
}

/* 数字要点条 */
.fact-strip{
  display:grid;gap:.6rem;grid-template-columns:repeat(2,1fr);
  margin-top:1.4rem;
}
.fact-strip .fact{
  border-top:2px solid rgba(47,74,62,.2);
  padding-top:.6rem;
}
.fact .fact-num{font-family:var(--serif);font-weight:900;font-size:var(--fs-xl);display:block;color:var(--text);}
.fact .fact-label{font-size:var(--fs-xs);color:var(--text-soft);}
@media (min-width:720px){.fact-strip{grid-template-columns:repeat(4,1fr);}}

/* ---------- 气候数据 ---------- */
.climate{
  display:grid;gap:1rem;
  grid-template-columns:repeat(3,1fr);
  margin:1.4rem 0 0;
}
.climate-item{
  border-top:2px solid var(--moss);
  padding-top:.7rem;
}
.climate-item .k{font-size:var(--fs-xs);color:var(--text-soft);letter-spacing:.05em;}
.climate-item .v{font-family:var(--serif);font-size:var(--fs-xl);font-weight:600;margin-top:.15rem;}
.climate-item .v small{font-size:.72em;font-weight:400;color:var(--text-soft);}
@media (max-width:719px){
  .climate{grid-template-columns:1fr;gap:.9rem;}
}

/* ---------- 物价参考卡 ---------- */
.price-card{
  background:var(--paper-deep);
  border:1px solid rgba(47,74,62,.14);
  border-left:4px solid var(--earthen);
  padding:1.3rem 1.4rem;
}
.price-card .pc-row{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px dashed rgba(47,74,62,.18);}
.price-card .pc-row:last-child{border-bottom:none;}
.price-card .pc-k{color:var(--text-soft);font-size:var(--fs-sm);}
.price-card .pc-v{font-family:var(--serif);font-weight:600;font-size:var(--fs-lg);}
.price-card .pc-note{font-size:var(--fs-xs);color:var(--text-soft);margin-top:.7rem;}

/* ---------- 州卡片网格（destination/index、food/index 的 16 州版图） ---------- */
.state-grid{
  display:grid;gap:1rem;
  grid-template-columns:1fr;
}
.state-card{
  background:var(--paper-deep);
  border:1px solid rgba(47,74,62,.12);
  padding:1.2rem 1.2rem 1.3rem;
  text-decoration:none;color:var(--text);
  display:block;
  position:relative;
}
.state-card:hover{border-color:var(--earthen);}
.state-card .sc-name{
  font-family:var(--serif);font-weight:900;font-size:1.22rem;
  display:flex;align-items:baseline;gap:.5rem;
}
.state-card .sc-en{
  font-family:var(--serif);font-size:var(--fs-xs);color:var(--earthen-deep);
  font-style:normal;
}
.state-card .sc-region{
  font-size:var(--fs-xs);color:var(--text-soft);letter-spacing:.05em;
}
.state-card .sc-line{font-size:var(--fs-sm);color:var(--text-soft);margin-top:.45rem;line-height:1.55;}
.state-card .sc-line strong{color:var(--text);font-weight:500;}
.state-card::after{
  content:"";
  position:absolute;right:1.1rem;top:1.25rem;
  width:.55rem;height:.55rem;
  border-top:2px solid var(--earthen);border-right:2px solid var(--earthen);
  transform:rotate(45deg);
  opacity:0;transition:opacity .18s;
}
.state-card:hover::after{opacity:1;}
@media (min-width:720px){.state-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1024px){.state-grid{grid-template-columns:repeat(4,1fr);}}

/* ---------- 味觉卡片（美食州页） ---------- */
.taste-grid{display:grid;gap:1.1rem;grid-template-columns:1fr;}
.taste-card{
  background:var(--paper-deep);
  border:1px solid rgba(47,74,62,.12);
  padding:1.4rem 1.5rem 1.5rem;
  position:relative;
}
.taste-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--moss);opacity:.55;
}
.taste-card .tc-title{
  font-family:var(--serif);font-weight:600;font-size:var(--fs-lg);
  display:flex;align-items:center;gap:.5rem;margin-bottom:.55rem;
}
.taste-card .tc-title svg{width:1.15rem;height:1.15rem;color:var(--earthen);}
.taste-card .tc-list{list-style:none;margin:0;padding:0;}
.taste-card .tc-list li{
  padding:.34rem 0;border-bottom:1px dashed rgba(47,74,62,.16);
  font-size:var(--fs-sm);color:var(--text);
}
.taste-card .tc-list li:last-child{border-bottom:none;}
/* 五组味觉：3 列 → 1 列（跳过 2 列，避免 2+2+1 尾行单卡） */
@media (min-width:1024px){.taste-grid{grid-template-columns:repeat(3,1fr);}}

/* ---------- 州页 teaser 互链 ---------- */
.teaser{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1.2rem;
  background:var(--mist);
  border:1px solid rgba(59,78,110,.18);
  padding:1.6rem var(--gutter);
}
.teaser .teaser-title{font-family:var(--serif);font-weight:600;font-size:var(--fs-xl);margin:0;}
.teaser .teaser-text{color:var(--text-soft);max-width:var(--measure);margin:.2rem 0 0;}
.teaser .btn{margin-top:.2rem;}

/* ---------- 引语 ---------- */
.quote{
  font-family:var(--serif);font-size:var(--fs-xl);font-weight:600;
  line-height:1.55;max-width:24em;
  border-left:4px solid var(--earthen);
  padding-left:1.2rem;margin:0;
}
.quote small{display:block;font-family:var(--sans);font-size:var(--fs-sm);font-weight:400;color:var(--text-soft);margin-top:.7rem;}

/* ---------- 承诺条（深色区） ---------- */
.promise{
  border:1px solid rgba(230,223,204,.28);
  border-left:4px solid var(--earthen);
  padding:1rem 1.2rem;
  font-family:var(--serif);font-size:var(--fs-lg);line-height:1.5;
  max-width:var(--measure);margin:0 0 1.8rem;color:#F4EFE4;
}
.promise small{font-family:var(--sans);font-size:var(--fs-sm);color:#C9D6CB;display:block;margin-top:.3rem;}

/* ---------- 口碑占位 ---------- */
.story-placeholder{
  border:1px dashed rgba(47,74,62,.35);
  padding:1.4rem 1.5rem;
  font-family:var(--serif);color:var(--text-soft);
}

/* ---------- 表格 ---------- */
.data-table{
  width:100%;border-collapse:collapse;table-layout:fixed;
  font-size:var(--fs-sm);
}
.data-table caption{caption-side:top;text-align:left;font-family:var(--serif);font-weight:600;font-size:var(--fs-lg);margin-bottom:.6rem;}
.data-table th,.data-table td{
  border-bottom:1px solid rgba(47,74,62,.16);
  padding:.6rem .6rem;
  text-align:left;vertical-align:top;
}
.data-table th{font-family:var(--serif);font-weight:600;color:var(--text);}
.data-table td{color:var(--text-soft);}

/* ---------- 表单 ---------- */
.contact-form{display:grid;gap:1rem;}
.form-field label{display:block;font-size:var(--fs-sm);font-weight:500;margin-bottom:.35rem;}
.form-field input,.form-field textarea{
  width:100%;
  background:var(--paper);
  border:1px solid rgba(47,74,62,.35);
  padding:.65rem .8rem;
  font-family:var(--sans);font-size:1rem;color:var(--text);
}
.form-field input:focus,.form-field textarea:focus{
  outline:3px solid var(--earthen);outline-offset:1px;border-color:var(--text);
}
.form-status{
  font-size:var(--fs-sm);
  padding:.7rem .9rem;
  border:1px solid var(--moss);
  color:var(--moss);
  background:rgba(64,89,76,.07);
}
.form-status[hidden]{display:none;}

/* ---------- 页脚 ---------- */
.site-footer{
  background:var(--moss-deep);
  color:#E6DFCC;
  position:relative;
}
.site-footer a{color:#C9D6CB;text-decoration:none;}
.site-footer a:hover{color:#F4EFE4;text-decoration:underline;}
.footer-inner{
  max-width:76rem;margin-inline:auto;
  padding:2.8rem var(--gutter) 2.2rem;
}
.footer-head{display:flex;align-items:center;gap:.8rem;margin-bottom:1.8rem;}
.footer-head .brand-seal{width:3rem;height:3rem;}
.footer-tagline{
  font-family:var(--serif);font-size:1.4rem;font-weight:900;color:#F4EFE4;
  margin:0;
}
.footer-cols{
  display:grid;gap:2rem;
  grid-template-columns:1fr;
}
.footer-title{
  font-family:var(--serif);font-size:var(--fs-sm);font-weight:600;
  color:#A8B8AB;letter-spacing:.06em;margin-bottom:.7rem;
}
.footer-links{list-style:none;margin:0;padding:0;}
.footer-links li{margin-bottom:.45rem;}
.footer-links a{font-size:var(--fs-sm);}
.footer-phone{font-size:var(--fs-sm);margin:.35rem 0;color:#D9D2C2;}
.footer-phone a{color:inherit;text-decoration:none;}
.footer-phone a:hover{color:#F4EFE4;text-decoration:underline;}
.footer-credit{
  flex-basis:100%;width:100%;
  font-size:var(--fs-xs);color:#9AA99C;
  margin:.2rem 0 0;max-width:none;
}
.footer-note{font-size:var(--fs-xs);color:#9AA99C;margin-top:.8rem;}
.footer-bottom{
  border-top:1px solid rgba(230,223,204,.14);
  margin-top:2rem;padding-top:1.2rem;
  display:flex;flex-wrap:wrap;gap:.6rem 2rem;justify-content:space-between;
  font-size:var(--fs-xs);color:#A8B8AB;
}
.footer-mountains{
  display:block;width:100%;height:clamp(2.6rem,6vw,4.2rem);
  transform:rotate(180deg);
}
.footer-mountains .ridge-far{fill:var(--indigo);opacity:.22;}
.footer-mountains .ridge-near{fill:var(--paper);opacity:.1;}
@media (min-width:720px){
  .footer-cols{grid-template-columns:1.2fr 1fr 1fr;}
}

/* ---------- 滚动揭示 ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease;}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  *{animation:none!important;transition:none!important;}
}

/* ---------- 响应式导航 ---------- */
@media (max-width:899px){
  .nav-toggle{display:flex;}
  .site-nav{
    position:fixed;inset:0 0 auto 0;top:3.9rem;z-index:99;
    background:var(--paper);
    border-bottom:1px solid rgba(47,74,62,.16);
    max-height:0;overflow:hidden;
    transition:max-height .32s ease;
  }
  .site-nav.is-open{max-height:calc(100vh - 3.9rem);overflow-y:auto;}
  .site-nav ul{flex-direction:column;padding:1rem var(--gutter) 1.4rem;gap:.2rem;}
  .site-nav a{
    display:block;padding:.8rem .4rem;
    font-size:1.05rem;border-bottom:1px solid rgba(47,74,62,.08);
  }
  .site-nav a[aria-current="page"]{border-bottom-color:var(--earthen);}
}

/* ---------- 小屏细节 ---------- */
@media (max-width:719px){
  :root{
    --fs-xl:1.45rem;
    --fs-2xl:1.7rem;
  }
  .hero-scrim{background:linear-gradient(180deg,rgba(47,74,62,.72),rgba(47,74,62,.42) 55%,rgba(47,74,62,.14));}
  .hero-seal{display:none;}
  .quote{font-size:var(--fs-lg);}
}
