/* Public site styles. Colours, fonts and shapes come from the theme variables in <style id="theme-vars">. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-b);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-h);font-weight:var(--h-weight);text-transform:var(--h-case);letter-spacing:var(--h-track);line-height:1.15;margin:0 0 .5em}
p{margin:0 0 1em}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.narrow-wrap{max-width:780px}
.center{text-align:center}
.muted{color:var(--t-muted)}
.cover{width:100%;height:100%;object-fit:cover}
.ic{width:1.2em;height:1.2em;flex:none}
.h-xl{font-size:clamp(2.4rem,5.6vw,4.6rem)}
.h-lg{font-size:clamp(1.8rem,3.6vw,2.9rem)}
.h-sm{font-size:1.25rem}
.lead{font-size:1.18rem;color:var(--t-muted);max-width:640px}
.center .lead,.lead.center{margin-left:auto;margin-right:auto}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t-accent);margin-bottom:.9em}
.prose>*:last-child{margin-bottom:0}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1em}
.prose a{color:var(--t-accent)}

/* tones: every section picks one */
.tone-plain{--t-bg:var(--bg);--t-fg:var(--text);--t-muted:var(--muted);--t-accent:var(--accent-text);--t-card:var(--surface);--t-line:var(--border);--t-btn:var(--accent);--t-btn-fg:var(--on-accent)}
.tone-soft{--t-bg:var(--surface);--t-fg:var(--text);--t-muted:var(--muted);--t-accent:var(--accent-text);--t-card:var(--bg);--t-line:var(--border);--t-btn:var(--accent);--t-btn-fg:var(--on-accent)}
.tone-accent{--t-bg:var(--accent);--t-fg:var(--on-accent);--t-muted:color-mix(in srgb,var(--on-accent) 78%,var(--accent));--t-accent:var(--on-accent);--t-card:color-mix(in srgb,var(--on-accent) 10%,var(--accent));--t-line:color-mix(in srgb,var(--on-accent) 25%,var(--accent));--t-btn:var(--on-accent);--t-btn-fg:var(--accent)}
.tone-dark{--t-bg:var(--inv-bg);--t-fg:var(--inv-text);--t-muted:var(--inv-muted);--t-accent:color-mix(in srgb,var(--accent) 55%,var(--inv-text));--t-card:color-mix(in srgb,var(--inv-text) 7%,var(--inv-bg));--t-line:color-mix(in srgb,var(--inv-text) 18%,var(--inv-bg));--t-btn:var(--accent);--t-btn-fg:var(--on-accent)}
.blk,.site-footer{background:var(--t-bg);color:var(--t-fg);position:relative}
.pad-small{padding:calc(var(--pad)*.5) 0}.pad-normal{padding:var(--pad) 0}.pad-large{padding:calc(var(--pad)*1.4) 0}.pad-none{padding:0}
.al-center{text-align:center}.al-center .lead,.al-center .text-col{margin-left:auto;margin-right:auto}.al-center .btns{justify-content:center}

/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.6em}
.btns:empty{display:none}
.btns.center{justify-content:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 26px;border-radius:var(--btn-radius);background:var(--t-btn);color:var(--t-btn-fg);border:1.5px solid var(--t-btn);font:600 1rem/1.2 var(--font-b);text-decoration:none;cursor:pointer;transition:transform .15s,opacity .15s,background .15s}
.btn:hover{transform:translateY(-1px);opacity:.92}
.btn-ghost{background:transparent;color:var(--t-fg);border-color:currentColor}
.btn-sm{min-height:40px;padding:8px 18px;font-size:.92rem}
[data-btnstyle=outline] .btn:not(.btn-ghost){background:transparent;color:var(--t-fg);border-color:var(--t-fg)}

/* header */
.site-header{background:var(--bg);color:var(--text);border-bottom:1px solid var(--border);z-index:50;--t-fg:var(--text);--t-btn:var(--accent);--t-btn-fg:var(--on-accent);--t-muted:var(--muted)}
.site-header.sticky{position:sticky;top:0}
.announce{background:var(--accent);color:var(--on-accent);text-align:center;font-size:.88rem;padding:8px 16px}
.announce p{margin:0}
.announce:has(p:empty),.announce:empty{display:none}
.is-edit .announce:has(p:empty){display:block;opacity:.6}
.hdr{display:flex;align-items:center;gap:28px;min-height:76px}
.brand{display:flex;align-items:center;text-decoration:none;flex:none}
.brand-name{font-family:var(--font-h);font-weight:var(--h-weight);font-size:1.4rem;text-transform:var(--h-case);letter-spacing:var(--h-track)}
.nav{margin-left:auto}
.nav ul{list-style:none;margin:0;padding:0}
.nav>ul{display:flex;align-items:center;gap:4px}
.nav a,.nav .nav-top{display:flex;align-items:center;gap:4px;padding:10px 12px;text-decoration:none;font:500 .98rem var(--font-b);color:inherit;background:none;border:0;cursor:pointer;border-radius:var(--radius)}
.nav a:hover,.nav .nav-top:hover{color:var(--accent-text)}
.nav a[aria-current],.nav .nav-top[aria-current]{color:var(--accent-text);font-weight:700}
.has-sub{position:relative;display:flex;align-items:center}
.sub-toggle.icon-only{background:none;border:0;color:inherit;padding:6px 2px;margin-left:-8px;cursor:pointer}
.has-sub .ic{width:16px;height:16px;transition:transform .2s}
.sub{position:absolute;top:100%;left:0;min-width:220px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 40px rgba(0,0,0,.12);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;z-index:60}
.sub a{padding:9px 12px}
.sub a:hover{background:var(--surface)}
.has-sub:hover>.sub,.has-sub:focus-within>.sub,.has-sub.open>.sub{opacity:1;visibility:visible;transform:none}
.has-sub:hover .ic,.has-sub.open .ic{transform:rotate(180deg)}
.hdr-actions{display:flex;align-items:center;gap:12px}
.cart-link{position:relative;display:flex;padding:8px;text-decoration:none}
.cart-link .ic{width:24px;height:24px}
.cart-count{position:absolute;top:0;right:-4px;background:var(--accent);color:var(--on-accent);font-size:.7rem;font-weight:700;min-width:19px;height:19px;border-radius:10px;display:grid;place-items:center;padding:0 5px}
.cart-count[hidden]{display:none}
.burger{display:none;background:none;border:0;color:inherit;padding:8px;cursor:pointer}
.burger .ic{width:26px;height:26px}
.hv-centered .hdr{flex-wrap:wrap;justify-content:center;padding-top:18px;gap:6px 28px}
.hv-centered .brand{width:100%;justify-content:center}
.hv-centered .nav{margin:0}
.hv-centered .hdr-actions{position:absolute;right:24px;top:22px}
.hv-centered .wrap.hdr{position:relative}
.hv-split .nav{margin-left:0;order:-1;flex:1}
.hv-split .brand{flex:none}
.hv-split .hdr-actions{flex:1;justify-content:flex-end}
.hv-minimal .nav{display:none}
.hv-minimal .burger{display:flex}
.hv-minimal .hdr-actions{margin-left:auto}
.hv-minimal.nav-open .nav{display:block}
.hv-transparent{border-bottom-color:transparent}
@media (max-width:900px){
  .hdr{min-height:66px;gap:12px}
  .hv-centered .hdr{padding-top:0;flex-wrap:nowrap;justify-content:flex-start}
  .hv-centered .brand{width:auto}
  .hv-centered .hdr-actions{position:static}
  .hv-split .nav{order:0}
  .hdr-actions{margin-left:auto}
  .hdr-actions .btn{display:none}
  .burger{display:flex}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--border);padding:8px 16px 18px;max-height:calc(100vh - 70px);overflow:auto;box-shadow:0 18px 30px rgba(0,0,0,.08)}
  .nav-open .nav{display:block}
  .nav>ul{flex-direction:column;align-items:stretch}
  .nav a,.nav .nav-top{padding:13px 8px;font-size:1.05rem;width:100%}
  .has-sub{flex-wrap:wrap}
  .has-sub>a{flex:1;width:auto}
  .sub-toggle.icon-only{padding:12px;margin:0}
  .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 0 14px;display:none;width:100%;min-width:0}
  .has-sub.open>.sub{display:block}
  .has-sub:hover>.sub{display:none}.has-sub.open:hover>.sub{display:block}
}

/* hero */
.blk-hero{overflow:hidden}
.blk-hero.h-tall{min-height:72vh;display:flex;align-items:center}
.blk-hero.h-full{min-height:calc(100vh - 76px);display:flex;align-items:center}
.blk-hero>.wrap{position:relative;z-index:2}
.v-centered .hero-copy,.v-default .hero-copy{text-align:center;margin:0 auto;max-width:820px}
.v-centered .lead,.v-default .lead{margin-left:auto;margin-right:auto}
.v-centered .btns,.v-default .btns{justify-content:center}
.v-minimal .hero-copy{max-width:900px}
.v-minimal .h-xl{font-size:clamp(2.6rem,7vw,5.8rem)}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.hero-media{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;background:var(--t-card)}
.hero-media .ph-img{height:100%}
.blk-hero.v-image,.blk-cta.v-image{min-height:540px;display:flex;align-items:center}
.blk-hero.v-image .hero-copy{max-width:720px}
.blk-hero.v-image.al-center .hero-copy{margin:0 auto;text-align:center}
.v-image .btn-ghost{color:#fff}

/* text */
.text-col{max-width:760px}
.v-centered .text-col{margin:0 auto;text-align:center}
.v-centered .text-col .btns,.v-centered .text-col{justify-content:center}
.text-col>.btn{margin-top:1em}
.split-text{display:grid;grid-template-columns:1fr 1.4fr;gap:56px}
.prose{font-size:1.05rem}

/* image + text */
.it-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.it-grid.flip .it-media{order:2}
.it-media{aspect-ratio:5/4;border-radius:var(--radius);overflow:hidden;background:var(--t-card)}
.it-media .ph-img{height:100%}
.v-card .it-grid{background:var(--t-card);border-radius:var(--radius);padding:28px;gap:48px}
.v-card .it-copy{padding-right:24px}
.v-card .flip .it-copy{padding:0 0 0 24px}
.v-overlap .it-grid{grid-template-columns:1.2fr 1fr;gap:0}
.v-overlap .it-grid.flip{grid-template-columns:1fr 1.2fr}
.v-overlap .it-copy{background:var(--t-card);padding:48px;border-radius:var(--radius);margin-left:-80px;position:relative;z-index:2;box-shadow:0 24px 60px rgba(0,0,0,.1)}
.v-overlap .flip .it-copy{margin:0 -80px 0 0}
.v-overlap .it-media{aspect-ratio:4/3}

/* section heads */
.sec-head{margin-bottom:48px;max-width:720px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head .lead{margin-bottom:0}

/* features / services */
.f-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:28px}
.f-item{display:flex;flex-direction:column;gap:14px}
.f-item p{color:var(--t-muted);margin:0}
.f-item .price{color:var(--t-fg);font-weight:700;margin-top:6px}
.f-icon{width:52px;height:52px;border-radius:var(--radius);display:grid;place-items:center;background:color-mix(in srgb,var(--t-accent) 14%,transparent);color:var(--t-accent)}
.f-icon .ic{width:26px;height:26px}
.v-cards .f-item,.v-imageCards .f-item{background:var(--t-card);border-radius:var(--radius);padding:30px;border:1px solid var(--t-line)}
.v-imageCards .f-item{padding:0;overflow:hidden}
.v-imageCards .f-body{padding:0 26px 26px}
.card-media{aspect-ratio:4/3;overflow:hidden;background:var(--t-bg)}
.card-media .ph-img{height:100%;border-radius:0}
.v-minimal .f-item{text-align:center;align-items:center}
.v-list .f-grid{grid-template-columns:1fr;gap:0;max-width:860px;margin:0 auto}
.v-list .f-item{flex-direction:row;align-items:flex-start;gap:22px;padding:26px 0;border-bottom:1px solid var(--t-line)}
.v-list .f-body{flex:1;display:grid;grid-template-columns:1fr auto;column-gap:24px}
.v-list .f-body h3{grid-column:1}.v-list .f-body p{grid-column:1}
.v-list .f-body .price{grid-column:2;grid-row:1;margin:0;font-size:1.1rem}
.num{font-family:var(--font-h);font-size:2.6rem;line-height:1;color:var(--t-accent)}
.v-numbered .f-item{border-top:2px solid var(--t-fg);padding-top:22px}

/* gallery */
.g-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:14px}
.g-item{margin:0;position:relative}
.g-item img,.g-item .ph-img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius)}
.g-item figcaption{font-size:.92rem;color:var(--t-muted);margin-top:8px}
.v-masonry .g-grid{display:block;columns:var(--cols,3);column-gap:14px}
.v-masonry .g-item{break-inside:avoid;margin-bottom:14px}
.v-masonry .g-item img{aspect-ratio:auto}
.v-strip .g-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:10px}
.v-strip .g-item{flex:0 0 min(78%,420px);scroll-snap-align:start}
.v-strip .g-item img,.v-strip .g-item .ph-img{aspect-ratio:4/5}
.v-wide .g-grid{grid-template-columns:repeat(var(--cols,3),minmax(0,1fr))}
.v-wide .g-item img,.v-wide .g-item .ph-img{aspect-ratio:16/10}
[data-full]{cursor:zoom-in}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:grid;place-items:center;z-index:100;padding:24px;cursor:zoom-out}
.lightbox img{max-height:90vh;max-width:92vw;object-fit:contain;border-radius:4px}

/* testimonials */
.t-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:24px}
.t-item{margin:0;display:flex;flex-direction:column;gap:18px;background:var(--t-card);border-radius:var(--radius);padding:30px;border:1px solid var(--t-line)}
.t-item blockquote{margin:0;font-size:1.05rem;flex:1}
.t-item figcaption{display:flex;align-items:center;gap:12px}
.t-item figcaption div{display:flex;flex-direction:column;line-height:1.35}
.t-item figcaption span{color:var(--t-muted);font-size:.9rem}
.t-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;flex:none;background:var(--t-bg)}
.t-avatar .ph-img{height:100%;border-radius:50%;font-size:0}
.t-avatar .ph-img span{display:none}
.stars{display:flex;gap:3px;color:var(--t-accent)}
.stars .ic{fill:currentColor;width:18px;height:18px}
.v-simple .t-item{background:none;border:0;padding:0}
.v-spotlight .t-grid{grid-template-columns:1fr;max-width:820px;margin:0 auto}
.v-spotlight .t-item{background:none;border:0;text-align:center;align-items:center}
.v-spotlight .t-item blockquote{font-family:var(--font-h);font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.35}
.v-spotlight .stars{justify-content:center}

/* quote */
.big-quote{margin:0 auto;max-width:880px;text-align:center}
.big-quote .q-mark{width:52px;height:52px;color:var(--t-accent);margin:0 auto 18px}
.big-quote blockquote{margin:0 0 18px;line-height:1.3}
.big-quote figcaption{color:var(--t-muted);font-weight:600}

/* faq */
.faq-list.narrow{max-width:820px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--t-line)}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font-weight:600;font-size:1.1rem;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .ic{transition:transform .2s;color:var(--t-accent)}
.faq-item[open] summary .ic{transform:rotate(180deg)}
.faq-item .prose{padding:0 0 22px;color:var(--t-muted)}
.faq-split{display:grid;grid-template-columns:1fr 1.6fr;gap:56px}
.faq-split .sec-head{margin:0}

/* pricing */
.p-grid{display:grid;grid-template-columns:repeat(min(var(--cols,3),4),minmax(0,1fr));gap:24px;align-items:stretch}
.p-card{background:var(--t-card);border:1px solid var(--t-line);border-radius:var(--radius);padding:34px;display:flex;flex-direction:column;gap:6px;position:relative}
.p-card.featured{border:2px solid var(--accent);box-shadow:0 24px 50px rgba(0,0,0,.08)}
.p-card .btn{margin-top:auto;width:100%}
.p-price{display:flex;align-items:baseline;gap:6px;margin:6px 0 10px}
.p-price .amt{font-family:var(--font-h);font-size:2.4rem;font-weight:var(--h-weight)}
.p-price .per{color:var(--t-muted)}
.p-card>p{color:var(--t-muted)}
.feat{list-style:none;padding:0;margin:0 0 24px}
.feat li{display:flex;gap:10px;padding:6px 0}
.feat .ic{color:var(--accent-text);margin-top:4px}
.badge{position:absolute;top:-13px;left:34px;background:var(--accent);color:var(--on-accent);font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:999px}

/* cta */
.cta-box{text-align:center;max-width:760px;margin:0 auto;position:relative;z-index:2}
.cta-box .btns{justify-content:center}
.v-boxed .cta-box{background:var(--accent);color:var(--on-accent);--t-btn:var(--on-accent);--t-btn-fg:var(--accent);--t-muted:color-mix(in srgb,var(--on-accent) 80%,var(--accent));--t-fg:var(--on-accent);border-radius:calc(var(--radius) * 1.5);padding:64px 40px;max-width:none}
.v-split .cta-box{display:flex;align-items:center;justify-content:space-between;text-align:left;max-width:none;gap:32px;flex-wrap:wrap}
.v-split .cta-box .btns{margin:0}
.v-split .cta-box .h-lg{margin:0}
.v-split .cta-box .lead{display:none}

/* contact */
.ct-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px}
.ct-grid.single{grid-template-columns:1fr;max-width:760px}
.v-stacked .ct-grid{grid-template-columns:1fr;max-width:760px;margin:0 auto;gap:40px}
.ct-list{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-direction:column;gap:16px}
.ct-list li{display:flex;gap:14px;align-items:flex-start}
.ct-list .ic{color:var(--t-accent);margin-top:4px}
.ct-list a{text-decoration:none}
.ct-form{display:flex;flex-direction:column;gap:16px;background:var(--t-card);padding:32px;border-radius:var(--radius);border:1px solid var(--t-line)}
.ct-form label,.pd-buy label{display:flex;flex-direction:column;gap:6px;font-size:.92rem;font-weight:600}
.opt{font-weight:400;color:var(--t-muted)}
input,textarea,select{font:inherit;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:calc(var(--radius) * .7);padding:12px 14px;width:100%}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hp{position:absolute!important;left:-9999px}
.f-status{margin:0;font-size:.95rem;min-height:1.4em}
.f-status.ok{color:var(--t-accent);font-weight:600}
.f-status.err{color:#c0392b}
.ct-map{margin-top:48px;border-radius:var(--radius);overflow:hidden;height:360px;border:1px solid var(--t-line)}
.ct-map iframe{width:100%;height:100%;border:0}

/* team */
.tm-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:32px}
.tm-item{text-align:center}
.tm-item p{margin:0 0 .4em}
.tm-photo{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;margin-bottom:18px;background:var(--t-card)}
.tm-photo .ph-img{height:100%}
.v-circles .tm-photo{aspect-ratio:1;border-radius:50%;max-width:200px;margin:0 auto 18px}

/* stats */
.st-grid{display:grid;grid-template-columns:repeat(min(var(--cols,3),4),minmax(0,1fr));gap:24px;text-align:center}
.st-val{font-family:var(--font-h);font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:var(--h-weight);line-height:1.1;color:var(--t-accent)}
.st-lab{color:var(--t-muted);margin-top:6px}
.v-boxed .st-item{background:var(--t-card);border-radius:var(--radius);padding:30px 18px;border:1px solid var(--t-line)}

/* logos */
.lg-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px 56px}
.lg-item img,.lg-item .ph-img{max-height:48px;width:auto;max-width:160px}
.lg-item .ph-img{height:48px;width:130px}
.v-grayscale .lg-item img{filter:grayscale(1);opacity:.7}

/* products */
.pr-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:28px}
.pr-card{text-decoration:none;display:flex;flex-direction:column;gap:14px}
.pr-media{aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--t-card);position:relative}
.pr-media img{transition:transform .4s}
.pr-card:hover .pr-media img{transform:scale(1.04)}
.pr-media .ph-img{height:100%;border-radius:0}
.pr-flag{position:absolute;top:12px;left:12px;background:var(--bg);color:var(--text);font-size:.78rem;font-weight:700;padding:4px 10px;border-radius:999px}
.pr-info h3{margin:0 0 4px;font-size:1.08rem}
.pr-price{margin:0;color:var(--t-muted)}
.pr-price s,.pd-price s{opacity:.6;margin-right:4px}
.v-cardsBoxed .pr-card{background:var(--t-card);border-radius:var(--radius);border:1px solid var(--t-line);overflow:hidden}
.v-cardsBoxed .pr-media{border-radius:0}
.v-cardsBoxed .pr-info{padding:0 20px 20px}
.v-centered .pr-info{text-align:center}

/* product page */
.pd-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start}
.pd-main{aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.pd-main .ph-img{height:100%}
.pd-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.pd-thumbs button{width:74px;height:74px;padding:0;border:2px solid transparent;border-radius:calc(var(--radius) * .7);overflow:hidden;cursor:pointer;background:none}
.pd-thumbs button.on{border-color:var(--accent)}
.pd-thumbs img{width:100%;height:100%;object-fit:cover}
.pd-price{font-size:1.5rem;font-weight:700;margin-bottom:1.2em}
.pd-buy{display:flex;flex-direction:column;gap:16px;margin-top:28px;max-width:420px}
.pd-qty{display:flex;gap:12px;align-items:flex-end}
.pd-qty label{width:110px}
.pd-qty .btn{flex:1}
.sold-out{font-weight:700;color:var(--muted);margin-top:24px}

/* cart */
.cart-row{display:grid;grid-template-columns:80px 1fr auto auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--border)}
.cart-row img,.cart-row .ph-img{width:80px;height:80px;min-height:0;object-fit:cover;border-radius:calc(var(--radius) * .7)}
.cart-row .opts{color:var(--muted);font-size:.9rem}
.cart-row input{width:74px;padding:8px}
.cart-row .rm{background:none;border:0;color:var(--muted);cursor:pointer;text-decoration:underline;font:inherit;font-size:.88rem;padding:0}
.cart-sum{margin-top:28px;margin-left:auto;max-width:360px;display:flex;flex-direction:column;gap:8px}
.cart-sum div{display:flex;justify-content:space-between}
.cart-sum .tot{font-weight:700;font-size:1.2rem;border-top:1px solid var(--border);padding-top:12px;margin-top:4px}
.cart-sum .btn{margin-top:14px}

/* divider */
.blk-divider hr{border:0;border-top:1px solid var(--t-line);margin:0}
.dv-dots{display:flex;justify-content:center;gap:12px}
.dv-dots span{width:6px;height:6px;border-radius:50%;background:var(--t-accent)}

/* video */
.vid{aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:#000}
.vid iframe{width:100%;height:100%;border:0}
.vid+p{margin-top:14px}

/* image placeholder (only visible in the editor, or for products with no photo) */
.ph-img{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;background:color-mix(in srgb,var(--t-fg,var(--text)) 7%,transparent);color:var(--t-muted,var(--muted));border-radius:var(--radius);font-size:.9rem}
.ph-img .ic{width:32px;height:32px;opacity:.7}

/* footer */
.site-footer{padding:64px 0 28px;font-size:.96rem}
.f-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:36px;border-bottom:1px solid var(--t-line)}
.f-about{max-width:360px}
.f-about p{color:var(--t-muted);margin-top:10px}
.f-menu{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 24px;align-content:flex-start}
.f-menu a{text-decoration:none;color:var(--t-muted)}
.f-menu a:hover{color:var(--t-fg)}
.f-social{display:flex;gap:10px}
.f-social a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--t-line);color:var(--t-fg)}
.f-bottom{padding-top:22px;color:var(--t-muted);font-size:.88rem}
.f-bottom p{margin:0}
.fv-centered .f-top{flex-direction:column;align-items:center;text-align:center}
.fv-centered .f-about{margin:0 auto}
.fv-centered .f-bottom{text-align:center}
.fv-columns .f-menu{flex-direction:column;gap:10px}

/* responsive */
@media (max-width:900px){
  body{font-size:16px}
  .hero-grid,.it-grid,.split-text,.faq-split,.ct-grid,.pd-grid{grid-template-columns:1fr!important;gap:36px}
  .it-grid.flip .it-media{order:0}
  .v-overlap .it-copy,.v-overlap .flip .it-copy{margin:-60px 16px 0;padding:32px}
  .v-card .it-copy,.v-card .flip .it-copy{padding:0}
  .f-grid,.t-grid,.tm-grid,.pr-grid,.g-grid,.p-grid{grid-template-columns:repeat(min(var(--cols,3),2),minmax(0,1fr))}
  .st-grid{grid-template-columns:repeat(2,1fr)}
  .v-masonry .g-grid{columns:2}
  .hero-media{aspect-ratio:4/3}
}
@media (max-width:560px){
  .wrap{padding:0 18px}
  .f-grid,.t-grid,.p-grid,.tm-grid{grid-template-columns:1fr}
  .pr-grid,.g-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .v-list .f-body{grid-template-columns:1fr}.v-list .f-body .price{grid-column:1;grid-row:auto}
  .f-row{grid-template-columns:1fr}
  .ct-form,.p-card{padding:24px}
  .v-boxed .cta-box{padding:44px 22px}
  .cart-row{grid-template-columns:64px 1fr;row-gap:8px}
  .cart-row img,.cart-row .ph-img{width:64px;height:64px}
  .blk-hero.v-image{min-height:460px}
}

/* ---------- background photo / video layer ---------- */
.sec-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.sec-bg img,.sec-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sec-bg .ph-img{height:100%;border-radius:0}
.sec-bg.fx-parallax{inset:-18% 0;will-change:transform}
.sec-shade{position:absolute;inset:0;z-index:1;background:#000;pointer-events:none}
.blk:has(>.sec-bg)>.wrap{position:relative;z-index:2}
.blk:has(>.sec-bg){overflow:hidden}
.blk-hero.v-image,.blk-cta.v-image,.blk-free:has(>.sec-bg){--t-fg:#fff;--t-muted:rgba(255,255,255,.86);--t-accent:#fff;--t-line:rgba(255,255,255,.35);--t-card:rgba(255,255,255,.12);color:#fff}
@keyframes sb-kenburns{from{transform:scale(1)}to{transform:scale(1.14) translate(-1%,-1%)}}
.fx-zoom img,.fx-zoom video{animation:sb-kenburns 22s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.fx-zoom img,.fx-zoom video{animation:none}}

/* ---------- freeform sections ---------- */
.h-md{font-size:clamp(1.35rem,2.2vw,1.9rem)}
.blk-free{position:relative}
.free-wrap{container:free / inline-size}
.free-grid{display:grid;position:relative;grid-template-columns:repeat(24,minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(calc(100cqw / 48),auto));grid-auto-rows:minmax(calc(100cqw / 48),auto)}
.fi{grid-column:var(--x) / span var(--w);grid-row:var(--y) / span var(--h);z-index:var(--z);position:relative;min-width:0;display:flex;flex-direction:column}
.fi-in{flex:1;display:flex;flex-direction:column;justify-content:flex-start;min-width:0}
.va-middle .fi-in{justify-content:center}
.va-bottom .fi-in{justify-content:flex-end}
.fi-t{margin:0}
.fi .prose p:last-child{margin-bottom:0}
.t-lg{font-size:1.25rem}.t-sm{font-size:.92rem}
.t-lg,.t-md,.t-sm{color:inherit}
.ta-center{text-align:center}.ta-right{text-align:right}
.ba-center{align-items:center}.ba-right{align-items:flex-end}.ba-left{align-items:flex-start}
.ba-stretch .btn{width:100%}
.fi-media,.fi-shape,.fi-line,.fi-icon{position:absolute;inset:0}
.fi-media{overflow:hidden;border-radius:var(--radius)}
.fi-media.r-none{border-radius:0}.fi-media.r-circle{border-radius:50%}
.fi-media.shadow{box-shadow:0 24px 60px rgba(0,0,0,.22)}
.fi-media img,.fi-media iframe,.fi-media .ph-img,.fi-media a{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.fi-media.fit-contain img{object-fit:contain}
.fi-media .ph-img{border-radius:0}
.fi-shape{border-radius:0}
.sh-rounded{border-radius:var(--radius)}.sh-circle{border-radius:50%}.sh-pill{border-radius:999px}
.fi-line{inset:auto 0;top:50%;height:2px;transform:translateY(-50%)}
.fi-icon{display:grid;place-items:center}
.fi-icon .ic{width:70%;height:70%;max-width:100%;max-height:100%}
.fi-icon.circ{border-radius:50%}
.fi-icon.circ .ic{width:50%;height:50%}
@container free (max-width:700px){
  .free-grid{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(var(--mrows),minmax(calc(100cqw / 16),auto));grid-auto-rows:minmax(calc(100cqw / 16),auto)}
  .fi{grid-column:var(--mx) / span var(--mw);grid-row:var(--my) / span var(--mh)}
  .fi.m-hide{display:none}
}

/* ---------- scroll animations ---------- */
html.anim-on section[data-an]:not([data-an=none]) :is(.sec-head,.hero-copy>*,.text-col>*,.split-text>*,.it-media,.it-copy,.f-item,.g-item,.t-item,.big-quote,.faq-item,.p-card,.cta-box,.ct-info,.ct-form,.tm-item,.st-item,.lg-item,.pr-card,.po-card,.vid,.fi):not(.an),
html.anim-on .fi[data-an]:not([data-an=none]):not(.an){opacity:0}
.an{transition:opacity var(--as) ease,transform var(--as) cubic-bezier(.2,.7,.2,1),filter var(--as) ease,clip-path var(--as) cubic-bezier(.65,0,.25,1);transition-delay:var(--d,0ms)}
.an:not(.in){opacity:0}
.an[data-at=rise]:not(.in){transform:translateY(34px)}
.an[data-at=scale]:not(.in){transform:scale(.9)}
.an[data-at=slide]:not(.in){transform:translateX(-46px)}
.an[data-at=blur]:not(.in){filter:blur(14px)}
.an[data-at=reveal]{opacity:1}
.an[data-at=reveal]:not(.in){opacity:1;clip-path:inset(0 0 100% 0)}
.an[data-at=reveal].in{clip-path:inset(0 0 0 0)}

/* ---------- slideshow gallery ---------- */
.v-slideshow .g-grid{display:grid;grid-template-columns:1fr;position:relative;overflow:hidden;border-radius:var(--radius)}
.v-slideshow .g-item{grid-area:1 / 1;opacity:0;transition:opacity 1.1s ease;pointer-events:none}
.v-slideshow .g-item.on{opacity:1;pointer-events:auto}
.v-slideshow .g-item img{aspect-ratio:16 / 8;border-radius:0}
.v-slideshow .g-item figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:40px 24px 18px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.ss-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;display:grid;place-items:center;cursor:pointer}
.ss-nav.prev{left:14px}.ss-nav.next{right:14px}
.ss-nav .ic{width:22px;height:22px}
.ss-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}
.ss-dots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:var(--t-line);cursor:pointer}
.ss-dots button.on{background:var(--t-accent)}
@media (max-width:560px){.v-slideshow .g-item img{aspect-ratio:4 / 3}}

/* ---------- photo viewer ---------- */
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:default}
.lightbox figcaption{color:#ddd;font-size:.95rem}
.lb-btn{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer}
.lb-btn .ic{width:24px;height:24px}
.lb-prev{left:18px}.lb-next{right:18px}
.lb-close{top:28px;right:18px;transform:none}
.preview-badge{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:#1f2430;color:#fff;font:600 13px -apple-system,sans-serif;padding:8px 14px;border-radius:20px;z-index:200;box-shadow:0 6px 20px rgba(0,0,0,.3)}

/* ---------- blog ---------- */
.po-list{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:36px 28px}
.po-card{display:flex;flex-direction:column;gap:16px;text-decoration:none}
.po-media{aspect-ratio:3 / 2;border-radius:var(--radius);overflow:hidden;background:var(--t-card)}
.po-media img{transition:transform .5s}
.po-card:hover .po-media img{transform:scale(1.04)}
.po-media .ph-img{height:100%;border-radius:0}
.po-info h3{margin:0 0 8px;font-size:1.3rem}
.po-meta{font-size:.85rem;color:var(--t-muted);margin:0 0 8px;letter-spacing:.02em}
.po-ex{color:var(--t-muted);margin:0 0 12px}
.po-more{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--t-accent);font-size:.95rem}
.po-more .ic{width:16px;height:16px;transition:transform .2s}
.po-card:hover .po-more .ic{transform:translateX(3px)}
/* blog layouts: list = photo beside text, featured = first post large, minimal = titles only */
.pl-list{grid-template-columns:1fr;gap:0;max-width:980px}
.pl-list .po-card{flex-direction:row;gap:32px;align-items:center;padding:28px 0;border-bottom:1px solid var(--t-line)}
.pl-list .po-media{flex:0 0 38%}
.pl-featured .po-card:first-child{grid-column:1 / -1;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center}
.pl-featured .po-card:first-child h3{font-size:clamp(1.6rem,3vw,2.4rem)}
.pl-minimal{grid-template-columns:1fr;gap:0;max-width:860px}
.pl-minimal .po-card{padding:22px 0;border-bottom:1px solid var(--t-line)}
.pl-minimal .po-info{display:grid;grid-template-columns:1fr auto;column-gap:24px;align-items:baseline}
.pl-minimal .po-meta{grid-column:2;grid-row:1;margin:0}
.pl-minimal h3{margin:0}
.pl-minimal .po-more{display:none}
.po-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.po-cats a{padding:7px 16px;border-radius:999px;border:1px solid var(--t-line);text-decoration:none;font-size:.92rem}
.po-cats a[aria-current]{background:var(--t-fg);color:var(--t-bg);border-color:var(--t-fg)}
.po-pager{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:48px}
.post-head .text-col{margin-bottom:8px}
.post-head .eyebrow a{text-decoration:none}
.post-head .po-meta{font-size:.95rem}
.post-cover{margin-top:36px;aspect-ratio:16 / 8;border-radius:var(--radius);overflow:hidden;background:var(--t-card)}
.post-cover .ph-img{height:100%}
.po-draft{margin-left:10px;background:#f4d9a8;color:#6b4300;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--t-line);padding-top:28px;margin-bottom:32px}
.post-nav a{text-decoration:none;display:flex;flex-direction:column;gap:6px}
.post-nav small{display:flex;align-items:center;gap:6px;color:var(--t-muted)}
.post-nav small .ic{width:15px;height:15px}
.pn-new{text-align:right;align-items:flex-end}
@media (max-width:900px){
  .po-list{grid-template-columns:repeat(min(var(--cols,3),2),minmax(0,1fr))}
  .pl-list,.pl-minimal{grid-template-columns:1fr}
  .pl-featured .po-card:first-child{grid-template-columns:1fr;gap:16px}
}
@media (max-width:560px){
  .po-list{grid-template-columns:1fr}
  .pl-list .po-card{flex-direction:column;align-items:stretch;gap:14px}
  .pl-minimal .po-info{grid-template-columns:1fr}
  .pl-minimal .po-meta{grid-column:1;grid-row:auto;margin-top:4px}
  .post-nav{grid-template-columns:1fr}
  .pn-new{text-align:left;align-items:flex-start}
}
.blk + .blk-blog{padding-top:calc(var(--pad) * .3)}
.post-head{padding-bottom:0}.post-head + .blk{padding-top:calc(var(--pad) * .4)}
