/* ---------- sections (builder-driven pages) ---------- */
.sf-sec{position:relative;padding:48px 0;color:var(--sec-text,inherit)}.sf-sec.pad-none{padding:0}.sf-sec.pad-sm{padding:24px 0}.sf-sec.pad-lg{padding:80px 0}.sf-sec.pad-xl{padding:120px 0}
.sf-sec.w-narrow .sf-wrap{max-width:760px}.sf-sec.w-wide .sf-wrap{max-width:1400px}.sf-sec.w-full .sf-wrap{max-width:none;padding:0}
.sf-sec.align-center .sf-wrap{text-align:center}.sf-sec.align-center .sf-sec-head,.sf-sec.align-center .sf-hero-copy,.sf-sec.align-center .sf-prose,.sf-sec.align-center .sf-lead{margin-inline:auto}.sf-sec.align-center .sf-actions-row{justify-content:center}.sf-sec.align-center .sf-features,.sf-sec.align-center .sf-quotes,.sf-sec.align-center .sf-faq{text-align:left}
.sf-sec.bg-surface{background:var(--surface)}.sf-sec.bg-primary{background:var(--primary);color:#fff}.sf-sec.bg-accent{background:var(--accent);color:#0c1a0c}.sf-sec.bg-custom{background:var(--sec-bg)}.sf-sec.bg-image{background:linear-gradient(rgba(0,0,0,var(--sec-overlay,.35)),rgba(0,0,0,var(--sec-overlay,.35))),var(--sec-img) center/cover no-repeat;color:#fff}
.sf-sec.txt-light{color:#fff}.sf-sec.txt-dark{color:#1c1c1a}.sf-sec.txt-custom{color:var(--sec-text)}
.sf-sec.divided{border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)}
.sf-sec.h-sm h1{font-size:clamp(1.5rem,3vw,2.2rem)}.sf-sec.h-sm h2{font-size:1.2rem}.sf-sec.h-md h1{font-size:clamp(2rem,5vw,3.6rem)}.sf-sec.h-md h2{font-size:1.6rem}.sf-sec.h-lg h1{font-size:clamp(2.6rem,6.5vw,4.6rem)}.sf-sec.h-lg h2{font-size:2.1rem}.sf-sec.h-xl h1{font-size:clamp(3rem,8vw,6rem);letter-spacing:-.02em}.sf-sec.h-xl h2{font-size:2.8rem}
.sf-sec.t-sm{font-size:.92rem}.sf-sec.t-lg{font-size:1.12rem}.sf-sec.t-lg .sf-lead{font-size:1.3rem}
.sf-sec.rad-none img,.sf-sec.rad-none .sf-cat,.sf-sec.rad-none .sf-card,.sf-sec.rad-none .sf-btn,.sf-sec.rad-none .sf-feature,.sf-sec.rad-none .sf-quote{border-radius:0}.sf-sec.rad-md img,.sf-sec.rad-md .sf-btn{border-radius:10px}.sf-sec.rad-lg img,.sf-sec.rad-lg .sf-btn,.sf-sec.rad-lg .sf-feature,.sf-sec.rad-lg .sf-quote{border-radius:22px}.sf-sec.rad-full img{border-radius:999px}.sf-sec.rad-full .sf-btn{border-radius:999px}
.sf-btn-main{background:var(--accent);color:#0c1a0c}.sf-btn-secondary{background:transparent;color:inherit;border-color:color-mix(in srgb,currentColor 40%,transparent);box-shadow:none}
.sf-sec.btn-primary .sf-btn-main{background:var(--primary);color:#fff}.sf-sec.btn-accent .sf-btn-main{background:var(--accent);color:#0c1a0c}.sf-sec.btn-outline .sf-btn-main{background:transparent;color:inherit;border-color:currentColor;box-shadow:none}.sf-sec.btn-link .sf-btn-main{background:transparent;color:inherit;border:0;box-shadow:none;padding-inline:0;text-decoration:underline;text-underline-offset:4px}
.sf-sec.bg-primary.btn-primary .sf-btn-main,.sf-sec.bg-image.btn-primary .sf-btn-main{background:#fff;color:var(--primary)}
.sf-sec-hero{display:flex;align-items:center}.sf-sec-hero.hgt-sm{min-height:34vh}.sf-sec-hero.hgt-md{min-height:52vh}.sf-sec-hero.hgt-lg{min-height:72vh}.sf-sec-hero.hgt-full{min-height:calc(100vh - 68px)}.sf-sec-hero.bg-none{background:var(--primary);color:#fff}.theme-minimal .sf-sec-hero.bg-none{background:var(--surface);color:var(--text);border-bottom:1px solid #0001}
.sf-hero-inner{width:100%}.sf-hero-inner.split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}@media(max-width:820px){.sf-hero-inner.split{grid-template-columns:1fr}}.sf-hero-copy{max-width:720px}.sf-hero-media img{width:100%;border-radius:var(--radius);box-shadow:0 30px 60px -30px #0007}
.sf-lead{font-size:1.15rem;max-width:600px;opacity:.9}.sf-actions-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.sf-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;opacity:.75;margin:0 0 10px}
.sf-sec-head{margin-bottom:22px;max-width:720px}.sf-sec-head h2{margin-bottom:4px}.sf-sub{margin:0;opacity:.75}.sf-more{font-weight:600;text-decoration:none;color:var(--primary);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.bg-primary .sf-more,.bg-image .sf-more{color:#fff}
.sf-prose{max-width:760px}.sf-prose p{margin:0 0 1em}.sf-prose p:last-child{margin-bottom:0}.sf-sec.t-lg .sf-prose{font-size:1.15rem}
.sf-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.sf-split.media-left .sf-split-media{order:-1}@media(max-width:820px){.sf-split{grid-template-columns:1fr}.sf-split.media-left .sf-split-media{order:0}}.sf-split-media img{width:100%;border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover}
.sf-features{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.cols-2 .sf-features{grid-template-columns:repeat(2,1fr)}.cols-4 .sf-features{grid-template-columns:repeat(4,1fr)}@media(max-width:820px){.sf-features,.cols-4 .sf-features{grid-template-columns:1fr 1fr}}@media(max-width:520px){.sf-features,.cols-4 .sf-features,.cols-2 .sf-features{grid-template-columns:1fr}}
.sf-feature{background:var(--surface);color:var(--text);border-radius:var(--radius);padding:22px;border:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.sf-feature h3{margin:10px 0 6px}.sf-feature p{margin:0;opacity:.8}.sf-feature-ico{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}
.sf-banner-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.sf-banner-row p{margin:0;font-weight:600;font-size:1.1rem}.sf-sec.align-center .sf-banner-row{justify-content:center}
.sf-cta h2{max-width:720px}.sf-cta .sf-lead{margin-bottom:4px}.sf-cta .sf-btn-lg{width:auto;margin-top:18px}
.sf-figure{margin:0}.sf-figure img{width:100%;border-radius:var(--radius)}.sf-figure figcaption{margin-top:8px;font-size:.9rem;opacity:.7}
.cols-2 .sf-gallery{grid-template-columns:repeat(2,1fr)}.cols-3 .sf-gallery{grid-template-columns:repeat(3,1fr)}.cols-4 .sf-gallery{grid-template-columns:repeat(4,1fr)}@media(max-width:640px){.cols-3 .sf-gallery,.cols-4 .sf-gallery{grid-template-columns:repeat(2,1fr)}}
.sf-video{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden}.sf-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sf-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cols-2 .sf-quotes{grid-template-columns:repeat(2,1fr)}.cols-1 .sf-quotes{grid-template-columns:1fr}@media(max-width:820px){.sf-quotes,.cols-2 .sf-quotes{grid-template-columns:1fr}}
.sf-quote{margin:0;background:var(--surface);color:var(--text);border-radius:var(--radius);padding:22px;border:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.sf-quote blockquote{margin:0 0 12px;font-size:1.05rem}.sf-quote figcaption{font-size:.9rem}.sf-quote figcaption span{opacity:.6;margin-left:6px}
.sf-faq details{border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent);padding:12px 0}.sf-faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}.sf-faq summary::-webkit-details-marker{display:none}.sf-faq summary .sf-ico{opacity:.5;transition:transform .2s}.sf-faq details[open] summary .sf-ico{transform:rotate(45deg)}.sf-faq p{margin:8px 0 0;opacity:.85}
.sf-map-full{height:420px;border-radius:0}.sf-hr{border:0;border-top:1px solid color-mix(in srgb,currentColor 15%,transparent);margin:0}
.sf-placeholder{display:grid;place-items:center;aspect-ratio:16/7;border-radius:var(--radius);background:color-mix(in srgb,currentColor 6%,transparent);color:color-mix(in srgb,currentColor 40%,transparent)}.sf-placeholder .sf-ico{width:40px;height:40px}
.sf-page-title{font-size:2.2rem;margin:0}
.sf-ico{width:1.1em;height:1.1em;vertical-align:-.15em}.sf-icon-btn{border:0;background:transparent;cursor:pointer;display:grid;place-items:center;padding:6px;color:inherit;border-radius:8px}.sf-icon-btn:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.sf-icon-btn .sf-ico{width:22px;height:22px}
/* editor mode */
.sf-editing [data-sf-section]{outline:2px solid transparent;outline-offset:-2px;transition:outline-color .12s}.sf-editing [data-sf-section].sfe-hover{outline-color:color-mix(in srgb,#95c046 70%,transparent)}.sf-editing [data-sf-section].sfe-selected{outline-color:#1f5f4a;box-shadow:inset 0 0 0 9999px rgba(31,95,74,.03)}
.sfe-badge{position:absolute;left:8px;z-index:60;background:#1f5f4a;color:#fff;font:600 11px/1 Inter,sans-serif;padding:5px 8px;border-radius:6px;text-transform:capitalize;pointer-events:none}.sfe-badge[hidden]{display:none}
.sf-editing [data-sf-field]{cursor:text}.sf-editing .sfe-editing{outline:2px dashed #95c046;outline-offset:3px;border-radius:4px}
/* ---------- section polish (shared by every theme) ---------- */
.sf-sec { padding: 56px 0; }
.sf-sec-hero:is(.bg-none,.bg-primary) {
  color: #fff; position: relative; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(900px 420px at 88% -10%, color-mix(in srgb, var(--accent) 55%, transparent), transparent 62%),
    radial-gradient(700px 380px at -5% 115%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 60%),
    linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 62%, #000));
}
.sf-sec-hero:is(.bg-none,.bg-primary)::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5; background-image: radial-gradient(rgb(255 255 255 / .16) 1px, transparent 1.4px); background-size: 22px 22px; mask-image: linear-gradient(115deg, #000 0%, transparent 55%); -webkit-mask-image: linear-gradient(115deg, #000 0%, transparent 55%); }
.sf-sec-hero .sf-eyebrow { color: inherit; opacity: .8; }
.sf-hero-copy h1 { text-wrap: balance; margin-bottom: .35em; }
.sf-lead { font-size: 1.18rem; line-height: 1.55; opacity: .92; }
.sf-hero-media img { box-shadow: var(--shadow-lg); }
.sf-btn { transition: transform .15s var(--ease), box-shadow .15s, background .15s, border-color .15s; }
.sf-btn-main { height: 50px; padding: 0 26px; font-weight: 700; border-color: transparent; }
.sf-btn-main:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -14px rgb(0 0 0 / .55); }
.sf-sec-hero:is(.bg-none,.bg-primary) .sf-btn-main { background: #fff; color: var(--primary); }
.sf-btn-secondary { border-width: 1.5px; }
.sf-sec-head { margin-bottom: 26px; }
.sf-sec-head h2, .sf-section-head h2 { font-size: clamp(1.45rem, 2.4vw, 1.95rem); }
.sf-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 26px; }
.sf-more { font-weight: 650; }
.sf-more:hover { text-decoration: underline; text-underline-offset: 4px; }
.sf-feature { padding: 26px; box-shadow: var(--card-shadow); border: var(--card-border); transition: transform .25s var(--ease), box-shadow .25s; }
.sf-feature:hover { transform: translateY(-2px); box-shadow: var(--card-hover-shadow); }
.sf-quote { padding: 26px; box-shadow: var(--card-shadow); border: var(--card-border); }
.sf-cta { text-align: center; } .sf-cta h2 { margin-inline: auto; font-size: clamp(1.8rem, 3.6vw, 2.6rem); } .sf-cta .sf-lead { margin-inline: auto; }
.sf-banner-row p { font-size: 1.05rem; }

/* ---------- themes: same markup, different personality ---------- */

/* Classic — warm, editorial, generous white space */
.theme-classic .sf-card, .theme-classic .sf-cat { border-color: transparent; box-shadow: 0 1px 2px rgb(60 40 20 / .06), 0 6px 20px -14px rgb(60 40 20 / .3); }
.theme-classic .sf-card-media, .theme-classic .sf-cat-img { border-bottom: 1px solid var(--line); }

/* Bold — hard edges, heavy type, colour blocking */
.theme-bold { --card-border: 2px solid var(--text); --card-shadow: none; --card-hover-shadow: 6px 6px 0 var(--text); --card-lift: -2px; --h-transform: uppercase; --h-track: -.015em; --h-weight: 800; --cta: var(--text); --on-cta: #fff; }
.theme-bold .sf-header { background: var(--surface); border-bottom: 2px solid var(--text); backdrop-filter: none; }
.theme-bold .sf-brand { text-transform: uppercase; letter-spacing: -.03em; }
.theme-bold .sf-nav a { text-transform: uppercase; font-weight: 750; font-size: .8rem; letter-spacing: .05em; }
.theme-bold .sf-search { background: var(--surface); border: 2px solid var(--text); border-radius: 0; }
.theme-bold .sf-cart-btn, .theme-bold .sf-btn, .theme-bold .sf-card-add, .theme-bold .sf-search { border-radius: 0; }
.theme-bold .sf-btn { text-transform: uppercase; letter-spacing: .05em; font-size: .82rem; border: 2px solid var(--text); }
.theme-bold .sf-btn-primary { box-shadow: 4px 4px 0 var(--accent); }
.theme-bold .sf-btn-primary:hover { box-shadow: 6px 6px 0 var(--accent); }
.theme-bold .sf-sec-hero:is(.bg-none,.bg-primary) { background: linear-gradient(112deg, var(--primary) 0 64%, var(--accent) 64% 100%); }
.theme-bold .sf-sec-hero:is(.bg-none,.bg-primary)::before { display: none; }
.theme-bold .sf-sec-hero .sf-btn-main { background: var(--accent); color: var(--text); border: 2px solid #fff; }
.theme-bold .sf-badge { background: var(--accent); color: var(--text); border-radius: 0; }
.theme-bold .sf-badge-sale { background: var(--sale); color: #fff; }
.theme-bold .sf-card-name { text-transform: uppercase; font-size: .82rem; letter-spacing: .01em; font-weight: 750; }
.theme-bold .sf-card-add, .theme-bold .sf-qty, .theme-bold .sf-tips button { border-radius: 0; }
.theme-bold .sf-card-media { border-bottom: 2px solid var(--text); }
.theme-bold .sf-filters a.active { border-radius: 0; background: var(--accent); color: var(--text); }
.theme-bold .sf-footer { border-top: 6px solid var(--accent); }

/* Minimal — nothing but the products */
.theme-minimal { --card-border: 1px solid transparent; --card-shadow: none; --card-hover-shadow: none; --card-lift: 0; --h-weight: 600; --h-track: -.03em; --cta: #111; --media-bg: #f5f5f4; --ink: var(--surface); --on-ink: var(--text); --on-ink-muted: var(--muted); }
.theme-minimal .sf-header { background: var(--bg); border-bottom-color: transparent; backdrop-filter: none; }
.theme-minimal .sf-card, .theme-minimal .sf-cat { background: transparent; }
.theme-minimal .sf-card-media, .theme-minimal .sf-cat-img { border-radius: var(--radius); }
.theme-minimal .sf-card-media img { mix-blend-mode: multiply; }
.theme-minimal .sf-card-body { padding: 12px 2px 4px; }
.theme-minimal .sf-card:hover .sf-card-media img { transform: scale(1.03); }
.theme-minimal .sf-card-add { background: #111; }
.theme-minimal .sf-sec-hero:is(.bg-none,.bg-primary) { background: var(--surface); color: var(--text); border-bottom: 1px solid var(--line); }
.theme-minimal .sf-sec-hero:is(.bg-none,.bg-primary)::before { display: none; }
.theme-minimal .sf-sec-hero .sf-btn-main { background: #111; color: #fff; }
.theme-minimal .sf-hero-copy h1 { font-size: clamp(2.6rem, 6vw, 4.8rem); letter-spacing: -.045em; }
.theme-minimal .sf-search { background: transparent; border: 1px solid var(--line-strong); }
.theme-minimal .sf-footer { border-top: 1px solid var(--line); }
.theme-minimal .sf-footer a { opacity: .75; }
.theme-minimal .sf-copy { border-top-color: var(--line); }
.theme-minimal .sf-filters a.active { background: transparent; color: var(--text); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }

/* Market — dense, price-forward, marketplace header */
.theme-market { --card-lift: -2px; --h-weight: 700; --sale: #d92d20; }
.theme-market .sf-header { background: var(--primary); color: #fff; border-bottom: 0; backdrop-filter: none; }
.theme-market .sf-nav a { color: rgb(255 255 255 / .88); } .theme-market .sf-nav a:hover { color: #fff; } .theme-market .sf-nav a::after { background: var(--accent); }
.theme-market .sf-search { background: #fff; color: #667085; max-width: 560px; border-radius: 8px; height: 46px; }
.theme-market .sf-search input { color: #101828; }
.theme-market .sf-cart-btn { background: var(--accent); color: #062033; border-radius: 8px; } .theme-market .sf-cart-count { background: #062033; color: var(--accent); }
.theme-market .sf-burger { color: #fff; }
.theme-market .sf-grid { gap: 12px; }
.theme-market .sf-card { border-radius: 8px; } .theme-market .sf-card-body { padding: 10px 11px 12px; }
.theme-market .sf-card-name { font-size: .86rem; } .theme-market .sf-card-price .now { font-size: 1.15rem; color: var(--primary); } .theme-market .sf-card-price .now.sale { color: var(--sale); }
.theme-market .sf-card-add { border-radius: 8px; width: 34px; height: 34px; }
.theme-market .sf-sec { padding-block: 34px; }
.theme-market .sf-sec-hero:is(.bg-none,.bg-primary) { background: linear-gradient(100deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 70%, var(--accent)) 100%); }
.theme-market .sf-perks { background: color-mix(in srgb, var(--primary) 6%, #fff); }
.theme-market .sf-footer { background: color-mix(in srgb, var(--primary) 55%, #000); }
.theme-market .sf-btn-primary { border-radius: 8px; }

/* Elegant — serif, hairlines, quiet luxury */
.theme-elegant { --card-border: 1px solid transparent; --card-shadow: none; --card-hover-shadow: 0 20px 40px -26px rgb(60 40 20 / .45); --card-lift: -2px; --h-weight: 500; --h-track: 0; --btn-radius: 0; --media-bg: #fbf9f5; }
.theme-elegant .sf-header { background: var(--bg); border-bottom-color: var(--line-strong); }
.theme-elegant .sf-header-row { min-height: 88px; }
.theme-elegant .sf-brand { font-weight: 500; font-size: 1.6rem; letter-spacing: .02em; }
.theme-elegant .sf-nav a { text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; font-weight: 600; }
.theme-elegant .sf-search { background: transparent; border: 0; border-bottom: 1px solid var(--line-strong); border-radius: 0; }
.theme-elegant .sf-cart-btn { border-radius: 0; background: transparent; color: var(--text); border: 1px solid var(--text); }
.theme-elegant .sf-cart-count { background: var(--text); color: var(--bg); }
.theme-elegant .sf-btn { text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; font-weight: 650; height: 48px; padding: 0 30px; }
.theme-elegant .sf-card, .theme-elegant .sf-cat { background: transparent; }
.theme-elegant .sf-card-body { text-align: center; align-items: center; padding-top: 16px; }
.theme-elegant .sf-card-foot { justify-content: center; } .theme-elegant .sf-card-add { display: none; }
.theme-elegant .sf-card-name { font-family: var(--font-heading); font-size: 1.02rem; font-weight: 500; min-height: 2.6em; }
.theme-elegant .sf-card-cat { letter-spacing: .22em; }
.theme-elegant .sf-card-price .now { font-weight: 500; font-size: 1rem; }
.theme-elegant .sf-eyebrow { letter-spacing: .32em; color: var(--accent); }
.theme-elegant .sf-sec-hero:is(.bg-none,.bg-primary) { background: linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--accent) 10%, var(--bg))); color: var(--text); border-bottom: 1px solid var(--line-strong); text-align: center; }
.theme-elegant .sf-sec-hero:is(.bg-none,.bg-primary)::before { display: none; }
.theme-elegant .sf-sec-hero .sf-hero-copy { margin-inline: auto; } .theme-elegant .sf-sec-hero .sf-actions-row, .theme-elegant .sf-sec-hero .sf-lead { justify-content: center; margin-inline: auto; }
.theme-elegant .sf-sec-hero:is(.bg-none,.bg-primary) .sf-btn-main { background: var(--text); color: var(--bg); }
.theme-elegant .sf-hero-copy h1 { font-size: clamp(2.4rem, 5.5vw, 4.2rem); font-style: italic; }
.theme-elegant .sf-sec-head { margin-inline: auto; text-align: center; }
.theme-elegant .sf-perks-row { text-align: left; }
.theme-elegant .sf-footer { background: var(--text); }
.theme-elegant .sf-filters a.active { background: transparent; color: var(--text); border-bottom: 1px solid var(--text); border-radius: 0; }

/* Night — dark surfaces, one glowing accent */
.theme-night { --line: rgb(255 255 255 / .09); --line-strong: rgb(255 255 255 / .2); --muted: rgb(230 237 243 / .58); --cta: var(--accent); --on-cta: #04120a; --ink: #090c10; --media-bg: #f4f6f8; --card-shadow: none; --card-hover-shadow: 0 0 0 1px var(--accent), 0 22px 44px -22px var(--accent); --tint: color-mix(in srgb, var(--accent) 8%, var(--surface)); }
.theme-night .sf-header { background: color-mix(in srgb, var(--bg) 85%, transparent); }
.theme-night .sf-search { background: rgb(255 255 255 / .06); }
.theme-night .sf-search:focus-within { background: rgb(255 255 255 / .09); border-color: var(--accent); }
.theme-night .sf-card-price .now { color: var(--accent); } .theme-night .sf-card-price .now.sale { color: #ff7a6b; }
.theme-night .sf-more, .theme-night .sf-link { color: var(--accent); }
.theme-night .sf-sec-hero:is(.bg-none,.bg-primary) { background: radial-gradient(900px 420px at 82% -12%, color-mix(in srgb, var(--accent) 34%, transparent), transparent 62%), radial-gradient(600px 300px at 0% 110%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 60%), linear-gradient(180deg, #0f1419, #0b0f14); color: var(--text); }
.theme-night .sf-sec-hero:is(.bg-none,.bg-primary) .sf-btn-main { background: var(--accent); color: #04120a; }
.theme-night .sf-hero-copy h1 { text-shadow: 0 0 40px color-mix(in srgb, var(--accent) 30%, transparent); }
.theme-night .sf-perks { background: var(--surface); }
.theme-night .sf-filters a.active { background: var(--accent); color: #04120a; }
.theme-night .sf-sort select, .theme-night .sf-btn { color: var(--text); }
.theme-night .sf-btn-primary { color: #04120a; }
.theme-night .sf-checkout-form input, .theme-night .sf-checkout-form textarea { color: var(--text); }

/* Playful — round, bouncy, friendly */
.theme-playful { --card-border: 0 solid transparent; --card-shadow: 0 12px 30px -20px color-mix(in srgb, var(--primary) 60%, transparent); --card-hover-shadow: 0 22px 40px -22px color-mix(in srgb, var(--primary) 70%, transparent); --card-lift: -6px; --btn-radius: 999px; --h-weight: 750; --media-bg: #fff; }
.theme-playful .sf-card:hover, .theme-playful .sf-cat:hover { transform: translateY(-6px) rotate(-.6deg); }
.theme-playful .sf-nav a { border-radius: 999px; } .theme-playful .sf-nav a:hover { background: color-mix(in srgb, var(--accent) 45%, transparent); } .theme-playful .sf-nav a::after { display: none; }
.theme-playful .sf-badge { background: var(--accent); color: var(--primary); border-radius: 999px; padding: 4px 10px; }
.theme-playful .sf-badge-sale { background: var(--primary); color: #fff; }
.theme-playful .sf-card-media { margin: 8px 8px 0; border-radius: calc(var(--radius) - 6px); }
.theme-playful .sf-card-add { background: var(--accent); color: var(--primary); }
.theme-playful .sf-cart-btn { background: var(--primary); }
.theme-playful .sf-sec-hero:is(.bg-none,.bg-primary) { background: radial-gradient(360px 360px at 90% 20%, var(--accent), transparent 70%), radial-gradient(420px 420px at 8% 110%, color-mix(in srgb, var(--accent) 60%, transparent), transparent 70%), linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 60%, #ff7bb0)); border-radius: 0 0 44px 44px; }
.theme-playful .sf-sec-hero:is(.bg-none,.bg-primary)::before { display: none; }
.theme-playful .sf-feature-ico { border-radius: 999px; background: var(--accent); color: var(--primary); }
.theme-playful .sf-filters a.active { background: var(--accent); color: var(--primary); }
.theme-playful .sf-footer { border-radius: 36px 36px 0 0; }

/* Studio — gallery grid, mono details, hard shadows */
.theme-studio { --card-border: 1px solid var(--text); --card-shadow: none; --card-hover-shadow: 6px 6px 0 var(--text); --card-lift: -2px; --btn-radius: 0; --h-weight: 700; --h-track: -.03em; --cta: var(--text); --on-cta: var(--bg); }
.theme-studio .sf-header { background: var(--bg); border-bottom: 1px solid var(--text); backdrop-filter: none; }
.theme-studio .sf-eyebrow, .theme-studio .sf-card-price, .theme-studio .sf-card-cat, .theme-studio .sf-nav a, .theme-studio .sf-badge, .theme-studio .sf-crumbs { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.theme-studio .sf-nav a { font-size: .78rem; text-transform: lowercase; } .theme-studio .sf-nav a::after { height: 1px; }
.theme-studio .sf-search { border: 1px solid var(--text); background: transparent; border-radius: 0; }
.theme-studio .sf-cart-btn, .theme-studio .sf-card-add { border-radius: 0; }
.theme-studio .sf-btn { border: 1px solid var(--text); box-shadow: 4px 4px 0 var(--text); }
.theme-studio .sf-btn:hover { box-shadow: 2px 2px 0 var(--text); transform: translate(2px, 2px); }
.theme-studio .sf-btn-primary { box-shadow: 4px 4px 0 var(--accent); }
.theme-studio .sf-card-media { border-bottom: 1px solid var(--text); }
.theme-studio .sf-badge { background: var(--accent); color: var(--text); border-radius: 0; } .theme-studio .sf-badge-sale { background: var(--primary); color: #fff; }
.theme-studio .sf-sec-hero:is(.bg-none,.bg-primary) { background: linear-gradient(var(--primary), var(--primary)); }
.theme-studio .sf-sec-hero:is(.bg-none,.bg-primary)::before { opacity: 1; background-image: linear-gradient(rgb(255 255 255 / .09) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / .09) 1px, transparent 1px); background-size: 44px 44px; mask-image: none; -webkit-mask-image: none; }
.theme-studio .sf-sec-hero .sf-btn-main { background: var(--accent); color: var(--text); border: 1px solid var(--text); box-shadow: 4px 4px 0 var(--text); }
.theme-studio .sf-filters a.active { border-radius: 0; background: var(--text); color: var(--bg); }
.theme-studio .sf-footer { border-top: 1px solid var(--text); }
/* a hero never needs more than a screenful, however tall the window is */
.sf-sec-hero.hgt-md { min-height: min(52vh, 460px); }
.sf-sec-hero.hgt-lg { min-height: min(72vh, 620px); }
.sf-sec-hero.hgt-full { min-height: min(calc(100vh - 74px), 760px); }
.sf-sec-hero.hgt-sm { min-height: min(34vh, 300px); }
/* the dark theme's primary is near-black: icons and links that use it need the accent */
.theme-night .sf-perks-row .sf-ico, .theme-night .sf-assure .sf-ico, .theme-night .sf-section-head a, .theme-night .sf-card-initial { color: var(--accent); }
