/*
Theme Name: KOLAS Modern
Theme URI: https://kolas.com/
Description: Child of Hello Elementor. Carries the rebuilt KOLAS header and footer to every page.
             GENERATED by bin/build_theme.py from index.html — do not hand-edit, your change will
             be overwritten. Edit index.html and rebuild.
Author: Bogdan
Template: hello-elementor
Version: 1.0.0
*/

@font-face{font-family:"Bricolage Grotesque";src:url("fonts/bricolage-grotesque.woff2") format("woff2-variations");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Gabarito";src:url("fonts/gabarito.woff2") format("woff2-variations");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Martian Mono";src:url("fonts/martian-mono.woff2") format("woff2-variations");font-weight:300 600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ── the parent reset on a page that is not wired (bin/wp_part.py unwired_reset_block, guard
   T18): outside a layer, in the old order, each rule with its own specificity ── */
html:where(:not(:has(> body.kolas-wired))){line-height:1.15;-webkit-text-size-adjust:100%}
:where(body:not(.kolas-wired)) *,:where(body:not(.kolas-wired)) :after,:where(body:not(.kolas-wired)) :before{box-sizing:border-box}
body:where(:not(.kolas-wired)){background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
:where(body:not(.kolas-wired)) h1,:where(body:not(.kolas-wired)) h2,:where(body:not(.kolas-wired)) h3,:where(body:not(.kolas-wired)) h4,:where(body:not(.kolas-wired)) h5,:where(body:not(.kolas-wired)) h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}
:where(body:not(.kolas-wired)) h1{font-size:2.5rem}
:where(body:not(.kolas-wired)) h2{font-size:2rem}
:where(body:not(.kolas-wired)) h3{font-size:1.75rem}
:where(body:not(.kolas-wired)) h4{font-size:1.5rem}
:where(body:not(.kolas-wired)) h5{font-size:1.25rem}
:where(body:not(.kolas-wired)) h6{font-size:1rem}
:where(body:not(.kolas-wired)) p{margin-block-end:.9rem;margin-block-start:0}
:where(body:not(.kolas-wired)) hr{box-sizing:content-box;height:0;overflow:visible}
:where(body:not(.kolas-wired)) pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}
:where(body:not(.kolas-wired)) a{background-color:transparent;color:#c36;text-decoration:none}
:where(body:not(.kolas-wired)) a:not([href]):not([tabindex]),:where(body:not(.kolas-wired)) a:not([href]):not([tabindex]):focus,:where(body:not(.kolas-wired)) a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}
:where(body:not(.kolas-wired)) a:not([href]):not([tabindex]):focus{outline:0}
:where(body:not(.kolas-wired)) abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}
:where(body:not(.kolas-wired)) b,:where(body:not(.kolas-wired)) strong{font-weight:bolder}
:where(body:not(.kolas-wired)) code,:where(body:not(.kolas-wired)) kbd,:where(body:not(.kolas-wired)) samp{font-family:monospace,monospace;font-size:1em}
:where(body:not(.kolas-wired)) small{font-size:80%}
:where(body:not(.kolas-wired)) sub,:where(body:not(.kolas-wired)) sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
:where(body:not(.kolas-wired)) sub{bottom:-.25em}
:where(body:not(.kolas-wired)) sup{top:-.5em}
:where(body:not(.kolas-wired)) img{border-style:none;height:auto;max-width:100%}
:where(body:not(.kolas-wired)) details{display:block}
:where(body:not(.kolas-wired)) summary{display:list-item}
:where(body:not(.kolas-wired)) figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}
:where(body:not(.kolas-wired)) [hidden],:where(body:not(.kolas-wired)) template{display:none}
@media print{
:where(body:not(.kolas-wired)) *,:where(body:not(.kolas-wired)) :after,:where(body:not(.kolas-wired)) :before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}
:where(body:not(.kolas-wired)) a,:where(body:not(.kolas-wired)) a:visited{text-decoration:underline}
:where(body:not(.kolas-wired)) a[href]:after{content:" (" attr(href) ")"}
:where(body:not(.kolas-wired)) abbr[title]:after{content:" (" attr(title) ")"}
:where(body:not(.kolas-wired)) a[href^="#"]:after,:where(body:not(.kolas-wired)) a[href^="javascript:"]:after{content:""}
:where(body:not(.kolas-wired)) pre{white-space:pre-wrap!important}
:where(body:not(.kolas-wired)) blockquote,:where(body:not(.kolas-wired)) pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}
:where(body:not(.kolas-wired)) thead{display:table-header-group}
:where(body:not(.kolas-wired)) img,:where(body:not(.kolas-wired)) tr{-moz-column-break-inside:avoid;break-inside:avoid}
:where(body:not(.kolas-wired)) h2,:where(body:not(.kolas-wired)) h3,:where(body:not(.kolas-wired)) p{orphans:3;widows:3}
:where(body:not(.kolas-wired)) h2,:where(body:not(.kolas-wired)) h3{-moz-column-break-after:avoid;break-after:avoid}
}
:where(body:not(.kolas-wired)) label{display:inline-block;line-height:1;vertical-align:middle}
:where(body:not(.kolas-wired)) button,:where(body:not(.kolas-wired)) input,:where(body:not(.kolas-wired)) optgroup,:where(body:not(.kolas-wired)) select,:where(body:not(.kolas-wired)) textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}
:where(body:not(.kolas-wired)) input[type=date],:where(body:not(.kolas-wired)) input[type=email],:where(body:not(.kolas-wired)) input[type=number],:where(body:not(.kolas-wired)) input[type=password],:where(body:not(.kolas-wired)) input[type=search],:where(body:not(.kolas-wired)) input[type=tel],:where(body:not(.kolas-wired)) input[type=text],:where(body:not(.kolas-wired)) input[type=time],:where(body:not(.kolas-wired)) input[type=url],:where(body:not(.kolas-wired)) select,:where(body:not(.kolas-wired)) textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}
:where(body:not(.kolas-wired)) input[type=date]:focus,:where(body:not(.kolas-wired)) input[type=email]:focus,:where(body:not(.kolas-wired)) input[type=number]:focus,:where(body:not(.kolas-wired)) input[type=password]:focus,:where(body:not(.kolas-wired)) input[type=search]:focus,:where(body:not(.kolas-wired)) input[type=tel]:focus,:where(body:not(.kolas-wired)) input[type=text]:focus,:where(body:not(.kolas-wired)) input[type=time]:focus,:where(body:not(.kolas-wired)) input[type=url]:focus,:where(body:not(.kolas-wired)) select:focus,:where(body:not(.kolas-wired)) textarea:focus{border-color:#333}
:where(body:not(.kolas-wired)) button,:where(body:not(.kolas-wired)) input{overflow:visible}
:where(body:not(.kolas-wired)) button,:where(body:not(.kolas-wired)) select{text-transform:none}
:where(body:not(.kolas-wired)) [type=button],:where(body:not(.kolas-wired)) [type=reset],:where(body:not(.kolas-wired)) [type=submit],:where(body:not(.kolas-wired)) button{-webkit-appearance:button;width:auto}
:where(body:not(.kolas-wired)) [type=button],:where(body:not(.kolas-wired)) [type=submit],:where(body:not(.kolas-wired)) button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}
:where(body:not(.kolas-wired)) [type=button]:focus:not(:focus-visible),:where(body:not(.kolas-wired)) [type=submit]:focus:not(:focus-visible),:where(body:not(.kolas-wired)) button:focus:not(:focus-visible){outline:none}
:where(body:not(.kolas-wired)) [type=button]:not(:disabled),:where(body:not(.kolas-wired)) [type=submit]:not(:disabled),:where(body:not(.kolas-wired)) button:not(:disabled){cursor:pointer}
:where(body:not(.kolas-wired)) fieldset{padding:.35em .75em .625em}
:where(body:not(.kolas-wired)) legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}
:where(body:not(.kolas-wired)) progress{vertical-align:baseline}
:where(body:not(.kolas-wired)) textarea{overflow:auto;resize:vertical}
:where(body:not(.kolas-wired)) [type=checkbox],:where(body:not(.kolas-wired)) [type=radio]{box-sizing:border-box;padding:0}
:where(body:not(.kolas-wired)) [type=number]::-webkit-inner-spin-button,:where(body:not(.kolas-wired)) [type=number]::-webkit-outer-spin-button{height:auto}
:where(body:not(.kolas-wired)) [type=search]{-webkit-appearance:textfield;outline-offset:-2px}
:where(body:not(.kolas-wired)) [type=search]::-webkit-search-decoration{-webkit-appearance:none}
:where(body:not(.kolas-wired)) ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
:where(body:not(.kolas-wired)) select{display:block}
:where(body:not(.kolas-wired)) table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}
:where(body:not(.kolas-wired)) table td,:where(body:not(.kolas-wired)) table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}
:where(body:not(.kolas-wired)) table th{font-weight:700}
:where(body:not(.kolas-wired)) table tfoot th,:where(body:not(.kolas-wired)) table thead th{font-size:1em}
:where(body:not(.kolas-wired)) table caption+thead tr:first-child td,:where(body:not(.kolas-wired)) table caption+thead tr:first-child th,:where(body:not(.kolas-wired)) table colgroup+thead tr:first-child td,:where(body:not(.kolas-wired)) table colgroup+thead tr:first-child th,:where(body:not(.kolas-wired)) table thead:first-child tr:first-child td,:where(body:not(.kolas-wired)) table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}
:where(body:not(.kolas-wired)) table tbody>tr:nth-child(odd)>td,:where(body:not(.kolas-wired)) table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}
:where(body:not(.kolas-wired)) table tbody tr:hover>td,:where(body:not(.kolas-wired)) table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}
:where(body:not(.kolas-wired)) table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}
@media(max-width:767px){
:where(body:not(.kolas-wired)) table table{font-size:.8em}
:where(body:not(.kolas-wired)) table table td,:where(body:not(.kolas-wired)) table table th{line-height:1.3;padding:7px}
:where(body:not(.kolas-wired)) table table th{font-weight:400}
}
:where(body:not(.kolas-wired)) dd,:where(body:not(.kolas-wired)) dl,:where(body:not(.kolas-wired)) dt,:where(body:not(.kolas-wired)) li,:where(body:not(.kolas-wired)) ol,:where(body:not(.kolas-wired)) ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}
/* Its two recolouring state rules, in the layer hello-reset: they never beat a rule outside a layer. */
@layer hello-reset{
:where(body:not(.kolas-wired)) a:active,:where(body:not(.kolas-wired)) a:hover{color:#336}
:where(body:not(.kolas-wired)) [type=button]:focus,:where(body:not(.kolas-wired)) [type=button]:hover,:where(body:not(.kolas-wired)) [type=submit]:focus,:where(body:not(.kolas-wired)) [type=submit]:hover,:where(body:not(.kolas-wired)) button:focus,:where(body:not(.kolas-wired)) button:hover{background-color:#c36;color:#fff;text-decoration:none}
}

/* Scoped, never global. A `*` reset or a `body` rule would restyle Elementor page content, which
   is not ours to touch — only the header and footer are.
   The font MUST be set here: without it the header inherited Elementor's Work Sans, because the
   homepage sets its type on `body` and that rule is deliberately not shipped. */
.hdr, .hdr *, .hdr *::before, .hdr *::after,
.ftr, .ftr *, .ftr *::before, .ftr *::after { box-sizing: border-box; }
.hdr, .ftr {
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;   /* the mockups' body line-height (index.html); 1.5 made the footer 12 px shorter */
}
/* The keyboard focus ring of the mockups (index.html :focus-visible), on the pages that are not wired
   (round 3c, 2026-09-30): the chrome of every page, and the content of our own theme pages
   (kolas-ours: /shop/, /brands/, /faqs/, the house brand pages). A wired page has it from its base
   block. Inside :where(), so any component rule wins; the browser's own ring loses to any author rule.
   Measured before: 131 focus rows on /shop/ with the browser's "auto 1px" ring. */
:where(body:not(.kolas-wired) :is(.hdr,.pick,.ftr,.bar) :focus-visible),
:where(body.kolas-ours:not(.kolas-wired) #content :focus-visible) {
  outline: 2px solid var(--brand); outline-offset: 3px; border-radius: var(--r2);
}
/* `color: inherit` is load-bearing. Elementor sets a global `a{color:…}` which beats our
   inherited colour, and the nav rendered as near-invisible dark purple on the purple bar. */
.hdr a, .ftr a { text-decoration: none; color: inherit; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* ── two faults the asset strip creates on the pages WE render ───────────────────────────
   Both were LIVE on /faqs/ from the day it shipped and were found on 2026-09-17 while
   building /brands/. Both are scoped to `.kolas-ours`, because on an Elementor page the
   very CSS we are replacing is still doing these jobs correctly.

   1. "Skip to content" WAS VISIBLE. WordPress core prints
      `<a class="skip-link screen-reader-text">` and expects the theme to hide it.
      hello-elementor's main stylesheet does that, and the strip drops it — only reset.css
      survives. Measured: 106x18px and `position:static` on /faqs/ and /brands/, against
      1x1 clipped on /blog/, which still loads Elementor's CSS. `.sr-only` was defined here
      but nothing uses that class; the class WordPress actually emits is
      `.screen-reader-text`. Unscoped, because a visible skip link is wrong everywhere and
      nothing else is styling it on our pages. */
.screen-reader-text {
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; padding:0;
  margin:-1px;
}
.screen-reader-text:focus {
  position:static !important; width:auto; height:auto; clip:auto; clip-path:none;
  margin:0; padding:12px 18px; background:var(--surface); color:var(--ink);
  border-radius:var(--r3); font-weight:700; z-index:200;
}

/* 2. ELEMENTOR'S GLOBAL `a { color }` REACHES OUR MARKUP. On an interior page it resolves
      to #CC3366 — a magenta from the old design, and the vocabulary of rejected direction 3.
      Any <a> of ours that does not state a colour inherits it, and so does any child that
      does not state one: the in-stock numbers inside the brand-guide tiles rendered magenta
      on white. Same fault as the header nav going near-invisible purple on the purple bar
      (2026-09-15), so it wants the same one-word fix.

      BUT NOT AS `.kolas-ours a`. That selector is (0,1,1) and every component of ours is a
      bare class at (0,1,0) — so it would outrank `.more`, `.btn--brand` and `.crumb a`'s
      siblings and quietly grey out every styled link on the page. The blanket was written,
      then thrown away for exactly that reason.
      The rule instead: ANY <a> WE EMIT THAT IS A CONTAINER MUST STATE ITS OWN COLOUR, so
      nothing inside it can inherit Elementor's. Keep new ones on this list. */
.kolas-ours .bx-g__c { color: var(--ink); }
.kolas-ours .bx-o__c { color: #fff; }
.kolas-ours .bx-t { color: var(--ink); }   /* ASSESS-2 F12: no reset #CC3366 on a container link */
.kolas-ours .bx-p__m { color: var(--ink); }

/* 3. `prefers-reduced-motion` WAS ALMOST ENTIRELY LOST. index.html carries a global reset —
      `*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms
      !important}` — and the CSS filter drops it, because `*` touches none of the KEEP
      families. What survived into the theme was three component-specific overrides (the FAQ
      chevron, the FAQ body, the picker card) and nothing else.
      So on every page we render, and in the header and footer on ALL 63 pages, the sticky
      header, the card lift, the underline wipe, the arrow slide and the brand-cell zoom all
      ignored the setting. Live since the theme shipped 2026-09-15; found 2026-09-17 by the
      web-design-guidelines audit, rule 29.
      Scoped to our components and our pages rather than re-adding the bare `*`, because an
      unscoped !important reset would also silence Elementor's own animations on 60 pages
      that are not ours to change. */
@media (prefers-reduced-motion: reduce) {
  .hdr *, .hdr *::before, .hdr *::after,
  .ftr *, .ftr *::before, .ftr *::after,
  .kolas-ours *, .kolas-ours *::before, .kolas-ours *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Headings set their own wrap. index.html balances only .pband h1; a two-line .sec__h h2
   was leaving a one-word second line. */
.kolas-ours .sec__h h2 { text-wrap: balance; font-family: var(--display); font-weight: 700; line-height: 1.02; letter-spacing: -.03em; }
/* (2026-10-01, ASSESS-2 F1) A legacy WPCode snippet prints body{font-family:'Poppins'}, a font that never loads,
   so /shop/, /brands/ and /faqs/ fell back to the system sans. (0,1,1) beats its (0,0,1) in any order. */
body.kolas-ours { font-family: var(--sans); }

/* Every tap target on our pages. Without it Safari waits ~300ms on each tap to see whether
   a second one is coming, and 90.5% of clicks here are on a phone. */
.kolas-ours a, .kolas-ours button, .hdr a, .hdr button, .ftr a {
  touch-action: manipulation;
}
.hdr .btn--gold, .ftr .btn--gold { color: #241046; }
.ftr h4 { margin: 0 0 14px; }

:root{/* ---- light surfaces: the body of the page ---- */
  --ground:#F4F3F8; --surface:#FFFFFF; --sunken:#EEECF5; --chip:#EDE9F6;
  --ink:#1A1626;      /* 17.70:1 on white */
  --ink-2:#4B4557;    /*  9.18:1 */
  --muted:#625C73;    /*  6.37:1 */
  --border:#E2DFEC;   /* non-interactive dividers only */
  --hair:#ECEAF3;
  --edge:#8C82A6;     /* INTERACTIVE borders. 3.58:1 on white, clears 1.4.11 */

  /* ---- brand ---- */
  --brand:#401C7B;    /* 12.57:1 on white */
  --press:#2F1459;
  --link:#5B2FA8;     /*  8.69:1 on white */
  --soft:#B9A9D6;     /*  7.85:1 on deep */

  /* ---- deep surfaces: hero, spotlight, footer ---- */
  --deep:#241046;     /* white 16.97:1 · gold 8.55:1 */
  --deep-2:#33175E;   /* white 14.74:1 · gold 7.42:1 */
  --deep-hair:rgba(255,255,255,.14);
  --deep-panel:rgba(255,255,255,.05);

  /* ---- gold, three roles, each measured ---- */
  --gold:#D8B36A;        /* DARK surfaces only. 8.55:1 on deep. */
  --gold-struct:#A8802E; /* boundaries on light. 3.63:1 on white. */
  --gold-text:#9A6E1F;   /* the only gold that carries text on light. 4.54:1 */

  /* ---- status ---- */
  --open:#0E7350;   /* 5.85:1 on white */
  --closed:#A8321B; /* 6.69:1 on white. Both fail on deep — status lives on light. */

  /* ---- type ---- */
  --display:"Bricolage Grotesque",Georgia,serif;
  --sans:"Gabarito",system-ui,-apple-system,sans-serif;
  --label:"Martian Mono",ui-monospace,SFMono-Regular,monospace;

  /* ---- shape · space · motion ---- */
  --r2:6px; --r3:8px; --r4:12px; --r5:16px; --r6:24px;
  --t-micro:120ms; --t-comp:180ms; --t-enter:320ms;
  --ease:cubic-bezier(.2,0,0,1);
  --wrap:1240px; --gutter:20px; --sec:56px;}
.hdr :focus-visible,
.hero :focus-visible,
.bwall :focus-visible,
.shelfA :focus-visible,
.bar :focus-visible,
.ftr :focus-visible{outline-color:var(--gold)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gutter);top:10px;z-index:200;background:var(--surface);
  padding:12px 18px;border-radius:var(--r3);font-weight:700}
/* label voice — the compliance-label vernacular. Potency, weight, licence, codes. */
.lbl{font-family:var(--label);font-size:13.5px;font-weight:400;letter-spacing:.16em;
  text-transform:uppercase;font-variation-settings:"wdth" 100}
.num{font-family:var(--sans);font-variant-numeric:tabular-nums;font-weight:600}
/* ═════════════════════════════ HEADER ═════════════════════════════ */
.hdr{position:sticky;top:0;z-index:80;background:rgba(36,16,70,.86);
  backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid var(--deep-hair);color:#fff}
.hdr__in{display:flex;align-items:center;gap:32px;height:80px;
  max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
/* The KOLAS wordmark is TRADEMARKED ARTWORK, not type. It is never set in a
   typeface — the letterforms are drawn, and the mark carries a ™.
   Source: kolas.com header, Layer-1.svg, 7 paths, fill #401C7B — which is also
   how the locked brand purple was independently confirmed.
   Purple version for light grounds, white for dark. Never recolour otherwise. */
/* The mark leads, the wordmark supports. Pinwheel ~1.8x the wordmark height —
   an earlier pass had them near-equal and the lettering shouted over the mark. */
.mark{display:flex;align-items:center;gap:11px}
.mark__pin{width:40px;height:40px;flex:none}
.mark__word{height:22px;width:auto;display:block}
/* Footer signs off, so it goes larger — same proportion. */
.ftr .mark{gap:14px}
.ftr .mark__pin{width:52px;height:52px}
.ftr .mark__word{height:29px}
/* ═══════════════ MOBILE NAV — rebuilt 2026-09-21 ═══════════════
   FIRST ATTEMPT REJECTED. A second header row holding all five links measured fine and
   looked bad: a second purple band competing with the bar above it, and the labels running
   together because `gap:0` plus `min-width:44px` centred each label in a box narrower than
   its own text. Bogdan: "that's horrible btw, lets get rid of it."

   THIS IS HIS DESIGN, and it is better because it splits the two jobs the header was doing
   at once. Below 900px the gold BUY action leaves the header for a fixed bottom bar, where
   a thumb actually is, and the header keeps one control: a disclosure button that drops the
   five links down.

   The bottom bar is not a new idea. `.bar` already exists on the homepage — "sticky order
   bar, phone only" — so this reuses a pattern already on the site. The theme pages simply
   never had it.

   STILL NO DUPLICATED LINKS. `.nav` itself becomes the panel, so the single <nav> stays the
   one source of links that bin/build_theme.py rewrites from in-page anchors to real paths,
   and the build's href="#" guard cannot be tripped. */
.nav{display:none;gap:28px;font-size:17px;font-weight:600;color:rgba(255,255,255,.78)}
/* Absolutely positioned, so opening it never pushes the page down under a thumb that is
   already mid-tap. */
.nav[data-open]{display:flex;flex-direction:column;gap:0;position:absolute;
  left:0;right:0;top:100%;background:rgba(28,12,54,.98);
  backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid var(--deep-hair);
  padding:4px var(--gutter) 10px;box-shadow:0 18px 40px rgba(0,0,0,.42)}
.nav[data-open] a{display:flex;align-items:center;min-height:52px;font-size:19px;
  color:rgba(255,255,255,.92);border-top:1px solid rgba(255,255,255,.07)}
.nav[data-open] a:first-child{border-top:0}
.nav[data-open] a::after{display:none}
/* Ghost, never gold. After this change there is exactly ONE gold object on a phone and it
   is the buy button in the bottom bar. */
.nav__t{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;
  border:1px solid rgba(255,255,255,.22);border-radius:12px;background:transparent;
  color:#fff;cursor:pointer;padding:0}
.nav__t:hover{border-color:rgba(255,255,255,.42)}
/* PIN THE BACKGROUND, WITH !important, ON EVERY STATE.
   Pressing the button turned it #CC3366 — the Elementor magenta we removed everywhere else.
   Diagnosed rather than guessed: the only rule in any READABLE stylesheet that sets a
   background on this element is our own `transparent`, yet the computed value came back
   rgb(204,51,102). Two of the eleven stylesheets on the page are CORS-blocked third-party
   sheets, and the same scan found `.continue-without a => rgb(204,51,102)` in the AlpineIQ
   age-gate CSS. So a sheet we do not control, and cannot read, is styling a bare <button>.
   !important is the right tool here and there is precedent two rules down: the gold CTA
   already needs `background:var(--gold)!important` for the same reason. */
.hdr .nav__t,
.hdr .nav__t:hover,
.hdr .nav__t:focus,
.hdr .nav__t:active,
.hdr .nav__t[aria-expanded="true"]{background:transparent!important;color:#fff!important}
.nav__t i{display:block;position:relative;width:18px;height:2px;background:currentColor;
  border-radius:2px}
.nav__t i::before,.nav__t i::after{content:"";position:absolute;left:0;width:18px;height:2px;
  background:currentColor;border-radius:2px}
.nav__t i::before{top:-6px}
.nav__t i::after{top:6px}
.nav__t[aria-expanded="true"] i{background:transparent}
.nav__t[aria-expanded="true"] i::before{transform:translateY(6px) rotate(45deg)}
.nav__t[aria-expanded="true"] i::after{transform:translateY(-6px) rotate(-45deg)}
/* The header's buy button steps aside on a phone; the bottom bar carries it. */
.hdr .btn--gold{display:none}
.nav a{padding:6px 0;position:relative;transition:color var(--t-micro) var(--ease)}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;
  background:var(--gold);transition:right var(--t-comp) var(--ease)}
.nav a:hover{color:#fff}
.nav a:hover::after{right:0}
.hdr__end{margin-left:auto;display:flex;align-items:center;gap:12px}
/* buttons — one primary, one ghost, per surface */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--sans);font-weight:700;font-size:17.5px;line-height:1;
  padding:14px 24px;border-radius:999px;border:1px solid transparent;cursor:pointer;
  min-height:44px;transition:transform var(--t-micro) var(--ease),
  background var(--t-micro) var(--ease),border-color var(--t-micro) var(--ease)}
.btn--gold{background:var(--gold);color:#241046}
/* Deepen, never lighten. #E4C384 was a PALER gold, and a pale warm tone on the dark purple
   header reads as dusty pink — the one colour family this rebuild must not touch. Deeper
   keeps the hue and raises contrast with the #241046 label at the same time. */
.btn--gold:hover{transform:translateY(-2px);background:#C9A052}
.btn--ghost{border-color:rgba(255,255,255,.45);color:#fff}
.btn--ghost:hover{transform:translateY(-2px);border-color:#fff;background:rgba(255,255,255,.08)}
.btn--brand{background:var(--brand);color:#fff}
.btn--brand:hover{transform:translateY(-2px);background:var(--press)}
.btn--out{border-color:var(--edge);color:var(--ink);background:var(--surface)}
.btn--out:hover{transform:translateY(-2px);background:var(--sunken)}
.btn--sm{padding:10px 18px;font-size:17px;min-height:40px}
/* The horizontal padding must be restated. This element also carries .wrap, and
   `padding: a 0 b` would reset .wrap's side gutter to zero — which pulled the whole
   hero 40px left of the header and of every section below it.

   min-width:0 is load-bearing. .hero is a flex container, and a flex item will not
   shrink below its own min-content width — so without it the long uppercase eyebrow
   set the width of the whole page and pushed the header's button off-screen at 390px. */
.hero__in{position:relative;z-index:2;width:100%;min-width:0;
  padding:calc(var(--sec) + 8px) var(--gutter) var(--sec)}
.bwall .sec__h h2{color:#fff}
.bwall .sec__h p{color:rgba(255,255,255,.66)}
/* ═════════════════════════════ SECTIONS ═════════════════════════════ */
.sec{padding:var(--sec) 0}
.sec--tight{padding-top:0}
.sec__h{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  margin-bottom:28px;flex-wrap:wrap}
.sec__h h2{font-size:clamp(26px,3.4vw,40px);font-variation-settings:"wdth" 92}
.sec__h p{color:var(--muted);font-size:17.5px;margin-top:10px;max-width:54ch}
/* ---- the page's one hover gesture ----
   Taken from the header nav, which is the effect that already works: a rule wipes in from the
   left while the colour lifts. Used on every text link so a link reads as a link everywhere.

   This rule USED to be `gap:7px` growing to `13px` on hover, and it never did anything. `gap`
   acts BETWEEN flex items, and the markup was `<a class="more">All posts &rarr;</a>` — one bare
   text run, so one anonymous flex item, so no gaps to grow. The arrow has now been split into
   its own span, which both fixes the gesture and lets the underline sit under the words only.
   Underlining the arrow too would read as a mistake.

   currentColor, not gold: .more is purple on white in most sections and gold on the dark shelf
   (.shelfA .more). One rule, correct in both. */
.more{font-size:17px;font-weight:700;color:var(--link);display:inline-flex;align-items:center;
  gap:7px}
.more__t{position:relative}
.more__t::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1.5px;
  background:currentColor;transition:right var(--t-comp) var(--ease)}
.more__a{display:inline-block;transition:transform var(--t-comp) var(--ease)}
/* Keyboard users get the same signal. :focus-visible only, so a mouse click does not stick. */
.more:focus-visible .more__t::after{right:0}
.more:focus-visible .more__a{transform:translateX(5px)}
.ldg .sec__h{margin-bottom:22px}
/* The category was grey, which is the one place on a light card where brand purple costs
   nothing and earns something. 12.57:1 on white, so it clears AA comfortably at this size. */
.post__b .lbl{color:var(--brand)}
/* ═════════════════════════════ FOOTER ═════════════════════════════ */
.ftr{background:var(--deep);color:#fff;padding:var(--sec) 0 36px;margin-top:var(--sec)}
.ftr__g{display:grid;gap:32px}
.ftr h4{margin:0 0 14px;color:var(--gold);font-family:var(--label);font-size:13.5px;
  letter-spacing:.16em;text-transform:uppercase;font-weight:400}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:17px;
  color:rgba(255,255,255,.76)}
/* Footer links get the same colour move, but the underline FADES rather than wipes. A wiping
   pseudo-element is positioned against the first line box only, so on "Do Not Sell or Share My
   Personal Information" — which wraps — it would underline part of one line and nothing else.
   text-decoration-color is animatable and follows every line fragment, so it survives wrapping.
   Same colour, same timing, gesture adapted to the shape. */
.ftr ul a{text-decoration:underline;text-decoration-color:transparent;
  text-decoration-thickness:1px;text-underline-offset:3px;
  transition:color var(--t-micro) var(--ease),text-decoration-color var(--t-comp) var(--ease)}
.ftr ul a:focus-visible{color:var(--gold);text-decoration-color:currentColor}
.ftr__about{color:rgba(255,255,255,.62);font-size:16px;max-width:32ch;margin-top:14px}
/* The app block and the Chamber badge share ONE line: app at the start, membership mark at the
   end. The badge used to take a hairline-separated row of its own, which announced a section
   break between two items that are not sections. */
.ftr__tail{margin-top:38px;display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:26px 32px}
.ftr__app{flex:0 1 auto}
.ftr .ftr__soc{display:flex;gap:10px;list-style:none;margin:18px 0 0;padding:0}
.ftr .ftr__soc a{display:grid;place-items:center;width:40px;height:40px;border-radius:999px;color:#fff;
  border:1px solid rgba(255,255,255,.24);transition:background-color .2s ease,border-color .2s ease}
.ftr .ftr__soc a:hover{background-color:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55)}
.ftr .ftr__soc svg{display:block;fill:currentColor}
.ftr__cred{flex:0 0 auto}
/* NO dim and NO hover fade. It was at .72 opacity until hovered. A membership credential has to
   be legible the moment it is on screen — making someone hover to read it defeats the reason it
   is in the footer, and 90.5% of this traffic is a phone, which cannot hover at all. */
.ftr__cred img{height:auto;max-width:220px;display:block}
.ftr__tail + .ftr__legal{margin-top:36px;padding-top:22px}
.ftr__legal{margin-top:44px;padding-top:22px;border-top:1px solid var(--deep-hair);
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  color:rgba(255,255,255,.52);font-size:15px}
/* sticky order bar — phone only */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:90;padding:10px var(--gutter)
  calc(10px + env(safe-area-inset-bottom));background:rgba(36,16,70,.94);
  backdrop-filter:blur(14px);border-top:1px solid var(--deep-hair);display:flex;gap:10px}
.bar .btn{flex:1}
.ftr__app p{color:rgba(255,255,255,.62);font-size:16px;margin:0 0 12px;max-width:24ch}
/* the Do Not Sell line is long by law and must not blow the column out */
.ftr ul a{overflow-wrap:anywhere}
/* ---- 9. FAQ. <details>/<summary>, so it works with JavaScript off and is keyboard- and
        screen-reader-accessible for free. No library, no ARIA to get wrong. */
.faq{border-top:1px solid var(--border)}
.faq__i{border-bottom:1px solid var(--border)}
.faq__i summary{list-style:none;cursor:pointer;padding:19px 40px 19px 0;position:relative;
  font-weight:700;font-size:18.5px;color:var(--ink);letter-spacing:-.01em}
.faq__i summary::-webkit-details-marker{display:none}
/* the marker is drawn, not a glyph, so it can rotate */
.faq__i summary::after{content:"";position:absolute;right:6px;top:50%;width:11px;height:11px;
  margin-top:-7px;border-right:2px solid var(--edge);border-bottom:2px solid var(--edge);
  transform:rotate(45deg);transition:transform var(--t-comp) var(--ease)}
.faq__i[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
/* The whole row is the hit area, so the whole row answers. A tint rather than an underline:
   this is a 100%-wide control, and a rule running the full width would read as a divider. */
.faq__i summary{transition:color var(--t-micro) var(--ease),
  background var(--t-micro) var(--ease)}
.faq__i summary::after{transition:transform var(--t-comp) var(--ease),
  border-color var(--t-micro) var(--ease)}
.faq__i summary:focus-visible{color:var(--brand);background:rgba(64,28,123,.05)}
.faq__i summary:focus-visible::after{border-color:var(--brand)}
/* The answer animates open. `height` is animated, not `max-height`: a max-height guess either
   clips a long answer or leaves dead time at the end of a short one, and these answers differ by
   more than 4x. The height is measured, so every panel takes the same time regardless of length.
   overflow:clip keeps the text from spilling while the box is mid-move. The JS sets height back
   to auto when it lands, so a resize or a font swap cannot leave a stale pixel height behind. */
.faq__a{padding:0 40px 22px 0;color:var(--ink-2);font-size:18px;line-height:1.6;max-width:74ch}
.faq__a p{margin:0}
.faq__i[data-anim] .faq__a{overflow:clip;
  transition:height var(--t-enter) var(--ease),opacity var(--t-comp) var(--ease)}
/* ---- 10. FOOTER legal bar. It was stacking because my earlier edit swallowed the closing tag
        of .ftr__g, so the bar became a seventh grid cell in a narrow column. With the grid
        closed it is a real row again: copyright left, licence right, stacking only on a phone
        where two columns of small print would be worse than one. */
.ftr__legal{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:8px 24px}
.ftr__app img{display:block;height:40px;width:auto}
/* ---- 11. The app block. The badge sat under the copy in a narrow column; copy and badge now sit
        side by side, which is what the space was asking for.

        CORRECTION, 2026-09-17: this comment used to claim the WHITE Apple badge was in use. It
        never was — the markup has always pointed at `app-store.svg`, which is Apple's BLACK badge
        (`Download_on_the_App_Store_Badge_US-UK_RGB_blk`). `app-store-white.svg` exists in the
        source tree but is not even copied to the server, so the claim was false in two ways.
        Black is the right choice and it stays. Apple's black badge ships with its own white
        keyline precisely so it works on a dark ground, and rendered on `--deep` it reads as a
        compact dark pill with crisp type. The white variant would put a SECOND large white
        rectangle on the same line as the Chamber badge's white box — two bright blocks competing
        across one row. The artwork is unmodified either way, which the guidelines require. */
.ftr__app{display:grid;gap:4px 18px;grid-template-columns:1fr auto;align-items:center}
.ftr__app h4{grid-column:1/-1;margin-bottom:6px}
.ftr__app p{margin:0;max-width:30ch;align-self:center}
/* The badge is a finished asset: no button, no background, no border, no padding. It sat
   inside .btn--out, whose white pill read as a white blob on the purple footer — that was our
   styling, not Apple's artwork. Apple's guidelines also forbid putting the badge on a
   background shape or altering it. */
.ftr__badge{display:inline-block;line-height:0;border-radius:8px}
.ftr__badge img{display:block;height:44px;width:auto}
/* LOCS-BLOCK-END */

/* ---- PICK-CSS-START · fulfilment picker ----
   THE HOMEPAGE IS THE BASEGROUND. Two earlier attempts were wrong in opposite directions: a
   generic light sheet that could belong to any app, then the age gate's near-black — which is
   dark because it sits over the dark hero, not because the site is dark. The page itself is
   LIGHT: paper ground, white surfaces, purple that leads, gold spent rarely.

   So this reuses components the page already has, rather than inventing a modal language:
     tabs   = .locs__b / .ddw__b  -> active is FILLED BRAND PURPLE with white text
     cards  = .who__n a           -> white, 1px hairline, lifts to #FFF on hover
     type   = Bricolage heading, Martian Mono eyebrow, exactly like every section header

   NO LILAC FILLS. --border (#E2DFEC) is a HAIRLINE only. Used as a large filled pill it reads
   pink, which is the previous site's palette. That was the actual complaint. */
.pick{border:0;padding:0;background:transparent;max-width:none;max-height:none;
  width:100%;height:100%;overflow:visible}
.pick::backdrop{background:rgba(20,10,42,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pick__c{position:fixed;left:50%;bottom:0;transform:translateX(-50%);
  width:100%;max-width:560px;max-height:92vh;overflow-y:auto;
  background:var(--surface);color:var(--ink);border:1px solid var(--border);border-bottom:0;
  border-radius:var(--r6) var(--r6) 0 0;padding:28px 22px 24px;font-family:var(--sans);
  box-shadow:0 -18px 50px rgba(20,10,42,.18);
  animation:pickUp var(--t-enter) var(--ease) both}
.pick .pick__x{position:absolute;top:14px;right:14px;width:44px;height:44px;border:0;border-radius:50%;
  background:transparent;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
.pick__eyebrow{color:var(--link);margin:0 0 7px}
.pick__h{font-family:var(--display);font-size:24px;line-height:1.16;letter-spacing:-.02em;
  font-weight:700;font-variation-settings:"wdth" 94;color:var(--ink);margin:0 0 18px;
  padding-right:44px;text-wrap:balance}
/* the page's own segmented-control idiom: bordered chips, active filled with brand purple */
.pick__tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px}
.pick__tab{border:1px solid var(--border);border-radius:999px;padding:11px;min-height:44px;
  cursor:pointer;font-family:var(--sans);font-weight:700;font-size:17px;
  color:var(--ink-2);background:var(--surface);
  transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease),
             border-color var(--t-micro) var(--ease)}
.pick__tab.is-on{background:var(--brand);border-color:var(--brand);color:#fff}
.pick__p{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.pick__p[hidden]{display:none}
.pick__o{display:flex;flex-direction:column;gap:3px;padding:15px 16px;min-height:44px;
  border:1px solid var(--border);border-radius:var(--r4);background:var(--surface);color:inherit;
  transition:border-color var(--t-micro) var(--ease),background var(--t-micro) var(--ease)}
.pick__o b{font-size:18px;letter-spacing:-.01em;color:var(--ink)}
.pick__o span{font-size:15px;color:var(--muted);line-height:1.45}
.pick__o--wide{grid-column:1/-1}
/* the shop you chose. Purple, because purple leads on this page — gold stays tertiary. */
.pick__o.is-mine{border-color:var(--link);box-shadow:inset 0 0 0 1px var(--link)}
.pick__o.is-mine b::after{content:" \00b7  yours";color:var(--link)}
.pick__note{grid-column:1/-1;margin:8px 0 0;font-family:var(--label);font-size:13px;
  letter-spacing:.06em;line-height:1.7;color:var(--muted)}
/* The trigger kept a stuck HOVER gold (#E4C384) plus a ring after the sheet closed. A warm pale
   gold on the purple header is what read as "pink". Focus is returned to the button on close for
   keyboard users, but the visible ring is reserved for :focus-visible, and it is white here —
   gold on gold is invisible and purple on purple is muddy. */
.hdr [data-pick-open]:focus{outline:none}
.hdr [data-pick-open]:focus-visible{outline:2px solid #fff;outline-offset:3px}
`. None of them SHOULD match the picker, and an exhaustive
   scan of every sheet plus the live DOM found nothing pink in it. But Bogdan is seeing pink on the
   Pickup tab and the header CTA on the current build, and I could not reproduce it — so these
   declarations pin the two surfaces he reported, hard enough that an !important legacy rule cannot
   take them. If the cause is ever found, this block can go.
   NOTE: 3-digit hex (#c36) was invisible to every colour scan I ran until I widened the pattern.
   Always expand shorthand before testing a colour. */
.pick .pick__tab{background:var(--surface)!important;color:var(--ink-2)!important}
.pick .pick__tab.is-on{background:var(--brand)!important;color:#fff!important}
.hdr .btn--gold[data-pick-open]{background:var(--gold)!important;color:#241046!important}
/* PICK-CSS-END */

/* ---- Elementor Pro popup templates, hidden ----
   Elementor Pro prints its popup templates into the footer of every page: post 25487, the old
   fulfilment popup, and post 32160, a mobile nav. They were invisible only because
   `e-popup` and `elementor-post-25487/32160` were among the stylesheets we load — so stripping
   the Elementor asset chain properly, which is otherwise right, exposed 490px of unstyled markup
   under the footer on every theme-rendered page. Measured 2026-09-17 on /faqs/.

   Hiding them is correct rather than a patch: our own <dialog class="pick"> replaces 25487 and our
   own header replaces 32160, and the page carries ZERO Elementor popup triggers, so nothing can
   ask for one. Verified before shipping this: the 21+ age gate `#confirmationPopup` is a direct
   child of <body> from a WPCode snippet and is NOT inside an .elementor-location-popup, so it is
   untouched by this rule. `!important` is deliberate — Elementor's popup JS writes display inline. */
/* SCOPED to pages we render, via the body class added by kolas_modern_body_class().
   style.css is enqueued SITE-WIDE with no guard, so an unscoped rule would hide these
   popups on every Elementor page too — and the Elementor location pages DO trigger popup
   25487 from their own "Order now". Unscoped, this would have broken the store picker on
   the pages it has nothing to do with. */
.kolas-ours .elementor-location-popup{display:none!important}
@media(min-width:768px){
:root{--gutter:40px; --sec:96px;}
}
@media(max-width:520px){
.mark__pin{width:34px;height:34px}
.mark__word{height:19px}
}
@media(prefers-reduced-motion:no-preference){
.nav[data-open]{animation:navDrop .19s cubic-bezier(.22,.61,.36,1) both}
.nav[data-open] a{animation:navRow .24s cubic-bezier(.22,.61,.36,1) both}
.nav[data-open] a:nth-child(1){animation-delay:.03s}
.nav[data-open] a:nth-child(2){animation-delay:.064s}
.nav[data-open] a:nth-child(3){animation-delay:.098s}
.nav[data-open] a:nth-child(4){animation-delay:.132s}
.nav[data-open] a:nth-child(5){animation-delay:.166s}
.nav__t i,.nav__t i::before,.nav__t i::after{transition:transform .18s ease,background .18s ease}
}
@media(max-width:899px){
.ftr{padding-bottom:76px}
}
@media(min-width:900px){
.nav{display:flex}
.nav__t{display:none}
.hdr .btn--gold{display:inline-flex}
.bar{display:none}
}
@media(hover:hover){
.more:hover .more__t::after{right:0}
.more:hover .more__a{transform:translateX(5px)}
.ftr ul a:hover{color:var(--gold);text-decoration-color:currentColor}
.faq__i summary:hover{color:var(--brand);background:rgba(64,28,123,.035)}
.faq__i summary:hover::after{border-color:var(--brand)}
.ftr__badge{transition:opacity var(--t-comp) var(--ease)}
.ftr__badge:hover{opacity:.82}
.pick .pick__x:hover{background:var(--ground);color:var(--ink)}
.pick__tab:hover{border-color:var(--edge);color:var(--ink)}
.pick__o:hover{border-color:var(--link);background:#FFF}
.hdr .btn--gold[data-pick-open]:hover{background:#C9A052!important}
.pick .pick__tab:not(.is-on):hover{background:var(--surface)!important}
}
@media(min-width:760px){
.ftr__g{grid-template-columns:1.6fr repeat(3,1fr)}
}
@media(min-width:1060px){
.ftr__g{grid-template-columns:1.6fr repeat(4,1fr)}
}
@media(max-width:639px){
.ftr{padding-top:40px}
.ftr__g{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}
/* the brand block and the about text keep the full width above the columns */
  .ftr__g>:first-child{grid-column:1/-1}
.ftr ul{gap:7px;font-size:16px}
.ftr__legal{margin-top:30px}
}
@media(min-width:640px){
.ftr__g{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1000px){
.ftr__g{grid-template-columns:2fr 1fr 1fr 1.3fr 1fr 1.4fr}
.ftr__g>:first-child{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){
.faq__i summary::after{transition:none}
.faq__i[data-anim] .faq__a{transition:none}
.pick__c{animation:none}
}
@media(max-width:559px){
.ftr__app{grid-template-columns:1fr}
.ftr__app p{margin-bottom:12px}
.ftr__app a{justify-self:start}
}
@media(max-width:380px){
.pick__c{padding:24px 18px 20px}
.pick__p{grid-template-columns:1fr}
.pick__h{font-size:24px}
}
@media(min-width:560px){
.pick__c{bottom:auto;top:50%;transform:translate(-50%,-50%);border:1px solid var(--border);
    border-radius:var(--r6);padding:32px 30px 26px;
    box-shadow:0 24px 60px rgba(20,10,42,.22);
    animation:pickMid var(--t-enter) var(--ease) both}
}
@keyframes navDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes navRow{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes pickUp{from{transform:translate(-50%,14px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
@keyframes pickMid{from{transform:translate(-50%,calc(-50% + 10px));opacity:0}
    to{transform:translate(-50%,-50%);opacity:1}}

/* ---- FAQ page. Component classes come from index.html (.faq, .faq__i, .sec, .wrap, .btn);
   only what is unique to this page lives here, so the two accordions cannot drift apart. ---- */
/* A page band, not a hero. The old page gave this 480px of purple whose heading said
   "KOLAS Dispensary FAQs" and then repeated "FREQUENTLY ASKED QUESTIONS" immediately below —
   the same sentence twice, with all 92 questions pushed below the fold. On a help page the
   distance to the answer is the whole game. This is the homepage's own dark-section language at
   roughly a third the height: enough that an interior page has a top belonging to the site, not
   so much that it delays the thing the visitor came for. */
.pband{background:var(--deep);color:#fff;position:relative;overflow:clip}
.pband::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(closest-side at 82% 0%,rgba(216,179,106,.13),transparent 70%)}
/* The gutter MUST be restated. `.wrap` sets `padding:0 var(--gutter)`, and this rule has the
   same specificity but comes later, so a shorthand `padding:22px 0 30px` silently zeroed the
   horizontal padding — the band's text sat 52px left of everything below it. */
.pband__in{padding:22px var(--gutter) 30px;position:relative}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 14px;
  font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.52)}
.crumb a{color:rgba(255,255,255,.78)}
.crumb a:hover{color:#fff}
.crumb i{font-style:normal;color:rgba(255,255,255,.34)}
.crumb [aria-current]{color:var(--gold)}
.pband h1{font-family:var(--display);font-size:clamp(27px,4.4vw,40px);line-height:1.08;
  font-weight:800;letter-spacing:-.03em;font-variation-settings:"wdth" 88;margin:0 0 10px;color:#fff;
  text-wrap:balance}
.pband p{color:rgba(255,255,255,.86);font-size:18px;max-width:58ch;margin:0}
.fq__head{padding:0}
.fq__tools{position:sticky;top:80px;z-index:20;background:var(--ground);
  padding:14px 0 12px;border-bottom:1px solid var(--border);margin-bottom:8px}
input.fq__search{width:100%;max-width:520px;padding:13px 16px;min-height:46px;
  border:1px solid var(--border);border-radius:999px;background:var(--surface);
  font-family:var(--sans);font-size:17.5px;color:var(--ink)}
.fq__search::placeholder{color:var(--muted)}
input.fq__search:focus{outline:2px solid var(--link);outline-offset:2px;border-color:var(--link)}
.fq__jump{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.fq__jump a{font-size:15px;font-weight:700;padding:7px 13px;border-radius:999px;
  border:1px solid var(--border);color:var(--ink-2);background:var(--surface);
  transition:border-color var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
@media(hover:hover){.fq__jump a:hover{border-color:var(--link);color:var(--link)}}
.fq__g{padding-top:30px}
.fq__g h2{font-family:var(--display);font-weight:700;font-size:24px;letter-spacing:-.015em;margin:0 0 4px;
  font-variation-settings:"wdth" 94;color:var(--ink);scroll-margin-top:190px}
.fq__c{font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin:0 0 12px}
.fq__none{display:none;padding:40px 0;color:var(--muted);font-size:17.5px}
.fq__none.is-on{display:block}
/* Same reason as .bx-none a — the only link inside is a bare tel: link. */
.fq__none a{color:var(--link);font-weight:700;text-decoration:underline}
.fq__cta{margin:46px 0 64px;padding:28px 24px;border:1px solid var(--border);
  border-radius:var(--r5);background:var(--surface);
  display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between}
.fq__cta b{display:block;font-family:var(--display);font-size:22px;letter-spacing:-.015em;
  color:var(--ink)}
.fq__cta span{display:block;color:var(--muted);font-size:17px;margin-top:4px}
.fq__cta .fq__act{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:600px){
  .fq__tools{top:0}
  .fq__cta{flex-direction:column;align-items:flex-start}
}


/* ---- /brands/ ------------------------------------------------------------------
   The hero is the house pages' (.bh-crumb .bh-m .bh-hero, below). Three deep bands run
   together: .bx-hd, the six, the guide cards. Then the light directory.
   ------------------------------------------------------------------------------- */
.bx-hd{background:var(--deep);color:#fff;display:flow-root}
.bx-ours{background:var(--deep);color:#fff;padding:34px 0 var(--sec);position:relative}
/* gold ring: the base purple one does not show on deep */
.bx-hd :focus-visible,.bx-ours :focus-visible{outline-color:var(--gold)}
.bx-ours .sec__h h2{color:#fff}
.bx-ours .sec__h p{color:rgba(255,255,255,.66)}

/* The six. 2-up on a phone, not a scroller — the section has to prove the number six,
   and a scroller shows one and a half. Same call as the homepage brand wall. */
.bx-o{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){.bx-o{grid-template-columns:repeat(3,1fr);gap:18px}}

.bx-o__c{position:relative;display:flex;flex-direction:column;border-radius:var(--r5);
  overflow:clip;background:radial-gradient(120% 90% at 70% 22%,var(--deep-2),var(--deep) 62%);
  border:1px solid rgba(255,255,255,.07);
  transition:transform var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease),
    box-shadow var(--t-comp) var(--ease)}
.bx-o__pic{position:relative;display:block;aspect-ratio:16/9;background:var(--deep-2)}
.bx-o__pic img{display:block;width:100%;height:100%;object-fit:cover;
  transition:transform var(--t-enter) var(--ease)}
/* Full colour here. The homepage holds these at saturate(.30) because there they tease
   a page; on that page they ARE the page. */
.bx-o__pic::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:rgba(216,179,106,.30)}
.bx-o__b{padding:14px 15px 17px;display:flex;flex-direction:column;gap:7px;flex:1}
.bx-o__n{font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.02em;
  font-variation-settings:"wdth" 92;color:#fff}
.bx-o__l{color:rgba(255,255,255,.62);font-size:16px;line-height:1.5;flex:1}
.bx-o__t{color:var(--gold);margin-top:2px}
@media(hover:hover){
  .bx-o__c:hover{transform:translateY(-4px);border-color:rgba(216,179,106,.34);
    box-shadow:0 26px 54px -26px rgba(0,0,0,.85)}
  .bx-o__c:hover .bx-o__pic img{transform:scale(1.03)}
  .bx-o__c:hover .bx-o__pic::after{background:rgba(216,179,106,.62)}
}
.bx-o__c:focus-within{border-color:rgba(216,179,106,.5)}
@media(min-width:900px){
  .bx-o__n{font-size:23px}
  .bx-o__b{padding:17px 19px 20px}
}

/* ---- the guide cards: the same card, the brand's own photo ---- */
.bx-named{padding-top:0}
.bx-named .bx-o__pic{aspect-ratio:4/3}
.bx-also{margin:24px 0 0;color:rgba(255,255,255,.66);font-size:17px;line-height:1.5}
.bx-also a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;padding:14px 0;
  white-space:nowrap}
@media(hover:hover){.bx-also a:hover{color:#fff}}
/* .bx-g: kept for build_shop_pages.py */
.bx-g{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}

/* ---- the directory ---- */
/* scroll-margin-top clears the 64px sticky header plus the sticky tools row. Without it
   the jump link lands with the section heading hidden behind the header. */
.bx-shelf{padding:var(--sec) 0 0;scroll-margin-top:84px}
/* 80px clears the sticky header, matching .fq__tools. Below 600px the header is not
   sticky, so neither is this. */
.bx-tools{position:sticky;top:80px;z-index:20;background:var(--ground);
  padding:14px 0 12px;border-bottom:1px solid var(--border);margin-bottom:4px}
input.bx-find{width:100%;max-width:480px;padding:13px 16px;min-height:46px;
  border:1px solid var(--border);border-radius:999px;background:var(--surface);
  font-family:var(--sans);font-size:17.5px;color:var(--ink)}
.bx-find::placeholder{color:var(--muted)}
input.bx-find:focus{outline:2px solid var(--link);outline-offset:2px;border-color:var(--link)}
.bx-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.bx-chips button{font-family:var(--sans);font-size:15px;font-weight:700;padding:7px 13px;min-height:44px;
  border-radius:999px;border:1px solid var(--border);color:var(--ink-2);
  background:var(--surface);cursor:pointer;
  transition:border-color var(--t-micro) var(--ease),color var(--t-micro) var(--ease),
    background var(--t-micro) var(--ease)}
@media(hover:hover){.bx-chips button:hover{border-color:var(--link);color:var(--link)}}
.bx-chips button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);
  color:#fff}
.bx-count{font-family:var(--label);font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin:14px 0 0}

/* ONE continuous grid. The first build put the plates under 24 sticky letter rails, each
   running its own 3-column sub-grid — so every letter with four brands left an orphan and
   a hole, 24 times down the page, beside a 56px dead column. Sorted by stock instead, the
   list needs no rails and the grid never breaks. */
.bx-grid{display:grid;gap:8px;grid-template-columns:1fr;padding-top:18px}
@media(min-width:560px){.bx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.bx-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bx-more{margin:20px 0 0}
.bx-more button{font-family:var(--sans);font-size:17px;font-weight:700;cursor:pointer;
  padding:12px 20px;min-height:44px;border-radius:999px;background:var(--surface);
  border:1px solid var(--edge);color:var(--brand);
  transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
@media(hover:hover){.bx-more button:hover{background:var(--brand);border-color:var(--brand);
  color:#fff}}

/* A plate, not a card. 88 cards is a wall; 88 plates is a list you can read down.
   Two links, laid out side by side — no stretched-link pseudo-element, because the
   second link (Guide) would then sit under the first and be unreachable. */
.bx-p{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:var(--r3);
  background:var(--surface);border:1px solid var(--hair);min-height:54px;
  transition:border-color var(--t-micro) var(--ease)}
/* `display:flex` on the class BEATS the user-agent's `[hidden]{display:none}`, so the
   first build set `hidden` on 64 plates and rendered all 88 anyway — while the count line
   above them said "showing the 24 with the deepest shelf". A caption contradicting the
   list under it. Any rule that sets `display` has to restate this. */
.bx-p[hidden]{display:none}
.bx-p__m{flex:1;min-width:0;display:block}
.bx-p__n{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:-.01em;
  color:var(--ink);display:block;overflow-wrap:anywhere}
.bx-p__c{display:block;margin-top:3px;color:var(--muted);font-size:13px;
  letter-spacing:.1em}
.bx-p__q{font-variant-numeric:tabular-nums;font-weight:600;font-size:17px;
  color:var(--ink-2);flex:none}
.bx-p__q i{font-style:normal;color:var(--muted);font-size:13px;font-family:var(--label);
  letter-spacing:.1em;margin-left:4px}
.bx-p__g{flex:none;font-family:var(--label);font-size:12.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-text);border:1px solid var(--gold-struct);
  border-radius:999px;padding:4px 8px;
  transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
@media(hover:hover){
  .bx-p:hover{border-color:var(--edge)}
  .bx-p__m:hover .bx-p__n{color:var(--link)}
  .bx-p__g:hover{background:var(--gold-struct);color:#fff}
}
.bx-p__m:focus-visible .bx-p__n{color:var(--link)}

/* ---- the deep shelf: the top 12 as real cells ----------------------------------
   The plates below are right for a long tail and wrong as the whole section — Bogdan,
   on the first build: the other brands "are too underwhelming". They had no visual
   anchor at all.
   These are the brands' OWN marks, mirrored from the CloudFront images KOLAS's public
   menu already serves (see bin/prep_brand_images.py), shown AS-IS on our card: not
   recoloured, not redrawn, not composited onto the purple. Restyling somebody else's
   trademark is a larger exposure than displaying it, and an authentic mark reads real.
   TWELVE, not all 91: ninety-one tiles is the vendor logo wall already rejected here
   (STATE.md 7.10) and ninety-one image requests on a page where 90.5% of clicks are on
   a phone. */
.bx-top{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));
  margin:0 0 30px}
@media(min-width:700px){.bx-top{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.bx-top{grid-template-columns:repeat(4,1fr);gap:16px}}
.bx-t{position:relative;display:flex;flex-direction:column;border-radius:var(--r5);
  overflow:clip;background:var(--surface);border:1px solid var(--border);
  transition:transform var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease),
    box-shadow var(--t-comp) var(--ease)}
/* The logos arrive as opaque squares in each brand's own colour — white, hot pink,
   black, yellow. That is the point: a wall of brand colour, not a grey logo grid. The
   square is given its own full-bleed band so none of them fights our card background. */
.bx-t__l{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--sunken)}
.bx-t__b{padding:12px 13px 14px;display:flex;flex-direction:column;gap:5px;flex:1}
.bx-t__n{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:-.015em;
  color:var(--ink);line-height:1.15;overflow-wrap:anywhere}
.bx-t__c{color:var(--muted);font-size:13px;letter-spacing:.1em}
.bx-t__f{margin-top:auto;padding-top:7px;display:flex;align-items:baseline;gap:6px}
.bx-t__q{font-variant-numeric:tabular-nums;font-weight:600;font-size:17px;color:var(--ink-2)}
.bx-t__u{font-family:var(--label);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted)}
.bx-t__g{margin-left:auto;font-family:var(--label);font-size:12.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-text);border:1px solid var(--gold-struct);
  border-radius:999px;padding:3px 7px}
@media(hover:hover){
  .bx-t:hover{transform:translateY(-4px);border-color:var(--edge);
    box-shadow:0 20px 40px -24px rgba(26,22,38,.45)}
  .bx-t:hover .bx-t__n{color:var(--link)}
}
.bx-rest__h{font-family:var(--label);font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin:0 0 12px}

.bx-none{display:none;padding:44px 0;color:var(--muted);font-size:17.5px}
.bx-none.is-on{display:block}
/* States its own colour, because the only link in it is a bare <a href="tel:"> and
   Elementor's global a{color} is #CC3366 on an interior page. */
.bx-none a{color:var(--link);font-weight:700;text-decoration:underline}
.bx-foot{color:var(--muted);font-size:16px;margin:26px 0 0;max-width:62ch}

/* ---- the six house brand pages: "the case", approved 2026-09-18 ----------------
   Deep purple the whole way down, a gold rule down the centre, a 3D brand banner as the
   masthead and one lit scene per brand.

   SMOOTH SCROLL. index.html sets `html{scroll-behavior:smooth}` and the CSS filter drops
   it, because `html` touches no KEEP family — so in-page jumps landed hard. Restored,
   and turned off again under prefers-reduced-motion by the base rules. */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* The whole page is dark, so the body class carries it rather than each section. */
body.kolas-brandpage{background:var(--deep);color:#fff;font-family:var(--sans)}
body.kolas-brandpage h1,.bx-hd h1,
body.kolas-brandpage h2,
body.kolas-brandpage h3{font-family:var(--display);font-weight:700;line-height:1.02;
  letter-spacing:-.03em;text-wrap:balance}
body.kolas-brandpage p,
body.kolas-brandpage a,
body.kolas-brandpage summary,
body.kolas-brandpage span,
body.kolas-brandpage b,
body.kolas-brandpage i{font-family:inherit}
body.kolas-brandpage .lbl,
body.kolas-brandpage .crumb{font-family:var(--label)}
.bh-w{max-width:1080px;margin:0 auto;padding:0 var(--gutter)}
.bh-rule{position:fixed;left:50%;top:0;bottom:0;width:1px;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(216,179,106,.30),transparent)}
@media(max-width:900px){.bh-rule{display:none}}
.bh-s{position:relative;z-index:1;padding:clamp(54px,8vw,110px) 0}

/* READABILITY. The first cut set body copy at rgba(255,255,255,.66) and 15.5px and was
   hard to read on this ground. .82 at 16.5px, 1.7 line-height, measures near 66ch. */
.bh-t{color:rgba(255,255,255,.82);font-size:18.5px;line-height:1.7;max-width:66ch}
.bh-t--c{margin-left:auto;margin-right:auto}
/* Every fact worth scanning is gold: a count, a strain, a format, a ratio. */
.bh-k{color:var(--gold);font-weight:600}
.bh-gl{color:var(--gold)}

/* A HEIGHT, not aspect-ratio plus max-height. The latter constrains the WIDTH too and
   the banner stopped short of the viewport with a void beside it. */
.bh-m{position:relative;overflow:clip;background:#0C0518;height:clamp(166px,21.74vw,640px)}
/* height:100% with object-fit, never a bare width. An <img> carrying width/height
   attributes keeps the height attribute as a presentational hint, and a CSS rule that
   sets only `width` leaves it squashed — which shipped once. */
.bh-m img{width:100%;height:100%;display:block;opacity:.96;
  object-fit:cover;object-position:50% 50%}
.bh-m::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,5,24,.55) 0%,rgba(12,5,24,0) 38%,var(--deep) 97%)}
/* The breadcrumb sits ABOVE the banner on its own bar. Overlaid on the artwork it was
   hard to read and it competed with the wordmark for the same corner. */
.bh-crumb{position:relative;z-index:2;padding:16px 0 14px;
  font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.5)}
.bh-crumb a{color:rgba(255,255,255,.78);display:inline-block}
.bh-crumb a,.bx-shelf .more{padding:16px 0;margin:-16px 0}
@media(hover:hover){.bh-crumb a:hover{color:var(--gold)}}
.bh-crumb i{font-style:normal;color:rgba(255,255,255,.3);margin:0 7px}
.bh-crumb [aria-current]{color:var(--gold)}

.bh-hero{text-align:center;padding:clamp(30px,5vw,56px) var(--gutter) 0;position:relative;z-index:1}
.bh-hero h1{font-size:clamp(34px,6.4vw,76px);line-height:.96;margin:0 auto;max-width:16ch;
  font-variation-settings:"wdth" 86;color:#fff}
.bh-hero h1 span{display:block}
/* The second line in gold is the whole gesture — it is what makes the headline read as
   a claim answered rather than a sentence. */
.bh-hero h1 em{display:block;font-style:normal;color:var(--gold)}
.bh-hero .bh-t{margin-top:20px}
.bh-hero__a{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}

.bh-obj{position:relative;margin:clamp(34px,5vw,60px) auto 0;max-width:940px}
.bh-obj img{width:100%;height:auto;border-radius:var(--r6)}
.bh-obj::after{content:"";position:absolute;left:12%;right:12%;bottom:-24px;height:52px;
  background:radial-gradient(closest-side,rgba(216,179,106,.30),transparent 72%);
  filter:blur(18px)}
.bh-obj figcaption{font-style:normal;color:rgba(255,255,255,.45);font-size:14.5px;margin-top:22px;
  font-family:var(--label);letter-spacing:.12em;text-align:center}
/* A brand with no scene of its own shows a product tile instead. It is a square on white,
   so it gets a narrower box and no gold pool under it. */
.bh-obj--tile{max-width:440px}
/* The third image sits inside a section rather than under a hero, so it gets more width
   and no gold pool under it — the pool reads as "this is the hero" and it is not. */
.bh-obj--wide{max-width:100%;margin-top:clamp(34px,5vw,58px)}
.bh-obj--wide::after{display:none}
.bh-obj--tile::after{display:none}

.bh-fig{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);
  margin-top:clamp(46px,6vw,76px)}
@media(min-width:620px){.bh-fig{grid-template-columns:repeat(4,1fr)}}
.bh-fig div{background:var(--deep);padding:22px 16px;text-align:center}
.bh-fig b{display:block;font-family:var(--sans);font-variant-numeric:tabular-nums;
  font-size:32px;font-weight:700;color:var(--gold);line-height:1}
.bh-fig span{display:block;color:rgba(255,255,255,.55);margin-top:8px;font-size:12.5px;
  letter-spacing:.14em}

.bh-h{text-align:center;margin-bottom:clamp(30px,4vw,54px)}
.bh-h span{color:var(--gold);display:block;margin-bottom:14px}
.bh-h h2{font-size:clamp(28px,4.4vw,46px);color:#fff;font-variation-settings:"wdth" 90}
.bh-h .bh-t{margin-top:14px}

.bh-row{display:grid;gap:16px;padding:clamp(24px,3.4vw,38px) 0;
  border-top:1px solid rgba(255,255,255,.13)}
@media(min-width:800px){
  .bh-row{grid-template-columns:.85fr 1.15fr;gap:44px;align-items:start}
}
.bh-row h3{font-size:clamp(23px,2.8vw,31px);color:#fff}
.bh-row__n{color:var(--gold);font-weight:600;font-size:17px;margin-top:8px;display:block}
.bh-row a{display:inline-flex;gap:8px;margin-top:16px;color:var(--gold);font-weight:700;
  font-size:17px}
.bh-row a span{transition:transform var(--t-comp) var(--ease)}
@media(hover:hover){.bh-row a:hover span{transform:translateX(5px)}}

/* The strain names ARE the texture. Large, low-contrast, resolving to gold on hover. */
/* The wall must not push the page wider than the phone. Measured on
   /brands/certified-skunk/ at 390px: one name ran to 398px, 8px past the viewport,
   because the separator's 12px margins ride at the end of a line. KOLAS passed with the
   same CSS and the same strain in its list, so this is a line-break accident rather than
   a string that is too long — which means any brand can hit it and it has to be fixed
   here, not by shortening a name. */
.bh-strains{text-align:center;line-height:1.5;max-width:100%;overflow-wrap:anywhere}
.bh-strains a{display:inline;font-family:var(--display);font-size:clamp(22px,3.3vw,36px);
  letter-spacing:-.02em;color:rgba(255,255,255,.34);
  transition:color var(--t-comp) var(--ease)}
@media(hover:hover){.bh-strains a:hover{color:var(--gold)}}
.bh-strains i{font-style:normal;color:rgba(216,179,106,.34);margin:0 12px;
  font-size:clamp(17px,2vw,24px)}
@media(max-width:600px){.bh-strains i{margin:0 6px}}

.bh-rat{display:grid;gap:1px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12)}
@media(min-width:680px){.bh-rat{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.bh-rat{grid-template-columns:repeat(3,1fr)}}
.bh-rat div{background:var(--deep);padding:24px 22px}
.bh-rat b{display:block;font-family:var(--display);font-size:21px;margin-bottom:12px;
  color:#fff}
.bh-rat i{font-style:normal;display:block;font-variant-numeric:tabular-nums;font-size:17.5px;
  color:var(--gold)}
.bh-rat i+i{color:rgba(255,255,255,.72);margin-top:4px}

.bh-why{display:grid;gap:28px}
@media(min-width:820px){.bh-why{grid-template-columns:repeat(3,1fr);gap:44px}}
.bh-why b{display:block;font-family:var(--display);font-size:24px;margin-bottom:10px;
  color:#fff}
.bh-why i{font-style:normal;font-family:var(--label);font-size:12.5px;letter-spacing:.18em;
  color:var(--gold);display:block;margin-bottom:14px}

/* The FAQ animates. <details> cannot be animated alone — the user agent hides the panel
   outright, so there is no box to transition. See the IIFE in the template. */
.bh-faq details{border-top:1px solid rgba(255,255,255,.14)}
.bh-faq details:last-of-type{border-bottom:1px solid rgba(255,255,255,.14)}
.bh-faq summary{cursor:pointer;list-style:none;display:flex;gap:16px;align-items:flex-start;
  padding:22px 0;font-family:var(--display);font-size:21px;letter-spacing:-.015em;
  color:#fff;transition:color var(--t-micro) var(--ease)}
.bh-faq summary::-webkit-details-marker{display:none}
@media(hover:hover){.bh-faq summary:hover{color:var(--gold)}}
.bh-faq summary::after{content:"";margin-left:auto;flex:none;width:11px;height:11px;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:rotate(45deg) translateY(-3px);
  transition:transform var(--t-comp) var(--ease)}
.bh-faq details[open] summary::after{transform:rotate(225deg) translateY(-3px)}
.bh-faq summary i{font-style:normal;font-family:var(--label);font-size:13px;
  color:var(--gold);letter-spacing:.14em;padding-top:5px;flex:none}
.bh-faq__a{overflow:hidden}
.bh-faq details[data-anim] .bh-faq__a{transition:height var(--t-enter) var(--ease)}
.bh-faq__a p{padding:0 0 24px 40px;color:rgba(255,255,255,.82);font-size:18px;
  line-height:1.7;max-width:70ch}
@media(max-width:600px){.bh-faq__a p{padding-left:0}}

.bh-end{text-align:center;border-top:1px solid rgba(255,255,255,.13)}
.bh-end h2{font-size:clamp(30px,5.2vw,60px);color:#fff}
.bh-end .bh-t{margin-top:16px}

@media(max-width:600px){
  .bx-tools{top:0}
}


/* ── /shop/ ── generated by bin/build_shop_page.py, do not hand-edit ── */
.shx{background:var(--deep);color:#fff;margin-bottom:calc(-1 * var(--sec))}
.shx__s .sec__h{border-top:1px solid var(--deep-hair);padding-top:38px}
.bx-ours.shx__s{padding-top:0}
.shx .more{color:var(--gold);min-height:44px}
.shx .bh-why .more{margin-top:6px}
.shx__geo{display:grid;gap:14px;max-width:66ch}
.shx__legal{margin:30px 0 0;color:rgba(255,255,255,.6);font-size:15px;line-height:1.7;max-width:80ch}
.shx__legal .m{font-family:var(--label);font-size:14px;letter-spacing:.04em}
.shx__cats .bx-o__pic{aspect-ratio:4/3}
.shx .shx__wide{grid-column:1/-1;flex-direction:row}
.shx__wide .bx-o__pic{flex:0 0 calc(50% - 6px);min-width:0}
@media(min-width:900px){.shx__wide .bx-o__pic{flex-basis:calc((100% - 36px)/3)}}
.shx__wide .bx-o__b{justify-content:center}
.shx__wide .bx-o__l{flex:none}
.shx__nw{white-space:nowrap}
.shx-hero{position:relative;z-index:1}
.shx-bg{position:relative;max-width:1680px;margin:calc(-1 * clamp(28px,9vw,150px)) auto 0}
.shx-bg img{display:block;width:100%;height:auto}
.shx-bg::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--deep) 0,rgba(36,16,70,0) 34%),
    linear-gradient(90deg,var(--deep) 0,rgba(36,16,70,0) 6%,rgba(36,16,70,0) 94%,var(--deep) 100%)}


/* ── /blog/<category>/<post>/ ── from bin/build_blog_page.py ── */
/* ══════════ BLOG POST TEMPLATE — proposed, renders all 275 posts ══════════════════════
   Everything above this line is byte-identical to mockup-shop.html: same tokens, same
   header, same footer. Only what follows is new.

   The brief: fast, reliable, easy to find things, pretty, simple. The homepage and /shop/
   are the bar. So: one image, one column, one accent, no decoration.
   ────────────────────────────────────────────────────────────────────────────────────── */

/* ── the banner ───────────────────────────────────────────────────────────────────────
   Every post gets a face. RATIO-LOCKED, not a fixed height — the same fix the brand-page
   banners needed after Bogdan caught them cropping. aspect-ratio reserves the box before
   the image arrives, so it cannot shift; CLS > 0.25 is currently failing on 895 URLs and an
   unsized hero is one of the reasons.

   ONLY 26 of 275 posts have NO featured image — queried, not inferred. I first wrote 196 by
   subtracting the 79 posts that contain an <img> in their CONTENT, which is a different
   thing entirely. Those 26 degrade to a flat purple band, which is why the scrim sits on the
   container and not on the picture. */
.art__band{position:relative;background:var(--brand);overflow:clip;isolation:isolate}
.art__band::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(26,22,38,.28) 0%,rgba(26,22,38,.62) 52%,rgba(26,22,38,.86) 100%)}
.art__band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.art__bandin{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:clamp(268px,42vw,430px);padding:26px var(--gutter) 24px}
/* FIXED 2026-09-28: was `padding:26px 0 24px`, and the shorthand cancelled the side padding
   that .wrap gives. On a phone every post's date and title sat on the screen edge (left: 0,
   measured on the preview). The wiring fix is the same one-line change in style.css. */
.art__crumb{background:var(--deep-2);color:rgba(255,255,255,.72);font-family:var(--label);
  font-size:13.5px;letter-spacing:.14em;text-transform:uppercase}
.art__crumb .wrap{display:flex;align-items:center;gap:9px;padding:11px var(--gutter)}
.art__crumb a{color:rgba(255,255,255,.72);text-decoration:none}
.art__crumb a:hover{color:#fff}
.art__crumb i{font-style:normal;color:rgba(255,255,255,.34)}
.art__crumb [aria-current]{color:var(--gold)}
.art__meta{margin:0 0 12px;font-family:var(--label);font-size:14px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.82)}
.art__band h1{margin:0;color:#fff;font-family:var(--display);font-variation-settings:"wdth" 86;
  font-weight:800;letter-spacing:-.018em;line-height:1.06;
  font-size:clamp(28px,6.3vw,50px);max-width:17ch;text-wrap:balance}

/* ── the shell ────────────────────────────────────────────────────────────────────────
   One column on a phone. From 1080px the contents list becomes a sticky left rail — a rail
   is only worth its width when there IS width. The old template put a purple RECENT BLOGS
   box on the RIGHT, which competed with the article for attention and pushed the measure
   below 60 characters; it is gone. */
.art{background:var(--ground);padding:0 0 8px}
.art__grid{display:block}
.art__col{max-width:70ch;margin:0 auto}

/* ── the contents list ────────────────────────────────────────────────────────────────
   <details> on a phone, so it costs one line until it is wanted. Buttons, not links — see
   the note in the builder about Elementor's indexable anchors. */
.art__toc{margin:22px 0 4px;border:1px solid var(--border);border-radius:var(--r4);
  background:var(--surface)}
.art__toc>summary{list-style:none;cursor:pointer;padding:13px 16px;display:flex;
  align-items:center;justify-content:space-between;gap:10px;
  font-family:var(--label);font-size:14px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted)}
.art__toc>summary::-webkit-details-marker{display:none}
.art__toc>summary::after{content:"";width:8px;height:8px;flex:none;
  border-right:2px solid var(--soft);border-bottom:2px solid var(--soft);
  transform:rotate(45deg) translateY(-2px);transition:transform var(--t-comp) var(--ease)}
.art__toc[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.art__toc ol{list-style:none;margin:0;padding:2px 10px 12px}
.art__toc li{margin:0}
.art__toc button{display:block;width:100%;text-align:left;background:none;border:0;white-space:normal;
  padding:7px 8px;border-radius:var(--r2);cursor:pointer;
  font:inherit;font-size:17px;line-height:1.35;color:var(--ink-2)}
.art__toc-h3 button{padding-left:22px;font-size:16px;color:var(--muted)}
.art__toc button:hover{background:var(--chip);color:var(--brand)}
.art__toc button.is-here{color:var(--brand);font-weight:600;background:var(--chip)}

/* ── the article ──────────────────────────────────────────────────────────────────────
   THE FIX BOGDAN ASKED FOR. Today an article h2 renders in Work Sans at #401C7B 50px,
   because Elementor's kit styles the content and our rules are scoped to our own classes.
   Here the article owns its own typography and nothing leaks in. */
.art__body{font-family:var(--sans);font-size:19.5px;line-height:1.72;color:var(--ink-2);
  padding:6px 0 30px}
.art__body>*+*{margin-top:1.05em}
.art__body p{margin-bottom:0}
.art__body strong{color:var(--ink);font-weight:650}
.art__body a{color:var(--link);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px;text-decoration-color:rgba(91,47,168,.38)}
.art__body a:hover{text-decoration-color:currentColor}
.art__body h2{font-family:var(--display);font-variation-settings:"wdth" 86;font-weight:800;
  color:var(--ink);letter-spacing:-.014em;line-height:1.14;
  font-size:clamp(23px,4.4vw,31px);margin-top:1.85em;scroll-margin-top:96px}
.art__body h3{font-family:var(--display);font-variation-settings:"wdth" 88;font-weight:700;
  color:var(--ink);letter-spacing:-.008em;line-height:1.24;
  font-size:clamp(20px,3.1vw,23px);margin-top:1.5em;scroll-margin-top:96px}
.art__body h2+h3,.art__body h2+p{margin-top:.6em}
.art__body ul,.art__body ol{margin-left:0;padding-left:1.15em}
.art__body li+li{margin-top:.42em}
.art__body li::marker{color:var(--soft)}
.art__body ol li::marker{color:var(--muted);font-variant-numeric:tabular-nums}

/* 23 of 275 posts carry a table. A five-column comparison is ~560px inside a 390px phone,
   so the table scrolls in its own box rather than taking the page with it. */
.art__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -20px;padding:0 20px}
.art__body table{border-collapse:collapse;min-width:520px;width:100%;font-size:17px}
.art__body th,.art__body td{border:1px solid var(--border);padding:9px 12px;text-align:left;
  vertical-align:top}
.art__body thead th,.art__body tr:first-child td{background:var(--sunken);color:var(--ink);
  font-weight:650;font-family:var(--label);font-size:14.5px;letter-spacing:.04em;
  text-transform:uppercase}
.art__body figure{margin:0}
.art__body img{max-width:100%;height:auto;border-radius:var(--r4);display:block}


/* ── the rest of the Gutenberg blocks ─────────────────────────────────────────────────────
   Added after stress-testing. Every one of these appears in the corpus, so a template that
   does not style them ships a broken page for that slice of the 275.

   EMBEDS — 51 posts, 48 of them YouTube. WordPress emits an <iframe> with fixed width and
   height attributes, which on a 390px phone overflows and drags the page sideways. The
   aspect-ratio box holds the shape and the iframe fills it. */
.art__body .wp-block-embed{margin:0}
.art__body .wp-block-embed__wrapper{position:relative;aspect-ratio:16/9;border-radius:var(--r4);
  overflow:clip;background:var(--sunken)}
.art__body .wp-block-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* IMAGES — 79 posts. WordPress may or may not emit width/height; aspect-ratio:auto keeps the
   intrinsic ratio when it does and stops a squash when it does not. */
.art__body .wp-block-image{margin:0}
.art__body .wp-block-image img{width:100%;height:auto;border-radius:var(--r4)}
.art__body figcaption{margin-top:8px;font-size:16px;line-height:1.5;color:var(--muted)}

/* COLUMNS — 54 posts. They STACK on a phone. Gutenberg's own stylesheet is one of the 33
   sheets we are removing, so the flex behaviour has to be re-stated here or every columns
   block collapses into a single unstyled run. */
.art__body .wp-block-columns{display:flex;flex-wrap:wrap;gap:20px}
.art__body .wp-block-column{flex:1 1 100%;min-width:0}
@media(min-width:720px){ .art__body .wp-block-column{flex:1 1 0} }

/* BUTTONS — 10 posts. Reuse the site button rather than invent a second one. */
.art__body .wp-block-buttons{display:flex;flex-wrap:wrap;gap:10px}
.art__body .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 20px;border-radius:999px;background:var(--gold);color:#241046;
  font-weight:650;text-decoration:none;font-size:17.5px}
.art__body .wp-block-button__link:hover{background:#E4C489}

/* QUOTE — 1 post, but a quote with no rule reads as an ordinary paragraph. */
.art__body .wp-block-quote{margin-left:0;padding-left:18px;border-left:3px solid var(--gold);
  font-size:20.5px;line-height:1.6;color:var(--ink)}
.art__body .wp-block-quote cite{display:block;margin-top:8px;font-style:normal;
  font-family:var(--label);font-size:14px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--muted)}

/* ── the one CTA ──────────────────────────────────────────────────────────────────────
   A reader who got this far is on the site with intent and today has no obvious next step
   inside the article. One band, in the brand colour, at the end. Not three, not a popup. */
.art__cta{background:var(--brand);border-radius:var(--r5);padding:24px 22px;margin:8px 0 34px;
  color:#fff}
.art__cta h2{margin:0 0 8px;font-family:var(--display);font-variation-settings:"wdth" 88;
  font-weight:800;font-size:clamp(22px,4vw,26px);line-height:1.15;letter-spacing:-.012em}
.art__cta p{margin:0 0 16px;color:rgba(255,255,255,.84);font-size:17.5px;line-height:1.6}
.art__cta .btn{width:100%;justify-content:center}

/* ── related ─────────────────────────────────────────────────────────────────────────── */
.art__more{border-top:1px solid var(--border);padding:26px 0 8px}
.art__more h2{margin:0 0 16px;font-family:var(--display);font-variation-settings:"wdth" 88;
  font-weight:800;font-size:21px;color:var(--ink);letter-spacing:-.01em}
.rel{display:grid;gap:14px;grid-template-columns:1fr;list-style:none;margin:0;padding:0}
.rel a{color:var(--ink);display:grid;grid-template-columns:96px 1fr;gap:13px;align-items:start;
  text-decoration:none;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r4);padding:11px;transition:border-color var(--t-comp) var(--ease),
  transform var(--t-comp) var(--ease)}
.rel img{width:96px;height:72px;object-fit:cover;border-radius:var(--r3);display:block}
.rel b{display:block;font-family:var(--sans);font-size:17px;line-height:1.32;font-weight:650;
  color:var(--ink);letter-spacing:-.004em}
.rel i{display:block;margin-top:5px;font-style:normal;font-family:var(--label);font-size:13.5px;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}

@media(hover:hover){
  .rel a:hover{border-color:var(--brand);transform:translateY(-1px)}
  .rel a:hover b{color:var(--brand)}
}

@media(min-width:760px){
  .rel{grid-template-columns:repeat(3,1fr)}
  .rel a{grid-template-columns:1fr;padding:0;overflow:clip}
  .rel img{width:100%;height:132px;border-radius:0}
  .rel span{display:block;padding:12px 13px 14px}
  .art__cta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px}
  .art__cta div{flex:1}
  .art__cta p{margin:0}
  .art__cta .btn{width:auto;flex:none}
}

/* From 1080px the contents list becomes a rail. It is sticky, it tracks the reading
   position, and it never overlaps the measure. */
@media(min-width:1080px){
  /* :has() so the rail's 232px column only exists when there IS a rail. 48 posts have no
     headings; without this they would render a 300-word article beside an empty column. */
  .art__grid:has(.art__toc){display:grid;grid-template-columns:232px minmax(0,70ch);gap:44px;
    justify-content:center;align-items:start}
  .art__toc{position:sticky;top:92px;margin-top:30px;background:transparent;border:0;
    border-left:1px solid var(--border);border-radius:0;padding-left:2px}
  .art__toc>summary{display:none}
  .art__toc ol{padding:0 0 0 6px;max-height:calc(100vh - 150px);overflow-y:auto}
  .art__toc button{border-radius:0;border-left:2px solid transparent;margin-left:-8px;
    padding-left:14px}
  .art__toc button.is-here{background:transparent;border-left-color:var(--gold)}
  .art__col{margin:0;max-width:none}
}

@media(prefers-reduced-motion:reduce){
  .rel a,.art__toc>summary::after{transition:none}
  .rel a:hover{transform:none}
}


/* ── /blog/ index ── generated by bin/build_blog_index.py, do not hand-edit ── */
.bi{background:var(--deep);color:#fff;margin-bottom:calc(-1 * var(--sec))}
.bi :focus-visible{outline-color:var(--gold)}

.bx-hd.bi-hd{position:relative;isolation:isolate;overflow:clip}
.bi-bg{position:absolute;z-index:-1;left:0;right:0;top:0}
.bi-bg img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.bi-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(36,16,70,.74) 0,rgba(36,16,70,0) 20%,rgba(36,16,70,0) 44%,rgba(36,16,70,.9) 82%,var(--deep) 100%)}
.bh-hero.bi-hero{padding-top:calc(100vw - 190px)}
.bi-hero h1{text-shadow:0 2px 28px rgba(20,8,40,.6)}
@media(min-width:760px){
  .bx-hd.bi-hd{display:flex;flex-direction:column;min-height:clamp(440px,36vw,560px)}
  .bi-bg{bottom:0}
  .bi-bg img{height:100%;aspect-ratio:auto;object-position:50% 46%}
  .bi-bg::after{background:radial-gradient(ellipse 36% 58% at 43% 56%,rgba(36,16,70,.8),rgba(36,16,70,0)),
    linear-gradient(180deg,rgba(36,16,70,.62) 0,rgba(36,16,70,0) 26%,rgba(36,16,70,0) 66%,var(--deep) 100%)}
  .bh-hero.bi-hero{margin:auto;padding-top:0;padding-bottom:clamp(40px,5vw,72px)}
  
  .bh-hero.bi-hero{left:-7vw}
  .bh-hero.bi-hero h1{font-size:clamp(40px,5.2vw,66px)}
  .bi-hero .bh-t{max-width:44ch}
}

.bi-w{padding-top:clamp(24px,4vw,44px)}
.bi-lbl{color:var(--gold);margin:0 0 12px}
.bi-chips{list-style:none;display:flex;gap:8px;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 4px;
  overflow-x:auto;scrollbar-width:none}
.bi-chips::-webkit-scrollbar{display:none}
.bi-chip{display:inline-flex;align-items:center;min-height:44px;padding:0 17px;border:1px solid rgba(255,255,255,.22);
  border-radius:999px;color:#fff;font-size:17px;font-weight:600;white-space:nowrap;
  transition:border-color var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
.bi-chip:hover{border-color:var(--gold);color:var(--gold)}
@media(min-width:900px){.bi-chips{flex-wrap:wrap;margin:0;padding:0;overflow:visible}}
.bi-sec{margin-top:clamp(28px,4vw,44px);padding-top:clamp(26px,3vw,38px);border-top:1px solid var(--deep-hair)}
.bi-h2{font-size:clamp(26px,3.4vw,40px);font-variation-settings:"wdth" 92;margin:0 0 20px;text-wrap:balance}

.bi-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.bi-c{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:start;padding:12px;
  border-radius:var(--r5);background:var(--deep-panel);border:1px solid rgba(255,255,255,.08);
  transition:transform var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease)}
.bi-c:hover,.bi-c:focus-within{border-color:rgba(216,179,106,.45)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.bi-c:hover{transform:translateY(-3px)}}
.bi-c:has(a:focus-visible){outline:2px solid var(--gold);outline-offset:3px}
.bi-c__pic{aspect-ratio:1;border-radius:var(--r3);overflow:clip;background:var(--deep-2)}
.bi-c__pic img{width:100%;height:100%;object-fit:cover}
.bi-c__b{display:flex;flex-direction:column;gap:6px;min-width:0}
.bi-c__k{font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.bi-c__t{font-size:19px;line-height:1.18;letter-spacing:-.015em;font-variation-settings:"wdth" 92;text-wrap:pretty}
.bi-c__t a{color:#fff}
.bi-c__t a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.bi-c__t a:focus-visible{outline:0}
.bi-c__x{display:none;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;color:rgba(255,255,255,.74);
  font-size:17.5px;line-height:1.55}
.bi-c__m{margin-top:auto;color:rgba(255,255,255,.62);font-size:15px;font-variant-numeric:tabular-nums}
.bi-c:first-child{grid-template-columns:minmax(0,1fr);gap:0;padding:0;overflow:clip}
.bi-c:first-child .bi-c__pic{aspect-ratio:3/2;border-radius:0}
.bi-c:first-child .bi-c__b{gap:8px;padding:16px 18px 20px}
.bi-c:first-child .bi-c__t{font-size:clamp(23px,6vw,30px);line-height:1.08}
.bi-c:first-child .bi-c__x{display:-webkit-box}
@media(min-width:900px){
  .bi-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
  
  .bi-c{grid-column:span 2;display:flex;flex-direction:column;align-items:stretch;padding:0;overflow:clip}
  .bi-c__b{flex:1}
  .bi-c__pic{aspect-ratio:3/2;border-radius:0}
  .bi-c__b{gap:8px;padding:16px 18px 20px}
  .bi-c__x{display:-webkit-box}
  .bi-c:nth-child(2),.bi-c:nth-child(3){grid-column:span 3}
  .bi-c:nth-child(2) .bi-c__t,.bi-c:nth-child(3) .bi-c__t{font-size:23px}
  .bi-c:first-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center}
  .bi-c:first-child .bi-c__pic{aspect-ratio:16/10}
  .bi-c:first-child .bi-c__b{justify-content:center;padding:32px 36px}
  .bi-c:first-child .bi-c__t{font-size:clamp(28px,2.9vw,40px)}
}

@media(min-width:640px) and (max-width:899px){
  .bi-c{grid-template-columns:168px minmax(0,1fr);gap:18px}
  .bi-c__pic{aspect-ratio:4/3}
  .bi-c__x{display:-webkit-box;-webkit-line-clamp:2}
  .bi-c:first-child .bi-c__pic{aspect-ratio:16/9}
}

.bi-pg{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:clamp(30px,4vw,44px)}
.bi-pg__n{display:flex;justify-content:center;align-items:center;gap:2px;width:100%;order:-1}
.bi-pg__a{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 6px;border-radius:999px;
  color:#fff;font-weight:650;font-variant-numeric:tabular-nums}
a.bi-pg__a:hover{background:rgba(255,255,255,.1)}
.bi-pg__a[aria-current]{background:var(--gold);color:var(--deep)}
.bi-pg__gap{padding:0 4px;color:rgba(255,255,255,.45)}
@media(min-width:760px){.bi-pg__n{width:auto;order:0}}

.bi .bh-crumb a{padding:16px 6px;margin:-16px -6px}
.bi-chip[aria-current]{background:var(--gold);border-color:var(--gold);color:var(--deep)}
@media(min-width:900px){
  .bi--cat .bi-c:is(:nth-child(2),:nth-child(3)){grid-column:span 2}
  .bi--cat .bi-c:is(:nth-child(2),:nth-child(3)) .bi-c__t{font-size:19px}
}


/* ── NO var() IN THIS BLOCK. THIS IS A REAL COLLISION, NOT A STYLE PREFERENCE. ──────────────
   Elementor sets `--display: flex` on its OWN containers — .elementor-element and
   .e-con-inner — so inside any Elementor page our `--display` token is shadowed and
   `font-family: var(--display)` computes to the string `flex`. Traced up the chain on
   /contact/ 2026-09-25: the h2, and four ancestors, all report --display=flex; only the
   outermost .elementor wrapper still holds our value.
   It bites ONLY here, because our rebuilt pages do not sit inside Elementor containers and
   blog posts have the Elementor chain stripped entirely. The override layer is the one place
   our CSS runs INSIDE Elementor's DOM, so it uses literal values and depends on no token. ── */
/* ══════════ GLOBAL TYPE AND COLOUR OVERRIDE ═══════════════════════════════════════════════
   The site is half rebuilt. Our pages carry KOLAS typography; every page still on Elementor
   renders its body in Work Sans with a #CC3366 / #E35871 pink for links, because Elementor's
   global kit styles the content and our rules are scoped to our own class names. This block
   makes the un-rebuilt pages look like the rest of the site until each is rebuilt properly.

   IT IS SCOPED ON PURPOSE, AND THE SCOPE IS THE WHOLE SAFETY ARGUMENT.
   Never bare `h2 {}` or `p {}`. Measured on 2026-09-25:
     · every un-rebuilt page carries .elementor-widget-text-editor / -container / -heading,
       and a blog post additionally carries .post-content
     · NONE of those classes appears inside <main> on /, /shop/, /brands/, /faqs/ or a brand
       page — so this cannot touch anything already rebuilt
     · the 780 Sweede menu URLs — 420,713 impressions, the second biggest block on the site —
       use hashed React class names (sw-1nUnWW and friends) and carry none of these wrappers,
       so a bare-element rule would have restyled the entire menu by accident and this does not
   Re-check those three facts before widening the scope.

   It fixes appearance only. It does not remove a single stylesheet, so it does nothing for
   speed; that needs the page rebuilt. ── */

.elementor-widget-text-editor,
.elementor-widget-container,
.elementor-widget-heading,
.post-content {
  font-family: "Gabarito", system-ui, -apple-system, sans-serif;
  color: #4B4557;
}

/* Headings: Bricolage Grotesque at the narrow width the rest of the site uses.
   !important IS REQUIRED HERE, and the first version of this block was wrong without it.
   Elementor writes per-page CSS targeting `.elementor-NNN .elementor-element-XXX
   .elementor-heading-title` — three classes deep — so a two-class selector loses every time.
   Measured on /contact/ after the first deploy: body copy and links had correctly become
   Gabarito and #5B2FA8, while the H1 and H2 were still Work Sans at 60px.
   Only the FAMILY and the colour are forced. Size, weight and spacing stay Elementor's,
   because those carry the page's own hierarchy and overriding them would relayout pages
   nobody has reviewed. */
/* Enumerating widget classes one at a time does not converge. First pass caught
   .elementor-heading-title and left /brands/stiiizy/ with 8 Work Sans headings, all of them
   .elementor-image-box-title — and there is a whole family: image-box, icon-box, accordion,
   tab, price-table, testimonial. So: any heading inside ANY Elementor widget, plus Elementor's
   own `*-title` convention. Still scoped — `.elementor-widget` appears on no rebuilt page of
   ours and on none of the 780 Sweede menu URLs. */
.elementor-widget h1, .elementor-widget h2, .elementor-widget h3, .elementor-widget h4,
[class*="elementor-"][class*="-title"],
.elementor-heading-title,
.post-content h1, .post-content h2, .post-content h3, .post-content h4 {
  font-family: "Bricolage Grotesque", Georgia, serif !important;
  font-variation-settings: "wdth" 88;
  letter-spacing: -.012em;
}
/* Colour only where Elementor left it at the old purple or the pink. A heading that is
   deliberately white on a dark band must stay white, so this does not touch colour at all —
   /contact/'s H1 is white on purple and is correct as it is. */

/* THE PINK. #CC3366 comes from a CORS-blocked third-party stylesheet and #E35871 from
   Elementor's kit, so neither can be beaten by specificity alone — the same reason the nav
   toggle needed !important on 2026-09-21. Links inside content only; buttons keep their own
   colour, which is why .btn and the Elementor button widget are excluded. */
/* NO !important ON THE LINK COLOUR, and that is the whole design of this rule.
   The audit found my forced #5B2FA8 producing dark-on-dark in four places besides the
   breadcrumb Bogdan caught: a "Pre-Rolls" link at 1.00 on /areas-we-serve/roseville/, a
   content link at 1.45 on /brands/kiva/. Those links are deliberately white because they sit
   on a dark band, and !important overrode the intent.
   Specificity does the discrimination for free. This selector scores (0,3,1), which beats
   Elementor's generic kit `a { color }` at (0,0,1) — the pink — but LOSES to the per-element
   rule that deliberately paints a link white on a dark section. The pink goes, the intent
   stays. */
.elementor-widget-text-editor a:not(.btn):not([class*="button"]),
.elementor-widget-container a:not(.btn):not([class*="button"]),
.post-content a:not(.btn):not([class*="button"]) {
  color: #5B2FA8;
  text-decoration-color: rgba(91, 47, 168, .38);
}
.elementor-widget-text-editor a:not(.btn):not([class*="button"]):hover,
.elementor-widget-container a:not(.btn):not([class*="button"]):hover,
.post-content a:not(.btn):not([class*="button"]):hover {
  color: #2F1459;
  text-decoration-color: currentColor;
}

/* BREADCRUMBS ARE EXCLUDED, and this was a real regression Bogdan caught.
   On /areas-we-serve/roseville/ the breadcrumb sits on a dark background IMAGE. Forcing the
   link colour to #5B2FA8 put dark purple on dark purple; the current crumb "Roseville" was
   already white, which is what the original design intended. A colour that is safe on white
   is not safe everywhere, and CSS cannot see what is behind an element.

   ORDER AND SPECIFICITY BOTH MATTER HERE, and the first attempt got both wrong. The rule
   above scores (0,3,1) — one class plus :not(.btn) and :not([class*="button"]) — so a plain
   `[class*="breadcrumb"] a` at (0,1,1) lost even with !important. This carries the SAME two
   negations to match at (0,3,1), and sits AFTER it so the later rule wins. */
[class*="breadcrumb"] a:not(.btn):not([class*="button"]),
.eael-breadcrumbs__content a:not(.btn):not([class*="button"]) {
  color: rgba(255, 255, 255, .72) !important;
  text-decoration: none;
}
[class*="breadcrumb"] a:not(.btn):not([class*="button"]):hover,
.eael-breadcrumbs__content a:not(.btn):not([class*="button"]):hover {
  color: #fff !important;
}

/* Body copy. Naming `p` and `li` inside three wrappers was not enough — the audit across 14
   pages found 45 elements still in Work Sans, Inter or Roboto, spread over
   .elementor-icon-list-text, .elementor-image-box-description, .e-n-tab-title-text,
   .elementor-post__read-more, .page-numbers, plain <b> and <strong>, and the deals plugin's
   own dpn-* classes. Enumerating widget classes does not converge; it did not converge for
   the headings either.
   So: everything inside an Elementor widget, and everything in the deals plugin, takes our
   sans — EXCEPT icons, which must keep their own font or they render as letters. Headings are
   unaffected because the display-face rule above is more specific. */
/* !important ON THE FAMILY, NEVER ON THE COLOUR. That distinction is the whole lesson of
   this layer. A typeface is correct everywhere — there is no context where Work Sans is the
   right answer on this site — so it can be forced. A COLOUR is only correct against a
   particular ground, which is why forcing #5B2FA8 produced dark-on-dark in four places.
   Without !important here, Elementor's per-widget CSS still won on .elementor-icon-list-text,
   .elementor-image-box-description and .elementor-icon-box-description. */
.elementor-widget, [class^="dpn-"], [class*=" dpn-"],
/* The exclusion must name ICON FONTS, not the substring "icon". `[class*="icon"]` looked
   right and silently ate .elementor-icon-list-text and .elementor-icon-box-description —
   which are TEXT that happens to sit next to an icon — leaving 7 elements in Work Sans after
   everything else was fixed. Match the actual icon carriers instead: <i>, <svg>, Font Awesome
   and Elementor's own eicon set. */
.elementor-widget *:not([class*="fa-"]):not([class*="eicon"]):not(.elementor-icon):not(i):not(svg):not(svg *),
[class^="dpn-"] *:not([class*="fa-"]):not([class*="eicon"]):not(i):not(svg):not(svg *) {
  font-family: "Gabarito", system-ui, -apple-system, sans-serif !important;
}
.elementor-widget-text-editor p, .elementor-widget-container p, .post-content p,
.elementor-widget-text-editor li, .elementor-widget-container li, .post-content li {
  font-size: 19px;
  line-height: 1.7;
}
/* The skip link is invisible until focused, and then it must look like ours. */
.skip-link, .screen-reader-text {
  font-family: "Gabarito", system-ui, -apple-system, sans-serif;
}

/* A table on a phone. 23 posts and several Elementor pages carry one, and a five-column
   comparison is wider than a 390px viewport, so without this the BODY scrolls sideways. */
.elementor-widget-text-editor table, .post-content table { display: block; overflow-x: auto; }

/* THE PINK BUTTON. /contact/ ships a fluorescent pink "CALL US" button next to an otherwise
   brand-purple one — the same magenta family as the #CC3366 removed from the nav. CSS cannot
   select an element by its computed colour, so the only way to reach it is to give every
   Elementor button on an un-rebuilt page the brand treatment. Purple rather than gold: the
   sibling "SEND US A MESSAGE" button is already purple, gold is reserved for the primary buy
   action, and two golds on one page would compete.
   Layout, size and padding are left alone so nothing reflows. */
/* Bogdan caught "SHOP ALL" rendering as a tight purple box. Two causes, both mine: the
   button TEXT lives in .elementor-button-text and was never covered by the heading rule, so
   it stayed Work Sans; and several Elementor "buttons" on this site are styled as plain text
   links with almost no padding — measured 96x20 on /locations/arden/ — so giving them a solid
   background turned them into cramped rectangles.
   Fixed by making them proper KOLAS buttons rather than half-converted ones: our font, a 44px
   tap target, real padding and the pill radius the rest of the site uses. */
.elementor-button,
.elementor-button-link,
.elementor-post__read-more {
  background-color: #401C7B !important;
  color: #fff !important;
  border-color: #401C7B !important;
  min-height: 44px;
  padding: 10px 22px;
  border-radius: 999px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.elementor-button-text,
.elementor-button .elementor-button-content-wrapper {
  font-family: "Gabarito", system-ui, -apple-system, sans-serif !important;
  font-weight: 650;
  color: #fff !important;
}
.elementor-button:hover,
.elementor-button-link:hover,
.elementor-post__read-more:hover {
  background-color: #2F1459 !important;
}

@media (prefers-reduced-motion: reduce) {
  .elementor-widget-text-editor *, .elementor-widget-container *, .post-content * {
    animation-duration: .01ms !important; transition-duration: .01ms !important;
  }
}


/* ---- Location pages. Component classes are the homepage's (.faq, .wrap, .btn, .pband, .crumb);
   only what is unique to these seven pages lives here, so nothing can drift. ---- */

/* The index leads with the six shops, because that is the only reason anyone opens it. The live
   index spends its first two screens on prose and "Why Shop at KOLAS?" before naming a single
   shop. Cards first, copy after. */
.lgrid{display:grid;gap:14px;padding:30px 0 6px}
@media(min-width:660px){.lgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.lgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.lcard{border:1px solid var(--border);border-radius:var(--r5);background:var(--surface);
  padding:20px 20px 18px;display:flex;flex-direction:column;gap:12px;
  transition:border-color var(--t-micro) var(--ease),box-shadow var(--t-comp) var(--ease),
             transform var(--t-comp) var(--ease)}
@media(hover:hover){.lcard:hover{border-color:var(--edge);transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(26,22,38,.07)}}
.lcard h2{font-family:var(--display);font-size:22px;letter-spacing:-.018em;margin:0;
  font-variation-settings:"wdth" 94;color:var(--ink)}
.lcard h2 a{color:inherit}
.lcard__area{font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);display:block;margin-bottom:5px}
.lcard__meta{margin:0;color:var(--ink-2);font-size:17px;line-height:1.6;flex:1}
.lcard__meta b{font-weight:400;color:var(--muted)}
.lcard__act{display:flex;flex-wrap:wrap;gap:8px}

/* One rating chip, on the cards and on the shop page. tabular-nums so a column of ratings and
   review counts lines up instead of shimmering. */
.lrate{display:inline-flex;align-items:center;gap:7px;font-size:16px;color:var(--ink-2);
  font-variant-numeric:tabular-nums}
.lrate b{color:var(--ink);font-weight:700}
.lrate svg{width:14px;height:14px;fill:var(--gold-struct);flex:0 0 auto}

/* The shop page: facts left, actions right. The facts are a <dl> because that is what they are —
   term and value — not a paragraph pretending to be a table. */
.ltop{display:grid;gap:22px;padding:30px 0 8px;align-items:start}
@media(min-width:840px){.ltop{grid-template-columns:1.25fr .85fr;gap:38px}}
.lfacts{margin:0}
.lfacts>div{display:grid;gap:3px;padding:13px 0;border-bottom:1px solid var(--hair)}
.lfacts>div:first-child{padding-top:0}
.lfacts dt{font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted)}
.lfacts dd{margin:0;font-size:18px;color:var(--ink);line-height:1.5}
.lfacts dd.lfacts__lic{font-family:var(--label);font-size:14px;letter-spacing:.06em;
  color:var(--ink-2)}
.lact{border:1px solid var(--border);border-radius:var(--r5);background:var(--surface);
  padding:20px;display:flex;flex-direction:column;gap:11px}
.lact .btn{width:100%}
.lact__r{padding-bottom:12px;border-bottom:1px solid var(--hair);margin-bottom:2px}

.lsec{padding:34px 0 0}
.lsec>h2{font-family:var(--display);font-size:clamp(23px,2.6vw,27px);letter-spacing:-.02em;
  margin:0 0 14px;font-variation-settings:"wdth" 94;color:var(--ink);text-wrap:balance}
.lprose p{color:var(--ink-2);font-size:18px;line-height:1.68;margin:0 0 13px;max-width:72ch}
.lprose p:last-child{margin-bottom:0}

/* Real Google reviews, author and age shown. The live pages use a Trustindex widget whose own
   watermark — "Trustindex verifies that the original source of the review is Google" — is baked
   into the text of every quote. These come from the Places API with the author's real name. */
.lq{display:grid;gap:12px}
@media(min-width:760px){.lq{grid-template-columns:repeat(3,minmax(0,1fr))}}
.lq blockquote{margin:0;border:1px solid var(--border);border-radius:var(--r4);
  background:var(--surface);padding:18px;display:flex;flex-direction:column}
.lq p{margin:0 0 12px;color:var(--ink);font-size:17.5px;line-height:1.6;flex:1}
.lq footer{font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);line-height:1.5}

.lother{display:flex;flex-wrap:wrap;gap:8px}
.lother a{font-size:16px;font-weight:700;padding:9px 15px;border-radius:999px;
  border:1px solid var(--border);color:var(--ink-2);background:var(--surface);
  transition:border-color var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
@media(hover:hover){.lother a:hover{border-color:var(--link);color:var(--link)}}

.lways{display:grid;gap:12px}
@media(min-width:720px){.lways{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.lways{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lways>div{border:1px solid var(--border);border-radius:var(--r4);background:var(--surface);
  padding:18px}
.lways h3{font-family:var(--display);font-size:19px;letter-spacing:-.01em;margin:0 0 6px;
  font-variation-settings:"wdth" 94;color:var(--ink)}
.lways p{margin:0;color:var(--muted);font-size:16px;line-height:1.55}
.lwhy{list-style:none;margin:0;padding:0;display:grid;gap:11px}
@media(min-width:760px){.lwhy{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lwhy b{display:block;font-size:17.5px;color:var(--ink);margin-bottom:2px;font-weight:700}
.lwhy span{color:var(--muted);font-size:16px;line-height:1.55}
.lnote{color:var(--muted);font-size:17px;margin:0 0 12px;max-width:62ch}
.lcta{margin:40px 0 60px;padding:26px 24px;border:1px solid var(--border);border-radius:var(--r5);
  background:var(--surface);display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;
  justify-content:space-between}
.lcta b{display:block;font-family:var(--display);font-size:22px;letter-spacing:-.015em;
  color:var(--ink)}
.lcta span{display:block;color:var(--muted);font-size:17px;margin-top:4px}
.lcta__act{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:600px){.lcta{flex-direction:column;align-items:flex-start}}


/* ---- CONSENT-CSS-START · cookie bar + preferences modal ----
   The widget renders inside a SHADOW ROOT on #wpconsent-container, which is why it stayed
   off-brand while everything around it changed — ordinary selectors cannot reach it. It exposes
   `part=` hooks, and every rule below uses them.

   COLOUR IS NOT SET HERE. The plugin writes CSS variables inline on #wpconsent-root from its own
   settings, and an inline style beats any stylesheet rule — so colour lives in `wpconsent_settings`
   (backed up to /root/wpconsent-backup-2026-09-16/) where the plugin expects it. DARK variant:
   the bar overlays page content, so it has to read as chrome. White on the #F4F3F8 ground had
   almost no separation.

   This file carries only what the settings CANNOT express: type, density, borders and hover. */
#wpconsent-container::part(wpconsent-banner){
  font-family:var(--sans);
  /* Thin. The first pass let the message wrap to two lines, which doubled the bar's height for no
     gain — a consent bar should take the least room that still reads. */
  padding:12px 22px;
  /* flex-direction MUST be stated. The plugin's own sheet sets `flex-direction:column` on
     .wpconsent-banner-long, which stacked the message ABOVE the buttons and doubled the bar's
     height. `display:flex` alone does not reset it — row is only the INITIAL value, and the
     plugin's declaration is not initial. */
  display:flex;flex-direction:row;align-items:center;gap:20px;flex-wrap:wrap;
  /* The plugin sets --wpconsent-min-width, which computes to 526px. That floor is meant for the
     small FLOATING card; on a full-width bottom bar it only forces the bar wider than a 375px
     phone, so the buttons ran off the right edge. Measured, not guessed. */
  min-width:0;
  border-top:1px solid rgba(255,255,255,.14);
  /* Lift, not smear. The first value blurred 40px at .34 alpha, which threw a visible grey haze
     ~100px up the light #F4F3F8 ground and read as a rendering fault rather than depth. */
  box-shadow:0 -4px 16px rgba(20,10,42,.10)}
#wpconsent-container::part(wpconsent-banner-body){
  flex:1 1 380px;line-height:1.45;text-align:left;margin:0;max-width:none}
#wpconsent-container::part(wpconsent-banner-footer){
  gap:9px;flex:0 0 auto;margin:0;align-items:center}

/* Accept and Reject: identical size and shape, only the fill differs. Unequal prominence between
   accept and reject is a dark pattern and a real exposure for a California retailer. */
#wpconsent-container::part(wpconsent-button-accept),
#wpconsent-container::part(wpconsent-button-cancel){
  font-family:var(--sans);font-weight:700;font-size:16px;line-height:1;
  padding:11px 20px;min-height:40px;border:1px solid transparent;width:auto;
  transition:background var(--t-micro) var(--ease),border-color var(--t-micro) var(--ease),
             color var(--t-micro) var(--ease),transform var(--t-micro) var(--ease)}
#wpconsent-container::part(wpconsent-button-cancel){border-color:rgba(255,255,255,.42)}
#wpconsent-container::part(wpconsent-button-preferences){
  font-family:var(--sans);font-weight:700;font-size:16px;min-height:40px;
  /* width:auto is not redundant. Under the plugin's mobile breakpoint these buttons inherit a
     full-width stretch, and Preferences then took the whole 343px row and pushed Reject and
     Accept off the right edge of a 375px screen. Measured at a real 375px viewport. */
  padding:11px 12px;border:0;width:auto;
  text-decoration:underline;text-decoration-color:rgba(185,169,214,.42);text-underline-offset:3px;
  transition:color var(--t-micro) var(--ease),text-decoration-color var(--t-micro) var(--ease)}
@media(hover:hover){
  /* It had no hover at all. Three controls a visitor is asked to choose between should each
     answer the pointer. */
  #wpconsent-container::part(wpconsent-button-accept):hover{
    background:#F0ECF8;transform:translateY(-1px)}
  #wpconsent-container::part(wpconsent-button-cancel):hover{
    background:rgba(255,255,255,.10);border-color:#fff;transform:translateY(-1px)}
  #wpconsent-container::part(wpconsent-button-preferences):hover{
    color:#fff;text-decoration-color:#fff}
}
#wpconsent-container::part(wpconsent-button-accept):focus-visible,
#wpconsent-container::part(wpconsent-button-cancel):focus-visible,
#wpconsent-container::part(wpconsent-button-preferences):focus-visible{
  outline:2px solid var(--gold);outline-offset:2px}

/* ---- the preferences modal ----
   Switching the bar to dark switched this too: the plugin builds the modal card from the SAME
   --wpconsent-background variable. The first pass styled it as a light card, so #E2DFEC hairlines
   burned as bright lines across a dark surface and the --muted description was barely readable.
   Dark is the right answer anyway — the age gate is already a dark card on this site, so system UI
   now speaks one language. Everything below is the dark counterpart, not a patch on the light one. */
#wpconsent-container::part(wpconsent-preferences-modal){
  background:rgba(12,6,26,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
#wpconsent-container::part(wpconsent-preferences-content){
  border:1px solid rgba(255,255,255,.14);border-radius:var(--r6);font-family:var(--sans);
  box-shadow:0 30px 80px rgba(0,0,0,.5)}
#wpconsent-container::part(wpconsent-preferences-header){
  border-bottom:1px solid rgba(255,255,255,.14);padding:22px 24px 16px}
#wpconsent-container::part(wpconsent-preferences-title){
  font-family:var(--display);font-size:24px;letter-spacing:-.02em;font-weight:700;
  font-variation-settings:"wdth" 94;color:#fff;margin:0}
#wpconsent-container::part(wpconsent-preferences-close){
  color:#B9A9D6;font-size:24px;line-height:1;background:transparent;border:0;cursor:pointer;
  min-width:36px;min-height:36px;border-radius:999px;
  transition:color var(--t-micro) var(--ease),background var(--t-micro) var(--ease)}
#wpconsent-container::part(wpconsent-preferences-description){
  color:#B9A9D6;font-size:17px;line-height:1.55}

/* Each category reads as a row on a faint panel, the same device the age gate uses for its
   checkbox list. No border-top on the content: when a row is collapsed the border still painted,
   which drew a stray line under every closed row. */
#wpconsent-container::part(wpconsent-accordion-item){
  border:1px solid rgba(255,255,255,.14);border-radius:var(--r4);margin:10px 24px;
  background:rgba(255,255,255,.04);overflow:clip}
#wpconsent-container::part(wpconsent-accordion-toggle){
  font-family:var(--sans);font-weight:700;font-size:17.5px;min-height:44px;color:#fff}
#wpconsent-container::part(wpconsent-accordion-content){
  font-size:16px;line-height:1.6;color:rgba(255,255,255,.78);border-top:0}
#wpconsent-container::part(wpconsent-cookies-list-header){
  font-family:var(--label);font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  color:#B9A9D6}
#wpconsent-container::part(wpconsent-cookies-list-item){
  color:rgba(255,255,255,.72);border-top:1px solid rgba(255,255,255,.10)}

/* The ON track resolves to var(--wpconsent-accept-bg). Setting Accept to a white fill for the dark
   bar therefore made a switched-ON toggle a WHITE track under a WHITE knob — the state became
   invisible. The knob colour is hard-coded #fff inside the shadow tree and cannot be reached.
   The variable can: custom properties inherit, so re-declaring it ON THE PART re-scopes it to this
   control only and leaves the Accept button alone. --link is the palette's lighter purple. */
#wpconsent-container::part(wpconsent-checkbox-toggle){
  --wpconsent-accept-bg:var(--link);
  border-radius:999px;box-shadow:0 0 0 1px rgba(255,255,255,.22)}

#wpconsent-container::part(wpconsent-preferences-actions){
  border-top:1px solid rgba(255,255,255,.14);padding:16px 24px}
#wpconsent-container::part(wpconsent-preferences-buttons){gap:10px;align-items:center}
#wpconsent-container::part(wpconsent-preferences-buttons-left){display:flex;gap:10px;align-items:center}
/* Three actions, three ranks, stated in fill rather than size. "Accept All" and "Save and Close"
   are both commits and stay the same shape; "Close" discards and reads as text. Without this the
   last two rendered as bare unstyled words next to a white pill. */
#wpconsent-container::part(wpconsent-preferences-accept-button),
#wpconsent-container::part(wpconsent-preferences-save-button),
#wpconsent-container::part(wpconsent-preferences-cancel-button){
  font-family:var(--sans);font-weight:700;font-size:17px;line-height:1;
  min-height:44px;padding:13px 22px;border-radius:999px;border:1px solid transparent;
  width:auto;cursor:pointer;
  transition:background var(--t-micro) var(--ease),border-color var(--t-micro) var(--ease),
             color var(--t-micro) var(--ease),transform var(--t-micro) var(--ease)}
#wpconsent-container::part(wpconsent-preferences-accept-button){
  background:#fff;color:#241046;border-color:#fff}
#wpconsent-container::part(wpconsent-preferences-save-button){
  background:transparent;color:#fff;border-color:rgba(255,255,255,.42)}
#wpconsent-container::part(wpconsent-preferences-cancel-button){
  background:transparent;color:#B9A9D6;border-color:transparent;padding:13px 10px;
  text-decoration:underline;text-decoration-color:rgba(185,169,214,.42);text-underline-offset:3px}
@media(hover:hover){
  #wpconsent-container::part(wpconsent-preferences-close):hover{
    color:#fff;background:rgba(255,255,255,.10)}
  #wpconsent-container::part(wpconsent-preferences-accept-button):hover{
    background:#F0ECF8;border-color:#F0ECF8;transform:translateY(-1px)}
  #wpconsent-container::part(wpconsent-preferences-save-button):hover{
    background:rgba(255,255,255,.10);border-color:#fff;transform:translateY(-1px)}
  #wpconsent-container::part(wpconsent-preferences-cancel-button):hover{
    color:#fff;text-decoration-color:#fff}
}
#wpconsent-container::part(wpconsent-preferences-close):focus-visible,
#wpconsent-container::part(wpconsent-preferences-accept-button):focus-visible,
#wpconsent-container::part(wpconsent-preferences-save-button):focus-visible,
#wpconsent-container::part(wpconsent-preferences-cancel-button):focus-visible,
#wpconsent-container::part(wpconsent-accordion-toggle):focus-visible{
  outline:2px solid var(--gold);outline-offset:2px}

/* The floating cog that reopens preferences after a choice is made. It is the second of the two
   corner bubbles; it stays, because withdrawing consent must remain reachable. */
#wpconsent-container::part(wpconsent-settings-button){
  border:1px solid rgba(255,255,255,.18);box-shadow:0 6px 20px rgba(20,10,42,.28);
  transition:transform var(--t-micro) var(--ease),box-shadow var(--t-micro) var(--ease)}
@media(hover:hover){
  #wpconsent-container::part(wpconsent-settings-button):hover{
    transform:translateY(-2px);box-shadow:0 10px 26px rgba(20,10,42,.36)}
}

@media(max-width:767px){
  #wpconsent-container::part(wpconsent-banner){padding:11px 16px;gap:9px}
  #wpconsent-container::part(wpconsent-banner-footer){
    flex:1 1 100%;flex-direction:row;justify-content:flex-start;gap:8px}
  /* Reject and Accept share the row equally — parity survives the breakpoint. Preferences keeps
     its content width, so the tertiary control stays visibly tertiary. */
  #wpconsent-container::part(wpconsent-button-accept),
  #wpconsent-container::part(wpconsent-button-cancel){flex:1 1 0;padding:11px 10px}
  #wpconsent-container::part(wpconsent-button-preferences){flex:0 0 auto;padding:11px 6px}
}
/* CONSENT-CSS-END */


/* ── wired: shared (base block and pg rules; ships with any wired page) ── */
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) :is(p,h1,h2,h3,h4,h5,h6,ul,ol,menu,dl,dd,blockquote,figure,pre,hr,fieldset,legend,button,input,select,textarea,td,th,dialog){margin:revert;padding:revert}
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) *,:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) *::before,:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) *::after{box-sizing:border-box}
html:has(> body.kolas-wired){-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body.kolas-wired{margin:0}
@media (prefers-reduced-motion:reduce){
html:has(> body.kolas-wired){scroll-behavior:auto}
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) *,:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) *::before,:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important}
}
body.kolas-wired{background:var(--ground); color:var(--ink);
  font-family:var(--sans); font-size:18px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) a{color:inherit;text-decoration:none}
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) p{margin:0}
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) h1,:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) h2,:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) h3{margin:0;font-family:var(--display);font-weight:700;line-height:1.02;letter-spacing:-.03em}
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar)) img{max-width:100%;display:block}
:where(body.kolas-wired :is(#content,.hdr,.pick,.ftr,.bar) :focus-visible){outline:2px solid var(--brand);outline-offset:3px;border-radius:var(--r2)}
@media(max-width:899px){
body.kolas-wired{padding-bottom:76px}
}
html:has(> body.kolas-wired){scroll-padding-top:92px}
:where(body.kolas-wired > a.skip-link){text-decoration:none}
/* The WPCode popups keep the parent reset on a wired page (wp_part.POPUPS). */
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) *,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) :after,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) :before{box-sizing:border-box}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h1,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h2,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h3,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h4,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h5,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h1{font-size:2.5rem}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h2{font-size:2rem}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h3{font-size:1.75rem}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h4{font-size:1.5rem}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h5{font-size:1.25rem}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h6{font-size:1rem}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) p{margin-block-end:.9rem;margin-block-start:0}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) hr{box-sizing:content-box;height:0;overflow:visible}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a{background-color:transparent;color:#c36;text-decoration:none}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a:active,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a:hover{color:#336}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a:not([href]):not([tabindex]),:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a:not([href]):not([tabindex]):focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a:not([href]):not([tabindex]):focus{outline:0}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) b,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) strong{font-weight:bolder}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) code,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) kbd,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) samp{font-family:monospace,monospace;font-size:1em}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) small{font-size:80%}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) sub,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) sub{bottom:-.25em}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) sup{top:-.5em}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) img{border-style:none;height:auto;max-width:100%}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) details{display:block}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) summary{display:list-item}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) figcaption{color:#333;font-size:18px;font-style:italic;font-weight:400;line-height:1.4}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [hidden],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) template{display:none}
@media print{
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) *,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) :after,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) :before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a:visited{text-decoration:underline}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a[href]:after{content:" (" attr(href) ")"}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) abbr[title]:after{content:" (" attr(title) ")"}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a[href^="#"]:after,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) a[href^="javascript:"]:after{content:""}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) pre{white-space:pre-wrap!important}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) blockquote,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) thead{display:table-header-group}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) img,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) tr{-moz-column-break-inside:avoid;break-inside:avoid}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h2,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h3,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) p{orphans:3;widows:3}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h2,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) h3{-moz-column-break-after:avoid;break-after:avoid}
}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) label{display:inline-block;line-height:1;vertical-align:middle}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) optgroup,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) select,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=date],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=email],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=number],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=password],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=search],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=tel],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=text],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=time],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=url],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) select,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=date]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=email]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=number]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=password]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=search]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=tel]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=text]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=time]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input[type=url]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) select:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) textarea:focus{border-color:#333}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) input{overflow:visible}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) select{text-transform:none}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=button],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=reset],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=submit],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button{-webkit-appearance:button;width:auto}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=button],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=submit],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=button]:focus:not(:focus-visible),:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=submit]:focus:not(:focus-visible),:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button:focus:not(:focus-visible){outline:none}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=button]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=button]:hover,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=submit]:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=submit]:hover,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button:focus,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button:hover{background-color:#c36;color:#fff;text-decoration:none}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=button]:not(:disabled),:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=submit]:not(:disabled),:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) button:not(:disabled){cursor:pointer}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) fieldset{padding:.35em .75em .625em}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) progress{vertical-align:baseline}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) textarea{overflow:auto;resize:vertical}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=checkbox],:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=radio]{box-sizing:border-box;padding:0}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=number]::-webkit-inner-spin-button,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=number]::-webkit-outer-spin-button{height:auto}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=search]{-webkit-appearance:textfield;outline-offset:-2px}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) [type=search]::-webkit-search-decoration{-webkit-appearance:none}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) select{display:block}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table td,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table th{font-weight:700}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table tfoot th,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table thead th{font-size:1em}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table caption+thead tr:first-child td,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table caption+thead tr:first-child th,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table colgroup+thead tr:first-child td,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table colgroup+thead tr:first-child th,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table thead:first-child tr:first-child td,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table tbody>tr:nth-child(odd)>td,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table tbody tr:hover>td,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}
@media(max-width:767px){
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table table{font-size:.8em}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table table td,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table table th{line-height:1.3;padding:7px}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) table table th{font-weight:400}
}
:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) dd,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) dl,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) dt,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) li,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) ol,:where(body.kolas-wired :is(#confirmationPopup,#locationPopup,#promoPopup,#appDownloadPopup)) ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}
.pg{background:var(--ground);color:var(--ink)}
.pg .wrap{max-width:1120px}
.pg-crumb{background:var(--deep-2);color:rgba(255,255,255,.72);font-family:var(--label);
  font-size:13.5px;letter-spacing:.14em;text-transform:uppercase}
.pg-crumb .wrap{display:flex;align-items:center;gap:9px;padding-top:12px;padding-bottom:12px}
.pg-crumb a{color:rgba(255,255,255,.72);text-decoration:none;display:inline-block;padding:12px 6px;margin:-12px -6px}
.pg-crumb a:hover{color:#fff}
.pg-crumb i{font-style:normal;color:rgba(255,255,255,.34)}
.pg-crumb [aria-current]{color:var(--gold)}
.pg-band .wrap{padding-top:34px;padding-bottom:34px}
.pg-band .lbl{color:var(--gold);margin:0 0 12px}
.pg a{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.pg button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.pg select{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.pg summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
@media(min-width:960px){
.pg-band .wrap{padding-top:56px;padding-bottom:56px}
}
.pg-band{background:var(--deep);color:#fff;position:relative;overflow:clip;isolation:isolate}
.pg-band h1{font-size:clamp(32px,8vw,60px);line-height:.98;letter-spacing:-.035em;font-weight:800;
  font-variation-settings:"wdth" 88,"opsz" 72;max-width:16ch;text-wrap:balance}
.pg-band p.pg-lede{margin:14px 0 0;font-size:18px;line-height:1.5;color:rgba(255,255,255,.86);max-width:40ch}
.pg-band p.pg-lede b{color:#fff;font-weight:650}
.pg-sec{padding:40px 0 8px}
.pg-sec:last-of-type{padding-bottom:56px}
.pg-sec h2{font-size:clamp(24px,5vw,34px);letter-spacing:-.03em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.pg-sec .pg-sub{margin:8px 0 0;color:var(--muted);font-size:17px;max-width:60ch}
.pg-panel{margin-top:16px;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.pg-row{padding:16px 18px;border-top:1px solid var(--hair)}
.pg-row:first-child{border-top:0}
.pg-row h3{font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.pg-row p{margin:5px 0 0;color:var(--ink-2);font-size:17px;line-height:1.55}
.pg-note{margin:18px 0 0;font-size:15px;line-height:1.6;color:var(--muted);max-width:66ch}
@media(min-width:960px){
.pg-sec{padding:56px 0 8px}
}

/* ── wired: page ── */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
:where(body.kolas-wired) .en{opacity:0;animation:rise var(--t-enter) var(--ease) forwards}
:where(body.kolas-wired) .en1{animation-delay:60ms}
:where(body.kolas-wired) .en2{animation-delay:140ms}
:where(body.kolas-wired) .en3{animation-delay:220ms}
:where(body.kolas-wired) .en4{animation-delay:300ms}
:where(body.kolas-wired) .en5{animation-delay:380ms}
@media (prefers-reduced-motion:reduce){
:where(body.kolas-wired) .en{opacity:1;transform:none;animation:none}
}
:where(body.kolas-wired) .shelfA .more{color:var(--gold)}
:where(body.kolas-wired) .ctc .wrap{max-width:1120px}
.ctc-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
:where(body.kolas-wired) .ctc a{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
:where(body.kolas-wired) .ctc button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
:where(body.kolas-wired) .ctc summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.ctc-band :focus-visible{outline-color:var(--gold)}
.ctc-cc :focus-visible{outline-color:var(--gold)}
.ctc-bi{width:17px;height:17px;flex:none}
.ctc-band{background:var(--deep);color:#fff;position:relative;overflow:clip;isolation:isolate}
.ctc-map{position:relative;margin:8px auto 0;max-width:560px}
.ctc-map img{display:block;width:100%;height:auto}
.ctc-osm{position:absolute;left:16px;top:6px;font-family:var(--label);
  font-size:13px;letter-spacing:.03em;color:rgba(255,255,255,.55)}
.ctc-band .wrap{display:grid;gap:24px;padding-top:30px;padding-bottom:0}
.ctc-band .lbl{color:var(--gold);margin:0}
.ctc-band h1{margin-top:12px;font-size:clamp(44px,12.4vw,76px);line-height:.92;letter-spacing:-.035em;
  font-weight:800;font-variation-settings:"wdth" 86,"opsz" 72}
.ctc-lede{margin:14px 0 0;font-size:18px;line-height:1.5;color:rgba(255,255,255,.84);max-width:34ch}
.ctc-six{margin-top:20px;display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;
  font-size:17px;font-weight:650;min-height:44px}
.ctc-six__t{border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:1px}
.ctc-six__a{color:var(--gold);transition:transform var(--t-comp) var(--ease)}
@media(hover:hover){
.ctc-six:hover .ctc-six__a{transform:translateY(3px)}
.ctc-six:hover .ctc-six__t{border-color:#fff}
}
.ctc-six:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:999px}
.ctc-call{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:18px 16px 18px 20px;border-radius:20px;color:#fff;text-decoration:none;position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 24px 48px -28px rgba(0,0,0,.7);
  transition:background var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease),
             transform var(--t-comp) var(--ease)}
.ctc-call__t{display:flex;flex-direction:column;min-width:0}
.ctc-call__l{color:var(--soft)}
.ctc-call__n{margin-top:10px;font-family:var(--display);font-weight:800;line-height:1;white-space:nowrap;
  font-size:clamp(33px,9.7vw,56px);letter-spacing:-.03em;font-variation-settings:"wdth" 86,"opsz" 72;
  font-variant-numeric:tabular-nums lining-nums}
.ctc-call__v{margin-top:11px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.ctc-call__v .lbl{color:var(--gold);letter-spacing:.18em}
.ctc-call__h{font-size:16px;color:rgba(255,255,255,.72)}
.ctc-call__h[data-state]{color:#fff}
.ctc-call__h[data-state="on"]{font-weight:600}
.ctc-call__i{flex:none;width:56px;height:56px;border-radius:50%;background:var(--gold);color:#241046;
  display:grid;place-items:center;position:relative;transition:transform var(--t-comp) var(--ease),
  background var(--t-micro) var(--ease)}
.ctc-call__i svg{width:24px;height:24px}
.ctc-call__i::before{content:"";position:absolute;inset:0;border-radius:50%;
  border:1.5px solid var(--gold);opacity:0;animation:ctc-ring 1.5s cubic-bezier(.2,.6,.3,1) .75s 2 both}
.ctc-call__i::after{content:"";position:absolute;inset:0;border-radius:50%;
  border:1.5px solid var(--gold);opacity:0;animation:ctc-ring 1.5s cubic-bezier(.2,.6,.3,1) .75s 2 both}
.ctc-call__i::after{animation-delay:1.05s}
@keyframes ctc-ring{0%{transform:scale(1);opacity:.75}100%{transform:scale(1.85);opacity:0}}
@media(hover:hover){
.ctc-call:hover{background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.05));
    border-color:rgba(216,179,106,.55)}
.ctc-call:hover .ctc-call__i{transform:scale(1.06);background:#C9A052}
}
.ctc-call:active{transform:scale(.99)}
.ctc-call:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ctc-facts{position:relative;z-index:2;margin-top:-44px}
.ctc-facts__p{background:var(--surface);border:1px solid var(--border);border-radius:18px;
  box-shadow:0 22px 44px -30px rgba(36,16,70,.55);display:grid;overflow:hidden}
.ctc-fact{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:4px 13px;
  padding:14px 16px;border-top:1px solid var(--hair);color:var(--ink);text-decoration:none}
.ctc-fact:first-child{border-top:0}
.ctc-ico{width:40px;height:40px;border-radius:11px;background:var(--chip);color:var(--brand);
  display:grid;place-items:center;flex:none}
.ctc-ico svg{width:20px;height:20px}
.ctc-fact__t{min-width:0;display:flex;flex-direction:column;gap:3px}
.ctc-fact__t .lbl{color:var(--muted);font-size:13px}
.ctc-fact__v{font-weight:650;font-size:18px;line-height:1.3;color:var(--ink)}
.ctc-fact__go{font-size:17px;font-weight:700;color:var(--link);white-space:nowrap;display:inline-flex;gap:5px}
.ctc-fact__go b{display:inline-block;transition:transform var(--t-comp) var(--ease)}
.ctc-fact--a{transition:background var(--t-micro) var(--ease)}
@media(hover:hover){
.ctc-fact--a:hover{background:#FAF9FD}
.ctc-fact--a:hover .ctc-fact__go b{transform:translateX(3px)}
}
.ctc-fact--a:focus-visible{outline:2px solid var(--brand);outline-offset:-3px;border-radius:14px}
.ctc-status{grid-column:2 / -1;justify-self:start;margin:4px 0 0;display:inline-flex;align-items:center;gap:7px;
  font-size:16px;font-weight:700;line-height:1;padding:6px 10px 6px 9px;border-radius:999px}
.ctc-status[hidden]{display:none}
.ctc-status i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.ctc-status[data-state="open"]{color:var(--open);background:#E8F4EF}
.ctc-status[data-state="closed"]{color:var(--closed);background:#F9ECE8}
.ctc-sec{padding:44px 0 4px}
.ctc-last{padding-bottom:56px}
.ctc-sec h2{font-size:clamp(27px,6.4vw,40px);line-height:1.02;letter-spacing:-.035em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.ctc-cc h2{font-size:clamp(27px,6.4vw,40px);line-height:1.02;letter-spacing:-.035em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.ctc-sub{margin:8px 0 0;color:var(--muted);font-size:17px;line-height:1.5;max-width:52ch}
.ctc-sec__h{display:flex;align-items:flex-end;justify-content:space-between;gap:14px 18px;flex-wrap:wrap}
.ctc-near{flex:none;font:inherit;font-size:17px;font-weight:650;min-height:44px;padding:0 16px;
  border-radius:999px;border:1px solid var(--edge);background:var(--surface);color:var(--brand);
  cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
.ctc-near[hidden]{display:none}
.ctc-near svg{width:17px;height:17px}
@media(hover:hover){
.ctc-near:hover{background:var(--chip)}
}
.ctc-near[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.ctc-near[disabled]{opacity:.6;cursor:progress}
.ctc-hint{margin:10px 0 0;font-size:16px;color:var(--muted);min-height:1.3em}
.ctc-hint:empty{margin:0;min-height:0}
.ctc-shops{scroll-margin-top:84px}
.ctc-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
.ctc-shop{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;
  display:grid;grid-template-columns:116px minmax(0,1fr);grid-template-areas:"media body" "act act";
  gap:14px 14px;transition:transform 480ms var(--ease),opacity 480ms var(--ease),
  box-shadow var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease)}
.ctc-shop.ctc-pre{opacity:0;transform:translateY(16px)}
.ctc-shop.is-mine{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.ctc-shop__m{grid-area:media;position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;
  background:#241046;isolation:isolate}
.ctc-shop__m::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(18,7,38,.10)}
.ctc-shop__ph{position:absolute;inset:0;display:block}
.ctc-shop__ph img{width:100%;height:100%;object-fit:cover;transition:transform 700ms var(--ease)}
.ctc-shop__map{display:none}
.ctc-shop__tag{position:absolute;z-index:2;left:6px;font-family:var(--label);font-size:12.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:rgba(18,7,38,.78);
  padding:4px 6px;border-radius:6px;line-height:1.2;white-space:nowrap}
.ctc-shop__tag[hidden]{display:none}
.ctc-shop__tag--mine{top:6px}
.ctc-shop__tag--dist{bottom:6px}
.ctc-shop__b{grid-area:body;min-width:0;align-self:center}
.ctc-shop h3{font-family:var(--display);font-size:21px;font-weight:800;line-height:1.08;
  letter-spacing:-.025em;font-variation-settings:"wdth" 90}
.ctc-shop h3 a{color:var(--ink);text-decoration:none;display:inline-block;padding:10px 0;margin:-10px 0}
.ctc-shop h3 .ctc-dot{color:var(--gold-struct);font-weight:700}
.ctc-nw{white-space:nowrap}
.ctc-shop__go{display:inline-block;margin-left:6px;color:var(--brand);font-family:var(--sans);font-weight:700;
  transition:transform var(--t-comp) var(--ease)}
.ctc-shop h3 a:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}
.ctc-shop__addr{margin:7px 0 0;font-size:17px;line-height:1.45;color:var(--ink-2)}
.ctc-shop__lic{margin:8px 0 0;color:var(--muted);font-size:13px;letter-spacing:.12em}
.ctc-shop__act{grid-area:act;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ctc-shop__act .btn{width:100%;padding-left:12px;padding-right:12px;min-height:44px}
.ctc-shop__act .btn--brand svg{width:15px;height:15px}
@media(hover:hover){
.ctc-shop:hover{border-color:#D3CDE3;box-shadow:0 14px 30px -20px rgba(36,16,70,.40)}
.ctc-shop.is-mine:hover{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),0 14px 30px -20px rgba(36,16,70,.40)}
.ctc-shop:hover .ctc-shop__ph img{transform:scale(1.05)}
.ctc-shop h3 a:hover .ctc-shop__go{transform:translateX(4px)}
}
.ctc-note{margin:16px 0 0;font-size:15px;line-height:1.6;color:var(--muted);max-width:70ch}
.ctc-note a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.ctc-cc{margin-top:48px;background:var(--deep);color:#fff;padding:46px 0 50px;position:relative;
  overflow:clip;isolation:isolate}
.ctc-cc::before{content:"";position:absolute;z-index:-1;width:520px;height:520px;left:-240px;top:-260px;
  background:radial-gradient(closest-side,rgba(216,179,106,.13),rgba(216,179,106,0) 72%);pointer-events:none}
.ctc-cc .lbl{color:var(--gold);margin:0 0 12px}
.ctc-cc h2{max-width:16ch}
.ctc-cc__sub{margin:12px 0 0;color:rgba(255,255,255,.72);font-size:17.5px;line-height:1.55;max-width:52ch}
.ctc-cc__list{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:8px}
.ctc-cc__list li{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:14px;
  background:var(--deep-panel);border:1px solid var(--deep-hair);font-size:17.5px;line-height:1.35;
  color:rgba(255,255,255,.92)}
.ctc-cc__ck{width:18px;height:18px;flex:none;color:var(--gold)}
.ctc-cc__act{margin-top:22px;display:flex}
.ctc-cc__act .btn{flex:1 1 auto}
.ctc-faqw{display:grid;gap:14px}
.ctc-faqmore{margin-top:2px;display:inline-flex;padding:10px 0;margin-bottom:-10px}
:where(body.kolas-wired) .ctc .faq{margin-top:4px}
.ctc-rows{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.ctc-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;
  padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);
  color:var(--ink);text-decoration:none;transition:border-color var(--t-comp) var(--ease),
  box-shadow var(--t-comp) var(--ease)}
.ctc-row__t{display:flex;flex-direction:column;gap:3px;min-width:0}
.ctc-row__t b{font-size:18.5px;font-weight:700;letter-spacing:-.01em}
.ctc-row__t span{font-size:17px;line-height:1.45;color:var(--ink-2)}
.ctc-row__go{color:var(--brand);font-weight:700;font-size:20px;transition:transform var(--t-comp) var(--ease)}
@media(hover:hover){
.ctc-row:hover{border-color:#D3CDE3;box-shadow:0 12px 26px -20px rgba(36,16,70,.4)}
.ctc-row:hover .ctc-row__go{transform:translateX(4px)}
}
:where(body.kolas-wired) .bar .ctc-barbtn{background:transparent;font:inherit;font-weight:700;font-size:17.5px}
@media (prefers-reduced-motion:reduce){
.ctc-call__i::before{display:none}
.ctc-call__i::after{display:none}
.ctc-shop.ctc-pre{opacity:1;transform:none}
.ctc-shop__ph img{transition:none}
.ctc-shop__map img{transition:none}
}
@media(min-width:640px){
.ctc-shop{grid-template-columns:136px minmax(0,1fr)}
.ctc-cc__list{grid-template-columns:1fr 1fr}
.ctc-rows{grid-template-columns:1fr 1fr}
.ctc-cc__act .btn{flex:0 0 auto}
}
@media(min-width:760px){
.ctc-list{grid-template-columns:1fr 1fr;gap:16px}
.ctc-shop{grid-template-columns:minmax(0,1fr);grid-template-areas:"media" "body" "act";padding:10px 10px 12px;gap:14px}
.ctc-shop__m{aspect-ratio:3/2}
.ctc-shop__map{display:block;position:absolute;z-index:1;right:10px;bottom:10px;width:60px;height:60px;
    border-radius:50%;overflow:hidden;background:#241046;border:2px solid #fff;
    box-shadow:0 8px 18px -8px rgba(18,7,38,.7);transition:transform var(--t-comp) var(--ease)}
.ctc-shop__map img{width:100%;height:100%;object-fit:cover;transform:scale(2.3);filter:brightness(1.4)}
.ctc-shop__b{padding:0 6px}
.ctc-shop__act{padding:0 2px}
.ctc-shop__tag{left:10px;font-size:13px}
.ctc-shop__tag--mine{top:10px}
.ctc-shop__tag--dist{bottom:10px}
}
@media(min-width:760px){
@media(hover:hover){
.ctc-shop__map:hover{transform:scale(1.08)}
}
}
@media(min-width:960px){
.ctc-band .wrap{grid-template-columns:minmax(0,1fr) minmax(0,470px);align-items:end;gap:48px;
    padding-top:64px;padding-bottom:16px}
.ctc-map{margin:8px max(40px,calc(50% - 520px)) 0 auto}
.ctc-lede{font-size:19px}
.ctc-call{padding:24px 22px 24px 26px}
.ctc-facts{margin-top:-52px}
.ctc-facts__p{grid-template-columns:1.15fr 1fr 1.1fr}
.ctc-fact{border-top:0;border-left:1px solid var(--hair);padding:20px 22px;align-content:center}
.ctc-fact:first-child{border-left:0}
.ctc-sec{padding-top:64px}
.ctc-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ctc-cc{margin-top:72px;padding:72px 0}
.ctc-cc .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px 56px;align-items:start}
.ctc-cc__head{grid-row:1 / span 2}
.ctc-cc__list{margin-top:0}
.ctc-cc__act{margin-top:0}
.ctc-faqw{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.ctc-last{padding-bottom:88px}
}
@media(min-width:1240px){
.ctc-band{min-height:640px}
.ctc-band .wrap{grid-template-columns:minmax(0,540px);align-items:start;gap:28px;padding-top:72px;padding-bottom:112px}
.ctc-map{position:absolute;z-index:-1;top:0;bottom:0;right:max(-100px,calc(50% - 760px));margin:0;max-width:none}
.ctc-map picture{display:block;height:100%;width:auto}
.ctc-map img{display:block;height:100%;width:auto}
.ctc-osm{left:auto;top:auto;right:min(240px,calc(50vw - 420px));bottom:60px}
}
.jb .wrap{max-width:1120px}
.jb .pg-crumb :focus-visible{outline-color:var(--gold)}
.jb-hero :focus-visible{outline-color:var(--gold)}
.jb-mis :focus-visible{outline-color:var(--gold)}
.jb-apply :focus-visible{outline-color:var(--gold)}
.jb-eye{color:var(--brand);margin:0 0 10px}
.jb-sec{padding:48px 0 4px}
.jb-sec h2{font-size:clamp(27px,6.6vw,40px);letter-spacing:-.03em;font-weight:800;line-height:1.02;
  font-variation-settings:"wdth" 88;text-wrap:balance;max-width:20ch}
.jb-sub{margin:10px 0 0;color:var(--muted);font-size:18px;line-height:1.55;max-width:56ch}
.jb-sub b{color:var(--ink);font-weight:650}
.jb a.jb-in{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.jb a.jb-in:hover{text-decoration-thickness:2px}
.jb-nw{white-space:nowrap}
.jb-hero{background:var(--deep);color:#fff;position:relative;overflow:clip;isolation:isolate}
.jb-hero::before{content:"";position:absolute;right:-35%;top:-10%;width:120%;aspect-ratio:1;z-index:-1;
  background:radial-gradient(closest-side,rgba(91,47,168,.42),rgba(91,47,168,0));pointer-events:none}
.jb-hero__wrap{max-width:1120px;margin:0 auto}
.jb-hero__art{padding:18px var(--gutter) 0}
.jb-ph{margin:0;position:relative;border-radius:16px;overflow:hidden;background:#120726;
  box-shadow:0 0 0 1px rgba(255,255,255,.10),0 24px 48px -28px rgba(0,0,0,.75)}
.jb-ph img{display:block;width:100%;height:100%;object-fit:cover}
.jb-ph{aspect-ratio:3/2;max-width:390px}
.jb-ph figcaption{position:absolute;left:10px;bottom:10px;padding:6px 10px 5px;border-radius:999px;
  background:rgba(18,7,38,.74);color:#fff;font-size:13px;letter-spacing:.12em;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.jb-hero__in{padding:26px var(--gutter) 42px}
.jb-hero__eye{color:var(--gold);margin:0 0 12px}
.jb-hero h1{font-size:clamp(38px,10vw,66px);line-height:.96;letter-spacing:-.035em;font-weight:800;
  font-variation-settings:"wdth" 88,"opsz" 72;max-width:11ch;text-wrap:balance}
.jb-hero h1 span{color:var(--soft)}
.jb-hero__lede{margin:16px 0 0;font-size:18px;line-height:1.6;color:rgba(255,255,255,.86);max-width:38ch}
.jb-hero__act{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.jb-hero__act .btn{flex:1 1 auto}
.jb-req{list-style:none;margin:20px 0 0;padding:0;background:var(--surface);border:1px solid var(--border);
  border-radius:16px;overflow:hidden}
.jb-req__i{padding:22px 20px;border-top:1px solid var(--hair)}
.jb-req__i:first-child{border-top:0}
.jb-req__fig{font-family:var(--display);font-weight:800;font-variation-settings:"wdth" 86;font-size:38px;
  line-height:1;letter-spacing:-.035em;color:var(--brand);font-variant-numeric:tabular-nums}
.jb-req__k{margin:10px 0 0;color:var(--muted)}
.jb-req__t{margin:8px 0 0;color:var(--ink-2);font-size:18px;line-height:1.6}
.jb-shops{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.jb-shops li{min-width:0}
.jb-shop{display:flex;flex-direction:column;height:100%;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;overflow:hidden;color:inherit;text-decoration:none;
  transition:transform var(--t-comp) var(--ease),box-shadow var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease)}
.jb-shop__img{display:block;aspect-ratio:4/3;background:var(--sunken)}
.jb-shop__img img{display:block;width:100%;height:100%;object-fit:cover}
.jb-shop__b{display:flex;flex-direction:column;gap:3px;padding:11px 12px 13px;flex:1}
.jb-shop h3{font-family:var(--sans);font-size:17.5px;font-weight:700;letter-spacing:-.005em;line-height:1.25}
.jb-shop__ad{font-size:16px;color:var(--muted);line-height:1.4}
.jb-shop__go{margin-top:auto;padding-top:8px;font-size:16px;font-weight:700;color:var(--brand);
  display:inline-flex;align-items:center;gap:5px}
.jb-shop__go b{transition:transform var(--t-comp) var(--ease)}
.jb-shop:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(hover:hover){
.jb-shop:hover{transform:translateY(-3px);border-color:#D3CDE3;box-shadow:0 10px 24px -14px rgba(36,16,70,.35)}
.jb-shop:hover .jb-shop__go b{transform:translateX(3px)}
}
.jb-steps{list-style:none;margin:22px 0 0;padding:0}
.jb-step{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);align-content:start;gap:16px;padding:0 0 24px}
.jb-step:last-child{padding-bottom:0}
.jb-step::before{content:"";position:absolute;left:18px;top:44px;bottom:6px;width:1px;background:var(--border)}
.jb-step:last-child::before{display:none}
.jb-step__n{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--brand);
  color:#fff;font-family:var(--label);font-size:16px;font-variant-numeric:tabular-nums}
.jb-step h3{font-family:var(--sans);font-size:20px;font-weight:700;letter-spacing:-.01em;line-height:1.3;padding-top:6px}
.jb-step p{margin:4px 0 0;color:var(--ink-2);font-size:18px;line-height:1.55}
.jb-mis{background:var(--deep);color:#fff;margin-top:56px;padding:50px 0 54px;position:relative;overflow:clip;isolation:isolate}
.jb-mis::before{content:"";position:absolute;left:-30%;bottom:-40%;width:90%;aspect-ratio:1;z-index:-1;
  background:radial-gradient(closest-side,rgba(91,47,168,.35),rgba(91,47,168,0));pointer-events:none}
.jb-mis .lbl{color:var(--gold);margin:0 0 12px}
.jb-mis h2{font-size:clamp(32px,8.4vw,56px);line-height:.98;letter-spacing:-.035em;font-weight:800;
  font-variation-settings:"wdth" 88,"opsz" 72;max-width:15ch;text-wrap:balance}
.jb-mis__p{margin:12px 0 0;color:rgba(255,255,255,.8);font-size:18px;line-height:1.6;max-width:50ch}
.jb-mis__p--lead{margin-top:18px;color:#fff;font-size:20px;font-weight:600;line-height:1.45}
.jb-mis__aw{margin-top:34px;padding-top:26px;border-top:1px solid var(--deep-hair)}
.jb-aw{list-style:none;margin:0;padding:0;display:flex;gap:18px;align-items:stretch;flex-wrap:wrap}
.jb-aw li{flex:1 1 140px;max-width:220px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;
  padding:16px;border-radius:14px;background:var(--deep-panel);border:1px solid var(--deep-hair)}
.jb-aw__img{height:92px;display:flex;align-items:center}
.jb-aw img{height:100%;width:auto}
.jb-aw span{font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--soft);line-height:1.5}
.jb-rev{list-style:none;margin:20px 0 0;padding:0;background:var(--surface);border:1px solid var(--border);
  border-radius:16px;overflow:hidden}
.jb-rev li{padding:22px 20px;border-top:1px solid var(--hair)}
.jb-rev li:first-child{border-top:0}
.jb-rev figure{margin:0}
.jb-rev blockquote{margin:0}
.jb-rev__st{display:block;color:var(--gold-text);font-size:17px;letter-spacing:.12em;margin-bottom:8px}
.jb-rev blockquote p{font-size:19px;line-height:1.5;color:var(--ink);font-weight:500;text-wrap:pretty}
.jb-rev figcaption{margin-top:12px;display:flex;flex-direction:column;gap:3px}
.jb-rev figcaption b{font-size:17px;font-weight:700}
.jb-rev figcaption span{font-family:var(--label);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.jb-rev__lk{display:inline-block;padding:14px 0;margin:-14px 0;color:inherit;text-decoration:underline;
  text-decoration-color:var(--border);text-underline-offset:3px}
.jb-rev__lk i{font-style:normal;margin-left:3px}
.jb-rev__lk:hover{color:var(--brand);text-decoration-color:currentColor}
.jb-rev__src{margin:14px 0 0;font-size:16px;color:var(--muted);line-height:1.55;max-width:70ch}
.jb-sec--last{padding-bottom:64px}
.jb button.btn--ghost{background:transparent}
:where(body.kolas-wired) .bar button.btn--ghost{background:transparent}
.jb button.btn--ghost:hover{background:rgba(255,255,255,.08)}
:where(body.kolas-wired) .bar button.btn--ghost:hover{background:rgba(255,255,255,.08)}
body:where(.kolas-wired):has(.jb) .bar .btn{padding-left:16px;padding-right:16px}
:where(body.kolas-wired) .bar .btn--gold{flex:1.35}
.jb-apply{background:var(--deep);color:#fff;border-radius:20px;padding:30px 22px 26px;position:relative;
  overflow:hidden;isolation:isolate}
.jb-apply::before{content:"";position:absolute;right:-40%;top:-60%;width:110%;aspect-ratio:1;z-index:-1;
  background:radial-gradient(closest-side,rgba(91,47,168,.5),rgba(91,47,168,0));pointer-events:none}
.jb-apply .lbl{color:var(--gold);margin:0 0 10px}
.jb-apply h2{color:#fff;font-size:clamp(27px,7vw,42px);max-width:none;overflow-wrap:anywhere}
.jb-apply h2 span{color:var(--soft)}
.jb-apply__p{margin:12px 0 0;color:rgba(255,255,255,.8);font-size:18px;line-height:1.6;max-width:46ch}
.jb-apply__act{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px}
.jb-apply__act .btn{flex:1 1 auto}
.jb-apply__st{flex-basis:100%;margin:2px 0 0;min-height:1.5em;font-size:17px;color:var(--soft)}
@media(min-width:720px){
.jb-shops{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.jb-apply{padding:40px 40px 34px}
}
@media(min-width:960px){
.jb-hero__wrap{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:40px;align-items:center;
    max-width:1120px;padding:0 var(--gutter)}
.jb-hero h1{font-size:clamp(58px,6.5vw,84px);max-width:12ch}
.jb-hero__lede{font-size:19px;max-width:44ch}
.jb-hero__art{order:2;position:relative;padding:0 0 28px 50px;margin:56px 0}
.jb-hero__art::before{content:"";position:absolute;left:0;right:30px;top:28px;bottom:0;border-radius:20px;
    background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.015));border:1px solid var(--deep-hair)}
.jb-ph{width:390px;aspect-ratio:4/3}
.jb-hero__in{order:1;padding:64px 0 72px}
.jb-hero__act .btn{flex:0 0 auto}
.jb-sec{padding:72px 0 4px}
.jb-req{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.jb-req__i{border-top:0;border-left:1px solid var(--hair);padding:28px 26px}
.jb-req__i:first-child{border-left:0}
.jb-req__fig{font-size:46px}
.jb-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.jb-step{grid-template-columns:1fr;gap:14px;padding:0}
.jb-step::before{left:52px;right:-14px;top:18px;bottom:auto;width:auto;height:1px}
.jb-mis{margin-top:80px;padding:76px 0 80px}
.jb-mis__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:64px;align-items:start}
.jb-mis__bd{padding-top:30px}
.jb-mis__p{font-size:19px}
.jb-mis__p--lead{margin-top:0;font-size:21px}
.jb-aw{justify-content:flex-start}
.jb-rev{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.jb-rev li{border-top:0;border-left:1px solid var(--hair);padding:28px 26px}
.jb-rev li:first-child{border-left:0}
.jb-apply{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:center;padding:52px 56px}
.jb-apply__act{margin-top:0}
.jb-sec--last{padding-bottom:72px}
}
@media(prefers-reduced-motion:reduce){
.jb-shop{transition:none}
.jb-shop__go b{transition:none}
.jb-shop:hover{transform:none}
}
.kp-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
:where(body.kolas-wired) .kp .wrap{max-width:1120px}
.kp-dark :focus-visible{outline-color:var(--gold)}
:where(body.kolas-wired) .kp a{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
:where(body.kolas-wired) .kp button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
:where(body.kolas-wired) .kp summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.kp-nw{white-space:nowrap}
:where(body.kolas-wired) .kp .more{padding:9px 0;margin:-9px 0}
.kp-hero{background:var(--deep);color:#fff;position:relative;overflow:clip;isolation:isolate}
.kp-hero__in{padding-top:30px;padding-bottom:36px}
.kp-eye{color:var(--gold);margin:0 0 14px}
.kp-h1{margin:0}
.kp-h1__n{display:block;font-size:clamp(50px,14vw,104px);line-height:.92;letter-spacing:-.022em;
  font-weight:800;font-variation-settings:"wdth" 94,"opsz" 96;white-space:nowrap}
.kp-h1__n em{font-style:normal;color:var(--soft)}
.kp-h1__l{display:block;margin-top:14px;font-size:clamp(23px,6.2vw,36px);line-height:1.08;
  letter-spacing:-.025em;font-weight:700;font-variation-settings:"wdth" 92;max-width:17ch;
  text-wrap:balance;color:#fff}
.kp-h1__l::first-letter{text-transform:uppercase}
.kp-lede{margin:16px 0 0;font-size:18px;line-height:1.55;color:rgba(255,255,255,.8);max-width:40ch}
.kp-act{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.kp-act .btn{flex:1 1 auto}
.kp-small{margin:14px 0 0;font-size:16px;color:rgba(255,255,255,.6)}
.kp-sec{padding:44px 0 8px}
.kp-head h2{font-size:clamp(25px,5.6vw,38px);letter-spacing:-.03em;font-weight:800;line-height:1.02;
  font-variation-settings:"wdth" 88;text-wrap:balance;max-width:20ch}
.kp-sub{margin:9px 0 0;color:var(--muted);font-size:17.5px;line-height:1.5;max-width:52ch}
.kp-steps{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:0}
.kp-step{position:relative;display:grid;grid-template-columns:40px 1fr;gap:14px;padding:0 0 24px;align-content:start}
.kp-step:last-child{padding-bottom:0}
.kp-step::before{content:"";position:absolute;left:19px;top:44px;bottom:6px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,var(--brand),rgba(64,28,123,.12))}
.kp-step:last-child::before{display:none}
.kp-step__n{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface);
  border:1.5px solid var(--brand);color:var(--brand);font-family:var(--display);font-weight:800;
  font-size:20px;font-variant-numeric:tabular-nums;font-variation-settings:"wdth" 90}
.kp-step:first-child .kp-step__n{background:var(--brand);color:#fff}
.kp-step h3{font-family:var(--sans);font-size:19.5px;font-weight:700;letter-spacing:-.01em;line-height:1.25;
  padding-top:8px}
.kp-step p{margin:5px 0 0;color:var(--ink-2);font-size:17.5px;line-height:1.55;max-width:34ch}
.kp-step .more{margin-top:-1px}
.kp-duo{display:grid;gap:14px;margin-top:22px}
.kp-plan{position:relative;isolation:isolate;background:var(--surface);border:1px solid var(--border);
  border-radius:20px;padding:20px 20px 18px;
  box-shadow:0 1px 0 rgba(36,16,70,.03),0 24px 48px -30px rgba(36,16,70,.4)}
@property --kp-a{syntax:"<angle>";inherits:false;initial-value:0deg}
.kp-plan::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;z-index:-1;
  background:conic-gradient(from var(--kp-a),transparent 0 72%,rgba(91,47,168,.0) 76%,#7B53C4 86%,
    var(--brand) 92%,transparent 97%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;pointer-events:none}
.kp-plan.in::before{animation:kpBeam 2600ms cubic-bezier(.45,0,.2,1) 300ms 1 both}
@keyframes kpBeam{0%{--kp-a:0deg;opacity:0}12%{opacity:1}80%{opacity:1}100%{--kp-a:360deg;opacity:0}}
.kp-plan__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.kp-plan__top .lbl{color:var(--muted)}
.kp-chip{font-size:14.5px;font-weight:650;color:var(--brand);background:var(--chip);border-radius:999px;
  padding:5px 10px;white-space:nowrap}
.kp-plan__p{margin:16px 0 0;display:flex;align-items:baseline;gap:9px}
.kp-plan__n{font-family:var(--display);font-weight:800;font-size:64px;line-height:.9;letter-spacing:-.045em;
  font-variation-settings:"wdth" 88;font-variant-numeric:tabular-nums;color:var(--ink)}
.kp-plan__per{font-size:19px;font-weight:600;color:var(--ink-2)}
.kp-plan__bill{margin:8px 0 0;font-size:17px;color:var(--muted)}
.kp-plan__l{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--hair);display:grid;gap:11px}
.kp-plan__l li{display:flex;align-items:center;gap:11px;font-size:18px;font-weight:550;color:var(--ink)}
.kp-plan__l svg{flex:none;color:var(--brand)}
.kp-plan__cta{margin-top:20px;width:100%;min-height:50px;font-size:18px}
.kp-plan__note{margin:10px 0 0;font-size:15px;color:var(--muted);text-align:center}
.kp-rules{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:20px 20px 18px}
.kp-rules__h{font-size:24px;font-weight:800;letter-spacing:-.025em;font-variation-settings:"wdth" 90}
.kp-rules__l{margin:10px 0 0}
.kp-rule{padding:13px 0;border-top:1px solid var(--hair)}
.kp-rule:first-child{border-top:0}
.kp-rule dt{color:var(--brand);font-size:13px}
.kp-rule dd{margin:6px 0 0;font-size:17.5px;line-height:1.5;color:var(--ink-2)}
.kp-rules__c{margin:4px 0 0;padding-top:13px;border-top:1px solid var(--hair);font-size:17px;color:var(--muted)}
.kp-shops{background:var(--deep);color:#fff;margin-top:48px;padding:46px 0 46px}
.kp-shops .kp-sub{color:rgba(255,255,255,.66)}
.kp-shops__g{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.kp-shop{position:relative;display:flex;flex-direction:column;height:100%;border-radius:14px;overflow:hidden;
  background:rgba(255,255,255,.045);border:1px solid var(--deep-hair);color:#fff;text-decoration:none;
  transition:transform var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease),background var(--t-comp) var(--ease)}
.kp-shop__img{display:block;aspect-ratio:4/3;background:#120726;overflow:hidden}
.kp-shop__img img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease)}
.kp-shop__b{display:flex;flex-direction:column;gap:3px;padding:11px 34px 13px 12px}
.kp-shop__b b{font-size:17px;font-weight:700;line-height:1.25;letter-spacing:-.005em}
.kp-shop__b span{font-size:15px;line-height:1.35;color:rgba(255,255,255,.62)}
.kp-shop__go{position:absolute;right:10px;bottom:12px;color:var(--gold);display:grid;transition:transform var(--t-comp) var(--ease)}
.kp-shop:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(hover:hover){
.kp-shop:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.07)}
.kp-shop:hover .kp-shop__img img{transform:scale(1.04)}
.kp-shop:hover .kp-shop__go{transform:translateX(3px)}
}
.kp-shops__more{margin:20px 0 0}
.kp-shops .more{color:var(--gold)}
.kp-faq{padding-bottom:52px}
.kp-faq .faq{margin-top:18px}
.kp-faq__go{margin-top:10px!important}
.kp-close{padding:4px 0 0}
.kp-close__in{position:relative;overflow:clip;isolation:isolate;background:var(--deep);color:#fff;
  border-radius:24px;padding:40px 22px 34px;text-align:center;display:flex;flex-direction:column;align-items:center}
.kp-close__in::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse 80% 90% at 50% 0%,rgba(123,83,196,.42),rgba(123,83,196,0) 70%)}
.kp-close h2{font-size:clamp(26px,6vw,42px);letter-spacing:-.03em;font-weight:800;line-height:1.02;
  font-variation-settings:"wdth" 88;max-width:18ch;text-wrap:balance}
.kp-close p{margin:12px 0 0;color:rgba(255,255,255,.78);font-size:18px;max-width:40ch}
.kp-close .kp-act{justify-content:center;width:100%;max-width:440px}
.kp-close__note{font-size:14.5px!important;color:rgba(255,255,255,.55)!important;margin-top:18px!important}
body:where(.kolas-wired):has(.kp) .bar .btn{flex:1 1 auto;padding-left:16px;padding-right:16px;white-space:nowrap}
body:where(.kolas-wired):has(.kp) .bar button.btn--ghost{background:transparent;font-family:var(--sans)}
.kp-art{margin:26px calc(var(--gutter) * -1) 0;position:relative;mix-blend-mode:lighten}
.kp-art img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%),
                     linear-gradient(180deg,transparent 0,#000 9%,#000 88%,transparent 100%);
  -webkit-mask-composite:source-in;
          mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%),
                     linear-gradient(180deg,transparent 0,#000 9%,#000 88%,transparent 100%);
          mask-composite:intersect}
@media(min-width:720px){
.kp-shops__g{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.kp-act .btn{flex:0 0 auto}
}
@media(min-width:960px){
.kp-hero__in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center;
    padding-top:72px;padding-bottom:80px}
.kp-hero__t{container-type:inline-size}
.kp-h1__n{font-size:clamp(64px,8.4vw,104px);font-size:min(104px,21cqi);white-space:normal}
.kp-art{margin:0 calc(var(--gutter) * -1) 0 -24px}
.kp-sec{padding:80px 0 8px}
.kp-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:32px}
.kp-step{grid-template-columns:1fr;gap:16px;padding:0}
.kp-step::before{left:52px;right:-18px;top:19px;bottom:auto;width:auto;height:2px;
    background:linear-gradient(90deg,var(--brand),rgba(64,28,123,.12))}
.kp-step:last-child::before{display:none}
.kp-step h3{padding-top:0}
.kp-duo{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;align-items:start;margin-top:32px}
.kp-plan{padding:28px 28px 24px}
.kp-rules{padding:28px 28px 22px}
.kp-plan__n{font-size:80px}
.kp-shops{margin-top:80px;padding:80px 0}
.kp-shops__g{gap:18px;margin-top:32px}
.kp-shop__b{padding:14px 40px 16px 16px}
.kp-shop__b b{font-size:18px}
.kp-shop__b span{font-size:16px}
.kp-faq__in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:48px;align-items:start}
.kp-faq .faq{margin-top:0}
.kp-faq{padding-bottom:88px}
.kp-close__in{padding:72px 40px 60px}
}
@media(prefers-reduced-motion:reduce){
.kp-plan.in::before{animation:none}
.kp-shop{transition:none}
.kp-shop__img img{transition:none}
.kp-shop__go{transition:none}
.kp-shop:hover{transform:none}
.kp-shop:hover .kp-shop__img img{transform:none}
}
.dl-nw{white-space:nowrap}
.dl-band .wrap{padding-top:22px;padding-bottom:22px}
.dl-band__in{display:grid;gap:12px}
.dl-band h1{max-width:none}
.dl-band .pg-lede{margin-top:0;font-size:18px}
.dl-band__txt{display:grid;gap:12px}
.dl-band__art{display:none}
@media(min-width:960px){
.dl-band .wrap{padding-top:64px;padding-bottom:64px}
.dl-band__in{min-height:clamp(420px,30vw,500px);align-content:center}
.dl-band__txt{gap:18px;max-width:min(520px,44vw)}
.dl-band .pg-lede{font-size:19px}
.dl-band__art{display:block;position:absolute;z-index:-1;top:0;bottom:0;right:0;margin:0;
    width:clamp(480px,46vw,720px)}
.dl-band__art img{display:block;width:100%;height:100%;object-fit:cover;object-position:80% 45%}
.dl-band__art::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(90deg,var(--deep) 0%,rgba(36,16,70,.72) 12%,rgba(36,16,70,0) 34%)}
}
.dl-week{padding:16px 0 8px}
.dl-lay{display:grid;grid-template-columns:minmax(0,1fr);
  grid-template-areas:"side" "board" "shop" "ever";row-gap:16px}
.dl-side{grid-area:side;min-width:0;scroll-margin-top:92px}
.dl-board{grid-area:board;min-width:0}
.dl-ever{grid-area:ever}
.dl-shop{grid-area:shop;min-width:0}
.dl-days{display:flex;gap:3px;padding:4px;background:var(--sunken);border-radius:14px;
  overflow-x:auto;scrollbar-width:none}
.dl-days::-webkit-scrollbar{display:none}
.dl-days[data-dl-edge="start"]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);
  mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent)}
.dl-days[data-dl-edge="mid"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent)}
.dl-days[data-dl-edge="end"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 30px);
  mask-image:linear-gradient(90deg,transparent,#000 30px)}
.dl-day{flex:1 0 42px;position:relative;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:1px;min-height:50px;padding:6px 0 5px;border-radius:10px;
  color:var(--ink-2);text-decoration:none;
  transition:background var(--t-micro) var(--ease),box-shadow var(--t-micro) var(--ease),
    color var(--t-micro) var(--ease)}
.dl-day__s{font-size:16px;font-weight:700;letter-spacing:-.005em;line-height:1.2}
.dl-day__l{display:none}
.dl-day__n{line-height:1.2}
.dl-day__n b{font-size:14px;font-weight:600;color:var(--muted)}
.dl-day__u{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.dl-day__today{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.dl-day.is-today::after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;
  border-radius:50%;background:var(--brand)}
.dl-day.is-on{background:var(--surface);color:var(--brand);
  box-shadow:0 1px 2px rgba(36,16,70,.10),0 0 0 1px var(--border)}
.dl-day.is-on .dl-day__n b{color:var(--ink)}
@media(hover:hover){
.dl-day:not(.is-on):hover{background:rgba(255,255,255,.6);color:var(--ink)}
}
.dl-day:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.dl-shop{margin-top:6px;font-size:16px;color:var(--muted)}
.dl-shop__txt b{color:var(--ink);font-weight:650}
.dl-shop__txt[hidden]{display:none}
.dl-shop__js[hidden]{display:none}
.dl-shop__js{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap}
.dl-shop__sel{position:relative}
.dl-shop__sel select{appearance:none;-webkit-appearance:none;font:inherit;font-size:16px;
  font-weight:700;color:var(--brand);background:var(--surface);border:1px solid var(--edge);
  border-radius:999px;min-height:40px;padding:0 34px 0 14px;cursor:pointer;max-width:100%}
.dl-shop__sel::after{content:"";position:absolute;right:15px;top:50%;width:7px;height:7px;
  margin-top:-5px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);
  transform:rotate(45deg);pointer-events:none}
.dl-shop__sel select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(hover:hover){
.dl-shop__sel select:hover{background:var(--sunken)}
}
.dl-panel{scroll-margin-top:96px}
.dl-panel + .dl-panel{margin-top:40px}
.dl--js .dl-panel{margin-top:0}
.dl-panel[hidden]{display:none}
.dl-panel:focus{outline:none}
.dl-panel__h{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:12px}
.dl-panel__h h2{font-size:clamp(24px,5.4vw,30px);font-weight:800;letter-spacing:-.03em;
  font-variation-settings:"wdth" 88;line-height:1.05}
.dl-panel__n{margin-left:auto;font-size:16px;color:var(--muted)}
.dl-panel__n b{color:var(--ink);font-weight:650}
.dl-grid{list-style:none;margin:0;padding:0;display:grid;gap:10px;
  grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:720px){
.dl-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
}
.dl-c{min-width:0}
.dl-c__a{display:flex;flex-direction:column;height:100%;background:var(--surface);
  border:1px solid var(--border);border-radius:16px;overflow:hidden;color:inherit;text-decoration:none;
  transition:transform var(--t-comp) var(--ease),box-shadow var(--t-comp) var(--ease),
    border-color var(--t-comp) var(--ease)}
.dl-c__img{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;
  background:radial-gradient(90% 55% at 50% 100%,#E9E4F4 0%,rgba(233,228,244,0) 100%),#F6F5FA}
.dl-c__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  padding:11% 11% 9%;transition:transform var(--t-comp) var(--ease)}
.dl-c__img--photo img{mix-blend-mode:multiply}
.dl-c__img--mark{background:radial-gradient(75% 75% at 50% 42%,#3B1B6E 0%,var(--deep) 72%)}
.dl-c__img--mark img{padding:27%}
.dl-c__b{display:flex;flex-direction:column;gap:4px;padding:12px 13px 12px;flex:1}
.dl-c__cat{font-size:13px;letter-spacing:.12em;color:var(--muted)}
.dl-c__t{font-weight:700;font-size:17.5px;line-height:1.25;color:var(--ink);letter-spacing:-.01em}
.dl-c__m{font-size:16px;font-weight:650;color:var(--brand);line-height:1.35}
.dl-c__m--big{font-family:var(--display);font-size:24px;font-weight:800;letter-spacing:-.02em;
  line-height:1.05;font-variation-settings:"wdth" 90;margin-top:1px}
.dl-c__t{margin-bottom:6px}
.dl-c__m{margin-bottom:6px}
.dl-c__t:has(+ .dl-c__m){margin-bottom:0}
.dl-c__f{margin-top:auto;padding-top:10px;border-top:1px solid var(--hair);display:flex;
  align-items:baseline;justify-content:space-between;gap:6px}
.dl-c__p{font-size:15px;color:var(--muted);white-space:nowrap}
.dl-c__p b{font-size:20px;font-weight:750;color:var(--ink);letter-spacing:-.01em;margin-left:1px;
  font-variant-numeric:tabular-nums}
.dl-c__go{font-size:16px;font-weight:700;color:var(--brand);display:inline-flex;align-items:center;gap:4px;
  white-space:nowrap}
.dl-c__go b{display:inline-block;transition:transform var(--t-comp) var(--ease)}
.dl-c__a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(max-width:359px){
.dl-c__f{flex-wrap:wrap;row-gap:2px}
}
@media(hover:hover){
.dl-c__a:hover{transform:translateY(-3px);border-color:#D3CDE3;box-shadow:0 12px 26px -16px rgba(36,16,70,.38)}
.dl-c__a:hover .dl-c__img img{transform:translateY(-4px) scale(1.04)}
.dl-c__a:hover .dl-c__go b{transform:translateX(3px)}
}
.dl-panel.is-in .dl-c{animation:dlIn .42s var(--ease) both}
.dl-panel.is-in .dl-c:nth-child(2){animation-delay:45ms}
.dl-panel.is-in .dl-c:nth-child(3){animation-delay:90ms}
.dl-panel.is-in .dl-c:nth-child(4){animation-delay:135ms}
.dl-panel.is-in .dl-c:nth-child(5){animation-delay:180ms}
.dl-panel.is-in .dl-c:nth-child(6){animation-delay:225ms}
.dl-panel.is-in .dl-c:nth-child(n+7){animation-delay:270ms}
@keyframes dlIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
.dl-panel.is-in .dl-c{animation:none}
.dl-c__a{transition:none}
.dl-c__img img{transition:none}
.dl-c__go b{transition:none}
.dl-c__a:hover{transform:none}
.dl-c__a:hover .dl-c__img img{transform:none}
.dl-c__a:hover .dl-c__go b{transform:none}
}
.dl-ever{position:relative;overflow:hidden;isolation:isolate;margin-top:18px;background:var(--deep);
  color:#fff;border-radius:20px;padding:20px 20px 22px;display:grid;
  grid-template-columns:auto minmax(0,1fr);column-gap:18px;align-items:start}
.dl-ever::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(70% 90% at 100% 0%,rgba(185,169,214,.20) 0%,rgba(185,169,214,0) 60%)}
.dl-ever__eye{grid-column:1/-1;color:var(--gold);margin:0 0 10px}
.dl-ever__big{grid-row:2 / span 2;font-family:var(--display);font-weight:800;font-size:68px;line-height:.86;
  letter-spacing:-.055em;font-variation-settings:"wdth" 86,"opsz" 72;margin:0}
.dl-ever__big span{font-size:.5em;letter-spacing:-.02em;margin-left:2px;color:var(--soft)}
.dl-ever__h{grid-column:2;font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:-.01em;
  line-height:1.3}
.dl-ever__p{grid-column:2;font-size:17px;line-height:1.45;color:rgba(255,255,255,.86);margin-top:4px}
.dl-ever__fine{grid-column:1/-1;font-size:15px;line-height:1.55;color:rgba(255,255,255,.7);
  margin-top:14px;padding-top:12px;border-top:1px solid var(--deep-hair)}
.dl-ever__go{grid-column:1/-1;justify-self:start;margin-top:14px}
.dl-ever :focus-visible{outline-color:var(--gold)}
.dl-how h2{margin-bottom:0}
@media(min-width:960px){
.dl-how__p{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.dl-how__p .pg-row{border-top:0;border-left:1px solid var(--hair);padding:20px 22px}
.dl-how__p .pg-row:first-child{border-left:0}
.dl-week{padding:40px 0 8px}
.dl-lay{grid-template-columns:232px minmax(0,1fr);grid-template-areas:"side board" "shop board" "ever board";
    grid-template-rows:auto auto 1fr;column-gap:44px;row-gap:20px;align-items:start}
.dl-days{flex-direction:column;gap:2px;padding:6px;border-radius:16px;overflow:visible}
.dl-day{flex:none;flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;
    min-height:46px;padding:0 12px 0 14px}
.dl-day__s{display:none}
.dl-day__l{display:block;order:1;font-size:17.5px;font-weight:650;letter-spacing:-.01em}
.dl-day__today{order:2;position:static;width:auto;height:auto;overflow:visible;clip:auto;
    font-family:var(--label);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
    color:var(--brand);background:var(--chip);border-radius:999px;padding:3px 7px}
.dl-day__today[hidden]{display:none}
.dl-day__n{order:3;margin-left:auto;font-size:15px;color:var(--muted)}
.dl-day__n b{font-size:15px}
.dl-day__u{position:static;width:auto;height:auto;overflow:visible;clip:auto}
.dl-day.is-today::after{display:none}
.dl-day.is-on::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;
    border-radius:3px;background:var(--brand)}
.dl-shop{margin-top:0;padding:0 4px}
.dl-shop__js{flex-direction:column;align-items:stretch;gap:6px}
.dl-shop__sel select{width:100%}
.dl-ever{margin-top:0;display:block;padding:22px 20px 22px}
.dl-ever__big{font-size:72px;margin:0 0 12px}
.dl-ever__p{margin-top:6px}
.dl-panel__h{margin-bottom:16px}
.dl-grid{gap:16px}
}
.dv{background:var(--ground);color:var(--ink)}
.dv .wrap{max-width:1120px}
.dv a{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.dv button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.dv summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.dv :is(a,button,summary):focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.dvh :is(a,summary):focus-visible{outline-color:#fff}
.dv .more{min-height:44px;align-items:center}
.dvh{background:var(--deep);color:#fff;position:relative;overflow:clip;isolation:isolate}
.dvh .pg-crumb{position:relative;z-index:3}
.dvh__art{margin:0;position:relative}
.dvh__map{position:relative;aspect-ratio:4/3;background:var(--deep);overflow:hidden}
.dvh__map img{display:block;width:100%;height:100%}
.dvh__pts{list-style:none;margin:0;padding:0;position:absolute;inset:0;pointer-events:none}
.dvh__pt{position:absolute;left:var(--x);top:var(--y);width:0;height:0}
.dvh__pt i{position:absolute;left:-2.5px;top:-2.5px;width:5px;height:5px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 1.5px rgba(36,16,70,.85),0 0 8px rgba(216,179,106,.5)}
.dvh__pt--x i::after{content:"";position:absolute;inset:-4.5px;border-radius:50%;border:1.5px solid var(--gold)}
.dvh__pt--hub i{left:-5.5px;top:-5.5px;width:11px;height:11px;background:#fff;
  box-shadow:0 0 0 2.5px var(--gold),0 0 0 4px rgba(36,16,70,.9),0 0 18px 6px rgba(216,179,106,.5)}
.dvh__pt span{position:absolute;top:-7px;font-family:var(--label);font-size:12.5px;line-height:14px;
  letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:rgba(255,255,255,.86);
  text-shadow:0 0 3px var(--deep),0 0 6px var(--deep),0 0 10px var(--deep);display:none}
.dvh__pt--r span{left:9px}
.dvh__pt--l span{right:9px}
.dvh__pt--x span{top:-7px}
.dvh__pt--x.dvh__pt--r span{left:12px}
.dvh__pt--x.dvh__pt--l span{right:12px}
.dvh__pt--up span{top:-18px}
.dvh__pt--dn span{top:4px}
.dvh__pt--labp span{display:block}
@media(prefers-reduced-motion:no-preference){
.dvh__pt i{animation:dvPt 420ms var(--ease) both;animation-delay:var(--d)}
.dvh__pt span{animation:dvPt 420ms var(--ease) both;animation-delay:var(--d)}
.dvh__pt--hub i{animation-name:dvHub;animation-duration:560ms}
}
@keyframes dvPt{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
@keyframes dvHub{from{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.25)}to{opacity:1;transform:none}}
.dvh__cap{padding:10px var(--gutter) 0;font-family:var(--label);font-size:13.5px;letter-spacing:.05em;
  text-transform:uppercase;color:rgba(255,255,255,.84)}
.dvh__key{display:flex;flex-wrap:wrap;gap:6px 14px}
.dvh__key>span{display:inline-flex;align-items:center;gap:7px}
.dvh__key i{position:relative;display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.dvh__key .k-x{margin:0 3px}
.dvh__key .k-x::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--gold)}
.dvh__key .k-hub{width:9px;height:9px;background:#fff;box-shadow:0 0 0 2px var(--gold)}
.dvh__osm{display:block;margin-top:8px;font-family:var(--label);font-size:13px;letter-spacing:.03em;
  text-transform:none;color:rgba(255,255,255,.72)}
.dvh__in{position:relative;z-index:2;padding:20px var(--gutter) 40px;max-width:1120px;margin:0 auto}
.dvh__eye{color:var(--gold);margin:0 0 12px}
.dvh h1{font-size:clamp(34px,8.6vw,64px);line-height:.98;letter-spacing:-.035em;max-width:17ch;
  font-weight:800;font-variation-settings:"wdth" 88,"opsz" 72;text-wrap:balance}
.dvh__lede{margin:16px 0 0;font-size:18px;line-height:1.5;color:rgba(255,255,255,.86);max-width:40ch}
.dvh__lede b{color:#fff;font-weight:650}
.dvh__act{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.dvh__act .btn{flex:1 1 auto}
.dvh .btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.dvs{padding:36px 0 8px;scroll-margin-top:72px}
.dvs h2{font-size:clamp(24px,5.4vw,36px);letter-spacing:-.03em;
  font-weight:800;font-variation-settings:"wdth" 88;text-wrap:balance}
.dvm h2{font-size:clamp(24px,5.4vw,36px);letter-spacing:-.03em;
  font-weight:800;font-variation-settings:"wdth" 88;text-wrap:balance}
.dvw h2{font-size:clamp(24px,5.4vw,36px);letter-spacing:-.03em;
  font-weight:800;font-variation-settings:"wdth" 88;text-wrap:balance}
.dva h2{font-size:clamp(24px,5.4vw,36px);letter-spacing:-.03em;
  font-weight:800;font-variation-settings:"wdth" 88;text-wrap:balance}
.dvq h2{font-size:clamp(24px,5.4vw,36px);letter-spacing:-.03em;
  font-weight:800;font-variation-settings:"wdth" 88;text-wrap:balance}
.dvs__sub{margin:8px 0 0;color:var(--muted);font-size:17px;max-width:60ch}
.dvm__sub{margin:8px 0 0;color:var(--muted);font-size:17px;max-width:60ch}
.dva__sub{margin:8px 0 0;color:var(--muted);font-size:17px;max-width:60ch}
.dvm__sub b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
.dva__sub b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
.dvs__grid{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
  grid-template-rows:repeat(7,auto)}
.dvs__c{display:grid;grid-row:span 7;grid-template-rows:subgrid;row-gap:0;background:var(--surface);
  border:1px solid var(--border);border-radius:16px;padding:14px 13px 13px;min-width:0}
.dvs__k{margin:0;color:var(--brand);font-weight:600}
.dvs__stat{margin:10px 0 0;font-family:var(--display);font-weight:800;font-size:clamp(26px,7.4vw,40px);
  line-height:1;letter-spacing:-.035em;font-variation-settings:"wdth" 86,"opsz" 72;color:var(--ink)}
.dvs__stat small{display:block;margin-top:3px;font-family:var(--sans);font-size:16px;font-weight:650;
  letter-spacing:0;color:var(--muted)}
.dvs__what{margin:10px 0 0;font-size:16px;line-height:1.45;color:var(--ink-2)}
.dvs__f{display:contents}
.dvs__f div{padding:8px 0;border-bottom:1px solid var(--hair)}
.dvs__f div:first-child{margin-top:12px;border-top:1px solid var(--hair)}
.dvs__f dt{font-family:var(--label);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.dvs__f dd{margin:3px 0 0;font-size:16px;line-height:1.35;color:var(--ink)}
.dvs__f dd b{font-weight:700;font-variant-numeric:tabular-nums}
.dvs__now{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:15px;font-weight:650;color:var(--muted)}
.dvs__now[hidden]{display:none}
.dvs__now.is-open{color:var(--open)}
.dvs__now.is-open::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--open);flex:none}
.dvs__go{margin-top:14px;width:100%;padding-left:10px;padding-right:10px}
.dvs__hours{margin:14px 0 0;padding:14px 16px;border-radius:14px;background:var(--chip);
  font-size:17px;line-height:1.55;color:var(--ink-2)}
.dvs__hours b{color:var(--ink);font-weight:650}
.dv .pg-note a{color:var(--link);font-weight:600;text-underline-offset:2px}
.dvs__hours a{color:var(--link);font-weight:600;text-underline-offset:2px}
.dvq .faq__a a{color:var(--link);font-weight:600;text-underline-offset:2px}
.dvm{padding:44px 0 8px}
.dvm__grid{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px;
  grid-template-columns:repeat(2,minmax(0,1fr))}
.dvp{min-width:0}
.dvp__a{display:flex;flex-direction:column;height:100%;background:var(--surface);
  border:1px solid var(--border);border-radius:14px;overflow:hidden;color:inherit;text-decoration:none;
  transition:transform var(--t-comp) var(--ease),box-shadow var(--t-comp) var(--ease),
  border-color var(--t-comp) var(--ease)}
.dvp__img{display:block;aspect-ratio:1/1;background:#F6F5FA}
.dvp__img img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;padding:9%}
.dvp__b{display:flex;flex-direction:column;gap:3px;padding:11px 12px 12px;flex:1}
.dvp__cat{font-family:var(--label);font-size:13px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.dvp__name{font-weight:700;font-size:17.5px;line-height:1.22;color:var(--ink);letter-spacing:-.005em;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.dvp__meta{font-size:15px;color:var(--muted);line-height:1.35}
.dvp__foot{margin-top:auto;padding-top:9px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.dvp__go{font-size:16px;font-weight:700;color:var(--brand);display:inline-flex;align-items:center;gap:4px}
.dvp__go b{display:inline-block;font-weight:700;transition:transform var(--t-comp) var(--ease)}
@media(hover:hover){
.dvp__a:hover{transform:translateY(-3px);border-color:#D3CDE3;box-shadow:0 10px 24px -14px rgba(36,16,70,.35)}
.dvp__a:hover .dvp__go b{transform:translateX(3px)}
}
.dvm .more{margin-top:10px}
.dvd__more{margin:10px 0 0;font-size:16px;color:var(--muted)}
.dvd__more a{color:var(--link);font-weight:600;text-underline-offset:2px}
.dvw{padding:44px 0 8px}
.dvw__list{list-style:none;margin:16px 0 0;padding:0;background:var(--surface);border:1px solid var(--border);
  border-radius:16px;overflow:hidden}
.dvw__i{display:grid;grid-template-columns:34px 1fr;gap:4px;padding:16px 18px;border-top:1px solid var(--hair)}
.dvw__i:first-child{border-top:0}
.dvw__n{font-family:var(--label);font-size:14px;letter-spacing:.08em;color:var(--brand);padding-top:3px;
  font-variant-numeric:tabular-nums}
.dvw__i h3{font-family:var(--sans);font-size:18.5px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.dvw__i p{margin:4px 0 0;color:var(--ink-2);font-size:17px;line-height:1.55}
.dva{padding:44px 0 8px;scroll-margin-top:72px}
.dva__groups{margin-top:10px}
.dva__g{padding:16px 0 4px;border-bottom:1px solid var(--border)}
.dva__g:last-child{border-bottom:0}
.dva__g h3{font-family:var(--label);font-size:13.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-2);display:flex;align-items:baseline;gap:8px}
.dva__g h3 i{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.dva__l{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.dva__l a{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-radius:999px;
  border:1px solid var(--edge);background:var(--surface);color:var(--ink);text-decoration:none;
  font-weight:600;font-size:17px;transition:background var(--t-micro) var(--ease),border-color var(--t-micro) var(--ease)}
.dva__l em{font-style:normal;font-family:var(--label);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--brand);background:var(--chip);border-radius:99px;padding:3px 7px}
.dva__l .dva__all{border-style:dashed;color:var(--brand)}
@media(hover:hover){
.dva__l a:hover{border-color:var(--brand);background:var(--chip)}
}
.dva .more{margin-top:14px}
.dvq{padding:44px 0 56px}
.dvq .faq{margin-top:14px}
.dvq .more{margin-top:18px}
.dvq__legal{margin:26px 0 0;font-size:14.5px;line-height:1.65;color:var(--muted);max-width:70ch}
.dvq__legal a{color:var(--link);font-weight:600;text-underline-offset:2px}
@media(min-width:420px){
.dvs__c{padding:16px 16px 16px}
.dvs__what{font-size:17px}
.dvs__f dd{font-size:17px}
}
@media(min-width:720px){
.dvs__grid{gap:16px}
.dvs__c{padding:22px 22px 20px}
.dvs__go{width:auto;justify-self:start;padding-left:22px;padding-right:22px}
.dvs__f div{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:baseline;column-gap:12px;padding:10px 0}
.dvs__f dd{margin:0}
.dvm__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.dvh__pt span{font-size:13px}
.dvh__pt--lab span{display:block}
.dvh__art{max-width:720px;margin:0 auto}
.dvh__act .btn{flex:0 0 auto}
}
@media(min-width:1080px){
.dvh__wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);align-items:center;
    max-width:1120px;margin:0 auto;padding:0 var(--gutter);gap:32px}
.dvh__art{order:2;padding:28px 0 24px;max-width:none;margin:0}
.dvh__map{border-radius:18px}
.dvh__cap{padding:12px 2px 0;font-size:14px}
.dvh__osm{font-size:13.5px}
.dvh__in{order:1;padding:48px 0 56px;margin:0}
.dvh h1{font-size:clamp(46px,5vw,68px)}
}
@media(min-width:960px){
.dvs{padding:64px 0 8px}
.dvs__grid{gap:20px}
.dvs__c{padding:26px 26px 24px}
.dvm{padding-top:64px}
.dvw{padding-top:64px}
.dva{padding-top:64px}
.dvm__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.dvm__grid{gap:16px}
.dvw__list{display:grid;grid-template-columns:repeat(3,1fr)}
.dvw__i{border-top:0;border-left:1px solid var(--hair);grid-template-columns:1fr;padding:22px 22px 24px}
.dvw__i:first-child{border-left:0}
.dva__groups{columns:2;column-gap:40px}
.dva__g{break-inside:avoid}
.dvq{padding:64px 0 80px}
.dvq .faq{max-width:780px}
.dvq__legal{max-width:780px}
}
@media(prefers-reduced-motion:reduce){
.dvp__a{transition:none}
.dvp__go b{transition:none}
.dva__l a{transition:none}
.dvp__a:hover{transform:none}
}
:where(body.kolas-wired) .lix-m{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:5px;font-size:17px;line-height:1.35;color:var(--ink-2)}
:where(body.kolas-wired) .lix-m li{display:flex;align-items:center;gap:7px}
:where(body.kolas-wired) .lix-m svg{width:15px;height:15px;flex:none;color:var(--brand)}
:where(body.kolas-wired) .lix-m a{color:var(--link);font-weight:650;text-decoration:none;display:inline-block;padding:13px 0;margin:-13px 0}
@media(hover:hover){
:where(body.kolas-wired) .lix-m a:hover{text-decoration:underline;text-underline-offset:3px}
}
:where(body.kolas-wired) .lix-eye{margin:0 0 3px;color:var(--muted);font-size:13px}
:where(body.kolas-wired) .lix .ctc-row{height:100%}
:where(body.kolas-wired) .lix-go{margin:18px 0 0}
:where(body.kolas-wired) .lix-go .more{min-height:44px}
:where(body.kolas-wired) .lix .pg-crumb :focus-visible{outline-color:var(--gold)}
@media(min-width:960px) and (max-width:1239px){
:where(body.kolas-wired) .lix .ctc-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;padding:0 max(0px,calc(50% - 560px))}
:where(body.kolas-wired) .lix .ctc-band .wrap{grid-template-columns:minmax(0,1fr);padding-bottom:64px}
:where(body.kolas-wired) .lix .ctc-map{margin:24px 0 0}
}
.dva__z{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-radius:999px;
  border:1px solid var(--edge);background:var(--ground);color:var(--ink);font-weight:600;font-size:17px;font-variant-numeric:tabular-nums}
.dva__z small{font-weight:500;color:var(--muted);font-size:15px}

/* ── wired: brand ── */
.bp-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bp a{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.bp button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.bp select{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.bp summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.bph{background:var(--deep);color:#fff;position:relative;overflow:clip;isolation:isolate}
.bp-crumb{background:var(--deep-2);color:rgba(255,255,255,.72);font-family:var(--label);
  font-size:13.5px;letter-spacing:.14em;text-transform:uppercase;position:relative;z-index:3}
.bp-crumb .wrap{display:flex;align-items:center;gap:9px;padding-top:11px;padding-bottom:11px;
  max-width:1120px}
.bp-crumb a{color:rgba(255,255,255,.72);text-decoration:none}
.bp-crumb a:hover{color:#fff}
.bp-crumb i{font-style:normal;color:rgba(255,255,255,.34)}
.bp-crumb [aria-current]{color:var(--gold)}
.bph__art{margin:0;position:relative;aspect-ratio:4/3;background:#120726}
.bph__art img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 58%}
.bph__art::after{content:"";position:absolute;inset:auto 0 0 0;height:34%;
  background:linear-gradient(180deg,rgba(36,16,70,0) 0%,var(--deep) 100%);pointer-events:none}
.bph__in{position:relative;z-index:2;padding:4px var(--gutter) 40px;max-width:1120px;margin:0 auto}
.bph__eye{color:var(--gold);margin:0 0 12px}
.bph h1{font-size:clamp(34px,8.6vw,64px);line-height:.98;letter-spacing:-.035em;max-width:13ch;
  font-weight:800;font-variation-settings:"wdth" 88,"opsz" 72;text-wrap:balance}
.bph__lede{margin:16px 0 0;font-size:18px;line-height:1.5;color:rgba(255,255,255,.86);max-width:36ch}
.bph__lede b{color:#fff;font-weight:650}
.bph__act{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.bph__act .btn{flex:1 1 auto}
.bpm{background:var(--ground);color:var(--ink);padding:34px 0 48px;scroll-margin-top:72px}
.bpm .wrap{max-width:1120px}
.bpl .wrap{max-width:1120px}
.bpg .wrap{max-width:1120px}
.bpw .wrap{max-width:1120px}
.bpq .wrap{max-width:1120px}
.bpr .wrap{max-width:1120px}
.bpm__head h2{font-size:clamp(25px,5.4vw,38px);letter-spacing:-.03em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.bpm__head h2 span{color:var(--brand)}
.bpm__sub{margin:8px 0 0;color:var(--muted);font-size:17px}
.bpm__sub b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
.bpm__shop{margin:18px 0 0;display:flex;gap:8px;align-items:stretch}
.bpm__sel{position:relative;flex:1;min-width:0}
.bpm__sel select{appearance:none;-webkit-appearance:none;width:100%;min-height:48px;margin:0;
  font:inherit;font-size:17.5px;font-weight:650;color:var(--ink);background:var(--surface);
  border:1px solid var(--edge);border-radius:12px;padding:0 42px 0 14px;cursor:pointer;
  text-overflow:ellipsis}
.bpm__sel::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;
  margin-top:-6px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);
  transform:rotate(45deg);pointer-events:none}
.bpm__sel select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.bpm__near{flex:none;font:inherit;font-size:17px;font-weight:650;min-height:48px;padding:0 16px;
  border-radius:12px;border:1px solid var(--edge);background:var(--surface);color:var(--brand);
  cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.bpm__near svg{width:15px;height:15px}
@media(max-width:419px){
.bpm__near{padding:0 14px}
.bpm__near span{position:absolute;width:1px;height:1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
}
.bpm__near:hover{background:var(--sunken)}
.bpm__near:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.bpm__near[disabled]{opacity:.55;cursor:default}
.bpm__hint{margin:8px 0 0;font-size:15px;color:var(--muted);min-height:1.2em}
.bpm__chips{margin:18px calc(var(--gutter) * -1) 0;padding:2px var(--gutter);display:flex;gap:8px;
  overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.bpm__chips::-webkit-scrollbar{display:none}
.bpm__chip{flex:none;font:inherit;font-size:17px;font-weight:650;min-height:40px;padding:0 15px;
  border-radius:999px;border:1px solid var(--edge);background:var(--surface);color:var(--ink);
  cursor:pointer;display:inline-flex;align-items:center;gap:7px;
  transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease),
             border-color var(--t-micro) var(--ease)}
.bpm__chip i{font-style:normal;font-weight:600;font-size:15px;color:var(--muted);
  font-variant-numeric:tabular-nums}
.bpm__chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.bpm__chip[aria-pressed="true"] i{color:rgba(255,255,255,.72)}
.bpm__chip[hidden]{display:none}
.bpm__chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(hover:hover){
.bpm__chip:not([aria-pressed="true"]):hover{background:var(--chip);border-color:var(--brand)}
}
.bpm__grid{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px;
  grid-template-columns:repeat(2,minmax(0,1fr))}
:where(body.kolas-wired) .pc{min-width:0}
:where(body.kolas-wired) .pc[hidden]{display:none}
.pc__a{display:flex;flex-direction:column;height:100%;background:var(--surface);
  border:1px solid var(--border);border-radius:14px;overflow:hidden;color:inherit;
  text-decoration:none;transition:transform var(--t-comp) var(--ease),
  box-shadow var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease)}
.pc__img{display:block;aspect-ratio:1/1;background:#F6F5FA;position:relative}
.pc__img img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;
  padding:9%}
.pc__noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--edge)}
.pc__b{display:flex;flex-direction:column;gap:3px;padding:11px 12px 12px;flex:1}
.pc__line{font-family:var(--label);font-size:13px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted)}
.pc__name{font-weight:700;font-size:17.5px;line-height:1.22;color:var(--ink);letter-spacing:-.005em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc__meta{font-size:15px;color:var(--muted);line-height:1.35}
.pc__foot{margin-top:auto;padding-top:9px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.pc__price{font-size:18.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;
  letter-spacing:-.01em}
.pc__go{font-size:16px;font-weight:700;color:var(--brand);display:inline-flex;align-items:center;gap:4px}
.pc__go b{display:inline-block;font-weight:700;transition:transform var(--t-comp) var(--ease)}
.pc__a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(hover:hover){
.pc__a:hover{transform:translateY(-3px);border-color:#D3CDE3;
    box-shadow:0 10px 24px -14px rgba(36,16,70,.35)}
.pc__a:hover .pc__go b{transform:translateX(3px)}
}
.bpm__more{margin:16px auto 0;display:flex}
.bpm__more[hidden]{display:none}
.bpm__empty{margin:16px 0 0;padding:18px;border-radius:14px;background:var(--surface);
  border:1px solid var(--border);color:var(--ink-2);font-size:17px}
.bpm__empty[hidden]{display:none}
.bpm__note{margin:18px 0 0;font-size:15px;line-height:1.55;color:var(--muted);max-width:62ch}
.bpl{background:var(--deep);color:#fff;padding:46px 0 50px}
.bpl h2{font-size:clamp(25px,5.4vw,38px);letter-spacing:-.03em;font-weight:800;
  font-variation-settings:"wdth" 88;max-width:18ch;text-wrap:balance}
.bpl__sub{margin:10px 0 0;color:rgba(255,255,255,.66);font-size:17.5px;max-width:48ch}
.bpl__grid{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px;grid-template-columns:1fr}
.bpl__t{background:rgba(255,255,255,.04);border:1px solid var(--deep-hair);border-radius:16px;
  overflow:hidden;display:flex;flex-direction:column}
.bpl__img{aspect-ratio:3/2;background:#120726;overflow:hidden}
.bpl__img img{display:block;width:100%;height:100%;object-fit:cover}
.bpl__b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.bpl__b h3{font-size:23px;letter-spacing:-.025em;font-weight:800;font-variation-settings:"wdth" 90}
.bpl__b p{margin:0;color:rgba(255,255,255,.74);font-size:17px;line-height:1.5}
.bpl__n{font-size:16px;color:rgba(255,255,255,.62);font-variant-numeric:tabular-nums}
.bpl__n b{color:#fff;font-weight:650}
.bpl__go{margin-top:6px;align-self:flex-start;font:inherit;font-size:17px;font-weight:700;
  color:var(--gold);background:none;border:0;padding:6px 0;cursor:pointer;display:inline-flex;
  align-items:center;gap:7px}
.bpl__go b{transition:transform var(--t-comp) var(--ease)}
.bpl__go:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
@media(hover:hover){
.bpl__go:hover b{transform:translateX(4px)}
}
.bp-two{background:var(--ground)}
.bpg{background:var(--ground);padding:46px 0 10px}
.bpg h2{font-size:clamp(24px,5vw,34px);letter-spacing:-.03em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.bpw h2{font-size:clamp(24px,5vw,34px);letter-spacing:-.03em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.bpq h2{font-size:clamp(24px,5vw,34px);letter-spacing:-.03em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.bpr h2{font-size:clamp(24px,5vw,34px);letter-spacing:-.03em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.bpg__list{list-style:none;margin:18px 0 0;padding:0;background:var(--surface);border:1px solid var(--border);
  border-radius:16px;overflow:hidden}
.bpg__i{padding:18px 18px 18px;border-top:1px solid var(--hair)}
.bpg__i:first-child{border-top:0}
.bpg__i h3{font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.bpg__i p{margin:5px 0 0;color:var(--ink-2);font-size:17px;line-height:1.55}
.bpg__i .more{margin-top:9px}
.bpw{background:var(--ground);padding:40px 0 10px}
.bpw__sub{margin:8px 0 0;color:var(--muted);font-size:17px}
.bpw__list{list-style:none;margin:16px 0 0;padding:0;background:var(--surface);
  border:1px solid var(--border);border-radius:16px;overflow:hidden}
.bpw__i{border-top:1px solid var(--hair)}
.bpw__i:first-child{border-top:0}
.bpw__a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;
  padding:14px 16px;color:inherit;text-decoration:none;min-height:64px}
.bpw__a b{font-weight:700;font-size:18px;color:var(--ink)}
.bpw__ad{grid-column:1;font-size:16px;color:var(--muted)}
.bpw__n{grid-row:1/3;grid-column:2;text-align:right;font-variant-numeric:tabular-nums}
.bpw__n strong{display:block;font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.bpw__n em{display:block;font-style:normal;font-size:14px;color:var(--muted)}
.bpw__bar{grid-column:1/3;height:3px;border-radius:3px;background:var(--hair);margin-top:8px;overflow:hidden}
.bpw__bar i{display:block;height:100%;background:var(--brand);border-radius:3px}
.bpw__a:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
@media(hover:hover){
.bpw__a:hover{background:#FAF9FC}
.bpw__a:hover b{color:var(--brand)}
}
.bpw__i.is-mine .bpw__a{background:#F7F4FC}
.bpw__i.is-mine b::after{content:"Your shop";margin-left:8px;font-family:var(--label);font-size:12.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--brand);background:var(--chip);
  border-radius:99px;padding:3px 7px;vertical-align:2px;font-weight:600}
.bpq{background:var(--ground);padding:44px 0 8px}
.bpq .faq{margin-top:14px}
.bpr{background:var(--ground);padding:36px 0 56px}
.bpr__list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.bpr__list a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 15px;
  border-radius:999px;border:1px solid var(--edge);background:var(--surface);color:var(--ink);
  text-decoration:none;font-weight:650;font-size:17px}
.bpr__list a i{font-style:normal;font-size:15px;color:var(--muted);font-weight:600;
  font-variant-numeric:tabular-nums}
.bpr__list a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(hover:hover){
.bpr__list a:hover{border-color:var(--brand);background:var(--chip)}
}
.bpr .more{margin-top:18px}
.bpr__legal{margin:26px 0 0;font-size:14.5px;line-height:1.65;color:var(--muted);max-width:70ch}
.bph--none .bph__in{padding-top:40px}
@media(min-width:720px){
.bpm__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bpl__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.bpm__shop{max-width:560px}
}
@media(min-width:960px){
.bph__wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;
    max-width:1120px;margin:0 auto;padding-left:var(--gutter)}
.bph__art{order:2;aspect-ratio:3/2;margin-right:calc((100vw - min(100vw,1120px)) / -2)}
.bph__art::after{inset:0 auto 0 0;width:38%;height:auto;
    background:linear-gradient(90deg,var(--deep) 0%,rgba(36,16,70,0) 100%)}
.bph__art img{object-position:50% 50%}
.bph__in{order:1;padding:56px 24px 64px 0;margin:0}
.bph--none .bph__in{padding-top:72px}
.bph--none .bph__wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.bph h1{font-size:clamp(44px,4.8vw,66px)}
.bph__act .btn{flex:0 0 auto}
.bpm{padding:56px 0 64px}
.bpm__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.bpm__shop{margin:0;min-width:420px}
.bpm__chips{margin:22px 0 0;padding:2px 0;flex-wrap:wrap;overflow:visible}
.bpm__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.bpl{padding:64px 0 70px}
.bpl__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.bpl__grid--5{grid-template-columns:repeat(3,minmax(0,1fr))}
.bp-two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;max-width:1120px;
    margin:0 auto;padding:56px var(--gutter) 0}
.bp-two>section{padding:0}
.bp-two .wrap{padding:0}
}
@media(prefers-reduced-motion:reduce){
.pc__a{transition:none}
.pc__go b{transition:none}
.bpl__go b{transition:none}
.bpm__chip{transition:none}
.pc__a:hover{transform:none}
}
.pc__img--cover img{object-fit:cover;padding:0;mix-blend-mode:normal}
@media(min-width:960px){
.bpl__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.bph__none{margin:18px 0 0;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.06);
  border:1px solid var(--deep-hair);font-size:17px;line-height:1.55;color:rgba(255,255,255,.86);
  max-width:46ch}
.bph__none b{color:#fff}
.bph__alts{list-style:none;margin:0;padding:0 var(--gutter) 40px;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;position:relative;z-index:2}
.bph__alt a{display:flex;flex-direction:column;height:100%;background:#F6F5FA;border-radius:14px;
  overflow:hidden;color:var(--ink);text-decoration:none;transition:transform var(--t-comp) var(--ease)}
.bph__altimg{display:block;aspect-ratio:1/1}
.bph__altimg img{display:block;width:100%;height:100%;object-fit:contain;padding:10%;mix-blend-mode:multiply}
.bph__altb{display:none}
.bph__alt--scene .bph__altimg img{object-fit:cover;padding:0;mix-blend-mode:normal}
.bph__alt a:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(hover:hover){
.bph__alt a:hover{transform:translateY(-3px)}
}
@media(min-width:960px){
.bph__alts{order:2;padding:56px 0 56px 12px;grid-template-columns:1.2fr 1fr;grid-template-rows:1fr 1fr;gap:14px}
.bph__alt--lead{grid-row:1/3}
.bph__altb{display:flex;flex-direction:column;gap:2px;padding:0 16px 14px}
.bph__altl{font-family:var(--label);font-size:13px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.bph__altn{font-weight:700;font-size:17.5px;line-height:1.25}
.bph__altp{font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px}
.bph__alt--lead .bph__altimg{flex:1}
}

/* ── wired: loc ── */
:where(body.kolas-wired) .hero h1 .thin{display:block;font-weight:300;font-variation-settings:"wdth" 100,"opsz" 72;
  color:var(--soft)}
.lp{background:var(--ground);color:var(--ink)}
.lp .wrap{max-width:1120px}
.lp a{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.lp button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.lp summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(64,28,123,.10)}
.lp-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lp-crumb{background:var(--deep-2);color:rgba(255,255,255,.72);font-family:var(--label);
  font-size:13.5px;letter-spacing:.14em;text-transform:uppercase}
.lp-crumb .wrap{display:flex;align-items:center;gap:9px;padding-top:0;padding-bottom:0;
  white-space:nowrap;overflow:hidden}
.lp-crumb a{color:rgba(255,255,255,.72);display:inline-flex;align-items:center;min-height:40px}
.lp-crumb [aria-current]{line-height:40px}
.lp-crumb a:hover{color:#fff}
.lp-crumb i{font-style:normal;color:rgba(255,255,255,.34)}
.lp-crumb [aria-current]{color:var(--gold);overflow:hidden;text-overflow:ellipsis}
.lp-crumb :focus-visible{outline-color:var(--gold)}
.lph{background:var(--deep);color:#fff;position:relative;isolation:isolate}
.lph :focus-visible{outline-color:var(--gold)}
.lph__g{padding-top:24px;padding-bottom:72px}
.lph__eye{color:var(--gold);margin:0 0 12px}
.lph h1{font-size:clamp(36px,10vw,66px);line-height:.95;letter-spacing:-.04em;font-weight:800;
  font-variation-settings:"wdth" 88,"opsz" 72;text-wrap:balance}
.lph h1 .thin{display:block;margin-top:8px;font-size:.56em;line-height:1.08;font-weight:300;
  letter-spacing:-.02em;font-variation-settings:"wdth" 96,"opsz" 48;color:var(--soft);
  text-wrap:balance;max-width:17ch}
.lph__lede{display:none;margin:14px 0 0;font-size:18px;line-height:1.5;color:rgba(255,255,255,.84);max-width:40ch}
@media(min-width:600px){
.lph__lede{display:block}
}
.lph__lede b{color:#fff;font-weight:650;font-variant-numeric:tabular-nums}
.lph__act{display:none}
.lph__fig{margin:22px 0 0;position:relative}
.lph__ph{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:#120726;
  box-shadow:0 28px 60px -34px rgba(0,0,0,.8)}
.lph__ph>img{display:block;width:100%;height:100%;object-fit:cover}
.lph__fig--tall .lph__ph{aspect-ratio:4/5}
.lph__fig--bleed .lph__ph{border-radius:0}
.lph__fig--bleed .lp-live{left:var(--gutter)}
.lph__fig--bleed .lph__map{right:var(--gutter)}
.lp-live{position:absolute;left:12px;top:12px;z-index:2;display:inline-flex;align-items:center;gap:8px;
  background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 13px 7px 11px;
  font-size:16px;font-weight:600;line-height:1.2;box-shadow:0 6px 18px -8px rgba(18,7,38,.55)}
.lp-live i{width:7px;height:7px;border-radius:50%;background:var(--muted);flex:none}
.lp-live b{font-weight:700}
.lp-live span{color:var(--ink-2);font-weight:550;font-variant-numeric:tabular-nums}
.lp-live[data-state="open"] b{color:var(--open)}
.lp-live[data-state="open"] i{background:var(--open);box-shadow:0 0 0 3px rgba(14,115,80,.18);
  animation:lp-pulse 2.4s var(--ease) infinite}
.lp-live[data-state="shut"] b{color:var(--closed)}
.lp-live[data-state="shut"] i{background:var(--closed);box-shadow:0 0 0 3px rgba(168,50,27,.16)}
@keyframes lp-pulse{0%,100%{box-shadow:0 0 0 3px rgba(14,115,80,.18)}50%{box-shadow:0 0 0 6px rgba(14,115,80,.06)}}
.lph__map{position:absolute;right:12px;bottom:12px;z-index:2;display:block;width:32%;max-width:176px;margin:0;
  aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:var(--deep);
  border:1px solid rgba(216,179,106,.55);box-shadow:0 14px 30px -12px rgba(0,0,0,.75);
  transition:border-color var(--t-micro) var(--ease)}
.lph__map img{display:block;width:100%;height:100%;object-fit:cover}
.lph__map:focus-visible{outline-offset:2px}
@media(hover:hover){
.lph__map:hover{border-color:var(--gold)}
}
.lph__fig--mapl .lph__map{right:auto;left:12px}
.lph__fig figcaption{margin-top:10px;font-family:var(--label);font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.5);line-height:1.6}
.lpf{position:relative;z-index:3;margin-top:-44px}
.lpf__card{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);
  border-radius:18px;box-shadow:0 20px 44px -30px rgba(36,16,70,.55);overflow:hidden}
.lpf__i{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:0 13px;align-items:start;
  padding:15px 14px 15px 16px;border-top:1px solid var(--hair)}
.lpf__i:first-child{border-top:0}
.lpf__ic{padding-top:17px;color:var(--brand)}
.lpf__ic svg{display:block;width:20px;height:20px}
.lpf__k{display:block;font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:3px}
.lpf__v{display:block;font-size:18px;font-weight:650;line-height:1.35;color:var(--ink);
  font-variant-numeric:tabular-nums}
.lpf__s{display:block;margin-top:3px;font-size:16px;line-height:1.5;color:var(--muted)}
.lpf__s a{color:var(--link);font-weight:650;text-decoration:underline;text-underline-offset:2px}
.lpf__go{align-self:center;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;
  border-radius:999px;border:1px solid var(--edge);background:var(--surface);color:var(--brand);
  font-size:17px;font-weight:700;white-space:nowrap;
  transition:background var(--t-micro) var(--ease),border-color var(--t-micro) var(--ease)}
.lpf__go svg{width:15px;height:15px}
@media(hover:hover){
.lpf__go:hover{background:var(--chip);border-color:var(--brand)}
}
.lpf__i--stack{grid-template-columns:22px minmax(0,1fr)}
.lpf__i--stack .lpf__go{grid-column:2;justify-self:start;margin-top:12px}
.lpf__v .lp-st{margin-left:6px}
.lp-st{position:relative;display:inline-flex;vertical-align:-2px;line-height:0;
  align-self:flex-start;width:max-content}
.lp-st__off{display:inline-flex;gap:2px}
.lp-st__on{display:inline-flex;gap:2px}
.lp-st__on{position:absolute;left:0;top:0;overflow:hidden}
.lp-st svg{flex:none;width:var(--s,15px);height:var(--s,15px);fill:currentColor}
.lp-st__off{color:#DCD8E6}
.lp-st__on{color:var(--gold-struct)}
.lpi .lp-st__off{color:rgba(255,255,255,.18)}
.lpi .lp-st__on{color:var(--gold)}
.lps{padding:44px 0 12px;scroll-margin-top:72px}
.lp-eye{font-family:var(--label);font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brand);margin:0 0 10px}
.lp h2{font-size:clamp(26px,6.4vw,40px);line-height:1;letter-spacing:-.035em;font-weight:800;
  font-variation-settings:"wdth" 88;text-wrap:balance}
.lp-sub{margin:10px 0 0;color:var(--muted);font-size:17px;line-height:1.55;max-width:58ch}
.lp-sub b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
.lps__grid{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px;
  grid-template-columns:repeat(2,minmax(0,1fr))}
.lpc{min-width:0}
.lpc__a{display:flex;flex-direction:column;height:100%;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;overflow:hidden;color:inherit;
  transition:transform var(--t-comp) var(--ease),box-shadow var(--t-comp) var(--ease),border-color var(--t-comp) var(--ease)}
.lpc__img{display:block;aspect-ratio:1/1;background:#F6F5FA;position:relative}
.lpc__img img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;padding:9%}
.lpc__b{display:flex;flex-direction:column;gap:3px;padding:11px 12px 12px;flex:1}
.lpc__cat{font-family:var(--label);font-size:13px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.lpc__name{font-weight:700;font-size:17px;line-height:1.25;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lpc__foot{margin-top:auto;padding-top:9px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.lpc__price{font-size:18.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.lpc__price s{display:block;font-size:14.5px;font-weight:500;color:var(--muted)}
.lpc__go{font-size:16px;font-weight:700;color:var(--brand);display:inline-flex;align-items:center;gap:4px}
.lpc__go b{display:inline-block;transition:transform var(--t-comp) var(--ease)}
@media(hover:hover){
.lpc__a:hover{transform:translateY(-3px);border-color:#D3CDE3;box-shadow:0 10px 24px -14px rgba(36,16,70,.35)}
.lpc__a:hover .lpc__go b{transform:translateX(3px)}
}
.lps__cats-h{margin:30px 0 0;font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:-.01em}
.lps__cats{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.lps__cats a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;
  border:1px solid var(--edge);background:var(--surface);color:var(--ink);font-weight:650;font-size:17px;
  transition:background var(--t-micro) var(--ease),border-color var(--t-micro) var(--ease)}
.lps__cats a i{font-style:normal;font-size:15px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}
.lps__cats .is-all a{background:var(--brand);border-color:var(--brand);color:#fff}
.lps__cats .is-all a i{color:rgba(255,255,255,.74)}
@media(hover:hover){
.lps__cats li:not(.is-all) a:hover{border-color:var(--brand);background:var(--chip)}
.lps__cats .is-all a:hover{background:var(--press)}
}
.lp-note{margin:18px 0 0;font-size:15px;line-height:1.6;color:var(--muted);max-width:66ch}
.lpi{background:var(--deep);color:#fff;margin-top:44px;padding:46px 0 50px}
.lpi :focus-visible{outline-color:var(--gold)}
.lpi .lp-eye{color:var(--gold)}
.lpi h2{color:#fff}
.lpi__strip{margin:20px calc(var(--gutter) * -1) 0;padding:0 var(--gutter);display:flex;gap:10px;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);
  scrollbar-width:none;overscroll-behavior-x:contain}
.lpi__strip::-webkit-scrollbar{display:none}
.lpi__strip:focus-visible{outline-offset:-2px}
.lpi__strip>figure{flex:none;scroll-snap-align:start;margin:0}
.lpi__ph{height:236px;border-radius:14px;overflow:hidden;background:#120726}
.lpi__ph img{display:block;height:100%;width:auto;max-width:none}
.lpi__strip figcaption{margin-top:8px;font-size:16px;color:rgba(255,255,255,.66)}
.lpi__strip--one .lpi__ph{height:auto}
.lpi__strip--one .lpi__ph img{width:100%;height:auto;max-width:100%}
.lpr{margin-top:34px;display:grid;gap:12px}
.lpr__score{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lpr__n{font-family:var(--display);font-size:56px;line-height:.9;font-weight:800;letter-spacing:-.04em;
  font-variation-settings:"wdth" 88;font-variant-numeric:tabular-nums}
.lpr__meta{display:flex;flex-direction:column;gap:5px}
.lpr__meta span{font-size:17px;color:rgba(255,255,255,.72);font-variant-numeric:tabular-nums}
.lpr__meta b{color:#fff;font-weight:650}
.lpr .more{color:var(--gold);justify-self:start;min-height:44px}
.lpr__list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}
.lpr__q{margin:0;padding:16px 16px 15px;border-radius:16px;background:var(--deep-panel);border:1px solid var(--deep-hair);
  display:flex;flex-direction:column;gap:10px}
.lpr__q blockquote{margin:0;font-size:18px;line-height:1.55;color:rgba(255,255,255,.92)}
.lpr__q figcaption{font-size:16px;color:rgba(255,255,255,.62)}
.lpr__q figcaption b{color:#fff;font-weight:650}
.lpi .lp-note{color:rgba(255,255,255,.56)}
.lpo{padding:44px 0 8px}
.lpo__list{list-style:none;margin:16px 0 0;padding:0;background:var(--surface);border:1px solid var(--border);
  border-radius:16px;overflow:hidden}
.lpo__i{border-top:1px solid var(--hair)}
.lpo__i:first-child{border-top:0}
.lpo__a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;align-items:center;padding:14px 16px;
  min-height:64px;color:inherit;transition:background var(--t-micro) var(--ease)}
.lpo__a b{font-weight:700;font-size:18px;color:var(--ink)}
.lpo__ad{grid-column:1;font-size:16px;color:var(--muted)}
.lpo__d{grid-row:1/3;grid-column:2;text-align:right;font-variant-numeric:tabular-nums}
.lpo__d strong{display:block;font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.lpo__d em{display:block;font-style:normal;font-size:14px;color:var(--muted)}
.lpo__a:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
@media(hover:hover){
.lpo__a:hover{background:#FAF9FC}
.lpo__a:hover b{color:var(--brand)}
}
.lpq{padding:44px 0 8px}
.lpq .faq{margin-top:14px}
.lpz{padding:30px 0 0}
.lpz__lic{margin:0;padding:16px 18px;border-radius:14px;background:var(--surface);border:1px solid var(--border);
  display:grid;gap:4px}
.lpz__lic .lbl{color:var(--muted);font-size:13px}
.lpz__lic strong{font-family:var(--label);font-size:17px;font-weight:500;letter-spacing:.06em;color:var(--ink)}
.lpz__lic span{font-size:16px;color:var(--muted)}
.lpz .lp-note{margin-top:14px}
.lpv{padding:36px 0 0}
.lpv+.lpv{padding-top:28px}
.lpv h2{font-size:clamp(24px,5.2vw,32px)}
.lpv__p{margin:10px 0 0;font-size:18px;line-height:1.6;color:var(--ink-2);max-width:62ch}
.lpv__p a{color:var(--link);font-weight:650;text-decoration:underline;text-underline-offset:2px}
.lpv__act{margin:16px 0 0}
.lpv--twin .lpv__p{padding:12px 14px;border-radius:12px;background:var(--chip)}
.lpr__h{font-size:clamp(24px,5.2vw,30px);margin:0 0 4px}
@media(min-width:720px){
.lps__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.lpi__ph{height:300px}
.lpr__list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:900px){
.lph__act{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
}
@media(min-width:960px){
.lph__g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:56px;align-items:center;
    padding-top:56px;padding-bottom:104px}
.lph__fig{margin:0}
.lph__fig--bleed .lph__ph{border-radius:18px}
.lph__fig--bleed .lp-live{left:12px}
.lph__fig--bleed .lph__map{right:12px}
.lph h1{font-size:clamp(52px,5.6vw,76px)}
.lph__lede{font-size:19px}
.lpf{margin-top:-60px}
.lpf__card{display:grid;grid-template-columns:1fr 1.45fr 1fr 1fr}
.lpf__i{border-top:0;border-left:1px solid var(--hair);padding:20px 18px 20px 20px;
    grid-template-columns:22px minmax(0,1fr);grid-template-rows:1fr auto}
.lpf__i:first-child{border-left:0}
.lpf__go{grid-column:2;grid-row:2;justify-self:start;align-self:end;margin-top:14px;min-height:40px}
.lpf__i--stack .lpf__go{grid-column:2;grid-row:2;justify-self:start;align-self:end;margin-top:14px;min-height:40px}
.lps{padding:64px 0 12px}
.lps__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.lpi{margin-top:64px;padding:68px 0 72px}
.lpi__in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:start}
.lpi__strip{margin:22px 0 0;padding:0;overflow:visible;display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr))}
.lpi__ph{height:280px}
.lpi__ph img{width:100%;height:100%;max-width:100%;object-fit:cover}
.lpi__strip--one .lpi__ph{height:auto}
.lpi__strip--one .lpi__ph img{height:auto}
.lpr{margin-top:0}
.lpr__list{grid-template-columns:1fr}
.lp-two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px;align-items:start}
.lpo{padding-top:64px}
.lpq{padding-top:64px}
}
@media(prefers-reduced-motion:reduce){
.lpc__a{transition:none}
.lpc__go b{transition:none}
.lpf__go{transition:none}
.lps__cats a{transition:none}
.lpo__a{transition:none}
.lph__map{transition:none}
.lpc__a:hover{transform:none}
.lp-live[data-state="open"] i{animation:none}
}
.lph__fig--bleed{margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1)}
.lph__fig--bleed figcaption{padding:0 var(--gutter)}
.lpi__strip--one>figure{flex:1 1 auto}
@media(min-width:960px){
.lph__fig--bleed{margin:0}
.lph__fig--bleed figcaption{padding:0}
.lpi__strip--one{grid-template-columns:minmax(0,1fr)}
.lph__fig--tall{max-width:440px;justify-self:center;width:100%}
}

/* ── wired: legal ── */
:where(body.kolas-wired) .art__band--doc{background:var(--deep)}
:where(body.kolas-wired) .art__band--doc img{object-position:78% 45%}
:where(body.kolas-wired) .art__band--doc::after{background:linear-gradient(90deg,rgba(26,14,50,.92) 0%,rgba(26,14,50,.78) 38%,
  rgba(26,14,50,.25) 72%,rgba(26,14,50,.05) 100%)}
:where(body.kolas-wired) .art__band--doc .art__bandin{min-height:clamp(220px,28vw,320px)}
@media(max-width:719px){
:where(body.kolas-wired) .art__band--doc::after{background:linear-gradient(180deg,rgba(26,14,50,.35) 0%,
  rgba(26,14,50,.80) 55%,rgba(26,14,50,.94) 100%)}
}
:where(body.kolas-wired) .art--doc .art__grid{padding-top:32px}
:where(body.kolas-wired) .doc h2{scroll-margin-top:84px}
:where(body.kolas-wired) .doc h3{scroll-margin-top:84px}
:where(body.kolas-wired) .doc__fig{margin:24px 0}
:where(body.kolas-wired) .doc__fig img{display:block;max-width:100%;height:auto;border-radius:12px;border:1px solid var(--border)}
