/* 云岐口腔 · 示例站 — 手工 CSS，无外部依赖 */
:root{
  --ink:#14211f; --muted:#5d6b68; --line:#e3e8e6;
  --brand:#0f6b57; --brand-dark:#0a4f40; --brand-soft:#eaf3f0;
  --paper:#ffffff; --wash:#f6f9f8; --gold:#a9873f;
  --wrap:1080px;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:var(--sans); color:var(--ink); background:var(--paper);
  font-size:16px; line-height:1.75; letter-spacing:.01em;
}
img{max-width:100%; display:block; height:auto}
a{color:var(--brand-dark); text-decoration:none; border-bottom:1px solid rgba(15,107,87,.25)}
a:hover{border-bottom-color:var(--brand)}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 20px}

/* 示例站提示条 */
.demo-bar{
  background:#fdf6e3; color:#7a5d18; font-size:13px; line-height:1.5;
  text-align:center; padding:7px 16px; border-bottom:1px solid #f0e2bd;
}

/* 页头 */
header.site{position:sticky; top:0; z-index:20; background:rgba(255,255,255,.94);
  backdrop-filter:saturate(1.4) blur(8px); border-bottom:1px solid var(--line)}
.nav{display:flex; align-items:center; gap:26px; min-height:64px}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:.02em; border:0}
.brand .mark{width:26px; height:26px; border-radius:50%; background:var(--brand);
  color:#fff; font-size:12px; display:grid; place-items:center; font-weight:700}
.nav nav{display:flex; gap:22px; margin-left:auto; font-size:15px}
.nav nav a{border:0; color:var(--muted)}
.nav nav a:hover,.nav nav a[aria-current]{color:var(--brand-dark)}
.nav .tel{font-weight:600; color:var(--brand-dark); border:0; font-variant-numeric:tabular-nums}

/* 首屏 */
.hero{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center; padding:56px 0 48px}
.hero h1{font-size:clamp(28px,3.6vw,42px); line-height:1.25; margin:0 0 16px; letter-spacing:-.01em}
.hero p.lede{font-size:17px; color:var(--muted); margin:0 0 22px; max-width:34em}
.hero .meta{display:flex; flex-wrap:wrap; gap:10px 20px; font-size:14px; color:var(--muted); margin-top:18px}
.hero figure{margin:0; border-radius:14px; overflow:hidden; background:var(--wash)}
.hero figure img{aspect-ratio:16/9; object-fit:cover; width:100%}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; align-items:center}
.btn{display:inline-block; padding:12px 22px; border-radius:10px; font-weight:600; font-size:15px; border:1px solid var(--brand); background:var(--brand); color:#fff}
.btn:hover{background:var(--brand-dark); border-color:var(--brand-dark); color:#fff}
.btn.ghost{background:#fff; color:var(--brand-dark); border-color:#cfdbd7}
.btn.ghost:hover{background:var(--brand-soft); color:var(--brand-dark)}

/* 直接回答区（GEO 核心：问题式小标题 + 首句给答案） */
.answers{background:var(--wash); border-radius:14px; padding:26px 26px 8px; margin:0 0 12px}
.answers h2{font-size:15px; text-transform:none; letter-spacing:.08em; color:var(--brand-dark); margin:0 0 14px; font-weight:700}
.answers dl{margin:0}
.answers dt{font-weight:700; margin-top:16px}
.answers dd{margin:4px 0 0; color:var(--muted)}

section{padding:44px 0}
section.tight{padding:30px 0}
h2.sec{font-size:clamp(20px,2.4vw,27px); margin:0 0 6px; letter-spacing:-.01em}
p.sub{color:var(--muted); margin:0 0 26px; max-width:44em}

/* 服务卡 */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.card{border:1px solid var(--line); border-radius:12px; padding:20px; background:#fff}
.card h3{margin:0 0 6px; font-size:17px}
.card p{margin:0 0 12px; color:var(--muted); font-size:14.5px}
.card .from{font-size:13px; color:var(--brand-dark); font-weight:600}
.card a{font-size:14px}

/* 表格 */
.table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:12px}
table{border-collapse:collapse; width:100%; font-size:14.5px; min-width:560px}
caption{text-align:left; padding:14px 16px 0; color:var(--muted); font-size:13px}
th,td{padding:12px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top}
th{background:var(--wash); font-weight:600; white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
td.num{font-variant-numeric:tabular-nums; white-space:nowrap}

/* 流程 */
.steps{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; counter-reset:s}
.step{position:relative; padding-top:34px; font-size:14.5px; color:var(--muted)}
.step::before{counter-increment:s; content:counter(s); position:absolute; top:0; left:0;
  width:26px; height:26px; border-radius:50%; background:var(--brand-soft); color:var(--brand-dark);
  font-size:13px; font-weight:700; display:grid; place-items:center}
.step strong{display:block; color:var(--ink); font-size:15px; margin-bottom:4px}

/* 医生 */
.doctor{display:grid; grid-template-columns:240px 1fr; gap:28px; align-items:start}
.doctor figure{margin:0; border-radius:12px; overflow:hidden; background:var(--wash)}
.doctor dl{display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:14px 0 0; font-size:14.5px}
.doctor dt{color:var(--muted)}
.doctor dd{margin:0}

/* FAQ */
details{border-bottom:1px solid var(--line); padding:14px 0}
details summary{cursor:pointer; font-weight:600; font-size:16px; list-style:none; position:relative; padding-right:26px}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+"; position:absolute; right:4px; top:-2px; color:var(--brand); font-weight:400; font-size:20px}
details[open] summary::after{content:"–"}
details .a{color:var(--muted); padding-top:10px; font-size:15px}
details .a p{margin:0 0 8px}

/* 地址 */
.nap{background:var(--wash); border-radius:14px; padding:26px; display:grid; grid-template-columns:1fr 1fr; gap:24px}
.nap address{font-style:normal; line-height:2}
.nap .k{color:var(--muted); font-size:13px; display:block}

/* 页脚 */
footer.site{border-top:1px solid var(--line); padding:34px 0 44px; margin-top:20px; font-size:13.5px; color:var(--muted)}
footer.site .cols{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:24px; margin-bottom:20px}
footer.site a{border:0}
footer.site .fine{font-size:12.5px; line-height:1.7; border-top:1px solid var(--line); padding-top:16px}

/* 面包屑 */
.crumb{font-size:13px; color:var(--muted); padding:14px 0 0}
.crumb a{border:0; color:var(--muted)}

.notice{border-left:3px solid var(--gold); background:#fdfaf2; padding:12px 16px; font-size:14px; color:#6b5a33; border-radius:0 8px 8px 0; margin:18px 0}

@media (max-width:860px){
  .hero{grid-template-columns:1fr; gap:26px; padding:32px 0 28px}
  .hero figure{order:-1}
  .cards{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .doctor{grid-template-columns:1fr}
  .doctor figure{max-width:240px}
  .nap{grid-template-columns:1fr}
  footer.site .cols{grid-template-columns:1fr 1fr}
  .nav nav{gap:16px; font-size:14px}
  .nav .tel{display:none}
}
@media (max-width:520px){
  .cards{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  footer.site .cols{grid-template-columns:1fr}
  body{font-size:15.5px}
}