@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Noto+Sans:wght@400;600;700&display=swap');
/* Compass Graphite & Yellow — tokens */
:root{
--background-dark:#272D31;--surface-dark:#333A3F;--surface-dark-hover:#3D454B;
--background-light:#FAFAF8;--surface-light:#FFFFFF;--surface-neutral:#F0F1EE;
--text-on-dark:#F8F9F7;--text-secondary-on-dark:#C4CACD;--text-on-light:#202628;--text-secondary-on-light:#5B6368;
--accent:#F4DC3C;--accent-hover:#E6CD29;--accent-active:#D9BF20;
--border-dark:#4B5359;--border-light:#DCE0DD;
--success:#1E7044;--success-on-dark:#7FD9A8;--error:#B3261E;--error-on-dark:#FF8A80;
--font:'Manrope','Noto Sans',Arial,sans-serif;
--fs-display:clamp(36px,2.593vw + 26.67px,64px);
--fs-h2:clamp(30px,1.296vw + 25.33px,44px);
--fs-h3:clamp(24px,.37vw + 22.67px,28px);
--fs-product:clamp(20px,.185vw + 19.33px,22px);
--fs-lead:clamp(18px,.185vw + 17.33px,20px);
--fs-body:clamp(16px,.185vw + 15.33px,18px);
--fs-caption:14px;--fs-eyebrow:12px;--fs-btn:16px;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:120px;
--r-ctl:8px;--r-card:12px;--r-media:16px;
--wrap:1440px;--gutter:56px;--sec:96px;--col-gap:48px;
--t:180ms ease}
@media(max-width:1280px){:root{--gutter:48px}}
@media(max-width:1024px){:root{--gutter:32px;--sec:80px;--col-gap:32px}}
@media(max-width:640px){:root{--gutter:20px;--sec:56px}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--background-light);color:var(--text-on-light);font-family:var(--font);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;overflow-x:hidden}
a{color:var(--text-on-light);text-decoration:underline;text-underline-offset:3px;transition:color var(--t)}
a:hover{text-decoration-thickness:2px}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;text-wrap:balance}p{margin:0;text-wrap:pretty}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--text-on-light);outline-offset:2px;border-radius:4px}
.on-dark :focus-visible,.topbar :focus-visible,.hd :focus-visible,.hero :focus-visible,.dark :focus-visible,footer :focus-visible,.calc .out :focus-visible,.tour :focus-visible,.pass :focus-visible{outline-color:var(--accent)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.mono{font-family:var(--font)}
.eyebrow{font-size:var(--fs-eyebrow);line-height:1.3;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary-on-light)}
.hero .eyebrow,.dark .eyebrow,footer .eyebrow,.tour .eyebrow{color:var(--text-secondary-on-dark)}
.sec{padding:var(--sec) 0;background:var(--background-light)}
.sec.white{background:var(--surface-light)}
.sec.dark{background:var(--background-dark);color:var(--text-on-dark)}
.sec-head{display:flex;flex-direction:column;gap:20px;margin-bottom:40px;max-width:860px}
.sec-head .eyebrow{margin-bottom:-8px}
.sec-head h2{font-size:var(--fs-h2);line-height:1.15;font-weight:700;letter-spacing:-.02em}
.sec-head p{color:var(--text-secondary-on-light);font-size:var(--fs-lead);max-width:65ch}
.dark .sec-head p{color:var(--text-secondary-on-dark)}
/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;font-weight:600;font-size:var(--fs-btn);line-height:1.25;padding:14px 26px;border-radius:var(--r-ctl);border:1.5px solid transparent;cursor:pointer;transition:background var(--t),border-color var(--t),color var(--t),opacity var(--t);text-align:center;text-decoration:none;white-space:nowrap}
@media(max-width:560px){.btn{white-space:normal}}
.btn svg{width:20px;height:20px;flex:none}
.btn-y{background:var(--accent);color:var(--text-on-light);border-color:var(--accent)}
.btn-y:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-on-light)}
.btn-y:active{background:var(--accent-active);border-color:var(--accent-active)}
.btn-o{background:transparent;color:var(--text-on-light);border-color:var(--text-on-light)}
.btn-o:hover{background:var(--surface-neutral)}
.btn-o:active{background:var(--border-light)}
.dark .btn-o,.hero .btn-o,.tour .btn-o,footer .btn-o{color:var(--text-on-dark);border-color:var(--text-secondary-on-dark)}
.dark .btn-o:hover,.hero .btn-o:hover,.tour .btn-o:hover{background:var(--surface-dark-hover)}
.btn-sm{min-height:48px;padding:11px 20px;font-size:15px}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;pointer-events:none;cursor:not-allowed}
.btn.is-loading{color:transparent!important;pointer-events:none}
.btn.is-loading::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;border:2px solid var(--text-on-light);border-right-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.textlink{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:12px 2px;min-height:48px;font:inherit;font-size:var(--fs-btn);font-weight:600;color:var(--text-on-light);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px;cursor:pointer;text-align:left;transition:text-decoration-thickness var(--t)}
.textlink:hover{text-decoration-thickness:2.5px}
.hero .textlink,.dark .textlink{color:var(--text-on-dark)}
.linkbtn{background:none;border:0;color:var(--text-on-dark);text-align:left;font:inherit;font-weight:600;font-size:var(--fs-caption);cursor:pointer;padding:8px 0;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.ok{color:var(--success)}.bad{color:var(--error)}.dark .ok,.calc .out .ok,.pass .ok{color:var(--success-on-dark)}
/* topbar */
.topbar{background:var(--background-dark);color:var(--text-secondary-on-dark);font-size:var(--fs-caption);line-height:1.4;border-bottom:1px solid var(--border-dark)}
.topbar .wrap{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:nowrap}
.topbar .live{display:flex;align-items:center;gap:8px;padding:8px 0;min-width:0}.topbar .live span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){.topbar .live{display:none}.topbar .wrap{justify-content:flex-end}}
.topbar .links{display:flex;gap:4px 24px;align-items:center;flex-wrap:wrap}
.topbar a{color:var(--text-on-dark);text-decoration:none;font-weight:600;padding:10px 0;white-space:nowrap;flex:none}.topbar a span{color:var(--text-secondary-on-dark);font-weight:400}
.dot{width:8px;height:8px;border-radius:50%;background:var(--success-on-dark);flex:none}
/* header */
header.hd{position:sticky;top:0;z-index:40;background:var(--background-dark);color:var(--text-on-dark)}
header.hd.scrolled{border-bottom:1px solid var(--border-dark)}
.hd .wrap{display:flex;align-items:center;gap:24px;min-height:92px}
.logo{display:flex;align-items:center;gap:12px;color:var(--text-on-dark);text-decoration:none;flex:none}
.logo-mark{width:44px;filter:brightness(0) invert(1)}
.logo b{display:block;font-weight:700;font-size:16px;letter-spacing:.08em}.logo span{display:block;font-size:12px;color:var(--text-secondary-on-dark)}
nav.main{display:flex;align-items:center;gap:30px;margin:0 auto}
nav.main>a,.more>summary{color:var(--text-on-dark);font-size:16px;font-weight:500;padding:12px 0;white-space:nowrap;text-decoration:none;cursor:pointer;border-bottom:2px solid transparent;transition:border-color var(--t),color var(--t)}
nav.main>a:hover,.more>summary:hover{border-bottom-color:var(--accent)}
.more{position:relative}
.more>summary{list-style:none;display:flex;align-items:center;gap:6px}.more>summary::-webkit-details-marker{display:none}
.more>summary svg{width:16px;height:16px;transition:transform var(--t)}.more[open]>summary svg{transform:rotate(180deg)}
.more .menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);min-width:240px;background:var(--surface-dark);border:1px solid var(--border-dark);border-radius:var(--r-card);padding:8px;display:flex;flex-direction:column}
.more .menu a{color:var(--text-on-dark);text-decoration:none;padding:12px 14px;border-radius:var(--r-ctl);font-size:15px;transition:background var(--t)}
.more .menu a:hover{background:var(--surface-dark-hover)}
.hd-right{display:flex;align-items:center;gap:16px;flex:none}
.lang{display:flex;border:1px solid var(--border-dark);border-radius:var(--r-ctl);overflow:hidden;flex:none}
.lang button{background:none;border:0;color:var(--text-secondary-on-dark);font-size:14px;font-weight:600;padding:0 12px;min-height:44px;min-width:44px;cursor:pointer;transition:background var(--t),color var(--t)}
.lang button:hover{background:var(--surface-dark-hover)}
.lang button.on{background:var(--surface-dark);color:var(--text-on-dark);box-shadow:inset 0 -2px 0 var(--accent)}
.burger{display:none;align-items:center;justify-content:center;background:none;border:1px solid var(--border-dark);color:var(--text-on-dark);border-radius:var(--r-ctl);width:48px;height:48px;cursor:pointer}
.burger svg{width:22px;height:22px}
.mnav{display:none;background:var(--background-dark);border-top:1px solid var(--border-dark);padding:8px var(--gutter) 24px}
.mnav.open{display:block}
.mnav a{display:block;color:var(--text-on-dark);text-decoration:none;font-size:17px;padding:14px 0;border-bottom:1px solid var(--border-dark)}
.mnav .btn{width:100%;margin-top:20px}
.mnav .lang{margin-top:20px;align-self:flex-start;display:inline-flex}
@media(max-width:1200px){nav.main{display:none}.burger{display:inline-flex}.hd-right{margin-left:auto}}
@media(max-width:1024px){.hd .cta{display:none}}
@media(max-width:640px){.hd-right .lang{display:none}.logo span{display:none}.hd .wrap{min-height:76px}}
/* hero */
.hero{background:var(--background-dark);color:var(--text-on-dark);padding:48px 0 72px}
.hero-grid{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);grid-template-areas:"txt media";column-gap:64px;align-items:start}
.hero-txt{grid-area:txt;display:flex;flex-direction:column}
.hero h1{font-size:var(--fs-display);line-height:1.1;font-weight:700;letter-spacing:-.025em;margin-top:20px;max-width:12ch}
.hero .sub{color:var(--text-secondary-on-dark);font-size:var(--fs-lead);max-width:44ch;margin-top:24px}.hero .sub b{color:var(--text-on-dark);font-weight:600}
.hero .ctas{display:flex;flex-wrap:wrap;gap:8px 28px;align-items:center;margin-top:32px}
.hero-media{grid-area:media;position:relative;aspect-ratio:3/2;border-radius:var(--r-media);overflow:hidden;background:var(--surface-dark)}
.hero-media .scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media .machine{position:absolute;left:4%;bottom:6%;width:74%;height:auto;-webkit-mask-image:radial-gradient(ellipse 72% 70% at 50% 52%,#000 62%,transparent 100%);mask-image:radial-gradient(ellipse 72% 70% at 50% 52%,#000 62%,transparent 100%)}
.hero-media .pack{position:absolute;right:7%;bottom:8%;height:62%;width:auto;mix-blend-mode:multiply}
.hero-media .pill{position:absolute;top:20px;right:20px;background:var(--accent);color:var(--text-on-light);font-size:13px;font-weight:600;line-height:1.3;padding:8px 14px;border-radius:999px}
.adv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:56px;border-top:1px solid var(--border-dark);padding-top:32px}
.adv li{list-style:none;display:flex;gap:14px;align-items:flex-start;padding:0 24px;border-left:1px solid var(--border-dark);font-size:var(--fs-caption);line-height:1.4;color:var(--text-secondary-on-dark)}
.adv li:first-child{padding-left:0;border-left:0}
.adv svg{width:30px;height:30px;flex:none;stroke-width:1.75;color:var(--text-on-dark)}
.adv{padding-left:0;margin-bottom:0}
@media(max-width:1024px){.hero-grid{grid-template-columns:1fr;grid-template-areas:"txt" "media";row-gap:40px}.adv{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}.adv li:nth-child(3){padding-left:0;border-left:0}}
@media(max-width:560px){.adv{grid-template-columns:1fr;margin-top:40px}.adv li{padding:0;border:0}.hero .ctas .btn{width:100%}.hero-media .pill{top:12px;right:12px;font-size:12px}}
/* factory */
.fact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--col-gap);align-items:start}
.fact-photo{border-radius:var(--r-card);overflow:hidden;aspect-ratio:4/3;background:var(--surface-neutral)}.fact-photo img{width:100%;height:100%;object-fit:cover}
.tele{display:flex;flex-direction:column;gap:20px}
.tele-h{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary-on-light)}
.cmp{padding:20px 0 0;border-top:1px solid var(--border-light)}
.cmp h4{font-size:var(--fs-body);font-weight:600;margin-bottom:4px}.cmp p{font-size:var(--fs-caption);color:var(--text-secondary-on-light)}
.cmp .price{font-weight:700;font-size:22px;margin-top:8px}.cmp .price span{font-weight:600}
.pass{background:var(--background-dark);color:var(--text-on-dark);border-radius:var(--r-card);padding:20px 24px;font-size:var(--fs-caption)}
.pass .t{color:var(--text-on-dark);margin-bottom:8px;font-weight:700;letter-spacing:.06em}
.pass .row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-dark)}.pass .row:last-of-type{border:0}
.pass .row span:first-child{color:var(--text-secondary-on-dark)}
.proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:64px;border-top:1px solid var(--border-light)}
.proof>div{padding:28px 24px 0;border-left:1px solid var(--border-light)}.proof>div:first-child{padding-left:0;border-left:0}
.proof .n{font-weight:700;font-size:var(--fs-h2);line-height:1.1;letter-spacing:-.02em}.proof p{color:var(--text-secondary-on-light);font-size:var(--fs-caption);margin-top:10px;max-width:30ch}
@media(max-width:1024px){.fact-grid{grid-template-columns:1fr}.proof{grid-template-columns:repeat(2,minmax(0,1fr))}.proof>div:nth-child(3){padding-left:0;border-left:0}}
@media(max-width:420px){.proof{grid-template-columns:1fr}.proof>div{padding-left:0;border-left:0}}
/* tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px}
.tab{background:transparent;border:1px solid var(--border-light);color:var(--text-on-light);font-weight:600;font-size:15px;min-height:48px;padding:10px 18px;border-radius:var(--r-ctl);cursor:pointer;white-space:nowrap;transition:background var(--t),border-color var(--t),color var(--t)}
.tab:hover{border-color:var(--text-secondary-on-light)}
.tab.on{background:var(--background-dark);border-color:var(--background-dark);color:var(--text-on-dark)}
.panel{display:none;padding:48px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--col-gap);background:var(--surface-neutral);border-radius:var(--r-card)}.panel.on{display:grid}
.panel h3{font-size:var(--fs-h3);line-height:1.25;font-weight:600}
.panel .gist{color:var(--text-secondary-on-light);margin-top:20px;max-width:60ch}
.panel .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.panel ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.panel li{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--border-light)}.panel li:first-child{padding-top:0}
.panel li svg{width:22px;height:22px;flex:none;color:var(--success);margin-top:2px}
@media(max-width:860px){.panel{grid-template-columns:1fr;padding:24px;gap:24px}}
/* problems */
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--col-gap);row-gap:56px}
@media(max-width:1024px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.grid3{grid-template-columns:1fr;row-gap:40px}}
.prob{display:flex;flex-direction:column;gap:14px;padding-top:24px;border-top:1px solid var(--border-dark)}
.prob .q{font-weight:600;font-size:var(--fs-product);line-height:1.3}
.prob .loss{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary-on-dark)}
.prob .step{font-size:var(--fs-caption);line-height:1.5;color:var(--text-secondary-on-dark)}
.prob .step b{display:block;font-size:var(--fs-eyebrow);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.prob .step.cause b{color:var(--error-on-dark)}.prob .step.fix b{color:var(--success-on-dark)}.prob .step.fix{color:var(--text-on-dark)}
/* calculator */
.calc{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-radius:var(--r-card);overflow:hidden;border:1px solid var(--border-light);background:var(--surface-light)}
.calc .in{padding:48px;display:flex;flex-direction:column;gap:32px}
.calc .out{padding:48px;background:var(--background-dark);color:var(--text-on-dark);display:flex;flex-direction:column;gap:24px}
.fld label,.fld .lbl{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;font-weight:600;margin-bottom:12px}
.fld .val{font-weight:700;font-size:var(--fs-body)}
select,.form input{width:100%;min-height:52px;background:var(--surface-light);color:var(--text-on-light);border:1px solid #9AA2A6;border-radius:var(--r-ctl);padding:12px 14px;font:inherit;font-size:16px;transition:border-color var(--t),box-shadow var(--t)}
select:hover,.form input:hover{border-color:var(--text-secondary-on-light)}
select:focus,.form input:focus{outline:none;border-color:var(--text-on-light);box-shadow:0 0 0 3px rgba(32,38,40,.18)}
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.seg button{background:var(--surface-light);border:1px solid var(--border-light);color:var(--text-on-light);border-radius:var(--r-ctl);min-height:60px;padding:10px;font-size:15px;font-weight:600;cursor:pointer;line-height:1.3;transition:border-color var(--t),background var(--t)}
.seg button small{display:block;color:var(--text-secondary-on-light);font-weight:400;font-size:var(--fs-caption);margin-top:2px}
.seg button:hover{border-color:var(--text-secondary-on-light)}
.seg button.on{border:2px solid var(--text-on-light);background:var(--surface-neutral);box-shadow:inset 0 -3px 0 var(--accent)}
input[type=range]{width:100%;accent-color:var(--accent);height:32px;cursor:pointer}
.rng-lim{display:flex;justify-content:space-between;font-size:var(--fs-caption);color:var(--text-secondary-on-light)}
.out .k{font-size:var(--fs-eyebrow);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary-on-dark);margin-bottom:10px}
.big{font-weight:700;font-size:var(--fs-display);line-height:1.05;letter-spacing:-.02em;color:var(--text-on-dark)}
.big-line{width:64px;height:4px;background:var(--accent);border-radius:2px;margin-top:16px}
.out .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.out .box{background:var(--surface-dark);border-radius:var(--r-ctl);padding:16px}
.out .box .v{font-weight:700;font-size:var(--fs-product)}
.out .box .sub2{font-size:var(--fs-caption);color:var(--text-secondary-on-dark);margin-top:4px}
.mach{border-radius:var(--r-ctl);padding:14px 16px;font-weight:600;font-size:15px;border:1px solid var(--border-dark);color:var(--text-secondary-on-dark)}
.mach.yes{border-color:var(--success-on-dark);color:var(--success-on-dark)}
@media(max-width:960px){.calc{grid-template-columns:1fr}.calc .in,.calc .out{padding:24px}.seg{grid-template-columns:1fr}}
/* protection stepper */
.stepper{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--col-gap)}
.steps{display:flex;flex-direction:column}
.steps button{display:flex;gap:16px;align-items:baseline;text-align:left;background:transparent;border:0;border-left:3px solid var(--border-light);color:var(--text-secondary-on-light);font-size:15px;font-weight:600;min-height:52px;padding:12px 18px;cursor:pointer;transition:color var(--t),border-color var(--t),background var(--t)}
.steps button .mono{font-size:var(--fs-caption)}
.steps button:hover{color:var(--text-on-light);background:var(--surface-neutral)}
.steps button.on{color:var(--text-on-light);border-left-color:var(--accent);background:var(--surface-neutral)}
.node{display:flex;flex-direction:column;gap:24px}
.node h3{font-size:var(--fs-h3);line-height:1.25;font-weight:600}
.node .eyebrow{margin-bottom:-12px}
.norm{align-self:flex-start;font-size:var(--fs-caption);font-weight:600;color:var(--success);padding-left:12px;border-left:3px solid var(--success)}
.nimg{border-radius:var(--r-card);overflow:hidden;aspect-ratio:16/7;background:var(--surface-neutral)}.nimg img{width:100%;height:100%;object-fit:cover}
.plates{display:grid;grid-template-columns:1fr 1fr;gap:var(--col-gap)}
.plate{font-size:15px;color:var(--text-secondary-on-light);padding-top:16px;border-top:1px solid var(--border-light)}
.plate b{display:block;font-size:var(--fs-body);font-weight:600;color:var(--text-on-light);margin-bottom:8px}
.node-nav{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:900px){.stepper{grid-template-columns:1fr;gap:24px}.steps{flex-direction:row;overflow-x:auto}.steps button{white-space:nowrap;border-left:0;border-bottom:3px solid var(--border-light)}.steps button.on{border-bottom-color:var(--accent)}.plates{grid-template-columns:1fr;gap:16px}}
/* catalog */
.cat-intro{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:var(--col-gap);align-items:end;margin-bottom:64px}
.cat-intro .sec-head{margin-bottom:0}
.featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.featured a{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--text-on-light)}
.featured .fimg{position:relative;background:var(--surface-neutral);border-radius:var(--r-card);aspect-ratio:4/5;overflow:hidden}
.featured .fimg img{position:absolute;left:8%;top:10%;width:84%;height:80%;object-fit:contain;object-position:center bottom;mix-blend-mode:multiply}
.featured b{font-size:var(--fs-body);font-weight:600}.featured span{font-size:var(--fs-caption);color:var(--text-secondary-on-light)}
.featured a:hover b{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1024px){.cat-intro{grid-template-columns:1fr;align-items:start}}
@media(max-width:480px){.featured{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:40px;padding-top:40px;border-top:1px solid var(--border-light)}
#prods{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px;row-gap:56px}
@media(max-width:1200px){#prods{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){#prods{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){#prods{grid-template-columns:1fr}}
.prod{display:flex;flex-direction:column;gap:16px}
.pimg{position:relative;background:var(--surface-neutral);border-radius:var(--r-card);aspect-ratio:4/5;overflow:hidden}
.pimg img{position:absolute;left:8%;top:9%;width:84%;height:82%;object-fit:contain;object-position:center bottom;mix-blend-mode:multiply}
.pbody{display:flex;flex-direction:column;gap:8px;flex:1}
.prod .badge{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.08em;color:var(--text-secondary-on-light)}
.prod h3{font-size:var(--fs-product);line-height:1.3;font-weight:600}
.prod .taste{font-size:15px;color:var(--text-on-light)}
.prod .comp{font-size:var(--fs-caption);color:var(--text-secondary-on-light)}
.prod .pr{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:8px}.prod .pr b{font-size:24px;font-weight:700}.prod .pr span,.prod .pr s{font-size:var(--fs-caption);color:var(--text-secondary-on-light)}
.rec{border-top:1px solid var(--border-light);font-size:var(--fs-caption);margin-top:auto}
.rec summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center;justify-content:space-between;list-style:none;color:var(--text-secondary-on-light)}
.rec summary::-webkit-details-marker{display:none}
.rec summary svg{width:18px;height:18px;transition:transform var(--t)}.rec[open] summary svg{transform:rotate(180deg)}
.rec div{padding-bottom:8px}
.prod .acts{display:flex;flex-direction:column;align-items:stretch}
.prod .acts .btn{width:100%}
.prod .acts .textlink{justify-content:center;font-size:15px}
.prod.hide{display:none}
.kaspi{margin-top:64px;padding:24px 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--text-secondary-on-light)}
.kaspi a{font-weight:600;padding:12px 0}
/* machines */
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--col-gap)}
@media(max-width:780px){.grid2{grid-template-columns:1fr}}
.lead-txt{font-size:var(--fs-lead);max-width:65ch;margin:-12px 0 48px;color:var(--text-secondary-on-dark)}
.mcard{display:flex;flex-direction:column;gap:12px}
.mimg{background:#ECECEC;border-radius:var(--r-card);aspect-ratio:4/3;overflow:hidden;margin-bottom:12px}.mimg img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.mcard .free{font-weight:700;font-size:var(--fs-h2);line-height:1.1;color:var(--text-on-dark)}
.mcard .free::after{content:"";display:block;width:48px;height:4px;background:var(--accent);border-radius:2px;margin-top:12px}
.mcard h3{font-size:var(--fs-product);font-weight:600;line-height:1.3}.mcard p{color:var(--text-secondary-on-dark)}.mcard p b{color:var(--text-on-dark)}
.mcard .btn{align-self:flex-start;margin-top:12px}
.shield{margin-top:64px;padding-top:48px;border-top:1px solid var(--border-dark);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:var(--col-gap);align-items:center}
.shield h3{font-size:var(--fs-h3);font-weight:600;line-height:1.25;margin-bottom:20px}.shield p{color:var(--text-secondary-on-dark);max-width:62ch}.shield p b{color:var(--text-on-dark)}
.shield img{border-radius:var(--r-card);width:100%;aspect-ratio:4/3;height:auto;object-fit:cover}
@media(max-width:860px){.shield{grid-template-columns:1fr}}
/* vending */
.vcard{display:flex;flex-direction:column;gap:14px;padding-top:24px;border-top:1px solid var(--border-light)}
.vcard h3{font-size:var(--fs-h3);font-weight:600;line-height:1.25}.vcard p{color:var(--text-secondary-on-light);max-width:60ch}.vcard p b{color:var(--text-on-light)}
.vcard .mono{color:var(--text-secondary-on-light);font-weight:600;font-size:var(--fs-caption)}
.vcard .btn{align-self:flex-start;margin-top:12px}
/* branches */
.tour{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);overflow:hidden;margin-bottom:var(--sec);background:var(--background-dark);color:var(--text-on-dark);border-radius:var(--r-media)}
.tour img{width:100%;height:100%;object-fit:cover;min-height:360px}
.tour .txt{padding:48px;display:flex;flex-direction:column;gap:20px;justify-content:center}
.tour h3{font-size:var(--fs-h3);font-weight:600;line-height:1.25}.tour p{color:var(--text-secondary-on-dark)}
.tour .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
@media(max-width:860px){.tour{grid-template-columns:1fr}.tour .txt{padding:24px}.tour img{min-height:240px}}
#branchlist{row-gap:0;column-gap:var(--col-gap)}
.br{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:20px 0;border-top:1px solid var(--border-light)}
.br .city{font-weight:600;font-size:var(--fs-product);line-height:1.3}
.br .role{grid-column:1/-1;order:-1;font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary-on-light)}
.br .addr{grid-column:1;color:var(--text-secondary-on-light);font-size:var(--fs-caption)}
.br a{grid-column:1;font-weight:600;font-size:15px;padding:6px 0;justify-self:start}
/* faq */
.faq{display:flex;flex-direction:column;max-width:920px;border-top:1px solid var(--border-light)}
.faq details{border-bottom:1px solid var(--border-light)}
.faq summary{list-style:none;cursor:pointer;padding:28px 0;font-weight:600;font-size:var(--fs-product);line-height:1.3;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;border-radius:4px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{flex:none;width:36px;height:36px;border:1px solid var(--border-light);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform var(--t),background var(--t)}
.faq summary .ic svg{width:18px;height:18px}
.faq summary:hover .ic{background:var(--surface-neutral)}
.faq details[open] summary .ic{transform:rotate(45deg);background:var(--accent);border-color:var(--accent)}
.faq .a{padding:0 60px 28px 0;color:var(--text-secondary-on-light);line-height:1.65;max-width:72ch}
/* footer */
footer{background:var(--background-dark);color:var(--text-on-dark);padding:var(--sec) 0 40px}
footer .top{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--col-gap);align-items:end}
footer h2{font-size:var(--fs-h2);line-height:1.15;font-weight:700;letter-spacing:-.02em;margin-top:20px}
footer .contact{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
footer a{color:var(--text-on-dark)}
footer .phone{font-size:var(--fs-h3);font-weight:700;text-decoration:none;padding:4px 0}
footer .phone:hover{text-decoration:underline}
footer .contact .note{color:var(--text-secondary-on-dark);font-size:var(--fs-caption)}
footer .fnav{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:64px;padding-top:32px;border-top:1px solid var(--border-dark)}
footer .fnav a{text-decoration:none;color:var(--text-secondary-on-dark);font-size:15px;padding:10px 0}
footer .fnav a:hover{color:var(--text-on-dark);text-decoration:underline}
footer .bottom{margin-top:24px;padding-top:24px;border-top:1px solid var(--border-dark);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--text-secondary-on-dark);font-size:var(--fs-caption)}
@media(max-width:860px){footer .top{grid-template-columns:1fr;gap:24px}footer .contact .btn{width:100%}}
/* modals */
.modal{position:fixed;inset:0;z-index:100;background:rgba(32,38,40,.72);display:none;align-items:center;justify-content:center;padding:20px}
.modal.on{display:flex}
.mbox{background:var(--surface-light);border-radius:var(--r-card);width:100%;max-width:560px;max-height:90vh;overflow:auto;padding:40px;position:relative}
.mbox h3{font-size:var(--fs-h3);font-weight:600;line-height:1.25;margin:12px 56px 16px 0}.mbox>p{color:var(--text-secondary-on-light);margin-bottom:28px}
.x{position:absolute;top:16px;right:16px;background:var(--surface-neutral);border:0;color:var(--text-on-light);width:44px;height:44px;border-radius:var(--r-ctl);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t)}
.x:hover{background:var(--border-light)}.x svg{width:20px;height:20px}
@media(max-width:560px){.mbox{padding:24px}}
.form{display:flex;flex-direction:column;gap:20px}
.form .f{display:flex;flex-direction:column;gap:8px}
.form label{font-size:15px;font-weight:600}
.form label i{font-style:normal;font-weight:400;color:var(--text-secondary-on-light)}
.form .err{display:none;align-items:center;gap:6px;color:var(--error);font-size:var(--fs-caption)}
.form .f.invalid input{border-color:var(--error);box-shadow:0 0 0 3px rgba(179,38,30,.14)}
.form .f.invalid .err{display:flex}
.form .btn{margin-top:4px}
.ptable{border-top:1px solid var(--border-light);font-size:15px}
.ptable .row{display:grid;grid-template-columns:32px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--border-light)}
.ptable .row span:first-child{color:var(--text-secondary-on-light);font-weight:600}.ptable .row span:last-child{color:var(--success);font-weight:700;text-align:right}
