/* ============================================================
   ROAO 光学眼镜 — 视觉系统 v2「光学事务所」
   目标：把"性价比"包装成"专业与透明"，去掉一切廉价符号
   规则：无 emoji / 无圆角药丸 / 无投影 / 无渐变 / 无外部字体依赖
   ============================================================ */

:root{
  --ink:#1a1a17;
  --ink-soft:#4c4a44;
  --muted:#6e6a60;
  --line:#ddd8cd;
  --line-dark:#2e2d29;
  --paper:#f5f3ee;
  --soft:#eceae3;
  --white:#fff;
  --dark:#131311;
  --bronze:#9a7a48;      /* 唯一强调色：暗铜/黄铜 */
  --bronze-soft:#c9ac7f;

  --sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",sans-serif;
  --serif:Georgia,"Times New Roman","Songti SC","SimSun",serif;

  --max:1240px;
  --gut:clamp(20px,5vw,64px);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.9;
  font-weight:400;letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}

/* ---------- 排版原子 ---------- */
.eyebrow{
  font-family:var(--serif);font-size:11px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--bronze);margin:0 0 22px;
}
.eyebrow.on-dark{color:var(--bronze-soft)}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.02em;line-height:1.28}
h1{font-size:clamp(30px,4.4vw,52px);line-height:1.22}
h2{font-size:clamp(23px,2.7vw,34px)}
h3{font-size:19px;line-height:1.5}
p{margin:0 0 1.1em}
.lead{font-size:clamp(16px,1.35vw,18px);line-height:1.95;color:var(--ink-soft)}
.muted{color:var(--muted)}
.rule{height:1px;background:var(--line);border:0;margin:0}
.serif{font-family:var(--serif)}
.bronze{color:var(--bronze)}

/* ---------- 页头 ---------- */
.hd{
  position:sticky;top:0;z-index:60;background:rgba(245,243,238,.92);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line);
}
.hd-in{display:flex;align-items:center;gap:40px;min-height:72px}
.logo{display:flex;align-items:baseline;gap:9px;flex:0 0 auto}
.logo b{font-size:19px;font-weight:700;letter-spacing:.22em}
.logo i{
  font-family:var(--serif);font-style:normal;font-size:9.5px;
  letter-spacing:.26em;color:var(--muted);text-transform:uppercase;
}
.hd nav{display:flex;gap:30px;flex:1;justify-content:center;flex-wrap:wrap}
.hd nav a{
  font-size:13.5px;color:var(--ink-soft);padding:4px 0;
  border-bottom:1px solid transparent;transition:border-color .25s,color .25s;
}
.hd nav a:hover,.hd nav a[aria-current]{color:var(--ink);border-bottom-color:var(--bronze)}
.hd-tel{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;
  font-size:13.5px;font-weight:600;line-height:1;
  height:38px;padding:0 17px;border-radius:999px;
  background:var(--ink);color:var(--paper);
  transition:background .25s,color .25s;
}
.hd-tel svg{width:14px;height:14px;flex:0 0 auto;display:block}
.hd-tel:hover{background:var(--bronze);color:#fff}
/* 移动端汉堡菜单的开关与图标 —— 桌面端一律不显示（只在 ≤680px 的媒体查询里启用） */
.nav-toggle{display:none}
.nav-tgl{display:none}

/* ---------- Hero ---------- */
.hero{background:var(--dark);color:#f2efe9;padding:clamp(64px,9vw,120px) 0 clamp(56px,7vw,96px)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,6vw,84px);align-items:start}
.hero h1{color:#fff;font-size:clamp(30px,4.8vw,68px);line-height:1.16}
.hero h1 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--bronze-soft)}
.hero .lead{color:#b7b3aa;max-width:560px;margin:32px 0 0}
.hero-act{display:flex;gap:16px;align-items:center;margin:52px 0 0;flex-wrap:wrap}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:50px;padding:0 30px;font-size:14px;font-weight:600;
  letter-spacing:.02em;border:1px solid transparent;transition:.25s;
}
.btn-solid{background:#f5f3ee;color:#131311}
.btn-solid:hover{background:var(--white)}
.btn-line{border-color:#4a4945;color:#f2efe9}
.btn-line:hover{border-color:#f2efe9}
.btn-dark{background:var(--dark);color:#f5f3ee}
.btn-dark:hover{background:#2b2a26}
.btn-outline{border-color:var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--paper)}

/* 图片位（细边框 + 圆角，不使用占位灰块）
   overflow:hidden 让图片四角被 frame 的圆角裁切；
   .cap 绝对定位贴在底部，底角也随 frame 裁切。 */
.frame{border:1px solid var(--line);background:var(--soft);position:relative;border-radius:16px;overflow:hidden}
.frame .cap{
  position:absolute;left:0;bottom:0;right:0;padding:14px 18px;
  font-family:var(--serif);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:#7a766c;background:rgba(236,234,227,.92);
  border-top:1px solid var(--line);
}
.hero .frame{border-color:#3a3835;background:#1c1b19}
/* 实拍图：宽高比由图片自身决定（hero 4:5 / 门店 4:3.6），占位框已弃用 */
.frame picture{display:block;line-height:0}
.frame img{width:100%;height:auto;display:block}

/* 微信预约二维码（发丝线 + 纯白底，保证可扫）
   ⚠ 显示尺寸不要小于 ~150px：本码 37 模块 + 8 模块静区 = 45 单位，
   110px 时仅 2.4 像素/模块，实测在 DPR=1 屏幕上解码失败（临界值）。 */
.qr{display:flex;align-items:center;gap:20px;margin:0 0 26px}
.qr-img{flex:0 0 170px;width:170px;padding:10px;background:#fff;border:1px solid var(--line);line-height:0}
.qr-img img{width:100%;height:auto;display:block}
.qr-txt{font-size:13.5px;line-height:1.75;color:#5b554a;margin:0}
.qr-txt b{display:block;font-size:14.5px;color:var(--ink);font-weight:600;margin-bottom:3px}
/* display:table = 收缩宽度 + 独占一行，避免下划线拉满整栏 */
.qr-link{display:table;margin-top:7px;color:var(--ink);border-bottom:1px solid var(--bronze)}

/* ---------- 区块 ---------- */
.sec{padding:clamp(58px,7.5vw,104px) 0;border-bottom:1px solid var(--line)}
/* 带 id 的 section 作为外链深链目标时，避开 72px 固定页头（否则跳过去标题被盖住） */
.sec[id]{scroll-margin-top:84px}
.sec-soft{background:var(--soft)}
.sec-dark{background:var(--dark);color:#f2efe9;border-bottom-color:var(--line-dark)}
.sec-dark h2,.sec-dark h3{color:#fff}
.sec-dark .muted{color:#a9a59c}

.sec-hd{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:end}
.sec-hd p{margin:0;color:var(--muted);font-size:15px;max-width:520px;justify-self:end}
.sec-dark .sec-hd p{color:#a9a59c}

/* 摘要/引言块：GEO 结论前置，但用编辑部手法排版 */
.pull{
  border-left:2px solid var(--bronze);padding:2px 0 2px 26px;
  margin:34px 0 0;font-size:16.5px;line-height:2;color:var(--ink-soft);max-width:820px;
}
.pull b{color:var(--ink);font-weight:600}

/* ---------- 网格：无卡片、无阴影，仅发丝线 ---------- */
.g{display:grid}
.g-4{grid-template-columns:repeat(4,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-2{grid-template-columns:repeat(2,1fr)}

.cols{border-top:1px solid var(--line)}
.col{border-bottom:1px solid var(--line);padding:34px 30px 34px 0;min-height:210px}
.col+.col{border-left:1px solid var(--line);padding-left:30px}
/* 6 格 .cols（3 列 × 2 行）：第 2 行首列也是 .col+.col，会多出一条贴着容器左边缘的分隔线，去掉 */
.cols-6 .col:nth-child(3n+1){border-left:0;padding-left:0}
.sec-dark .cols{border-top-color:var(--line-dark)}
.sec-dark .col{border-bottom-color:var(--line-dark)}
.sec-dark .col+.col{border-left-color:var(--line-dark)}
.col .n{font-family:var(--serif);font-size:11px;letter-spacing:.24em;color:var(--bronze)}
.col h3{margin:30px 0 10px}
.col p{font-size:14.5px;color:var(--muted);margin:0}

/* 流程条（9 步 → 3×3） */
.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:44px}
.step{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:28px 24px 30px}
.step:nth-child(3n){border-right:0}
.step b{display:block;font-family:var(--serif);font-size:11px;letter-spacing:.22em;color:var(--bronze)}
.step h3{font-size:16px;margin:20px 0 8px}
.step p{font-size:13.5px;color:var(--muted);margin:0}

/* 子页页头 */
.phero{background:var(--dark);color:#f2efe9;padding:clamp(46px,5.5vw,78px) 0 clamp(40px,4.5vw,62px)}
.phero h1{color:#fff;font-size:clamp(25px,3.1vw,38px)}
.phero .lead{color:#b7b3aa;margin:18px 0 0;max-width:660px}
.phero .eyebrow{color:var(--bronze-soft)}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;margin:28px 0;font-size:14.5px}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:13px 14px;text-align:left;vertical-align:top}
.tbl th{font-family:var(--serif);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:400;border-bottom:1px solid var(--ink)}
.tbl td:first-child{white-space:nowrap}
.sec-dark .tbl th,.sec-dark .tbl td{border-bottom-color:var(--line-dark)}
.sec-dark .tbl th{color:#a9a59c;border-bottom-color:#f2efe9}

/* 说明块 / 键值列表 / 双栏 */
.note{border-left:2px solid var(--bronze);padding:2px 0 2px 22px;margin:28px 0;color:var(--ink-soft);font-size:15px;max-width:860px}
.list{border-top:1px solid var(--line);list-style:none;margin:28px 0;padding:0}
.list li{border-bottom:1px solid var(--line);padding:14px 0;font-size:14.5px;display:flex;gap:18px}
.list li b{flex:0 0 152px;font-weight:600}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
.sec-dark .note{color:#b7b3aa}
.sec-dark .list{border-top-color:var(--line-dark)}
.sec-dark .list li{border-bottom-color:var(--line-dark)}

/* ---------- 门店 NAP ---------- */
.store{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);margin-top:46px}
.nap{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.nap li{display:flex;gap:22px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.nap .k{flex:0 0 82px;color:var(--muted);font-size:13px;letter-spacing:.06em}
.nap a{border-bottom:1px solid var(--bronze)}

/* ---------- 评价 ---------- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:46px;border-top:1px solid var(--line)}
.quote{padding:34px 30px 34px 0;border-bottom:1px solid var(--line)}
.quote+.quote{border-left:1px solid var(--line);padding-left:30px}
.quote .q{font-family:var(--serif);font-size:40px;line-height:.7;color:var(--bronze-soft);display:block;margin-bottom:18px}
.quote p{font-size:14.5px;color:var(--ink-soft);line-height:2}
.quote .who{font-size:12px;color:var(--muted);letter-spacing:.04em;display:block;margin-top:16px}

/* FAQ */
.faq{border-top:1px solid var(--line);margin-top:40px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;padding:20px 0;font-size:16px;font-weight:600;
  list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:var(--serif);color:var(--bronze);font-size:20px;line-height:1;flex:0 0 auto}
.faq details[open] summary::after{content:'—'}
.faq .a{padding:0 0 24px;font-size:14.5px;color:var(--muted);max-width:860px}
.faq .a p:last-child{margin-bottom:0}

/* ---------- CTA ---------- */
.cta{background:#e4dccc;padding:clamp(56px,7vw,92px) 0;border-bottom:0}
.cta-grid{display:grid;grid-template-columns:1fr .85fr;gap:clamp(28px,5vw,72px);align-items:center}
.cta h2{margin:18px 0 14px}
.cta p{color:#5b554a;max-width:520px}
.cta .phone{
  font-family:var(--serif);font-size:clamp(26px,3vw,40px);letter-spacing:.01em;
  display:inline-block;border-bottom:1px solid #5b554a;margin:6px 0 18px;
}

/* ---------- 页脚 ---------- */
.ft{background:var(--dark);color:#8f8b83;padding:52px 0 34px;font-size:13.5px}
.ft-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px;padding-bottom:38px}
.ft h4{color:#f2efe9;font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-family:var(--serif);font-weight:400;margin:0 0 16px}
.ft ul{list-style:none;margin:0;padding:0}
.ft li{margin-bottom:9px}
.ft a:hover{color:#f2efe9}
.ft .beian{border-top:1px solid var(--line-dark);padding-top:20px;display:flex;gap:22px;flex-wrap:wrap;font-size:12.5px}
.ft .beian a{display:inline-flex;align-items:center;gap:6px}
.ft .beian img{width:16px;height:17px;flex:0 0 auto;display:block}

/* ---------- 响应式 ---------- */
@media (max-width:1000px){
  .hero-grid,.sec-hd,.store,.cta-grid,.two{grid-template-columns:1fr}
  .sec-hd p{justify-self:start}
  .g-4{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step:nth-child(3n){border-right:1px solid var(--line)}
  .step:nth-child(2n){border-right:0}
  .quotes{grid-template-columns:1fr}
  .quote+.quote{border-left:0;padding-left:0}
  .col+.col{padding-left:0;border-left:0}
  .ft-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  body{font-size:15.5px}
  /* ---- 移动端导航：纯 CSS 汉堡菜单（checkbox hack，零 JS） ----
     原理：<input type="checkbox" id="nav-toggle"> 是 .hd 的第一个子元素，
     汉堡图标是它的 <label>。勾选后 :checked ~ .hd-in nav 展开面板。
     页面跳转会重新加载，勾选状态自动复位（不需要 JS 关闭菜单）。
     :checked 的 input 保持可聚焦（没有 display:none / visibility:hidden），
     键盘空格键也能开关。 */
  .nav-toggle{display:block;position:absolute;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}
  .nav-tgl{
    display:inline-flex;flex:0 0 auto;flex-direction:column;justify-content:center;gap:4.5px;
    width:36px;height:34px;padding:9px 5px;cursor:pointer;
  }
  .nav-tgl span{display:block;height:1.5px;background:var(--ink);transition:transform .26s,opacity .18s}
  .hd-tel{margin-left:auto}
  .hd nav{
    display:flex;flex-direction:column;gap:0;justify-content:flex-start;
    position:absolute;top:100%;left:0;right:0;    /* 挂在页头正下方，页头多高都自动对齐 */
    background:var(--paper);
    max-height:0;overflow:hidden;padding:0 var(--gut);
    transition:max-height .3s ease,padding .3s ease;
    /* 注意：border-top 不能写在这里 —— max-height:0 时边框仍占 1px 高度，
       收起状态下会在页头下方多出一条发丝线。只在展开时加。 */
  }
  .hd nav a{font-size:15px;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--line)}
  .hd nav a:last-child{border-bottom:0}
  .nav-toggle:checked ~ .hd-in nav{
    max-height:80vh;padding-top:4px;padding-bottom:10px;border-top:1px solid var(--line);
  }
  /* 汉堡 ↔ 关闭（三条线交叉成 X） */
  .nav-toggle:checked ~ .hd-in .nav-tgl span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .nav-toggle:checked ~ .hd-in .nav-tgl span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .hd-in .nav-tgl span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .hd-in{gap:18px;min-height:62px}
  .hd-tel{height:34px;padding:0 14px;font-size:12.5px;gap:6px}
  .hd-tel svg{width:13px;height:13px}
  .g-4,.g-3,.g-2,.steps{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr}
  .step{border-right:0}
  .col{padding-right:0;min-height:auto}
  .sec{padding:56px 0}
  .qr{flex-direction:column;align-items:flex-start;gap:14px}
  .qr-img{flex:0 0 auto;width:190px;padding:9px}
  /* 数据表（3 列以上）在窄屏改为「一行一台设备」的堆叠布局：
     不这么做的话「作用」列只剩几十像素，会被挤成每行 3~5 个字的碎行。
     需要堆叠的表加 class="tbl tbl-stack"，非首个 td 用 data-l 提供列名。 */
  .tbl-stack thead{display:none}
  .tbl-stack,.tbl-stack tbody,.tbl-stack tr,.tbl-stack td{display:block;width:100%}
  .tbl-stack tr{border-bottom:1px solid var(--line);padding:18px 0}
  .tbl-stack td{border:0;padding:0 0 10px}
  .tbl-stack td:first-child{white-space:normal;font-weight:600;font-size:15.5px;padding-bottom:12px}
  .tbl-stack td:last-child{padding-bottom:0}
  .tbl-stack td[data-l]::before{content:attr(data-l);display:block;font-family:var(--serif);font-size:10px;letter-spacing:.16em;color:var(--muted);margin-bottom:4px}
}
/* 超窄屏（iPhone SE / 小屏安卓）：logo 副标与页头胶囊按钮同时在场会横向溢出，
   收起 logo 副标「Glasses · Changsha」腾出空间。 */
@media (max-width:420px){
  .logo i{display:none}
  .hd-in{gap:14px}
}

