:root{--theme-c1:#ff3b3b;--theme-c2:#ff1414;--theme-c3:#160707;--theme-c4:#ffffff;}body{margin:0;font-family:system-ui,sans-serif;line-height:1.6}img{max-width:100%;height:auto}*{box-sizing:border-box}/* clip (not hidden) prevents horizontal overflow WITHOUT making <main> a scroll   container — overflow:hidden silently breaks position:sticky on the nav block. */main{overflow-x:clip}.cms-cover{display:block;width:100%;max-height:480px;object-fit:cover}.cms-content,.cms-content-image,.cms-album,.cms-faq,.cms-buttons,.cms-slider,.cms-img,.cms-nav,.cms-hero,.cms-cards,.cms-marquee,.cms-footer{background:var(--cms-block-bg,transparent)}.cms-content :is(h1,h2,h3,h4),.cms-content-image :is(h1,h2,h3,h4),.cms-album :is(h1,h2,h3,h4),.cms-faq :is(h1,h2,h3,h4),.cms-hero :is(h1,h2,h3,h4),.cms-cards :is(h1,h2,h3,h4),.cms-marquee :is(h1,h2,h3,h4),.cms-footer :is(h1,h2,h3,h4){color:var(--cms-block-heading-c,inherit)}.cms-content :is(p,li,span),.cms-content-image :is(p,li,span),.cms-album :is(p,li,span),.cms-faq :is(p,li,span),.cms-hero :is(p,li,span),.cms-cards :is(p,li,span),.cms-marquee :is(p,li,span),.cms-footer :is(p,li,span){color:var(--cms-block-body-c,inherit)}.cms-content a,.cms-content-image a,.cms-album a,.cms-faq a,.cms-hero a,.cms-cards a,.cms-marquee a,.cms-footer a{color:var(--cms-block-accent-c,inherit)}.cms-content,.cms-content-image,.cms-album,.cms-faq,.cms-buttons,.cms-slider,.cms-features,.cms-cards,.cms-cta{max-width:1120px;margin-inline:auto;padding:2.5rem 1.25rem}.cms-rt :is(h1,h2,h3){line-height:1.2;margin:.6em 0 .4em}.cms-rt a{color:var(--cms-block-accent-c,var(--theme-c1,#2563eb))}.cms-rt img{border-radius:8px}/* P142/P152 content: legacy enum max-width classes (backward compat) + free measure var (responsive) *//* P173 content: section padding V+H free vars (override shared selector default 2.5rem/1.25rem) */.cms-content{max-width:var(--cms-content-mw,1120px);padding:var(--cms-content-pv,2.5rem) var(--cms-content-ph,1.25rem)}@media(max-width:1024px){.cms-content{max-width:var(--cms-content-mw-t,var(--cms-content-mw,1120px));padding:var(--cms-content-pv-t,var(--cms-content-pv,2.5rem)) var(--cms-content-ph-t,var(--cms-content-ph,1.25rem))}}@media(max-width:640px){.cms-content{max-width:var(--cms-content-mw-m,var(--cms-content-mw-t,var(--cms-content-mw,1120px)));padding:var(--cms-content-pv-m,var(--cms-content-pv-t,var(--cms-content-pv,2.5rem))) var(--cms-content-ph-m,var(--cms-content-ph-t,var(--cms-content-ph,1.25rem)))}}.cms-content.cms-mw-sm{max-width:640px}.cms-content.cms-mw-md{max-width:820px}.cms-content.cms-mw-lg{max-width:1000px}.cms-content.cms-mw-full{max-width:none}.cms-rt-2col{column-count:2;column-gap:2.5rem}@media(max-width:768px){.cms-rt-2col{column-count:1}}.cms-content>h2,.cms-album>h2,.cms-faq>h2,.cms-cards>h2,.cms-features>h2{font-size:clamp(1.5rem,1rem + 2vw,2.1rem);line-height:1.2;margin:0 0 .4em}/* P182 per-block h2 font-size vars — source-order overrides shared rule above (same specificity) */.cms-content>h2{font-size:var(--cms-content-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))}@media(max-width:1024px){.cms-content>h2{font-size:var(--cms-content-h2-fs-t,var(--cms-content-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem)))}}@media(max-width:640px){.cms-content>h2{font-size:var(--cms-content-h2-fs-m,var(--cms-content-h2-fs-t,var(--cms-content-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))))}}.cms-album>h2{font-size:var(--cms-album-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))}@media(max-width:1024px){.cms-album>h2{font-size:var(--cms-album-h2-fs-t,var(--cms-album-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem)))}}@media(max-width:640px){.cms-album>h2{font-size:var(--cms-album-h2-fs-m,var(--cms-album-h2-fs-t,var(--cms-album-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))))}}.cms-faq>h2{font-size:var(--cms-faq-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))}@media(max-width:1024px){.cms-faq>h2{font-size:var(--cms-faq-h2-fs-t,var(--cms-faq-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem)))}}@media(max-width:640px){.cms-faq>h2{font-size:var(--cms-faq-h2-fs-m,var(--cms-faq-h2-fs-t,var(--cms-faq-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))))}}.cms-cards>h2{font-size:var(--cms-cards-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))}@media(max-width:1024px){.cms-cards>h2{font-size:var(--cms-cards-h2-fs-t,var(--cms-cards-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem)))}}@media(max-width:640px){.cms-cards>h2{font-size:var(--cms-cards-h2-fs-m,var(--cms-cards-h2-fs-t,var(--cms-cards-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))))}}.cms-marquee>h2{font-size:var(--cms-mq-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))}@media(max-width:1024px){.cms-marquee>h2{font-size:var(--cms-mq-h2-fs-t,var(--cms-mq-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem)))}}@media(max-width:640px){.cms-marquee>h2{font-size:var(--cms-mq-h2-fs-m,var(--cms-mq-h2-fs-t,var(--cms-mq-h2-fs,clamp(1.5rem,1rem + 2vw,2.1rem))))}}.cms-buttons{display:flex;flex-wrap:wrap;gap:var(--cms-buttons-gap,.75rem);justify-content:var(--cms-justify,center);padding:var(--cms-buttons-pv,2.5rem) var(--cms-buttons-ph,1.25rem)}@media(max-width:1024px){.cms-buttons{gap:var(--cms-buttons-gap-t,var(--cms-buttons-gap,.75rem));padding:var(--cms-buttons-pv-t,var(--cms-buttons-pv,2.5rem)) var(--cms-buttons-ph-t,var(--cms-buttons-ph,1.25rem))}}@media(max-width:640px){.cms-buttons{gap:var(--cms-buttons-gap-m,var(--cms-buttons-gap-t,var(--cms-buttons-gap,.75rem)));padding:var(--cms-buttons-pv-m,var(--cms-buttons-pv-t,var(--cms-buttons-pv,2.5rem))) var(--cms-buttons-ph-m,var(--cms-buttons-ph-t,var(--cms-buttons-ph,1.25rem)))}}.cms-btn{display:inline-flex;align-items:center;gap:.4rem;--cms-btn-default-p:.75rem 1.5rem;padding:var(--cms-btn-p,var(--cms-btn-default-p));border-radius:var(--cms-btn-r,8px);font-weight:600;text-decoration:none;line-height:1.2;transition:filter .15s ease,transform .15s ease}@media(max-width:1024px){.cms-btn{padding:var(--cms-btn-p-t,var(--cms-btn-p,var(--cms-btn-default-p)));border-radius:var(--cms-btn-r-t,var(--cms-btn-r,8px))}}@media(max-width:640px){.cms-btn{padding:var(--cms-btn-p-m,var(--cms-btn-p-t,var(--cms-btn-p,var(--cms-btn-default-p))));border-radius:var(--cms-btn-r-m,var(--cms-btn-r-t,var(--cms-btn-r,8px)))}}.cms-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.cms-btn-primary{background:var(--cms-btn-primary-bg,var(--theme-c1,#2563eb));color:var(--cms-btn-primary-c,#fff)}.cms-btn-secondary{background:var(--cms-btn-secondary-bg,var(--theme-c2,#f78444));color:var(--cms-btn-secondary-c,#1b0909)}.cms-btn-outline{background:transparent;border:2px solid var(--cms-btn-border-c,var(--theme-c1,#2563eb));color:var(--cms-btn-border-c,var(--theme-c1,#2563eb))}.cms-btn-sm{--cms-btn-default-p:.5rem 1rem;font-size:var(--cms-btn-sm-fs,.9rem)}.cms-btn-lg{--cms-btn-default-p:1rem 2rem;font-size:var(--cms-btn-lg-fs,1.1rem)}@media(max-width:1024px){.cms-btn-sm{font-size:var(--cms-btn-sm-fs-t,var(--cms-btn-sm-fs,.9rem))}.cms-btn-lg{font-size:var(--cms-btn-lg-fs-t,var(--cms-btn-lg-fs,1.1rem))}}@media(max-width:640px){.cms-btn-sm{font-size:var(--cms-btn-sm-fs-m,var(--cms-btn-sm-fs-t,var(--cms-btn-sm-fs,.9rem)))}.cms-btn-lg{font-size:var(--cms-btn-lg-fs-m,var(--cms-btn-lg-fs-t,var(--cms-btn-lg-fs,1.1rem)))}}.cms-btn-block{width:100%;justify-content:center}.cms-btn-icon{width:1.1em;height:1.1em;flex:0 0 auto}.cms-content-image{display:flex;gap:var(--cms-ci-gap,2rem);align-items:center;padding:var(--cms-ci-pv,2.5rem) var(--cms-ci-ph,1.25rem)}@media(max-width:1024px){.cms-content-image{gap:var(--cms-ci-gap-t,var(--cms-ci-gap,2rem));padding:var(--cms-ci-pv-t,var(--cms-ci-pv,2.5rem)) var(--cms-ci-ph-t,var(--cms-ci-ph,1.25rem))}}@media(max-width:640px){.cms-content-image{gap:var(--cms-ci-gap-m,var(--cms-ci-gap-t,var(--cms-ci-gap,2rem)));padding:var(--cms-ci-pv-m,var(--cms-ci-pv-t,var(--cms-ci-pv,2.5rem))) var(--cms-ci-ph-m,var(--cms-ci-ph-t,var(--cms-ci-ph,1.25rem)))}}.cms-content-image .cms-text{flex:1;min-width:0}.cms-content-image .cms-img{flex:1;margin:0}.cms-v-top{align-items:flex-start}.cms-img{margin:0}.cms-img img{display:block;width:100%;border-radius:10px}.cms-img figcaption{margin-top:.5rem;font-size:var(--cms-img-cap-fs,.85rem);color:#64748b;text-align:center}@media(max-width:1024px){.cms-img figcaption{font-size:var(--cms-img-cap-fs-t,var(--cms-img-cap-fs,.85rem))}}@media(max-width:640px){.cms-img figcaption{font-size:var(--cms-img-cap-fs-m,var(--cms-img-cap-fs-t,var(--cms-img-cap-fs,.85rem)))}}/* P140 image attrs (rounded/fit/caption-align). Selectors carry 2 classes so   they outrank the .cms-img img / .cms-img figcaption defaults above. */.cms-img-el.cms-rounded-none{border-radius:0}.cms-img-el.cms-rounded-sm{border-radius:4px}.cms-img-el.cms-rounded-md{border-radius:10px}.cms-img-el.cms-rounded-lg{border-radius:18px}.cms-img-el.cms-rounded-full{border-radius:9999px}.cms-img-el.cms-fit-cover{object-fit:cover}.cms-img-el.cms-fit-contain{object-fit:contain}/* P154 free dimension vars — override .cms-img img width:100% default */.cms-img-w img{width:var(--cms-img-w)}@media(max-width:1024px){.cms-img-w img{width:var(--cms-img-w-t,var(--cms-img-w))}}@media(max-width:640px){.cms-img-w img{width:var(--cms-img-w-m,var(--cms-img-w-t,var(--cms-img-w)))}}.cms-img-h img{height:var(--cms-img-h)}@media(max-width:1024px){.cms-img-h img{height:var(--cms-img-h-t,var(--cms-img-h))}}@media(max-width:640px){.cms-img-h img{height:var(--cms-img-h-m,var(--cms-img-h-t,var(--cms-img-h)))}}.cms-img figcaption.cms-cap-left{text-align:left}.cms-img figcaption.cms-cap-center{text-align:center}.cms-img figcaption.cms-cap-right{text-align:right}/* image horizontal alignment — display:table shrinks figure to img width so margin:auto works */.cms-img-left{display:table;margin-right:auto}.cms-img-center{display:table;margin-left:auto;margin-right:auto}.cms-img-right{display:table;margin-left:auto}/* P176 album: section padding V+H free vars (override shared selector default 2.5rem/1.25rem) */.cms-album{padding:var(--cms-album-pv,2.5rem) var(--cms-album-ph,1.25rem)}@media(max-width:1024px){.cms-album{padding:var(--cms-album-pv-t,var(--cms-album-pv,2.5rem)) var(--cms-album-ph-t,var(--cms-album-ph,1.25rem))}}@media(max-width:640px){.cms-album{padding:var(--cms-album-pv-m,var(--cms-album-pv-t,var(--cms-album-pv,2.5rem))) var(--cms-album-ph-m,var(--cms-album-ph-t,var(--cms-album-ph,1.25rem)))}}.cms-album .cms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}/* P156 album free measures */.cms-album-ts .cms-grid{grid-template-columns:repeat(auto-fill,minmax(var(--cms-album-thumb),1fr))}@media(max-width:1024px){.cms-album-ts .cms-grid{grid-template-columns:repeat(auto-fill,minmax(var(--cms-album-thumb-t,var(--cms-album-thumb)),1fr))}}@media(max-width:640px){.cms-album-ts .cms-grid{grid-template-columns:repeat(auto-fill,minmax(var(--cms-album-thumb-m,var(--cms-album-thumb-t,var(--cms-album-thumb))),1fr))}}.cms-album-gap .cms-grid{gap:var(--cms-album-gap)}@media(max-width:1024px){.cms-album-gap .cms-grid{gap:var(--cms-album-gap-t,var(--cms-album-gap))}}@media(max-width:640px){.cms-album-gap .cms-grid{gap:var(--cms-album-gap-m,var(--cms-album-gap-t,var(--cms-album-gap)))}}.cms-faq-item{border:1px solid #e2e8f0;border-radius:var(--cms-faq-r,8px);margin-bottom:var(--cms-faq-gap,.6rem);overflow:hidden}@media(max-width:1024px){.cms-faq-item{border-radius:var(--cms-faq-r-t,var(--cms-faq-r,8px));margin-bottom:var(--cms-faq-gap-t,var(--cms-faq-gap,.6rem))}}@media(max-width:640px){.cms-faq-item{border-radius:var(--cms-faq-r-m,var(--cms-faq-r-t,var(--cms-faq-r,8px)));margin-bottom:var(--cms-faq-gap-m,var(--cms-faq-gap-t,var(--cms-faq-gap,.6rem)))}}.cms-faq-item summary{cursor:pointer;padding:var(--cms-faq-sum-pv,.9rem) var(--cms-faq-item-ph,1.1rem);font-weight:600;list-style:none}@media(max-width:1024px){.cms-faq-item summary{padding:var(--cms-faq-sum-pv-t,var(--cms-faq-sum-pv,.9rem)) var(--cms-faq-item-ph-t,var(--cms-faq-item-ph,1.1rem))}}@media(max-width:640px){.cms-faq-item summary{padding:var(--cms-faq-sum-pv-m,var(--cms-faq-sum-pv-t,var(--cms-faq-sum-pv,.9rem))) var(--cms-faq-item-ph-m,var(--cms-faq-item-ph-t,var(--cms-faq-item-ph,1.1rem)))}}.cms-faq-item summary::-webkit-details-marker{display:none}.cms-faq-item summary::after{content:"+";float:right;font-weight:700}.cms-faq-item[open] summary::after{content:"\2013"}.cms-faq-item>div{padding:0 var(--cms-faq-item-ph,1.1rem) 1rem}@media(max-width:1024px){.cms-faq-item>div{padding:0 var(--cms-faq-item-ph-t,var(--cms-faq-item-ph,1.1rem)) 1rem}}@media(max-width:640px){.cms-faq-item>div{padding:0 var(--cms-faq-item-ph-m,var(--cms-faq-item-ph-t,var(--cms-faq-item-ph,1.1rem))) 1rem}}/* P174 faq: section padding V+H free vars (override shared selector default 2.5rem/1.25rem) */.cms-faq{padding:var(--cms-faq-pv,2.5rem) var(--cms-faq-ph,1.25rem)}@media(max-width:1024px){.cms-faq{padding:var(--cms-faq-pv-t,var(--cms-faq-pv,2.5rem)) var(--cms-faq-ph-t,var(--cms-faq-ph,1.25rem))}}@media(max-width:640px){.cms-faq{padding:var(--cms-faq-pv-m,var(--cms-faq-pv-t,var(--cms-faq-pv,2.5rem))) var(--cms-faq-ph-m,var(--cms-faq-ph-t,var(--cms-faq-ph,1.25rem)))}}.cms-slider{display:flex;gap:var(--cms-slider-gap,1rem);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:var(--cms-slider-pv,2.5rem) var(--cms-slider-ph,1.25rem)}@media(max-width:1024px){.cms-slider{gap:var(--cms-slider-gap-t,var(--cms-slider-gap,1rem));padding:var(--cms-slider-pv-t,var(--cms-slider-pv,2.5rem)) var(--cms-slider-ph-t,var(--cms-slider-ph,1.25rem))}}@media(max-width:640px){.cms-slider{gap:var(--cms-slider-gap-m,var(--cms-slider-gap-t,var(--cms-slider-gap,1rem)));padding:var(--cms-slider-pv-m,var(--cms-slider-pv-t,var(--cms-slider-pv,2.5rem))) var(--cms-slider-ph-m,var(--cms-slider-ph-t,var(--cms-slider-ph,1.25rem)))}}.cms-slider .cms-img{flex:0 0 86%;scroll-snap-align:center}/* P262 carousel: the runtime upgrades a multi-slide .cms-slider into a   transform-based infinite loop. It hides overflow (no scrollbar), drops the   inter-slide gap/peek so each banner fills the frame, and animates a clone-   padded track. The base (no-JS) .cms-slider above stays a scroll-snap fallback. *//* display:block (overrides base .cms-slider display:flex) is REQUIRED — the   track is the flex container; if the slider stayed flex, the track would be a   flex child whose width collapses to content (slides at flex:0 0 100% of a   shrunk track → a few px when images are lazy/unloaded). As a block, the track   fills 100% and slides are deterministically full-width. */.cms-slider.cms-slider-loop{display:block;overflow:hidden;scroll-snap-type:none;gap:0;position:relative;touch-action:pan-y;cursor:grab;-webkit-overflow-scrolling:auto}.cms-slider-loop .cms-slider-track{display:flex;flex-wrap:nowrap;width:100%;will-change:transform}.cms-slider-loop .cms-img{flex:0 0 100%;width:100%;max-width:100%;scroll-snap-align:none;margin:0}.cms-slider-loop img{-webkit-user-drag:none;user-select:none}/* P261 carousel: dot pagination built by the carousel runtime (cms-slider-dots   is inserted right after each multi-slide .cms-slider). */.cms-slider-dots{display:flex;justify-content:center;gap:.5rem;padding:.75rem 0;margin:0}.cms-slider-dots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;cursor:pointer;background:var(--cms-slider-dot-c,var(--theme-c1,#64748b));opacity:.3;transition:opacity .2s,transform .2s}.cms-slider-dots button.cms-dot-on{opacity:1;transform:scale(1.3)}/* P155 slide height vars */.cms-slide-h .cms-img{height:var(--cms-slide-h);overflow:hidden}.cms-slide-h .cms-img img{height:100%;object-fit:cover;width:100%}@media(max-width:1024px){.cms-slide-h .cms-img{height:var(--cms-slide-h-t,var(--cms-slide-h))}}@media(max-width:640px){.cms-slide-h .cms-img{height:var(--cms-slide-h-m,var(--cms-slide-h-t,var(--cms-slide-h)))}}@media(max-width:768px){.cms-features,.cms-cards,.cms-cta{padding:1.75rem 1rem}.cms-content-image{flex-direction:column}.cms-album:not(.cms-album-ts) .cms-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}/* nav */.cms-nav{background:var(--cms-block-bg,var(--theme-c3,#240c0c));color:var(--theme-c4,#e2e8f0)}.cms-nav-sticky{position:sticky;top:0;z-index:50}.cms-nav-transparent{background:transparent;position:absolute;top:0;left:0;right:0;z-index:50}.cms-nav-inner{position:relative;max-width:var(--cms-nav-mw,1120px);margin-inline:auto;display:flex;align-items:center;gap:var(--cms-nav-inner-gap,1rem);padding:var(--cms-nav-pv,.75rem) var(--cms-nav-ph,1.25rem);flex-wrap:wrap}@media(max-width:1024px){.cms-nav-inner{max-width:var(--cms-nav-mw-t,var(--cms-nav-mw,1120px));padding:var(--cms-nav-pv-t,var(--cms-nav-pv,.75rem)) var(--cms-nav-ph-t,var(--cms-nav-ph,1.25rem));gap:var(--cms-nav-inner-gap-t,var(--cms-nav-inner-gap,1rem))}}@media(max-width:640px){.cms-nav-inner{max-width:var(--cms-nav-mw-m,var(--cms-nav-mw-t,var(--cms-nav-mw,1120px)));padding:var(--cms-nav-pv-m,var(--cms-nav-pv-t,var(--cms-nav-pv,.75rem))) var(--cms-nav-ph-m,var(--cms-nav-ph-t,var(--cms-nav-ph,1.25rem)));gap:var(--cms-nav-inner-gap-m,var(--cms-nav-inner-gap-t,var(--cms-nav-inner-gap,1rem)))}}.cms-nav-brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:var(--cms-nav-brand-fs,1.15rem);color:inherit;text-decoration:none}@media(max-width:1024px){.cms-nav-brand{font-size:var(--cms-nav-brand-fs-t,var(--cms-nav-brand-fs,1.15rem))}}@media(max-width:640px){.cms-nav-brand{font-size:var(--cms-nav-brand-fs-m,var(--cms-nav-brand-fs-t,var(--cms-nav-brand-fs,1.15rem)))}}.cms-nav-logo{height:var(--cms-nav-lh,34px);width:auto}@media(max-width:1024px){.cms-nav-logo{height:var(--cms-nav-lh-t,var(--cms-nav-lh,34px))}}@media(max-width:640px){.cms-nav-logo{height:var(--cms-nav-lh-m,var(--cms-nav-lh-t,var(--cms-nav-lh,34px)))}}.cms-nav-links{display:flex;align-items:center;gap:.25rem var(--cms-nav-lg,1.25rem);list-style:none;margin:0 0 0 auto;padding:0;flex-wrap:wrap}@media(max-width:1024px){.cms-nav-links{gap:.25rem var(--cms-nav-lg-t,var(--cms-nav-lg,1.25rem))}}@media(max-width:640px){.cms-nav-links{gap:.25rem var(--cms-nav-lg-m,var(--cms-nav-lg-t,var(--cms-nav-lg,1.25rem)))}}.cms-nav .cms-nav-links a{color:var(--cms-nav-link-c,var(--cms-block-accent-c,inherit));text-decoration:none;font-weight:500;opacity:.9}.cms-nav .cms-nav-links a:hover,.cms-nav .cms-nav-links a:focus-visible{color:var(--cms-nav-link-hover-c,var(--cms-nav-link-c,var(--cms-block-accent-c,inherit)));opacity:1;text-decoration:underline;text-underline-offset:4px}.cms-nav-links a[aria-current="page"]{opacity:1;font-weight:700}.cms-nav-cta .cms-btn{padding:.5rem 1.1rem}/* CTA buttons (Login / Sign up) — own container, always visible (P261). */.cms-nav-actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.cms-nav-toggle{position:absolute;opacity:0;width:0;height:0}.cms-nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;margin-left:.35rem;padding:.3rem}.cms-nav-burger span{width:24px;height:2px;background:currentColor;border-radius:2px}@media(max-width:768px){/* Single-row top bar (P263): brand · CTA actions · burger never wrap. The   regular link list becomes an absolute dropdown below the bar so it no longer   competes for row space (the old flex-wrap let the CTAs drop to a 2nd row when   a wide logo + buttons overflowed). The brand shrinks (logo scales down   proportionally) so the row always fits; buttons/burger keep their size. *//* Single-row: keep the authored navInnerGap chain (just a tighter .5rem default   so a wide logo + CTAs fit) — don't hard-code it (B1). */.cms-nav-inner{flex-wrap:nowrap;gap:var(--cms-nav-inner-gap-m,var(--cms-nav-inner-gap-t,var(--cms-nav-inner-gap,.5rem)))}.cms-nav-brand{min-width:0;flex-shrink:1}.cms-nav-logo{height:auto;max-height:var(--cms-nav-lh-m,var(--cms-nav-lh-t,var(--cms-nav-lh,34px)));max-width:100%}.cms-nav-burger{display:flex;flex-shrink:0}/* Compact CTAs on mobile so a wide logo keeps a readable size on the same row. */.cms-nav-actions{margin-left:auto;flex-shrink:0;gap:.35rem}.cms-nav-cta .cms-btn{padding:.4rem .7rem;font-size:.8rem}.cms-nav-inner:not(:has(.cms-nav-actions)) .cms-nav-burger{margin-left:auto}.cms-nav-links{position:absolute;left:0;right:0;top:100%;display:none;flex-direction:column;align-items:stretch;margin:0;gap:0;padding:.25rem var(--cms-nav-ph-m,var(--cms-nav-ph-t,var(--cms-nav-ph,1.25rem))) .5rem;background:var(--cms-block-bg,var(--theme-c3,#240c0c));box-shadow:0 10px 20px rgba(0,0,0,.28);z-index:60}.cms-nav:has(.cms-nav-toggle:checked) .cms-nav-links{display:flex}.cms-nav-links li{padding:.6rem 0;border-top:1px solid rgba(255,255,255,.12)}}/* mobile bottom nav (fixed tab bar; coexists with the burger, ≤768px only) */.cms-bnav{display:none}@media(max-width:768px){body:has(.cms-bnav){padding-bottom:calc(var(--cms-bnav-h,64px) + env(safe-area-inset-bottom,0px))}.cms-bnav{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;height:calc(var(--cms-bnav-h,64px) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--cms-block-bg,var(--theme-c3,#240c0c));border-top:1px solid color-mix(in srgb,var(--theme-c2,#f8b989) 22%,transparent);box-shadow:0 -10px 30px -14px rgba(0,0,0,.8);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px)}.cms-bnav-in{height:var(--cms-bnav-h,64px);display:flex;align-items:center}.cms-bnav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:100%;color:var(--theme-c4,#e2e8f0);opacity:.72;font-size:.66rem;font-weight:500;text-decoration:none;position:relative;transition:opacity .2s,color .2s}.cms-bnav-tab svg{width:22px;height:22px}.cms-bnav-tab:hover,.cms-bnav-tab:focus-visible,.cms-bnav-tab[aria-current="page"]{opacity:1;color:var(--theme-c2,#f8b989)}.cms-bnav-tab[aria-current="page"]::before{content:"";position:absolute;top:0;width:26px;height:3px;border-radius:0 0 4px 4px;background:var(--theme-c2,#f8b989);box-shadow:0 0 10px var(--theme-c2,#f8b989)}.cms-bnav-fab{opacity:1;color:var(--theme-c2,#f8b989);font-weight:600;transform:translateY(-14px)}.cms-bnav-fab::before{display:none}.cms-bnav-fab .cms-bnav-fabicon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--theme-c2,#f8b989);color:var(--theme-c3,#240c0c);box-shadow:0 8px 22px -6px color-mix(in srgb,var(--theme-c2,#f8b989) 75%,transparent),0 0 0 5px var(--theme-c3,#240c0c)}.cms-bnav-fab .cms-bnav-fabicon svg{width:26px;height:26px;stroke-width:2.2}}/* hero */.cms-hero{background:var(--cms-block-bg,var(--theme-c3,#240c0c));background-size:cover;background-position:var(--cms-hero-bg-pos,center);color:var(--cms-text-color,#fff);position:relative}.cms-hero::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,var(--cms-hero-overlay,.45))}.cms-hero-inner{position:relative;width:100%;max-width:var(--cms-hero-inner-mw,1120px);margin-inline:auto;padding:var(--cms-hero-pv,clamp(3rem,6vw,7rem)) var(--cms-hero-ph,1.25rem);text-align:var(--cms-text-align,left)}@media(max-width:1024px){.cms-hero-inner{padding:var(--cms-hero-pv-t,var(--cms-hero-pv,clamp(3rem,6vw,7rem))) var(--cms-hero-ph-t,var(--cms-hero-ph,1.25rem));max-width:var(--cms-hero-inner-mw-t,var(--cms-hero-inner-mw,1120px))}}@media(max-width:640px){.cms-hero-inner{padding:var(--cms-hero-pv-m,var(--cms-hero-pv-t,var(--cms-hero-pv,clamp(3rem,6vw,7rem)))) var(--cms-hero-ph-m,var(--cms-hero-ph-t,var(--cms-hero-ph,1.25rem)));max-width:var(--cms-hero-inner-mw-m,var(--cms-hero-inner-mw-t,var(--cms-hero-inner-mw,1120px)))}}.cms-hero-center .cms-hero-inner{text-align:var(--cms-text-align,center)}.cms-hero h1{font-size:var(--cms-hero-h1-fs,clamp(2rem,4vw + 1rem,4rem));margin:0 0 .5rem;line-height:1.1}@media(max-width:1024px){.cms-hero h1{font-size:var(--cms-hero-h1-fs-t,var(--cms-hero-h1-fs,clamp(2rem,4vw + 1rem,4rem)))}}@media(max-width:640px){.cms-hero h1{font-size:var(--cms-hero-h1-fs-m,var(--cms-hero-h1-fs-t,var(--cms-hero-h1-fs,clamp(2rem,4vw + 1rem,4rem))))}}.cms-hero p{font-size:var(--cms-hero-p-fs,clamp(1rem,1vw + .5rem,1.35rem));opacity:.92;margin:0 0 1.5rem;max-width:var(--cms-hero-text-mw,640px)}@media(max-width:1024px){.cms-hero p{max-width:var(--cms-hero-text-mw-t,var(--cms-hero-text-mw,640px));font-size:var(--cms-hero-p-fs-t,var(--cms-hero-p-fs,clamp(1rem,1vw + .5rem,1.35rem)))}}@media(max-width:640px){.cms-hero p{max-width:var(--cms-hero-text-mw-m,var(--cms-hero-text-mw-t,var(--cms-hero-text-mw,640px)));font-size:var(--cms-hero-p-fs-m,var(--cms-hero-p-fs-t,var(--cms-hero-p-fs,clamp(1rem,1vw + .5rem,1.35rem))))}}.cms-hero-center p{margin-inline:auto}.cms-hero .cms-buttons{padding:0;max-width:none}.cms-hero-center .cms-buttons{justify-content:var(--cms-justify,center)}.cms-hero-left .cms-buttons{justify-content:var(--cms-justify,flex-start)}/* P152 hero: min-height + content-width → free measures via CSS vars (responsive) */.cms-hero-mh{display:flex;align-items:center;min-height:var(--cms-hero-mh)}@media(max-width:1024px){.cms-hero-mh{min-height:var(--cms-hero-mh-t,var(--cms-hero-mh))}}@media(max-width:640px){.cms-hero-mh{min-height:var(--cms-hero-mh-m,var(--cms-hero-mh-t,var(--cms-hero-mh)))}}.cms-hero-cw{max-width:var(--cms-hero-cw)}@media(max-width:1024px){.cms-hero-cw{max-width:var(--cms-hero-cw-t,var(--cms-hero-cw))}}@media(max-width:640px){.cms-hero-cw{max-width:var(--cms-hero-cw-m,var(--cms-hero-cw-t,var(--cms-hero-cw)))}}/* cards (gap responsive) *//* P175 cards: section padding V+H free vars (override shared selector default 2.5rem/1.25rem) */.cms-cards{padding:var(--cms-cards-pv,2.5rem) var(--cms-cards-ph,1.25rem)}@media(max-width:1024px){.cms-cards{padding:var(--cms-cards-pv-t,var(--cms-cards-pv,2.5rem)) var(--cms-cards-ph-t,var(--cms-cards-ph,1.25rem))}}@media(max-width:640px){.cms-cards{padding:var(--cms-cards-pv-m,var(--cms-cards-pv-t,var(--cms-cards-pv,2.5rem))) var(--cms-cards-ph-m,var(--cms-cards-ph-t,var(--cms-cards-ph,1.25rem)))}}.cms-cards-grid{display:grid;gap:var(--cms-cards-gap,1.25rem)}@media(max-width:1024px){.cms-cards-grid{gap:var(--cms-cards-gap-t,var(--cms-cards-gap,1.25rem))}}@media(max-width:640px){.cms-cards-grid{gap:var(--cms-cards-gap-m,var(--cms-cards-gap-t,var(--cms-cards-gap,1.25rem)))}}.cms-cols-2{grid-template-columns:repeat(2,1fr)}.cms-cols-3{grid-template-columns:repeat(3,1fr)}.cms-cols-4{grid-template-columns:repeat(4,1fr)}.cms-card{display:flex;flex-direction:column;gap:.5rem;padding:var(--cms-card-p,1.25rem);background:#fff;border:1px solid #e8ebf0;border-radius:var(--cms-card-r,12px);text-decoration:none;color:inherit;box-shadow:var(--cms-card-shadow,0 1px 3px rgba(0,0,0,.06));transition:transform .15s ease,box-shadow .15s ease}@media(max-width:1024px){.cms-card{padding:var(--cms-card-p-t,var(--cms-card-p,1.25rem));border-radius:var(--cms-card-r-t,var(--cms-card-r,12px))}}@media(max-width:640px){.cms-card{padding:var(--cms-card-p-m,var(--cms-card-p-t,var(--cms-card-p,1.25rem)));border-radius:var(--cms-card-r-m,var(--cms-card-r-t,var(--cms-card-r,12px)))}}.cms-card:hover{transform:translateY(-3px);box-shadow:var(--cms-card-hover-shadow,0 8px 24px rgba(0,0,0,.1))}/* P141 cards: style variant · equal height · hover toggle (gap → --cms-cards-gap var P152) */.cms-cardstyle-flat .cms-card{border:none;--cms-card-shadow:none}.cms-cardstyle-border .cms-card{--cms-card-shadow:none}.cms-cardstyle-shadow .cms-card{border:none}.cms-cards-equal .cms-card{height:100%}.cms-cards-nohover .cms-card:hover{transform:none;box-shadow:var(--cms-card-shadow,0 1px 3px rgba(0,0,0,.06))}/* P190 card hover shadow enum */.cms-card-hs-none .cms-card:hover{transform:none;--cms-card-hover-shadow:none}.cms-card-hs-sm{--cms-card-hover-shadow:0 2px 8px rgba(0,0,0,.08)}.cms-card-hs-md{--cms-card-hover-shadow:0 8px 24px rgba(0,0,0,.1)}.cms-card-hs-lg{--cms-card-hover-shadow:0 16px 40px rgba(0,0,0,.15)}.cms-card-img{width:100%;aspect-ratio:var(--cms-card-img-aspect,16/10);object-fit:cover;border-radius:var(--cms-card-img-r,8px)}@media(max-width:1024px){.cms-card-img{border-radius:var(--cms-card-img-r-t,var(--cms-card-img-r,8px))}}@media(max-width:640px){.cms-card-img{border-radius:var(--cms-card-img-r-m,var(--cms-card-img-r-t,var(--cms-card-img-r,8px)))}}.cms-card h3{margin:.25rem 0 0;font-size:var(--cms-card-h3-fs,1.1rem)}@media(max-width:1024px){.cms-card h3{font-size:var(--cms-card-h3-fs-t,var(--cms-card-h3-fs,1.1rem))}}@media(max-width:640px){.cms-card h3{font-size:var(--cms-card-h3-fs-m,var(--cms-card-h3-fs-t,var(--cms-card-h3-fs,1.1rem)))}}.cms-card p{margin:0;color:var(--cms-text-color,#475569);font-size:var(--cms-card-p-fs,.95rem);flex:1}@media(max-width:1024px){.cms-card p{font-size:var(--cms-card-p-fs-t,var(--cms-card-p-fs,.95rem))}}@media(max-width:640px){.cms-card p{font-size:var(--cms-card-p-fs-m,var(--cms-card-p-fs-t,var(--cms-card-p-fs,.95rem)))}}.cms-card .cms-btn{margin-top:.5rem;align-self:flex-start}@media(max-width:768px){.cms-cols-3,.cms-cols-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.cms-cols-2,.cms-cols-3,.cms-cols-4{grid-template-columns:1fr}}/* marquee */.cms-marquee{max-width:none;overflow:hidden;padding:var(--cms-mq-pv,1.75rem) 0}@media(max-width:1024px){.cms-marquee{padding:var(--cms-mq-pv-t,var(--cms-mq-pv,1.75rem)) 0}}@media(max-width:640px){.cms-marquee{padding:var(--cms-mq-pv-m,var(--cms-mq-pv-t,var(--cms-mq-pv,1.75rem))) 0}}.cms-marquee>h2{text-align:center;max-width:1120px;margin:0 auto 1rem;padding:0 1.25rem}.cms-marquee-track{display:flex;width:max-content;animation:cms-marq 30s linear infinite}.cms-marquee-row{display:flex;align-items:center;gap:var(--cms-mq-gap,2.5rem);padding-right:var(--cms-mq-gap,2.5rem)}@media(max-width:1024px){.cms-marquee-row{gap:var(--cms-mq-gap-t,var(--cms-mq-gap,2.5rem));padding-right:var(--cms-mq-gap-t,var(--cms-mq-gap,2.5rem))}}@media(max-width:640px){.cms-marquee-row{gap:var(--cms-mq-gap-m,var(--cms-mq-gap-t,var(--cms-mq-gap,2.5rem)));padding-right:var(--cms-mq-gap-m,var(--cms-mq-gap-t,var(--cms-mq-gap,2.5rem)))}}.cms-marquee-row img{height:var(--cms-mq-h,48px);width:auto;object-fit:contain}@media(max-width:1024px){.cms-marquee-row img{height:var(--cms-mq-h-t,var(--cms-mq-h,48px))}}@media(max-width:640px){.cms-marquee-row img{height:var(--cms-mq-h-m,var(--cms-mq-h-t,var(--cms-mq-h,48px)))}}/* P142/P152 marquee: grayscale (colour on hover); gap/logoHeight → CSS vars */.cms-marquee-gray .cms-marquee-row img{filter:grayscale(1);opacity:.65;transition:filter .2s ease,opacity .2s ease}.cms-marquee-gray .cms-marquee-row img:hover{filter:none;opacity:1}.cms-marquee-slow .cms-marquee-track{animation-duration:50s}.cms-marquee-fast .cms-marquee-track{animation-duration:16s}.cms-marquee:hover .cms-marquee-track{animation-play-state:paused}.cms-marquee-text{font-size:var(--cms-mq-text-fs,1.1rem);font-weight:600;white-space:nowrap;color:var(--cms-block-heading-c,inherit);padding:0 var(--cms-mq-gap,2.5rem)}@keyframes cms-marq{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.cms-marquee-track{animation:none}}/* footer */.cms-footer{background:var(--cms-block-bg,var(--theme-c3,#240c0c));color:var(--cms-text-color,var(--theme-c4,#cbd5e1))}.cms-footer-inner{max-width:var(--cms-footer-mw,1120px);margin-inline:auto;padding:var(--cms-footer-pt,3rem) var(--cms-footer-ph,1.25rem) var(--cms-footer-pb,2rem);display:grid;grid-template-columns:2fr repeat(auto-fit,minmax(140px,1fr));gap:var(--cms-footer-inner-gap,2rem)}@media(max-width:1024px){.cms-footer-inner{max-width:var(--cms-footer-mw-t,var(--cms-footer-mw,1120px));gap:var(--cms-footer-inner-gap-t,var(--cms-footer-inner-gap,2rem));padding-top:var(--cms-footer-pt-t,var(--cms-footer-pt,3rem));padding-bottom:var(--cms-footer-pb-t,var(--cms-footer-pb,2rem));padding-inline:var(--cms-footer-ph-t,var(--cms-footer-ph,1.25rem))}}@media(max-width:640px){.cms-footer-inner{max-width:var(--cms-footer-mw-m,var(--cms-footer-mw-t,var(--cms-footer-mw,1120px)));gap:var(--cms-footer-inner-gap-m,var(--cms-footer-inner-gap-t,var(--cms-footer-inner-gap,2rem)));padding-top:var(--cms-footer-pt-m,var(--cms-footer-pt-t,var(--cms-footer-pt,3rem)));padding-bottom:var(--cms-footer-pb-m,var(--cms-footer-pb-t,var(--cms-footer-pb,2rem)));padding-inline:var(--cms-footer-ph-m,var(--cms-footer-ph-t,var(--cms-footer-ph,1.25rem)))}}.cms-footer-brand strong{font-size:var(--cms-footer-brand-fs,1.2rem);color:var(--cms-text-color,#fff);display:block;margin-bottom:.5rem}@media(max-width:1024px){.cms-footer-brand strong{font-size:var(--cms-footer-brand-fs-t,var(--cms-footer-brand-fs,1.2rem))}}@media(max-width:640px){.cms-footer-brand strong{font-size:var(--cms-footer-brand-fs-m,var(--cms-footer-brand-fs-t,var(--cms-footer-brand-fs,1.2rem)))}}.cms-footer-brand p{margin:0;opacity:.8;font-size:var(--cms-footer-brand-p-fs,.9rem)}@media(max-width:1024px){.cms-footer-brand p{font-size:var(--cms-footer-brand-p-fs-t,var(--cms-footer-brand-p-fs,.9rem))}}@media(max-width:640px){.cms-footer-brand p{font-size:var(--cms-footer-brand-p-fs-m,var(--cms-footer-brand-p-fs-t,var(--cms-footer-brand-p-fs,.9rem)))}}/* P142 footer social icons */.cms-footer-social{display:flex;gap:var(--cms-footer-social-gap,.75rem);margin-top:1rem}@media(max-width:1024px){.cms-footer-social{gap:var(--cms-footer-social-gap-t,var(--cms-footer-social-gap,.75rem))}}@media(max-width:640px){.cms-footer-social{gap:var(--cms-footer-social-gap-m,var(--cms-footer-social-gap-t,var(--cms-footer-social-gap,.75rem)))}}.cms-social-link{display:inline-flex;color:inherit;opacity:.85;transition:opacity .15s ease,transform .15s ease}.cms-social-link:hover{opacity:1;transform:translateY(-2px)}.cms-social-link svg{width:22px;height:22px}.cms-footer-col h4{margin:0 0 .75rem;font-size:var(--cms-footer-col-h4-fs,.95rem);color:var(--cms-text-color,#fff)}@media(max-width:1024px){.cms-footer-col h4{font-size:var(--cms-footer-col-h4-fs-t,var(--cms-footer-col-h4-fs,.95rem))}}@media(max-width:640px){.cms-footer-col h4{font-size:var(--cms-footer-col-h4-fs-m,var(--cms-footer-col-h4-fs-t,var(--cms-footer-col-h4-fs,.95rem)))}}.cms-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--cms-footer-link-gap,.5rem)}@media(max-width:1024px){.cms-footer-col ul{gap:var(--cms-footer-link-gap-t,var(--cms-footer-link-gap,.5rem))}}@media(max-width:640px){.cms-footer-col ul{gap:var(--cms-footer-link-gap-m,var(--cms-footer-link-gap-t,var(--cms-footer-link-gap,.5rem)))}}.cms-footer-col a{color:var(--cms-footer-link-c,inherit);text-decoration:none;opacity:.85;font-size:var(--cms-footer-col-a-fs,.9rem)}@media(max-width:1024px){.cms-footer-col a{font-size:var(--cms-footer-col-a-fs-t,var(--cms-footer-col-a-fs,.9rem))}}@media(max-width:640px){.cms-footer-col a{font-size:var(--cms-footer-col-a-fs-m,var(--cms-footer-col-a-fs-t,var(--cms-footer-col-a-fs,.9rem)))}}.cms-footer-col a:hover{opacity:1}.cms-footer-copy{text-align:center;padding:var(--cms-footer-copy-p,1.25rem);border-top:1px solid rgba(255,255,255,.1);font-size:.85rem;opacity:.75}@media(max-width:1024px){.cms-footer-copy{padding:var(--cms-footer-copy-p-t,var(--cms-footer-copy-p,1.25rem))}}@media(max-width:640px){.cms-footer-copy{padding:var(--cms-footer-copy-p-m,var(--cms-footer-copy-p-t,var(--cms-footer-copy-p,1.25rem)))}}@media(max-width:768px){.cms-footer-inner{grid-template-columns:1fr 1fr}}@media(max-width:480px){.cms-footer-inner{grid-template-columns:1fr}}/* site header/footer (website-level global chrome) */.cms-site-header{background:var(--theme-c3,#240c0c);color:var(--theme-c4,#e2e8f0)}.cms-sh-inner{max-width:1120px;margin-inline:auto;display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;flex-wrap:wrap}.cms-sh-logo{height:32px;width:auto}.cms-sh-menu{display:flex;gap:1.25rem;list-style:none;margin:0 0 0 auto;padding:0;flex-wrap:wrap}.cms-sh-menu a{color:inherit;text-decoration:none;font-weight:500;opacity:.9}.cms-sh-menu a:hover{opacity:1}.cms-site-footer{background:var(--theme-c3,#240c0c);color:var(--theme-c4,#cbd5e1)}.cms-sf-inner{max-width:1120px;margin-inline:auto;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;padding:2rem 1.25rem 1rem}.cms-sf-logo{height:28px;width:auto}.cms-sf-menu{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.cms-sf-menu a{color:inherit;text-decoration:none;opacity:.85;font-size:.9rem}.cms-sf-menu a:hover{opacity:1}.cms-sf-copy{text-align:center;padding:.75rem 1.25rem 1.5rem;font-size:.85rem;opacity:.7;border-top:1px solid rgba(255,255,255,.1)}@media(max-width:768px){.cms-sh-inner,.cms-sf-inner{flex-direction:column;align-items:flex-start;gap:.75rem}.cms-sh-menu{margin-left:0}}/* per-block style wrapper (set via _style.bgColor/paddingY). Constrained to the   content column + rounded so a block background reads as a deliberate panel,   NOT a full-viewport band. *//* P149 spacing = free measurements via CSS vars. Defaults: padding 0, margin Y 0,   margin X auto (keeps the panel centred when no horizontal margin is set). The   emitter (render.ts boxVars) only sets vars for sides the user actually filled. */.cms-style-wrap{max-width:var(--cms-mw,1120px);border-radius:var(--cms-r,12px);border-width:var(--cms-bw,0);border-style:solid;border-color:var(--cms-bw-color,transparent);padding-top:var(--cms-pt,0);padding-right:var(--cms-pr,0);padding-bottom:var(--cms-pb,0);padding-left:var(--cms-pl,0);margin-top:var(--cms-mt,0);margin-bottom:var(--cms-mb,0);margin-left:var(--cms-ml,auto);margin-right:var(--cms-mr,auto)}.cms-style-wrap>*{margin-inline:auto}.cms-align-left{text-align:left}.cms-align-center{text-align:center}.cms-align-right{text-align:right}/* full-bleed: wrapper background spans the viewport; inner block keeps its own   max-width:1120px so content stays centred (restores the band P138 removed). */.cms-fullbleed{max-width:none;border-radius:0}@media(max-width:768px){.cms-hide-mobile{display:none!important}}@media(min-width:769px){.cms-hide-desktop{display:none!important}}/* P149 responsive spacing cascade. ORDER IS LOAD-BEARING: ≤640 block MUST come   AFTER ≤1024 (equal-specificity desktop-first max-width queries → later wins at   mobile width). tablet=2-level fallback (-t→base); mobile=3-LEVEL (-m→-t→base) so   mobile inherits the tablet value, not desktop, when mobile is unset. */@media(max-width:1024px){.cms-style-wrap{padding-top:var(--cms-pt-t,var(--cms-pt,0));padding-right:var(--cms-pr-t,var(--cms-pr,0));padding-bottom:var(--cms-pb-t,var(--cms-pb,0));padding-left:var(--cms-pl-t,var(--cms-pl,0));margin-top:var(--cms-mt-t,var(--cms-mt,0));margin-bottom:var(--cms-mb-t,var(--cms-mb,0));margin-left:var(--cms-ml-t,var(--cms-ml,auto));margin-right:var(--cms-mr-t,var(--cms-mr,auto));max-width:var(--cms-mw-t,var(--cms-mw,1120px))}.cms-fullbleed{max-width:none;border-radius:0}}@media(max-width:640px){.cms-style-wrap{padding-top:var(--cms-pt-m,var(--cms-pt-t,var(--cms-pt,0)));padding-right:var(--cms-pr-m,var(--cms-pr-t,var(--cms-pr,0)));padding-bottom:var(--cms-pb-m,var(--cms-pb-t,var(--cms-pb,0)));padding-left:var(--cms-pl-m,var(--cms-pl-t,var(--cms-pl,0)));margin-top:var(--cms-mt-m,var(--cms-mt-t,var(--cms-mt,0)));margin-bottom:var(--cms-mb-m,var(--cms-mb-t,var(--cms-mb,0)));margin-left:var(--cms-ml-m,var(--cms-ml-t,var(--cms-ml,auto)));margin-right:var(--cms-mr-m,var(--cms-mr-t,var(--cms-mr,auto)));max-width:var(--cms-mw-m,var(--cms-mw-t,var(--cms-mw,1120px)))}.cms-fullbleed{max-width:none;border-radius:0}}/* P146 column packing — 12-col grid so 1/2·1/3·2/3·1/4·3/4 are exact, gaps auto.   P208: explicit row container reuses this grid; --cms-row-gap overrides the gutter */.cms-row{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--cms-row-gap,1.5rem);max-width:1120px;margin-inline:auto;padding-inline:1.25rem;align-items:stretch}@media(max-width:1024px){.cms-row{gap:var(--cms-row-gap-t,var(--cms-row-gap,1.5rem))}}@media(max-width:640px){.cms-row{gap:var(--cms-row-gap-m,var(--cms-row-gap-t,var(--cms-row-gap,1.5rem)))}}.cms-col{grid-column:span 12;min-width:0}.cms-col-1-2{grid-column:span 6}.cms-col-1-3{grid-column:span 4}.cms-col-2-3{grid-column:span 8}.cms-col-1-4{grid-column:span 3}.cms-col-3-4{grid-column:span 9}/* inside a column the row supplies the gutter → drop the block's own section box */.cms-col :is(.cms-content,.cms-content-image,.cms-album,.cms-faq,.cms-buttons,.cms-cards,.cms-slider){padding:0;max-width:none;margin-inline:0}@media(max-width:768px){.cms-col{grid-column:span 12}}/* P145 surface: shadow (defined after .cms-style-wrap so they win); radius → --cms-r var (P151) */.cms-sh-none{box-shadow:none}.cms-sh-sm{box-shadow:0 1px 3px rgba(0,0,0,.08)}.cms-sh-md{box-shadow:0 4px 12px rgba(0,0,0,.1)}.cms-sh-lg{box-shadow:0 12px 32px rgba(0,0,0,.14)}/* fontWeight stays an enum token (P145). Applied to the wrapper AND its text   descendants via :is() so they override block-internal rules. */.cms-fw-normal,.cms-fw-normal :is(h1,h2,h3,h4,p,li,a,summary){font-weight:400}.cms-fw-medium,.cms-fw-medium :is(h1,h2,h3,h4,p,li,a,summary){font-weight:500}.cms-fw-semibold,.cms-fw-semibold :is(h1,h2,h3,h4,p,li,a,summary){font-weight:600}.cms-fw-bold,.cms-fw-bold :is(h1,h2,h3,h4,p,li,a,summary){font-weight:700}/* P150 typography = free responsive measures. The marker class (.cms-fs/.cms-lh/   .cms-ls — added by render ONLY when the field is set) gates a var-driven rule so   unset blocks keep their block-internal type sizing (no blanket override). Value   comes from the inline --cms-fs/lh/ls var; the responsive cascade mirrors spacing   (1024 then 640 source order; mobile 3-level fallback through tablet). */.cms-fs,.cms-fs :is(h1,h2,h3,h4,p,li,a,summary,figcaption){font-size:var(--cms-fs)}.cms-lh,.cms-lh :is(h1,h2,h3,h4,p,li){line-height:var(--cms-lh)}.cms-ls,.cms-ls :is(h1,h2,h3,h4,p,li,a){letter-spacing:var(--cms-ls)}@media(max-width:1024px){.cms-fs,.cms-fs :is(h1,h2,h3,h4,p,li,a,summary,figcaption){font-size:var(--cms-fs-t,var(--cms-fs))}.cms-lh,.cms-lh :is(h1,h2,h3,h4,p,li){line-height:var(--cms-lh-t,var(--cms-lh))}.cms-ls,.cms-ls :is(h1,h2,h3,h4,p,li,a){letter-spacing:var(--cms-ls-t,var(--cms-ls))}}@media(max-width:640px){.cms-fs,.cms-fs :is(h1,h2,h3,h4,p,li,a,summary,figcaption){font-size:var(--cms-fs-m,var(--cms-fs-t,var(--cms-fs)))}.cms-lh,.cms-lh :is(h1,h2,h3,h4,p,li){line-height:var(--cms-lh-m,var(--cms-lh-t,var(--cms-lh)))}.cms-ls,.cms-ls :is(h1,h2,h3,h4,p,li,a){letter-spacing:var(--cms-ls-m,var(--cms-ls-t,var(--cms-ls)))}}/* P278 site-wide contact FAB */.cms-contact-fab{position:fixed;bottom:24px;z-index:9998;display:flex;flex-direction:column;align-items:center;gap:5px}.cms-contact-fab--right{right:20px}.cms-contact-fab--left{left:20px}.cms-contact-btn{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--cfc,#00B900);color:#fff;text-decoration:none;box-shadow:0 4px 16px -2px color-mix(in srgb,var(--cfc,#00B900) 50%,transparent);transition:transform .2s,box-shadow .2s}.cms-contact-btn:hover{transform:scale(1.1);box-shadow:0 6px 24px -2px color-mix(in srgb,var(--cfc,#00B900) 60%,transparent)}.cms-contact-btn svg{width:28px;height:28px}.cms-contact-label{font-size:11px;font-weight:700;color:#fff;background:rgba(0,0,0,.5);padding:2px 8px;border-radius:99px;white-space:nowrap;pointer-events:none;max-width:80px;overflow:hidden;text-overflow:ellipsis}@media(max-width:768px){.cms-contact-fab{bottom:80px}}

:root{ --os-red:#ff3b3b; }
body{ font-family:'Noto Sans Thai',sans-serif; color:#fff;
  background:#160707; padding-bottom:70px; }

/* nav */
.cms-nav{ background:rgba(22,7,7,.9); backdrop-filter:blur(8px); border-bottom:1px solid rgba(255,59,59,.3); }
.cms-nav-logo img{ max-height:46px; }
.cms-nav-links a{ color:#fff; } .cms-nav-links a:hover{ color:var(--os-red); }
.cms-btn-outline{ color:var(--os-red)!important; border:1px solid var(--os-red)!important; background:transparent!important; border-radius:999px!important; }
.cms-btn-primary{ color:#fff!important; background:var(--os-red)!important; border:none!important; border-radius:999px!important; font-weight:700!important; }

.os-sec-h{ color:var(--os-red); font-weight:700; text-align:center; margin:0 0 10px; }
.os-sec-h.os-left{ text-align:left; }
.os-lead{ color:rgba(255,255,255,.5); line-height:1.9; }
.os-lead.os-center{ text-align:center; max-width:800px; margin:0 auto; }

/* main 2-col */
#os-main{ max-width:1200px; margin:0 auto; padding:24px clamp(12px,3vw,32px); align-items:flex-start; gap:20px; }
#os-sidebar{ background:rgba(22,7,7,.6); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:16px; }
.os-side-h{ color:var(--os-red); font-weight:700; text-align:center; border-bottom:1px solid rgba(255,255,255,.14); padding-bottom:10px; margin:0 0 12px; }
.os-side-link{ display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; padding:8px 10px; border-radius:8px; font-size:.9rem; }
.os-side-link img{ width:24px; height:24px; object-fit:contain; }
.os-side-link:hover,.os-side-link.os-on{ background:rgba(255,59,59,.18); color:var(--os-red); }
.os-side-line{ display:block; margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.14); }
.os-side-line img{ width:100%; border-radius:8px; }

/* marquee bar */
#os-marquee{ display:flex; align-items:center; gap:12px; background:rgba(22,7,7,.6); border:1px solid rgba(255,255,255,.14);
  border-radius:12px; padding:8px 14px; overflow:hidden; white-space:nowrap; }
.os-mq-badge{ background:var(--os-red); color:#fff; font-weight:700; border-radius:6px; padding:2px 10px; flex:0 0 auto; }
.os-mq-text{ color:#fff; font-weight:700; font-size:.85rem; animation:os-scroll 18s linear infinite; }
@keyframes os-scroll{ from{transform:translateX(40%)} to{transform:translateX(-100%)} }

#os-slide{ margin:14px 0; } #os-slide img{ border-radius:14px; border:1px solid rgba(255,255,255,.15); }
.os-pop-h{ color:#fff; font-weight:700; display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--os-red); padding-bottom:8px; margin:18px 0 12px; }
.os-pop-h img{ width:30px; height:30px; }
#os-providers .cms-grid{ display:grid!important; grid-template-columns:repeat(4,1fr); gap:10px; }
#os-providers .cms-img{ margin:0!important; } #os-providers img{ border-radius:10px; transition:transform .2s; }
#os-providers img:hover{ transform:translateY(-3px); }
#os-about{ background:rgba(22,7,7,.6); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:20px; margin-top:18px; }
.os-about-h{ color:var(--os-red); font-weight:700; margin:0 0 10px; }

/* hilo cards */
#os-svc-h{ max-width:900px; margin:30px auto 0; }
#os-hilo{ max-width:1100px; margin:18px auto 0; }
#os-hilo .cms-card{ background:#1e0a0a; border:1px solid rgba(255,255,255,.14); border-radius:12px; overflow:hidden; }
#os-hilo .cms-card img{ max-height:120px; width:auto; margin:12px auto 8px; }
#os-hilo .cms-card h3,#os-hilo .cms-card h5{ color:var(--os-red); font-weight:700; font-size:.95rem; padding:0 10px; }
#os-hilo .cms-card p{ color:rgba(255,255,255,.5); font-size:.72rem; padding:0 10px 12px; text-align:left; }

/* dealer 2-col */
#os-dealer{ max-width:1100px; margin:8px auto 0; padding:32px clamp(12px,3vw,32px); align-items:center; }
#os-dealer img{ border-radius:14px; border:1px solid rgba(255,255,255,.2); }

/* partner logos */
#os-part-h{ max-width:1100px; margin:24px auto 0; }
#os-partners{ max-width:1000px; margin:8px auto 0; }
#os-partners .cms-grid{ display:grid!important; grid-template-columns:repeat(6,1fr); gap:12px; }
#os-partners .cms-img{ margin:0!important; } #os-partners img{ filter:grayscale(.2); transition:filter .2s; }
#os-partners img:hover{ filter:none; }

/* seo */
#os-seo{ max-width:1000px; margin:18px auto 0; background:rgba(22,7,7,.5); border-top:1px solid rgba(255,255,255,.15); padding:28px 22px; border-radius:12px; }

/* footer */
.cms-footer,.cms-site-footer{ background:#0f0505; border-top:1px solid rgba(255,59,59,.3); }
.cms-footer-brand,.cms-footer h5{ color:var(--os-red); }
.cms-footer-copy{ color:rgba(255,255,255,.4); font-size:.78rem; }

/* floating LINE */
#os-line{ position:fixed; right:12px; bottom:84px; z-index:50; max-width:64px; animation:os-bounce 2.2s ease-in-out infinite; }
#os-line img{ width:100%; }
@keyframes os-bounce{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

/* mobile bottom nav (mobile only) */
#os-botnav{ display:none; }
@media (max-width:992px){
  #os-sidebar{ display:none; } /* sidebar desktop-only */
  #os-main .cms-col:first-child{ display:none; }
  #os-providers .cms-grid{ grid-template-columns:repeat(2,1fr); }
  #os-partners .cms-grid{ grid-template-columns:repeat(3,1fr); }
  #os-hilo .cms-cards-grid{ grid-template-columns:repeat(2,1fr)!important; }
  #os-dealer{ text-align:center; }
  #os-botnav{ display:flex; position:fixed; left:0; right:0; bottom:0; z-index:50; justify-content:space-around;
    align-items:center; padding:6px 4px; background:#160707; border-top:1px solid rgba(255,59,59,.3); }
  .os-bn-item{ display:flex; flex-direction:column; align-items:center; gap:2px; text-decoration:none; }
  .os-bn-item img{ width:26px; height:26px; object-fit:contain; }
  .os-bn-item span{ color:#fff; font-size:9px; }
  #os-line{ bottom:74px; }
}

.xc{max-width:1120px;margin:0 auto;padding:8px 20px 56px;color:#ffffff;line-height:1.9}
.xc-in{font-size:16px}
.xc h2{color:#ff3b3b;font-size:25px;font-weight:700;line-height:1.4;margin:36px 0 14px}
.xc h3{color:#ff3b3b;font-size:20px;font-weight:600;line-height:1.45;margin:26px 0 10px}
.xc p{margin:0 0 14px;color:rgba(255,255,255,.82)}
.xc ul{margin:0 0 18px;padding-left:22px;list-style:disc}
.xc li{margin:0 0 7px;color:rgba(255,255,255,.82)}
.xc li::marker{color:#ff3b3b}
@media(max-width:767px){.xc h2{font-size:21px}.xc-in{font-size:15px}}

details.cms-faq-item:not(:has(summary)){display:none}
