/* =========================================================
   AVENOR PROPERTY MANAGEMENT — shared stylesheet
   ========================================================= */
:root{
  --paper:#f2eee5;--paper-2:#e9e3d6;
  --ink:#14213a;--ink-2:#0d1626;
  --gold:#a67c33;--gold-2:#c39d55;
  --rule:rgba(20,33,58,.16);--rule-light:rgba(242,238,229,.2);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
::selection{background:var(--ink);color:var(--paper)}
body{font-family:'Inter',sans-serif;background:var(--paper);color:var(--ink);font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.mono{font-family:'Inter',sans-serif;font-weight:400}
.label{font-family:'Inter',sans-serif;font-weight:500;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.tn,.k,.dn,.tnum,.sn,.idxbig,.proc-sub,.cx .k,.foot-col h4,.route .lab,.case .tag,.str-gallery figcaption,.imgband .cap .lb,form .fld label,.tcard .go,.proc .pn~*,.meta,.disclaimer{font-weight:500}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
a{color:inherit;text-decoration:none}
img,svg{display:block}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- Header ---------- */
header{position:fixed;inset:0 0 auto 0;z-index:100;transition:.4s;background:transparent}
header.solid{background:rgba(242,238,229,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.util{background:var(--ink);color:rgba(242,238,229,.82);height:38px;overflow:hidden;transition:height .4s ease,opacity .35s ease}
header.solid .util{height:0;opacity:0}
.util .wrap{display:flex;align-items:center;justify-content:flex-end;height:38px}
.util .u{font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.12em;display:flex;align-items:center;gap:10px;white-space:nowrap}
.util .u .zh{font-family:'Noto Serif SC',serif;font-weight:600;font-size:.98rem;letter-spacing:.08em;color:var(--gold-2)}
.util .u a{transition:.2s}.util .u a:hover{color:var(--gold-2)}
.util .dot{opacity:.4}
.mast{position:relative;display:flex;align-items:center;justify-content:space-between;height:72px}
.navwrap{display:contents}
.mast-right{display:flex;align-items:center;gap:22px}
.mast-right .cta{font-family:'Inter',sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);padding:9px 18px;transition:.25s}
.mast-right .cta:hover{background:var(--ink);color:var(--paper)}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{height:48px;width:auto;display:block}
.foot-logo{height:66px;width:auto;display:block;margin-bottom:20px}
.brand svg{width:44px;height:44px}
.brand .lock{display:flex;flex-direction:column;line-height:1}
.brand .nm{font-family:'Playfair Display',serif;font-weight:600;font-size:1.6rem;letter-spacing:.22em;color:var(--ink)}
.brand .sub{font-family:'Inter',sans-serif;font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:5px}
nav.links{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:30px}
.langtoggle{display:inline-flex;align-items:center;gap:6px;font-family:'Inter',sans-serif;letter-spacing:.08em}
.langtoggle button{background:none;border:none;cursor:pointer;font-family:'Inter',sans-serif;font-weight:500;font-size:.8rem;letter-spacing:.08em;color:var(--ink);opacity:.5;padding:2px 1px;transition:.2s;line-height:1}
.langtoggle button.on{opacity:1;color:var(--gold);font-weight:700}
.langtoggle button:hover{opacity:1}
.langtoggle .sep{opacity:.3;font-size:.8rem}
.langtoggle button.zh{font-family:'Noto Sans SC',sans-serif;font-size:.8rem;font-weight:500}
.navtel{display:inline-flex;align-items:center;gap:7px;font-family:'Inter',sans-serif;font-weight:500;font-size:.75rem;letter-spacing:.04em;color:var(--ink);transition:.25s}
.navtel svg{color:var(--gold)}
.navtel:hover{color:var(--gold)}
.navtel::after{display:none}
nav.links a{font-family:'Inter',sans-serif;font-weight:500;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);position:relative;padding:4px 0;transition:.25s}
nav.links a .idx{color:var(--gold);margin-right:6px;font-size:.62rem}
nav.links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--gold);transition:.3s}
nav.links a:hover::after,nav.links a.active::after{width:100%}
nav.links a.active{color:var(--gold)}
nav.links a.cta{border:1px solid var(--ink);padding:9px 18px;letter-spacing:.14em;color:var(--ink)}
nav.links a.cta:hover{background:var(--ink);color:var(--paper)}
nav.links a.cta::after{display:none}
nav.links a.cta.active{color:var(--ink)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;z-index:110}
.burger span{width:26px;height:1.5px;background:var(--ink);transition:.3s}
.progress{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--gold);transition:width .08s linear}

/* ---------- Shared bits ---------- */
.arrow-link{display:inline-flex;align-items:center;gap:12px;font-family:'Inter',sans-serif;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;padding:14px 24px;background:var(--ink);color:var(--paper);transition:.3s}
.arrow-link:hover{background:var(--gold);color:#fff}
.arrow-link svg{transition:.3s}.arrow-link:hover svg{transform:translateX(5px)}
.arrow-link.ghost{background:transparent;color:var(--ink);border:1px solid var(--rule)}
.arrow-link.ghost:hover{border-color:var(--ink);color:var(--ink)}
.arrow-link.gold{background:var(--gold);color:#fff}.arrow-link.gold:hover{background:var(--gold-2)}
.arrow-link.on-dark.ghost{color:var(--paper);border-color:rgba(242,238,229,.4)}
.arrow-link.on-dark.ghost:hover{border-color:var(--paper);color:var(--paper)}

section.blk{padding:clamp(80px,11vw,150px) 0;position:relative}
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,60px);align-items:baseline;margin-bottom:clamp(44px,6vw,80px)}
.sec-no{font-family:'Playfair Display',serif;font-size:clamp(3rem,7vw,6rem);font-weight:400;color:var(--gold);line-height:.8;opacity:.55}
.sec-title h2{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.02;letter-spacing:-.01em}
.sec-title .label{display:block;margin-bottom:14px}

/* ---------- Home hero + kinetic ---------- */
.hero{padding:150px 0 70px;position:relative}
.hero-top{display:flex;justify-content:space-between;border-bottom:1px solid var(--rule);padding-bottom:16px;margin-bottom:clamp(40px,7vw,80px)}
.hero-top .mono{font-family:'Inter',sans-serif;font-weight:400;font-size:.7rem;letter-spacing:.16em;color:var(--ink);opacity:.6}
.hero-grid{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:end}
.hero h1{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(3rem,8.4vw,7.6rem);line-height:1.03;letter-spacing:-.015em}
.kin .line{display:block;overflow:hidden;padding-bottom:.12em}
.kin.revealed .line{overflow:visible}
.kin .w{display:inline-block;transform:translateY(115%);animation:rise 1s cubic-bezier(.16,1,.3,1) forwards}
@keyframes rise{to{transform:translateY(0)}}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero h1 .thin{font-weight:400}
.hero-sub{margin-top:34px;max-width:460px;font-size:1.05rem;color:var(--ink);opacity:.78;animation:fadein 1.2s ease .5s both}
.hero-actions{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;animation:fadein 1.2s ease .65s both}
@keyframes fadein{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.langline{margin-top:26px;font-family:'Inter',sans-serif;font-size:.68rem;letter-spacing:.08em;color:var(--ink);opacity:.7;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap;animation:fadein 1.2s ease .8s both}
.langline span{font-family:'Noto Serif SC',serif;font-weight:600;font-size:1.12rem;letter-spacing:.1em;color:var(--gold)}
.zh-badge{display:inline-flex;align-items:center;gap:12px;margin-top:30px;padding:9px 20px 9px 16px;border:1px solid rgba(166,124,51,.4);border-radius:40px;background:linear-gradient(90deg,rgba(166,124,51,.09),rgba(166,124,51,.02));animation:fadein 1.2s ease .8s both;transition:.3s}
.zh-badge:hover{border-color:var(--gold);background:linear-gradient(90deg,rgba(166,124,51,.14),rgba(166,124,51,.03))}
.zh-badge .zh-ic{width:18px;height:18px;color:var(--gold);flex-shrink:0}
.zh-badge .zh-cn{font-family:'Noto Serif SC',serif;font-weight:600;font-size:1.08rem;letter-spacing:.08em;color:var(--gold);line-height:1}
.zh-badge .zh-div{width:1px;height:16px;background:rgba(166,124,51,.45)}
.zh-badge .zh-sub{font-family:'Inter',sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.05em;color:var(--ink);opacity:.72}
@media(max-width:420px){.zh-badge{flex-wrap:wrap;border-radius:18px}.zh-badge .zh-div{display:none}}
.hero-mark{position:relative;animation:fadein 1.4s ease .4s both}
.hero-mark .big{width:clamp(120px,17vw,230px);height:auto}
.hero-mark .rot{position:absolute;right:-14px;top:50%;transform:rotate(90deg);transform-origin:right;font-family:'Inter',sans-serif;font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);white-space:nowrap}

/* ---------- Page hero (subpages) ---------- */
.page-hero{padding:clamp(130px,16vw,190px) 0 clamp(30px,5vw,60px)}
.page-hero .idxbig{font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.2em;color:var(--gold);margin-bottom:20px}
.page-hero h1{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2.6rem,7vw,5.4rem);line-height:1;letter-spacing:-.015em}
.page-hero h1 em{font-style:italic;color:var(--gold)}
.page-hero p{max-width:580px;margin-top:26px;font-size:1.1rem;opacity:.82}

/* ---------- Home: what-we-do trio ---------- */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tcard{border:1px solid var(--rule);background:var(--paper);padding:40px 32px 34px;display:flex;flex-direction:column;min-height:330px;position:relative;overflow:hidden;transition:.35s}
.tcard::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:.35s}
.tcard:hover{transform:translateY(-4px);box-shadow:0 26px 60px -40px rgba(20,33,58,.45)}
.tcard:hover::before{transform:scaleX(1)}
.tcard .tnum{font-family:'Inter',sans-serif;font-size:.68rem;letter-spacing:.14em;color:var(--gold)}
.tcard h3{font-family:'Playfair Display',serif;font-weight:500;font-size:1.9rem;line-height:1.1;margin:20px 0 12px}
.tcard p{font-size:.96rem;opacity:.78;flex:1}
.tcard .go{margin-top:22px;font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);display:inline-flex;align-items:center;gap:10px;transition:.25s}
.tcard:hover .go{color:var(--gold);gap:16px}

/* ---------- Story (pinned scrollytelling) ---------- */
.story{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,90px);align-items:start}
.story-left{position:sticky;top:120px;align-self:start}
.story-left .sec-no{font-size:clamp(4rem,9vw,8rem)}
.story-left h2{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1.02;letter-spacing:-.01em;margin:18px 0 26px}
.story-left .mk{width:64px;height:64px;opacity:.85}
.story-steps{display:flex;flex-direction:column;gap:clamp(40px,7vw,80px)}
.step{border-left:1px solid var(--rule);padding-left:32px;position:relative}
.step::before{content:"";position:absolute;left:-1px;top:0;width:1px;height:0;background:var(--gold);transition:height 1.2s ease}
.step.in::before{height:100%}
.step .sn{font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.18em;color:var(--gold);margin-bottom:16px;display:block}
.step .big-line{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.25;letter-spacing:-.01em;margin-bottom:14px}
.step .big-line em{font-style:italic;color:var(--gold)}
.step p{opacity:.82;font-size:1.02rem}
.step .sign{font-family:'Playfair Display',serif;font-style:italic;font-size:1.3rem;margin-top:8px}

/* ---------- Services (expanding list) ---------- */
.svc-list{border-top:1px solid var(--rule)}
.svc{border-bottom:1px solid var(--rule);cursor:pointer}
.svc-row{display:grid;grid-template-columns:64px 1fr auto;gap:20px;align-items:center;padding:28px 0;transition:.35s}
.svc-row .no{font-family:'Inter',sans-serif;font-size:.8rem;color:var(--gold)}
.svc-row .ti{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1;transition:.35s}
.svc-row .pl{width:26px;height:26px;position:relative;justify-self:end}
.svc-row .pl::before,.svc-row .pl::after{content:"";position:absolute;background:var(--ink);transition:.35s}
.svc-row .pl::before{top:12px;left:2px;width:22px;height:1.5px}
.svc-row .pl::after{left:12px;top:2px;width:1.5px;height:22px}
.svc.open .svc-row .pl::after{transform:rotate(90deg);opacity:0}
.svc.open .svc-row .ti{color:var(--gold)}
.svc:hover .svc-row .ti{transform:translateX(10px)}
.svc-body{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.16,1,.3,1)}
.svc-body-inner{padding:0 0 30px 84px;max-width:640px;color:var(--ink);opacity:.8;font-size:1.02rem}

/* ---------- Bento ---------- */
.dark{background:var(--ink);color:var(--paper)}
.dark .sec-no{color:var(--gold-2);opacity:.7}
.dark .sec-title h2{color:var(--paper)}
.dark .label{color:var(--gold-2)}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(158px,auto);gap:14px}
.tile{border:1px solid var(--rule-light);padding:30px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;transition:.35s;border-radius:3px}
.tile:hover{background:var(--ink-2);transform:translateY(-3px)}
.tile .tn{font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.14em;color:var(--gold-2)}
.tile h3{font-family:'Playfair Display',serif;font-weight:500;font-size:1.55rem;color:var(--paper);margin-bottom:8px}
.tile p{font-size:.9rem;color:rgba(242,238,229,.68);font-weight:300}
.tile .huge{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2.6rem,4.4vw,4rem);line-height:.95;color:var(--paper)}
.tile .huge em{font-style:normal;color:var(--gold-2)}
.tile .k{font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,238,229,.6);margin-top:10px}
.t-feature{grid-column:span 2;grid-row:span 2;background:linear-gradient(160deg,var(--ink-2),var(--ink))}
.t-feature h3{font-size:2.1rem;line-height:1.1}
.t-feature p{font-size:1rem;max-width:340px}
.t-wide{grid-column:span 2}
.t-gold{background:var(--gold);border-color:var(--gold)}
.t-gold:hover{background:var(--gold-2)}
.t-gold .tn,.t-gold .k{color:rgba(255,255,255,.8)}
.t-gold h3,.t-gold .cn{color:#fff}
.t-gold p{color:rgba(255,255,255,.9)}
.t-lang .cn{font-family:'Noto Serif SC',serif;font-weight:600;font-size:2.4rem;color:#fff;letter-spacing:.1em}
.t-quote{grid-column:span 2}
.t-quote blockquote{font-family:'Playfair Display',serif;font-style:italic;font-size:1.5rem;line-height:1.3;color:var(--paper)}
.t-quote cite{font-family:'Inter',sans-serif;font-style:normal;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2);margin-top:14px;display:block}
.map-dots{position:absolute;inset:0;opacity:.14;background-image:radial-gradient(circle at 1.5px 1.5px,var(--gold-2) 1.5px,transparent 0);background-size:22px 22px}

/* ---------- Airbnb / short-term ---------- */
.str-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,70px);align-items:center;margin-bottom:clamp(56px,8vw,100px)}
.str-copy .lead{font-size:1.12rem;line-height:1.6;opacity:.86}
.str-copy .lead b{font-weight:500;color:var(--ink)}
.str-stats{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px;margin-top:34px;border-top:1px solid var(--rule);padding-top:32px}
.str-stats .n{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2.2rem,3.6vw,3rem);line-height:1;color:var(--ink)}
.str-stats .n em{font-style:normal;color:var(--gold)}
.str-stats .k{font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);opacity:.6;margin-top:8px}
.str-gallery{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr;gap:12px;min-height:400px}
.str-gallery figure{position:relative;overflow:hidden;border-radius:3px;background:linear-gradient(150deg,#1c2c4a,#101b2e)}
.str-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.str-gallery figure:hover img{transform:scale(1.05)}
.str-gallery .a{grid-row:1 / 3}
.str-gallery figcaption{position:absolute;left:14px;bottom:12px;font-family:'Inter',sans-serif;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(13,22,38,.62);padding:5px 10px;border-radius:2px;backdrop-filter:blur(4px)}
.proc-h{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:8px}
.proc-sub{font-family:'Inter',sans-serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:34px}
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:3px;overflow:hidden}
.proc{background:var(--paper);padding:34px 26px 40px;transition:.35s}
.proc:hover{background:var(--paper-2)}
.proc .pn{font-family:'Playfair Display',serif;font-size:2.4rem;color:var(--gold);opacity:.6;line-height:1}
.proc h4{font-family:'Playfair Display',serif;font-weight:500;font-size:1.5rem;margin:16px 0 10px}
.proc p{font-size:.92rem;opacity:.78}
.cases{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:clamp(50px,7vw,80px)}
.case{border:1px solid var(--rule);border-radius:3px;overflow:hidden;background:var(--paper);transition:.35s}
.case:hover{box-shadow:0 26px 60px -40px rgba(20,33,58,.5);transform:translateY(-3px)}
.case .ph{position:relative;height:230px;overflow:hidden;background:linear-gradient(150deg,#1c2c4a,#101b2e)}
.case .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.case:hover .ph img{transform:scale(1.05)}
.case .tag{position:absolute;left:16px;top:16px;font-family:'Inter',sans-serif;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(13,22,38,.6);padding:6px 12px;border-radius:2px;backdrop-filter:blur(4px)}
.case-body{padding:28px 28px 32px}
.case-body h4{font-family:'Playfair Display',serif;font-weight:600;font-size:1.5rem;margin-bottom:18px}
.route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 0;margin-bottom:16px}
.route .lab{font-family:'Inter',sans-serif;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);opacity:.55;margin-bottom:5px}
.route .was{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--ink);opacity:.55}
.route .now{font-family:'Playfair Display',serif;font-size:1.9rem;color:var(--gold);font-weight:600}
.route .arw{color:var(--gold)}
.case-body .meta{font-family:'Inter',sans-serif;font-size:.68rem;letter-spacing:.08em;color:var(--ink);opacity:.62}
.disclaimer{margin-top:34px;font-family:'Inter',sans-serif;font-size:.66rem;line-height:1.7;letter-spacing:.02em;color:var(--ink);opacity:.5;max-width:820px}

/* ---------- Areas marquee ---------- */
.areas{padding:clamp(70px,10vw,120px) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow:hidden}
.areas .wrap{margin-bottom:40px}
.marquee{display:flex;white-space:nowrap;width:max-content;animation:scroll 34s linear infinite}
@keyframes scroll{to{transform:translateX(-50%)}}
.marquee.rev{animation-direction:reverse;animation-duration:40s}
.marquee:hover{animation-play-state:paused}
.marquee .item{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2.4rem,6vw,4.6rem);padding:0 .5em;color:var(--ink);display:flex;align-items:center;gap:.5em}
.marquee .item::after{content:"—";color:var(--gold);opacity:.6;font-weight:400}
.marquee.outline .item{color:transparent;-webkit-text-stroke:1px var(--ink)}
.mq-track{margin-bottom:14px}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,80px);align-items:start}
.contact-lead p{font-size:1.05rem;opacity:.82;margin:20px 0 34px}
.cx{border-top:1px solid var(--rule);padding:18px 0;display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.cx .k{font-family:'Inter',sans-serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.cx .v{font-family:'Playfair Display',serif;font-size:1.3rem;text-align:right}
.cx .v a{transition:.2s}.cx .v a:hover{color:var(--gold)}
form .fld{position:relative;margin-bottom:30px}
form .fld label{font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.6;display:block;margin-bottom:8px}
form .fld input,form .fld select,form .fld textarea{width:100%;border:none;border-bottom:1px solid var(--rule);background:transparent;font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--ink);padding:8px 0;transition:.3s}
form .fld input:focus,form .fld select:focus,form .fld textarea:focus{outline:none;border-color:var(--gold)}
form .fld textarea{resize:vertical;min-height:70px;font-size:1.1rem;line-height:1.5}
form .fld select{appearance:none;cursor:pointer}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:30px}
form button{margin-top:8px;width:100%;background:var(--ink);color:var(--paper);border:none;padding:20px;font-family:'Inter',sans-serif;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:.3s;display:flex;align-items:center;justify-content:center;gap:14px}
form button:hover{background:var(--gold);color:#fff}
form button .ar{transition:.3s}form button:hover .ar{transform:translateX(6px)}

/* ---------- CTA band ---------- */
.cta-band{background:var(--ink);color:var(--paper);padding:clamp(70px,9vw,120px) 0;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;inset:0;opacity:.06;background-image:radial-gradient(circle at 1px 1px,#fff 1px,transparent 0);background-size:26px 26px;pointer-events:none}
.cta-band .inner{position:relative;z-index:2;max-width:720px}
.cta-band .label{color:var(--gold-2)}
.cta-band h2{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.04;color:var(--paper);margin:16px 0 22px}
.cta-band h2 em{font-style:italic;color:var(--gold-2)}
.cta-band p{color:rgba(242,238,229,.78);max-width:520px;margin-bottom:34px}

/* ---------- Footer ---------- */
footer{background:var(--ink-2);color:rgba(242,238,229,.6);padding:70px 0 34px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid var(--rule-light)}
.foot-grid .nm{font-family:'Playfair Display',serif;font-size:2.4rem;color:var(--paper);letter-spacing:.1em;margin-bottom:14px}
.foot-brand{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.foot-brand svg{width:54px;height:54px;flex-shrink:0}
.foot-brand .fb-text{display:flex;flex-direction:column;line-height:1}
.foot-brand .fb-nm{font-family:'Playfair Display',serif;font-weight:600;font-size:2rem;letter-spacing:.18em;color:var(--paper)}
.foot-brand .fb-sub{font-family:'Inter',sans-serif;font-size:.52rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2);margin-top:6px}
.foot-grid p{font-size:.92rem;max-width:300px}
.foot-col h4{font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2);margin-bottom:18px}
.foot-col a{display:block;color:rgba(242,238,229,.7);font-size:.94rem;margin-bottom:11px;transition:.2s}
.foot-col a:hover{color:var(--gold-2)}
.foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:26px;font-family:'Inter',sans-serif;font-size:.68rem;letter-spacing:.08em;color:rgba(242,238,229,.45)}
.foot-bot a{color:rgba(242,238,229,.55);transition:.2s}.foot-bot a:hover{color:var(--gold-2)}

/* ---------- Full-width image band ---------- */
.imgband{width:100%;height:clamp(280px,44vw,480px);overflow:hidden;position:relative;background:linear-gradient(150deg,#1c2c4a,#101b2e)}
.imgband img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 8s ease}
.imgband:hover img{transform:scale(1.06)}
.imgband::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,22,38,.55),rgba(13,22,38,.05) 55%,transparent)}
.imgband .cap{position:absolute;left:clamp(20px,6vw,80px);bottom:clamp(24px,4vw,48px);z-index:2;max-width:520px}
.imgband .cap .lb{font-family:'Inter',sans-serif;font-weight:500;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2)}
.imgband .cap h3{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.1;color:#fff;margin-top:10px}

/* ---------- Testimonials ---------- */
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tst{border:1px solid var(--rule);border-radius:3px;padding:32px 28px;background:var(--paper);display:flex;flex-direction:column;gap:16px;transition:.3s}
.tst:hover{box-shadow:0 24px 50px -36px rgba(20,33,58,.4);transform:translateY(-3px)}
.tst .stars{color:var(--gold);letter-spacing:3px;font-size:.95rem}
.tst blockquote{font-family:'Playfair Display',serif;font-size:1.18rem;line-height:1.4;font-style:italic;flex:1;color:var(--ink)}
.tst cite{font-family:'Inter',sans-serif;font-style:normal;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);opacity:.6}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--rule);max-width:900px}
.faq{border-bottom:1px solid var(--rule);cursor:pointer}
.faq-q{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 0;transition:.3s}
.faq-q h3{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.3;transition:.3s}
.faq-q .pl{width:22px;height:22px;position:relative;flex-shrink:0}
.faq-q .pl::before,.faq-q .pl::after{content:"";position:absolute;background:var(--gold);transition:.35s}
.faq-q .pl::before{top:10px;left:0;width:22px;height:1.5px}
.faq-q .pl::after{left:10px;top:0;width:1.5px;height:22px}
.faq.open .faq-q .pl::after{transform:rotate(90deg);opacity:0}
.faq.open .faq-q h3{color:var(--gold)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.16,1,.3,1)}
.faq-a-inner{padding:0 0 26px 0;max-width:740px;opacity:.84;font-size:1rem;line-height:1.7}
.faq-a-inner a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}

/* ---------- Free analysis form extras ---------- */
.analysis-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,80px);align-items:start}
.analysis-lead .pt{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.analysis-lead .pt svg{width:20px;height:20px;color:var(--gold);flex-shrink:0;margin-top:3px}
.analysis-lead .pt span{opacity:.84;font-size:.98rem}
@media(max-width:900px){.analysis-grid{grid-template-columns:1fr;gap:36px}}

/* ---------- Mobile sticky action bar ---------- */
.mobar{display:none}
@media(max-width:900px){
  .mobar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:120;box-shadow:0 -6px 22px -12px rgba(0,0,0,.45)}
  .mobar a{padding:15px 10px;text-align:center;font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:8px}
  .mobar a svg{width:15px;height:15px}
  .mobar .call{background:var(--ink);color:var(--paper)}
  .mobar .quote{background:var(--gold);color:#fff}
  body{padding-bottom:52px}
}

/* ---------- Legal / fine print ---------- */
.legal{max-width:840px}
.legal .lead{font-size:1.12rem;opacity:.86;margin-bottom:10px}
.legal .upd{font-family:'Inter',sans-serif;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);opacity:.5;margin-bottom:44px}
.legal h2{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.1;margin:46px 0 14px;letter-spacing:-.01em}
.legal h2 .ln{font-family:'Inter',sans-serif;font-size:.66rem;font-weight:400;color:var(--gold);letter-spacing:.16em;display:block;margin-bottom:10px}
.legal p{margin-bottom:16px;opacity:.84}
.legal p a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.legal .flag{border-left:2px solid var(--gold);background:var(--paper-2);padding:16px 20px;font-size:.92rem;opacity:.85;margin:10px 0 16px}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .util{display:none}
  .brand-logo{height:40px}
  .navwrap{display:block;position:fixed;inset:72px 0 auto 0;background:var(--paper);padding:26px clamp(20px,5vw,64px) 30px;border-bottom:1px solid var(--rule);transform:translateY(-140%);transition:.4s}
  .navwrap.open{transform:translateY(0)}
  nav.links{position:static;transform:none;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--rule);width:100%}
  .mast-right{flex-direction:column;align-items:flex-start;gap:20px;width:100%}
  .langtoggle{font-size:1rem}
  .langtoggle button{font-size:1rem}
  .langtoggle button.zh{font-size:1rem}
  .burger{display:flex}
  .hero-grid{grid-template-columns:1fr}.hero-mark{display:none}
  .trio{grid-template-columns:1fr;gap:14px}
  .tcard{min-height:auto}
  .story{grid-template-columns:1fr;gap:44px}.story-left{position:static}
  .contact-grid{grid-template-columns:1fr;gap:34px}
  .bento{grid-template-columns:repeat(2,1fr)}
  .t-feature{grid-column:span 2}
  .str-intro{grid-template-columns:1fr;gap:34px}
  .proc-grid{grid-template-columns:1fr 1fr}
  .cases{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .svc-body-inner{padding-left:0}
  .frow{grid-template-columns:1fr;gap:0}
  .foot-grid{grid-template-columns:1fr}
  .cx .v{font-size:1.1rem}
  .sec-head{grid-template-columns:1fr;gap:8px}
  .bento{grid-template-columns:1fr}
  .t-feature,.t-wide,.t-quote{grid-column:span 1}
  .str-stats{grid-template-columns:1fr 1fr}
  .proc-grid{grid-template-columns:1fr}
  .str-gallery{min-height:320px}
}
/* ---------- Chinese language mode fonts ---------- */
html[lang^="zh"] body{font-family:'Noto Sans SC','Inter',sans-serif}
html[lang^="zh"] .display,html[lang^="zh"] h1,html[lang^="zh"] h2,html[lang^="zh"] h3,html[lang^="zh"] h4,
html[lang^="zh"] .sec-title h2,html[lang^="zh"] .hero h1,html[lang^="zh"] .page-hero h1,
html[lang^="zh"] .story-left h2,html[lang^="zh"] .big-line,html[lang^="zh"] .pull,
html[lang^="zh"] .tst blockquote,html[lang^="zh"] .t-quote blockquote,html[lang^="zh"] .proc h4,
html[lang^="zh"] .tile h3,html[lang^="zh"] .case-body h4,html[lang^="zh"] .legal h2,
html[lang^="zh"] .cta-band h2,html[lang^="zh"] .faq-q h3,html[lang^="zh"] .tcard h3,
html[lang^="zh"] .huge,html[lang^="zh"] .n,html[lang^="zh"] .now,html[lang^="zh"] .was,
html[lang^="zh"] .foot-brand .fb-nm,html[lang^="zh"] .sign,html[lang^="zh"] .cx .v{
  font-family:'Noto Serif SC',serif;font-style:normal
}
html[lang^="zh"] em{font-style:normal}
html[lang^="zh"] .hero h1{line-height:1.18;letter-spacing:0}
html[lang^="zh"] .page-hero h1{line-height:1.2;letter-spacing:0}

@media(prefers-reduced-motion:reduce){
  .kin .w{animation:none;transform:none}
  .kin .line{overflow:visible}
  .marquee{animation:none}
  *{scroll-behavior:auto}
}

/* ---------- Anchor offset + mobile polish ---------- */
[id]{scroll-margin-top:88px}
img{max-width:100%}
@media(max-width:900px){
  .hero{padding:120px 0 56px}
  .hero-grid{gap:0}
}
@media(max-width:560px){
  .hero{padding:104px 0 44px}
  section.blk{padding:clamp(60px,13vw,88px) 0}
  .hero-actions .arrow-link{flex:1 1 auto;justify-content:center}
  .zh-badge{margin-top:24px}
  .imgband{height:clamp(220px,60vw,340px)}
  .imgband .cap h3{font-size:1.5rem}
  .str-stats{gap:22px 18px}
  .tst blockquote{font-size:1.08rem}
  .page-hero h1{font-size:clamp(2.2rem,10vw,3.2rem)}
}
