    :root {
  --color-brand-950: #3e9796;
  --color-brand-900: #426892;
  --color-brand-800: #426892;
  --color-brand-700: #313f72;
  --color-primary-50: #DEE2E2;
  --color-primary-100: #CBD6D6;
  --color-primary-500: #48B0AF;
  --color-primary-600: #3e9796;
  --color-primary-700: #327A79;
  --color-primary: #3e9796;
  --color-primary-hover: #327A79;
  --color-primary-subtle: #DEE2E2;
  --color-accent-400: #FBCB7E;
  --color-accent-500: #f9b548;
  --color-accent-600: #F8A31C;
  --color-accent: #f9b548;
  --color-accent-hover: #F8A31C;
  --color-text-on-accent: #ffffff;
  --color-success: #6cb33f;
  --color-error: #e23b3b;
  --color-danger-500: #e23b3b;
  --color-warning: #d97706;
  --color-bg: #eef1f6;
  --color-canvas: #eef1f6;
  --color-surface: #ffffff;
  --color-ink: #426892;
  --color-muted: #6b7280;
  --color-line: #e5e8ef;
  --color-text-primary: #426892;
  --color-text-secondary: #6b7280;
  --color-text-inverse: #ffffff;
  --color-nav-bg: #fafafa;
  --color-nav-bg-scrolled: #426892;
  --color-nav-text: #54B9B8;
  --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-heading: "Plus Jakarta Sans", "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-display: "Plus Jakarta Sans", "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Inter", ui-sans-serif, system-ui, sans-serif;
  --radius-button: 6px;
  --radius-card: 8px;
  --radius-input: 6px;
  --radius-badge: 4px;
  --radius-modal: 12px;
  --space-section-sm: 48px;
  --space-section-md: 80px;
  --space-section-lg: 128px;
  --space-container-max: 1440px;
  --shadow-card-rest: 0 1px 3px 0 rgba(31,39,55,0.08);
  --shadow-card-hover: 0 10px 20px -3px rgba(31,39,55,0.10);
  --shadow-focus-primary: 0 0 0 3px rgba(53,81,160,0.25);
  --motion-ease: cubic-bezier(0,0,.2,1);
  --duration-fast: .15s;
  --duration-base: .3s;
  --duration-slow: .7s;
  --marquee-duration: 26s;
  --h-transform: uppercase;
  --h-letter-spacing: -.01em;
  --h-weight: 900;
  --h-line-height: .95;
  --h1-size: clamp(1.25rem, 2.2vw, 1.75rem);
  --h2-size: clamp(1.25rem, 2.2vw, 1.75rem);
  --h3-size: clamp(1.25rem, 2.2vw, 1.75rem);
  --font-size-base: 1rem;
  --line-height-base: 1.65;
  --btn-pad-y: .75rem;
  --btn-pad-x: 1.5rem;
  --btn-font-size: .8rem;
  --btn-weight: 600;
  --btn-letter-spacing: .07em;
  --btn-transform: uppercase;
  --grad-angle: 135deg;
  --hero-overlay-grad: linear-gradient(108deg, rgba(14,5,23,.90) 0%, rgba(28,8,44,.65) 48%, rgba(28,8,44,.22) 100%);
  --color-header-scrolled: rgba(14,5,23,.96);
  --color-header-scrolled-solid: rgba(14,5,23,.97);
  --scrollbar-thumb: #B882C2;
  --scrollbar-thumb-hover: #9B5CAF;
  --section-gap: clamp(2.75rem, 5vw, 4.75rem);
  --band-pad: clamp(3rem, 7vw, 6rem);
  --card-pad: .75rem .875rem 1rem;
  --card-pad-lg: 1.75rem;
  --color-accent-active: #E89208;
  --color-accent-subtle: #FFFFFF;
  --color-sale: #f9b548;
  --color-nav-text-scrolled: #efefef;
  --color-primary-active: #286160;
  --color-primary-subtle-hover: #CBD6D6;
  --color-border-focus: #3e9796;
  --color-badge-new: #3e9796;
  --h3-color: #f9b548;
  --h4-color: #3e9796;
  --h4-font: "Barlow Condensed", system-ui, sans-serif;
  --h5-font: Caveat, system-ui, sans-serif;
  --h4-size: clamp(1.2rem, 2vw, 1.6rem);
  --h5-size: clamp(1.25rem, 2.2vw, 1.75rem);
  --h6-size: clamp(1.2rem, 2vw, 1.6rem);
  --h5-transform: none;
  --h6-transform: none;
  --h6-color: #3e9796;
        /* --- engine defaults (overridden by token set above if present) --- */
        --radius-sm: var(--radius-badge, 2px);
        --radius: var(--radius-button, 4px);
        --radius-lg: var(--radius-card, 8px);
        --radius-xl: var(--radius-modal, 12px);
        --shadow-sm: var(--shadow-card-rest, 0 1px 3px rgba(28,4,35,.08));
        --shadow: 0 4px 6px -1px rgba(28,4,35,.08), 0 2px 4px -2px rgba(28,4,35,.04);
        --shadow-lg: var(--shadow-card-hover, 0 10px 20px -3px rgba(28,4,35,.10));
        --ring: var(--shadow-focus-primary, 0 0 0 3px rgba(107,31,123,.25));
        --grad-brand: linear-gradient(var(--grad-angle, 135deg), var(--color-brand-900, var(--color-nav-bg)), var(--color-primary-600, var(--color-primary)));
        --grad-accent: linear-gradient(var(--grad-angle, 135deg), var(--color-accent-500, var(--color-accent)), var(--color-accent-600, var(--color-accent-hover)));
        --container: var(--space-container-max, 90rem);
        --ease: var(--motion-ease, cubic-bezier(0,0,.2,1));
        --dur-fast: var(--duration-fast, .15s);
        --dur-base: var(--duration-base, .3s);
        --dur-slow: var(--duration-slow, .7s);
        --content-width: var(--container, 90rem);
        --content-width-narrow: 48rem;
        /* W0 (Wave 2) — motion množitelj: W1 motionLevel ga SAMO zmanjšuje (subtle .6, off 0);
           variante gibanja računajo trajanja kot calc(var(--dur-*) * var(--motion-scale)). */
        --motion-scale: var(--motion-level, 1);
        --sf-reveal: fade-up;
        --sf-card-motion: rise-stagger;
        --sf-search-suggest: rich-panel;
        --header-scrolled-bg: var(--color-nav-bg-scrolled, var(--color-header-scrolled, rgba(14,5,23,.96)));
        --hero-overlay: var(--hero-overlay-grad, linear-gradient(108deg, rgba(14,5,23,.90) 0%, rgba(28,8,44,.65) 48%, rgba(28,8,44,.22) 100%));
    }

    * { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
    body {
        background: var(--color-canvas); color: var(--color-ink);
        font-family: var(--font-sans); line-height: var(--line-height-base, 1.65);
        font-size: var(--font-size-base, 1rem); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
        /* `clip` (ne `hidden`): reže vodoravni preliv (full-bleed trik) ENAKO kot hidden, a NE
           ustvari drsnega konteksta — sicer overflow-y postane auto in telo prevzame drsenje,
           kar POKVARI position:sticky (npr. drsni napis se ne prilepi na vrh). */
        overflow-x: clip;
    }
    a { color: var(--color-primary-600); text-decoration: none; }
    img { max-width: 100%; display: block; }
    ::selection { background: var(--color-primary-500); color: #fff; }

    .sf-container { max-width: var(--container); margin: 0 auto; padding: 0 1.5rem; }

    h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); color: var(--color-brand-900); margin: 0 0 .5rem; line-height: var(--h-line-height, 1.05); letter-spacing: var(--h-letter-spacing, .03em); font-weight: var(--h-weight, 800); text-transform: var(--h-transform, uppercase); }
    h1 { font-size: var(--h1-size, clamp(2.5rem, 6vw, 4.5rem)); color: var(--h1-color, var(--color-brand-900)); font-family: var(--h1-font, var(--font-heading)); }
    h2 { font-size: var(--h2-size, clamp(1.75rem, 3.5vw, 2.75rem)); color: var(--h2-color, var(--color-brand-900)); font-family: var(--h2-font, var(--font-heading)); }
    h3 { font-size: var(--h3-size, clamp(1.2rem, 2vw, 1.6rem)); color: var(--h3-color, var(--color-brand-900)); font-family: var(--h3-font, var(--font-heading)); }
    h4 { font-size: var(--h4-size, clamp(1.05rem, 1.6vw, 1.3rem)); color: var(--h4-color, var(--color-brand-900)); font-family: var(--h4-font, var(--font-heading)); }
    h5 { font-size: var(--h5-size, 1.1rem); color: var(--h5-color, var(--color-brand-900)); font-family: var(--h5-font, var(--font-heading)); }
    h6 { font-size: var(--h6-size, .95rem); color: var(--h6-color, var(--color-brand-900)); font-family: var(--h6-font, var(--font-heading)); }
    h1 { text-transform: var(--h1-transform, var(--h-transform, uppercase)); border-left: var(--h1-bar-w, 0px) solid var(--h1-bar-color, currentColor); padding-left: var(--h1-bar-pad, 0px); }
    h1::after { content: ""; display: var(--h1-under-display, none); width: var(--h1-under-w, 2.5rem); height: var(--h1-under-h, 3px); background: var(--h1-under-color, currentColor); margin-top: .5rem; border-radius: 999px; }
    h2 { text-transform: var(--h2-transform, var(--h-transform, uppercase)); border-left: var(--h2-bar-w, 0px) solid var(--h2-bar-color, currentColor); padding-left: var(--h2-bar-pad, 0px); }
    h2::after { content: ""; display: var(--h2-under-display, none); width: var(--h2-under-w, 2.5rem); height: var(--h2-under-h, 3px); background: var(--h2-under-color, currentColor); margin-top: .5rem; border-radius: 999px; }
    h3 { text-transform: var(--h3-transform, var(--h-transform, uppercase)); border-left: var(--h3-bar-w, 0px) solid var(--h3-bar-color, currentColor); padding-left: var(--h3-bar-pad, 0px); }
    h3::after { content: ""; display: var(--h3-under-display, none); width: var(--h3-under-w, 2.5rem); height: var(--h3-under-h, 3px); background: var(--h3-under-color, currentColor); margin-top: .5rem; border-radius: 999px; }
    h4 { text-transform: var(--h4-transform, var(--h-transform, uppercase)); border-left: var(--h4-bar-w, 0px) solid var(--h4-bar-color, currentColor); padding-left: var(--h4-bar-pad, 0px); }
    h4::after { content: ""; display: var(--h4-under-display, none); width: var(--h4-under-w, 2.5rem); height: var(--h4-under-h, 3px); background: var(--h4-under-color, currentColor); margin-top: .5rem; border-radius: 999px; }
    h5 { text-transform: var(--h5-transform, var(--h-transform, uppercase)); border-left: var(--h5-bar-w, 0px) solid var(--h5-bar-color, currentColor); padding-left: var(--h5-bar-pad, 0px); }
    h5::after { content: ""; display: var(--h5-under-display, none); width: var(--h5-under-w, 2.5rem); height: var(--h5-under-h, 3px); background: var(--h5-under-color, currentColor); margin-top: .5rem; border-radius: 999px; }
    h6 { text-transform: var(--h6-transform, var(--h-transform, uppercase)); border-left: var(--h6-bar-w, 0px) solid var(--h6-bar-color, currentColor); padding-left: var(--h6-bar-pad, 0px); }
    h6::after { content: ""; display: var(--h6-under-display, none); width: var(--h6-under-w, 2.5rem); height: var(--h6-under-h, 3px); background: var(--h6-under-color, currentColor); margin-top: .5rem; border-radius: 999px; }
    p { margin: .5rem 0; }
    .sf-eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--color-accent-500); }
    .sf-eyebrow::before { content: ""; display: block; width: 1.5rem; height: 2px; background: currentColor; }
    .sf-lead { font-size: 1.05rem; color: var(--color-muted); max-width: 42rem; font-family: var(--font-sans); font-weight: 400; text-transform: none; letter-spacing: 0; }
    .sf-grad-text { color: var(--color-accent-500); }

    /* ============ announcement bar ============ */
    .sf-announce { background: var(--color-accent-500); color: #fff; font-size: .72rem; text-align: center; padding: .45rem 1rem; letter-spacing: .04em; font-family: var(--font-sans); font-weight: 500; }
    .sf-announce strong { font-weight: 700; }

    .sh-scope { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: 0 0 .9rem; font-size: .85rem; color: var(--color-muted, #857597); }
    .sh-scope-cat { font-weight: 600; color: var(--color-ink, #1a1128); background: var(--color-canvas, rgba(0,0,0,.05)); padding: .2rem .6rem; border-radius: 999px; }
    .sh-scope-clear { color: var(--color-accent-600, var(--color-accent-500)); text-decoration: none; font-weight: 500; }
    .sh-scope-clear:hover { text-decoration: underline; }

    /* ============ header ============ */
    .sf-chrome-row { position: relative; }
    /* transparent variant — fades in on scroll (default for hero-over-image pages) */
    .sf-header { position: fixed; top: 0; left: 0; right: 0; z-index: 200; background: transparent; transition: background .35s var(--ease), box-shadow .35s var(--ease); }
    .sf-header.is-stuck { background: var(--header-scrolled-bg); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 2px 28px rgba(0,0,0,.4); }
    /* solid variant — always dark (e.g. Grašca: brand-900 always visible) */
    .sf-header--solid { background: var(--color-nav-bg, var(--color-brand-900)) !important; }
    .sf-header--solid.is-stuck { background: var(--color-nav-bg-scrolled, var(--color-header-scrolled-solid, rgba(14,5,23,.97))) !important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 2px 28px rgba(0,0,0,.4); }

    /* ── configured-header settings (position × cover), set by the Header editor ──
       Four explicit combinations so behaviour never depends on the base default. */
    /* FIXED + COVER: pinned, transparent over the first block (banner shows through), darkens on scroll */
    .sf-header--fixed.sf-header--over   { position: fixed;    background: transparent; }
    /* FIXED + PUSH: pinned solid bar; a spacer below offsets the page content */
    .sf-header--fixed.sf-header--push   { position: fixed;    background: var(--color-nav-bg, var(--color-brand-900)); }
    /* SCROLL + COVER: transparent over the banner, but scrolls away with the page */
    .sf-header--scroll.sf-header--over  { position: absolute; background: transparent; }
    /* SCROLL + PUSH: solid bar in normal flow, scrolls away with the page */
    .sf-header--scroll.sf-header--push  { position: relative; background: var(--color-nav-bg, var(--color-brand-900)); }
    /* darken/elevate the transparent "cover" header once scrolled (push variants are already solid) */
    .sf-header--over.is-stuck  { background: var(--header-scrolled-bg); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 2px 28px rgba(0,0,0,.4); }
    /* push variant je ob mirovanju že poln (--color-nav-bg); ob drsenju preide na scrolled barvo */
    .sf-header--push.is-stuck  { background: var(--color-nav-bg-scrolled, var(--color-nav-bg, var(--color-brand-900))); box-shadow: 0 2px 28px rgba(0,0,0,.4); }
    /* spacer keeps content clear of a fixed+push header (which is out of flow).
       --header-h is set by the storefront script; the fallback covers no-JS / other pages. */
    .sf-header-spacer { height: var(--header-h, 4.75rem); }

    /* ── Layer 3 (F3, docs/structural-presets.md): lupina glave + obnašanje ob drsenju ──
       Modifikatorji pridejo iz _HeaderZone.cshtml (tema, ne kroma); classic/solid ne dodata
       ničesar (privzeti markup nespremenjen). Kompozicija vrstic je stvar builderja. */
    /* pill — plavajoča zaobljena školjka; steklen videz deluje nad pasico in nad vsebino */
    .sf-header--v-pill {
        left: max(1rem, calc((100% - var(--container, 90rem)) / 2));
        right: max(1rem, calc((100% - var(--container, 90rem)) / 2));
        top: .75rem;
        border-radius: var(--radius-header-pill, 18px);
        background: var(--header-scrolled-bg);
        backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
        box-shadow: 0 6px 24px rgba(0,0,0,.22);
    }
    /* scroll+push je position:relative — inseti ne primejo, enak učinek dosežejo margine */
    .sf-header--scroll.sf-header--push.sf-header--v-pill {
        margin: .75rem auto 0; max-width: calc(var(--container, 90rem) - 2rem); width: auto;
    }
    .sf-header--v-pill .sf-search-panel { border-radius: 0 0 var(--radius-header-pill, 18px) var(--radius-header-pill, 18px); overflow: hidden; }
    .sf-header--v-pill + .sf-header-spacer { height: calc(var(--header-h, 4.75rem) + .75rem); }
    /* autohide — skrije se ob drsenju navzdol, prikaže ob drsenju navzgor (JS spodaj) */
    .sf-header--b-autohide { transition: transform .3s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease); }
    .sf-header--b-autohide.is-hidden { transform: translateY(-130%); }
    /* compact — ob drsenju se vrstice stisnejo (inline padding vrstic prepiše !important) */
    .sf-header--b-compact.is-stuck { font-size: .95em; }
    .sf-header--b-compact.is-stuck .sf-chrome-row > div > div { padding-top: 5px !important; padding-bottom: 5px !important; }
    .sf-header .sf-container { display: flex; align-items: center; gap: 1.5rem; padding-top: .85rem; padding-bottom: .85rem; }
    .sf-logo { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-heading); font-size: 1.4rem; font-weight: 900; color: #fff; letter-spacing: .04em; text-transform: uppercase; }
    .sf-logo-mark { display: none; }
    /* Preklop logotipa ob drsenju: pri mirovanju kaže --rest, ko se glava prilepi (.is-stuck)
       in obarva, kaže --scrolled (npr. svetel logotip na temni drsni glavi). Aktivno le, ko sta
       naložena oba (razred sf-logo--swap). */
    .sf-logo--swap .sf-logo-img--scrolled { display: none; }
    .sf-header.is-stuck .sf-logo--swap .sf-logo-img--rest { display: none; }
    .sf-header.is-stuck .sf-logo--swap .sf-logo-img--scrolled { display: inline-block; }
    .sf-nav { display: flex; gap: 2px; margin-left: .5rem; font-size: .75rem; font-weight: 600; }
    .sf-nav > a, .sf-nav .sf-nav-toggle { color: rgba(255,255,255,.72); padding: .5rem .65rem; border-radius: var(--radius); transition: background .15s var(--ease), color .15s var(--ease); display: inline-block; letter-spacing: .05em; text-transform: uppercase; font-family: var(--font-sans); }
    .sf-nav > a:hover, .sf-nav .sf-nav-toggle:hover { background: rgba(255,255,255,.08); color: #fff; }
    .sf-header-actions { margin-left: auto; display: flex; align-items: center; gap: .25rem; }
    .sf-iconbtn { position: relative; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 50%; color: rgba(255,255,255,.8); background: transparent; border: 0; cursor: pointer; transition: background .15s var(--ease); }
    .sf-iconbtn:hover { background: rgba(255,255,255,.1); }
    .sf-iconbtn svg { width: 1.15rem; height: 1.15rem; }
    .sf-badge { position: absolute; top: .2rem; right: .2rem; min-width: 1.1rem; height: 1.1rem; padding: 0 .2rem; border-radius: 1rem; background: var(--color-accent-500); color: #fff; font-size: .62rem; font-weight: 800; display: grid; place-items: center; }
    .sf-search { display: flex; align-items: center; gap: .5rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius-lg); padding: .45rem .85rem; min-width: 14rem; color: rgba(255,255,255,.5); transition: border-color .2s var(--ease); }
    .sf-search:focus-within { border-color: rgba(255,255,255,.35); }
    .sf-search input { border: 0; outline: 0; background: transparent; font: inherit; font-size: .88rem; color: #fff; width: 100%; }
    .sf-search input::placeholder { color: rgba(255,255,255,.45); }
    .sf-search svg { width: 1rem; height: 1rem; flex: none; }

    /* ── sf-nav-lnk: unified nav link — same style for <a> and <span> ── */
    .sf-nav-lnk {
        display: inline-flex; align-items: center; gap: .3rem;
        color: var(--color-ink); padding: .5rem .75rem; border-radius: .6rem;
        white-space: nowrap; cursor: pointer; font-weight: 600; font-size: inherit;
        transition: background .2s var(--ease), color .2s var(--ease);
    }
    .sf-nav-lnk:hover, .sf-mega-item:hover > .sf-nav-lnk {
        background: var(--color-primary-50); color: var(--color-primary-700);
    }
    /* chrome-row header is dark — nav links and icon buttons in white */
    /* nav-lnk barva/velikost/debelina berejo blok-spremenljivke (chromeNav »Videz«); privzete = tema */
    .sf-chrome-row .sf-nav-lnk { color: var(--nav-link-color, color-mix(in srgb, var(--color-nav-text, #fff) 72%, transparent)); font-size: var(--nav-font-size, inherit); font-weight: var(--nav-font-weight, 600); }
    .sf-chrome-row .sf-nav-lnk:hover, .sf-chrome-row .sf-mega-item:hover > .sf-nav-lnk {
        background: var(--nav-link-hover-bg, rgba(255,255,255,.08)); color: var(--nav-link-hover-color, var(--color-nav-text, #fff));
    }
    .sf-chrome-row .sf-iconbtn { color: color-mix(in srgb, var(--color-nav-text, #fff) 80%, transparent); }
    .sf-chrome-row .sf-iconbtn:hover { background: rgba(255,255,255,.1); }

    /* ── Builder/Puck glava (nima .sf-chrome-row): TOP-LEVEL nav povezave naj tudi
       sledijo temo žetonu --color-nav-text, da nastavitve »Navigacija« veljajo tudi tu.
       Ciljamo LE neposredne otroke .sf-nav-ovf (povezave + mega sprožilci + »več« gumb) —
       elementi v spustnem .sf-mega-panel (.sf-mega-lnk, na svetli površini) ostanejo ink.
       Blok-spremenljivka --nav-link-color (chromeNav »Videz«) še vedno prevlada, če je nastavljena. */
    .sf-header .sf-nav-ovf > a.sf-nav-lnk,
    .sf-header .sf-nav-ovf > .sf-mega-item > .sf-nav-lnk,
    .sf-header .sf-nav-ovf > .sf-ovf-more {
        color: var(--nav-link-color, var(--color-nav-text, var(--color-ink)));
    }
    .sf-header .sf-nav-ovf > a.sf-nav-lnk:hover,
    .sf-header .sf-nav-ovf > .sf-mega-item:hover > .sf-nav-lnk,
    .sf-header .sf-nav-ovf > .sf-ovf-more:hover {
        color: var(--nav-link-hover-color, var(--color-nav-text, var(--color-ink)));
        background: var(--nav-link-hover-bg, color-mix(in srgb, var(--color-nav-text, #000) 14%, transparent));
    }
    /* ── Ločena barva povezav/ikon za DRSNO (scrolled) glavo ──
       Ob mirovanju glava uporablja --color-nav-text; ko se prilepi (.is-stuck) in ozadje
       preide na --color-nav-bg-scrolled, povezave in ikone preidejo na --color-nav-text-scrolled
       (fallback = --color-nav-text, torej brez spremembe, dokler urednik ne nastavi svoje barve).
       Velja za klasično (.sf-chrome-row) IN builder glavo (.sf-nav-ovf). */
    .sf-header.is-stuck .sf-chrome-row .sf-nav-lnk,
    .sf-header.is-stuck .sf-nav-ovf > a.sf-nav-lnk,
    .sf-header.is-stuck .sf-nav-ovf > .sf-mega-item > .sf-nav-lnk,
    .sf-header.is-stuck .sf-nav-ovf > .sf-ovf-more {
        color: var(--nav-link-color-scrolled, var(--color-nav-text-scrolled, var(--color-nav-text, var(--color-ink))));
    }
    .sf-header.is-stuck .sf-chrome-row .sf-iconbtn,
    .sf-header.is-stuck .sf-iconbtn,
    .sf-header.is-stuck .sf-chrome-row .sf-hb-toggle {
        color: var(--color-nav-text-scrolled, var(--color-nav-text, #fff));
    }
    /* Barva ikon glave (search/račun/želje/primerjava/košarica) — blok »Ikone« postavi
       --nav-icon / --nav-icon-scrolled na vsebnik. Pri mirovanju --nav-icon (fallback nav-text),
       ob drsenju --nav-icon-scrolled (fallback nav-text-scrolled → nav-icon → nav-text).
       Bolj specifično in kasneje od splošnega is-stuck pravila zgoraj, zato prevlada za ta blok. */
    .sf-header-actions .sf-iconbtn {
        color: var(--nav-icon, var(--color-nav-text, #fff));
    }
    .sf-header.is-stuck .sf-header-actions .sf-iconbtn {
        color: var(--nav-icon-scrolled, var(--color-nav-text-scrolled, var(--nav-icon, var(--color-nav-text, #fff))));
    }
    /* Hamburger (.sf-hb--auto) v builder glavi ni v .sf-chrome-row (postavljen je v .sf-column), zato
       ga is-stuck prebarvanje ni doseglo → na obarvani drsni glavi je ostal v barvi mirovanja in se
       ni videl (npr. na mobilnem). Priklopi ga na isto verigo kot ostale ikone: ob drsenju
       --nav-icon-scrolled → --color-nav-text-scrolled, torej ga urednik nastavi z istim gumbom. */
    .sf-header.is-stuck .sf-hb-toggle {
        color: var(--nav-icon-scrolled, var(--color-nav-text-scrolled, var(--nav-icon, var(--color-nav-text, #fff))));
    }
    .sf-caret { width: .5rem; height: .32rem; opacity: .5; flex: none; transition: transform .2s var(--ease); }
    /* menu-item icon (lucide via CSS mask; inherits text colour) */
    .sf-ico { display: inline-block; width: 1.05em; height: 1.05em; flex: none; background: currentColor; vertical-align: -.15em; margin-right: .4em; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }

    /* ============ hamburger nav (chromeNav display=hamburger) ============ */
    .sf-hb { position: relative; display: inline-flex; }
    .sf-hb-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: .8rem; background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; cursor: pointer; transition: background .2s var(--ease), transform .15s var(--ease); }
    /* v temni/barvni chrome vrstici črtice sledijo barvi nav povezav (kot .sf-chrome-row .sf-iconbtn) */
    .sf-chrome-row .sf-hb-toggle { color: var(--nav-link-color, color-mix(in srgb, var(--color-nav-text, #fff) 85%, transparent)); }
    .sf-hb-toggle:hover { background: color-mix(in srgb, currentColor 18%, transparent); }
    .sf-hb-toggle:active { transform: scale(.92); }
    .sf-hb-toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
    .sf-hb-bars { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 5px; }
    .sf-hb-bars span { display: block; width: 20px; height: 2.5px; background: currentColor; border-radius: 99px; transition: transform .25s var(--ease), opacity .2s, width .25s var(--ease); }
    .sf-hb-bars span:nth-child(2) { width: 13px; }
    .sf-hb-toggle[aria-expanded="true"] .sf-hb-bars span { width: 20px; }
    .sf-hb-scrim { position: fixed; inset: 0; background: rgba(15,23,42,.45); z-index: 200; opacity: 0; pointer-events: none; transition: opacity .3s ease; }
    .sf-hb-scrim.is-open { opacity: 1; pointer-events: auto; }
    .sf-hb-drawer { position: fixed; top: 0; left: 0; bottom: 0; width: min(360px, 86vw); background: var(--color-surface); z-index: 201; box-shadow: var(--shadow-lg); transform: translateX(-101%); transition: transform .3s cubic-bezier(.22,.61,.36,1); display: flex; flex-direction: column; }
    .sf-hb-drawer.is-open { transform: translateX(0); }
    .sf-hb-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--color-line); }
    .sf-hb-title { font-family: var(--font-heading); font-weight: 800; color: var(--color-brand-900); font-size: 1.1rem; }
    .sf-hb-close { border: 0; background: transparent; font-size: 1.7rem; line-height: 1; color: var(--color-muted); cursor: pointer; width: 2.2rem; height: 2.2rem; border-radius: .5rem; }
    .sf-hb-close:hover { background: var(--color-canvas); color: var(--color-ink); }
    .sf-hb-title { flex: 1; text-align: center; }
    .sf-hb-back { border: 0; background: transparent; cursor: pointer; color: var(--color-muted); width: 2rem; height: 2rem; border-radius: .5rem; display: inline-flex; align-items: center; justify-content: center; }
    .sf-hb-back svg { width: .55rem; height: .9rem; }
    .sf-hb-back:hover { background: var(--color-canvas); color: var(--color-ink); }
    .sf-hb-back[hidden] { display: none; }
    /* drill-down panel stack */
    .sf-hb-panels { position: relative; flex: 1; overflow: hidden; }
    .sf-hb-panel { position: absolute; inset: 0; overflow-y: auto; padding: .5rem; background: var(--color-surface); transform: translateX(100%); transition: transform .3s cubic-bezier(.22,.61,.36,1); }
    .sf-hb-panel.is-active { transform: translateX(0); }
    .sf-hb-panel.is-prev { transform: translateX(-100%); }
    .sf-hb-lnk { display: flex; align-items: center; gap: .6rem; width: 100%; text-align: left; padding: .85rem .9rem; border: 0; background: transparent; border-radius: .6rem; color: var(--color-ink); font: inherit; font-weight: 600; cursor: pointer; }
    .sf-hb-lnk:hover { background: var(--color-primary-50); color: var(--color-primary-700); }
    .sf-hb-lnk--desc { align-items: flex-start; }
    .sf-hb-lnk-c { display: flex; flex-direction: column; gap: .12rem; min-width: 0; }
    .sf-hb-desc { font-size: .78rem; font-weight: 400; line-height: 1.3; color: var(--color-muted); white-space: normal; }
    .sf-hb-grow { flex: 1; }
    .sf-hb-fwd { width: .42rem; height: .7rem; margin-left: auto; opacity: .4; flex: none; }
    .sf-hb-all { color: var(--color-primary-700); font-weight: 700; border-bottom: 1px solid var(--color-line); border-radius: 0; margin-bottom: .25rem; }
    .sf-hb-mega { padding: .25rem .5rem 1rem; }
    .sf-hb-mega > * + * { margin-top: 1rem; }
    /* auto-hamburger (chromeNav mobile=hamburger, samo v glavi): na namizju je gumb skrit in
       velja inline <nav>; na ≤760px se inline nav umakne, hamburger + drsni predal prevzameta. */
    .sf-hb--auto { display: none; }
    @media (max-width: 760px) {
        .sf-hb--auto { display: inline-flex; }
        .sf-nav--collapse { display: none !important; }
        /* Na telefonu hamburger stoji v isti vrsti kot iskanje, račun, priljubljeni in košarica.
           S svojim ozadjem, zaobljenim kvadratom in 2.75rem je edini, ki štrli iz vrste krogcev,
           zato tu prevzame slog .sf-iconbtn. Na namizju ostane, kot je — tam stoji sam. */
        .sf-hb-toggle { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: transparent; }
        .sf-hb-toggle:hover { background: color-mix(in srgb, currentColor 12%, transparent); }
        /* Črtice na širino ikon v vrsti (1.15rem). Le širina — razmiki ostanejo, da se ob
           odprtem predalu prelijejo v X po nespremenjeni geometriji. */
        .sf-hb-bars span { width: 1.15rem; }
        .sf-hb-bars span:nth-child(2) { width: .75rem; }
    }
    /* Kategorije v mobilnem meniju: [data-scat-mob] je le inertni vir markupa (JS ga izprazni
       v predal navigacije), zato ostane skrit. Fallback: če predala ni, naj spustni meni
       kategorij ostane uporaben tudi na ≤760px (premaga .sf-scat{display:none} iz sf-scat.js). */
    .sf-catmob { display: none !important; }
    @media (max-width: 760px) { .sf-scat--mobfallback { display: flex !important; } }
    /* odprt predal: hamburger črtice se prelijejo v X */
    .sf-hb-toggle[aria-expanded="true"] .sf-hb-bars span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
    .sf-hb-toggle[aria-expanded="true"] .sf-hb-bars span:nth-child(2) { opacity: 0; }
    .sf-hb-toggle[aria-expanded="true"] .sf-hb-bars span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
    /* postopni prikaz vrstic aktivnega panela (ob odprtju in ob vsakem drill-down/nazaj) */
    @keyframes sfHbRow { from { opacity: 0; transform: translateX(-.55rem); } to { opacity: 1; transform: none; } }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > * { animation: sfHbRow .32s var(--ease) backwards; }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > *:nth-child(2) { animation-delay: .04s; }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > *:nth-child(3) { animation-delay: .08s; }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > *:nth-child(4) { animation-delay: .12s; }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > *:nth-child(5) { animation-delay: .16s; }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > *:nth-child(6) { animation-delay: .2s; }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > *:nth-child(7) { animation-delay: .24s; }
    .sf-hb-drawer.is-open .sf-hb-panel.is-active > *:nth-child(n+8) { animation-delay: .28s; }
    @media (prefers-reduced-motion: reduce) {
        .sf-hb-drawer, .sf-hb-panel { transition: none; }
        .sf-hb-drawer.is-open .sf-hb-panel.is-active > * { animation: none; }
    }
    .sf-mega-item:not(.no-hover):hover .sf-caret, .sf-mega-item.is-open .sf-caret { transform: rotate(180deg); }
    /* nav trigger as a <button> (group buttons + click-to-open caret) — strip native chrome */
    button.sf-nav-lnk { background: transparent; border: 0; }
    .sf-mega-trigger { font-family: inherit; }
    .sf-mega-caret {
        background: transparent; border: 0; cursor: pointer; color: inherit;
        display: inline-flex; align-items: center; padding: .5rem .35rem; margin-left: -.4rem;
        border-radius: .5rem; transition: background .2s var(--ease);
    }
    .sf-mega-caret:hover { background: var(--color-primary-50); }
    .sf-chrome-row .sf-mega-caret { color: var(--nav-link-color, var(--color-primary-600)); }
    .sf-chrome-row .sf-mega-caret:hover { background: rgba(255,255,255,.12); }

    /* ── mega-menu (siteHeader block, full-width panel) ── */
    /* sf-mega-item must be position:static so panel anchors to sf-header (position:sticky) */
    .sf-mega-item { display: inline-flex; align-items: center; }
    .sf-mega-panel {
        position: absolute; left: 0; right: 0; top: 100%;
        background: var(--color-surface);
        border-top: 1px solid var(--color-line);
        border-bottom: 1px solid var(--color-line);
        box-shadow: var(--shadow-lg);
        z-index: 50; padding: 1.25rem 0 1.75rem;
        opacity: 0; visibility: hidden;
        transform: translateY(-.35rem);
        /* visibility delay on hide so mouse can cross the gap between trigger and panel */
        transition: opacity .18s var(--ease), transform .18s var(--ease), visibility 0s .35s;
    }
    .sf-mega-item:not(.no-hover):hover .sf-mega-panel, .sf-mega-item.is-open .sf-mega-panel {
        opacity: 1; visibility: visible; transform: translateY(0);
        transition: opacity .18s var(--ease), transform .18s var(--ease), visibility 0s 0s;
    }
    .sf-mega-inner {
        max-width: var(--container); margin: 0 auto; padding: 0 1.5rem;
        display: flex; flex-wrap: wrap; gap: .2rem 3rem; align-items: flex-start;
    }
    /* rich block-document mega content renders in normal block flow (columns/sections lay out themselves) */
    .sf-mega-inner--doc { display: block; }
    .sf-mega-inner--doc > * + * { margin-top: 1rem; }
    /* Predstavitev kategorije v panelu (chromeNav submenuInfo=on): povezave levo,
       kartica kategorije (markup _ScatInfo, CSS iz sf-scat.js) desno. */
    .sf-mega-inner--winfo { flex-wrap: nowrap; gap: 2rem; }
    .sf-mega-inner--winfo .sf-mega-links { display: flex; flex-wrap: wrap; gap: .2rem 3rem; align-items: flex-start; flex: 1 1 auto; min-width: 0; }
    .sf-mega-inner--winfo .sf-scat-info { flex: none; margin-left: auto; border-left: 1px solid var(--color-line); padding-left: 1.6rem; }
    @media (max-width: 900px) { .sf-mega-inner--winfo .sf-scat-info { display: none; } }
    /* flat link in the panel (leaf node) */
    .sf-mega-lnk {
        display: flex; align-items: center; gap: .4rem;
        min-width: 11rem; max-width: 18rem;
        padding: .5rem .75rem; border-radius: .5rem;
        border-left: 2.5px solid transparent;
        color: var(--color-ink); font-size: .9rem; font-weight: 500;
        transition: background .15s, color .15s, border-color .15s; cursor: pointer;
    }
    .sf-mega-lnk:hover { background: var(--color-primary-50); color: var(--color-primary-700); border-left-color: var(--color-primary-400); }
    /* group heading inside panel (L2 item that has children) */
    .sf-mega-lnk--head { font-weight: 700; color: var(--color-brand-900); }
    a.sf-mega-lnk--head::after { content: " →"; font-size: .78em; opacity: .4; margin-left: auto; padding-left: .35rem; }
    /* group container */
    .sf-mega-group { display: flex; flex-direction: column; min-width: 11rem; max-width: 18rem; margin-bottom: .35rem; }
    /* grandchild link (L3) */
    .sf-mega-sub {
        display: block; padding: .28rem .75rem .28rem 1.5rem;
        color: var(--color-muted); font-size: .85rem; font-weight: 500;
        border-radius: .4rem; transition: color .15s, background .15s;
    }
    .sf-mega-sub:hover { color: var(--color-primary-700); background: var(--color-primary-50); }
    /* Opis (mega-menu caption): naslov + drobni podnapis pod njim */
    .sf-mega-lnk--desc { align-items: flex-start; }
    .sf-mega-lnk-c { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
    .sf-mega-lnk-t { font-weight: inherit; }
    .sf-mega-desc {
        font-size: .76rem; font-weight: 400; line-height: 1.3;
        color: var(--color-muted); white-space: normal;
    }
    .sf-mega-sub--desc { padding-top: .34rem; padding-bottom: .34rem; }
    .sf-mega-sub--desc .sf-mega-desc { margin-top: .05rem; }
    a.sf-mega-lnk--head.sf-mega-lnk--desc::after { align-self: center; }

    .sf-mega-panel--v-full-bar .sf-mega-inner { max-width: none; justify-content: space-between; gap: .2rem 2rem; }
    .sf-mega-panel--v-grid-cols .sf-mega-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .35rem 2rem; align-items: start; }
    .sf-mega-panel--v-grid-cols .sf-mega-group, .sf-mega-panel--v-grid-cols .sf-mega-lnk { max-width: none; }
    .sf-mega-item:has(.sf-mega-panel--v-compact) { position: relative; }
    .sf-mega-panel--v-compact { left: 0; right: auto; width: max-content; min-width: 15rem; max-width: min(38rem, 92vw); border: 1px solid var(--color-line); border-radius: 0 0 var(--radius-lg, 8px) var(--radius-lg, 8px); }
    .sf-mega-panel--v-compact .sf-mega-inner { max-width: none; margin: 0; padding: .4rem .5rem; flex-direction: column; flex-wrap: nowrap; gap: 0; }
    .sf-mega-panel--v-compact .sf-mega-group { max-width: none; min-width: 0; }
    .sf-header .sf-nav-ovf--v-more-menu { flex-wrap: nowrap !important; overflow: hidden; max-width: 100%; }
    /* Stolpec z nav se MORA krčiti z vrstico (inline flex:0 0 auto / grid min-width:auto sicer
       zraste do vsebine) — brez tega meritev nima prave meje in vrstica steče čez rob okna. */
    .sf-header .sf-chrome-row div:has(> .sf-nav-ovf--v-more-menu) { flex: 1 1 auto !important; min-width: 0; max-width: 100%; }
    .sf-header .sf-nav-ovf--v-more-menu .sf-nav-lnk { white-space: nowrap; }
    .sf-header .sf-nav-ovf--v-more-menu > .sf-ovf-hide { display: none !important; }
    .sf-ovf-more { display: none; align-items: center; justify-content: center; flex: 0 0 auto;
        width: 2.2rem; height: 2.2rem; border: 0; border-radius: .6rem; background: transparent;
        color: var(--nav-link-color, rgba(255,255,255,.72)); cursor: pointer; }
    .sf-ovf-more:hover { background: var(--nav-link-hover-bg, rgba(255,255,255,.08)); color: var(--nav-link-hover-color, #fff); }
    .sf-ovf-more.is-on { display: inline-flex; }
    .sf-ovf-more svg { width: 20px; height: 20px; }
    .sf-ovf-scrim { position: fixed; inset: 0; background: rgba(10,4,16,.45); opacity: 0; pointer-events: none; transition: opacity .25s var(--ease); z-index: 200; }
    .sf-ovf-scrim.is-open { opacity: 1; pointer-events: auto; }
    .sf-ovf-panel { position: fixed; top: 0; right: 0; bottom: 0; width: min(19rem, 86vw); z-index: 201; /* nad glavo (200), kot sf-hb predal */
        background: var(--color-surface, #fff); color: var(--color-ink, #1a1a1a); box-shadow: -8px 0 30px rgba(0,0,0,.25);
        transform: translateX(102%); transition: transform calc(var(--dur-base, .3s) * var(--motion-scale, 1)) var(--ease);
        display: flex; flex-direction: column; overflow-y: auto; padding: .9rem .9rem calc(.9rem + env(safe-area-inset-bottom, 0px)); }
    .sf-ovf-panel.is-open { transform: none; }
    .sf-ovf-head { display: flex; align-items: center; justify-content: space-between; padding: 0 .35rem .6rem; border-bottom: 1px solid var(--color-line, #eee); margin-bottom: .5rem; }
    .sf-ovf-title { font-weight: 700; font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; }
    .sf-ovf-close { border: 0; background: transparent; color: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer; padding: .25rem .45rem; border-radius: .5rem; }
    .sf-ovf-close:hover { background: var(--color-primary-50, rgba(0,0,0,.05)); }
    .sf-ovf-list a { display: block; padding: .55rem .6rem; border-radius: .55rem; color: inherit; text-decoration: none; font-weight: 600; font-size: .9rem; }
    .sf-ovf-list a:hover { background: var(--color-primary-50, rgba(0,0,0,.05)); color: var(--color-primary-700, inherit); }
    .sf-ovf-group { margin: .3rem 0; }
    .sf-ovf-group > span { display: block; padding: .55rem .6rem .2rem; font-weight: 700; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; opacity: .6; }
    .sf-ovf-group > a:first-child { font-weight: 700; }
    .sf-ovf-group a + a { padding-left: 1.1rem; font-weight: 500; }
    /* ============ main / sections ============ */
    .sf-main { max-width: var(--content-width); margin: 0 auto; padding: 0 1.5rem; }
    .sf-main > * + * { margin-top: var(--section-gap, clamp(2.75rem, 5vw, 4.75rem)); }
    /* Urejevalniško platno: ritem NE sme na vsak edit ovoj (.sf-addzone IN .sf-eb sta
       dobila vsak svoj margin → razmiki ne glede na nastavljene odmike). Ritem nosi
       blok (.sf-eb) kot na živi strani; addzone lebdi v vrzeli s svojim minimalnim
       robom. Eksplicitni odmiki (_layoutSpace* na notranjem .sf-bw) se čez ovoj
       uveljavijo s :has() — glej blok pravil pri .sf-bw--st/sb spodaj. */
    .sf-main > .sf-slot-edit > .sf-eb ~ .sf-addzone + .sf-eb { margin-top: var(--section-gap, clamp(2.75rem, 5vw, 4.75rem)); }
    .sf-fullbleed { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

    /* ============ universal per-block layout wrapper (»Postavitev na strani«) ============
       _Block.cshtml wraps a block in .sf-bw only when the editor changes a _layout* prop. */
    /* »Čez celotno širino«: gradniki z lastnim notranjim stropom (90rem — mreže
       izdelkov/novic ipd. berejo var(--sf-inner-max)) strop spustijo in dobijo
       robni odmik, da vsebina ne lepi na rob okna. */
    .sf-bw--full { --sf-inner-max: none; --sf-inner-pad: 1.5rem; }
    /* Strop je NOTRANJI pas lupine (.sf-main = --content-width minus 2x1.5rem padding), ne njena
       zunanja sirina. Kot neposreden otrok .sf-main brez ucinka (tam je pas ze tak), znotraj
       polnosirinskega odseka pa vsebino poravna na isto os kot vse ostale bloke. */
    .sf-bw--content { max-width: calc(var(--content-width) - 3rem); margin-left: auto; margin-right: auto; width: 100%; }
    .sf-bw--narrow { max-width: var(--content-width-narrow, 46rem); margin-left: auto; margin-right: auto; width: 100%; }
    /* Inside a constrained wrapper the block's own fullbleed must not escape. */
    .sf-bw--content .sf-fullbleed, .sf-bw--narrow .sf-fullbleed {
        width: 100%; max-width: 100%; margin-left: 0; margin-right: 0;
    }
    /* Layout blocks in the header/footer zone already span the zone — the
       viewport-escape trick would misalign a fixed/over header. */
    .sf-header .sf-fullbleed, .sf-footer .sf-fullbleed {
        width: 100%; max-width: 100%; margin-left: 0; margin-right: 0;
    }
    /* ── Eksplicitni odmiki gradnika (_layoutSpaceTop/Bottom) ──
       !important, ker morajo premagati ritem strani (.sf-main > * + *), lastna
       »prilepi se« pravila blokov (.sf-main > #uid, .sf-bw:has(>.sf-trustbar))
       in ritme vgnezdenih kontejnerjev (.sf-column/.sf-tabs-panel/.sf-section). */
    .sf-bw--st-none { margin-top: 0 !important; }
    .sf-bw--st-sm   { margin-top: 1rem !important; }
    .sf-bw--st-md   { margin-top: 3rem !important; }
    .sf-bw--st-lg   { margin-top: 6rem !important; }
    .sf-bw--sb-none { margin-bottom: 0 !important; }
    .sf-bw--sb-sm   { margin-bottom: 1rem !important; }
    .sf-bw--sb-md   { margin-bottom: 3rem !important; }
    .sf-bw--sb-lg   { margin-bottom: 6rem !important; }
    /* »Odmik pod blokom« mora premagati margin-top RITMA na naslednjem bloku
       (kolaps marginov sicer vzame večjo od obeh → nastavitev pod ~2.75rem ni
       imela učinka). Naslednji blok z LASTNIM eksplicitnim odmikom zmaga
       (!important zgoraj); .sf-sect-div obdrži svoj razmik. Specifičnost (0,3,0)
       namenoma prekaša vse ritme (max (0,2,0)). */
    :is(.sf-bw--sb-none, .sf-bw--sb-sm, .sf-bw--sb-md, .sf-bw--sb-lg)
        + :not(.sf-glue-top):not(.sf-sect-div) { margin-top: 0; }
    /* Rob gradnika znotraj ovoja ne sme dodajati svojega: prvi/zadnji koren
       izgubi zunanji margin, ko je odmik izrecno nastavljen. */
    :is(.sf-bw--st-none, .sf-bw--st-sm, .sf-bw--st-md, .sf-bw--st-lg) > :first-child { margin-top: 0 !important; }
    :is(.sf-bw--sb-none, .sf-bw--sb-sm, .sf-bw--sb-md, .sf-bw--sb-lg) > :last-child { margin-bottom: 0 !important; }
    /* Gradniki, ki se ob polni širini LEPIJO na prejšnji blok (marquee, pasica-banner,
       trustBar, linkGallery), morajo to ohraniti tudi znotraj .sf-bw ovoja. */
    .sf-main > .sf-bw:has(> .sf-glue-top) { margin-top: 0; }
    /* Isti gradnik je lahko UGNEZDEN v Sekcijo — tudi tedaj naj se lepi na prejšnji blok:
       Sekcija, ki neposredno vsebuje glue-top gradnik (npr. drsni napis pod bannerjem),
       izgubi vrhnji odmik IN vrhnjo notranjo oblogo, da med bannerjem in napisom ni vrzeli. */
    .sf-main > .sf-sect:has(> .sf-glue-top),
    .sf-main > .sf-sect:has(> .sf-bw > .sf-glue-top) { margin-top: 0; padding-top: 0; }
    /* ── Urejevalniško platno: ista pravila čez edit ovoje (.sf-slot-edit/.sf-eb) ──
       Odmiki so razredi na notranjem .sf-bw, ritem pa nosi ovoj .sf-eb — brez teh
       preslikav platno kaže razmike ne glede na »Odmik nad/pod blokom«. */
    .sf-main > .sf-slot-edit > .sf-eb:has(> :is(.sf-bw--sb-none, .sf-bw--sb-sm, .sf-bw--sb-md, .sf-bw--sb-lg)) + .sf-addzone + .sf-eb { margin-top: 0; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--st-none) { margin-top: 0 !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--st-sm)   { margin-top: 1rem !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--st-md)   { margin-top: 3rem !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--st-lg)   { margin-top: 6rem !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--sb-none) { margin-bottom: 0 !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--sb-sm)   { margin-bottom: 1rem !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--sb-md)   { margin-bottom: 3rem !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw--sb-lg)   { margin-bottom: 6rem !important; }
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-glue-top),
    .sf-main > .sf-slot-edit > .sf-eb:has(> .sf-bw > .sf-glue-top) { margin-top: 0; }
    @media (max-width: 760px) { .sf-hide-mobile { display: none !important; } }
    @media (min-width: 761px) { .sf-hide-desktop { display: none !important; } }
    /* ── Univerzalni »ton besedila« (_textTone) — gumb v »Postavitev na strani« za VSAK gradnik.
       Sili barvo NASLOVOV in besedila »na sekciji« na svetlo (za temna ozadja) ali temno (za
       svetla). Kartice z lastnim ozadjem (izdelki/mnenja/prednosti/statistika/kategorije) IZVZAMEMO
       (:not(<kartica> *)), da njihova vsebina ostane berljiva. Nadnaslovi (accent <span>) niso
       h/p → ostanejo v poudarni barvi. Nova vrsta kartice = doda se v izključitveni seznam. */
    .sf-bw--tone-light :is(h1,h2,h3,h4,h5,h6):not(:is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) *) { color: var(--color-text-inverse, #fff) !important; }
    .sf-bw--tone-light :is(p,li,dd,dt,blockquote,figcaption):not(:is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) *) { color: rgba(255,255,255,.85) !important; }
    .sf-bw--tone-dark :is(h1,h2,h3,h4,h5,h6):not(:is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) *) { color: var(--color-brand-900, #14121A) !important; }
    .sf-bw--tone-dark :is(p,li,dd,dt,blockquote,figcaption):not(:is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) *) { color: var(--color-ink, #2a2730) !important; }
    :is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) .sf-bw--tone-light :is(h1,h2,h3,h4,h5,h6) { color: var(--color-text-inverse, #fff) !important; }
    :is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) .sf-bw--tone-light :is(p,li,dd,dt,blockquote,figcaption) { color: rgba(255,255,255,.85) !important; }
    :is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) .sf-bw--tone-dark :is(h1,h2,h3,h4,h5,h6) { color: var(--color-brand-900, #14121A) !important; }
    :is(.sh-pcard,.sf-quote,.sf-feature,.sf-stat,.sf-product,.sf-cat,.ci-card,.si-item,.ct-card,.sf-okvir) .sf-bw--tone-dark :is(p,li,dd,dt,blockquote,figcaption) { color: var(--color-ink, #2a2730) !important; }
    .sf-okvir--tone-light :is(h1,h2,h3,h4,h5,h6) { color: var(--color-text-inverse, #fff) !important; }
    .sf-okvir--tone-light :is(p,li,dd,dt,blockquote,figcaption) { color: rgba(255,255,255,.85) !important; }
    .sf-okvir--tone-dark :is(h1,h2,h3,h4,h5,h6) { color: var(--color-brand-900, #14121A) !important; }
    .sf-okvir--tone-dark :is(p,li,dd,dt,blockquote,figcaption) { color: var(--color-ink, #2a2730) !important; }

    /* ============ flow: horizontal swipe carousel for item grids ============
       Applied to the ITEM CONTAINER (productGrid .pg-grid / newsList cards div).
       One visible row; the visitor swipes left/right to load the next run of
       items (scroll-snap paging, next card peeks in to signal swipeability). */
    .sf-flow-carousel {
        display: flex !important;
        grid-template-columns: none !important;
        gap: 16px !important; /* card-width calc below assumes this gap */
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .sf-flow-carousel::-webkit-scrollbar { display: none; }
    .sf-flow-carousel > * { flex: 0 0 calc((100% - 3 * 16px) / 4); min-width: 0; scroll-snap-align: start; }
    @media (max-width: 760px) {
        .sf-flow-carousel > * { flex-basis: 74%; }
        .sf-flow-carousel-m {
            display: flex !important;
            grid-template-columns: none !important;
            gap: 16px !important;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
        }
        .sf-flow-carousel-m::-webkit-scrollbar { display: none; }
        .sf-flow-carousel-m > * { flex: 0 0 74%; min-width: 0; scroll-snap-align: start; }
    }
    .sf-band { padding: var(--band-pad, clamp(3rem, 7vw, 6rem)) 0; }
    .sf-band-tight { padding: clamp(2rem, 4vw, 3rem) 0; }
    /* ── Deljena glava gradnika (nadnaslov + naslov + podnaslov) ──
       Skupni vzorec za VSE vsebinske gradnike (features, productGrid, stats, faq,
       newsList, categoryGrid, customerOpinions, gallery …) — nanjo se veže tudi
       preset sectionHeading. Enotna metrika naslova prek --sec-title-size. */
    .sf-section-head { text-align: left; max-width: none; margin: 0 0 clamp(1.9rem, 3.5vw, 2.75rem); }
    .sf-section-head :is(h1, h2, h3) { margin: 0; line-height: 1.12; }
    /* Velikost bere per-nivo zeton iz Dizajna (--hN-size), da je naslov sekcije enako velik kot
       enak nivo naslova kjerkoli drugje. --sec-title-size ostane izbirni globalni preglas. */
    .sf-section-head h1 { font-size: var(--sec-title-size, var(--h1-size, clamp(2.5rem, 6vw, 4.5rem))); }
    .sf-section-head h2 { font-size: var(--sec-title-size, var(--h2-size, clamp(1.75rem, 3.5vw, 2.75rem))); }
    .sf-section-head h3 { font-size: var(--sec-title-size, var(--h3-size, clamp(1.2rem, 2vw, 1.6rem))); }
    .sf-section-head .sf-eyebrow { margin-bottom: .5rem; }
    .sf-section-head .sf-lead { margin: .55rem 0 0; }
    .sf-section-head--center { text-align: center; }
    .sf-section-head--center .sf-lead { margin-left: auto; margin-right: auto; }
    .sf-section-head:not(.sf-section-head--center) { padding-left: 1.1rem; border-left: 3px solid var(--color-primary-600); }
    /* B — isti preset velja tudi za samostojne naslove (blok »Naslov«) in za naslove,
       natipkane v bloku Besedilo (rich text), da je videz naslovov enoten po vsej strani.
       Per-nivo žetoni (--hN-bar-w/-pad) PREGLASIJO ta preset: če je pri naslovu izbrano
       »brez črtice« (0px), črtice ni niti pri presetu side-rule. Prazen žeton = privzeto
       po temi, torej 1.1rem/3px kot doslej. */
    h1.sf-heading, .sf-richtext h1 { padding-left: var(--h1-bar-pad, 1.1rem); border-left: var(--h1-bar-w, 3px) solid var(--h1-bar-color, var(--color-primary-600)); }
    h2.sf-heading, .sf-richtext h2 { padding-left: var(--h2-bar-pad, 1.1rem); border-left: var(--h2-bar-w, 3px) solid var(--h2-bar-color, var(--color-primary-600)); }
    h3.sf-heading, .sf-richtext h3 { padding-left: var(--h3-bar-pad, 1.1rem); border-left: var(--h3-bar-w, 3px) solid var(--h3-bar-color, var(--color-primary-600)); }
    h4.sf-heading { padding-left: var(--h4-bar-pad, 1.1rem); border-left: var(--h4-bar-w, 3px) solid var(--h4-bar-color, var(--color-primary-600)); }
    h5.sf-heading { padding-left: var(--h5-bar-pad, 1.1rem); border-left: var(--h5-bar-w, 3px) solid var(--h5-bar-color, var(--color-primary-600)); }
    h6.sf-heading { padding-left: var(--h6-bar-pad, 1.1rem); border-left: var(--h6-bar-w, 3px) solid var(--h6-bar-color, var(--color-primary-600)); }

    /* ============ product card (Layer 3 preseti — docs/structural-presets.md F1) ============
       Ena družina razredov za VSE mreže izdelkov (trgovina/iskanje, gradnik productGrid,
       sorodni izdelki, izdelki ob novici). Markup: /Views/Shop/_ProductCard.cshtml.
       Neodvisne osi (razredi iz ProductCardLook):
         zgradba  .sh-pcard--{standard|editorial|overlay|technical|horizontal|tile}
         razmerje .sh-pcard--r-{landscape|square|portrait}
         prileg.  .sh-pcard--fit-contain  (W18; privzeti cover ne doda razreda)
         hover    .sh-pcard--h-{zoom|swap|lift|none}
         gumb     .sh-pcard--cta-{hover-bar|visible|icon|none}
       Imena razredov so NOSILNA: CSS preseti tem (Oblikovanje) ciljajo .sh-pcard* — ne
       preimenuj. Privzeta kombinacija = kartica trgovine pred F1 (nespremenjen videz);
       fallback literali so vrednosti stare kartice. */
    .sh-pcard { --pcard-ratio: 4/3; position: relative; display: flex; flex-direction: column; background: var(--color-surface, #fff); text-decoration: none; border-radius: var(--radius-card, 4px); overflow: hidden; border: 1px solid var(--color-line, #E5E0EC); box-shadow: var(--shadow-card-rest, 0 1px 3px rgba(28,4,35,.08)); transition: transform 250ms var(--ease), box-shadow 250ms var(--ease); }
    .sh-pcard--r-square   { --pcard-ratio: 1/1; }
    .sh-pcard--r-portrait { --pcard-ratio: 3/4; }
    .sh-pcard-media { position: relative; aspect-ratio: var(--pcard-ratio); overflow: hidden; background: var(--color-primary-50, #EDE8F5); flex-shrink: 0; }
    .sh-pcard-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .sh-pcard-media-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--color-primary-600, #6B1F7B); }
    /* hover osi */
    .sh-pcard--h-zoom:hover, .sh-pcard--h-lift:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover, 0 10px 20px -3px rgba(28,4,35,.10)); }
    .sh-pcard--h-zoom .sh-pcard-media img { transition: transform 450ms ease; }
    .sh-pcard--h-zoom:hover .sh-pcard-media img { transform: scale(1.06); }
    /* video kot primarni medij kartice (samopredvajanje, nemo, v zanki) — polni okvir slike;
       pointer-events off, da klik ostane na kartici-<a> (iframe bi ga sicer požrl). */
    .sh-pcard-vid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; border: 0; pointer-events: none; background: #000; }
    .sh-pcard-img--hover { position: absolute; inset: 0; opacity: 0; transition: opacity 320ms var(--ease); }
    .sh-pcard--gal-hover-swap:hover .sh-pcard-img--hover { opacity: 1; }
    /* značke + zaloga */
    .sh-pcard-badges { position: absolute; top: 10px; left: 10px; z-index: 2; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
    .sh-pcard-badge { color: var(--color-badge-text, #fff); font-family: var(--font-heading); font-weight: 700; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; padding: 2px 7px; border-radius: var(--radius-badge, 2px); }
    .sh-pcard-badge--sale { background: var(--color-badge-bg, var(--color-accent-500, #C8176A)); }
    .sh-pcard-badge--new  { background: var(--color-badge-bg, var(--color-primary-600, #6B1F7B)); }
    .sh-pcard-badge--ship { background: var(--color-badge-bg, var(--color-success-500, #16a34a)); }
    .sh-pcard-badge--brandbg { background: var(--color-badge-bg, var(--color-primary-600, #6B1F7B)); }
/* EU energijska nalepka (EPREL, docs/energy-labels.md) — majhna značka razreda ob ceni na kartici,
   oblikovana kot pravi razred na nalepki (puščica z barvo razreda A-G), da je takoj jasno, za kaj
   gre — NE po temi (--eu-color pride od izdelka, glej EnergyLabelColors, fiksne barve nalepke).
   Nevidno, dokler ni podatka (repo vrne prazno). */
.sh-pcard-energy { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; padding: 0 8px 0 6px; margin-right: 6px; font-family: var(--font-heading); font-weight: 500; font-size: 13px; line-height: 1; color: var(--eu-color-text, #fff); background: var(--eu-color, #8A8A8A); clip-path: polygon(0 0, 78% 0, 100% 50%, 78% 100%, 0 100%); vertical-align: middle; }
    /* Mobilni telefon: znacke ne smejo poziralne slike izdelka — ena kompaktna vrstica,
       najvec dve vidni znacki, ostale se odrezejo; tudi ostale prekritja (paket, zaloga,
       logotip znamke) so manjsa in tesneje v kotih. */
    @media (max-width: 760px) {
      .sh-pcard-badges { top: 6px; left: 6px; right: 6px; flex-direction: row; flex-wrap: nowrap; gap: 3px; overflow: hidden; }
      .sh-pcard-badges > * { flex: 0 1 auto; min-width: 0; }
      .sh-pcard-badges > :nth-child(n+3) { display: none; }
      .sh-pcard-badge { font-size: 9px; letter-spacing: .03em; padding: 2px 5px; max-width: 46%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
      .sh-pcard-badge-img { max-height: 26px !important; max-width: 54px !important; }
      .sh-pcard--badge-ribbon .sh-pcard-badges { flex-direction: column; }
      .sh-pcard-bundle { left: 6px; bottom: 6px; font-size: 9px; padding: 2px 7px; }
      .sh-pcard-stock { top: 6px; right: 6px; font-size: 9px; padding: 1px 5px; }
      .sh-pcard-brandlogo { left: 6px; bottom: 6px; height: 20px; padding: 2px 5px; }
      .sh-pcard-media:has(.sh-pcard-bundle) .sh-pcard-brandlogo { bottom: 32px; }
    }
    /* Tocke zvestobe pri izdelku — poudarjen pas (ne drobna siva vrstica). */
    .sh-earn { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; padding: 10px 12px; border-radius: var(--radius-md, 10px); background: color-mix(in srgb, var(--color-accent-500, #C8176A) 9%, transparent); border: 1px solid color-mix(in srgb, var(--color-accent-500, #C8176A) 26%, transparent); font-family: var(--font-sans); font-size: 14px; color: var(--color-ink, #2A1F33); }
    .sh-earn-ico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 999px; background: var(--color-accent-500, #C8176A); color: #fff; }
    .sh-earn-pts { font-family: var(--font-heading); font-weight: 700; font-size: 17px; color: var(--color-accent-600, #A01254); letter-spacing: .01em; }
    .sh-earn-mult { font-family: var(--font-heading); font-weight: 700; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; background: var(--color-accent-500, #C8176A); color: #fff; }
    /* EU garancija/energijska nalepka (docs/guarantees.md, docs/energy-labels.md) — lahka
       kartica, isti vzorec kot sh-earn a bolj umirjen (nevtralna siva, ne poudarjena barva teme),
       da elementi delujejo kot ločen razdelek, ne kot vrženi v besedilo. Bela podloga za sliko je
       nujna, ne kozmetika: uradne EU grafike (GARAN nalepka) nimajo lastnega ozadja (namenjene so
       tisku na papir), zato bi temni elementi na temni temi izginili brez nje. */
    .sh-eu-card { display: flex; align-items: center; gap: 12px; flex-wrap: nowrap; width: 100%; box-sizing: border-box; margin-top: 10px; padding: 10px 14px; border-radius: var(--radius-md, 10px); background: color-mix(in srgb, var(--color-ink, #2A1F33) 4%, transparent); border: 1px solid color-mix(in srgb, var(--color-ink, #2A1F33) 10%, transparent); font-family: var(--font-sans); font-size: 13px; }
    .sh-eu-card-imgwrap { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; background: #fff; border-radius: var(--radius-sm, 6px); padding: 5px 7px; line-height: 0; }
    .sh-eu-card-icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--radius-sm, 6px); background: #fff; color: #034ea2; }
    .sh-eu-card-text { display: flex; flex-direction: column; gap: 2px; color: var(--color-muted, #857597); text-align: left; min-width: 0; }
    .sh-eu-card-text a, .sh-eu-card-text button { color: inherit; text-align: left; }
    @media (max-width: 480px) { .sh-eu-card { max-width: 100%; flex-wrap: wrap; } }
    /* Klikljiva značka »v paketu« → graditelj paketa (/paket/{id}). Spodaj levo na mediju, da se
       ne prekriva z zgornje-levimi značkami; jasno klikljiva (pill + pointer + hover). */
    .sh-pcard-bundle { position: absolute; left: 10px; bottom: 10px; z-index: 3; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; padding: 3px 9px; border-radius: 999px; font-family: var(--font-heading); font-weight: 700; font-size: 11px; letter-spacing: .04em; color: #fff; background: var(--color-primary-600, #6B1F7B); box-shadow: 0 1px 5px rgba(0,0,0,.22); border: none; transition: background .15s, transform .15s; }
    .sh-pcard-bundle:hover, .sh-pcard-bundle:focus-visible { background: var(--color-primary-700, #56176B); transform: translateY(-1px); outline: none; }
    .sh-pcard-bundle svg { flex: 0 0 auto; opacity: .95; }
    .sh-pcard-bundle--body { position: static; margin-bottom: 8px; align-self: flex-start; }
    .sh-pcard-stock { position: absolute; top: 8px; right: 8px; z-index: 2; font-family: var(--font-sans); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 7px; border-radius: var(--radius-badge, 3px); color: #fff; }
    .sh-pcard-stock.in  { background: var(--color-success-500, #16a34a); }
    .sh-pcard-stock.out { background: var(--color-muted, #64748b); }
    /* Logotip znamke (Feed:BrandFilterId) — značka spodaj-levo na foto (privzeti CTA je ikona spodaj-desno,
       značke zgoraj-levo, srček/zaloga zgoraj-desno → spodaj-levo je prosto). */
    .sh-pcard-brandlogo { position: absolute; left: 10px; bottom: 10px; z-index: 2; display: inline-flex; align-items: center; justify-content: center; max-width: 45%; height: 26px; padding: 3px 7px; background: rgba(255,255,255,.92); border-radius: var(--radius-badge, 4px); box-shadow: 0 2px 8px rgba(0,0,0,.12); pointer-events: none; }
    .sh-pcard-brandlogo img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; display: block; }
    /* Značka »V paketu ceneje« sedi v istem kotu in je nad logotipom (z-index 3) — ko je
       prisotna, logotip dvignemo nadnjo, da ostane viden. */
    .sh-pcard-media:has(.sh-pcard-bundle) .sh-pcard-brandlogo { bottom: 42px; }
    /* CTA osi */
    .sh-pcard-atc { position: absolute; bottom: 0; left: 0; right: 0; z-index: 2; background: var(--color-cart-bg, var(--color-primary-600, #6B1F7B)); color: var(--color-cart-text, #fff); border: none; padding: 10px; cursor: pointer; font-family: var(--font-sans); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; display: flex; align-items: center; justify-content: center; gap: 8px; }
    .sh-pcard--cta-hover-bar .sh-pcard-atc { transform: translateY(100%); transition: transform 220ms ease; }
    .sh-pcard--cta-hover-bar:hover .sh-pcard-atc { transform: translateY(0); }
    .sh-pcard-atc--icon { left: auto; right: 10px; bottom: 10px; width: 38px; height: 38px; padding: 0; border-radius: 9999px; box-shadow: 0 2px 8px rgba(28,4,35,.22); }
    /* telo + tipografija (vrednosti stare kartice) */
    .sh-pcard-body { padding: 12px 14px 16px; flex-grow: 1; display: flex; flex-direction: column; }
    .sh-pcard-brand { font-family: var(--font-heading); font-weight: 600; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--color-primary-600, #6B1F7B); margin-bottom: 3px; display: block; }
    .sh-pcard-sku { font-family: var(--font-mono, ui-monospace, monospace); font-size: 10.5px; letter-spacing: .04em; color: var(--color-muted, #857597); margin-bottom: 3px; display: block; }
    .sh-pcard-name { margin: 0 0 8px; font-family: var(--font-sans); font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--color-ink, #1A1128); flex-grow: 1; text-transform: none; letter-spacing: 0; }
    .sh-pcard-stars { display: flex; align-items: center; gap: 4px; margin-bottom: 8px; }
    .sh-pcard-stars-row { display: flex; gap: 1px; color: var(--color-accent-500, #C8176A); }
    .sh-pcard-stars-row .dim { opacity: .2; }
    .sh-pcard-stars-count { font-family: var(--font-sans); font-size: 11px; color: var(--color-muted, #857597); }
    .sh-pcard-price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
    .sh-pcard-price-main { font-family: var(--font-heading); font-size: 20px; font-weight: 700; color: var(--color-ink, #1A1128); }
    .sh-pcard-price-main.is-sale { color: var(--color-accent-500, #C8176A); }
    /* Merska enota ob ceni (»/ kg«) — samo vizualna pripona, zato manjša in umirjena. */
    .sh-pcard-price-unit { font-family: var(--font-sans); font-size: 12px; font-weight: 600; color: var(--color-muted, #857597); }
    /* Izpeljana cena na sekundarno enoto (»≈ 37,00 €/m²«) — lastna vrstica pod ceno. */
    .sh-pcard-price-ppu { display: block; width: 100%; font-family: var(--font-sans); font-size: 12px; color: var(--color-muted, #857597); }
    .sh-pcard-price-was { font-family: var(--font-sans); font-size: 12px; color: var(--color-muted, #A89BB6); text-decoration: line-through; }
    .sh-pcard-price-disc { font-size: 12px; font-weight: 600; color: var(--color-accent-500, #C8176A); }
    .sh-pcard-price-omnibus { display: block; font-size: 11px; color: var(--color-muted, #857597); }
    /* Javna koda za popust — »S kodo XY še ceneje« (T_KodaZaPopust.ShowOnArt). */
    .sh-pcard-code { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; padding: 2px 8px; border-radius: var(--radius-sm, 6px); font-family: var(--font-sans); font-size: 11px; font-weight: 600; line-height: 1.3; color: var(--color-accent-600, #A01254); background: var(--color-accent-50, rgba(200,23,106,.09)); border: 1px dashed var(--color-accent-500, #C8176A); }
    .sh-pcard-code svg { flex: 0 0 auto; opacity: .85; }
    .sh-pcard-code strong { font-weight: 700; letter-spacing: .02em; }
    .sh-pcard-sticker { position: absolute; top: 10px; right: 10px; z-index: 2; background: var(--color-accent-500, #C8176A); color: #fff; font-weight: 700; font-size: 12px; padding: 4px 9px; border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.18); }
    .sh-pcard--qa-wishlist .sh-pcard-sticker, .sh-pcard--qa-rail .sh-pcard-sticker { right: 52px; }
    .sh-pcard-wish { position: absolute; top: 10px; right: 10px; z-index: 3; width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--color-ink, #1A1128); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.12); opacity: 0; transform: translateY(-4px); transition: opacity .2s var(--ease), transform .2s var(--ease), color .2s; }
    .sh-pcard:hover .sh-pcard-wish { opacity: 1; transform: none; }
    .sh-pcard-wish:hover, .sh-pcard-wish.is-wished { color: var(--color-accent-500, #C8176A); }
    .sh-pcard-wish.is-wished svg { fill: var(--color-accent-500, #C8176A); }
    @media (max-width: 760px) { .sh-pcard-wish { opacity: 1; transform: none; } }
    /* scroll-snap trak — podrsavanje deluje brez JS; puščici streže pogojni JS spodaj */
    .sh-pcard-gal { position: absolute; inset: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .sh-pcard-gal::-webkit-scrollbar { display: none; }
    .sh-pcard-gal-slide { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; }
    .sh-pcard-gal-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--color-ink, #1A1128); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.12); opacity: 0; transition: opacity .2s var(--ease), background .2s; }
    .sh-pcard-gal-btn--prev { left: 8px; }
    .sh-pcard-gal-btn--next { right: 8px; }
    .sh-pcard:hover .sh-pcard-gal-btn { opacity: 1; }
    .sh-pcard-gal-btn:hover { background: #fff; }
    /* zoom osi ne animira traku (transform bi podrl scroll-snap izračun) */
    .sh-pcard--h-zoom:hover .sh-pcard-gal-slide { transform: none; }
    /* dotik: puščici skriti, podrsavanje je naravna gesta */
    @media (hover: none) { .sh-pcard-gal-btn { display: none; } }
    .sh-pcard-thumbs { display: flex; gap: 6px; padding: 8px 10px 0; flex-wrap: nowrap; overflow: hidden; }
    .sh-pcard-thumb { flex: 0 0 auto; width: 40px; height: 40px; padding: 0; border: 1px solid var(--color-line, #E5E0EC); border-radius: var(--radius-badge, 2px); background: var(--color-surface, #fff); cursor: pointer; overflow: hidden; opacity: .75; transition: opacity .2s, border-color .2s; }
    .sh-pcard-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .sh-pcard-thumb.is-on { border-color: var(--color-primary-600, #6B1F7B); opacity: 1; }
    .sh-pcard-thumb:hover { opacity: 1; }
    /* perspektiva na korenu (vzor .sf-okvir-flip), overflow visible da mid-obrata ne reže */
    .sh-pcard.sh-pcard--flip-opis { perspective: 1200px; overflow: visible; }
    /* koren ne reže (overflow visible) → fotografija sama nosi zgornja robova */
    .sh-pcard--flip-opis .sh-pcard-media { border-radius: calc(var(--radius-card, 4px) - 1px) calc(var(--radius-card, 4px) - 1px) 0 0; }
    .sh-pcard-flip-inner { display: grid; flex: 1 1 auto; min-width: 0; transform-style: preserve-3d; transition: transform .6s var(--ease); }
    .sh-pcard--flip-opis.is-flipped .sh-pcard-flip-inner { transform: rotateY(180deg); }
    .sh-pcard-flip-front { grid-area: 1 / 1; min-width: 0; display: flex; flex-direction: column; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
    /* vrstični pogled (Category .sh-grid--list) postavi kartico v vrsto → zrcali na ploskvi */
    .sh-grid--list .sh-pcard--flip-opis .sh-pcard-flip-front { flex-direction: row; }
    /* skrita ploskev ne lovi klikov (fokus ureja inert v JS) — vzor Okvir */
    .sh-pcard--flip-opis:not(.is-flipped) .sh-pcard-back { pointer-events: none; }
    .sh-pcard--flip-opis.is-flipped .sh-pcard-flip-front { pointer-events: none; }
    /* gumb za obrat — vzorec srčka (skrit do prehoda, na dotiku stalno viden) */
    .sh-pcard-flip-btn { position: absolute; top: 10px; right: 10px; z-index: 4; width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--color-ink, #1A1128); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.12); opacity: 0; transform: translateY(-4px); transition: opacity .2s var(--ease), transform .2s var(--ease), color .2s; }
    .sh-pcard:hover .sh-pcard-flip-btn, .sh-pcard-flip-btn:focus-visible { opacity: 1; transform: none; }
    .sh-pcard-flip-btn:hover { color: var(--color-accent-500, #C8176A); }
    @media (max-width: 760px) { .sh-pcard-flip-btn { opacity: 1; transform: none; } }
    /* sostanovalca zgornjega desnega kota se umakneta gumbu (le na karticah, ki ga imajo) */
    .sh-pcard--flip-opis:has(.sh-pcard-flip-btn) .sh-pcard-wish { top: 52px; }
    .sh-pcard--flip-opis:has(.sh-pcard-flip-btn) .sh-pcard-sticker { right: 52px; }
    .sh-pcard--flip-opis:has(.sh-pcard-flip-btn) .sh-pcard-stock { right: 52px; }
    /* hrbtna ploskev — grid sosed sprednje (višina = višja od obeh, vzor Okvir), predobrnjena */
    .sh-pcard--flip-opis .sh-pcard-back { grid-area: 1 / 1; min-width: 0; position: relative; transform: rotateY(180deg); backface-visibility: hidden; -webkit-backface-visibility: hidden; background: var(--color-surface, #fff); border-radius: calc(var(--radius-card, 4px) - 1px); padding: 16px; display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; }
    .sh-pcard--flip-opis .sh-pcard-back .sh-pcard-flip-btn--back { opacity: 1; transform: none; background: color-mix(in oklab, var(--color-ink) 6%, transparent); box-shadow: none; }
    .sh-pcard-back-name { font-family: var(--font-sans); font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--color-ink, #1A1128); margin: 0 0 8px; padding-right: 40px; }
    .sh-pcard-back-desc { margin: 0; font-family: var(--font-sans); font-size: 12.5px; line-height: 1.55; color: var(--color-muted, #857597); flex-grow: 1; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 8; }
    .sh-pcard-back-more { margin-top: 10px; font-family: var(--font-sans); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--color-primary-600, #6B1F7B); }
    @media (prefers-reduced-motion: reduce) { .sh-pcard-flip-inner { transition: none; } }
    /* info ikona s tooltipom (nastavljivi info teksti cen) — prej v Category.cshtml */
    .sh-info { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--color-muted, #A89BB6); color: var(--color-muted, #857597); font-size: 9px; font-weight: 700; font-style: normal; cursor: help; vertical-align: middle; font-family: var(--font-sans); line-height: 1; }
    .sh-info::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); background: var(--color-ink, #1A1128); color: #fff; font-size: 11px; font-weight: 400; line-height: 1.4; padding: 6px 9px; border-radius: 6px; width: max-content; max-width: 220px; opacity: 0; pointer-events: none; transition: opacity .12s ease; z-index: 30; text-align: left; white-space: normal; }
    .sh-info:hover::after, .sh-info:focus::after { opacity: 1; }
    /* kompaktna izpeljanka za ozke mreže (sorodni izdelki, izdelki ob novici) */
    .sh-pcard--compact .sh-pcard-body { padding: 10px 12px 14px; }
    .sh-pcard--compact .sh-pcard-name { font-size: 13px; margin-bottom: 6px; }
    .sh-pcard--compact .sh-pcard-price-main { font-size: 17px; }
    /* ── zgradba: editorial — brez okvirja, zračno, umirjena cena ── */
    .sh-pcard--editorial { background: transparent; border: none; box-shadow: none; border-radius: 0; overflow: visible; }
    .sh-pcard--editorial .sh-pcard-media { border-radius: var(--radius-card, 4px); }
    .sh-pcard--editorial:hover { transform: none; box-shadow: none; }
    .sh-pcard--editorial .sh-pcard-body { padding: 12px 2px 4px; }
    .sh-pcard--editorial .sh-pcard-name { font-size: 15px; }
    .sh-pcard--editorial .sh-pcard-price-main { font-size: 16px; font-weight: 600; }
    /* ── zgradba: overlay — podatki na spodnjem robu fotografije ── */
    .sh-pcard--overlay .sh-pcard-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 44px 14px 14px; flex-grow: 0; background: var(--pcard-scrim, linear-gradient(to top, rgba(12,8,18,.78), rgba(12,8,18,0))); }
    .sh-pcard--overlay .sh-pcard-name { color: #fff; flex-grow: 0; margin-bottom: 4px; }
    .sh-pcard--overlay .sh-pcard-brand { color: rgba(255,255,255,.75); }
    .sh-pcard--overlay .sh-pcard-price-main { color: #fff; }
    .sh-pcard--overlay .sh-pcard-price-was { color: rgba(255,255,255,.65); }
    .sh-pcard--overlay .sh-pcard-price-omnibus { color: rgba(255,255,255,.7); }
    /* ── zgradba: technical — gosto, šifra artikla, slika na podlagi površine ── */
    .sh-pcard--technical { border-radius: 2px; }
    .sh-pcard--technical .sh-pcard-media { background: var(--color-surface, #fff); }
    .sh-pcard--technical .sh-pcard-media img { object-fit: contain; padding: 8px; box-sizing: border-box; }
    .sh-pcard--technical .sh-pcard-body { padding: 10px 12px 12px; }
    .sh-pcard--technical .sh-pcard-name { font-size: 13px; font-weight: 600; margin-bottom: 6px; }
    .sh-pcard--technical .sh-pcard-price-main { font-size: 17px; }
    /* ── zgradba: horizontal — slika levo, vsebina desno; na telefonu navpično ── */
    .sh-pcard--horizontal { flex-direction: row; align-items: stretch; }
    .sh-pcard--horizontal .sh-pcard-media { width: 42%; flex: 0 0 42%; aspect-ratio: auto; min-height: 140px; }
    .sh-pcard--horizontal .sh-pcard-media img { position: absolute; inset: 0; }
    @media (max-width: 700px) {
        .sh-pcard--horizontal { flex-direction: column; }
        .sh-pcard--horizontal .sh-pcard-media { width: 100%; flex: none; aspect-ratio: var(--pcard-ratio); min-height: 0; }
        .sh-pcard--horizontal .sh-pcard-media img { position: static; }
    }
    /* ── zgradba: tile — fotografija čez vso kartico, izrazit naslov na prelivu ── */
    .sh-pcard--tile { border: none; box-shadow: none; }
    .sh-pcard--tile .sh-pcard-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 60px 16px 16px; flex-grow: 0; background: var(--pcard-scrim-strong, linear-gradient(to top, rgba(12,8,18,.88), rgba(12,8,18,.25) 70%, rgba(12,8,18,0))); }
    .sh-pcard--tile .sh-pcard-name { color: #fff; font-family: var(--font-heading); font-size: 17px; font-weight: 700; text-transform: var(--h-transform, uppercase); letter-spacing: var(--h-letter-spacing, .03em); flex-grow: 0; margin-bottom: 4px; }
    .sh-pcard--tile .sh-pcard-brand { color: var(--color-accent-500, #C8176A); }
    .sh-pcard--tile .sh-pcard-price-main { color: #fff; }
    .sh-pcard--tile .sh-pcard-price-was { color: rgba(255,255,255,.6); }
    .sh-pcard--tile .sh-pcard-price-omnibus { color: rgba(255,255,255,.7); }
    /* prosti rob dobi barvo kartice (ne vijolične medijske podlage), sicer bi letterbox štrlel */
    .sh-pcard.sh-pcard--fit-contain .sh-pcard-media { background: var(--color-surface, #fff); }
    .sh-pcard.sh-pcard--fit-contain .sh-pcard-media img { object-fit: contain; padding: 8px; box-sizing: border-box; }
    /* video kot primarni medij ostane cover — okvir 16:9 v kvadratu bi sicer pustil črna pasova */

    /* ============ buttons ============ */
    .sf-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: var(--radius); padding: var(--btn-pad-y, .75rem) var(--btn-pad-x, 1.5rem); font-size: var(--btn-font-size, .8rem); font-weight: var(--btn-weight, 600); font-family: var(--font-sans); letter-spacing: var(--btn-letter-spacing, .07em); text-transform: var(--btn-transform, uppercase); cursor: pointer; border: 1px solid transparent; transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); overflow: hidden; }
    .sf-btn svg { width: 1rem; height: 1rem; }
    /* Barve elementov (Oblikovanje → Barve elementov): gumbi/značke/košarica berejo lastne
       žetone; fallback = dosedanja akcentna/primarna barva, torej brez spremembe dokler niso
       nastavljeni. Ločen tekst-žeton reši kontrast (svetel akcent + belo besedilo = neberljivo). */
    .sf-btn-primary { background: var(--color-button-bg, var(--color-accent-500)); color: var(--color-button-text, #fff) !important; }
    .sf-btn-primary:hover { background: color-mix(in srgb, var(--color-button-bg, var(--color-accent-500)) 88%, #000); }
    .sf-btn-secondary { background: var(--color-button2-bg, transparent); border: 2px solid var(--color-button2-text, rgba(255,255,255,.55)); color: var(--color-button2-text, #fff) !important; }
    .sf-btn-secondary:hover { background: rgba(255,255,255,.12); }
    .sf-btn-ghost { background: var(--color-button2-bg, transparent); color: var(--color-button2-text, var(--color-primary-600)) !important; border: 2px solid var(--color-button2-text, var(--color-primary-600)); }
    .sf-btn-ghost:hover { background: var(--color-primary-50); }
    .sf-btn-lg { padding: .9rem 1.75rem; font-size: .85rem; }
    .sf-btn-cart { display: inline-flex; align-items: center; gap: .5rem; background: var(--color-cart-bg, var(--color-accent-500)); color: var(--color-cart-text, #fff) !important; text-decoration: none; padding: .5rem 1rem; border-radius: var(--radius); font-family: var(--font-sans); font-weight: 600; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; margin-left: .5rem; transition: background .15s var(--ease); white-space: nowrap; }
    .sf-btn-cart:hover { background: color-mix(in srgb, var(--color-cart-bg, var(--color-accent-500)) 88%, #000); }
    .sf-btn-cart svg { flex-shrink: 0; }
    @media (max-width: 600px) { .sf-cart-label { display: none; } }
    .sf-cart-badge { background: #fff; color: var(--color-accent-500); border-radius: 9999px; min-width: 1.1rem; height: 1.1rem; padding: 0 .2rem; display: inline-grid; place-items: center; font-size: .62rem; font-weight: 800; line-height: 1; }

    /* ============ hero ============ */
    .sf-hero { position: relative; overflow: hidden; color: #fff; background: var(--color-brand-950); height: 100svh; min-height: 600px; display: flex; align-items: flex-start; }
    /* When a background image is set the gradient overlay handles legibility */
    .sf-hero-has-bg::after { content: ""; position: absolute; inset: 0; z-index: 0;
        background: var(--hero-overlay); }
    /* No image: aurora gradient fallback */
    .sf-hero:not(.sf-hero-has-bg)::before { content: ""; position: absolute; inset: 0;
        background: radial-gradient(60rem 40rem at 15% -10%, color-mix(in srgb, var(--color-primary-500) 75%, transparent), transparent 60%),
                    radial-gradient(50rem 40rem at 100% 0%, color-mix(in srgb, var(--color-accent-500) 55%, transparent), transparent 55%); }
    .sf-hero-bg { position: absolute; inset: 0; z-index: 0; }
    .sf-hero-bg img, .sf-hero-bg video { width: 100%; height: 100%; object-fit: cover; }
    .sf-hero .sf-container { position: relative; z-index: 1; padding-top: max(10rem, calc(var(--header-h, 10rem) + 3rem)); padding-bottom: clamp(4rem,8vw,7rem); }
    .sf-hero h1 { color: #fff; font-size: clamp(3rem,9vw,7rem); line-height: .91; }
    .sf-hero .sf-eyebrow { color: var(--color-accent-500); }
    .sf-hero .sf-lead { color: rgba(255,255,255,.72); font-size: 1.05rem; }
    .sf-hero-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
    .sf-hero-trust { display: flex; gap: 1.5rem; margin-top: 2rem; flex-wrap: wrap; color: rgba(255,255,255,.65); font-size: .82rem; font-family: var(--font-sans); }
    .sf-hero-trust b { color: #fff; font-size: 1.3rem; font-family: var(--font-heading); display: block; text-transform: uppercase; letter-spacing: .04em; }
    .sf-hero-visual { display: none; } /* photo-based hero has no card visual */

    /* ============ trust / logos marquee ============ */
    .sf-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
    .sf-marquee-track { display: flex; gap: 3.5rem; width: max-content; animation: sf-scroll var(--marquee-duration, 26s) linear infinite; }
    .sf-marquee-item { font-weight: 800; font-family: var(--font-heading); font-size: 1.3rem; color: var(--color-muted); opacity: .65; white-space: nowrap; letter-spacing: -.01em; }
    @keyframes sf-scroll { to { transform: translateX(-50%); } }

    /* ============ category grid ============ */
    .sf-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .6rem; }
    .sf-cat { position: relative; overflow: hidden; border-radius: var(--radius-lg); aspect-ratio: 4/3; padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; background: var(--color-brand-900); transition: transform .35s var(--ease); }
    .sf-cat:hover { transform: translateY(-4px); }
    /* bg image is set via inline style on the element; this handles the overlay */
    .sf-cat::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(14,5,23,.88) 0%, rgba(14,5,23,.22) 55%, transparent 100%); z-index: 0; transition: opacity .3s var(--ease); }
    .sf-cat:hover::before { opacity: .95; }
    .sf-cat-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1); transition: transform .6s var(--ease); }
    .sf-cat:hover .sf-cat-bg { transform: scale(1.07); }
    .sf-cat-emoji { display: none; }
    .sf-cat-name { position: relative; z-index: 1; font-family: var(--font-heading); font-weight: 700; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .04em; line-height: 1.1; transform: translateY(0); transition: transform .28s var(--ease); }
    .sf-cat:hover .sf-cat-name { transform: translateY(-3px); }
    .sf-cat-count { position: relative; z-index: 1; font-size: .75rem; color: rgba(255,255,255,.65); margin-top: .2rem; opacity: 0; transform: translateY(5px); transition: opacity .25s .03s var(--ease), transform .25s .03s var(--ease); font-family: var(--font-sans); text-transform: none; letter-spacing: 0; }
    .sf-cat:hover .sf-cat-count { opacity: 1; transform: translateY(0); }
    .sf-cat-arrow { display: none; }

    /* ============ product grid ============ */
    .sf-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
    .sf-product { position: relative; border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); overflow: hidden; cursor: pointer; transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
    .sf-product:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
    .sf-product-link { color: inherit; text-decoration: none; display: block; }
    .sf-product-link::before { content: ""; position: absolute; inset: 0; z-index: 1; }
    .sf-product .sf-add, .sf-product .sh-quick-add, .sf-product .sf-wish, .sf-product .sf-tag, .sf-product .sh-badge-free, .sf-product .sh-preorder { position: relative; z-index: 2; }
    .sf-product-media { position: relative; aspect-ratio: 4/3; background: var(--color-primary-50); overflow: hidden; }
    .sf-product-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1); transition: transform .45s var(--ease); }
    .sf-product:hover .sf-product-media img { transform: scale(1.06); }
    .sf-product-media::after { content: ""; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect x='6' y='14' width='40' height='32' rx='2' fill='%23e5e0ec' stroke='%23cac2d4' stroke-width='2'/%3E%3Ccircle cx='18' cy='26' r='4' fill='%23cac2d4'/%3E%3Cpolyline points='6,38 18,26 27,35 33,29 46,46' fill='none' stroke='%23cac2d4' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") center/45% no-repeat; opacity: .7; }
    .sf-product-media img ~ *::after, .sf-product-media img + *::after { display: none; }
    /* hide placeholder when image is present */
    .sf-product-media:has(img) ::after { display: none; }
    .sf-tag { position: absolute; top: .625rem; left: .625rem; z-index: 2; font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: .2rem .5rem; border-radius: var(--radius-sm); background: var(--color-accent-500); color: #fff; font-family: var(--font-heading); }
    .sf-tag-new { background: var(--color-primary-600); }
    /* add-to-cart overlay slides up on hover */
    .sf-add { position: absolute; bottom: 0; left: 0; right: 0; z-index: 2; border: 0; border-radius: 0; cursor: pointer; background: var(--color-primary-600); color: #fff; padding: .6rem 1rem; font-family: var(--font-sans); font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; display: flex; align-items: center; justify-content: center; gap: .5rem; transform: translateY(100%); transition: transform .22s var(--ease), background .15s; }
    .sf-product:hover .sf-add { transform: translateY(0); }
    .sf-add:hover { background: var(--color-primary-700); }
    .sf-add svg { width: .85rem; height: .85rem; }
    .sf-wish { position: absolute; top: .5rem; right: .5rem; z-index: 2; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.9); color: var(--color-brand-900); border: 0; cursor: pointer; opacity: 0; transform: translateY(-4px); transition: opacity .25s var(--ease), transform .25s var(--ease); }
    .sf-product:hover .sf-wish { opacity: 1; transform: translateY(0); }
    .sf-wish svg { width: 1rem; height: 1rem; }
    .sf-product-body { padding: var(--card-pad, .75rem .875rem 1rem); }
    .sf-product-brand { font-family: var(--font-heading); font-weight: 600; font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; color: var(--color-primary-600); display: block; margin-bottom: .2rem; }
    .sf-product-rating { display: flex; align-items: center; gap: .25rem; font-size: .72rem; color: var(--color-muted); margin-bottom: .5rem; font-family: var(--font-sans); }
    .sf-stars { color: var(--color-accent-500); letter-spacing: .04em; }
    .sf-product-name { font-size: .88rem; font-weight: 500; color: var(--color-ink); font-family: var(--font-sans); text-transform: none; letter-spacing: 0; line-height: 1.4; margin: 0 0 .6rem; }
    .sf-product-foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
    .sf-price { display: flex; align-items: baseline; gap: .4rem; }
    .sf-price b { font-size: 1.2rem; font-weight: 700; color: var(--color-ink); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: .02em; }
    .sf-price b.is-sale { color: var(--color-accent-500); }
    .sf-price s { font-size: .78rem; color: var(--color-muted); font-family: var(--font-sans); }

    /* ============ feature cards ============ */
    .sf-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.25rem; }
    .sf-feature { background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--card-pad-lg, 1.75rem); transition: transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease); }
    .sf-feature:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
    .sf-feature-ico { width: 3rem; height: 3rem; border-radius: var(--radius); display: grid; place-items: center; background: var(--color-primary-50); color: var(--color-primary-600); margin-bottom: 1rem; }
    .sf-feature-ico svg { width: 1.5rem; height: 1.5rem; }
    .sf-feature h3 { font-size: 1.15rem; margin-bottom: .35rem; }
    .sf-feature p { color: var(--color-muted); font-size: .92rem; margin: 0; }

    /* ============ stats ============ */
    .sf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1rem; }
    .sf-stat { text-align: center; padding: 1.5rem 1rem; border-radius: var(--radius-lg); background: var(--color-surface); border: 1px solid var(--color-line); }
    .sf-stat b { display: block; font-family: var(--font-heading); font-size: clamp(2rem,4vw,2.75rem); font-weight: 800; background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }
    .sf-stat span { color: var(--color-muted); font-size: .9rem; font-weight: 600; }

    /* ============ testimonials ============ */
    .sf-testi { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1.25rem; }
    .sf-quote { background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: 1.75rem; box-shadow: var(--shadow-sm); }
    .sf-quote .sf-stars { font-size: 1.05rem; }
    .sf-quote p { font-size: 1.02rem; color: var(--color-ink); margin: .75rem 0 1.25rem; }
    .sf-quote-by { display: flex; align-items: center; gap: .75rem; }
    .sf-avatar { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--grad-brand); color: #fff; display: grid; place-items: center; font-weight: 800; font-family: var(--font-heading); }
    .sf-quote-by b { display: block; color: var(--color-brand-900); font-size: .92rem; }
    .sf-quote-by span { color: var(--color-muted); font-size: .82rem; }

    /* ============ newsletter ============ */
    .sf-newsletter { position: relative; overflow: hidden; border-radius: var(--radius-xl); background: var(--color-brand-950); color: #fff; padding: clamp(2.5rem,5vw,4rem); text-align: center; }
    .sf-newsletter::before { content: ""; position: absolute; inset: 0; background: radial-gradient(40rem 30rem at 80% 120%, color-mix(in srgb, var(--color-primary-500) 70%, transparent), transparent 60%), radial-gradient(30rem 30rem at 0% 0%, color-mix(in srgb, var(--color-accent-500) 45%, transparent), transparent 55%); }
    .sf-newsletter > * { position: relative; z-index: 1; }
    .sf-newsletter h2 { color: #fff; }
    .sf-newsletter p { color: rgba(255,255,255,.78); max-width: 34rem; margin: .5rem auto 1.75rem; }
    .sf-nl-form { display: flex; gap: .6rem; max-width: 30rem; margin: 0 auto; flex-wrap: wrap; }
    .sf-nl-form input { flex: 1 1 14rem; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.1); color: #fff; border-radius: .8rem; padding: .85rem 1.1rem; font: inherit; outline: 0; }
    .sf-nl-form input::placeholder { color: rgba(255,255,255,.6); }
    .sf-nl-form input:focus { border-color: var(--color-accent-400); }

    /* ============ legacy/simple blocks ============ */
    .sf-richtext { color: var(--color-ink); }
    .sf-richtext p { margin: .6rem 0; }
    /* Prazne vrstice, ki jih urednik namenoma vstavi (Enter), naj bodo vidne kot razmik —
       sicer se prazen <p></p> (ali <p><br></p>) sesede na višino 0. (#5) */
    .sf-richtext p:empty { min-height: 1em; }
    .sf-richtext p > br:only-child { display: block; content: ""; }
    /* Tabela, vpisana v besedilnem bloku (RTE ali HTML). Blok »table« ima svoj videz (.sf-table),
       tabela znotraj besedila pa je bila doslej brez obrob in razmikov — stolpci so se zlili v
       besedilo. Isti tokeni kot pri bloku, da sta videza usklajena. */
    .sf-richtext table { width: 100%; border-collapse: collapse; margin: 1.1rem 0; font-size: .95rem; }
    .sf-richtext :is(th, td) { padding: .6rem .8rem; border: 1px solid var(--color-line); text-align: left; vertical-align: top; }
    .sf-richtext th { background: var(--color-primary-50, #f1f5f9); font-weight: 700; }
    .sf-richtext tbody tr:nth-child(even) td { background: var(--color-canvas); }
    /* Na telefonu široka tabela raztegne stran — raje naj drsi sama. */
    @media (max-width: 640px) {
        .sf-richtext table { display: block; overflow-x: auto; white-space: nowrap; }
    }
    .sf-image { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
    .sf-image-placeholder { display: flex; align-items: center; justify-content: center; aspect-ratio: 16/6; width: 100%; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--color-primary-50), var(--color-canvas)); color: var(--color-muted); font-size: .9rem; }
    /* Brez lastnega zunanjega margina — razmik med bloki daje ritem strani/slota,
       izrecno pa »Odmik nad/pod blokom« (.sf-bw--st/sb). */
    .sf-section { border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: 1.75rem; background: var(--color-surface); }
    .sf-section > h2 { font-size: clamp(1.25rem, 1rem + 1.1vw, 1.6rem); margin: 0 0 1rem; }
    .sf-section-surface { background: var(--color-canvas); }
    /* »Brez ozadja«: gol odsek — samo ovoj za vsebino, brez kartičnega videza. */
    .sf-section--plain { border: 0; border-radius: 0; padding: 0; background: none; }
    .sf-section > .sf-slot > * + * { margin-top: 1rem; }
    /* Celostranski blok (postavitev »Polna širina«): kartični videz ob robu strani nima smisla —
       1px obroba odseka se med obarvanimi sekcijami vidi kot bela črta, zaobljeni vogali pa ob
       robu zaslona puščajo bele zareze. Velja za odsek in okvir (tudi obračalnega) v polni širini. */
    .sf-bw--full > .sf-section { border: 0; border-radius: 0; }
    .sf-bw--full > .sf-okvir,
    .sf-bw--full > .sf-okvir-flip .sf-okvir { border-radius: 0; }
    /* ============ Tabela (blok »table«) ============ */
    /* Videz: --sf-table-head = barva glave (prop »Barva glave«, sicer token teme).
       Odzivnost: .sf-table--m-cards zloži vrstice v kartice (celica dobi naslov kolone iz
       data-label), .sf-table--m-scroll drsi vodoravno, .sf-table--m-shrink stisne pisavo. */
    .sf-table { --sf-table-head: var(--color-primary-50, #f1f5f9); --sf-table-pad: .8rem 1rem; --sf-table-fs: .95rem; color: var(--color-ink); }
    .sf-table-head { margin-bottom: 1rem; }
    .sf-table-eyebrow { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-primary-600, #4338ca); margin-bottom: .3rem; }
    .sf-table-title { font-size: clamp(1.15rem, 1rem + .8vw, 1.5rem); margin: 0 0 .35rem; }
    .sf-table-intro { margin: 0; color: var(--color-muted); max-width: 46rem; }
    .sf-table-note { margin: .6rem 0 0; font-size: .8rem; color: var(--color-muted); }

    /* Ovoj skrbi za vodoravno drsenje in obrez zaobljenih vogalov. */
    .sf-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
    .sf-table-scroll:focus-visible { outline: 2px solid var(--color-primary-600, #4338ca); outline-offset: 2px; }
    .sf-table--r-md .sf-table-scroll { border-radius: .5rem; }
    .sf-table--r-lg .sf-table-scroll { border-radius: var(--radius-lg, .9rem); }
    .sf-table table { width: 100%; border-collapse: collapse; font-size: var(--sf-table-fs); background: var(--color-surface, #fff); }
    .sf-table caption { caption-side: top; text-align: left; font-size: .85rem; color: var(--color-muted); padding: 0 0 .5rem; }
    .sf-table th, .sf-table td { padding: var(--sf-table-pad); text-align: left; vertical-align: top; }
    .sf-table thead th { background: var(--sf-table-head); font-weight: 700; white-space: nowrap; border-bottom: 1px solid var(--color-line); }
    .sf-table tbody th { font-weight: 650; }
    .sf-table tbody tr + tr th, .sf-table tbody tr + tr td { border-top: 1px solid var(--color-line); }
    .sf-tc--center { text-align: center !important; }
    .sf-tc--right { text-align: right !important; font-variant-numeric: tabular-nums; }

    /* Gostota + velikost pisave */
    .sf-table--d-sm { --sf-table-pad: .45rem .65rem; }
    .sf-table--d-lg { --sf-table-pad: 1.05rem 1.25rem; }
    .sf-table--f-sm { --sf-table-fs: .85rem; }
    .sf-table--f-lg { --sf-table-fs: 1.05rem; }

    /* Različice videza */
    .sf-table--striped tbody tr:nth-child(even) > * { background: color-mix(in srgb, var(--color-line) 28%, transparent); }
    .sf-table--grid table, .sf-table--grid th, .sf-table--grid td { border: 1px solid var(--color-line); }
    .sf-table--cards .sf-table-scroll { border: 1px solid var(--color-line); box-shadow: var(--shadow); }
    .sf-table:not(.sf-table--nohover) tbody tr:hover > * { background: color-mix(in srgb, var(--color-primary-600, #4338ca) 6%, transparent); }

    /* Pripeta prva kolona med vodoravnim drsenjem */
    .sf-table--sticky th:first-child, .sf-table--sticky td:first-child { position: sticky; left: 0; z-index: 1; background: var(--color-surface, #fff); }
    .sf-table--sticky thead th:first-child { background: var(--sf-table-head); z-index: 2; }

    /* Razvrščanje s klikom na glavo */
    .sf-tbl-sort { display: inline-flex; align-items: center; gap: .35rem; border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }
    .sf-tbl-sort svg { opacity: .45; flex: 0 0 auto; }
    .sf-tbl-sort:hover svg { opacity: .9; }
    .sf-table th[aria-sort] .sf-tbl-sort svg { opacity: 1; color: var(--color-primary-600, #4338ca); }
    .sf-table th[aria-sort="descending"] .sf-tbl-sort svg { transform: rotate(180deg); }

    @media (max-width: 640px) {
        /* Kolone, ki jih je urednik označil kot »Skrij na telefonu«. */
        .sf-table .sf-tc--hidem { display: none; }
        /* Pomanjšaj: tabela ostane tabela, le tesnejša. */
        .sf-table--m-shrink { --sf-table-pad: .4rem .5rem; --sf-table-fs: .8rem; }
        .sf-table--m-shrink table { table-layout: fixed; word-break: break-word; }
        .sf-table--m-shrink th, .sf-table--m-shrink td { white-space: normal; }
        .sf-table--m-shrink thead th { white-space: normal; }
        /* Namig, da se da drsati vodoravno. */
        .sf-table--m-scroll .sf-table-scroll { background:
            linear-gradient(to right, var(--color-surface, #fff) 30%, transparent),
            linear-gradient(to left, var(--color-surface, #fff) 30%, transparent) 100% 0,
            radial-gradient(farthest-side at 0 50%, rgba(0,0,0,.14), transparent),
            radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.14), transparent) 100% 0;
            background-repeat: no-repeat; background-size: 3rem 100%, 3rem 100%, 1rem 100%, 1rem 100%; background-attachment: local, local, scroll, scroll; }
        /* Kartice: vsaka vrstica svoja kartica, celica dobi naslov kolone pred vrednostjo. */
        .sf-table--m-cards .sf-table-scroll { overflow: visible; }
        .sf-table--m-cards table, .sf-table--m-cards tbody, .sf-table--m-cards tr, .sf-table--m-cards th, .sf-table--m-cards td { display: block; width: auto; }
        .sf-table--m-cards thead { display: none; }
        /* Ovoj tabele v kartičnem načinu ni več tabela — ozadje in napis morata slediti bloku,
           sicer caption ostane ozka table-caption celica na beli progi. */
        .sf-table--m-cards table { background: none; }
        .sf-table--m-cards caption { display: block; width: auto; }
        .sf-table--m-cards tbody tr { border: 1px solid var(--color-line); border-radius: var(--radius-lg, .9rem); background: var(--color-surface, #fff); padding: .35rem .2rem; margin: 0 0 .7rem; }
        .sf-table--m-cards tbody tr:last-child { margin-bottom: 0; }
        .sf-table--m-cards tbody tr > * { border: 0 !important; background: none !important; display: flex; gap: .8rem; align-items: baseline; justify-content: space-between; padding: .45rem .85rem; text-align: right !important; }
        .sf-table--m-cards tbody tr > * + * { border-top: 1px dashed var(--color-line) !important; }
        .sf-table--m-cards tbody tr > *::before { content: attr(data-label); flex: 0 0 42%; text-align: left; font-size: .8rem; font-weight: 600; color: var(--color-muted); }
        /* Celica brez naslova kolone (prazna glava) naj ne pušča praznega stolpca. */
        .sf-table--m-cards tbody tr > *[data-label=""]::before { content: none; }
        .sf-table--m-cards tbody th[scope="row"] { font-weight: 700; }
        .sf-table--m-cards .sf-table-note { margin-top: .8rem; }
    }

    .sf-unknown { border: 1px dashed var(--color-danger-500); border-radius: .25rem; padding: .5rem; font-size: .75rem; color: var(--color-danger-500); }

    /* ============ footer ============ */
    .sf-footer { background: var(--color-brand-950); color: rgba(255,255,255,.72); margin-top: 0; }
    .sf-footer .sf-container { padding-top: clamp(3rem,5vw,4.5rem); padding-bottom: 2rem; }
    .sf-foot-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.12); }
    .sf-foot-grid--4col { grid-template-columns: 1.4fr repeat(4, 1fr); }
    .sf-foot-contact { display: flex; flex-direction: column; gap: .4rem; margin-top: .85rem; }
    .sf-foot-contact-line { display: flex; align-items: center; gap: .5rem; font-family: var(--font-sans); font-size: .82rem; }
    .sf-foot-contact-line svg { flex-shrink: 0; opacity: .45; }
    .sf-foot-contact-line strong { color: #fff; font-weight: 600; }
    .sf-footer .sf-logo { color: #fff; margin-bottom: 1rem; }
    .sf-footer p { font-size: .9rem; max-width: 22rem; }
    .sf-foot-col h4 { color: #fff; font-size: .95rem; margin-bottom: 1rem; }
    .sf-foot-col a { display: block; color: rgba(255,255,255,.7); padding: .3rem 0; font-size: .9rem; transition: color .2s var(--ease), padding-left .2s var(--ease); }
    .sf-foot-col a:hover { color: #fff; padding-left: .25rem; }
    .sf-foot-social { display: flex; gap: .6rem; margin-top: 1.25rem; }
    .sf-foot-social a { width: 2.4rem; height: 2.4rem; border-radius: .7rem; background: rgba(255,255,255,.08); display: grid; place-items: center; color: #fff; transition: background .2s var(--ease), transform .2s var(--ease); }
    .sf-foot-social a:hover { background: var(--color-primary-600); transform: translateY(-2px); }
    .sf-foot-social svg { width: 1.15rem; height: 1.15rem; }
    .sf-foot-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; font-size: .82rem; flex-wrap: wrap; }
    .sf-foot-pay { display: flex; gap: .4rem; }
    .sf-foot-pay span { background: rgba(255,255,255,.1); border-radius: .4rem; padding: .25rem .55rem; font-size: .7rem; font-weight: 700; letter-spacing: .03em; }
    .sf-foot-pay { align-items: center; flex-wrap: wrap; }
    .sf-foot-pay img { height: 22px; width: auto; max-width: 60px; object-fit: contain; border-radius: .3rem; background: rgba(255,255,255,.1); padding: .15rem .3rem; }

    /* footer — Layer 3 variants (F5). Default (columns) adds no classes → markup unchanged. */
    /* mega: e-novice band above the columns grid */
    .sf-footer--mega .sf-container { padding-top: clamp(3.5rem,6vw,5.5rem); }
    .sf-foot-news { display: flex; justify-content: center; padding-bottom: 2.75rem; margin-bottom: 2.75rem; border-bottom: 1px solid rgba(255,255,255,.12); }
    /* minimal: one centered row */
    .sf-footer--minimal .sf-container { padding-top: 2.25rem; padding-bottom: 2.25rem; }
    .sf-foot-minimal { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.1rem; }
    .sf-foot-minimal .sf-logo { margin-bottom: 0; }
    .sf-foot-minimal .sf-foot-social { margin-top: 0; }
    .sf-foot-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem 1.5rem; }
    .sf-foot-links a { color: rgba(255,255,255,.7); font-size: .9rem; transition: color .2s var(--ease); }
    .sf-foot-links a:hover { color: #fff; }
    .sf-foot-copy { color: rgba(255,255,255,.5); font-size: .82rem; }
    /* bold: oversized brand wordmark above the grid */
    .sf-foot-bold-name { font-family: var(--font-heading); font-weight: 900; line-height: .9; letter-spacing: -.02em; text-transform: uppercase; color: #fff; font-size: clamp(3rem,13vw,11rem); word-break: break-word; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(255,255,255,.12); }

    /* ============ Layer 3 (F6): section rhythm + dividers (CMS main slot) ============
       Emitted always but inert — Page.cshtml only wraps top-level sections when the theme
       opts in (rhythm=alternating / divider≠none); default renders the plain _Slot, no wrappers. */
    /* rhythm=alternating — every other section a subtle panel, aligned to the content column
       (extends into .sf-main's 1.5rem gutter, content re-padded so edges match plain sections). */
    .sf-sect--alt {
        /* Prefer an explicit theme token; else nudge the canvas toward ink so the band reads in
           any theme (light or dark) without a dedicated token. */
        background: var(--color-surface-alt, color-mix(in oklab, var(--color-canvas) 95%, var(--color-ink)));
        margin-inline: -1.5rem;
        padding: clamp(2rem, 4vw, 3.25rem) 1.5rem;
        border-radius: var(--radius-lg, 8px);
    }
    /* Full-bleed blok (pas s statistiko, pasica, znamke …) v ritmski sekciji: sekcija naj NE kaže
       svojega sivega ozadja/obrobe/navpičnega odmika, sicer nad in pod pasom pokukata siva pasova
       (blok sam prekrije le sredino). Blok si širino in barvo uredi sam. Velja za vse ritme. */
    .sf-sect:has(> .sf-fullbleed),
    .sf-sect:has(> .sf-bw--full > .sf-fullbleed) {
        background: transparent !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    /* dividers between sections — colour from --color-line, shape from the SVG (stretched full-width). */
    .sf-sect-div { color: var(--color-line, #e5e0ec); line-height: 0; }
    .sf-sect-div--line { height: 1px; background: currentColor; }
    .sf-sect-div svg { display: block; width: 100%; height: clamp(10px, 2.2vw, 22px); }
    .sf-sect-div svg path { fill: none; stroke: currentColor; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
    .sf-main > .sf-sect-div { margin-top: clamp(1.5rem, 3.5vw, 2.75rem); }
    .sf-main > .sf-sect-div + * { margin-top: clamp(1.5rem, 3.5vw, 2.75rem); }

    /* ============ custom scrollbar ============ */
    ::-webkit-scrollbar { width: 5px; height: 5px; }
    ::-webkit-scrollbar-track { background: transparent; }
    ::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb, var(--color-primary-500, #B882C2)); border-radius: 3px; }
    ::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover, var(--color-primary-600, #9B5CAF)); }

    /* ============ scroll reveal ============ */
    .sf-reveal-ready [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease); }
    .sf-reveal-ready [data-reveal].is-in { opacity: 1; transform: none; }
    /* »Pripni ob drsenju« potrebuje position:sticky, transform prednika (vstopni reveal)
       pa sticky ONEMOGOČI. Zato ovoj, ki vsebuje pripeto pasico, nikoli ne dobi vstopnega
       transforma — pasica je takoj vidna in se pravilno pripne. */
    .sf-reveal-ready [data-reveal]:has(.sf-banner--pinned) { opacity: 1 !important; transform: none !important; }
    /* W1 scrollReveal — značaj vstopa (koren dobi .sf-rv--<v> prek W1 skripte; osnovni
       skriti privzetek [data-reveal] iz zgornje vrstice ostane, tu le nadgradnje). */
    .sf-rv [data-reveal] { transition-duration: calc(var(--dur-slow) * var(--motion-scale)); }
    .sf-rv--blur-in [data-reveal] { transition: opacity calc(var(--dur-slow) * var(--motion-scale)) var(--ease), transform calc(var(--dur-slow) * var(--motion-scale)) var(--ease), filter calc(var(--dur-slow) * var(--motion-scale)) var(--ease); }
    .sf-rv--blur-in [data-reveal]:not(.is-in) { filter: blur(12px); transform: translateY(10px); }
    .sf-rv--blur-in [data-reveal].is-in { filter: none; }
    .sf-rv--clip-rise [data-reveal] { transition: opacity calc(var(--dur-slow) * var(--motion-scale)) var(--ease), transform calc(var(--dur-slow) * var(--motion-scale)) var(--ease), clip-path calc(var(--dur-slow) * var(--motion-scale)) var(--ease); }
    .sf-rv--clip-rise [data-reveal]:not(.is-in) { transform: translateY(30px); clip-path: inset(0 0 8% 0); }
    .sf-rv--clip-rise [data-reveal].is-in { clip-path: none; }
    .sf-rv--stagger .sh-pcard[data-reveal] { transition-delay: calc(var(--i, 0) * 55ms * var(--motion-scale)); }
    .sf-hr-ready .sf-hr--word-stagger .sf-hr-w { display: inline-block; opacity: 0; transform: translateY(.55em); transition: opacity calc(var(--dur-slow) * var(--motion-scale)) var(--ease), transform calc(var(--dur-slow) * var(--motion-scale)) var(--ease); transition-delay: calc(var(--i, 0) * 55ms * var(--motion-scale)); }
    .sf-hr-ready .sf-hr--word-stagger.is-hr-in .sf-hr-w { opacity: 1; transform: none; }
    .sf-hr-ready .sf-hr--line-mask .sf-hr-w { display: inline-block; overflow: hidden; vertical-align: top; }
    .sf-hr-ready .sf-hr--line-mask .sf-hr-w > span { display: inline-block; transform: translateY(110%); transition: transform calc(var(--dur-slow) * var(--motion-scale)) var(--ease); transition-delay: calc(var(--i, 0) * 42ms * var(--motion-scale)); }
    .sf-hr-ready .sf-hr--line-mask.is-hr-in .sf-hr-w > span { transform: none; }
    @media (prefers-reduced-motion: reduce) { .sf-hr .sf-hr-w, .sf-hr .sf-hr-w > span { opacity: 1 !important; transform: none !important; } }
    /* W1 cardMotion — vstop kartic v mrežah (skrito LE ko je korenski razred .sf-cm prisoten,
       kar doda skripta → brez JS / reduced-motion / motionLevel=off = kartice vidne).
       Skrivanje je omejeno na mreže, ki jih skripta zares obdela (.sh-grid = shop,
       .pg-grid = CMS blok »Izdelki«) — kartica v drugem kontekstu ostane vidna (fail-safe). */
    .sf-cm :is(.sh-grid, .pg-grid) > .sh-pcard { opacity: 0; }
    .sf-cm :is(.sh-grid, .pg-grid) > .sh-pcard.is-cm-in { opacity: 1; transform: none; }
    .sf-cm--rise-stagger :is(.sh-grid, .pg-grid) > .sh-pcard { transform: translateY(26px); transition: opacity calc(var(--dur-base) * var(--motion-scale)) var(--ease), transform calc(var(--dur-base) * var(--motion-scale)) var(--ease); transition-delay: calc(var(--i, 0) * 55ms * var(--motion-scale)); }
    .sf-cm--scale-in :is(.sh-grid, .pg-grid) > .sh-pcard { transform: scale(.92); transition: opacity calc(var(--dur-base) * var(--motion-scale)) var(--ease), transform calc(var(--dur-base) * var(--motion-scale)) var(--ease); }
    .sf-cm--flip-in :is(.sh-grid, .pg-grid) > .sh-pcard { transform: perspective(900px) rotateX(10deg); transform-origin: center top; transition: opacity calc(var(--dur-base) * var(--motion-scale)) var(--ease), transform calc(var(--dur-base) * var(--motion-scale)) var(--ease); }
    /* W1 pageTransition — View Transitions (progresivno; brez podpore = klasična menjava). */
    @view-transition { navigation: auto; }
    @media (prefers-reduced-motion: reduce) { ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; } }
    @media (prefers-reduced-motion: reduce) {
        *, ::before, ::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
        .sf-reveal-ready [data-reveal] { opacity: 1; transform: none; }
    }

    /* ============ responsive ============ */
    @media (max-width: 980px) {
        .sf-hero .sf-container { grid-template-columns: 1fr; }
        .sf-hero-visual { display: none; }
        .sf-foot-grid { grid-template-columns: 1fr 1fr; gap: 1.75rem; }
        .sf-foot-grid--4col { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 760px) {
        .sf-search, .sf-nav { display: none; }
        .sf-foot-grid, .sf-foot-grid--4col { grid-template-columns: 1fr; }
    }

    /* on-page edit mode (unchanged behaviour) */
    .sf-slot-edit { min-height: 1.5rem; }
    .sf-eb { position: relative; outline: 1px dashed transparent; border-radius: .25rem; }
    .sf-eb:hover { outline-color: var(--color-primary-500); cursor: pointer; }
    .sf-eb-bar { position: absolute; top: -0.1rem; right: 0; z-index: 60; display: none; gap: 2px;
        background: var(--color-brand-900); border-radius: .25rem; padding: 2px 4px; align-items: center; }
    .sf-eb:hover > .sf-eb-bar { display: inline-flex; }
    .sf-eb-bar .sf-eb-type { color: #fff; font-size: .65rem; margin-right: .25rem; opacity: .8; }
    .sf-eb-bar button { background: transparent; border: 0; color: #fff; cursor: pointer; font-size: .8rem; padding: 2px 4px; }
    .sf-eb-bar button:hover { background: var(--color-brand-700); border-radius: .2rem; }
    .sf-addzone { display: block; width: 100%; margin: .25rem 0; padding: .3rem; font-size: .75rem;
        color: var(--color-primary-600); background: var(--color-primary-50); border: 1px dashed var(--color-primary-500);
        border-radius: .25rem; cursor: pointer; opacity: .45; }
    .sf-addzone:hover { opacity: 1; }

    /* columns layout block */
    .sf-columns { display: grid; gap: 1.5rem; align-items: stretch; }
    .sf-columns-2 { grid-template-columns: repeat(2, 1fr); }
    .sf-columns-3 { grid-template-columns: repeat(3, 1fr); }
    .sf-columns-4 { grid-template-columns: repeat(4, 1fr); }
    @media (max-width: 760px) { .sf-columns { grid-template-columns: 1fr !important; } }
    /* Glava: stolpci kroma (logo | navigacija/hamburger | ikone) morajo na mobilnem OSTATI v eni
       vrstici — sicer se zložijo navpično in je glava previsoka (~200px). Otroci stolpcev napolnijo
       svoj trak (nimajo lastne širine), zato `auto` sesede stolpec na 0 → uporabimo eksplicitne
       širine za logo/hamburger in preostanek (1fr) namenimo ikonam, da se vse ikone (vklj. košarico)
       vidijo brez rezanja. Velja LE znotraj glave; ne vpliva na stolpce v vsebini. */
    @media (max-width: 760px) {
        .sf-header .sf-columns { align-items: center; gap: .4rem !important; }
        /* minmax(0,…) namesto golega 1fr: `1fr` = minmax(AUTO,1fr), zato je trak zrasel na
           min-content vsebine (npr. ikone + preklopnik jezika) in glava je stran razširila
           čez zaslon — na mobilnem se je pojavil vodoravni drsnik (npr. v košarici). */
        .sf-header .sf-columns-2 { grid-template-columns: minmax(0, 1fr) auto !important; }
        .sf-header .sf-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
        /* Vsebina traku se raje prelomi kot razširi glavo. !important, ker ima trak inline
           slog iz gradnika (display:flex …) in ker mora to vzdržati tudi, če blok doda svoje
           pravilo — sicer glava (fiksna, shrink-to-fit) zraste na min-content vseh ikon in
           potegne s sabo celo stran (vodoravni drsnik v košarici). */
        .sf-header .sf-header-actions,
        .sf-header .sf-langswitch { flex-wrap: wrap !important; justify-content: flex-end; }
        /* Varovalo: fiksna glava nikoli širša od zaslona, tudi če vsebina zahteva več. */
        .sf-header { max-width: 100vw; }
        .sf-header .sf-columns { max-width: 100vw; }
        /* ── Logotip na telefonu: čim večji, a glava ostane ENA vrstica ──
           Gradnik logotipa nosi vodoravni odmik iz urejevalnika (npr. padX=large → `0 24px`).
           V ozkem stolpcu glave je ta odmik pojedel skoraj polovico prostora, slika pa se je
           zaradi `object-fit:contain` v ožjem okvirju izrisala precej manjša od nastavljene
           (izmerjeno na temp89: okvir 56×38 → logotip dejansko ~56×18 px). Zato na telefonu
           odmik odpade, okvir dobi cel stolpec in višino 2.75rem. Vizualna velikost je
           min(2.75rem, širina stolpca / razmerje logotipa): kvadraten logotip se ne napihne,
           širok pa izkoristi ves stolpec. */
        .sf-header .sf-logo { padding-left: .5rem !important; padding-right: .75rem !important; }
        .sf-header .sf-logo-img { height: 2.75rem !important; width: auto !important; max-width: 100%; }
        /* Stolpca logotipa in ikon sta odslej gibljiva (`clamp`), ker je bila vrstica na ožjih
           telefonih PREDOLGA in so se ikone prelomile v drugo vrstico (glava 112 px namesto 76):
           6 ikon × 2.4rem + odmiki niso šli v preostanek poleg logotipa. Zdaj se logotip in
           ikone krčijo skupaj z zaslonom — preverjeno v eni vrstici pri 320 / 360 / 375 / 430 /
           758 px. Srednji stolpec je `auto`, da se oklene hamburgerja, ko se ta skrči. */
        .sf-header .sf-columns-3 { grid-template-columns: clamp(6.5rem, 32vw, 8rem) auto minmax(0, 1fr) !important; }
        .sf-header .sf-header-actions { gap: 2px !important; padding-left: 0 !important; padding-right: 2px !important; }
        /* Hamburger je v isti meri kot ostale ikone (slog je dobil že prej) — sicer bi po
           skrčitvi vrste ostal edini pri 2.4rem in bi spet štrlel iz nje. */
        .sf-header .sf-header-actions .sf-iconbtn,
        .sf-header .sf-header-actions .sf-lang-icon,
        .sf-header .sf-hb-toggle {
            width: clamp(1.6rem, 7.4vw, 1.875rem) !important;
            height: clamp(1.6rem, 7.4vw, 1.875rem) !important;
            min-width: 0 !important;
        }
    }
    .sf-column { display: flex; flex-direction: column; min-width: 0; container-type: inline-size; gap: .75rem; }
    /* Razmik med gradniki v stolpcu prek flex `gap` (ne `* + * { margin-top }`): tako
       NE-izrisani otroci (privzeto display:none <script>/<style> in skriti auto-hamburger)
       ne ustvarijo praznega razmika — sicer je npr. sredinska navigacija dobila odvečen
       margin-top in se ni poravnala z logotipom/ikonami. */
    /* V glavi stolpce navpično centriramo, da se logotip, navigacija in ikone poravnajo
       tudi ob različnih višinah vsebine (v telesu strani stolpci ostanejo od zgoraj). */
    .sf-header .sf-column { justify-content: center; }
    /* Stolpec glave, ki poleg navigacije vsebuje še kak gradnik (npr. spustni »Kategorije«),
       naj gradnike postavi V VRSTO (drug ob drugem), navpično centrirano — sicer se v
       navpičnem stolpcu naložijo eden pod drugega. Enostolpčni stolpci (logo, ikone) ostanejo
       nedotaknjeni. Na telefonu (predal) glava tako ali tako uporablja drugačno postavitev. */
    .sf-header .sf-column:has(> .sf-nav-ovf) {
        flex-direction: row;
        align-items: center;
        flex-wrap: nowrap;
        gap: 1rem;
    }
    /* Navigacija se sme skrčiti (njen »več« meni pobere presežek), sosednji gradnik (npr.
       spustni »Kategorije«) ohrani svojo velikost — tako gresta v eno vrsto brez preliva. */
    .sf-header .sf-column:has(> .sf-nav-ovf) > .sf-nav-ovf { flex: 1 1 auto; min-width: 0; }
    .sf-header .sf-column:has(> .sf-nav-ovf) > :not(.sf-nav-ovf) { flex: 0 0 auto; }
    /* Gradnik v stolpcu NE sme pobegniti na širino okna — 100vw trik se izniči,
       gradnik zavzame širino stolpca (velja tudi za pasico/banner, ki ima
       sf-fullbleed vgrajen v koren). */
    .sf-column .sf-fullbleed { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
    /* Hero/pasica v stolpcu: viewport višine (svh) ne veljajo; gradnik se
       razteza čez preostalo višino stolpca, zato so stolpci v isti vrsti
       enako visoki — najvišja vsebina (npr. izdelek + odštevalnik) določi
       višino vrste, hero pa se ji prilagodi. */
    .sf-column > :is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport),
    .sf-column > .sf-bw:has(> :is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport)) { flex: 1 1 auto; min-height: 0; }
    .sf-column .sf-bw > :is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport) { height: 100%; }
    .sf-column .sf-hero-rot > .sf-hero-rot-item > .sf-hx { height: 100%; }
    .sf-column .sf-hx { min-height: 15rem; }
    /* .sf-hero-sport (celozaslonski hero) ima PRAVI height:100svh + min-height:560/max-height:920 —
       drugače od .sf-hx (le min-height). V stolpcu jih nevtraliziramo, da se hero prilagodi
       višini vrste (ki jo določi vsebina sosedov, npr. slika + seznam), ne da vsili 100svh. */
    .sf-column .sf-hero-sport { height: auto; min-height: 15rem; max-height: none; }
    /* Zaokroženi robovi za VSE hero/banner/pasica gradnike v stolpcu (celozaslonski so ostri od
       roba do roba, a v vrsti so kartice ob sosedih). Radij prevzame iz TEME (--radius-lg → --radius-card),
       zato sledi nastavitvi zaobljenosti teme. overflow:hidden imajo te variante že v bazi. */
    .sf-column > :is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport),
    .sf-column .sf-bw > :is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport),
    .sf-column .sf-eb > :is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport) { border-radius: var(--radius-lg, 12px); overflow: hidden; }
    /* Tipografija .sf-hero-sport v stolpcu: naslov, vodilo in odmiki vezani na širino STOLPCA
       (cqw — .sf-column ima container-type:inline-size), ne okna (vw); sicer je naslov ogromen
       in vodoravno odrezan. Velja LE v stolpcu — celozaslonski hero ostane nedotaknjen. */
    .sf-column .sf-hero-sport-inner { padding-left: 1.25rem; padding-right: 1.25rem; }
    .sf-column .sf-hero-sport-title { font-size: clamp(24px, 11cqw, 64px); margin-bottom: clamp(10px, 2.5cqw, 24px); }
    .sf-column .sf-hero-sport-lead { font-size: clamp(13px, 3.4cqw, 17px); margin-bottom: clamp(14px, 3.5cqw, 36px); }
    .sf-column .sf-hero-sport-eyebrow { margin-bottom: 10px; }
    .sf-column .sf-hero-sport-btn { padding: 11px 20px; }
    .sf-column :is(.sf-hx--h-medium, .sf-hx--h-tall, .sf-hx--h-full,
                   .sf-hx--fullbleed, .sf-hx--centered, .sf-hx--gradient, .sf-hx--slideshow) { min-height: 15rem; }
    .sf-column .sf-hx--fullbleed .sf-hx-inner { padding-top: clamp(2rem, 4vw, 3.5rem); }
    .sf-column .sf-hx-inner { padding-left: 1.25rem; padding-right: 1.25rem; }
    /* Gradnik »Slika« v stolpcu je GONILO višine: širina = širina stolpca, višina =
       naravno razmerje (slika ostane cela, brez obreza). picture/img ostane naravna
       (flex-basis:auto, brez flex:1), sosednji banner/hero pa se prilagodijo TEJ višini
       (imajo flex:1 + height:100% → napolnijo vrsto). Slika NE sme dobiti object-fit:cover
       ali flex:1, sicer bi se raztegnila/obrezala do (visokih) sosedov. */
    .sf-column picture { display: block; width: 100%; }
    .sf-column img.sf-image { display: block; width: 100%; height: auto; }
    /* Urejevalnik: ista logika skozi edit ovoje (.sf-slot-edit/.sf-eb). */
    .sf-column > .sf-slot-edit { display: flex; flex-direction: column; flex: 1 1 auto; }
    .sf-column .sf-slot-edit > .sf-eb:has(:is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport)) { flex: 1 1 auto; display: flex; flex-direction: column; }
    .sf-column .sf-eb > :is(.sf-hero-rot, .sf-hx, .sf-pasica, .sf-banner, .sf-hero-sport, .sf-bw) { flex: 1 1 auto; min-height: 0; }

    /* ============ zavihki (tabs layout block) ============ */
    /* overflow-y hidden: gumbi z negativnim spodnjim robom (underline/boxed) so sprožili
       navpični mini-drsnik ob desnem robu vrstice. */
    .sf-tabs-nav { display: flex; align-items: flex-end; gap: .25rem; margin-bottom: 1.25rem;
        overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
    .sf-tabs--font-heading .sf-tabs-btn { font-family: var(--font-heading); }
    .sf-tabs-btn { font-family: var(--font-sans); font-size: .95rem; font-weight: 600; line-height: 1.2;
        color: var(--color-muted); background: none; border: none; cursor: pointer;
        padding: .6rem .9rem; white-space: nowrap; transition: color .15s, background .15s, border-color .15s; }
    .sf-tabs-btn:hover { color: var(--color-ink); }
    .sf-tabs--size-sm .sf-tabs-btn { font-size: .82rem; padding: .5rem .7rem; }
    .sf-tabs--size-lg .sf-tabs-btn { font-size: 1.15rem; padding: .7rem 1.1rem; }
    /* podčrtani (privzeto) */
    .sf-tabs--underline .sf-tabs-nav { border-bottom: 2px solid var(--color-line); }
    .sf-tabs--underline .sf-tabs-btn { border-bottom: 2px solid transparent; margin-bottom: -2px; }
    .sf-tabs--underline .sf-tabs-btn.is-active { color: var(--color-ink); border-bottom-color: var(--color-primary-600); }
    /* tabletke */
    .sf-tabs--pills .sf-tabs-nav { gap: .5rem; }
    .sf-tabs--pills .sf-tabs-btn { border: 1px solid var(--color-line); border-radius: 999px; }
    .sf-tabs--pills .sf-tabs-btn.is-active { background: var(--color-primary-600); border-color: var(--color-primary-600); color: #fff; }
    /* škatlasti */
    .sf-tabs--boxed .sf-tabs-nav { border-bottom: 1px solid var(--color-line); }
    .sf-tabs--boxed .sf-tabs-btn { border: 1px solid transparent; border-radius: var(--radius-md, 8px) var(--radius-md, 8px) 0 0; margin-bottom: -1px; }
    .sf-tabs--boxed .sf-tabs-btn.is-active { color: var(--color-ink); background: var(--color-canvas);
        border-color: var(--color-line); border-bottom-color: var(--color-canvas); }
    /* Škatlasti zavihki = metafora mape: aktivni zavihek "odpre" uokvirjen list pod seboj. Nav-vrstica
       se zlije z listom (brez odmika, obroba nadaljuje v panel), panel dobi obrobo/ozadje/notranji rob. */
    .sf-tabs--boxed .sf-tabs-nav { margin-bottom: 0; }
    .sf-tabs--boxed .sf-tabs-panel {
        border: 1px solid var(--color-line);
        border-top: none;
        border-radius: 0 0 var(--radius-lg, 12px) var(--radius-lg, 12px);
        background: var(--color-canvas);
        padding: clamp(1.25rem, 2.5vw, 2rem);
    }
    /* poravnava */
    .sf-tabs--center .sf-tabs-nav { justify-content: center; }
    .sf-tabs--stretch .sf-tabs-btn { flex: 1 1 0; text-align: center; }
    .sf-tabs-panel > * + * { margin-top: .75rem; }
    /* Telefon: namesto vodoravnega drsnika puščici. Zavihkov je bilo za dve vrstici, drsnik pa
       je skrival, koliko jih sploh je — vidna je zdaj samo naslovnica aktivnega, puščici pa
       preklapljata v krogu. Ovoj je na namizju `display:contents`, torej v postavitvi ni in
       vrstica ostane natanko takšna kot prej. */
    .sf-tabs-navwrap { display: contents; }
    .sf-tabs-arrow { display: none; }
    @media (max-width: 760px) {
        .sf-tabs-navwrap { display: flex; align-items: center; gap: .4rem; margin-bottom: 1.25rem; }
        .sf-tabs--boxed .sf-tabs-navwrap { margin-bottom: 0; align-items: flex-end; }
        .sf-tabs-navwrap > .sf-tabs-nav { flex: 1 1 auto; min-width: 0; overflow: hidden; margin-bottom: 0; }
        .sf-tabs-nav > .sf-tabs-btn:not(.is-active) { display: none; }
        .sf-tabs-nav > .sf-tabs-btn.is-active { flex: 1 1 auto; text-align: center; white-space: normal; }
        .sf-tabs-arrow { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
            width: 2.25rem; height: 2.25rem; padding: 0; border: 1px solid var(--color-line, #e5e0ec);
            border-radius: 999px; background: var(--color-surface, #fff); color: var(--color-ink, #1c0423);
            cursor: pointer; transition: background .15s var(--ease, ease), color .15s var(--ease, ease); }
        .sf-tabs--boxed .sf-tabs-arrow { margin-bottom: .35rem; }
        .sf-tabs-arrow:hover { background: var(--color-primary-600); border-color: var(--color-primary-600); color: #fff; }
        .sf-tabs-arrow:focus-visible { outline: 2px solid var(--color-primary-600); outline-offset: 2px; }
    }
    /* on-page edit način: vsi paneli naloženi, vsak s svojo oznako */
    .sf-tabs--edit .sf-tabs-edit-panel { border: 1.5px dashed var(--color-primary-500); border-radius: .6rem;
        padding: .75rem; margin: .5rem 0; }
    .sf-tabs--edit .sf-tabs-edit-label { display: inline-block; font-family: var(--font-sans); font-size: .68rem;
        font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--color-primary-600);
        background: var(--color-primary-50, rgba(0,0,0,.04)); padding: .25rem .5rem; border-radius: .35rem; margin-bottom: .5rem; }

    /* ============ vsebinski diapozitivi (slides layout block) ============ */
    .sf-slides { position: relative; }
    .sf-slides-vp { overflow: hidden; }
    /* slide: drsni trak; fade: diapozitivi naloženi eden čez drugega (grid stack) */
    .sf-slides--slide .sf-slides-track { display: flex; transition: transform .45s var(--ease, ease); }
    .sf-slides--slide .sf-slides-slide { flex: 0 0 100%; min-width: 0; box-sizing: border-box; }
    .sf-slides--fade .sf-slides-track { display: grid; }
    .sf-slides--fade .sf-slides-slide { grid-area: 1 / 1; opacity: 0; transition: opacity .45s var(--ease, ease); pointer-events: none; }
    .sf-slides--fade .sf-slides-slide.is-active { opacity: 1; pointer-events: auto; }
    .sf-slides-slide > * + * { margin-top: .75rem; }
    /* puščici — ob straneh, navpično na sredini vsebine */
    .sf-slides-arr { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
        width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--color-line);
        background: var(--color-surface, #fff); color: var(--color-ink); cursor: pointer;
        display: grid; place-items: center; box-shadow: 0 6px 18px rgba(20,10,40,.12);
        transition: background .15s, color .15s, border-color .15s; }
    .sf-slides-arr svg { width: 20px; height: 20px; }
    .sf-slides-arr:hover { background: var(--color-primary-600); border-color: var(--color-primary-600); color: #fff; }
    .sf-slides-arr--prev { left: .4rem; }
    .sf-slides-arr--next { right: .4rem; }
    /* pike */
    .sf-slides-dots { display: flex; justify-content: center; gap: .45rem; margin-top: 1rem; }
    .sf-slides-dot { width: 9px; height: 9px; border-radius: 50%; border: none; cursor: pointer;
        background: var(--color-line); padding: 0; transition: background .15s, transform .15s; }
    .sf-slides-dot.is-active { background: var(--color-primary-600); transform: scale(1.25); }
    /* on-page edit način: vsi diapozitivi naloženi, vsak s svojo oznako (vzorec zavihkov) */
    .sf-slides--edit .sf-slides-edit-panel { border: 1.5px dashed var(--color-primary-500); border-radius: .6rem;
        padding: .75rem; margin: .5rem 0; }
    .sf-slides--edit .sf-slides-edit-label { display: inline-block; font-family: var(--font-sans); font-size: .68rem;
        font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--color-primary-600);
        background: var(--color-primary-50, rgba(0,0,0,.04)); padding: .25rem .5rem; border-radius: .35rem; margin-bottom: .5rem; }

    /* ============ pasica (full-width section band) ============ */
    .sf-pasica { position: relative; box-sizing: border-box; }
    .sf-pasica--pad-none    { padding-top: 0; padding-bottom: 0; }
    .sf-pasica--pad-compact { padding-top: clamp(1.5rem,3vw,2.5rem); padding-bottom: clamp(1.5rem,3vw,2.5rem); }
    .sf-pasica--pad-normal  { padding-top: clamp(3rem,6vw,5rem); padding-bottom: clamp(3rem,6vw,5rem); }
    .sf-pasica--pad-large   { padding-top: clamp(5rem,10vw,8rem); padding-bottom: clamp(5rem,10vw,8rem); }
    .sf-pasica--brand   { background: var(--grad-brand); color: #fff; }
    .sf-pasica--accent  { background: var(--grad-accent); color: #fff; }
    .sf-pasica--dark    { background: var(--color-brand-950); color: #fff; }
    .sf-pasica--surface { background: var(--color-surface); }
    /* Odsek + okvir: iste predloge ozadja kot pasica (bgType) — barve iz teme. */
    .sf-section--brand  { background: var(--grad-brand); color: #fff; }
    .sf-section--accent { background: var(--grad-accent); color: #fff; }
    .sf-section--dark   { background: var(--color-brand-950); color: #fff; }
    .sf-okvir--brand    { background: var(--grad-brand); color: #fff; }
    .sf-okvir--accent   { background: var(--grad-accent); color: #fff; }
    .sf-okvir--dark     { background: var(--color-brand-950); color: #fff; }
    .sf-okvir--surface  { background: var(--color-surface); }
    .sf-pasica--image   { background-size: cover; background-position: center; background-repeat: no-repeat; }
    .sf-pasica--text-light { color: #fff; }
    .sf-pasica--text-dark  { color: var(--color-ink); }
    .sf-pasica__overlay { position: absolute; inset: 0; pointer-events: none; }
    .sf-pasica__inner {
        position: relative; z-index: 1;
        max-width: var(--content-width);
        margin-left: auto; margin-right: auto;
        padding-left: 1.5rem; padding-right: 1.5rem;
        box-sizing: border-box;
    }
    .sf-pasica__inner--narrow { max-width: var(--content-width-narrow); }
    .sf-pasica__inner--full   { max-width: none; }
    /* In sidebar layouts, pasica can't break out of its column */
    .sf-layout-sidebar .sf-pasica.sf-fullbleed {
        width: 100%; max-width: 100%; margin-left: 0; margin-right: 0;
    }
    .sf-layout-sidebar .sf-pasica .sf-pasica__inner { max-width: none; padding: 0; }

    /* ============ okvir (styled inner container) ============ */
    .sf-okvir { border-radius: var(--radius); overflow: hidden; }
    .sf-okvir--pad-sm { padding: .75rem 1rem; }
    .sf-okvir--pad-md { padding: 1.5rem; }
    .sf-okvir--pad-lg { padding: 2.5rem; }
    .sf-okvir--no-round  { border-radius: 0; }
    .sf-okvir--round-xl  { border-radius: var(--radius-xl); }
    .sf-okvir--border-light  { border: 1px solid var(--color-line); }
    .sf-okvir--border-medium { border: 2px solid var(--color-line); }
    /* okvir z obračanjem (flip=on): klik obrne kartico kot igralno karto.
       Ploskvi sta v grid skladu (višina = višja od obeh), hrbtna je obrnjena za 180°;
       preklop vrti notranji ovoj, backface-visibility skrije zadnjo ploskev. */
    .sf-okvir-flip { perspective: 1200px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
    .sf-okvir-flip-inner { display: grid; transform-style: preserve-3d; transition: transform .6s var(--ease, ease); }
    .sf-okvir-flip-face { grid-area: 1 / 1; min-width: 0; position: relative; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
    /* namig »obrni me«: krozna puscica zgoraj desno, ob hoverju kartice se poudari in zavrti.
       Barva NE sme dedovati iz starsa (temna pasica → bel span na beli kartici): privzeto
       barva besedila teme, na ploskvah z lastnim tonom pa ton ploskve. */
    .sf-okvir-flip-hint { position: absolute; top: .6rem; right: .6rem; width: 26px; height: 26px;
        display: grid; place-items: center; opacity: .5; pointer-events: none;
        color: var(--color-ink, #2a2730);
        transition: opacity .2s, transform .35s var(--ease, ease); }
    .sf-okvir--tone-light > .sf-okvir-flip-hint { color: #fff; }
    .sf-okvir--tone-dark  > .sf-okvir-flip-hint { color: var(--color-brand-900, #14121A); }
    .sf-okvir-flip-hint svg { width: 15px; height: 15px; }
    .sf-okvir-flip:hover .sf-okvir-flip-hint,
    .sf-okvir-flip:focus-visible .sf-okvir-flip-hint { opacity: 1; transform: rotate(180deg); }
    .sf-okvir-flip--h .sf-okvir-flip-back { transform: rotateY(180deg); }
    .sf-okvir-flip--h.is-flipped .sf-okvir-flip-inner { transform: rotateY(180deg); }
    .sf-okvir-flip--v .sf-okvir-flip-back { transform: rotateX(180deg); }
    .sf-okvir-flip--v.is-flipped .sf-okvir-flip-inner { transform: rotateX(180deg); }
    /* Skrita ploskev ne prestreza klikov (klik pade na koren, ki obrača). */
    .sf-okvir-flip:not(.is-flipped) .sf-okvir-flip-back { pointer-events: none; }
    .sf-okvir-flip.is-flipped .sf-okvir-flip-front { pointer-events: none; }
    /* Telefon: okvir se prilagodi VIDNI ploskvi (razred doda JS gradnika, ki tudi meri višino).
       Prej je kratka sprednja stran podedovala višino dolge hrbtne — obe ploskvi sta v isti
       celici mreže — in je bila videti prazna. Prehod višine teče vzporedno z obratom.
       `overflow` je na PLOSKVI, ne na .sf-okvir-flip-inner: ta nosi `transform-style: preserve-3d`,
       ki ga karkoli razen `overflow: visible` sploščí in obrat ne bi bil več prostorski. */
    @media (max-width: 760px) {
        .sf-okvir-flip--fit .sf-okvir-flip-inner { transition: transform .6s var(--ease, ease), height .45s var(--ease, ease); }
        .sf-okvir-flip--fit .sf-okvir-flip-face { height: 100%; overflow: hidden; }
    }
    /* Zmanjsana animacija: tudi prilagojena visina (--fit) mora biti brez prehoda — sicer bi
       jo prevzelo bolj specificno pravilo zgoraj. */
    @media (prefers-reduced-motion: reduce) { .sf-okvir-flip-inner, .sf-okvir-flip--fit .sf-okvir-flip-inner { transition: none; } }
    /* on-page edit način: obe strani naloženi, vsaka s svojo oznako (vzorec zavihkov) */
    .sf-okvir-edit-panel { border: 1.5px dashed var(--color-primary-500); border-radius: .6rem;
        padding: .75rem; margin: .5rem 0; }
    .sf-okvir-edit-label { display: inline-block; font-family: var(--font-sans); font-size: .68rem;
        font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--color-primary-600);
        background: var(--color-primary-50, rgba(0,0,0,.04)); padding: .25rem .5rem; border-radius: .35rem; margin-bottom: .5rem; }

    /* ====================================================================
       HERO v2 — rich variant system (ported from cms-za-web).
       Layout classes (sf-hx-*) + neutral motion/decoration layer (t-*).
       The t-* classes read brand colours from the theme tokens, so they
       restyle with the site. Used only inside the hero block.
       ==================================================================== */
    .sf-hx { position: relative; isolation: isolate; overflow: hidden; color: var(--color-ink); }
    .sf-hx-inner { position: relative; z-index: 10; margin: 0 auto; width: 100%; max-width: var(--content-width); padding-left: 1.5rem; padding-right: 1.5rem; box-sizing: border-box; }
    .sf-hx-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
    .sf-hx-bg img, .sf-hx-bg video { width: 100%; height: 100%; object-fit: cover; }
    .sf-hx-ovl { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
    .sf-hx-deco { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }
    .sf-hx-aurora { position: absolute; inset: 0; z-index: 0; }

    /* heights */
    .sf-hx--h-medium { min-height: 60svh; }
    .sf-hx--h-tall   { min-height: 82svh; }
    .sf-hx--h-full   { min-height: 100svh; }

    /* split rendering (change-mode): content-only layer is transparent so the static bg shows through */
    .sf-hx--transparent { background: transparent !important; }
    /* tone backgrounds */
    .sf-hx--tone-brand   { background: var(--grad-brand); color: #fff; }
    .sf-hx--tone-neutral { background: var(--color-canvas); color: var(--color-ink); }
    .sf-hx--tone-inverse { background: var(--color-brand-950); color: #fff; }

    /* content stack + alignment */
    .sf-hx-content { display: flex; flex-direction: column; }
    .sf-hx-content--center { align-items: center; text-align: center; }
    .sf-hx-content--right  { align-items: flex-end; text-align: right; }
    .sf-hx-content--left   { align-items: flex-start; text-align: left; }
    .sf-hx h1 { color: inherit; margin: 0; letter-spacing: -.02em; line-height: 1.05; }
    /* accent-coloured words in the heading (per-slide "obarvane besede") */
    .sf-hl { color: var(--color-accent-500, var(--color-accent, #c8176a)); }
    .sf-hx-content h1 { max-width: 20ch; }
    .sf-hx-sub { margin: 1.25rem 0 0; max-width: 38rem; font-size: 1.125rem; line-height: 1.6; color: var(--color-muted); }
    .sf-hero-body { margin: 1rem 0 0; max-width: 42rem; font-size: 1rem; line-height: 1.65; }
    .sf-hx-body { color: var(--color-muted); }
    .sf-hx--light-text .sf-hx-body { color: rgba(255,255,255,.8); }
    .sf-hx-eyebrow { display: inline-flex; align-items: center; gap: .65rem; margin-bottom: 1rem; font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--color-primary-600); }
    .sf-hx-eyebrow::before { content: ""; width: 2rem; height: 1px; background: currentColor; opacity: .6; }
    .sf-hx-cta { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2.25rem; }
    .sf-hx-cta--center { justify-content: center; }
    .sf-hx-cta--right  { justify-content: flex-end; }
    /* light text (content over a dark surface / image) */
    .sf-hx--light-text, .sf-hx--light-text h1 { color: #fff; }
    .sf-hx--light-text .sf-hx-sub { color: rgba(255,255,255,.85); }
    .sf-hx--light-text .sf-hx-eyebrow { color: rgba(255,255,255,.85); }
    .sf-hx-grayscale { filter: grayscale(1); transition: filter .7s var(--ease); }
    .sf-hx-grayscale:hover { filter: grayscale(0); }

    /* per-variant heading scale */
    .sf-hx--fullbleed h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); max-width: 18ch; }
    .sf-hx--centered h1, .sf-hx--gradient h1, .sf-hx--slideshow h1 { font-size: clamp(2.25rem, 5.5vw, 4rem); }
    .sf-hx--split h1, .sf-hx--collage h1, .sf-hx--minimal h1 { font-size: clamp(2rem, 4vw, 3.25rem); }

    /* variant: fullBleed — image fills, content bottom */
    .sf-hx--fullbleed { display: flex; align-items: flex-end; min-height: 80svh; }
    .sf-hx--fullbleed .sf-hx-inner { padding-top: 10rem; padding-bottom: clamp(3rem,6vw,6rem); }
    /* variant: centered */
    .sf-hx--centered { display: flex; align-items: center; justify-content: center; min-height: 88svh; }
    .sf-hx--centered .sf-hx-inner { max-width: var(--content-width-narrow); padding-top: 7rem; padding-bottom: 7rem; }
    /* variant: minimal */
    .sf-hx--minimal { padding: clamp(3.5rem,8vw,6.5rem) 0; }
    .sf-hx--minimal .sf-hx-inner { max-width: var(--content-width-narrow); }
    /* variant: gradient */
    .sf-hx--gradient { display: flex; align-items: center; justify-content: center; min-height: 80svh; background: var(--color-canvas); }
    .sf-hx--gradient .sf-hx-inner { max-width: var(--content-width-narrow); padding-top: 7rem; padding-bottom: 7rem; text-align: center; }
    /* variant: split */
    .sf-hx--split { padding: clamp(3.5rem,8vw,6.5rem) 0; }
    .sf-hx-splitgrid { display: grid; gap: 3rem; align-items: center; }
    .sf-hx-splitimg { position: relative; aspect-ratio: 4/3; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
    .sf-hx-splitimg img, .sf-hx-splitimg video { width: 100%; height: 100%; object-fit: cover; }
    /* variant: collage */
    .sf-hx--collage { padding: clamp(3.5rem,8vw,6.5rem) 0; }
    .sf-hx-collage-grid { display: grid; gap: 2.5rem; align-items: center; }
    .sf-hx-collage-imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
    .sf-hx-collage-imgs > div { position: relative; aspect-ratio: 4/3; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
    .sf-hx-collage-imgs img { width: 100%; height: 100%; object-fit: cover; }
    @media (min-width: 1024px) {
        .sf-hx-splitgrid { grid-template-columns: 1fr 1fr; gap: 4rem; }
        .sf-hx-collage-grid { grid-template-columns: 1fr 1fr; gap: 4rem; }
    }
    /* variant: slideshow */
    .sf-hx--slideshow { display: flex; align-items: center; justify-content: center; min-height: 88svh; background: var(--color-brand-950); }
    .sf-hx-slides { position: absolute; inset: 0; }
    .sf-hx-slide-static { position: absolute; inset: 0; }
    .sf-hx-slide-content { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 6rem 1.5rem; }
    .sf-hx-slide-content .sf-hx-content { max-width: var(--content-width-narrow); }
    .sf-hx-slide-foot { position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; flex-direction: column; align-items: center; gap: 1.5rem; color: #fff; }

    /* H3 — 9-point content anchor (overrides variant placement; source order beats variant rules) */
    .sf-hx--anchored { display: flex; justify-content: flex-start; }
    .sf-hx--av-top    { align-items: flex-start; }
    .sf-hx--av-mid    { align-items: center; }
    .sf-hx--av-bottom { align-items: flex-end; }
    .sf-hx--anchored .sf-hx-inner { width: 100%; }
    .sf-hx--ah-left   .sf-hx-inner { margin-inline: 0 auto; }
    .sf-hx--ah-center .sf-hx-inner { margin-inline: auto; }
    .sf-hx--ah-right  .sf-hx-inner { margin-inline: auto 0; }
    .sf-hx--cw-narrow .sf-hx-inner { max-width: var(--content-width-narrow); }
    .sf-hx--cw-medium .sf-hx-inner { max-width: 46rem; }
    .sf-hx--cw-wide   .sf-hx-inner { max-width: var(--content-width); }
    .sf-hx--cw-full   .sf-hx-inner { max-width: none; }

    @media (max-width: 760px) {
        .sf-hx--fullbleed .sf-hx-inner { padding-top: 6rem; }
        .sf-hx-collage-imgs { grid-template-columns: 1fr; }

        /* H4c — mobilni override sidrišča (za desktop pravili, da jih prepiše) + skrit podnaslov */
        .sf-hx--m-anchored { display: flex; justify-content: flex-start; }
        .sf-hx--m-anchored .sf-hx-inner { width: 100%; }
        .sf-hx--m-av-top    { align-items: flex-start; }
        .sf-hx--m-av-mid    { align-items: center; }
        .sf-hx--m-av-bottom { align-items: flex-end; }
        .sf-hx--m-ah-left   .sf-hx-inner { margin-inline: 0 auto; }
        .sf-hx--m-ah-center .sf-hx-inner { margin-inline: auto; }
        .sf-hx--m-ah-right  .sf-hx-inner { margin-inline: auto 0; }
        .sf-m-hide { display: none !important; }
    }

    /* ======================================================================
       Hero variant: "sport" (Grašca) — full-bleed cinematic, left-aligned,
       stacked uppercase headline with an accent highlight word, scroll cue.
       Reproduces TEMP/Design1 index.html Hero(); theme-driven where it matters.
       ====================================================================== */
    .sf-hero-sport { position: relative; display: flex; align-items: center; height: 100svh; min-height: 560px; max-height: 920px; overflow: hidden; }
    .sf-hero-sport-bg { position: absolute; inset: 0; z-index: 0; }
    .sf-hero-sport-bg img, .sf-hero-sport-bg video { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
    .sf-hero-sport-bg picture { display: block; width: 100%; height: 100%; }
    .sf-hero-sport-ovl { position: absolute; inset: 0; z-index: 1; pointer-events: none;
        background: var(--hero-overlay); }
    .sf-hero-sport-inner { position: relative; z-index: 2; width: 100%; max-width: 90rem; margin: 0 auto; padding: 0 clamp(20px,5vw,64px); box-sizing: border-box; }
    .sf-hero-sport-copy { max-width: 640px; }
    /* per-slide effects on the base template: anchor (position), text align, content width */
    .sf-hero-sport.sf-sp-av-top { align-items: flex-start; }
    .sf-hero-sport.sf-sp-av-bottom { align-items: flex-end; }
    .sf-hero-sport.sf-sp-ah-center .sf-hero-sport-copy { margin-left: auto; margin-right: auto; }
    .sf-hero-sport.sf-sp-ah-right .sf-hero-sport-copy { margin-left: auto; }
    .sf-hero-sport.sf-sp-align-center .sf-hero-sport-copy { text-align: center; }
    .sf-hero-sport.sf-sp-align-center .sf-hero-sport-eyebrow,
    .sf-hero-sport.sf-sp-align-center .sf-hero-sport-cta { justify-content: center; }
    .sf-hero-sport.sf-sp-align-right .sf-hero-sport-copy { text-align: right; }
    .sf-hero-sport.sf-sp-align-right .sf-hero-sport-eyebrow,
    .sf-hero-sport.sf-sp-align-right .sf-hero-sport-cta { justify-content: flex-end; }
    /* Lead (Podnaslov) is a width-capped block; without this its box stays pinned left, so right/center
       text alignment would leave it misaligned with the (uncapped) title & eyebrow. */
    .sf-hero-sport.sf-sp-align-center .sf-hero-sport-lead { margin-left: auto; margin-right: auto; }
    .sf-hero-sport.sf-sp-align-right .sf-hero-sport-lead { margin-left: auto; margin-right: 0; }
    .sf-hero-sport.sf-sp-cw-narrow .sf-hero-sport-copy { max-width: 440px; }
    .sf-hero-sport.sf-sp-cw-medium .sf-hero-sport-copy { max-width: 560px; }
    .sf-hero-sport.sf-sp-cw-wide .sf-hero-sport-copy { max-width: 760px; }
    .sf-hero-sport.sf-sp-cw-full .sf-hero-sport-copy { max-width: none; }
    .sf-hero-sport-eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; animation: t-fade-up .7s ease-out both; }
    .sf-hero-sport-eyebrow .line { display: block; width: 32px; height: 2px; background: var(--color-accent-500, #C8176A); }
    .sf-hero-sport-eyebrow span:last-child { font-family: var(--font-heading); font-weight: 600; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--color-accent-500, #C8176A); }
    .sf-hero-sport-title { font-family: var(--font-heading); font-weight: 900; font-size: clamp(52px,8.5vw,100px); text-transform: uppercase; line-height: .91; letter-spacing: .03em; color: #fff; margin: 0 0 24px; animation: t-fade-up .7s .12s ease-out both; }
    .sf-hero-sport-word { display: block; }
    .sf-hero-sport-word.hl { color: var(--color-accent-500, #C8176A); }
    .sf-hero-sport-lead { font-family: var(--font-sans); font-size: 17px; line-height: 1.65; color: rgba(255,255,255,.72); margin: 0 0 36px; max-width: 420px; animation: t-fade-up .7s .25s ease-out both; }
    .sf-hero-sport-cta { display: flex; gap: 12px; flex-wrap: wrap; animation: t-fade-up .7s .25s ease-out both; }
    .sf-hero-sport-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 28px; border-radius: var(--radius-button, 3px); font-family: var(--font-sans); font-weight: 600; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; transition: background .15s var(--ease), border-color .15s var(--ease); }
    .sf-hero-sport-btn svg { width: 13px; height: 13px; }
    .sf-hero-sport-btn--primary { background: var(--color-button-bg, var(--color-accent-500, #C8176A)); color: var(--color-button-text, #fff); border: none; }
    .sf-hero-sport-btn--primary:hover { background: color-mix(in srgb, var(--color-button-bg, var(--color-accent-500, #C8176A)) 88%, #000); }
    .sf-hero-sport-btn--ghost { background: var(--color-button2-bg, transparent); border: 2px solid var(--color-button2-text, rgba(255,255,255,.55)); color: var(--color-button2-text, #fff); }
    .sf-hero-sport-btn--ghost:hover { background: rgba(255,255,255,.14); }
    .sf-hero-sport-scroll { position: absolute; bottom: 48px; right: 48px; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 8px; font-family: var(--font-heading); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.3); }
    .sf-hero-sport-scroll .line { width: 1px; height: 40px; background: linear-gradient(to bottom, rgba(255,255,255,.3), transparent); }
    @media (max-width: 768px) {
        .sf-hero-sport-scroll { display: none; }
        .sf-hero-sport-copy { max-width: 100%; }
        .sf-hero-sport-lead { font-size: 15px; }

        /* H4c — mobilni override sidrišča na sport predlogi */
        .sf-hero-sport.sf-sp-m-av-top    { align-items: flex-start; }
        .sf-hero-sport.sf-sp-m-av-mid    { align-items: center; }
        .sf-hero-sport.sf-sp-m-av-bottom { align-items: flex-end; }
        .sf-hero-sport.sf-sp-m-ah-left   .sf-hero-sport-copy { margin-left: 0; margin-right: auto; }
        .sf-hero-sport.sf-sp-m-ah-center .sf-hero-sport-copy { margin-left: auto; margin-right: auto; }
        .sf-hero-sport.sf-sp-m-ah-right  .sf-hero-sport-copy { margin-left: auto; margin-right: 0; }
    }

    /* ---- hero-fx: text entrance animations ---- */
    @keyframes t-fade { from { opacity: 0; } to { opacity: 1; } }
    @keyframes t-fade-up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
    @keyframes t-fade-down { from { opacity: 0; transform: translateY(-26px); } to { opacity: 1; transform: none; } }
    @keyframes t-blur-in { from { opacity: 0; filter: blur(16px); } to { opacity: 1; filter: blur(0); } }
    @keyframes t-zoom-in { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: none; } }
    .t-anim { animation-duration: .85s; animation-timing-function: cubic-bezier(.22,1,.36,1); animation-fill-mode: both; }
    .t-anim-fade { animation-name: t-fade; }
    .t-anim-fadeUp { animation-name: t-fade-up; }
    .t-anim-fadeDown { animation-name: t-fade-down; }
    .t-anim-blurIn { animation-name: t-blur-in; }
    .t-anim-zoomIn { animation-name: t-zoom-in; }
    .t-words > span { display: inline-block; animation: t-fade-up .8s cubic-bezier(.22,1,.36,1) both; }

    /* ---- hero-fx: image effects ---- */
    /* H4c-4 — --fx-speed (množitelj, 1 = privzeto) nastavi render na ovoj medija (počasi 1.7, hitro .55) */
    .t-kenburns { transform-origin: center; will-change: transform; animation: t-kenburns calc(24s * var(--fx-speed, 1)) ease-in-out infinite alternate; }
    @keyframes t-kenburns { from { transform: scale(1.08) translate3d(0,0,0); } to { transform: scale(1.2) translate3d(-2.5%,-2%,0); } }
    .t-zoom-settle { animation: t-zoom-settle calc(1.6s * var(--fx-speed, 1)) cubic-bezier(.22,1,.36,1) both; }
    @keyframes t-zoom-settle { from { transform: scale(1.16); } to { transform: scale(1); } }
    .t-hero-float { animation: t-hero-float calc(7s * var(--fx-speed, 1)) ease-in-out infinite alternate; }
    @keyframes t-hero-float { from { transform: translateY(0); } to { transform: translateY(-14px); } }
    .t-img-reveal { animation: t-img-reveal calc(1.15s * var(--fx-speed, 1)) cubic-bezier(.22,1,.36,1) both; }
    @keyframes t-img-reveal { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }

    /* H4d — akcijska vrstica: cena (+ prečrtana) in odštevalnik (tiktakanje: skripta v Page.cshtml) */
    .sf-hx-promo { display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; margin: 0 0 1.5rem; }
    .sf-hx-price { display: inline-flex; align-items: baseline; gap: .55rem; font-family: var(--font-heading); }
    .sf-hx-price b { font-size: 1.9em; font-weight: 900; color: var(--color-accent-500, #C8176A); line-height: 1; }
    .sf-hx-price s { opacity: .55; font-size: 1.05em; }
    .sf-hx-cd { display: inline-flex; align-items: center; gap: .45rem; }
    .sf-cd-label { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; opacity: .78; margin-right: .2rem; }
    .sf-cd-box { display: inline-flex; flex-direction: column; align-items: center; min-width: 2.7em; padding: .38em .45em;
        border-radius: .45em; background: rgb(0 0 0 / .35); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
    .sf-cd-box b { font-family: var(--font-heading); font-weight: 800; font-size: 1.15em; line-height: 1; font-variant-numeric: tabular-nums; }
    .sf-cd-box i { font-style: normal; font-size: .58em; letter-spacing: .08em; text-transform: uppercase; opacity: .7; margin-top: .22em; }
    .sf-tx-dark .sf-cd-box { background: rgb(20 20 25 / .08); }
    .sf-hx-content--center .sf-hx-promo { justify-content: center; }
    .sf-hx-content--right .sf-hx-promo { justify-content: flex-end; }
    .sf-hero-sport.sf-sp-align-center .sf-hx-promo { justify-content: center; }
    .sf-hero-sport.sf-sp-align-right .sf-hx-promo { justify-content: flex-end; }

    /* Per-slide barva besedila (svetla/temna slika) — prisili belo oz. temno čez privzetke predloge.
       Poudarjene besede (akcent / marker / gradient) ostanejo nedotaknjene. */
    .sf-tx-dark .sf-hero-sport-word:not(.hl) { color: var(--color-ink, #16181d); }
    .sf-tx-dark .sf-hero-sport-lead { color: rgb(23 23 28 / .72); }
    .sf-tx-dark .sf-hero-sport-btn--ghost { border-color: rgb(20 20 25 / .45); color: #16181d; }
    .sf-tx-dark .sf-hero-sport-btn--ghost:hover { background: rgb(20 20 25 / .08); }
    .sf-tx-dark .sf-hero-sport-scroll { color: rgb(20 20 25 / .4); }
    .sf-tx-dark .sf-hero-sport-scroll .line { background: linear-gradient(to bottom, rgb(20 20 25 / .4), transparent); }
    .sf-hx.sf-tx-dark { color: var(--color-ink, #16181d); }
    .sf-hx.sf-tx-dark .sf-hx-sub { color: rgb(23 23 28 / .75); }
    .sf-tx-light .sf-hero-sport-word:not(.hl) { color: var(--color-text-inverse, #fff); }
    .sf-tx-light .sf-hero-sport-lead { color: rgba(255,255,255,.72); }
    .sf-hx.sf-tx-light { color: var(--color-text-inverse, #fff); }
    .sf-hx.sf-tx-light .sf-hx-sub { color: rgba(255,255,255,.85); }
    .sf-hero.sf-tx-light .sf-hero-copy { color: var(--color-text-inverse, #fff); }
    .sf-hero.sf-tx-dark .sf-hero-copy { color: var(--color-ink, #16181d); }

    /* H4c-5 — velikost naslova (per-slide override; !important prevlada nad variantnimi pravili) */
    /* mobilni floor mora biti dovolj majhen, da se naslov (in nedeljivi .t-rw izrazi) ne obreže na telefonu */
    h1.t-hs-sm { font-size: clamp(22px, 4vw, 44px) !important; }
    h1.t-hs-md { font-size: clamp(26px, 5.5vw, 64px) !important; }
    h1.t-hs-lg { font-size: clamp(30px, 7.5vw, 92px) !important; }
    h1.t-hs-xl { font-size: clamp(32px, 10vw, 128px) !important; }
    /* H4c-5 — slog poudarjenih besed (klasa t-hlm-* na h1; cilja .sf-hl in sport .hl) */
    .t-hlm-marker .sf-hl, .t-hlm-marker .sf-hero-sport-word.hl {
        background: var(--color-accent-500, #C8176A); color: #fff; padding: .02em .14em; border-radius: .08em;
        -webkit-box-decoration-break: clone; box-decoration-break: clone; }
    .t-hlm-marker .sf-hero-sport-word.hl { display: inline-block; }
    .t-hlm-underline .sf-hl, .t-hlm-underline .sf-hero-sport-word.hl {
        color: inherit; text-decoration: underline; text-decoration-color: var(--color-accent-500, #C8176A);
        text-decoration-thickness: .12em; text-underline-offset: .1em; }
    .t-hlm-gradient .sf-hl, .t-hlm-gradient .sf-hero-sport-word.hl {
        background: linear-gradient(100deg, var(--color-primary-500), var(--color-accent-500, #C8176A));
        -webkit-background-clip: text; background-clip: text; color: transparent; }

    /* ---- hero-fx: living gradient / aurora ---- */
    .t-aurora {
        background:
            radial-gradient(42% 60% at 18% 28%, color-mix(in srgb, var(--color-primary-500) 60%, transparent), transparent 70%),
            radial-gradient(46% 55% at 82% 22%, color-mix(in srgb, var(--color-accent-500) 55%, transparent), transparent 70%),
            radial-gradient(52% 62% at 62% 82%, color-mix(in srgb, var(--color-primary-700) 50%, transparent), transparent 72%),
            var(--color-canvas);
        background-size: 200% 200%, 200% 200%, 200% 200%, 100% 100%;
        animation: t-aurora-drift 18s ease-in-out infinite alternate;
    }
    @keyframes t-aurora-drift {
        0% { background-position: 0% 50%, 100% 0%, 50% 100%, 0 0; }
        100% { background-position: 100% 50%, 0% 100%, 25% 10%, 0 0; }
    }

    /* ---- hero-fx: background decorations ---- */
    /* decoration line/dot colour adapts to the hero surface — dark heroes get light lines,
       so grid/dots/rings stay visible (were --color-ink only → invisible on dark backgrounds). */
    .sf-hx-deco { --deco-ink: color-mix(in srgb, var(--color-ink) 15%, transparent); --deco-ink-strong: color-mix(in srgb, var(--color-ink) 24%, transparent); }
    .sf-hx--light-text .sf-hx-deco { --deco-ink: rgba(255,255,255,.18); --deco-ink-strong: rgba(255,255,255,.30); }
    .t-blob { border-radius: 9999px; filter: blur(48px); opacity: .62; will-change: transform; animation: t-blob-float 15s ease-in-out infinite alternate; }
    @keyframes t-blob-float { 0% { transform: translate3d(0,0,0) scale(1); } 100% { transform: translate3d(24px,-32px,0) scale(1.18); } }
    .t-deco-grid {
        background-image:
            linear-gradient(to right, var(--deco-ink) 1px, transparent 1px),
            linear-gradient(to bottom, var(--deco-ink) 1px, transparent 1px);
        background-size: 54px 54px;
        -webkit-mask-image: radial-gradient(ellipse at center, black, transparent 88%);
        mask-image: radial-gradient(ellipse at center, black, transparent 88%);
    }
    .t-deco-dots {
        background-image: radial-gradient(var(--deco-ink-strong) 1.8px, transparent 1.9px);
        background-size: 22px 22px;
        -webkit-mask-image: radial-gradient(ellipse at center, black, transparent 88%);
        mask-image: radial-gradient(ellipse at center, black, transparent 88%);
    }
    .t-deco-rings {
        background-image: repeating-radial-gradient(circle at 50% 45%, transparent 0 37px, var(--deco-ink) 37px 40px);
        -webkit-mask-image: radial-gradient(circle at 50% 45%, black, transparent 80%);
        mask-image: radial-gradient(circle at 50% 45%, black, transparent 80%);
        animation: t-spin-slow 70s linear infinite;
    }
    @keyframes t-spin-slow { to { transform: rotate(360deg); } }
    .t-deco-glow { background: radial-gradient(55% 55% at 50% 38%, color-mix(in srgb, var(--color-primary-500) 45%, transparent), transparent 72%); }
    .t-deco-noise { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity: .13; mix-blend-mode: overlay; }
    .t-deco-beams {
        background-image: repeating-linear-gradient(115deg, transparent 0 44px, color-mix(in srgb, var(--color-primary-500) 24%, transparent) 44px 47px, transparent 47px 128px);
        background-size: 200% 200%;
        -webkit-mask-image: radial-gradient(ellipse at center, black, transparent 86%);
        mask-image: radial-gradient(ellipse at center, black, transparent 86%);
        animation: t-beams 14s linear infinite;
    }
    @keyframes t-beams { from { background-position: 0 0; } to { background-position: 200% 0; } }

    /* ---- hero-fx: image overlays (legibility scrim) ---- */
    .t-ovl-dark { background: rgb(0 0 0 / .45); }
    .t-ovl-grad-b { background: linear-gradient(to top, rgb(0 0 0 / .78), rgb(0 0 0 / .32) 45%, rgb(0 0 0 / .05)); }
    .t-ovl-grad-t { background: linear-gradient(to bottom, rgb(0 0 0 / .72), rgb(0 0 0 / .26) 45%, transparent); }
    .t-ovl-radial { background: radial-gradient(ellipse at center, transparent 34%, rgb(0 0 0 / .62)); }
    .t-ovl-scrim { background: rgb(0 0 0 / .42); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }

    /* ---- hero-fx: slideshow crossfade ---- */
    .t-slide { position: absolute; inset: 0; opacity: 0; animation-timing-function: ease-in-out; animation-iteration-count: infinite; will-change: opacity; }
    @keyframes t-slide-2 { 0%{opacity:0} 3%{opacity:1} 47%{opacity:1} 50%{opacity:0} 100%{opacity:0} }
    @keyframes t-slide-3 { 0%{opacity:0} 2%{opacity:1} 30%{opacity:1} 33%{opacity:0} 100%{opacity:0} }
    @keyframes t-slide-4 { 0%{opacity:0} 1.6%{opacity:1} 23%{opacity:1} 25%{opacity:0} 100%{opacity:0} }
    @keyframes t-slide-5 { 0%{opacity:0} 1.4%{opacity:1} 18%{opacity:1} 20%{opacity:0} 100%{opacity:0} }
    .t-slide-2 { animation-name: t-slide-2; }
    .t-slide-3 { animation-name: t-slide-3; }
    .t-slide-4 { animation-name: t-slide-4; }
    .t-slide-5 { animation-name: t-slide-5; }
    /* H4c — prehod "pomik" (drsni vstop/izstop; html ima overflow-x:hidden, zato brez drsnikov) */
    @keyframes t-slide-2-sl { 0%{opacity:0;transform:translateX(6%)} 3%{opacity:1;transform:none} 47%{opacity:1;transform:none} 50%{opacity:0;transform:translateX(-6%)} 100%{opacity:0;transform:translateX(6%)} }
    @keyframes t-slide-3-sl { 0%{opacity:0;transform:translateX(6%)} 2%{opacity:1;transform:none} 30%{opacity:1;transform:none} 33%{opacity:0;transform:translateX(-6%)} 100%{opacity:0;transform:translateX(6%)} }
    @keyframes t-slide-4-sl { 0%{opacity:0;transform:translateX(6%)} 1.6%{opacity:1;transform:none} 23%{opacity:1;transform:none} 25%{opacity:0;transform:translateX(-6%)} 100%{opacity:0;transform:translateX(6%)} }
    @keyframes t-slide-5-sl { 0%{opacity:0;transform:translateX(6%)} 1.4%{opacity:1;transform:none} 18%{opacity:1;transform:none} 20%{opacity:0;transform:translateX(-6%)} 100%{opacity:0;transform:translateX(6%)} }
    /* H4c — prehod "približanje" (vstop iz rahlega zooma) */
    @keyframes t-slide-2-zm { 0%{opacity:0;transform:scale(1.06)} 3%{opacity:1;transform:scale(1)} 47%{opacity:1;transform:scale(1)} 50%{opacity:0;transform:scale(.985)} 100%{opacity:0;transform:scale(1.06)} }
    @keyframes t-slide-3-zm { 0%{opacity:0;transform:scale(1.06)} 2%{opacity:1;transform:scale(1)} 30%{opacity:1;transform:scale(1)} 33%{opacity:0;transform:scale(.985)} 100%{opacity:0;transform:scale(1.06)} }
    @keyframes t-slide-4-zm { 0%{opacity:0;transform:scale(1.06)} 1.6%{opacity:1;transform:scale(1)} 23%{opacity:1;transform:scale(1)} 25%{opacity:0;transform:scale(.985)} 100%{opacity:0;transform:scale(1.06)} }
    @keyframes t-slide-5-zm { 0%{opacity:0;transform:scale(1.06)} 1.4%{opacity:1;transform:scale(1)} 18%{opacity:1;transform:scale(1)} 20%{opacity:0;transform:scale(.985)} 100%{opacity:0;transform:scale(1.06)} }
    /* Universal slide rotator — stacks full template renders (grid overlap) + crossfades opacity.
       Every template supports the slideshow; each slide shows in the chosen layout. */
    .sf-hero-rot { display: grid; position: relative; isolation: isolate; }
    .sf-hero-rot > .sf-hero-rot-item { grid-area: 1 / 1; min-width: 0; opacity: 0; will-change: opacity; animation-fill-mode: both; }
    .sf-hero-rot-dots { position: absolute; bottom: 1.75rem; left: 50%; transform: translateX(-50%); z-index: 30; display: inline-flex; gap: .5rem; }
    .sf-hero-rot-dots > * { width: .5rem; height: .5rem; border-radius: 9999px; background: #fff; opacity: .4;
        border: 0; padding: 0; cursor: pointer; transition: opacity .25s var(--ease), transform .25s var(--ease); }
    .sf-hero-rot:not(.is-manual) .sf-hero-rot-dots > :first-child { opacity: .95; }
    .sf-hero-rot-dots > .is-on { opacity: .95; transform: scale(1.25); }
    .sf-hero-rot-dots > *:hover { opacity: .8; }
    /* H4g — ročni način: skripta (_Theme, __sfHeroFxInit) izklopi CSS animacijo in preklaplja
       .is-on; neaktivni sloji ne lovijo klikov. Brez JS ostane CSS crossfade. */
    .sf-hero-rot.is-manual > .sf-hero-rot-anim { animation: none !important; opacity: 0;
        transition: opacity .7s var(--ease); pointer-events: none; }
    .sf-hero-rot.is-manual > .sf-hero-rot-anim.is-on { opacity: 1; pointer-events: auto; }
    .sf-hero-rot-arr { position: absolute; top: 50%; transform: translateY(-50%); z-index: 30;
        display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem;
        border: 1px solid rgb(255 255 255 / .3); border-radius: 9999px; background: rgb(10 12 18 / .32);
        color: #fff; cursor: pointer; padding: 0; opacity: 0; visibility: hidden;
        -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
        transition: opacity .25s var(--ease), visibility .25s, background .15s var(--ease); }
    .sf-hero-rot-arr svg { width: 1.15rem; height: 1.15rem; }
    .sf-hero-rot-arr--prev { left: 1.1rem; }
    .sf-hero-rot-arr--next { right: 1.1rem; }
    .sf-hero-rot-arr--next svg { transform: scaleX(-1); }
    .sf-hero-rot-arr:hover { background: rgb(10 12 18 / .55); }
    /* puščice pokaže šele ročni način (JS); na dotičnih zaslonih so vedno vidne */
    .sf-hero-rot.is-manual .sf-hero-rot-arr { opacity: 1; visibility: visible; }
    @media (hover: hover) {
        .sf-hero-rot.is-manual .sf-hero-rot-arr { opacity: 0; }
        .sf-hero-rot.is-manual:hover .sf-hero-rot-arr, .sf-hero-rot.is-manual .sf-hero-rot-arr:focus-visible { opacity: 1; }
    }
    @media (max-width: 760px) {
        .sf-hero-rot-arr { width: 2.25rem; height: 2.25rem; }
        .sf-hero-rot-arr--prev { left: .6rem; }
        .sf-hero-rot-arr--next { right: .6rem; }
    }
    .t-dots { display: inline-flex; gap: .5rem; }
    .t-dots > span { width: .5rem; height: .5rem; border-radius: 9999px; background: currentColor; opacity: .35; }
    .t-dots > span:first-child { opacity: .9; }

    /* ---- H4d: plavajoče nalepke (badges) — zunanji span pozicija/rotacija, notranji videz+animacija.
       Prefiks sf-hxb (hero-badge): .sf-badge je že zaseden (števec v košarici, _ChromeIcons). ---- */
    .sf-hero-badges { position: absolute; inset: 0; z-index: 25; pointer-events: none; }
    .sf-hxb { position: absolute; transform: translate(-50%,-50%) rotate(var(--b-rot, 0deg)); }
    .sf-hxb-in { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-heading);
        font-weight: 800; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; line-height: 1;
        box-shadow: 0 8px 24px -8px rgb(0 0 0 / .4); }
    .sf-hxb--sm { font-size: 11px; padding: .4em .95em; }
    .sf-hxb--md { font-size: 14px; padding: .5em 1.05em; }
    .sf-hxb--lg { font-size: 19px; padding: .6em 1.15em; }
    .sf-hxb--accent  { background: var(--color-accent-500, #C8176A); color: #fff; }
    .sf-hxb--primary { background: var(--color-primary-600); color: #fff; }
    .sf-hxb--dark    { background: var(--color-ink, #101010); color: var(--color-text-inverse, #fff); }
    .sf-hxb--light   { background: var(--color-surface, #fff); color: var(--color-ink, #141414); }
    .sf-hxb--outline { background: rgb(0 0 0 / .22); color: #fff; border: 2px solid #fff;
        -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); box-shadow: none; }
    .sf-hxb--pill   { border-radius: 999px; }
    .sf-hxb--tag    { border-radius: 4px 14px 4px 14px; }
    .sf-hxb--circle { border-radius: 50%; aspect-ratio: 1; padding: 1em; }
    .sf-hxb--burst  { padding: 1.7em 2em; box-shadow: none;
        clip-path: polygon(100.0% 50.0%, 86.7% 59.8%, 93.3% 75.0%, 76.9% 76.9%, 75.0% 93.3%, 59.8% 86.7%, 50.0% 100.0%, 40.2% 86.7%, 25.0% 93.3%, 23.1% 76.9%, 6.7% 75.0%, 13.3% 59.8%, 0.0% 50.0%, 13.3% 40.2%, 6.7% 25.0%, 23.1% 23.1%, 25.0% 6.7%, 40.2% 13.3%, 50.0% 0.0%, 59.8% 13.3%, 75.0% 6.7%, 76.9% 23.1%, 93.3% 25.0%, 86.7% 40.2%); }
    @keyframes t-badge-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.09); } }
    .t-badge-pulse { animation: t-badge-pulse 1.8s ease-in-out infinite; }
    @keyframes t-badge-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
    .t-badge-float { animation: t-badge-float 3.6s ease-in-out infinite; }
    @keyframes t-badge-bounce { 0%, 55%, 100% { transform: translateY(0); } 30% { transform: translateY(-12px); } 42% { transform: translateY(2px); } }
    .t-badge-bounce { animation: t-badge-bounce 2.2s cubic-bezier(.34,1.56,.64,1) infinite; }
    @keyframes t-badge-wiggle { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
    .t-badge-wiggle { animation: t-badge-wiggle 1.6s ease-in-out infinite; }
    @keyframes t-badge-pop { 0% { opacity: 0; transform: scale(.4); } 70% { opacity: 1; transform: scale(1.12); } 100% { opacity: 1; transform: scale(1); } }
    .t-badge-pop { animation: t-badge-pop .6s .35s cubic-bezier(.34,1.56,.64,1) both; }
    /* H4g — slikovna nalepka (izrezan izdelek, PNG) + klikljive nalepke (povezava na izdelek) */
    .sf-hxb-img { display: block; max-width: 42vw; height: auto;
        filter: drop-shadow(0 18px 28px rgb(0 0 0 / .35)); }
    .sf-hero-badges a.sf-hxb { pointer-events: auto; text-decoration: none; }
    .sf-hero-badges a.sf-hxb:hover .sf-hxb-in { filter: brightness(1.08); }
    .sf-hero-badges a.sf-hxb:hover .sf-hxb-img { filter: drop-shadow(0 22px 32px rgb(0 0 0 / .45)) brightness(1.04); }

    /* ---- hero-fx: heading mask-up + shine ---- */
    .t-anim-maskUp { animation: t-mask-up .95s cubic-bezier(.22,1,.36,1) both; -webkit-mask-image: linear-gradient(black, black); mask-image: linear-gradient(black, black); }
    @keyframes t-mask-up { from { clip-path: inset(110% 0 0 0); transform: translateY(.25em); } to { clip-path: inset(0 0 0 0); transform: none; } }
    .t-anim-shine {
        background: linear-gradient(100deg, currentColor 35%, color-mix(in srgb, currentColor 35%, white) 50%, currentColor 65%);
        background-size: 250% 100%;
        -webkit-background-clip: text; background-clip: text; color: transparent;
        animation: t-shine 3.2s linear infinite;
    }
    @keyframes t-shine { from { background-position: 150% 0; } to { background-position: -150% 0; } }

    /* ==== H4f: premium možnosti pasice ================================== */

    /* Barvni filter slike (t-if-*) — razred na ovoju medija (.sf-hx-bg / .sf-hero-sport-bg /
       .sf-hx-splitimg); "brand" = razbarvana slika + primarna barva prek mix-blend (duotone). */
    .t-if-warm img,  .t-if-warm video  { filter: saturate(1.22) sepia(.16) contrast(1.05); }
    .t-if-cool img,  .t-if-cool video  { filter: saturate(1.08) hue-rotate(-12deg) brightness(1.03); }
    .t-if-mono img,  .t-if-mono video  { filter: grayscale(1) contrast(1.06); }
    .t-if-vivid img, .t-if-vivid video { filter: saturate(1.45) contrast(1.1); }
    .t-if-soft img,  .t-if-soft video  { filter: saturate(.88) brightness(1.06) contrast(.92); }
    .t-if-brand img, .t-if-brand video { filter: grayscale(1) contrast(1.05); }
    .t-if-brand::after { content: ""; position: absolute; inset: 0; background: var(--color-primary-600);
        mix-blend-mode: color; pointer-events: none; }

    /* Podlaga vsebine (steklena kartica / obroba) — na .sf-hx-content oz. .sf-hero-sport-copy. */
    .sf-cbk { border-radius: 1.25rem; padding: clamp(1.4rem, 3.5vw, 2.5rem); max-width: 100%; box-sizing: border-box; }
    .sf-hx-content--center.sf-cbk { margin-inline: auto; }
    .sf-hx-content--right.sf-cbk  { margin-left: auto; }
    .sf-cbk--glass { background: rgb(10 12 18 / .42); border: 1px solid rgb(255 255 255 / .16);
        -webkit-backdrop-filter: blur(18px) saturate(1.25); backdrop-filter: blur(18px) saturate(1.25);
        box-shadow: 0 24px 70px -32px rgb(0 0 0 / .55); }
    .sf-cbk--glassLight { background: rgb(255 255 255 / .78); border: 1px solid rgb(255 255 255 / .5);
        -webkit-backdrop-filter: blur(16px) saturate(1.15); backdrop-filter: blur(16px) saturate(1.15);
        box-shadow: 0 24px 70px -36px rgb(0 0 0 / .35); }
    .sf-cbk--outline { border: 1.5px solid rgb(255 255 255 / .38); }
    .sf-hx.sf-tx-dark .sf-cbk--outline, .sf-hx--tone-neutral .sf-cbk--outline { border-color: rgb(20 20 25 / .28); }
    /* svetlo steklo prisili temno besedilo (sicer belo besedilo na beli podlagi) */
    .sf-hx .sf-cbk--glassLight, .sf-hx .sf-cbk--glassLight h1 { color: var(--color-ink, #16181d); }
    .sf-hx .sf-cbk--glassLight .sf-hx-sub { color: rgb(23 23 28 / .75); }
    .sf-hero-sport-copy.sf-cbk--glassLight .sf-hero-sport-word:not(.hl) { color: var(--color-ink, #16181d); }
    .sf-hero-sport-copy.sf-cbk--glassLight .sf-hero-sport-lead { color: rgb(23 23 28 / .72); }
    .sf-hero-sport-copy.sf-cbk--glassLight .sf-hero-sport-btn--ghost { border-color: rgb(20 20 25 / .45); color: var(--color-ink, #16181d); }
    .sf-hero-sport-copy.sf-cbk { max-width: min(640px, 100%); }

    /* Velika obrisna beseda v ozadju (watermark) — pod vsebino, nad medijem/prekritjem. */
    .sf-hx-bword { position: absolute; inset: 0; z-index: 3; display: flex; align-items: center;
        justify-content: center; overflow: hidden; pointer-events: none; }
    .sf-hero-sport .sf-hx-bword { z-index: 1; }
    /* --sf-bw (privzeto 1) skalira alfo obrisa → nastavljiva »moč besede v ozadju«. Prva (statična)
       izjava je fallback za brskalnike brez calc() v rgb(); druga jo na sodobnih prepiše. Pri --sf-bw:1
       je rezultat enak fallbacku (obstoječe pasice byte-identične). */
    .sf-hx-bword span { font-family: var(--font-heading); font-weight: 900; font-size: clamp(80px, 17vw, 240px);
        line-height: 1; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
        color: transparent; -webkit-text-stroke: 1.5px rgb(255 255 255 / .18);
        -webkit-text-stroke: 1.5px rgb(255 255 255 / calc(.18 * var(--sf-bw, 1))); }
    .sf-tx-dark .sf-hx-bword span, .sf-hx--tone-neutral .sf-hx-bword span,
    .sf-hx--gradient .sf-hx-bword span, .sf-hx--minimal .sf-hx-bword span,
    .sf-hx--split .sf-hx-bword span { -webkit-text-stroke-color: rgb(20 20 25 / .12);
        -webkit-text-stroke-color: rgb(20 20 25 / calc(.12 * var(--sf-bw, 1))); }

    /* Koda za popust — čip s klikom-za-kopiranje (skripta v Page.cshtml, [data-copy]). */
    .sf-hx-code { display: inline-flex; align-items: baseline; gap: .6em; padding: .55em 1em;
        border: 1.5px dashed rgb(255 255 255 / .55); border-radius: .65em; background: rgb(255 255 255 / .08);
        color: inherit; font-family: var(--font-heading); font-size: .95rem; cursor: pointer;
        transition: background .15s var(--ease), border-color .15s var(--ease); }
    .sf-hx-code b { font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
    .sf-hx-code i { font-style: normal; font-size: .68em; letter-spacing: .1em; text-transform: uppercase; opacity: .65; }
    .sf-hx-code:hover { background: rgb(255 255 255 / .16); }
    .sf-hx-code.is-copied { border-style: solid; border-color: var(--color-accent-500, #C8176A); }
    .sf-hx.sf-tx-dark .sf-hx-code, .sf-hx--tone-neutral .sf-hx-code, .sf-hero.sf-tx-dark .sf-hx-code {
        border-color: rgb(20 20 25 / .4); background: rgb(20 20 25 / .06); }

    /* Izmenjujoče besede v naslovu — grid-stack; vsaka beseda vidna 1/n cikla (inline animacija). */
    .t-rw { display: inline-grid; vertical-align: baseline; color: var(--color-accent-500, var(--color-accent, #c8176a)); }
    .t-rw > span { grid-area: 1 / 1; opacity: 0; white-space: nowrap; will-change: opacity, transform; }
    @keyframes t-rw-2 { 0%{opacity:0;transform:translateY(.4em)} 8%{opacity:1;transform:none} 42%{opacity:1;transform:none} 50%{opacity:0;transform:translateY(-.4em)} 100%{opacity:0;transform:translateY(.4em)} }
    @keyframes t-rw-3 { 0%{opacity:0;transform:translateY(.4em)} 6%{opacity:1;transform:none} 27.3%{opacity:1;transform:none} 33.3%{opacity:0;transform:translateY(-.4em)} 100%{opacity:0;transform:translateY(.4em)} }
    @keyframes t-rw-4 { 0%{opacity:0;transform:translateY(.4em)} 4.5%{opacity:1;transform:none} 20.5%{opacity:1;transform:none} 25%{opacity:0;transform:translateY(-.4em)} 100%{opacity:0;transform:translateY(.4em)} }
    @keyframes t-rw-5 { 0%{opacity:0;transform:translateY(.4em)} 3.6%{opacity:1;transform:none} 16.4%{opacity:1;transform:none} 20%{opacity:0;transform:translateY(-.4em)} 100%{opacity:0;transform:translateY(.4em)} }

    /* Oblika spodnjega roba — SVG v barvi podlage strani čez dno pasice. */
    .sf-hero-edge { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 12; pointer-events: none; line-height: 0; }
    .sf-hero-edge svg { display: block; width: 100%; height: clamp(28px, 6vw, 76px); fill: var(--color-canvas, #fff); }

    /* H4f-2 — parallax ob drsenju: slika je višja od pasice (rezerva za pomik), transform
       nastavlja deljena skripta na dnu te datoteke (brez JS = statičen izrez zgornjega dela). */
    .sf-hx-bg .t-parallax, .sf-hero-sport-bg .t-parallax, .sf-hx-splitimg .t-parallax {
        height: 132%; will-change: transform; }

    /* H4f-2 — žaromet sledi miški: radialen sij na poziciji kazalca (--spot-x/y nastavlja
       skripta; privzeto rahlo nad sredino, zato je viden tudi brez miške/na dotik). */
    .t-deco-spotlight {
        background: radial-gradient(clamp(220px, 30vw, 460px) circle at var(--spot-x, 50%) var(--spot-y, 40%),
            rgb(255 255 255 / .18), rgb(255 255 255 / .06) 45%, transparent 70%);
        mix-blend-mode: overlay; }

    /* ══ W0 · Wave-2 infrastruktura (docs/structural-presets-wave2.md) ══
       Deljeni primitivi za faze W1+; dokler jih preseti ne uporabijo, so vizualni no-op. */

    /* A11y quality-floor: »Na vsebino« (vstavi jo W0 skripta spodaj) — vidna šele ob fokusu
       s tipkovnico; + tematiziran fokusni obroč za tipkovnično navigacijo. */
    .sf-skip { position: fixed; top: .75rem; left: .75rem; z-index: var(--z-skip, 210);
        background: var(--color-surface, var(--color-canvas)); color: var(--color-ink);
        font-weight: 600; padding: .55rem .9rem; border-radius: var(--radius);
        border: 1px solid var(--color-line); box-shadow: var(--shadow-lg);
        transform: translateY(-250%); }
    .sf-skip:focus { transform: none; }
    :focus-visible { outline: var(--focus-ring-w, 2px) solid var(--focus-ring-color, var(--color-primary-600)); outline-offset: 2px; }
    main:focus, main:focus-visible { outline: none; } /* cilj skip povezave, ni interaktiven */
    .sf-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
        overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

    /* Skeleton shimmer za asinhrone površine (mini-cart, predlogi iskanja …) — W2/W3. */
    .sf-skel { position: relative; overflow: hidden; color: transparent !important;
        pointer-events: none; user-select: none; border-radius: var(--radius-sm);
        background: var(--skel-bg, color-mix(in oklab, var(--color-ink) 8%, var(--color-canvas))); }
    .sf-skel::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%);
        background: linear-gradient(100deg, transparent 20%, color-mix(in oklab, var(--color-canvas) 65%, transparent) 50%, transparent 80%);
        animation: sf-skel-wave calc(1.4s * var(--motion-scale, 1)) infinite; }
    @keyframes sf-skel-wave { to { transform: translateX(100%); } }

    /* Bottom-dock (mobilni fiksni pasovi) — sfDock dovoli EN »commerce bar« naenkrat
       (prioritete: nakup > košarica > filtri > obvestilo); safe-area za iOS brado. */
    .sf-dock-item { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-dock, 80);
        padding-bottom: env(safe-area-inset-bottom, 0); }
    .sf-dock-item.is-dock-hidden { display: none !important; }

    @media (prefers-reduced-motion: reduce) {
        .sf-skel::after { animation: none; }
        .t-anim, .t-anim-maskUp, .t-anim-shine, .t-words > span, .t-kenburns, .t-zoom-settle,
        .t-hero-float, .t-img-reveal, .t-aurora, .t-blob, .t-deco-rings, .t-deco-beams, .t-slide,
        .sf-hero-rot-item,
        .t-badge-pulse, .t-badge-float, .t-badge-bounce, .t-badge-wiggle, .t-badge-pop {
            animation: none !important;
        }
        /* H4f — brez kinetike: prikaži samo prvo izmenjujočo besedo */
        .t-rw > span { animation: none !important; }
        .t-rw > span:first-child { opacity: 1; }
        /* H4f-2 — parallax brez JS pomika: normalna višina (brez čudnega izreza) */
        .sf-hx-bg .t-parallax, .sf-hero-sport-bg .t-parallax, .sf-hx-splitimg .t-parallax { height: 100%; }
        /* H4g — ročno listanje ostane (uporabnikova akcija), a preklop brez prelivanja */
        .sf-hero-rot.is-manual > .sf-hero-rot-anim { transition: none !important; }
        .t-img-reveal, .t-anim-maskUp { clip-path: none !important; }
        .t-anim-shine { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: inherit; }
        .t-slide, .sf-hero-rot-item { opacity: 0; }
        .t-slide:first-child, .sf-hero-rot-item:first-child { opacity: 1; }
    }
    .sf-mc { position: fixed; inset: 0; z-index: var(--z-modal, 200); display: none; }
    .sf-mc.is-open { display: block; }
    .sf-mc-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.42); opacity: 0; transition: opacity .25s; }
    .sf-mc.is-open .sf-mc-backdrop { opacity: 1; }
    .sf-mc--dropdown .sf-mc-backdrop { background: transparent; }
    .sf-mc-panel { position: absolute; background: var(--color-surface); color: var(--color-ink); display: flex; flex-direction: column; box-shadow: 0 12px 40px rgba(0,0,0,.24); }
    .sf-mc--drawer .sf-mc-panel { top: 0; right: 0; bottom: 0; width: min(400px, 92vw); transform: translateX(100%); transition: transform .28s var(--ease); }
    .sf-mc--drawer.is-open .sf-mc-panel { transform: none; }
    .sf-mc--dropdown .sf-mc-panel { top: var(--sf-mc-top, 64px); right: var(--sf-mc-right, 16px); width: min(360px, 92vw); max-height: 70vh; border-radius: var(--radius-lg, 8px); border: 1px solid var(--color-line); opacity: 0; transform: translateY(-8px); transition: opacity .2s, transform .2s; }
    .sf-mc--dropdown.is-open .sf-mc-panel { opacity: 1; transform: none; }
    .sf-mc-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.15rem; border-bottom: 1px solid var(--color-line); }
    .sf-mc-title { font-weight: 700; font-size: 1rem; margin: 0; }
    .sf-mc-close { background: none; border: none; cursor: pointer; color: var(--color-muted); padding: .3rem; display: flex; border-radius: .4rem; }
    .sf-mc-close:hover { background: color-mix(in oklab, var(--color-ink) 8%, transparent); }
    .sf-mc-body { flex: 1; overflow-y: auto; padding: .5rem .75rem; }
    .sf-mc-line { display: flex; gap: .75rem; padding: .6rem .4rem; border-bottom: 1px solid var(--color-line); align-items: center; }
    .sf-mc-line:last-child { border-bottom: none; }
    .sf-mc-img { width: 52px; height: 52px; flex-shrink: 0; border-radius: .5rem; overflow: hidden; background: var(--color-canvas); display: flex; align-items: center; justify-content: center; }
    .sf-mc-img img { width: 100%; height: 100%; object-fit: contain; }
    .sf-mc-info { flex: 1; min-width: 0; }
    .sf-mc-name { font-size: .85rem; font-weight: 600; margin: 0 0 .15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .sf-mc-meta { font-size: .8rem; color: var(--color-muted); }
    .sf-mc-empty { padding: 2.5rem 1rem; text-align: center; color: var(--color-muted); }
    .sf-mc-foot { padding: 1rem 1.15rem; border-top: 1px solid var(--color-line); }
    .sf-mc-sum { display: flex; justify-content: space-between; font-weight: 700; margin-bottom: .75rem; }
    .sf-mc-cta { display: block; text-align: center; padding: .8rem; background: var(--grad-brand); color: #fff; font-weight: 700; border-radius: .6rem; text-decoration: none; }
    .sf-mc-skel { display: flex; gap: .75rem; padding: .6rem .4rem; align-items: center; }
    .sf-mc-skel .sf-mc-img { background: none; }
    @media (prefers-reduced-motion: reduce) { .sf-mc-backdrop, .sf-mc-panel { transition: none !important; } }
