:root{
  --coral:#F2623E; --coral-deep:#C2410C; --blush:#FCD6DA; --white:#FFFFFF;
  --gray:#E4E4E4; --char:#575757; --ink:#333333; --tint:#FDF6F4;
  --display:'Fraunces',Georgia,serif; --label:'Montserrat',Arial,sans-serif;
  --body:'Source Sans 3',Arial,sans-serif; --zh:'Noto Serif SC','Songti SC',serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font:18px/1.6 var(--body)}
html[lang="zh-CN"] body{font-family:var(--body),var(--zh)}
img{max-width:100%;height:auto;display:block}
a{color:var(--coral-deep)}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
h1,h2,h3{font-family:var(--display);font-variation-settings:'opsz' 144;font-weight:560;color:var(--ink);line-height:1.15;margin:0 0 14px}
html[lang="zh-CN"] h2,html[lang="zh-CN"] h3{font-family:var(--display),var(--zh)}
h2{font-size:clamp(28px,4vw,40px)}
h3{font-size:24px}
p{margin:0 0 16px;max-width:65ch}
.kicker{font:600 13px var(--label);letter-spacing:.24em;text-transform:uppercase;color:var(--coral-deep);margin-bottom:10px}
mark.needed{background:#FFE58A;color:#000;padding:0 4px;font-weight:600}

/* top bar */
.top{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.96);border-bottom:1px solid var(--gray)}
.top-in{display:flex;align-items:center;gap:24px;height:64px}
.top-logo img{width:170px}
.top nav{display:flex;gap:22px;margin-left:auto}
.top nav a,.lang{font:600 13px var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--char);text-decoration:none}
.top nav a:hover{color:var(--coral-deep)}
.lang{border:1.5px solid var(--coral);color:var(--coral-deep);border-radius:999px;padding:6px 14px;text-transform:none;letter-spacing:.04em}

/* hero */
.hero{padding:56px 0 64px}
.hero-in{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.hero h1{margin:0}
.hero-in>*,.local-in>*,.svc-grid>*,.stats>*,.row2>*{min-width:0}
h1,h2,h3,p,li{overflow-wrap:anywhere}
.wordmark{width:min(520px,100%)}
.wordmark.small{width:260px;margin:0 auto 24px}
.tagline{font:600 14px var(--label);letter-spacing:.3em;text-transform:uppercase;color:var(--char);margin:4px 0 22px;padding-bottom:16px;border-bottom:3px solid var(--blush);display:inline-block}
html[lang="zh-CN"] .tagline{font:600 22px var(--zh);letter-spacing:.12em}
.lede{font-size:21px;color:var(--ink)}
.hero-photo img{border-radius:18px;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;width:100%}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 10px}
.btn{display:inline-block;font:700 19px var(--label);letter-spacing:.03em;text-decoration:none;border-radius:999px;padding:15px 26px;border:2px solid var(--coral);cursor:pointer}
.btn.primary{background:var(--coral);color:#fff}
.btn.primary:hover{background:var(--coral-deep);border-color:var(--coral-deep)}
.btn.ghost:hover{background:var(--tint)}
.btn.ghost{background:transparent;color:var(--coral-deep)}
.wechat{font-size:17px;color:var(--char)}

/* bands */
.band{padding:72px 0;scroll-margin-top:64px}
.band.tint{background:var(--tint)}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}
.svc{background:#fff;border:1px solid var(--gray);border-top:4px solid var(--coral);border-radius:14px;padding:22px}
.svc p{margin:0;color:var(--ink)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:24px 0}
.stat{border-left:4px solid var(--blush);padding:4px 0 4px 18px}
.num{display:block;font:560 clamp(36px,4.4vw,56px)/1 var(--display);white-space:nowrap;font-variation-settings:'opsz' 144;color:var(--coral)}
.lbl{display:block;font-size:17px;color:var(--char);margin-top:6px}
.proof-note{font:400 26px/1.3 var(--display);font-variation-settings:'opsz' 144;color:var(--ink);margin:4px 0 14px}
html[lang="zh-CN"] .proof-note{font-family:var(--display),var(--zh);font-size:23px}
.proof-note:empty{display:none}
.creds{font:600 14px var(--label);letter-spacing:.12em;color:var(--char)}
.local-in{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:start}
.picks{list-style:none;padding:0;margin:18px 0 26px}
.picks li{padding:14px 0;border-bottom:1px solid var(--gray)}
.picks strong{display:block;font:560 21px var(--display);font-variation-settings:'opsz' 144}
.picks span{color:var(--char)}
.club{background:#fff;border:1px solid var(--gray);border-radius:14px;padding:22px}
.club p{margin:0}
.local-photo img{border-radius:18px;aspect-ratio:3/4;object-fit:cover}

/* form */
.form{display:grid;gap:16px;margin-top:20px}
.form label{display:grid;gap:6px;font:600 15px var(--label);color:var(--char)}
.form input,.form select,.form textarea{font:18px var(--body);padding:12px 14px;border:1.5px solid #BDBDBD;border-radius:10px;background:#fff;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--blush);border-color:var(--coral)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .check{display:flex;gap:10px;align-items:flex-start;font:400 16px var(--body)}
.form .check input{width:20px;height:20px;margin-top:3px;flex:none}
.form button{justify-self:start}
.hp{position:absolute;left:-9999px}
.small{font-size:15px;color:var(--char)}

/* footer */
.foot{background:#3A3A3A;color:#F2F2F2;padding:40px 0;font-size:16px}
.foot a{color:#fff}
.foot-logo{width:200px;margin-bottom:14px}
.foot p{max-width:none;margin:0 0 8px}

/* simple pages */
.simple main{padding:64px 20px;text-align:left}
.thanks{text-align:center}
.thanks p{margin-left:auto;margin-right:auto}
.prose h1{font-size:40px}

@media (max-width:900px){
  .hero-in,.local-in{grid-template-columns:1fr}
  .hero-photo{max-width:360px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .top nav{display:none}
  .lang{margin-left:auto}
}
@media (max-width:560px){
  body{font-size:17px}
  .svc-grid,.stats,.row2{grid-template-columns:1fr}
  .band{padding:52px 0}
  .hero{padding:28px 0 44px}
  .btn{width:100%;text-align:center}
}
