/* =====================================================================
   Tapiocha v4: single-page site. Mostly white, cream surfaces, berry accents.
   Type: Poppins (UI/body) · Cormorant Garamond (display) · Noto Serif TC (Traditional Chinese, subset)
   Sections: header · hero · ticker · about · menu · social proof · franchise/FAQ · contact · footer
   ===================================================================== */

/* ---------- fonts (self-hosted, subset) ---------- */
@font-face{font-family:Poppins;src:url(/fonts/Poppins-Light.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Poppins;src:url(/fonts/Poppins-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url(/fonts/Poppins-Medium.woff2) format("woff2");font-weight:500 600;font-display:swap}
@font-face{font-family:Cormorant;src:url(/fonts/Cormorant-var.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:Cormorant;src:url(/fonts/Cormorant-italic-var.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Noto Serif TC sub";src:url(/fonts/NotoSerifTC-sub.woff2) format("woff2");font-weight:400;font-display:swap}

/* ---------- tokens ---------- */
:root{
 --white:#fff; --cream:#FDF6D3; --cream-soft:#FFFCEE; --berry:#95123C; --berry-dk:#6E0C2C;
 --ink:#231C1E; --muted:#6A5F62; --line:rgba(35,28,30,.12); --line-b:rgba(149,18,60,.22);
 --sans:Poppins,system-ui,-apple-system,"Segoe UI",sans-serif;
 --serif:Cormorant,"Cormorant Garamond",Georgia,"Times New Roman",serif;
 --zh:"Noto Serif TC sub","Noto Serif TC","Songti TC","PMingLiU",serif;
 --wrap:1240px; --pad:clamp(20px,4vw,48px); --hdr:72px; --r:18px;
 --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 12px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{margin:0;background:var(--white);color:var(--ink);font:300 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--berry);outline-offset:3px;border-radius:4px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--berry);color:#fff;padding:10px 16px;border-radius:999px;text-decoration:none}
.skip:focus{top:12px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.sec{position:relative;padding:clamp(80px,10vw,140px) 0}
.i{width:18px;height:18px;flex:none}
[lang="zh-Hant-TW"]{font-family:var(--zh);font-weight:400}

/* ---------- type ---------- */
.h2{font:400 clamp(40px,5.2vw,72px)/1.02 var(--serif);letter-spacing:-.01em;color:var(--ink)}
.h2 em,.hero__h em{font-style:italic;color:var(--berry)}
.h2--sm{font-size:clamp(34px,3.6vw,50px)}
.lede{font-size:clamp(16px,1.25vw,18px);color:var(--muted);max-width:52ch}
.lede a{color:var(--berry);text-underline-offset:3px}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:22px;font:500 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--berry)}
.eyebrow__n{font-variant-numeric:tabular-nums;color:var(--muted)}
.eyebrow__n::after{content:"";display:inline-block;width:28px;height:1px;background:var(--line-b);vertical-align:middle;margin-left:12px}
.eyebrow .zh{font-size:14px;letter-spacing:.3em;text-transform:none}
.eyebrow__en{color:var(--ink)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:999px;border:1px solid var(--berry);
 font:500 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,transform .25s var(--ease)}
.btn--berry{background:var(--berry);color:#fff}
.btn--berry:hover{background:var(--berry-dk)}
.btn--line{background:transparent;color:var(--berry)}
.btn--line:hover{background:var(--berry);color:#fff}
.btn--sm{min-height:40px;padding:0 18px;font-size:11.5px}
.btn .i{width:16px;height:16px}
.btn .i-down{transition:transform .25s}
.btn[aria-expanded="true"] .i-down{transform:rotate(180deg)}

/* ---------- order chooser (popover) ---------- */
.pop{position:relative;display:inline-block}
.js .pop__panel{position:absolute;z-index:60;top:calc(100% + 10px);left:0;min-width:270px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:16px;
 box-shadow:0 24px 60px -20px rgba(35,28,30,.28);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s var(--ease),visibility 0s .2s}
.js .pop.is-open .pop__panel{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s var(--ease)}
.hdr .pop__panel{left:auto;right:0}
html:not(.js) .pop__panel{display:none}
.pop__k{padding:8px 12px 6px;font:500 10.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pop__a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border-radius:10px;text-decoration:none;transition:background .2s}
.pop__a:hover,.pop__a:focus-visible{background:var(--cream-soft)}
.pop__a b{display:block;font-weight:500;color:var(--ink)}
.pop__a small{display:block;font-size:12.5px;color:var(--muted);line-height:1.4}
.pop__a .i{color:var(--berry)}
.pop__a--quiet{border-top:1px solid var(--line);border-radius:0 0 10px 10px;margin-top:4px}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.hdr__in{height:var(--hdr);max-width:1440px;margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;justify-self:start}
.logo svg{width:44px;height:auto}
.logo span{font:500 13px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--berry)}
.nav{display:flex;gap:clamp(18px,2.6vw,40px)}
.nav a{position:relative;padding:10px 0;font:400 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--ink);transition:color .2s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--berry);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover,.nav a.is-active{color:var(--berry)}
.nav a.is-active::after,.nav a:hover::after{transform:scaleX(1)}
.hdr__r{justify-self:end;display:flex;align-items:center;gap:10px}
.hdr .btn{min-height:42px;padding:0 20px;font-size:12px}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;position:relative}
.burger span{position:absolute;left:13px;right:13px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),top .3s}
.burger span:first-child{top:17px}.burger span:last-child{top:25px}
.burger[aria-expanded="true"] span:first-child{top:21px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:21px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:var(--hdr) 0 0 0;background:#fff;padding:28px var(--pad) 40px;display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto;z-index:49}
.mnav nav{display:flex;flex-direction:column}
.mnav nav a{display:flex;align-items:baseline;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);font:400 34px/1.1 var(--serif);text-decoration:none}
.mnav nav a span{font-size:15px;color:var(--berry);min-width:4.2em;letter-spacing:.1em}
.mnav nav a.is-active{color:var(--berry)}
.mnav__foot{display:grid;gap:10px;margin-top:28px}
@media (max-width:1020px){.nav{display:none}.burger{display:block}.hdr__in{grid-template-columns:1fr auto}}
@media (max-width:420px){.hdr .pop>.btn{padding:0 16px}.logo span{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:#fff}
.hero__in{position:relative;max-width:1440px;margin:0 auto;padding:clamp(28px,4vh,48px) var(--pad) 48px;min-height:calc(100svh - var(--hdr));
 display:grid;grid-template-columns:1fr minmax(300px,420px) 1fr;grid-template-rows:auto 1fr auto;column-gap:clamp(16px,2vw,32px)}
.hero__k{grid-column:1/-1;justify-self:center;font:500 11px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.hero__h{grid-column:1/-1;grid-row:2;position:relative;z-index:3;pointer-events:none;font:400 clamp(64px,9.4vw,152px)/.9 var(--serif);letter-spacing:-.02em;color:var(--ink);
 display:grid;grid-template-columns:1fr 1fr;align-content:space-between;padding:clamp(8px,3vh,40px) 0}
.hero__h .w1{justify-self:start}
.hero__h .w2{justify-self:end;text-align:right}
.hero__h .w3{grid-column:2;justify-self:end;align-self:end;padding-right:.04em}
.hero__fig{grid-column:2;grid-row:2;position:relative;z-index:2;align-self:stretch;display:flex;align-items:stretch}
.hero__img{position:relative;width:100%;border-radius:220px 220px 22px 22px;overflow:hidden;background:var(--cream);box-shadow:0 40px 80px -40px rgba(149,18,60,.35)}
.hero__img{min-height:440px}
.hero__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* callouts: small framed labels with thin leader lines (inspired by technical product callouts) */
.callouts{position:absolute;inset:0;pointer-events:none}
.co{position:absolute;display:flex;align-items:center}
.co span{position:relative;background:#fff;padding:9px 14px 8px;font:500 10.5px/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);white-space:nowrap;
 box-shadow:0 10px 30px -14px rgba(35,28,30,.35)}
.co span small{display:block;margin-top:4px;font-size:12px;letter-spacing:.3em;color:var(--berry)}
.co span::before,.co span::after{content:"";position:absolute;width:7px;height:7px;border:1px solid var(--berry)}
.co span::before{left:-4px;top:-4px;border-right:0;border-bottom:0}
.co span::after{right:-4px;bottom:-4px;border-left:0;border-top:0}
.co i{display:block;height:1px;background:var(--berry);width:clamp(40px,5vw,90px)}
.co i::after{content:"";display:block;width:7px;height:7px;border-radius:50%;background:var(--berry);margin-top:-3px;margin-left:calc(100% - 3px)}
.co--1{right:62%;top:34%}
.co--2{left:58%;top:76%;flex-direction:row-reverse}
.co--2 i::after{margin-left:-4px}
.co--3{right:72%;top:61%}
.hero__foot{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:minmax(0,340px) 1fr auto;align-items:end;gap:24px;margin-top:28px}
.hero__p{font-size:14px;line-height:1.75;color:var(--muted)}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.hero__r{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.hero__r .i{color:var(--berry);width:16px;height:16px}
.hero__r b{font-weight:500;color:var(--ink)}
.vert{position:absolute;z-index:1;writing-mode:vertical-rl;text-orientation:upright;font-size:18px;letter-spacing:.5em;color:var(--berry);display:flex;align-items:center;gap:14px}
.vert__line{display:block;width:1px;height:56px;background:var(--line-b)}
.vert--l{left:clamp(10px,1.6vw,26px);top:50%;transform:translateY(-50%)}
.vert--r{right:clamp(10px,1.6vw,26px);top:50%;transform:translateY(-50%)}
@media (max-width:1200px){.co--3{display:none}}
@media (max-width:1100px){.vert--l,.vert--r{display:none}}
@media (max-width:1020px){
 .hero__in{grid-template-columns:1fr minmax(260px,360px) 1fr}
 .hero__h{font-size:clamp(56px,10vw,104px)}
 .callouts{display:none}
 .hero__foot{grid-template-columns:1fr;justify-items:center;text-align:center}
 .hero__p{max-width:46ch}
}
@media (max-width:760px){
 .vert{display:none}
 .hero__in{display:flex;flex-direction:column;min-height:0;padding-top:22px;padding-bottom:40px}
 .hero__k{justify-self:auto;margin-bottom:14px;font-size:10px;letter-spacing:.2em}
 .hero__h{display:block;font-size:clamp(50px,15vw,76px);line-height:.95;padding:0;margin-bottom:22px;pointer-events:auto}
 .hero__h span,.hero__h em{display:block}
 .hero__h .w2,.hero__h .w3{text-align:right}
 .hero__fig{display:block;order:3}
 .hero__img{border-radius:180px 180px 18px 18px;min-height:0;aspect-ratio:1/1}
 .hero__foot{order:2;justify-items:start;text-align:left;margin:0 0 26px;gap:16px}
 .hero__cta{justify-content:flex-start}
}

/* ---------- ticker (Chinese + English words) ---------- */
.ticker{overflow:hidden;background:var(--cream);border-top:1px solid var(--line-b);border-bottom:1px solid var(--line-b);padding:18px 0}
.ticker__track{display:flex;width:max-content;animation:mq 60s linear infinite}
.ticker li{display:flex;align-items:baseline;gap:12px;padding:0 34px;font:italic 400 22px/1 var(--serif);color:var(--ink);white-space:nowrap}
.ticker li::after{content:"✦";font-style:normal;font-size:10px;color:var(--berry);margin-left:34px;align-self:center}
.ticker li span{font-style:normal;font-size:19px;letter-spacing:.14em;color:var(--berry)}
@keyframes mq{to{transform:translateX(-50%)}}
.ticker:hover .ticker__track{animation-play-state:paused}

/* ---------- background characters (decorative: drawn from data-zh via ::before so they are not read or contrast-checked as text) ---------- */
.bgzh::before,.ftr__zh::before{content:attr(data-zh)}
.bgzh{position:absolute;z-index:0;pointer-events:none;font:400 clamp(220px,30vw,460px)/1 var(--zh);color:var(--berry);opacity:.045;right:-2vw;top:40px;user-select:none}
.bgzh--l{right:auto;left:-3vw;top:auto;bottom:40px}

/* ---------- about ---------- */
.about{overflow:hidden}
.about__in{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr .8fr;gap:clamp(20px,3vw,40px);align-items:start}
.about__t .h2{margin-bottom:26px}
.about__t p:not(.eyebrow){color:var(--muted);margin-bottom:16px;max-width:46ch}
.about__t .btn{margin-top:14px}
.ab{overflow:hidden;border-radius:var(--r);background:var(--cream)}
.ab img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ab:hover img{transform:scale(1.04)}
.about__col{display:grid;gap:clamp(14px,2vw,22px)}
.ab--tall{aspect-ratio:4/5}
.ab--sm{aspect-ratio:16/10;width:78%;justify-self:end}
.about__side{display:grid;gap:22px;padding-top:clamp(0px,6vw,90px)}
.ab--sq{aspect-ratio:1}
.stats>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.stats>div:first-child{border-top:1px solid var(--line)}
.stats dt{font-size:13px;color:var(--muted)}
.stats dd{font:400 clamp(40px,4vw,54px)/1 var(--serif);color:var(--ink)}
.stats dd small{font-size:.5em;color:var(--berry);margin-left:2px}
.pillars{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(60px,8vw,110px);border-top:1px solid var(--line)}
.pillars li{padding:34px clamp(16px,2.5vw,36px) 0 0}
.pillars li+li{padding-left:clamp(16px,2.5vw,36px);border-left:1px solid var(--line)}
.pillars__zh{display:block;font-size:30px;line-height:1;color:var(--berry);margin-bottom:18px;letter-spacing:.1em}
.pillars h3{font:500 15px/1.3 var(--sans);letter-spacing:.04em;margin-bottom:8px}
.pillars p{font-size:14.5px;color:var(--muted);max-width:32ch}
@media (max-width:900px){
 .about__in{grid-template-columns:1fr 1fr}
 .about__t{grid-column:1/-1}
 .about__side{padding-top:40px}
}
@media (max-width:600px){
 .about__in{grid-template-columns:1fr}
 .about__side{padding-top:0;grid-template-columns:1fr 1fr;align-items:center}
 .pillars{grid-template-columns:1fr}
 .pillars li,.pillars li+li{padding:26px 0;border-left:0;border-bottom:1px solid var(--line)}
}

/* ---------- menu ---------- */
.menu{background:var(--cream-soft);border-top:1px solid var(--line)}
.menu__head{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:44px}
.menu__head .h2{margin-bottom:18px}
.vert--menu{position:static;font-size:22px;letter-spacing:.4em;padding-top:6px}
.vert--menu .vert__line{height:70px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.tab{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 20px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;
 font:400 13px/1 var(--sans);letter-spacing:.06em;color:var(--ink);transition:background .2s,border-color .2s,color .2s}
.tab__zh{font-size:14px;color:var(--berry);letter-spacing:.12em}
.tab:hover{border-color:var(--berry)}
.tab[aria-selected="true"]{background:var(--berry);border-color:var(--berry);color:#fff}
.tab[aria-selected="true"] .tab__zh{color:var(--cream)}
.mframe{border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden}
.mpanel{display:grid;grid-template-columns:minmax(220px,280px) 1fr}
.js .mpanel:not(.is-on){display:none}
html:not(.js) .mpanel+.mpanel{border-top:1px solid var(--line)}
.mintro{position:relative;padding:34px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:14px}
.mpanel--list .mintro{grid-row:span 2}
.mgrid{grid-auto-rows:1fr}
.mintro__zh{font-size:clamp(32px,3vw,40px);line-height:1;color:var(--berry);letter-spacing:.08em}
.mintro h3{font:400 34px/1.05 var(--serif);padding-bottom:14px;border-bottom:1px solid var(--line)}
.mintro p{font-size:14px;color:var(--muted)}
.mintro__c{font-size:12px!important;letter-spacing:.14em;text-transform:uppercase}
.mintro .btn{align-self:flex-start;white-space:nowrap}
.mintro__img{margin-top:auto;padding-top:14px}
.mintro__img img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px}
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.pcard{display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin-right:-1px}
.pcard__img{background:var(--cream);overflow:hidden;aspect-ratio:4/5}
.pcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.pcard:hover .pcard__img img{transform:scale(1.045)}
.pcard__b{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 18px 20px;flex:1}
.pill{display:inline-block;padding:4px 11px;border:1px solid var(--line-b);border-radius:999px;font:500 10px/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--berry);margin-bottom:6px}
.pcard h4{font:500 22px/1.15 var(--serif);font-weight:500;color:var(--ink)}
.pcard__sub{font-size:12px;letter-spacing:.06em;color:var(--berry)}
.pcard__d{font-size:13px;line-height:1.55;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.chips li{padding:4px 9px;border-radius:999px;background:var(--cream-soft);border:1px solid rgba(149,18,60,.1);font-size:11px;line-height:1.2;color:var(--muted)}
.pcard__p{margin-top:auto;padding-top:10px;font:500 15px/1 var(--sans);color:var(--ink)}
.mlist{grid-column:2;padding:24px 28px 28px;border-top:1px solid var(--line)}
.mlist__h{font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.mlist ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));column-gap:40px}
.mlist li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line)}
.mlist li span{font-size:14.5px;color:var(--ink)}
.mlist li small{display:block;font-size:12px;color:var(--muted)}
.mlist li em{font-style:normal;font-size:10.5px;letter-spacing:.06em;color:var(--berry);border:1px solid var(--line-b);border-radius:99px;padding:1px 7px;margin-left:4px}
.mlist li b{font-weight:500;font-size:14px;white-space:nowrap}
.mlist__note span{color:var(--muted)!important}
.mnote{margin-top:18px;font-size:12.5px;color:var(--muted)}
.mgrid:empty{display:none}
@media (max-width:900px){
 .mpanel{grid-template-columns:1fr}
 .mintro{border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 150px;column-gap:20px;align-items:start}
 .mintro>*:not(.mintro__img){grid-column:1}
 .mintro__img{grid-column:2;grid-row:1/span 5;margin:0;padding:0}
 .mintro--noimg{grid-template-columns:1fr}
 .mlist{grid-column:1}
 .vert--menu{display:none}
}
@media (max-width:600px){
 .tabs{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1*var(--pad)) 18px;padding:0 var(--pad) 4px;scrollbar-width:none;scroll-snap-type:x proximity}
 .tabs::-webkit-scrollbar{display:none}
 .tab{flex:none;scroll-snap-align:start}
 .mgrid{grid-template-columns:1fr 1fr}
 .mintro{grid-template-columns:1fr 110px;padding:24px 20px}
 .pcard__b{padding:14px 12px 16px}
 .pcard h4{font-size:19px}
 .chips li{font-size:10.5px}
 .mlist{padding:18px 20px 22px}
}

/* ---------- social proof ---------- */
.social{overflow:hidden}
.shead{margin-bottom:clamp(36px,5vw,56px)}
.shead--c{text-align:center;display:flex;flex-direction:column;align-items:center}
.shead--c .h2{margin-bottom:16px}
.igrun{position:relative;overflow:hidden}
.igrun__track{display:flex;gap:14px;width:max-content;animation:mq 80s linear infinite;padding:4px 0}
.igrun:hover .igrun__track,.igrun:focus-within .igrun__track,.is-paused .igrun__track,.is-paused .ticker__track{animation-play-state:paused}
.igrun li{flex:none;width:clamp(160px,17vw,240px)}
.igrun a{display:block;border-radius:14px;overflow:hidden;aspect-ratio:4/5;background:var(--cream)}
.igrun img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .4s}
.igrun a:hover img{transform:scale(1.05)}
.mq-pause{position:absolute;right:var(--pad);bottom:12px;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:0;border-radius:999px;background:rgba(255,255,255,.92);
 font:500 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:0 6px 20px -8px rgba(0,0,0,.3)}
.mq-pause .i{width:14px;height:14px}
.rat{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(20px,5vw,72px);margin:clamp(48px,6vw,72px) 0 clamp(36px,4vw,52px)}
.rat li{display:flex;align-items:center;gap:10px}
.rat b{font:400 46px/1 var(--serif);color:var(--ink)}
.rat__s .i{width:16px;height:16px;color:var(--berry)}
.rat__t{display:flex;flex-direction:column;font-size:12px;line-height:1.4;color:var(--muted)}
.rat__t strong{font-weight:500;font-size:13px;color:var(--ink);letter-spacing:.06em}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tcard{display:flex;flex-direction:column;gap:18px;padding:30px 28px;border:1px solid var(--line);border-radius:var(--r);background:#fff;transition:border-color .3s,transform .3s var(--ease)}
.tcard:hover{border-color:var(--line-b);transform:translateY(-3px)}
.tcard__s{display:flex;gap:2px;color:var(--berry)}
.tcard__s .i{width:14px;height:14px}
.tcard blockquote p{font:400 23px/1.32 var(--serif);color:var(--ink)}
.tcard figcaption{margin-top:auto;display:flex;flex-direction:column;font-size:13px}
.tcard figcaption b{font-weight:500}
.tcard figcaption span{color:var(--muted);font-size:12px}
.tnote{margin-top:22px;text-align:center;font-size:12px;color:var(--muted)}
@media (max-width:1020px){.tgrid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.tgrid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--pad));padding:0 var(--pad) 8px;scroll-padding:0 var(--pad);scrollbar-width:thin}.tcard{padding:24px 22px;scroll-snap-align:start}.tcard:hover{transform:none}.rat{justify-content:flex-start;flex-direction:column;gap:14px}}

/* ---------- franchise + FAQ ---------- */
.fr{overflow:hidden;border-top:1px solid var(--line)}
.fr .wrap{position:relative;z-index:1}
.fr__head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.fr__head .lede{margin-bottom:24px}
.fmts{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,28px)}
.fmt__img{border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;background:var(--cream)}
.fmt__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.fmt:hover .fmt__img img{transform:scale(1.035)}
.fmt__b{padding-top:20px}
.fmt__k{font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--berry);margin-bottom:10px}
.fmt h3{font:400 32px/1.1 var(--serif);margin-bottom:8px}
.fmt p:last-child{color:var(--muted);font-size:14.5px;max-width:48ch}
.steps{display:grid;grid-template-columns:repeat(5,1fr);margin:clamp(48px,6vw,80px) 0;border-top:1px solid var(--line);counter-reset:s}
.steps li{padding:22px 16px 0 0;font-size:14px;line-height:1.45}
.steps li span{display:block;font:italic 400 30px/1 var(--serif);color:var(--berry);margin-bottom:10px}
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,80px);padding-top:clamp(48px,6vw,80px);border-top:1px solid var(--line)}
.faq__head{align-self:start;position:sticky;top:calc(var(--hdr) + 32px)}
.faq__head .h2{margin-bottom:18px}
.faq__head p:not(.eyebrow){font-size:14px;color:var(--muted);margin-bottom:22px;max-width:40ch}
.faq__i{border-bottom:1px solid var(--line)}
.faq__i:first-child{border-top:1px solid var(--line)}
.faq__i summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;cursor:pointer;list-style:none;font:400 21px/1.3 var(--serif);color:var(--ink);font-weight:500}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary:hover{color:var(--berry)}
.faq__i summary .i{width:20px;height:20px;color:var(--berry);transition:transform .3s var(--ease)}
.faq__i[open] summary .i{transform:rotate(45deg)}
.faq__a{padding:0 40px 24px 0}
.faq__a p{font-size:14.5px;color:var(--muted)}
@media (max-width:900px){
 .fr__head,.faq{grid-template-columns:1fr}
 .faq__head{position:static}
 .steps{grid-template-columns:1fr 1fr;row-gap:8px}
}
@media (max-width:600px){.fmts{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.steps li{display:flex;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}.steps li span{margin:0;font-size:24px}.faq__a{padding-right:0}.faq__i summary{font-size:19px}}

/* ---------- contact ---------- */
.contact{background:var(--cream-soft);border-top:1px solid var(--line)}
.ct{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:start}
.form{display:grid;gap:18px;padding:clamp(24px,3vw,40px);background:#fff;border:1px solid var(--line);border-radius:22px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld{display:grid;gap:8px}
.fld label{font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.opt{color:var(--muted);letter-spacing:.06em;text-transform:none;font-weight:400}
.fld input,.fld select,.fld textarea{width:100%;min-height:50px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:15px;transition:border-color .2s,box-shadow .2s}
.fld textarea{resize:vertical;min-height:130px}
.fld select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' stroke='%2395123C' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:44px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--berry);box-shadow:0 0 0 3px rgba(149,18,60,.12)}
.fld [aria-invalid="true"]{border-color:#B3261E}
.err{font-size:12.5px;color:#B3261E}
.form .btn{justify-self:start}
.form__note{font-size:12.5px;color:var(--muted)}
.form__note a{color:var(--berry)}
.form__note.is-ok{color:var(--berry)}
.stores{display:grid;gap:16px}
.store{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.store__img{border-radius:12px;overflow:hidden;background:var(--cream)}
.store__img img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}
.store__b{display:flex;flex-direction:column;gap:7px;padding:4px 4px 4px 0}
.store__k{font:500 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--berry)}
.store h3{font:400 26px/1.1 var(--serif);margin-bottom:4px}
.store__a{display:flex;gap:8px;font-size:13.5px;line-height:1.5;color:var(--muted)}
.store__a .i{color:var(--berry);width:16px;height:16px;margin-top:3px}
.store__a a{display:inline-block;padding:4px 0;margin:-4px 0;min-height:28px;text-decoration:none;color:var(--ink)}
.store__h{font-size:13px;color:var(--muted);padding-left:24px}
.store__links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px}
.store__links a{display:inline-flex;align-items:center;gap:5px;min-height:32px;font:500 11.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--berry);text-decoration:none;border-bottom:1px solid var(--line-b)}
.store__links .i{width:13px;height:13px}
.ct__mail{display:flex;flex-wrap:wrap;gap:10px 28px;padding:8px 4px}
.ct__mail a{display:inline-flex;align-items:center;gap:8px;min-height:36px;font-size:14px;text-decoration:none;color:var(--ink)}
.ct__mail .i{color:var(--berry)}
@media (max-width:900px){.ct{grid-template-columns:1fr}}
@media (max-width:520px){.f2{grid-template-columns:1fr}.store{grid-template-columns:96px 1fr;gap:14px;padding:12px}.store h3{font-size:22px}.store__h{padding-left:0}}

/* ---------- footer ---------- */
.ftr{position:relative;overflow:hidden;background:var(--berry);color:var(--cream);padding:clamp(64px,8vw,100px) 0 32px}
.ftr__zh{position:absolute;right:-1vw;bottom:-.18em;font:400 clamp(120px,19vw,300px)/1 var(--zh);color:#fff;opacity:.06;pointer-events:none;letter-spacing:.02em;white-space:nowrap}
.ftr .wrap{position:relative}
.ftr__top{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:32px;padding-bottom:48px;border-bottom:1px solid rgba(253,246,211,.2)}
.ftr__logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.ftr__logo svg{width:52px;height:auto;border-radius:8px;box-shadow:0 0 0 1px rgba(253,246,211,.35)}
.ftr__logo span{font:500 13px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase}
.ftr__brand p{margin-top:18px;font:italic 400 24px/1.2 var(--serif)}
.ftr__nav{display:flex;flex-direction:column;gap:2px}
.ftr__nav a,.ftr__visit a{text-decoration:none;font-size:14px;padding:6px 0;opacity:.9}
.ftr__nav a:hover,.ftr__visit a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
.ftr__visit{display:grid;gap:16px;align-content:start;font-size:13px}
.ftr__visit b{display:block;font-weight:500;letter-spacing:.06em}
.ftr__visit a{display:inline-block}
.ftr__social{display:flex;gap:8px}
.ftr__social a{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(253,246,211,.35);border-radius:50%;transition:background .2s}
.ftr__social a:hover{background:rgba(253,246,211,.12)}
.ftr__legal{display:flex;flex-wrap:wrap;gap:8px 28px;padding-top:24px;font-size:12px;opacity:.75}
@media (max-width:900px){.ftr__top{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ftr__top{grid-template-columns:1fr}}

/* ---------- rendering performance: skip layout/paint of off-screen sections until they approach the viewport ---------- */
.social,.fr,.contact,.ftr{content-visibility:auto;contain-intrinsic-size:auto 1400px}

/* ---------- reveal on scroll (JS adds .rv-in) ---------- */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.rv-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}.ticker__track,.igrun__track{animation:none}.igrun{overflow-x:auto}.ticker{overflow-x:auto}}

/* ---------- 404 ---------- */
.p404{min-height:100svh;display:grid;place-items:center;text-align:center;padding:24px}
.nf__zh{font:400 90px/1 var(--zh);color:var(--berry);opacity:.15;margin-bottom:10px}
.nf p{color:var(--muted);margin:14px 0 26px}
.nf__l{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
