/*
Theme Name: Boltaro
Theme URI: https://boltaro.shop/
Author: Boltaro
Description: Bold, playful neo-brutalist bento theme for the Boltaro power-tool shop. Chunky cards, hard shadows, rotated stickers, Rubik + Dela Gothic One (self-hosted, Cyrillic).
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: boltaro
WC requires at least: 9.0
WC tested up to: 11.1
License: GPL-2.0-or-later
*/

/* ==========================================================================
   Fonts (self-hosted, Latin + Cyrillic)
   ========================================================================== */
@font-face {
    font-family: "Rubik";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("assets/fonts/rubik-cyrillic.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: "Rubik";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("assets/fonts/rubik-latin.woff2") format("woff2");
    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: "Dela Gothic One";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("assets/fonts/dela-cyrillic.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: "Dela Gothic One";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("assets/fonts/dela-latin.woff2") format("woff2");
    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;
}

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
    --cream: #FFF6EA;
    --paper: #FFFFFF;
    --navy: #10194A;
    --ink-2: #3D4575;
    --ink-3: #5A6190;
    --orange: #FF5B14;
    --orange-2: #FF8A52;
    --orange-soft: #FFD9C7;
    --lemon: #FFE14D;
    --lemon-soft: #FFF1A6;
    --sky: #7FD1FF;
    --sky-soft: #D5F0FF;
    --error: #B3112E;

    --font: "Rubik", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --font-num: "Dela Gothic One", "Rubik", system-ui, sans-serif;

    --bw: 2.5px;
    --r: 22px;
    --r-lg: 28px;
    --r-sm: 14px;
    --sh: 6px 6px 0 var(--navy);
    --sh-sm: 3px 3px 0 var(--navy);
    --sh-lg: 10px 10px 0 var(--navy);

    --maxw: 1360px;
    --gutter: clamp(16px, 3vw, 32px);
    --header-h: 84px;

    --spring: cubic-bezier(.34, 1.56, .64, 1);
    --ease: cubic-bezier(.22, 1, .36, 1);
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-padding-top: 120px;
    overflow-x: clip;
}
html.bt-lock { overflow: hidden; }
body {
    margin: 0;
    background: var(--cream);
    color: var(--navy);
    font: 400 1rem/1.6 var(--font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow-x: clip;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--navy); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover { text-decoration-color: var(--orange); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font); color: inherit; line-height: 1.1; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
ul, ol { padding-left: 1.2em; }
::selection { background: var(--lemon); color: var(--navy); }
[hidden] { display: none !important; }

:focus { outline: none; }
:focus-visible {
    outline: 3px solid var(--navy);
    outline-offset: 3px;
    border-radius: 6px;
}
.bt-c--navy :focus-visible, .bt-footer :focus-visible, .bt-btn--navy:focus-visible, .bt-toast :focus-visible { outline-color: var(--lemon); }

.screen-reader-text {
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
    white-space: nowrap;
}
.screen-reader-text:focus {
    clip-path: none;
    height: auto;
    width: auto;
    margin: 0;
    padding: 10px 14px;
    z-index: 100000;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 12px;
}

.bt-skip {
    position: fixed;
    left: 16px;
    top: -120px;
    z-index: 10000;
    padding: 12px 18px;
    background: var(--navy);
    color: var(--cream);
    font-weight: 800;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 4px 4px 0 var(--orange);
    transition: top .2s var(--ease);
}
.bt-skip:focus { top: 16px; }

.bt-wrap {
    width: min(var(--maxw), 100% - 2 * var(--gutter));
    margin-inline: auto;
}
.bt-main { display: block; outline: none; }

.bt-i { width: 22px; height: 22px; flex: none; }
.bt-nw { white-space: nowrap; }

/* Heavy display type is tracked tight; open the word gaps back up so words never run together. */
.bt-hero__title, .bt-shead__title, .bt-final__title, .bt-archead__title, .bt-flowhead__title,
.bt-infohead__title, .bt-dcard__lead, .bt-404__title, .bt-empty__title, .bt-thanks__title,
.bt-feature__title, .bt-cattile__name, .bt-single .product_title, .bt-single .related > h2,
.bt-single .upsells > h2, .bt-helpcard__title, .bt-drawer__title, .bt-ctile__name, .bt-final__stripttl, .bt-stk__t strong {
    word-spacing: .1em;
}

/* Struck regular price: one clean diagonal stroke instead of a thick line through small digits. */
.price del, .bt-pricebox__was del, .bt-feature__was del, .bt-stickybar__price del {
    position: relative;
    display: inline-block;
    text-decoration: none;
    color: var(--ink-3);
}
/* On lemon and orange the muted ink would drop below AA: keep navy there. */
.bt-pricebox__was del, .bt-feature__was del { color: var(--navy); }
.bt-feature__was del::after { background: var(--navy); }
.price del::after, .bt-pricebox__was del::after, .bt-feature__was del::after, .bt-stickybar__price del::after {
    content: "";
    position: absolute;
    left: -2px;
    right: -2px;
    top: 52%;
    height: 2px;
    background: var(--orange);
    border-radius: 2px;
    rotate: -8deg;
    pointer-events: none;
}

/* Colour roles for tiles/panels */
.bt-c--sky    { --bg: var(--sky);    --fg: var(--navy); --accent: var(--orange); }
.bt-c--lemon  { --bg: var(--lemon);  --fg: var(--navy); --accent: var(--orange); }
.bt-c--orange { --bg: var(--orange); --fg: var(--navy); --accent: var(--lemon); }
.bt-c--white  { --bg: var(--paper);  --fg: var(--navy); --accent: var(--orange); }
.bt-c--navy   { --bg: var(--navy);   --fg: var(--cream); --accent: var(--lemon); }
.bt-cattile.bt-c--navy, .bt-brandtile.bt-c--navy, .bt-stat.bt-c--navy { box-shadow: 6px 6px 0 var(--orange); }
.bt-cattile.bt-c--navy:hover, .bt-brandtile.bt-c--navy:hover { box-shadow: 10px 10px 0 var(--orange); }

/* ==========================================================================
   Buttons, chips, stickers
   ========================================================================== */
.bt-btn,
.button,
a.button,
button.button,
input.button,
#place_order {
    --btn-bg: var(--orange);
    --btn-fg: var(--navy);
    --btn-sh: var(--navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55em;
    min-height: 52px;
    padding: .8em 1.35em;
    font: 800 1rem/1.1 var(--font);
    letter-spacing: -.005em;
    color: var(--btn-fg);
    background: var(--btn-bg);
    border: var(--bw) solid var(--navy);
    border-radius: 16px;
    box-shadow: 4px 4px 0 var(--btn-sh);
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    transition: transform .2s var(--spring), box-shadow .2s var(--spring), background-color .2s ease;
    -webkit-tap-highlight-color: transparent;
    -webkit-appearance: none;
    appearance: none;
}
.bt-btn:hover,
.button:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--btn-sh);
    color: var(--btn-fg);
    text-decoration: none;
}
.bt-btn:active,
.button:active {
    transform: translate(4px, 4px);
    box-shadow: 0 0 0 var(--btn-sh);
    transition-duration: .06s;
}
.bt-btn .bt-i { width: 20px; height: 20px; transition: transform .3s var(--spring); }
.bt-btn:hover .bt-i { transform: translateX(3px); }
.bt-btn--navy { --btn-bg: var(--navy); --btn-fg: var(--cream); --btn-sh: var(--orange); }
.bt-btn--navy:hover .bt-i { transform: rotate(-12deg) scale(1.1); }
.bt-btn--white { --btn-bg: var(--paper); }
.bt-btn--lemon { --btn-bg: var(--lemon); }
.bt-btn--ghost { --btn-bg: var(--cream); }
.bt-btn--lg { min-height: 62px; padding: .9em 1.6em; font-size: 1.1rem; border-radius: 18px; }
.bt-btn--sm { min-height: 44px; padding: .55em 1em; font-size: .95rem; border-radius: 13px; }
.bt-btn__art { width: 34px; height: 34px; margin: -6px 0 -6px -6px; }
.button:disabled,
.button.disabled,
button.button:disabled[disabled] {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
    box-shadow: 4px 4px 0 var(--navy);
}
.button.loading { opacity: .75; pointer-events: none; }

.bt-iconbtn {
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    color: var(--navy);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 14px;
    box-shadow: var(--sh-sm);
    cursor: pointer;
    transition: transform .2s var(--spring), box-shadow .2s var(--spring), background-color .2s;
    flex: none;
}
.bt-iconbtn:hover { background: var(--lemon); transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--navy); }
.bt-iconbtn:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--navy); }
.bt-iconbtn:disabled { opacity: .35; cursor: default; transform: none; box-shadow: var(--sh-sm); background: var(--paper); }
.bt-iconbtn--round { border-radius: 50%; width: 56px; height: 56px; }

.bt-pill,
.bt-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    padding: 7px 14px 7px 10px;
    font: 800 .8rem/1 var(--font);
    letter-spacing: .12em;
    text-transform: uppercase;
    background: var(--paper);
    color: var(--navy);
    border: 2px solid var(--navy);
    border-radius: 999px;
}
.bt-kicker::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--orange);
    border: 2px solid var(--navy);
}
.bt-hero__main .bt-pill { align-self: flex-start; }
.bt-pill .bt-i { width: 18px; height: 18px; color: var(--orange); stroke: var(--navy); fill: var(--orange); }

.bt-chip {
    --chip-bg: var(--paper);
    --chip-hover: var(--lemon);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 6px 16px 6px 10px;
    font: 700 .95rem/1 var(--font);
    color: var(--navy);
    background: var(--chip-bg);
    border: 2px solid var(--navy);
    border-radius: 999px;
    box-shadow: 2px 2px 0 var(--navy);
    text-decoration: none;
    white-space: nowrap;
    transition: transform .25s var(--spring), box-shadow .25s var(--spring), background-color .2s;
}
.bt-chip:hover { background: var(--chip-hover); transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--navy); text-decoration: none; }
.bt-chip:active { transform: translate(2px, 2px); box-shadow: 0 0 0 var(--navy); }
.bt-chip--sky { --chip-hover: var(--sky); }
.bt-chip--lemon { --chip-hover: var(--lemon); }
.bt-chip--orange { --chip-hover: var(--orange); }
.bt-chip--white { --chip-hover: var(--lemon-soft); }
.bt-chip--navy { --chip-hover: var(--sky); }
.bt-chip__art { width: 30px; height: 30px; margin: -4px 0; transition: transform .35s var(--spring); }
.bt-chip:hover .bt-chip__art { transform: rotate(-10deg) scale(1.1); }
.bt-chip__i { width: 18px; height: 18px; margin-left: 4px; }
.bt-chip__n {
    display: inline-grid;
    place-items: center;
    min-width: 24px;
    height: 22px;
    padding: 0 6px;
    font: 800 .72rem/1 var(--font);
    background: var(--cream);
    border: 1.5px solid var(--navy);
    border-radius: 999px;
}
.bt-chip.is-current { background: var(--navy); color: var(--cream); box-shadow: 2px 2px 0 var(--orange); }
.bt-chip.is-current .bt-chip__art { stroke: var(--cream); }
.bt-chip.is-current .bt-chip__n { background: var(--lemon); color: var(--navy); }
.bt-chip--brand { background: var(--lemon); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .85rem; padding-inline: 16px; }
.bt-chip--lg { min-height: 52px; font-size: 1rem; padding: 8px 18px 8px 12px; }
.bt-chip--lg .bt-chip__art { width: 36px; height: 36px; }

/* Scalloped stickers */
.bt-sticker {
    --st-bg: var(--orange);
    --st-fg: var(--navy);
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 72px;
    aspect-ratio: 1;
    rotate: 12deg;
    flex: none;
    container-type: inline-size;
    filter: drop-shadow(3px 3px 0 var(--navy));
    pointer-events: none;
}
.bt-sticker > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.bt-sticker > svg path { fill: var(--st-bg); stroke: var(--navy); stroke-width: 2.5px; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.bt-sticker__t {
    position: relative;
    display: block;
    color: var(--st-fg);
    font: 400 20px/1 var(--font-num);
    font-size: 25cqi;
    letter-spacing: -.03em;
    text-align: center;
    white-space: nowrap;
}
.bt-sticker__t small {
    display: block;
    font: 800 .5em/1 var(--font);
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: .15em;
}
.bt-sticker__t .bt-i { width: 44cqi; height: 44cqi; }
.bt-sticker--lemon { --st-bg: var(--lemon); }
.bt-sticker--sky { --st-bg: var(--sky); }
.bt-sticker--navy { --st-bg: var(--navy); --st-fg: var(--lemon); }

@keyframes bt-wiggle {
    0%, 100% { rotate: 12deg; }
    20% { rotate: -8deg; scale: 1.08; }
    45% { rotate: 20deg; }
    70% { rotate: 6deg; }
}
@keyframes bt-pop {
    0% { scale: 1; }
    40% { scale: 1.35; }
    100% { scale: 1; }
}
@keyframes bt-spin { to { rotate: 360deg; } }
/* Relative wiggle (transform), composes with any base "rotate" of the element. */
@keyframes bt-jiggle {
    0%, 100% { transform: none; }
    20% { transform: rotate(-14deg) scale(1.06); }
    45% { transform: rotate(9deg) scale(1.03); }
    70% { transform: rotate(-4deg); }
}

/* Highlight "tape" inside headings */
.bt-hl {
    display: inline-block;
    padding: 0 .14em .04em;
    background: var(--orange);
    border: 3px solid var(--navy);
    border-radius: .16em;
    box-shadow: 5px 5px 0 var(--navy);
    rotate: -2deg;
    line-height: 1.05;
}
.bt-hl--sky { background: var(--sky); rotate: 1.5deg; }
.bt-hl--lemon { background: var(--lemon); }

/* Hand-drawn marks: scribble underline, loose loop, strike-through. They draw in when JS is on. */
.bt-mark { position: relative; display: inline-block; white-space: nowrap; isolation: isolate; }
.bt-mark svg { position: absolute; z-index: -1; overflow: visible; pointer-events: none; }
.bt-mark path { fill: none; stroke: var(--orange); stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.bt-mark--under svg { left: -3%; width: 106%; bottom: -.2em; height: .34em; }
.bt-mark--under path { stroke-width: 7px; }
.bt-mark--circle { padding-inline: .04em; margin-left: .08em; }
.bt-mark--circle svg { left: -8%; top: -20%; width: 116%; height: 142%; }
.bt-mark--circle path { stroke-width: 5px; }
.bt-draw .bt-mark path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.1s var(--ease) .15s; }
.bt-draw .bt-mark.is-in path { stroke-dashoffset: 0; }
.bt-mark--strike { color: var(--ink-3); }
.bt-mark--strike s { position: relative; text-decoration: none; }
.bt-mark--strike s::after {
    content: "";
    position: absolute;
    left: -4%;
    right: -4%;
    top: 50%;
    height: .13em;
    background: var(--orange);
    border: 2px solid var(--navy);
    border-radius: 99px;
    rotate: -6deg;
}
.bt-shead__sticker { width: .95em; vertical-align: .08em; margin-left: .12em; rotate: -10deg; }
.bt-shead__sticker .bt-star { width: 46cqi; height: 46cqi; color: var(--orange); }
.bt-shead:hover .bt-shead__sticker { animation: bt-wiggle .7s var(--ease); }

/* ==========================================================================
   Header
   ========================================================================== */
.bt-header {
    position: sticky;
    top: 0;
    z-index: 80;
    padding: 12px var(--gutter) 0;
    pointer-events: none;
}
.admin-bar .bt-header { top: var(--wp-admin--admin-bar--height, 32px); }
.bt-header__bar {
    pointer-events: auto;
    width: min(var(--maxw), 100%);
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: var(--header-h);
    padding: 10px 12px 10px 18px;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 26px;
    box-shadow: var(--sh);
    transition: box-shadow .3s var(--ease), min-height .3s var(--ease);
}
.bt-header.is-scrolled .bt-header__bar { box-shadow: 4px 4px 0 var(--navy); min-height: 72px; }

.bt-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--navy);
    text-decoration: none;
    flex: none;
    border-radius: 14px;
}
.bt-logo__mark { width: 46px; height: 46px; transition: transform .6s var(--spring); }
.bt-logo:hover .bt-logo__mark { transform: rotate(60deg) scale(1.06); }
.bt-logo__word { font: 900 1.85rem/1 var(--font); letter-spacing: -.05em; }
.bt-logo:hover { text-decoration: none; }

.bt-search {
    position: relative;
    display: flex;
    align-items: center;
    gap: 4px;
    height: 58px;
    padding: 0 6px 0 18px;
    background: var(--cream);
    border: var(--bw) solid var(--navy);
    border-radius: 999px;
    transition: box-shadow .25s var(--ease), background-color .2s;
}
.bt-search:focus-within { background: var(--paper); box-shadow: 4px 4px 0 var(--orange); }
.bt-search__lead { width: 22px; height: 22px; color: var(--ink-2); }
.bt-search__input {
    flex: 1;
    min-width: 0;
    height: 100%;
    padding: 0 10px;
    font: 500 1.02rem/1 var(--font);
    color: var(--navy);
    background: transparent;
    border: 0;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}
.bt-search__input::placeholder { color: var(--ink-3); opacity: 1; }
.bt-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.bt-search__btn {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: none;
    padding: 0;
    color: var(--navy);
    background: var(--orange);
    border: var(--bw) solid var(--navy);
    border-radius: 50%;
    transition: transform .3s var(--spring), background-color .2s;
}
.bt-search__btn:hover { transform: rotate(-12deg) scale(1.08); background: var(--lemon); }
.bt-search__btn:active { transform: scale(.92); }
.bt-search--header { flex: 1 1 auto; max-width: 620px; margin-inline: auto; }
.bt-search--mobile { display: none; }
.bt-search--big { height: 66px; max-width: 620px; margin: 0 auto 24px; background: var(--paper); box-shadow: var(--sh-sm); }

.bt-header__nav { display: flex; gap: 4px; flex: none; }
.bt-hlink {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 50px;
    padding: 0 14px;
    font-weight: 700;
    color: var(--navy);
    text-decoration: none;
    border: 2px solid transparent;
    border-radius: 14px;
    transition: background-color .2s, border-color .2s, transform .25s var(--spring);
}
.bt-hlink:hover, .bt-hlink.is-current { background: var(--cream); border-color: var(--navy); text-decoration: none; }
.bt-hlink .bt-i { width: 20px; height: 20px; }

.bt-cartbtn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 58px;
    padding: 0 20px 0 16px;
    flex: none;
    font-weight: 800;
    color: var(--navy);
    background: var(--lemon);
    border: var(--bw) solid var(--navy);
    border-radius: 18px;
    box-shadow: var(--sh-sm);
    text-decoration: none;
    transition: transform .2s var(--spring), box-shadow .2s var(--spring), background-color .2s;
}
.bt-cartbtn:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--navy); text-decoration: none; background: var(--sky); }
.bt-cartbtn:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--navy); }
.bt-cartbtn .bt-i { width: 24px; height: 24px; }
.bt-cartbtn__count {
    position: absolute;
    top: -13px;
    right: -13px;
    display: grid;
    place-items: center;
    min-width: 32px;
    height: 32px;
    padding: 0 7px;
    font: 400 .9rem/1 var(--font-num);
    color: var(--navy);
    background: var(--orange);
    border: var(--bw) solid var(--navy);
    border-radius: 999px;
    rotate: 10deg;
}
.bt-cartbtn__count[data-count="0"] { display: none; }
.bt-cartbtn.is-bump .bt-cartbtn__count { animation: bt-pop .55s var(--spring); }
.bt-cartbtn.is-bump .bt-i { animation: bt-wiggle .6s var(--ease); }

.bt-burger, .bt-searchtoggle { display: none; }

.bt-subhead {
    width: min(var(--maxw), 100% - 2 * var(--gutter));
    margin: 14px auto 0;
}
.bt-catnav__list {
    display: flex;
    gap: 10px;
    margin: 0;
    padding: 4px 6px 12px 2px;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
}
.bt-catnav__list::-webkit-scrollbar { display: none; }
.bt-catnav__list li { scroll-snap-align: start; flex: none; }

/* Drawer */
.bt-drawer {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(440px, 100vw);
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    padding: 0;
    color: var(--navy);
    background: var(--cream);
    border: 0;
    border-right: 3px solid var(--navy);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.bt-drawer[open] { animation: bt-drawer-in .5s var(--spring); }
.bt-drawer::backdrop { background: rgba(16, 25, 74, .55); }
@keyframes bt-drawer-in { from { transform: translateX(-100%); } }
.bt-drawer__inner { display: flex; flex-direction: column; gap: 16px; padding: 16px 16px 40px; }
.bt-drawer__head { display: flex; align-items: center; justify-content: space-between; }
.bt-drawer__title { margin: 0; font: 900 2rem/1 var(--font); letter-spacing: -.04em; }
.bt-drawer__label { margin: 6px 0 -4px; font: 800 .8rem/1 var(--font); letter-spacing: .12em; text-transform: uppercase; }
.bt-drawer__cats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; }
.bt-drawer__cats li:last-child:nth-child(odd) { grid-column: span 2; }
.bt-drawer__cats li:last-child:nth-child(odd) .bt-cattile__art { height: 84%; max-width: 40%; right: 4%; }
.bt-drawer__links { margin: 0; padding: 6px; list-style: none; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 20px; }
.bt-drawer__links a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 12px; font-weight: 700; text-decoration: none; border-radius: 12px; }
.bt-drawer__links a:hover { background: var(--lemon); }
.bt-drawer__links .bt-i { width: 20px; height: 20px; }
.bt-drawer__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; padding: 0; list-style: none; }
.bt-drawer__facts li { display: flex; align-items: center; gap: 8px; padding: 10px; font: 700 .85rem/1.2 var(--font); background: var(--sky-soft); border: 2px solid var(--navy); border-radius: 14px; }
.bt-drawer__facts li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.bt-search--drawer { background: var(--paper); }

/* ==========================================================================
   Section heads
   ========================================================================== */
.bt-section { padding-block: clamp(56px, 7vw, 96px) 0; }
.bt-tapes + .bt-section { padding-top: clamp(36px, 5vw, 64px); }
.bt-shead {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px 32px;
    flex-wrap: wrap;
    margin-bottom: clamp(26px, 4vw, 46px);
}
.bt-shead__title {
    margin: 0;
    font: 900 clamp(2.3rem, 5.4vw, 4.6rem)/.98 var(--font);
    letter-spacing: -.045em;
    text-wrap: balance;
}
.bt-shead__link { flex: none; }
.bt-shead--center { justify-content: center; text-align: center; }
.bt-shead--center .bt-shead__title { font-size: clamp(2.5rem, 6.4vw, 5.6rem); }

/* ==========================================================================
   Hero
   ========================================================================== */
.bt-hero { padding-top: clamp(10px, 2vw, 22px); }
.bt-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    grid-template-areas: "main collage" "stats stats";
    gap: 22px;
}
.bt-panel {
    position: relative;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
.bt-hero__main {
    grid-area: main;
    padding: clamp(24px, 3.3vw, 46px);
    background-color: var(--lemon);
    background-image: radial-gradient(rgba(16, 25, 74, .14) 1.3px, transparent 1.6px);
    background-size: 20px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.bt-hero__title {
    margin: 0 0 clamp(18px, 2.2vw, 26px);
    font: 900 clamp(2.5rem, 5vw, 4.75rem)/.9 var(--font);
    letter-spacing: -.05em;
}
.bt-hero__line { display: block; }
.bt-hero__line--tape > span {
    display: inline-block;
    margin: .1em 0 .12em -.04em;
    padding: .02em .16em .08em;
    color: var(--cream);
    background: var(--navy);
    border: 3px solid var(--navy);
    border-radius: .16em;
    box-shadow: 7px 7px 0 var(--orange);
    rotate: -3deg;
}
.bt-hero__lead {
    max-width: 50ch;
    margin: 0 0 clamp(20px, 3vw, 30px);
    font-size: clamp(1.02rem, 1.3vw, 1.18rem);
    font-weight: 500;
    line-height: 1.55;
}
.bt-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }

.bt-hero__collage {
    grid-area: collage;
    position: relative;
    min-height: 520px;
    background-color: var(--sky);
    background-image:
        linear-gradient(rgba(16, 25, 74, .12) 2px, transparent 2px),
        linear-gradient(90deg, rgba(16, 25, 74, .12) 2px, transparent 2px);
    background-size: 44px 44px;
    background-position: -2px -2px;
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
    overflow: hidden;
}
.bt-polaroid {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px 10px 12px;
    color: var(--navy);
    text-decoration: none;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 20px;
    box-shadow: var(--sh);
    transition: transform .5s var(--spring), box-shadow .5s var(--spring);
}
.bt-polaroid:hover { text-decoration: none; box-shadow: var(--sh-lg); z-index: 5; }
.bt-polaroid__img { display: block; aspect-ratio: 1; overflow: hidden; border: 2px solid var(--navy); border-radius: 13px; background: var(--sky-soft); }
.bt-polaroid__img img { width: 100%; height: 100%; object-fit: cover; }
.bt-polaroid__cap { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 4px; }
.bt-polaroid__meta { display: grid; gap: 4px; min-width: 0; }
.bt-polaroid__brand { font: 800 .72rem/1 var(--font); letter-spacing: .1em; text-transform: uppercase; }
.bt-polaroid__cat { overflow: hidden; font: 600 .86rem/1.1 var(--font); color: var(--ink-2); white-space: nowrap; text-overflow: ellipsis; }
.bt-polaroid__price { flex: none; padding: 5px 9px; font: 400 .9rem/1 var(--font-num); background: var(--lemon); border: 2px solid var(--navy); border-radius: 10px; }
.bt-polaroid__sticker { position: absolute; top: -16px; right: -16px; width: 74px; }
.bt-polaroid:hover .bt-polaroid__sticker { animation: bt-wiggle .7s var(--ease); }
.bt-hero__collage .bt-polaroid { position: absolute; width: 41%; }
.bt-hero__collage .bt-polaroid--1 { left: 5%; top: 5%; transform: rotate(-7deg); z-index: 2; }
.bt-hero__collage .bt-polaroid--2 { right: 5%; top: 18%; transform: rotate(6deg); z-index: 4; }
.bt-hero__collage .bt-polaroid--3 { left: 21%; top: 53%; transform: rotate(-2deg); z-index: 3; }
.bt-hero__collage .bt-polaroid--1:hover { transform: rotate(-4deg) translateY(-8px) scale(1.03); }
.bt-hero__collage .bt-polaroid--2:hover { transform: rotate(3deg) translateY(-8px) scale(1.03); }
.bt-hero__collage .bt-polaroid--3:hover { transform: rotate(0deg) translateY(-8px) scale(1.03); }
.bt-hero__strip { display: none; }
.bt-hero__burst { position: absolute; right: 7%; bottom: 6%; width: 140px; rotate: -10deg; z-index: 6; }
.bt-hero__burst .bt-sticker__t { font-size: 21cqi; }
.bt-hero__cod {
    position: absolute;
    left: 2.5%;
    top: 60%;
    z-index: 5;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2px;
    width: 116px;
    height: 116px;
    padding: 10px;
    text-align: center;
    font: 800 .8rem/1.15 var(--font);
    text-transform: uppercase;
    letter-spacing: .04em;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 50%;
    box-shadow: var(--sh-sm);
    rotate: -12deg;
}
.bt-hero__cod .bt-i { width: 30px; height: 30px; color: var(--orange); stroke: var(--navy); }

.bt-hero__stats {
    grid-area: stats;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.bt-stat {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 22px;
    color: var(--fg);
    background: var(--bg);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r);
    box-shadow: var(--sh);
}
.bt-stat__num { flex: none; font: 400 clamp(2.2rem, 3.4vw, 3rem)/1 var(--font-num); letter-spacing: -.04em; }
.bt-c--navy .bt-stat__num { color: var(--lemon); }
.bt-stat__txt { font: 600 .95rem/1.3 var(--font); }
.bt-stat__txt strong { font-weight: 800; }
/* Inspection before payment: the one stat without a number gets its icon on a round badge instead. */
.bt-stat__num--icon { display: grid; place-items: center; width: 60px; height: 60px; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 50%; box-shadow: var(--sh-sm); rotate: -8deg; }
.bt-stat__num--icon .bt-i { width: 32px; height: 32px; }

/* ==========================================================================
   Marquee tapes
   ========================================================================== */
.bt-tapes {
    position: relative;
    height: clamp(150px, 14vw, 180px);
    margin-top: clamp(20px, 3vw, 36px);
    overflow: hidden;
}
.bt-tape {
    position: absolute;
    left: -4%;
    right: -4%;
    top: 50%;
    border-block: 3px solid var(--navy);
    overflow: hidden;
}
.bt-tape--a { z-index: 2; color: var(--cream); background: var(--navy); transform: translateY(-50%) rotate(-2.6deg); }
.bt-tape--b { z-index: 1; color: var(--navy); background: var(--orange); transform: translateY(-50%) rotate(2.4deg); }
.bt-tape__track { display: flex; width: max-content; animation: bt-marquee 46s linear infinite; }
.bt-tape--b .bt-tape__track { animation-duration: 58s; animation-direction: reverse; }
.bt-tape__group { display: flex; margin: 0; padding: 0; list-style: none; }
.bt-tape__group li {
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 16px 26px 16px 0;
    font: 800 clamp(1.05rem, 1.9vw, 1.55rem)/1 var(--font);
    letter-spacing: .01em;
    text-transform: uppercase;
    white-space: nowrap;
}
.bt-star { width: 24px; height: 24px; flex: none; }
.bt-tape--a .bt-star { color: var(--lemon); }
.bt-tape--b .bt-star { color: var(--navy); }
@keyframes bt-marquee { to { transform: translateX(-50%); } }

/* ==========================================================================
   Category tiles (bento)
   ========================================================================== */
.bt-catgrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: minmax(210px, auto);
    gap: 22px;
}
.bt-catgrid > :first-child { grid-column: span 2; grid-row: span 2; }
.bt-catgrid > :nth-child(6), .bt-catgrid > :nth-child(7) { grid-column: span 2; }

.bt-cattile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    min-height: 210px;
    padding: 24px 26px;
    color: var(--fg);
    background: var(--bg);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r);
    box-shadow: var(--sh);
    text-decoration: none;
    overflow: hidden;
    isolation: isolate;
    transition: transform .45s var(--spring), box-shadow .45s var(--spring);
}
.bt-cattile:hover { transform: translate(-4px, -4px) rotate(-.5deg); box-shadow: var(--sh-lg); text-decoration: none; color: var(--fg); }
.bt-cattile:active { transform: translate(3px, 3px); box-shadow: 2px 2px 0 var(--navy); }
.bt-cattile__name {
    position: relative;
    z-index: 2;
    max-width: 100%;
    font: 900 clamp(1.45rem, 2.1vw, 2rem)/1 var(--font);
    letter-spacing: -.04em;
    text-wrap: balance;
}
.bt-cattile__count {
    position: relative;
    z-index: 2;
    padding: 5px 11px;
    font: 700 .82rem/1 var(--font);
    color: var(--navy);
    background: var(--paper);
    border: 2px solid var(--navy);
    border-radius: 999px;
}
/* The art is sized from the tile's height and anchored bottom-right, so it can never climb into the title. */
.bt-cattile__art {
    position: absolute;
    right: -5%;
    bottom: -7%;
    z-index: 1;
    height: 68%;
    aspect-ratio: 1;
    max-width: 60%;
    rotate: -8deg;
    transform-origin: 70% 70%;
    transition: rotate .6s var(--spring), scale .6s var(--spring);
}
.bt-cattile__art svg { width: 100%; height: 100%; }
.bt-c--navy .bt-cattile__art svg { stroke: var(--cream); }
.bt-cattile:hover .bt-cattile__art { rotate: 4deg; scale: 1.08; }
.bt-cattile__go {
    position: absolute;
    left: 24px;
    bottom: 22px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    color: var(--navy);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 50%;
    transition: rotate .45s var(--spring), background-color .2s;
}
.bt-cattile:hover .bt-cattile__go { rotate: 45deg; background: var(--lemon); }
.bt-catgrid > :first-child { padding: 34px 36px; }
.bt-catgrid > :first-child .bt-cattile__go { left: 36px; bottom: 32px; width: 58px; height: 58px; }
.bt-catgrid > :first-child .bt-cattile__name { font-size: clamp(2.2rem, 4.4vw, 4rem); }
.bt-catgrid > :first-child .bt-cattile__art { height: 70%; max-width: 62%; right: 2%; bottom: -4%; rotate: -10deg; }
/* Wide tiles have room on the right: bigger art, still clear of the title. */
.bt-catgrid > :nth-child(6) .bt-cattile__art, .bt-catgrid > :nth-child(7) .bt-cattile__art { height: 104%; max-width: 44%; right: 4%; bottom: -14%; }

.bt-cattile--mini { min-height: 118px; padding: 14px; gap: 6px; box-shadow: var(--sh-sm); border-radius: 18px; }
.bt-cattile--mini .bt-cattile__name { font-size: 1.1rem; max-width: 100%; }
.bt-cattile--mini .bt-cattile__count { font-size: .7rem; padding: 3px 8px; }
.bt-cattile--mini .bt-cattile__art { height: 62%; max-width: 58%; right: -6%; bottom: -10%; }
.bt-cattile--mini .bt-cattile__go { display: none; }

/* ==========================================================================
   Product grid + cards
   ========================================================================== */
ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 28px);
    margin: 0;
    padding: 0;
    list-style: none;
}
ul.products li.product {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r);
    box-shadow: var(--sh);
    transition: transform .45s var(--spring), box-shadow .45s var(--spring);
}
ul.products li.product:hover { transform: translate(-3px, -5px) rotate(-.7deg); box-shadow: 9px 11px 0 var(--navy); }
ul.products li.product:nth-child(even):hover { transform: translate(-3px, -5px) rotate(.7deg); }
.bt-card__media {
    position: relative;
    margin: 10px 10px 0;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--sky-soft);
    border: 2px solid var(--navy);
    border-radius: 15px;
}
.bt-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
ul.products li.product:hover .bt-card__img { transform: scale(1.06); }
.bt-card__sticker { position: absolute; top: -16px; right: -14px; z-index: 3; width: 72px; }
ul.products li.product:hover .bt-card__sticker { animation: bt-wiggle .7s var(--ease); }
.bt-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; flex: 1; padding: 14px 16px 16px; }
.bt-card__brand {
    display: inline-block;
    padding: 5px 10px 4px;
    font: 800 .7rem/1 var(--font);
    letter-spacing: .1em;
    text-transform: uppercase;
    background: var(--lemon);
    border: 2px solid var(--navy);
    border-radius: 999px;
}
.bt-card__title {
    margin: 0;
    font: 700 1.04rem/1.28 var(--font);
    letter-spacing: -.01em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-wrap: pretty;
    overflow-wrap: break-word;
}
.bt-card__link { color: inherit; text-decoration: none; }
.bt-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--r); }
.bt-card__link:hover { text-decoration: none; }
.bt-card__link:focus-visible { outline: none; }
.bt-card__link:focus-visible::after { outline: 3px solid var(--navy); outline-offset: 4px; }
.bt-card__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; width: 100%; margin-top: auto; padding-top: 4px; }

.price { margin: 0; color: var(--navy); }
.price del { font-weight: 600; }
.price ins { text-decoration: none; }
.bt-card__foot .price { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; line-height: 1; }
.bt-card__foot .price del { font-size: .9rem; }
.bt-card__foot .price ins, .bt-card__foot .price > .amount { font: 400 1.38rem/1 var(--font-num); letter-spacing: -.03em; }
.woocommerce-Price-currencySymbol { font-size: .8em; }

.bt-atc {
    position: relative;
    z-index: 2;
    display: grid !important;
    place-items: center;
    width: 52px !important;
    height: 52px;
    min-height: 0 !important;
    padding: 0 !important;
    flex: none;
    border-radius: 50% !important;
    box-shadow: var(--sh-sm) !important;
}
.bt-atc:hover { background: var(--lemon) !important; transform: translate(-2px, -2px) rotate(-10deg) !important; box-shadow: 5px 5px 0 var(--navy) !important; }
.bt-atc:active { transform: translate(3px, 3px) !important; box-shadow: 0 0 0 var(--navy) !important; }
.bt-atc .bt-i { width: 24px; height: 24px; transition: none; }
.bt-atc:hover .bt-i { transform: none; }
.bt-atc__t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.bt-atc__ok { display: none; }
.bt-atc.loading .bt-atc__i { animation: bt-spin .8s linear infinite; }
.bt-atc.added { background: var(--sky) !important; }
.bt-atc.added .bt-atc__i { display: none; }
.bt-atc.added .bt-atc__ok { display: block; }
ul.products .added_to_cart { display: none; }

/* Mixed-size archive grid (bt_mix_plan): 2×2 features with an oversized sticker, 2×1 wide cards. */
ul.products.bt-grid--mix { grid-auto-flow: row dense; }
ul.products.bt-grid--mix li.bt-card--feature { grid-column: span 2; grid-row: span 2; background: var(--feat-bg, var(--orange)); }
ul.products li.bt-card--orange { --feat-bg: var(--orange); }
ul.products li.bt-card--sky { --feat-bg: var(--sky); }
ul.products li.bt-card--lemon { --feat-bg: var(--lemon); }
.bt-card--feature .bt-card__media { flex: 1 1 auto; aspect-ratio: auto; min-height: 320px; margin: 16px 16px 0; border-width: var(--bw); border-radius: 20px; }
.bt-card--feature .bt-card__img, .bt-card--wide .bt-card__img { position: absolute; inset: 0; }
.bt-card--feature .bt-card__sticker { width: clamp(124px, 12vw, 172px); top: -30px; right: -24px; rotate: 10deg; }
.bt-card--feature .bt-card__sticker .bt-sticker__t { font-size: 25cqi; }
.bt-card--feature .bt-card__sticker .bt-sticker__t small { font-size: .3em; letter-spacing: .1em; }
.bt-card--feature .bt-card__body { flex: none; gap: 12px; padding: 20px 24px 24px; }
.bt-card--feature .bt-card__brand { font-size: .78rem; background: var(--paper); }
.bt-card--feature .bt-card__title { font: 900 clamp(1.35rem, 2vw, 1.95rem)/1.08 var(--font); letter-spacing: -.03em; word-spacing: .06em; }
.bt-card__save { display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 6px 12px 6px 9px; font: 800 .88rem/1 var(--font); color: var(--cream); background: var(--navy); border-radius: 999px; }
.bt-card__save .bt-i { width: 16px; height: 16px; color: var(--lemon); }
.bt-card--feature .bt-card__foot { flex-wrap: wrap; align-items: center; row-gap: 14px; padding-top: 6px; }
.bt-card--feature .bt-card__foot .price ins, .bt-card--feature .bt-card__foot .price > .amount { font-size: clamp(2rem, 3vw, 2.8rem); letter-spacing: -.045em; }
.bt-card--feature .bt-card__foot .price del { font-size: 1rem; color: var(--navy); }
.bt-card--feature .bt-card__foot .price del::after { background: var(--navy); }
.bt-card--feature .bt-atc { --btn-bg: var(--navy); --btn-fg: var(--cream); display: inline-flex !important; gap: 10px; width: auto !important; height: 58px; padding: 0 22px 0 18px !important; border-radius: 18px !important; font-size: 1rem; }
.bt-card--feature .bt-atc:hover { --btn-fg: var(--navy); transform: translate(-2px, -2px) !important; }
.bt-card--feature .bt-atc__t { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
.bt-card--feature .bt-card__link:focus-visible::after { outline-offset: 6px; }

ul.products.bt-grid--mix li.bt-card--wide { grid-column: span 2; flex-direction: row; }
.bt-card--wide .bt-card__media { flex: 0 0 44%; aspect-ratio: auto; min-height: 240px; margin: 10px 0 10px 10px; }
.bt-card--wide .bt-card__body { justify-content: center; padding: 20px 20px 18px; }
.bt-card--wide .bt-card__title { font-size: 1.2rem; font-weight: 800; letter-spacing: -.02em; }
.bt-card--wide .bt-card__foot { margin-top: 10px; }
@media (max-width: 1100px) and (min-width: 901px) {
    ul.products.bt-grid--mix { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    ul.products.bt-grid--mix { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-card--feature .bt-card__media { flex: none; aspect-ratio: 5 / 4; min-height: 0; margin: 12px 12px 0; }
    .bt-card--wide .bt-card__media { flex-basis: 40%; min-height: 170px; margin: 8px 0 8px 8px; }
}
/* ==========================================================================
   Home: picks (feature card)
   ========================================================================== */
.bt-picks__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(16px, 2vw, 28px); align-items: stretch; }
ul.products.bt-grid--picks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bt-feature {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--orange);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
    transition: transform .45s var(--spring), box-shadow .45s var(--spring);
}
.bt-feature:hover { transform: translate(-3px, -4px); box-shadow: var(--sh-lg); }
.bt-feature__media { position: relative; display: block; flex: 1 1 auto; min-height: 300px; margin: 14px 14px 0; overflow: hidden; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 20px; }
.bt-feature__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.bt-feature:hover .bt-feature__media img { transform: scale(1.05); }
.bt-feature__sticker { position: absolute; top: -22px; right: -18px; width: 118px; z-index: 3; }
.bt-feature:hover .bt-feature__sticker { animation: bt-wiggle .7s var(--ease); }
.bt-feature__body { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; flex: none; padding: 22px 26px 26px; }
.bt-feature__body .bt-card__brand { background: var(--paper); }
.bt-feature__title { margin: 0; font: 900 clamp(1.5rem, 2.4vw, 2.2rem)/1.02 var(--font); letter-spacing: -.035em; text-wrap: balance; }
.bt-feature__title a { color: inherit; text-decoration: none; }
.bt-feature__title a:hover { text-decoration: underline; text-decoration-thickness: 3px; }
.bt-feature__price { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-top: 4px; }
.bt-feature__now { font: 400 clamp(2rem, 3vw, 2.6rem)/1 var(--font-num); letter-spacing: -.04em; }
.bt-feature__was { font-weight: 600; }
.bt-feature__was del { font-weight: 700; }
.bt-feature__save { padding: 6px 12px; font: 800 .88rem/1 var(--font); color: var(--cream); background: var(--navy); border-radius: 999px; }
.bt-feature__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.bt-feature__cta .bt-btn:first-child { --btn-bg: var(--paper); }

/* ==========================================================================
   Home: deals band, first after the hero. Navy, slanted edges, one mega sticker.
   ========================================================================== */
.bt-deals {
    --slant: clamp(18px, 3vw, 46px);
    position: relative;
    margin-top: clamp(40px, 5vw, 70px);
    padding: calc(var(--slant) + clamp(30px, 4vw, 54px)) 0 calc(var(--slant) + clamp(30px, 4vw, 50px));
    color: var(--cream);
    background-color: var(--navy);
    background-image: radial-gradient(rgba(255, 246, 234, .1) 1.4px, transparent 1.8px);
    background-size: 22px 22px;
    clip-path: polygon(0 var(--slant), 100% 0, 100% calc(100% - var(--slant)), 0 100%);
}
.bt-deals :focus-visible { outline-color: var(--lemon); }
.bt-deals .bt-card__link:focus-visible::after { outline-color: var(--lemon); }
.bt-deals__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px clamp(22px, 3.4vw, 52px); }
.bt-deals__mega {
    width: clamp(150px, 17vw, 236px);
    rotate: -10deg;
    filter: drop-shadow(7px 7px 0 var(--lemon));
    pointer-events: auto;
}
.bt-deals__mega .bt-sticker__t { font-size: 24cqi; }
.bt-deals__mega .bt-sticker__t small { font-size: .42em; margin-bottom: .2em; }
.bt-deals__head:hover .bt-deals__mega, .bt-deals__mega:hover { animation: bt-jiggle .8s var(--ease); }
.bt-deals .bt-shead__title { max-width: 12ch; color: var(--cream); }
.bt-deals .bt-mark--strike { color: rgba(255, 246, 234, .6); }
.bt-deals__word { color: var(--lemon); }
.bt-deals__sub { margin: 14px 0 0; max-width: 46ch; font-weight: 500; color: rgba(255, 246, 234, .86); }
.bt-rail__nav { display: flex; gap: 12px; }
.bt-deals .bt-iconbtn { box-shadow: 3px 3px 0 var(--lemon); }
.bt-deals .bt-iconbtn:hover { box-shadow: 5px 5px 0 var(--lemon); }
.bt-deals .bt-iconbtn:active { box-shadow: 0 0 0 var(--lemon); }
.bt-deals .bt-iconbtn:disabled { opacity: .45; box-shadow: 3px 3px 0 var(--lemon); }
.bt-rail {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 34px 0 30px;
    scroll-padding-inline: max(var(--gutter), (100% - var(--maxw)) / 2);
}
.bt-rail::-webkit-scrollbar { display: none; }
.bt-rail:focus-visible { outline-offset: -3px; border-radius: 0; }
ul.products.bt-rail__list {
    display: flex;
    gap: clamp(16px, 2vw, 26px);
    width: max-content;
    padding-inline: max(var(--gutter), (100vw - var(--maxw)) / 2);
}
.bt-rail__list li.product { width: clamp(236px, 22vw, 300px); flex: none; scroll-snap-align: start; }
.bt-deals ul.products li.product { box-shadow: 6px 6px 0 var(--lemon); }
.bt-deals ul.products li.product:hover { box-shadow: 9px 11px 0 var(--lemon); }
.bt-deals ul.products li.product:has(.bt-card__link:focus-visible) { box-shadow: 9px 11px 0 var(--orange); }
.bt-deals .bt-rail { color: var(--navy); }
.bt-deals__foot { display: flex; justify-content: center; }
.bt-deals__foot .bt-btn { --btn-sh: var(--orange); }

/* ==========================================================================
   Home: brands, final CTA with the steps strip
   ========================================================================== */
.bt-brandgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.bt-brandtile {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 170px;
    padding: 22px 26px;
    color: var(--fg);
    background: var(--bg);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r);
    box-shadow: var(--sh);
    text-decoration: none;
    overflow: hidden;
    transition: transform .45s var(--spring), box-shadow .45s var(--spring);
}
.bt-brandtile:hover { transform: translate(-4px, -4px) rotate(.6deg); box-shadow: var(--sh-lg); text-decoration: none; color: var(--fg); }
.bt-brandtile__name { position: relative; z-index: 1; font: 900 clamp(2rem, 3.6vw, 3.3rem)/.95 var(--font); letter-spacing: -.05em; }
.bt-brandtile::before {
    content: attr(data-initial);
    position: absolute;
    right: 8%;
    bottom: -38%;
    font: 400 clamp(8rem, 13vw, 12rem)/1 var(--font-num);
    color: var(--navy);
    opacity: .1;
    transition: rotate .6s var(--spring), translate .6s var(--spring);
    pointer-events: none;
}
.bt-brandtile.bt-c--navy::before { color: var(--lemon); opacity: .16; }
.bt-brandtile:hover::before { rotate: -10deg; translate: -10px -8px; }
.bt-brandtile__count { position: absolute; top: 20px; left: 24px; padding: 5px 11px; font: 700 .8rem/1 var(--font); color: var(--navy); background: var(--paper); border: 2px solid var(--navy); border-radius: 999px; }
.bt-brandtile__go { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 46px; height: 46px; color: var(--navy); background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 50%; transition: rotate .45s var(--spring); }
.bt-brandtile:hover .bt-brandtile__go { rotate: 45deg; }

.bt-final { padding-bottom: clamp(56px, 8vw, 110px); }
.bt-final__panel {
    position: relative;
    padding: clamp(32px, 5.4vw, 76px) clamp(22px, 5.4vw, 76px) clamp(22px, 3vw, 40px);
    background: var(--orange);
    border: var(--bw) solid var(--navy);
    border-radius: 34px;
    box-shadow: var(--sh-lg);
    overflow: hidden;
    isolation: isolate;
}
.bt-final__top { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 26px; }
.bt-final__title { max-width: 14ch; margin: 0; font: 900 clamp(2.4rem, 6vw, 5.4rem)/.92 var(--font); letter-spacing: -.05em; text-wrap: balance; }
.bt-final__art { position: absolute; z-index: 1; width: clamp(110px, 15vw, 210px); height: auto; transition: rotate .8s var(--spring); }
.bt-final__art--1 { right: 25%; top: -3%; rotate: 16deg; }
.bt-final__art--2 { right: 3%; top: 9%; rotate: -12deg; width: clamp(130px, 18vw, 250px); }
.bt-final__art--3 { right: 17%; top: 32%; rotate: 8deg; }
.bt-final__panel:hover .bt-final__art--1 { rotate: 4deg; }
.bt-final__panel:hover .bt-final__art--2 { rotate: -2deg; }
.bt-final__panel:hover .bt-final__art--3 { rotate: 18deg; }

/* The three steps as a strip of stickers on a cream sticker sheet (dashed cut line inside). */
.bt-final__strip {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px 26px;
    margin-top: clamp(34px, 5vw, 64px);
    padding: 22px clamp(18px, 2.4vw, 30px) 26px;
    color: var(--navy);
    background: var(--cream);
    border: var(--bw) solid var(--navy);
    border-radius: 26px;
    box-shadow: var(--sh);
    rotate: -.8deg;
}
.bt-final__strip::before {
    content: "";
    position: absolute;
    inset: 8px;
    border: 2px dashed rgba(16, 25, 74, .28);
    border-radius: 19px;
    pointer-events: none;
}
.bt-final__stripttl { grid-column: 1 / -1; margin: 0 0 4px; font: 900 clamp(1.5rem, 2.4vw, 2.1rem)/1 var(--font); letter-spacing: -.035em; }
.bt-stks {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
    isolation: isolate;
}
.bt-stks::before { content: ""; position: absolute; z-index: -1; left: 30px; right: 30px; top: 50%; border-top: 3px dashed var(--navy); }
.bt-stk {
    --stk-bg: var(--paper);
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 12px 18px 12px 12px;
    color: var(--navy);
    background: var(--stk-bg);
    border: var(--bw) solid var(--navy);
    border-radius: 999px;
    box-shadow: var(--sh-sm);
    rotate: var(--tilt, -1.5deg);
    text-decoration: none;
    transition: translate .35s var(--spring), box-shadow .35s var(--spring);
}
.bt-stks > .bt-stk:nth-child(2) { --tilt: 1.4deg; }
.bt-stks > .bt-stk:nth-child(3) { --tilt: -.8deg; }
.bt-stk--lemon { --stk-bg: var(--lemon); }
.bt-stk--sky { --stk-bg: var(--sky); }
.bt-stk--navy { --stk-bg: var(--navy); color: var(--cream); --tilt: 3deg; box-shadow: 3px 3px 0 var(--orange); }
.bt-stk:hover { translate: -2px -3px; box-shadow: 5px 5px 0 var(--navy); text-decoration: none; }
.bt-stk--navy:hover { box-shadow: 5px 5px 0 var(--orange); color: var(--cream); }
.bt-stk--link:active { translate: 3px 3px; box-shadow: 0 0 0 var(--orange); transition-duration: .06s; }
.bt-stk:hover .bt-stk__n { animation: bt-jiggle .7s var(--ease); }
.bt-stk__n {
    flex: none;
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    font: 400 1.6rem/1 var(--font-num);
    letter-spacing: -.04em;
    color: var(--navy);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 50%;
}
.bt-stk--lemon .bt-stk__n { background: var(--orange); }
.bt-stk--navy .bt-stk__n { background: var(--lemon); }
.bt-stk__t { font: 500 .92rem/1.3 var(--font); }
.bt-stk__t strong { display: block; margin-bottom: 2px; font: 900 1.2rem/1.05 var(--font); letter-spacing: -.02em; }
.bt-stk__more { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; color: var(--lemon); }
.bt-stk__more .bt-i { width: 16px; height: 16px; }
.bt-stk--link:focus-visible { outline-color: var(--navy); }

/* ==========================================================================
   Footer: a navy pegboard with sticker tiles taped on, plus a round stamp
   ========================================================================== */
.bt-footer {
    margin-top: clamp(56px, 8vw, 100px);
    padding: clamp(46px, 5.4vw, 76px) 0 0;
    color: var(--cream);
    background-color: var(--navy);
    /* Pegboard holes, each with a faint lit edge. */
    background-image: radial-gradient(circle, #070B2B 3px, rgba(255, 246, 234, .09) 3.6px, transparent 4.6px);
    background-size: 30px 30px;
    background-position: 15px 15px;
    border-radius: 40px 40px 0 0;
    overflow: hidden;
}
.bt-final + * .bt-footer, .home .bt-footer { margin-top: 0; }
.bt-footer :focus-visible { outline-color: var(--lemon); }

.bt-board {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
        "contact contact contact contact contact shop  shop  shop  shop  info info info"
        "brands  brands  brands  brands  brands  facts facts facts facts info info info";
    gap: 26px 24px;
    align-items: start;
}
.bt-ftile {
    --tile-bg: var(--cream);
    --tile-sh: var(--orange);
    position: relative;
    min-width: 0;
    padding: 26px 24px 24px;
    color: var(--navy);
    background: var(--tile-bg);
    border: var(--bw) solid var(--navy);
    border-radius: 24px;
    box-shadow: 7px 7px 0 var(--tile-sh);
    rotate: var(--tilt, 0deg);
    transition: rotate .5s var(--spring), translate .5s var(--spring);
}
.bt-ftile:hover { rotate: 0deg; translate: 0 -3px; }
/* A strip of tape holds each tile on the board. */
.bt-ftile::before {
    content: "";
    position: absolute;
    top: -13px;
    left: var(--tape-x, 50%);
    width: 76px;
    height: 24px;
    margin-left: -38px;
    background: rgba(255, 225, 77, .9);
    border: 2px solid var(--navy);
    border-radius: 3px;
    rotate: var(--tape-r, -4deg);
    pointer-events: none;
}
.bt-ftile :focus-visible { outline-color: var(--navy); }
.bt-ftile a { color: var(--navy); }
.bt-ftile a:hover { color: var(--navy); text-decoration-color: var(--orange); }
.bt-ftile__title { margin: 0 0 16px; font: 900 1.5rem/1 var(--font); letter-spacing: -.035em; }
.bt-ftile__label { margin: 0 0 8px; font: 800 .74rem/1 var(--font); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); }
.bt-ftile__tag { margin: 16px 0 26px; max-width: 24ch; font: 800 clamp(1.3rem, 1.9vw, 1.7rem)/1.12 var(--font); letter-spacing: -.02em; text-wrap: balance; }

.bt-ftile--contact { grid-area: contact; z-index: 2; --tilt: -1.2deg; --tape-x: 22%; padding: 30px 30px 34px; border-radius: 30px 30px 30px 14px; }
.bt-ftile--contact .bt-logo__mark { width: 58px; height: 58px; }
.bt-ftile--contact .bt-logo__word { font-size: 2.5rem; }
.bt-fmail, .bt-fhours { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-weight: 700; word-break: break-all; }
.bt-fhours { margin: 0; font-weight: 500; word-break: normal; }
.bt-fmail .bt-i, .bt-fhours .bt-i { width: 22px; height: 22px; }
.bt-ftile--contact .bt-fmail { margin-bottom: 14px; font: 800 clamp(1.15rem, 1.7vw, 1.45rem)/1.2 var(--font); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.bt-ftile--contact .bt-fmail .bt-i { width: 38px; height: 38px; padding: 7px; background: var(--lemon); border: 2px solid var(--navy); border-radius: 12px; }

.bt-ftile--shop { grid-area: shop; --tile-bg: var(--sky); --tile-sh: var(--lemon); --tilt: .9deg; --tape-x: 78%; --tape-r: 5deg; border-radius: 16px 28px 28px 28px; }
.bt-fcats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; margin: 0; padding: 0; list-style: none; }
.bt-fcats a { display: flex; align-items: center; gap: 8px; min-height: 40px; font-weight: 700; text-decoration: none; border-radius: 10px; }
.bt-fcats a:hover span { text-decoration: underline; text-decoration-thickness: 2px; }
.bt-fcats__art { width: 32px; height: 32px; flex: none; transition: rotate .4s var(--spring); }
.bt-fcats a:hover .bt-fcats__art { rotate: -12deg; }

.bt-ftile--facts { grid-area: facts; --tile-bg: var(--lemon); --tile-sh: var(--sky); --tilt: -.7deg; --tape-x: 30%; --tape-r: 3deg; }
.bt-ffacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: 0; padding: 0; list-style: none; }
.bt-ffacts li { display: flex; align-items: flex-start; gap: 10px; font-size: .9rem; line-height: 1.35; }
.bt-ffacts .bt-i { width: 36px; height: 36px; padding: 7px; background: var(--paper); border: 2px solid var(--navy); border-radius: 50%; }
.bt-ffacts strong { display: block; font-weight: 800; }
.bt-ffacts li:last-child:nth-child(odd) { grid-column: 1 / -1; }

.bt-ftile--info { grid-area: info; --tile-bg: var(--paper); --tile-sh: var(--orange); --tilt: 1.4deg; --tape-x: 60%; --tape-r: -6deg; border-radius: 28px 28px 12px 28px; }
.bt-flinks { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.bt-flinks a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; padding: 6px 10px; margin-inline: -10px; font-weight: 700; text-decoration: none; border-radius: 12px; transition: background-color .2s; }
.bt-flinks a:hover { background: var(--lemon); }
.bt-flinks .bt-i { width: 18px; height: 18px; flex: none; transition: translate .3s var(--spring); }
.bt-flinks a:hover .bt-i { translate: 2px -2px; }

.bt-ftile--brands { grid-area: brands; --tile-bg: var(--orange); --tile-sh: var(--cream); --tilt: -.4deg; --tape-x: 8%; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; padding: 20px 24px; }
.bt-ftile--brands .bt-ftile__label { margin: 0; color: var(--navy); }
.bt-fbrands { display: flex; flex-wrap: wrap; gap: 10px 12px; margin: 0; padding: 0; list-style: none; }
.bt-fbrands a { display: inline-block; padding: 8px 14px 7px; font: 900 1rem/1 var(--font); letter-spacing: .02em; text-transform: uppercase; text-decoration: none; background: var(--paper); border: 2px solid var(--navy); border-radius: 10px; box-shadow: 2px 2px 0 var(--navy); rotate: calc((var(--i) - 2.5) * 1.3deg); transition: rotate .35s var(--spring), translate .35s var(--spring), box-shadow .35s var(--spring); }
.bt-fbrands a:hover { rotate: 0deg; translate: -1px -2px; box-shadow: 4px 4px 0 var(--navy); background: var(--lemon); }

/* Round rubber stamp over the corner of the contact tile. The ring of text turns slowly. */
.bt-stamp {
    position: absolute;
    right: -46px;
    bottom: -42px;
    z-index: 3;
    width: clamp(128px, 12vw, 158px);
    aspect-ratio: 1;
    rotate: -14deg;
    filter: drop-shadow(4px 4px 0 #070B2B);
    pointer-events: none;
}
.bt-stamp svg { width: 100%; height: 100%; overflow: visible; }
.js .bt-stamp svg { animation: bt-spin 28s linear infinite; }
.bt-stamp__disc { fill: var(--lemon); stroke: var(--navy); stroke-width: 3; }
.bt-stamp__ring { fill: none; stroke: var(--navy); stroke-width: 2; }
.bt-stamp__text { font: 800 12.5px var(--font); fill: var(--navy); letter-spacing: .02em; }
.bt-stamp__mid { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 2px; font: 800 .78rem/1 var(--font); letter-spacing: .08em; text-transform: uppercase; color: var(--navy); }
.bt-stamp__mid .bt-i { width: 34px; height: 34px; }

.bt-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px 24px;
    flex-wrap: wrap;
    margin-top: clamp(34px, 4vw, 52px);
    padding: 18px 0 26px;
    font-size: .9rem;
    border-top: 2px dashed rgba(255, 246, 234, .3);
}
.bt-footer__bottom p { margin: 0; }
.bt-footer__pay { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--lemon); }
.bt-footer__pay .bt-i { width: 20px; height: 20px; }

/* Toast */
.bt-toast {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 90;
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: calc(100vw - 32px);
    padding: 12px 12px 12px 14px;
    color: var(--cream);
    background: var(--navy);
    border: var(--bw) solid var(--navy);
    border-radius: 18px;
    box-shadow: 6px 6px 0 var(--orange);
    transform: translateY(140%) rotate(-3deg);
    opacity: 0;
    transition: transform .5s var(--spring), opacity .3s;
}
.bt-toast.is-on { transform: none; opacity: 1; }
.bt-toast__icon { display: grid; place-items: center; width: 34px; height: 34px; color: var(--navy); background: var(--lemon); border-radius: 50%; }
.bt-toast__icon .bt-i { width: 20px; height: 20px; }
.bt-toast__text { font-weight: 700; }
.bt-toast__link { padding: 8px 12px; font-weight: 800; color: var(--navy) !important; background: var(--orange); border: 2px solid var(--cream); border-radius: 12px; text-decoration: none; white-space: nowrap; }

/* ==========================================================================
   Breadcrumbs, archive head, filters, toolbar, pagination
   ========================================================================== */
.bt-crumbs { margin: 6px 0 18px; }
.bt-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; list-style: none; font-size: .88rem; font-weight: 600; }
.bt-crumbs li { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; }
.bt-crumbs li + li::before { content: ""; display: inline-block; flex: none; width: 7px; height: 7px; border-top: 2px solid var(--navy); border-right: 2px solid var(--navy); rotate: 45deg; margin-right: 4px; opacity: .6; }
.bt-crumbs a { padding: 4px 10px; background: var(--paper); border: 2px solid var(--navy); border-radius: 999px; text-decoration: none; }
.bt-crumbs a:hover { background: var(--lemon); }
.bt-crumbs li:last-child { display: block; min-width: 0; max-width: 42ch; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bt-crumbs li:last-child::before { display: inline-block; vertical-align: 1px; margin-right: 10px; }

.bt-archive { padding-top: 8px; }
.bt-archead {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    margin-bottom: 26px;
    padding: clamp(24px, 3.4vw, 44px) clamp(24px, 4vw, 54px);
    color: var(--fg);
    background: var(--bg);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
    overflow: hidden;
    isolation: isolate;
}
.bt-archead .bt-kicker { background: var(--paper); }
.bt-archead__title { margin: 0; font: 900 clamp(2.6rem, 7vw, 6.2rem)/.9 var(--font); letter-spacing: -.055em; text-wrap: balance; overflow-wrap: anywhere; }
.bt-archead__lead { max-width: 58ch; margin: 16px 0 0; font-size: 1.08rem; font-weight: 500; line-height: 1.5; }
.bt-archead__art { display: block; margin-right: clamp(0px, 9vw, 150px); }
.bt-archead__art svg { width: clamp(110px, 17vw, 240px); height: auto; rotate: -8deg; }
.bt-archead__stack { position: relative; display: block; width: clamp(220px, 28vw, 400px); height: clamp(150px, 16vw, 220px); }
.bt-archead__stack svg { position: absolute; width: 46%; }
.bt-archead__stack svg:nth-child(1) { left: -2%; top: -4%; rotate: -16deg; }
.bt-archead__stack svg:nth-child(2) { left: 27%; top: 26%; rotate: 5deg; z-index: 2; width: 50%; }
.bt-archead__stack svg:nth-child(3) { right: -2%; top: -8%; rotate: 20deg; width: 44%; }
.bt-archead__art .bt-archead__icon { width: clamp(90px, 12vw, 160px); height: auto; padding: 22px; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 50%; box-shadow: var(--sh); rotate: -8deg; }
.bt-c--navy .bt-archead__art svg.bt-caticon { stroke: var(--cream); }
.bt-archead__sticker { position: absolute; top: 18px; right: 18px; width: 112px; rotate: 10deg; z-index: 2; }
.bt-archead__word {
    position: absolute;
    right: -2%;
    bottom: -18%;
    z-index: -1;
    font: 900 clamp(6rem, 20vw, 18rem)/1 var(--font);
    letter-spacing: -.07em;
    color: rgba(16, 25, 74, .12);
    white-space: nowrap;
    pointer-events: none;
}

/* Brands: sticker labels slapped over the bottom edge of the archive header. */
.bt-archead:has(+ .bt-brandtape) { margin-bottom: 0; padding-bottom: clamp(44px, 5vw, 64px); }
.bt-brandtape { position: relative; z-index: 3; margin: -30px 0 clamp(20px, 3vw, 30px); padding-inline: clamp(14px, 3vw, 40px); }
.bt-brandtape__list { display: flex; flex-wrap: wrap; gap: 10px 12px; margin: 0; padding: 0; list-style: none; }
.bt-brandtape__list li { flex: none; }
.bt-btag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 6px 8px 6px 16px;
    font: 900 1rem/1 var(--font);
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--navy);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 14px;
    box-shadow: var(--sh-sm);
    text-decoration: none;
    rotate: calc(sin(var(--i) * 2.1) * 3deg);
    transition: rotate .4s var(--spring), transform .25s var(--spring), box-shadow .25s var(--spring), background-color .2s;
}
.bt-btag:hover { rotate: 0deg; transform: translate(-2px, -3px); box-shadow: 5px 5px 0 var(--navy); background: var(--lemon); text-decoration: none; }
.bt-btag:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--navy); transition-duration: .06s; }
.bt-btag__n { display: grid; place-items: center; min-width: 30px; height: 30px; padding: 0 6px; font: 400 .82rem/1 var(--font-num); letter-spacing: 0; background: var(--lemon); border: 2px solid var(--navy); border-radius: 999px; }
.bt-btag.is-current { color: var(--cream); background: var(--navy); rotate: 0deg; transform: translate(3px, 3px); box-shadow: 0 0 0 var(--navy); }
.bt-btag.is-current .bt-btag__n { background: var(--orange); color: var(--navy); }
.bt-btag.is-current:focus-visible { outline-color: var(--orange); }

/* Categories: a strip of illustrated tiles. The current one is pressed in and turns navy. */
.bt-catstrip { margin: 0 0 clamp(22px, 3vw, 34px); }
.bt-catstrip__list { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 6px 8px 12px 2px; list-style: none; }
.bt-catstrip__list li { min-width: 0; }
.bt-ctile {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 7px;
    height: 100%;
    min-height: 158px;
    padding: 12px 14px 14px;
    color: var(--fg);
    background: var(--bg);
    border: var(--bw) solid var(--navy);
    border-radius: 20px;
    box-shadow: var(--sh);
    text-decoration: none;
    overflow: hidden;
    isolation: isolate;
    transition: transform .4s var(--spring), box-shadow .4s var(--spring);
}
.bt-ctile:hover { transform: translate(-3px, -4px) rotate(-1.2deg); box-shadow: var(--sh-lg); color: var(--fg); text-decoration: none; }
.bt-ctile:active { transform: translate(5px, 5px); box-shadow: 0 0 0 var(--navy); transition-duration: .06s; }
.bt-ctile__art { position: absolute; z-index: -1; top: 6px; right: 4px; width: 64%; aspect-ratio: 1; rotate: -8deg; transition: rotate .55s var(--spring), scale .55s var(--spring); }
.bt-ctile__art svg { width: 100%; height: 100%; }
.bt-ctile:hover .bt-ctile__art { rotate: 7deg; scale: 1.1; }
.bt-ctile__art--stack svg { position: absolute; width: 62%; height: auto; }
.bt-ctile__art--stack svg:nth-child(1) { left: -6%; top: 4%; rotate: -18deg; }
.bt-ctile__art--stack svg:nth-child(2) { left: 26%; top: 30%; rotate: 6deg; z-index: 2; }
.bt-ctile__art--stack svg:nth-child(3) { right: -8%; top: -4%; rotate: 22deg; }
.bt-ctile__name { position: relative; max-width: 100%; font: 900 1.08rem/1.02 var(--font); letter-spacing: -.025em; text-wrap: balance; }
.bt-ctile__n { padding: 3px 8px; font: 700 .72rem/1 var(--font); color: var(--navy); background: var(--paper); border: 2px solid var(--navy); border-radius: 999px; }
.bt-ctile.is-current { --bg: var(--navy); --fg: var(--cream); transform: translate(5px, 5px); box-shadow: 0 0 0 var(--navy); }
.bt-ctile.is-current .bt-caticon { stroke: var(--cream); }
.bt-ctile.is-current .bt-ctile__n { background: var(--lemon); }
.bt-ctile.is-current:focus-visible { outline-color: var(--orange); }
.bt-ctile.is-current::after {
    content: "";
    position: absolute;
    top: 10px;
    left: 10px;
    width: 28px;
    height: 28px;
    background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") no-repeat center / 15px;
    border: 2px solid var(--cream);
    border-radius: 50%;
}
@media (max-width: 1239px) {
    .bt-catstrip { margin-inline: calc(-1 * var(--gutter)); }
    .bt-catstrip__list { display: flex; gap: 12px; padding: 6px var(--gutter) 14px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: var(--gutter); scrollbar-width: none; }
    .bt-catstrip__list::-webkit-scrollbar { display: none; }
    .bt-catstrip__list li { flex: none; width: 148px; scroll-snap-align: start; }
}

/* Count + sort: no panel, just the count as a sticker and a chunky select. */
.bt-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0 0 clamp(26px, 3vw, 36px); }
.bt-toolbar > .woocommerce-notices-wrapper { flex-basis: 100%; }
.bt-toolbar > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-result-count { margin: 0; font: 600 1.02rem/1.4 var(--font); }
.woocommerce-result-count strong { display: inline-block; margin-inline: .15em; padding: 3px 10px 4px; font: 400 .98em/1.1 var(--font-num); letter-spacing: -.02em; background: var(--lemon); border: 2px solid var(--navy); border-radius: 10px; box-shadow: 2px 2px 0 var(--navy); rotate: -2deg; }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select, .bt-select {
    min-height: 48px;
    padding: 0 46px 0 16px;
    font: 700 .95rem/1 var(--font);
    color: var(--navy);
    background: var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 18px;
    border: var(--bw) solid var(--navy);
    border-radius: 14px;
    box-shadow: var(--sh-sm);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.woocommerce-ordering select:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }

.woocommerce-pagination { margin-top: 40px; }
.woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span {
    display: grid;
    place-items: center;
    min-width: 52px;
    height: 52px;
    padding: 0 14px;
    font: 400 1.05rem/1 var(--font-num);
    color: var(--navy);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 16px;
    box-shadow: var(--sh-sm);
    text-decoration: none;
    transition: transform .2s var(--spring), box-shadow .2s var(--spring), background-color .2s;
}
.woocommerce-pagination a.page-numbers:hover { background: var(--lemon); transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--navy); }
.woocommerce-pagination span.current { background: var(--orange); }

.bt-noresults { padding: 36px; text-align: center; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: var(--r-lg); box-shadow: var(--sh); }
.bt-noresults__hint { margin: 20px 0 14px; font-weight: 800; }
.bt-empty__cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0 0 28px; }

/* ==========================================================================
   Notices
   ========================================================================== */
.woocommerce-notices-wrapper:empty { display: none; }
[role="alert"]:focus, .woocommerce-notices-wrapper :focus { outline: none; }
.woocommerce-cart .woocommerce-message .wc-forward { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin: 0 0 20px;
    padding: 16px 18px 16px 58px;
    list-style: none;
    font-weight: 600;
    color: var(--navy);
    background: var(--lemon-soft);
    border: var(--bw) solid var(--navy);
    border-radius: 18px;
    box-shadow: var(--sh-sm);
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    width: 30px;
    height: 30px;
    margin-top: -15px;
    border: 2px solid var(--navy);
    border-radius: 50%;
    background: var(--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") no-repeat center / 16px;
}
.woocommerce-info::before { background-color: var(--paper); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7v.1'/%3E%3C/svg%3E"); }
.woocommerce-error { background: #FFE3E0; border-color: var(--error); box-shadow: 3px 3px 0 var(--error); }
.woocommerce-error::before { background-color: var(--paper); border-color: var(--error); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B3112E' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 17v.1'/%3E%3C/svg%3E"); top: 26px; }
.woocommerce-error li { width: 100%; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; min-height: 42px; padding: .5em 1em; font-size: .9rem; --btn-bg: var(--paper); }
.woocommerce-info a:not(.button), .woocommerce-message a:not(.button) { font-weight: 800; }

/* ==========================================================================
   Single product
   ========================================================================== */
.bt-single { padding-top: 8px; }
.bt-pmain {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr);
    gap: 0 clamp(26px, 4.4vw, 64px);
    align-items: start;
}
.bt-pmain > .bt-gallery { grid-column: 1; position: sticky; top: calc(var(--header-h) + 32px); }
.bt-pmain > .summary { grid-column: 2; min-width: 0; }

.bt-gallery__stage {
    position: relative;
    aspect-ratio: 1;
    background-color: var(--paper);
    background-image: radial-gradient(rgba(16, 25, 74, .12) 1.3px, transparent 1.6px);
    background-size: 18px 18px;
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
.bt-gallery__stage--tall { aspect-ratio: 4 / 5; max-height: calc(100svh - var(--header-h) - 70px); margin-inline: auto; }
.bt-gallery__frame { position: absolute; inset: 0; overflow: hidden; border-radius: calc(var(--r-lg) - 3px); }
.bt-gallery__img { width: 100%; height: 100%; object-fit: contain; }
.bt-gallery__img.bt-img--sq, .bt-gallery__img.bt-img--tall { object-fit: cover; }

/* Photo framing (see bt_img_class): square renders lose the generator mark in the bottom-right corner,
   portrait photos lose their mosaic side padding. The frames around them already clip. */
.bt-img--sq { transform-origin: 15% 15%; scale: 1.12; }
.bt-img--tall { transform-origin: 50% 45%; scale: 1.17; }
.bt-gallery__sticker { position: absolute; top: -26px; right: -22px; width: 130px; z-index: 2; }
.bt-gallery__stage:hover .bt-gallery__sticker { animation: bt-wiggle .7s var(--ease); }
.bt-gallery__thumbs { display: flex; gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.bt-gallery__thumb { width: 82px; height: 82px; padding: 0; overflow: hidden; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 14px; box-shadow: var(--sh-sm); transition: transform .2s var(--spring); }
.bt-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.bt-gallery__thumb.is-active { box-shadow: 3px 3px 0 var(--orange); transform: translate(-1px, -1px); }

.bt-pchips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.bt-single .product_title {
    margin: 0 0 22px;
    font: 900 clamp(1.8rem, 3vw, 2.8rem)/1.03 var(--font);
    letter-spacing: -.04em;
    text-wrap: balance;
    overflow-wrap: break-word;
}
.bt-single .bt-ptitle--long { font-size: clamp(1.6rem, 2.4vw, 2.25rem); line-height: 1.06; letter-spacing: -.03em; }
.bt-single .bt-ptitle--xl { font-size: clamp(1.45rem, 2vw, 1.95rem); line-height: 1.1; letter-spacing: -.025em; }
/* Buy box: one yellow price ticket. Top = price, dashed perforation with notches, stub = quantity + buttons. */
.bt-ticket {
    --notch: 17px;
    --sh-x: 6px;
    position: relative;
    margin: 0 0 4px;
    background-color: var(--lemon);
    background-image: radial-gradient(rgba(16, 25, 74, .11) 1.2px, transparent 1.5px);
    background-size: 16px 16px;
    border: var(--bw) solid var(--navy);
    border-radius: 24px;
    box-shadow: var(--sh);
}
.bt-ticket__top { padding: 18px 26px 24px; }
.bt-ticket__label { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; font: 800 .74rem/1 var(--font); letter-spacing: .16em; text-transform: uppercase; }
.bt-ticket__label > span:first-child { padding: 6px 10px; background: var(--paper); border: 2px solid var(--navy); border-radius: 999px; }
/* Decorative barcode. */
.bt-ticket__code {
    width: 96px;
    height: 24px;
    background: repeating-linear-gradient(90deg, var(--navy) 0 2px, transparent 2px 4px, var(--navy) 4px 7px, transparent 7px 9px, var(--navy) 9px 10px, transparent 10px 13px, var(--navy) 13px 16px, transparent 16px 17px);
}
.bt-pricebox { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; }
.bt-pricebox__now { margin: 0; font: 400 clamp(2.6rem, 4.4vw, 3.6rem)/1 var(--font-num); letter-spacing: -.045em; }
.bt-pricebox__meta { display: grid; gap: 8px; }
.bt-pricebox__was { margin: 0; font-weight: 600; font-size: .98rem; }
.bt-pricebox__was span { color: var(--ink-2); }
.bt-pricebox__was del { font-weight: 800; }
.bt-pricebox__save { display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 7px 13px 7px 10px; font-weight: 600; color: var(--cream); background: var(--navy); border-radius: 999px; font-size: .95rem; justify-self: start; }
.bt-pricebox__save strong { font-weight: 800; color: var(--lemon); }
.bt-pricebox__save .bt-i { width: 18px; height: 18px; color: var(--lemon); }
.bt-pricebox--plain .price { font: 400 2.4rem/1 var(--font-num); }
.bt-ticket__perf { position: relative; height: 0; margin: 0 24px; border-top: 3px dashed var(--navy); }
.bt-ticket__perf:last-child { display: none; }
.bt-ticket__perf::before, .bt-ticket__perf::after {
    content: "";
    position: absolute;
    top: calc(-1 * var(--notch) - 1.5px);
    width: calc(2 * var(--notch));
    height: calc(2 * var(--notch));
    background: var(--cream);
    border: var(--bw) solid var(--navy);
    border-radius: 50%;
}
/* Circles centred on the ticket's side borders, clipped to the ticket (+ its shadow on the right). */
.bt-ticket__perf::before { left: calc(-24px - var(--bw) / 2 - var(--notch)); clip-path: inset(0 0 0 calc(var(--notch) - 2px)); }
.bt-ticket__perf::after { right: calc(-24px - var(--bw) / 2 - var(--notch)); clip-path: inset(0 calc(var(--notch) - var(--sh-x) - var(--bw)) 0 0); }
.bt-ticket form.cart { margin: 0; padding: 24px 24px 26px; }
.bt-ticket .stock { margin: 16px 24px 0; }

/* Seals: four round stickers slapped along the ticket's bottom edge. */
.bt-seals { position: relative; z-index: 2; margin: -16px 0 0; }
.bt-seals__list { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0 10px; list-style: none; }
.bt-seal {
    --seal-bg: var(--sky);
    --seal-fg: var(--navy);
    position: relative;
    display: grid;
    place-items: center;
    width: clamp(86px, 8.6vw, 124px);
    aspect-ratio: 1;
    margin-right: -6px;
    text-align: center;
    color: var(--seal-fg);
    background: var(--seal-bg);
    border: var(--bw) solid var(--navy);
    border-radius: 50%;
    box-shadow: var(--sh-sm);
    rotate: var(--tilt, -8deg);
}
.bt-seal::before { content: ""; position: absolute; inset: 5px; border: 2px dashed currentColor; border-radius: 50%; opacity: .45; }
.bt-seal:nth-child(2) { --tilt: 7deg; translate: 0 8px; }
.bt-seal:nth-child(3) { --tilt: -4deg; translate: 0 -2px; }
.bt-seal:nth-child(4) { --tilt: 11deg; translate: 0 6px; }
.bt-seal:nth-child(5) { --tilt: -7deg; translate: 0 -1px; }
.bt-seal:hover { animation: bt-jiggle .7s var(--ease); }
.bt-seal--orange { --seal-bg: var(--orange); }
.bt-seal--lemon { --seal-bg: var(--lemon); }
.bt-seal--white { --seal-bg: var(--paper); }
.bt-seal--navy { --seal-bg: var(--navy); --seal-fg: var(--cream); box-shadow: 3px 3px 0 var(--orange); }
.bt-seal__in { position: relative; display: grid; justify-items: center; gap: 3px; padding: 0 8px; }
.bt-seal__i { width: 26px; height: 26px; margin-bottom: 2px; }
.bt-seal__big { font: 900 1.02rem/1 var(--font); letter-spacing: -.02em; white-space: nowrap; }
.bt-seal__small { font: 800 .66rem/1.1 var(--font); letter-spacing: .06em; text-transform: uppercase; }
.bt-seal--navy .bt-seal__big { color: var(--lemon); }
/* "преди плащане": one word per line, so it stays inside the round seal. */
.bt-seal__small--2l { width: min-content; line-height: 1.05; }
.bt-seals__more { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 22px 4px 0; font-size: .9rem; font-weight: 700; }
.bt-seals__more a { display: inline-flex; align-items: center; gap: 4px; color: var(--navy); }
.bt-seals__more .bt-i { width: 16px; height: 16px; }

.woocommerce-product-details__short-description { margin-bottom: 20px; font-size: 1.05rem; }

form.cart {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    margin: 0 0 22px;
}
form.cart .single_add_to_cart_button { min-height: 62px; font-size: 1.12rem; border-radius: 18px; }
form.cart .bt-buynow { grid-column: 1 / -1; min-height: 62px; font-size: 1.12rem; border-radius: 18px; }
.bt-single .stock { margin: 0 0 12px; font-weight: 700; }

.quantity {
    display: inline-flex;
    align-items: center;
    height: 62px;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 18px;
    box-shadow: 4px 4px 0 var(--navy);
    overflow: hidden;
}
.quantity input.qty,
.quantity input.input-text.qty {
    width: 52px;
    min-height: 0;
    box-shadow: none;
    border-radius: 0;
    height: 100%;
    padding: 0;
    font: 400 1.3rem/1 var(--font-num);
    color: var(--navy);
    text-align: center;
    background: transparent;
    border: 0;
    -moz-appearance: textfield;
    appearance: textfield;
}
.quantity input.qty::-webkit-outer-spin-button, .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity input.input-text.qty:focus { background: var(--lemon-soft); box-shadow: none; }
.quantity input.qty:focus-visible { outline: 3px solid var(--orange); outline-offset: -3px; border-radius: 8px; }
.js .bt-qty__btn[hidden] { display: grid !important; }
.bt-qty__btn { display: grid; place-items: center; width: 46px; height: 100%; padding: 0; color: var(--navy); background: transparent; border: 0; transition: background-color .15s; }
.bt-qty__btn:hover { background: var(--lemon); }
.bt-qty__btn:active { background: var(--orange); }
.bt-qty__btn .bt-i { width: 20px; height: 20px; }
.bt-qty__btn:focus-visible { outline-offset: -4px; }

/* Description: a masonry of mixed-size coloured bento cards (boltaro.js sets the row spans). */
.bt-pdesc { margin-top: clamp(64px, 8vw, 120px); }
.bt-pdesc__head { margin-bottom: clamp(30px, 4vw, 44px); }
.bt-bento {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-flow: row dense;
    gap: 30px;
    align-items: start;
}
.bt-bento.is-masonry { grid-auto-rows: 4px; row-gap: 0; }
.bt-dcard--wide { grid-column: span 2; }
.bt-dcard {
    --measure: none;
    --dc-bg: var(--paper);
    --dc-fg: var(--navy);
    position: relative;
    min-width: 0;
    padding: 26px 28px 24px;
    color: var(--dc-fg);
    background: var(--dc-bg);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r);
    box-shadow: var(--sh);
    font-size: 1.02rem;
    line-height: 1.6;
}
.bt-dcard > :last-child { margin-bottom: 0; }
.bt-dc--paper { --dc-bg: var(--paper); }
.bt-dc--sky { --dc-bg: var(--sky); }
.bt-dc--lemon { --dc-bg: var(--lemon); }
.bt-dc--peach { --dc-bg: var(--orange-soft); }
.bt-dc--navy { --dc-bg: var(--navy); --dc-fg: var(--cream); box-shadow: 6px 6px 0 var(--orange); }
.bt-dc--navy a { color: var(--lemon); }
.bt-dc--navy :focus-visible { outline-color: var(--lemon); }

/* Card heading: a rotated label stuck on the card. */
.bt-bento .bt-dcard .bt-dcard__title {
    display: flex;
    align-items: center;
    width: fit-content;
    max-width: calc(100% + 10px);
    margin: -44px 0 18px -10px;
    padding: 8px 15px 9px;
    font: 900 1.18rem/1.15 var(--font);
    letter-spacing: -.015em;
    word-spacing: .06em;
    color: var(--navy);
    background: var(--lemon);
    border: var(--bw) solid var(--navy);
    border-radius: 13px;
    box-shadow: var(--sh-sm);
    rotate: -2deg;
    text-wrap: balance;
}
.bt-dcard__title .bt-h-ico { flex: none; margin-right: .4em; }
.bt-bento .bt-dcard:nth-child(even) .bt-dcard__title { rotate: 1.6deg; }
.bt-bento .bt-dc--lemon .bt-dcard__title { background: var(--paper); }
.bt-bento .bt-dc--peach .bt-dcard__title { background: var(--sky); }
.bt-bento .bt-dc--sky .bt-dcard__title { background: var(--lemon); }
.bt-bento .bt-dc--navy .bt-dcard__title { background: var(--orange); }

/* Lists and tables sit flat inside the cards. */
.bt-dcard .bt-list--check { background: none; border: 0; box-shadow: none; border-radius: 0; overflow: visible; }
.bt-dcard .bt-list--check > li { padding: 10px 0 10px 38px; border-bottom-color: rgba(16, 25, 74, .2); }
.bt-dcard .bt-list--check > li::before { left: 0; top: 10px; }
.bt-dcard--wide .bt-list--check { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 30px; }
.bt-dcard--wide .bt-list--check > li:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.bt-dc--sky .bt-list--check > li::before, .bt-dc--lemon .bt-list--check > li::before { background-color: var(--paper); }
.bt-dcard .bt-dspec { background: none; border: 0; box-shadow: none; border-radius: 0; }
.bt-dcard .bt-dspec > div { padding: 10px 0; }
.bt-dcard .bt-dspec > div:nth-child(odd) { background: none; }
.bt-dc--navy .bt-dspec > div { border-bottom-color: rgba(255, 246, 234, .22); }
.bt-dc--navy .bt-dspec dt { color: rgba(255, 246, 234, .78); }
.bt-dc--navy .bt-dspec dd { color: var(--cream); }
.bt-dc--navy .bt-list--check > li { border-bottom-color: rgba(255, 246, 234, .22); }
.bt-dc--navy .bt-li-ico { color: var(--navy); }
.bt-dc--navy .bt-li-ico--dot::before { border-color: var(--cream); }
.bt-dcard.bt-dc--navy h3:not(.bt-dcard__title) { color: var(--navy); }
.bt-dcard .bt-desc-callout { background: var(--paper); color: var(--navy); }

/* Intro: the product's own opening line as a headline. */
.bt-dcard--intro {
    padding: clamp(28px, 3.4vw, 46px);
    background-color: var(--paper);
    background-image: radial-gradient(rgba(16, 25, 74, .1) 1.2px, transparent 1.5px);
    background-size: 18px 18px;
}
.bt-bento .bt-dcard .bt-dcard__lead { display: block; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; rotate: none; max-width: 32ch; margin: 0 0 .7em; font: 900 clamp(1.55rem, 2.6vw, 2.35rem)/1.08 var(--font); letter-spacing: -.035em; text-wrap: balance; }
.bt-dcard__lead strong { font-weight: inherit; }
.bt-dcard--intro p { max-width: 68ch; font-size: 1.1rem; }
.bt-dcard--intro > p:first-child { font: 600 1.22rem/1.5 var(--font); }

/* "Накратко": the product's facts as one big orange tile. */
.bt-dtile { --dc-bg: var(--orange); padding: 22px 26px 22px; overflow: hidden; isolation: isolate; }
.bt-dtile__title { display: inline-block; margin: 0; padding: 7px 13px; font: 800 .8rem/1 var(--font); letter-spacing: .16em; text-transform: uppercase; background: var(--paper); border: 2px solid var(--navy); border-radius: 999px; rotate: -3deg; }
.bt-dtile__art { position: absolute; z-index: -1; top: 10px; right: 10px; width: clamp(104px, 9vw, 136px); rotate: -12deg; transition: rotate .6s var(--spring); }
.bt-dtile__art svg { width: 100%; height: auto; }
.bt-dtile:hover .bt-dtile__art { rotate: 6deg; }
.bt-dtile__pct {
    margin: 30px 0 22px;
    font: 400 clamp(3.6rem, 6vw, 5.4rem)/.82 var(--font-num);
    letter-spacing: -.05em;
    color: var(--lemon);
    -webkit-text-stroke: 3px var(--navy);
    paint-order: stroke fill;
    text-shadow: 5px 5px 0 var(--navy);
}
.bt-dtile__pct small { display: block; margin: 0 0 .35em .1em; font: 800 .8rem/1 var(--font); letter-spacing: .14em; text-transform: uppercase; color: var(--navy); -webkit-text-stroke: 0; text-shadow: none; }
.bt-dtile__specs { margin: 0; padding: 4px 16px; background: var(--paper); border: 2px solid var(--navy); border-radius: 16px; }
.bt-dtile__specs > div { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 10px 0; border-bottom: 2px dashed rgba(16, 25, 74, .2); }
.bt-dtile__specs > div:last-child { border-bottom: 0; }
.bt-dtile__specs dt { font-weight: 600; color: var(--ink-2); }
.bt-dtile__specs dd { margin: 0; font-weight: 800; text-align: right; }

/* Reading measure: never wider than ~68 characters. */
.bt-prose { --measure: 68ch; font-size: 1.07rem; line-height: 1.7; overflow-wrap: break-word; }
.bt-prose > :first-child { margin-top: 0; }
.bt-prose p { margin: 0 0 1em; max-width: var(--measure); text-wrap: pretty; }
.bt-prose .bt-desc-lead {
    max-width: 30ch;
    margin: 0 0 .8em;
    font: 900 clamp(1.5rem, 2.5vw, 2.15rem)/1.12 var(--font);
    letter-spacing: -.03em;
    word-spacing: .08em;
    text-wrap: balance;
}
.bt-prose h2 { margin: 1.6em 0 .6em; font: 900 clamp(1.7rem, 3vw, 2.4rem)/1.05 var(--font); letter-spacing: -.035em; word-spacing: .08em; }
.bt-prose h2 strong, .bt-prose h3 strong { font-weight: inherit; }
.bt-prose h3 {
    display: table;
    max-width: var(--measure);
    margin: 1.8em 0 .9em;
    padding: 6px 14px 7px;
    font: 800 1.2rem/1.2 var(--font);
    letter-spacing: -.01em;
    background: var(--lemon);
    border: 2px solid var(--navy);
    border-radius: 12px;
    box-shadow: var(--sh-sm);
    rotate: -1deg;
}
.bt-prose h3:nth-of-type(3n+2) { background: var(--sky); rotate: .8deg; }
.bt-prose h3:nth-of-type(3n) { background: var(--orange-soft); }
.bt-h-ico { display: inline-block; margin-right: .4em; font-size: .92em; }
.bt-prose h4 { margin: 1.4em 0 .5em; font: 800 1.1rem/1.25 var(--font); }
.bt-prose a { font-weight: 700; }
.bt-prose strong { font-weight: 800; }
.bt-prose hr { display: none; }

/* Real lists from the editor */
.bt-prose ul:not(.bt-list), .bt-prose ol { margin: 0 0 1.2em; padding-left: 0; list-style: none; max-width: var(--measure); }
.bt-prose ul:not(.bt-list) > li, .bt-prose ol > li { position: relative; margin: 0 0 .55em; padding-left: 32px; }
.bt-prose ul:not(.bt-list) > li::before { content: ""; position: absolute; left: 4px; top: .5em; width: 14px; height: 14px; background: var(--orange); border: 2px solid var(--navy); border-radius: 4px; rotate: 12deg; }
.bt-prose ul:not(.bt-list) ul { margin: .5em 0 .2em; }
.bt-prose ul:not(.bt-list) > li.is-check::before {
    left: 0;
    top: .2em;
    width: 22px;
    height: 22px;
    background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") no-repeat center / 13px;
    border-radius: 50%;
    rotate: 0deg;
}
.bt-prose ul:not(.bt-list) > li.has-ico { display: grid; grid-template-columns: 1.6em minmax(0, 1fr); gap: .5em; padding-left: 0; }
.bt-prose ul:not(.bt-list) > li.has-ico::before { content: none; }
.bt-prose ol { counter-reset: bt-ol; }
.bt-prose ol > li { counter-increment: bt-ol; }
.bt-prose ol > li::before { content: counter(bt-ol); position: absolute; left: 0; top: .15em; display: grid; place-items: center; width: 24px; height: 24px; font: 800 .8rem/1 var(--font); background: var(--lemon); border: 2px solid var(--navy); border-radius: 50%; }

/* Lists built from plain-text lines (bt_format_description) */
.bt-list { display: grid; gap: 0; margin: 0 0 1.4em; padding: 0; list-style: none; max-width: var(--measure); }
.bt-list > li { line-height: 1.5; }

/* ✅ lines: one card, the theme check in a hanging column */
.bt-list--check { overflow: hidden; background: var(--paper); border: 2px solid var(--navy); border-radius: 16px; box-shadow: var(--sh-sm); }
.bt-list--check > li { position: relative; padding: 12px 18px 12px 52px; border-bottom: 2px dashed rgba(16, 25, 74, .16); }
.bt-list--check > li:last-child { border-bottom: 0; }
.bt-list--check > li::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 12px;
    width: 24px;
    height: 24px;
    background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") no-repeat center / 14px;
    border: 2px solid var(--navy);
    border-radius: 50%;
}

/* Bulleted runs: icon column + text, so wrapped lines hang under the text, not under the bullet */
.bt-list--bullets { gap: .7em; }
.bt-list--bullets > li { display: grid; grid-template-columns: 1.7em minmax(0, 1fr); gap: .55em; align-items: start; }
.bt-li-ico { display: grid; place-items: center; width: 1.6em; height: 1.6em; font-size: 1.08em; line-height: 1; background: var(--paper); border: 2px solid var(--navy); border-radius: 8px; box-shadow: 2px 2px 0 var(--navy); }
.bt-prose .has-ico .bt-li-ico { margin-top: .05em; }
.bt-li-ico--dot { width: 1.6em; height: 1.5em; background: none; border: 0; box-shadow: none; }
.bt-li-ico--dot::before { content: ""; width: 12px; height: 12px; background: var(--orange); border: 2px solid var(--navy); border-radius: 4px; rotate: 12deg; }

/* "Ключ: стойност" runs → spec table */
.bt-dspec { max-width: var(--measure); margin: 0 0 1.4em; overflow: hidden; background: var(--paper); border: 2px solid var(--navy); border-radius: 16px; box-shadow: var(--sh-sm); }
.bt-dspec > div { display: grid; grid-template-columns: minmax(8em, 38%) minmax(0, 1fr); gap: 4px 18px; padding: 11px 18px; border-bottom: 2px dashed rgba(16, 25, 74, .16); }
.bt-dspec > div:nth-child(odd) { background: var(--cream); }
.bt-dspec > div:last-child { border-bottom: 0; }
.bt-dspec dt { font-weight: 600; color: var(--ink-2); line-height: 1.4; }
.bt-dspec dd { margin: 0; font-weight: 700; line-height: 1.4; }

.bt-prose .bt-desc-callout { padding: 12px 16px; background: var(--lemon-soft); border: 2px solid var(--navy); border-radius: 14px; }
.bt-prose .bt-desc-note { margin-top: 1.6em; font-size: .92rem; font-weight: 600; color: var(--ink-2); }

/* Related */
.bt-single .related, .bt-single .upsells { margin-top: clamp(56px, 8vw, 110px); }
.bt-single .related > h2, .bt-single .upsells > h2 { margin: 0 0 30px; font: 900 clamp(2.2rem, 4.6vw, 3.8rem)/.95 var(--font); letter-spacing: -.045em; }

/* Sticky add-to-cart (mobile) */
.bt-stickybar { display: none; }

/* ==========================================================================
   Flow pages: cart / checkout / thank-you
   ========================================================================== */
.bt-flowpage { padding-top: 10px; }
.bt-flowhead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 28px; margin: 8px 0 30px; }
.bt-flowhead__title { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin: 0; font: 900 clamp(2.6rem, 6.4vw, 5.6rem)/.9 var(--font); letter-spacing: -.055em; }
.bt-flowhead__count { padding: 8px 14px; font: 400 1rem/1 var(--font-num); letter-spacing: 0; word-spacing: 0; background: var(--lemon); border: var(--bw) solid var(--navy); border-radius: 999px; box-shadow: var(--sh-sm); rotate: -4deg; }
.bt-flowhead__count[data-n="0"] { display: none; }
.bt-progress { display: flex; align-items: center; gap: 8px; margin: 0; padding: 8px; list-style: none; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 999px; box-shadow: var(--sh-sm); }
.bt-progress li { display: flex; align-items: center; gap: 8px; padding: 4px 14px 4px 4px; font-weight: 700; font-size: .92rem; border-radius: 999px; color: var(--ink-3); }
.bt-progress li + li::before { content: ""; width: 18px; height: 2.5px; margin-left: -8px; background: var(--navy); border-radius: 2px; opacity: .35; }
.bt-progress__n { display: grid; place-items: center; width: 32px; height: 32px; font: 400 .85rem/1 var(--font-num); color: var(--navy); background: var(--cream); border: 2px solid var(--navy); border-radius: 50%; }
.bt-progress__n .bt-i { width: 16px; height: 16px; }
.bt-progress li.is-current { color: var(--navy); background: var(--lemon); }
.bt-progress li.is-current .bt-progress__n { background: var(--orange); }
.bt-progress li.is-done { color: var(--navy); }
.bt-progress li.is-done .bt-progress__n { background: var(--sky); }

/* Tables */
.bt-flowbody table.shop_table { width: 100%; border-collapse: collapse; border: 0; }
.bt-flowbody table.shop_table th, .bt-flowbody table.shop_table td { padding: 12px 0; text-align: left; vertical-align: top; border-bottom: 2px dashed rgba(16, 25, 74, .2); }
.bt-flowbody table.shop_table tfoot tr:last-child th, .bt-flowbody table.shop_table tfoot tr:last-child td { border-bottom: 0; }

/* Cart layout */
.bt-flowpage--cart .woocommerce:has(.woocommerce-cart-form) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
    gap: 0 clamp(22px, 3vw, 40px);
    align-items: start;
}
.bt-flowpage--cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.bt-flowpage--cart .woocommerce-cart-form { grid-column: 1; min-width: 0; }
.bt-flowpage--cart .cart-collaterals { grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--header-h) + 32px); }
.bt-flowpage--cart .woocommerce:has(.woocommerce-notices-wrapper:empty) .cart-collaterals { grid-row: 1 / span 2; }

table.shop_table.cart { display: block; }
table.shop_table.cart thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
table.shop_table.cart tbody { display: grid; gap: 18px; }
table.shop_table.cart tr.cart_item {
    position: relative;
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr) auto auto;
    grid-template-areas: "thumb name name remove" "thumb price qty subtotal";
    align-items: center;
    gap: 10px 22px;
    padding: 14px 16px 14px 14px;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r);
    box-shadow: var(--sh);
}
table.shop_table.cart td { display: block; padding: 0 !important; border: 0 !important; }
table.shop_table.cart td.product-thumbnail { grid-area: thumb; }
table.shop_table.cart td.product-thumbnail img { width: 112px; height: 112px; object-fit: cover; border: 2px solid var(--navy); border-radius: 14px; }
table.shop_table.cart td.product-name { grid-area: name; padding-right: 8px !important; font: 800 1.12rem/1.25 var(--font); letter-spacing: -.01em; }
table.shop_table.cart td.product-name a { text-decoration: none; }
table.shop_table.cart td.product-name a:hover { text-decoration: underline; }
table.shop_table.cart td.product-price { grid-area: price; font-weight: 600; color: var(--ink-2); font-size: .95rem; }
table.shop_table.cart td.product-price::before { content: attr(data-title) ": "; }
table.shop_table.cart td.product-quantity { grid-area: qty; }
table.shop_table.cart td.product-quantity .quantity { height: 50px; border-radius: 14px; box-shadow: var(--sh-sm); }
table.shop_table.cart td.product-quantity .bt-qty__btn { width: 40px; }
table.shop_table.cart td.product-quantity input.qty { width: 42px; font-size: 1.1rem; }
table.shop_table.cart td.product-subtotal { grid-area: subtotal; min-width: 110px; text-align: right; font: 400 1.35rem/1 var(--font-num); letter-spacing: -.03em; }
table.shop_table.cart td.product-remove { grid-area: remove; justify-self: end; align-self: start; }
table.shop_table.cart a.remove {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    font: 700 1.5rem/1 var(--font);
    color: var(--navy);
    background: var(--cream);
    border: 2px solid var(--navy);
    border-radius: 50%;
    text-decoration: none;
    transition: background-color .2s, rotate .35s var(--spring);
}
table.shop_table.cart a.remove:hover { background: var(--orange); rotate: 90deg; }
table.shop_table.cart tr:not(.cart_item) { display: block; }
table.shop_table.cart td.actions { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 0 0 !important; }
.coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.woocommerce-cart-form .coupon input.input-text { width: 240px; min-height: 50px; }
.coupon .button, button[name="update_cart"] { --btn-bg: var(--paper); min-height: 50px; }
/* Quantity changes update the cart by themselves (boltaro.js), so with JS the button is only kept for
   keyboard users: invisible until it receives focus. Without JS it stays a normal button. */
.js .woocommerce-cart-form button[name="update_cart"]:not(:focus-visible) {
    position: absolute;
    width: 1px;
    height: 1px;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
    box-shadow: none;
}
.js table.shop_table.cart td.actions:not(:has(.coupon)) { padding: 0 !important; }

.cart_totals {
    padding: 24px 24px 22px;
    background: var(--lemon);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
.cart_totals > h2 { margin: 0 0 6px; font: 900 2rem/1 var(--font); letter-spacing: -.04em; }
.cart_totals table.shop_table th { font-weight: 600; }
.cart_totals table.shop_table td { text-align: right; font-weight: 800; }
.cart_totals table.shop_table tr.order-total th { padding-top: 16px; font-weight: 800; }
.cart_totals table.shop_table tr.order-total td { padding-top: 12px; font: 400 2rem/1 var(--font-num); letter-spacing: -.04em; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { border-bottom-color: rgba(16, 25, 74, .25); }
.wc-proceed-to-checkout { margin-top: 16px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 64px; font-size: 1.15rem !important; border-radius: 18px; --btn-bg: var(--orange); }
.bt-mini-facts { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.bt-mini-facts li { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: .92rem; }
.bt-mini-facts .bt-i { width: 32px; height: 32px; padding: 6px; background: var(--paper); border: 2px solid var(--navy); border-radius: 10px; }

/* Empty cart */
.bt-flowpage--cart .wc-empty-cart-message, .bt-flowpage--cart .cart-empty { display: none; }
.bt-flowpage--cart .woocommerce:not(:has(.woocommerce-cart-form)) {
    padding: clamp(32px, 5vw, 64px) clamp(18px, 4vw, 48px);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
.bt-empty {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.bt-empty__art { position: relative; width: clamp(140px, 18vw, 200px); margin-bottom: 18px; rotate: -6deg; }
.bt-empty__art .bt-caticon { width: 100%; height: auto; }
.bt-empty__sticker { position: absolute; top: -16px; right: -26px; width: 70px; }
.bt-empty__sticker .bt-sticker__t { font-size: 44cqi; }
.bt-empty__title { margin: 0 0 10px; font: 900 clamp(2rem, 4.5vw, 3.4rem)/1 var(--font); letter-spacing: -.045em; }
.bt-empty__text { max-width: 44ch; margin: 0 0 26px; font-size: 1.1rem; font-weight: 500; }
.bt-flowpage--cart .return-to-shop { display: flex; justify-content: center; margin: 0; }
.return-to-shop .button { min-height: 62px; font-size: 1.1rem; padding-inline: 1.8em; }

/* Forms */
.bt-flowbody label, .woocommerce form .form-row label { display: block; margin: 0 0 7px; font-weight: 700; font-size: .95rem; }
.woocommerce form .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row .required { color: var(--error); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: var(--ink-3); font-weight: 500; }
.woocommerce-checkout form .form-row .optional { display: none; }
.bt-flowbody input.input-text, .bt-flowbody textarea, .bt-flowbody select, .woocommerce input.input-text, .woocommerce textarea {
    width: 100%;
    min-height: 54px;
    padding: 13px 16px;
    font: 500 1.02rem/1.3 var(--font);
    color: var(--navy);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 14px;
    box-shadow: var(--sh-sm);
    transition: box-shadow .2s var(--ease), background-color .2s;
    -webkit-appearance: none;
    appearance: none;
}
.bt-flowbody textarea, .woocommerce textarea { min-height: 110px; resize: vertical; }
.bt-flowbody input.input-text::placeholder, .bt-flowbody textarea::placeholder { color: var(--ink-3); opacity: 1; }
.bt-flowbody input.input-text:focus, .bt-flowbody textarea:focus, .woocommerce input.input-text:focus, .woocommerce textarea:focus {
    outline: none;
    background: #FFFBEA;
    box-shadow: 4px 4px 0 var(--orange);
}
.bt-flowbody input.input-text:focus-visible, .bt-flowbody textarea:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--error); box-shadow: 3px 3px 0 var(--error); }
.woocommerce-input-wrapper { display: block; }

/* Chunky checkboxes and radios */
input[type="checkbox"], input[type="radio"] {
    -webkit-appearance: none;
    appearance: none;
    display: inline-grid;
    place-content: center;
    flex: none;
    width: 24px;
    height: 24px;
    margin: 0;
    vertical-align: -6px;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 7px;
    box-shadow: 2px 2px 0 var(--navy);
    cursor: pointer;
    transition: background-color .15s, box-shadow .2s var(--spring), transform .2s var(--spring);
}
input[type="radio"] { border-radius: 50%; }
input[type="checkbox"]::before {
    content: "";
    width: 14px;
    height: 14px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5L19.5 7'/%3E%3C/svg%3E") no-repeat center / contain;
    scale: 0;
    transition: scale .25s var(--spring);
}
input[type="radio"]::before { content: ""; width: 10px; height: 10px; background: var(--navy); border-radius: 50%; scale: 0; transition: scale .25s var(--spring); }
input[type="checkbox"]:checked, input[type="radio"]:checked { background: var(--lemon); }
input[type="checkbox"]:checked::before, input[type="radio"]:checked::before { scale: 1; }
input[type="checkbox"]:active, input[type="radio"]:active { transform: translate(2px, 2px); box-shadow: 0 0 0 var(--navy); }
input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; border-radius: 7px; }
.woocommerce-invalid input[type="checkbox"] { border-color: var(--error); box-shadow: 2px 2px 0 var(--error); }

/* Inline validation message under a field */
.checkout-inline-error-message {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 7px 0 0;
    font-size: .875rem;
    font-weight: 700;
    color: var(--error);
}
.checkout-inline-error-message::before {
    content: "!";
    display: grid;
    place-items: center;
    flex: none;
    width: 18px;
    height: 18px;
    font: 800 .75rem/1 var(--font);
    color: var(--paper);
    background: var(--error);
    border-radius: 50%;
}

/* Checkout */
.bt-flowpage--checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 450px);
    gap: 0 clamp(22px, 3vw, 40px);
    align-items: start;
}
form.checkout > .woocommerce-NoticeGroup { grid-column: 1; }
form.checkout > #customer_details { grid-column: 1; }
form.checkout > .bt-co-side { grid-column: 2; grid-row: 1 / span 6; position: sticky; top: calc(var(--header-h) + 32px); }
#customer_details {
    display: grid;
    gap: 8px;
    padding: clamp(20px, 3vw, 34px);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
    counter-reset: bt-co;
}
#customer_details h3 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 20px;
    font: 900 1.6rem/1.05 var(--font);
    letter-spacing: -.035em;
}
#customer_details h3::before {
    counter-increment: bt-co;
    content: counter(bt-co);
    display: grid;
    place-items: center;
    flex: none;
    width: 40px;
    height: 40px;
    font: 400 1.05rem/1 var(--font-num);
    background: var(--orange);
    border: var(--bw) solid var(--navy);
    border-radius: 50%;
    rotate: -8deg;
}
#customer_details .col-2 h3::before { background: var(--sky); }
.woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.woocommerce-billing-fields__field-wrapper > .form-row { grid-column: 1 / -1; }
.woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1; }
.woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 2; }
.woocommerce-additional-fields { margin-top: 10px; }
.woocommerce-additional-fields__field-wrapper .form-row { margin-bottom: 0; }

.bt-co-side {
    padding: clamp(20px, 2.6vw, 30px);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
#order_review_heading { margin: 0 0 12px; font: 900 1.9rem/1 var(--font); letter-spacing: -.04em; }
.woocommerce-checkout-review-order-table thead th { font: 800 .75rem/1 var(--font); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.woocommerce-checkout-review-order-table th.product-total, .woocommerce-checkout-review-order-table td.product-total { width: 1%; text-align: right !important; }
.woocommerce-checkout-review-order-table td.product-total { white-space: nowrap; }
.woocommerce-checkout-review-order-table { table-layout: auto; }
.woocommerce-checkout-review-order-table td.product-name { position: relative; min-height: 76px; padding-right: 14px !important; font-weight: 700; line-height: 1.35; }
.woocommerce-checkout-review-order-table td.product-name:has(.bt-co-thumb) { padding-left: 64px !important; }
.bt-co-thumb { position: absolute; left: 0; top: 12px; width: 52px; height: 52px; object-fit: cover; border: 2px solid var(--navy); border-radius: 10px; }
.bt-co-name { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
/* Navy on lemon (AA), not orange on white. */
.woocommerce-checkout-review-order-table .product-quantity { display: inline-block; margin-top: 6px; padding: 2px 8px; font: 800 .85rem/1.3 var(--font); color: var(--navy); background: var(--lemon); border: 1.5px solid var(--navy); border-radius: 999px; white-space: nowrap; }
.woocommerce-checkout-review-order-table td.product-total { font-weight: 800; }
.woocommerce-checkout-review-order-table tfoot th { font-weight: 600; }
.woocommerce-checkout-review-order-table tfoot td { text-align: right !important; font-weight: 800; }
.woocommerce-checkout-review-order-table tr.order-total th { font-weight: 800; }
.woocommerce-checkout-review-order-table tr.order-total td { font: 400 1.9rem/1 var(--font-num); letter-spacing: -.04em; }

#payment { margin-top: 16px; }
#payment ul.payment_methods { margin: 0 0 16px; padding: 0; list-style: none; }
#payment ul.payment_methods li { padding: 14px 16px; background: var(--sky-soft); border: 2px solid var(--navy); border-radius: 16px; }
#payment ul.payment_methods li > label { display: inline; font: 800 1.05rem/1.2 var(--font); margin: 0 0 0 6px; }
#payment ul.payment_methods li > input { vertical-align: -3px; }
#payment .payment_box { margin-top: 8px; font-size: .95rem; font-weight: 500; }
#payment .payment_box p { margin: 0; }
#payment .place-order { margin: 0; padding: 0; }
.woocommerce-privacy-policy-text p { margin: 0 0 12px; font-size: .86rem; line-height: 1.5; color: var(--ink-2); }
.woocommerce-terms-and-conditions-wrapper .form-row { margin: 0 0 16px; }
/* Checkbox in a hanging column; text and the required "*" flow together inline. */
.woocommerce-form__label-for-checkbox { position: relative; display: block !important; min-height: 26px; padding-left: 38px; font-weight: 600 !important; line-height: 1.45; cursor: pointer; }
.woocommerce-form__label-for-checkbox input { position: absolute; left: 0; top: -1px; }
.woocommerce-form__label-for-checkbox .required { margin-left: 2px; }
#place_order { width: 100%; min-height: 66px; font-size: 1.2rem; border-radius: 18px; }
.bt-mini-facts--co { grid-template-columns: 1fr 1fr; margin-top: 18px; }
.bt-mini-facts--co li { font-size: .85rem; }
.bt-mini-facts--co li:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* Only shown when the shop actually has coupons: a compact one-line link, not a full notice box. */
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 16px; padding: 10px 14px 10px 50px; font-size: .92rem; box-shadow: none; background: var(--paper); }
.woocommerce-form-coupon-toggle .woocommerce-info::before { left: 12px; width: 26px; height: 26px; margin-top: -13px; }
form.checkout_coupon {
    margin: 0 0 24px;
    padding: 20px;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r);
    box-shadow: var(--sh-sm);
}
form.checkout_coupon p:first-child { margin: 0 0 12px; }
form.checkout_coupon .form-row { display: inline-block; margin: 0 8px 0 0; vertical-align: middle; }
form.checkout_coupon .button { --btn-bg: var(--lemon); }

/* Thank you */
.bt-flowpage--received .woocommerce-order { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.bt-flowpage--received .woocommerce-order > * { grid-column: 1 / -1; }
.bt-flowpage--received .woocommerce-order > .woocommerce-order-details { grid-column: 1; }
.bt-flowpage--received .woocommerce-order > .woocommerce-customer-details { grid-column: 2; }
/* The order total is moved to the last row (woocommerce_get_order_item_totals), so it gets the big numerals. */
.woocommerce-table--order-details tfoot tr:last-child th { font-weight: 800; vertical-align: middle; }
.woocommerce-table--order-details tfoot tr:last-child td { font: 400 1.6rem/1 var(--font-num); letter-spacing: -.03em; }
.woocommerce-table--order-details tfoot tr:last-child td small { display: block; margin-top: 6px; font: 500 .8rem/1.3 var(--font); letter-spacing: 0; color: var(--ink-2); }
.woocommerce-table--order-details .product-quantity { font-weight: 800; color: var(--navy); }
.bt-thanks {
    position: relative;
    padding: clamp(26px, 4vw, 50px);
    background: var(--sky);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
.bt-thanks__sticker { position: absolute; top: -26px; right: 30px; width: 124px; rotate: 10deg; }
.bt-thanks__sticker .bt-sticker__t { font-size: 18cqi; }
.bt-thanks__title { margin: 0 0 10px; padding-right: 110px; font: 900 clamp(2.4rem, 6vw, 4.6rem)/.92 var(--font); letter-spacing: -.05em; }
.bt-thanks__lead { margin: 0 0 22px; font-size: 1.15rem; font-weight: 600; }
.bt-thanks__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.bt-thanks__steps li { display: flex; align-items: flex-start; gap: 12px; padding: 16px; line-height: 1.4; background: var(--paper); border: 2px solid var(--navy); border-radius: 18px; }
.bt-thanks__steps .bt-i { display: block; width: 42px; height: 42px; padding: 8px; background: var(--lemon); border: 2px solid var(--navy); border-radius: 12px; }
.bt-thanks__steps strong { display: block; font-weight: 800; }
.bt-thanks__lead strong { font-weight: 900; }
/* Step number: a small navy badge on the corner of each icon. */
.bt-thanks__ico { position: relative; flex: none; }
.bt-thanks__n { position: absolute; top: -9px; left: -9px; display: grid; place-items: center; width: 22px; height: 22px; font: 800 .72rem/1 var(--font); color: var(--cream); background: var(--navy); border-radius: 50%; }
/* Closing row: continue shopping + where to ask about the order. */
.bt-thanks__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 26px; }
.bt-thanks__help { display: flex; align-items: center; gap: 10px; max-width: 62ch; margin: 0; font-weight: 600; line-height: 1.45; }
.bt-thanks__help > .bt-i { flex: none; width: 38px; height: 38px; padding: 7px; background: var(--paper); border: 2px solid var(--navy); border-radius: 12px; }
.bt-thanks__hours { display: block; margin-top: 2px; font-size: .88rem; font-weight: 500; color: var(--ink-2); }
.bt-thanks__help a { font-weight: 800; color: var(--navy); text-decoration-thickness: 2px; text-underline-offset: 3px; }
/* Ordered products get a small photo (woocommerce_order_item_name). */
.bt-oi-thumb { float: left; width: 52px; height: 52px; margin: -2px 14px 0 0; object-fit: cover; border: 2px solid var(--navy); border-radius: 10px; }
.woocommerce-thankyou-order-received { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
ul.woocommerce-order-overview li { padding: 16px 18px; font: 700 .75rem/1.2 var(--font); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); background: var(--paper); border: var(--bw) solid var(--navy); border-radius: 18px; box-shadow: var(--sh-sm); }
ul.woocommerce-order-overview li strong { display: block; margin-top: 8px; font: 800 1.15rem/1.2 var(--font); letter-spacing: -.01em; text-transform: none; color: var(--navy); overflow-wrap: anywhere; }
ul.woocommerce-order-overview li.total strong { font: 400 1.35rem/1 var(--font-num); }
.bt-flowpage--received .woocommerce-order > p { margin: 0; padding: 16px 20px; font-weight: 600; background: var(--lemon-soft); border: 2px solid var(--navy); border-radius: 16px; }
.woocommerce-order-details, .woocommerce-customer-details {
    padding: clamp(20px, 3vw, 32px);
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
.woocommerce-order-details__title, .woocommerce-column__title { margin: 0 0 12px; font: 900 1.7rem/1 var(--font); letter-spacing: -.035em; }
.woocommerce-table--order-details td.product-total, .woocommerce-table--order-details th:last-child, .woocommerce-table--order-details tfoot td { text-align: right !important; }
.woocommerce-table--order-details tfoot td { font-weight: 800; }
.woocommerce-customer-details address { padding: 16px; font-style: normal; line-height: 1.6; background: var(--cream); border: 2px solid var(--navy); border-radius: 16px; }
.woocommerce-customer-details address p { margin: 6px 0 0; }

/* Account page (kept simple) */
.woocommerce-account .woocommerce { display: grid; gap: 24px; }
.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation a { display: inline-flex; padding: 10px 16px; font-weight: 700; background: var(--paper); border: 2px solid var(--navy); border-radius: 999px; text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--navy); color: var(--cream); }
.woocommerce-form-login, .woocommerce-MyAccount-content { max-width: 560px; padding: 28px; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: var(--r-lg); box-shadow: var(--sh); }

/* ==========================================================================
   Info pages
   ========================================================================== */
.bt-info { padding-top: 10px; }
.bt-infotop { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 22px; margin: 6px 0 clamp(28px, 4vw, 44px); }
.bt-infotop .bt-helpcard { display: flex; flex-direction: column; justify-content: flex-end; }
.bt-helpcard__text { margin: 0 0 16px; font-weight: 500; }
.bt-helpcard--m { display: none; }
.bt-infohead {
    position: relative;
    margin: 0;
    padding: clamp(28px, 5vw, 60px) clamp(24px, 5vw, 60px);
    background-color: var(--sky);
    background-image: radial-gradient(rgba(16, 25, 74, .14) 1.3px, transparent 1.6px);
    background-size: 20px 20px;
    border: var(--bw) solid var(--navy);
    border-radius: var(--r-lg);
    box-shadow: var(--sh);
}
.bt-infohead__title { max-width: 16ch; margin: 0; padding-right: 90px; font: 900 clamp(2.5rem, 6.4vw, 5.6rem)/.92 var(--font); letter-spacing: -.055em; text-wrap: balance; }
.bt-infohead__sub { max-width: 50ch; margin: 18px 0 0; font: 700 clamp(1.1rem, 1.8vw, 1.4rem)/1.3 var(--font); }
.bt-infohead__sticker { position: absolute; top: 22px; right: 24px; width: 96px; }
.bt-info__grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(24px, 4vw, 56px); align-items: start; }
.bt-info__body { padding: clamp(24px, 4vw, 52px); background: var(--paper); border: var(--bw) solid var(--navy); border-radius: var(--r-lg); box-shadow: var(--sh); }
.bt-info__body > div > :first-child { margin-top: 0; }
.bt-info__aside { position: sticky; top: calc(var(--header-h) + 32px); display: grid; gap: 22px; }
.bt-sidenav { padding: 10px; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: var(--r); box-shadow: var(--sh); }
.bt-sidenav__title { margin: 8px 10px 10px; font: 800 .75rem/1 var(--font); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.bt-sidenav ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.bt-sidenav a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 46px; padding: 8px 12px; font-weight: 700; text-decoration: none; border-radius: 12px; transition: background-color .2s; }
.bt-sidenav a .bt-i { width: 18px; height: 18px; opacity: 0; transition: opacity .2s, transform .3s var(--spring); }
.bt-sidenav a:hover { background: var(--lemon); }
.bt-sidenav a:hover .bt-i { opacity: 1; transform: translateX(2px); }
.bt-sidenav a[aria-current="page"] { color: var(--cream); background: var(--navy); }
.bt-sidenav a[aria-current="page"] .bt-i { opacity: 1; color: var(--lemon); }
.bt-sidenav a[aria-current="page"]:focus-visible { outline-color: var(--orange); }
.bt-infofacts { display: grid; gap: 10px; margin: 0; padding: 18px; list-style: none; background: var(--sky-soft); border: var(--bw) solid var(--navy); border-radius: var(--r); }
.bt-infofacts li { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: .92rem; }
.bt-infofacts .bt-i { width: 34px; height: 34px; padding: 6px; background: var(--paper); border: 2px solid var(--navy); border-radius: 10px; }
.bt-helpcard { padding: 24px; background: var(--lemon); border: var(--bw) solid var(--navy); border-radius: var(--r); box-shadow: var(--sh); }
.bt-helpcard__title { margin: 0 0 8px; font: 900 clamp(1.6rem, 2.4vw, 2.2rem)/1 var(--font); letter-spacing: -.04em; }

.bt-postlist { display: grid; gap: 20px; }
.bt-postcard { padding: 26px; background: var(--paper); border: var(--bw) solid var(--navy); border-radius: var(--r); box-shadow: var(--sh); }
.bt-postcard__title { font: 900 1.6rem/1.1 var(--font); }

/* ==========================================================================
   404
   ========================================================================== */
.bt-404 { padding-top: 10px; }
.bt-404__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: clamp(32px, 6vw, 72px) clamp(20px, 4vw, 48px);
    text-align: center;
    background: var(--paper);
    border: var(--bw) solid var(--navy);
    border-radius: 34px;
    box-shadow: var(--sh-lg);
}
.bt-404__num { display: flex; align-items: center; gap: .04em; font: 400 clamp(7rem, 20vw, 15rem)/.85 var(--font-num); letter-spacing: -.06em; color: var(--orange); -webkit-text-stroke: 3px var(--navy); paint-order: stroke fill; text-shadow: 8px 8px 0 var(--navy); }
.bt-404__bolt { display: block; width: .82em; rotate: 18deg; filter: drop-shadow(8px 8px 0 var(--navy)); animation: bt-bob 3.2s ease-in-out infinite; }
.bt-404__bolt svg { width: 100%; height: auto; }
@keyframes bt-bob { 50% { translate: 0 -10px; rotate: 30deg; } }
.bt-404__num { position: relative; }
.bt-404__sticker { position: absolute; top: -14%; right: -22%; width: 110px; rotate: -12deg; -webkit-text-stroke: 0; text-shadow: none; }
.bt-404__sticker .bt-sticker__t { font-size: 26cqi; letter-spacing: 0; }
.bt-404__title { margin: 28px 0 12px; font: 900 clamp(2rem, 4.6vw, 3.6rem)/1 var(--font); letter-spacing: -.045em; text-wrap: balance; }
.bt-404__text { max-width: 46ch; margin: 0 0 26px; font-size: 1.1rem; font-weight: 500; }
.bt-404 .bt-search--big { width: 100%; }

/* ==========================================================================
   Motion: hero entrance, tilt, footer wave (JS-only, reduced motion off)
   ========================================================================== */
@keyframes bt-rise { from { opacity: 0; translate: 0 45%; } }
@keyframes bt-drop { from { opacity: 0; translate: 0 -46px; scale: .92; } }
@keyframes bt-stamp { 0% { opacity: 0; scale: 1.8; } 60% { opacity: 1; scale: .92; } 100% { scale: 1; } }
@keyframes bt-hop { 0%, 100% { translate: 0 0; } 40% { translate: 0 -.12em; } }
.js .bt-hero__line { animation: bt-rise .8s var(--spring) backwards; animation-delay: calc(var(--i, 0) * 90ms + 80ms); }
.js .bt-polaroid { animation: bt-drop .9s var(--spring) backwards; }
.js .bt-polaroid--1 { animation-delay: .25s; }
.js .bt-polaroid--2 { animation-delay: .4s; }
.js .bt-polaroid--3 { animation-delay: .55s; }
.js .bt-hero__burst, .js .bt-hero__cod { animation: bt-stamp .7s var(--spring) .8s backwards; }
.bt-hero__collage[data-tilt] .bt-polaroid { translate: calc(var(--px, 0) * var(--depth, 10px)) calc(var(--py, 0) * var(--depth, 10px)); }
.bt-polaroid--1 { --depth: 9px; }
.bt-polaroid--2 { --depth: 16px; }
.bt-polaroid--3 { --depth: 12px; }
.bt-hero__burst { translate: calc(var(--px, 0) * -14px) calc(var(--py, 0) * -14px); }
.bt-tapes:hover .bt-tape__track { animation-play-state: paused; }

/* ==========================================================================
   Reveal animation (only when JS added .bt-anim)
   ========================================================================== */
.bt-anim .bt-reveal:not(.is-in) { opacity: 0; transform: translateY(36px) scale(.97); }
.bt-anim .bt-reveal { transition: opacity .7s var(--ease) var(--d, 0ms), transform .9s var(--spring) var(--d, 0ms), box-shadow .45s var(--spring); }
.bt-anim .bt-reveal.is-in:hover { transition-delay: 0ms; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1240px) {
    .bt-header__nav .bt-hlink:last-child { display: none; }
    .bt-board {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas: "contact info" "shop facts" "brands brands";
    }
    .bt-ffacts { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
    :root { --header-h: 72px; }
    .bt-burger { display: inline-grid; }
    .bt-header__nav { display: none; }
    .bt-header__bar { gap: 12px; padding: 8px 10px; border-radius: 22px; }
    .bt-cartbtn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .bt-cartbtn { width: 56px; padding: 0; justify-content: center; }
    ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bt-hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
    .bt-hero__collage { min-height: 480px; }
    .bt-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-hero__burst { width: 116px; }
    .bt-hero__cod { width: 100px; height: 100px; font-size: .7rem; }
    .bt-hero__collage .bt-polaroid__cat { display: none; }
    .bt-catgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-catgrid > :first-child { grid-column: span 2; grid-row: span 1; min-height: 300px; }
    .bt-catgrid > :first-child .bt-cattile__art { height: 94%; max-width: 46%; right: 4%; bottom: -8%; }
    /* Seven tiles: 1 wide + 3 rows of pairs, so Триони and Други sit side by side. */
    .bt-catgrid > :nth-child(6), .bt-catgrid > :nth-child(7) { grid-column: span 1; }
    /* Two wide columns: the art can grow, the title still sits well clear of it. */
    .bt-catgrid > :not(:first-child) .bt-cattile__art { height: 92%; max-width: 44%; right: 2%; bottom: -12%; }
    .bt-picks__grid { grid-template-columns: 1fr; }
    ul.products.bt-grid--picks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-pmain { grid-template-columns: 1fr; }
    .bt-pmain > .bt-gallery { position: relative; top: 0; max-width: 680px; width: 100%; justify-self: center; }
    .bt-gallery__stage--tall { max-height: none; }
    .bt-pmain > .summary { grid-column: 1; margin-top: 34px; }
    .bt-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-pmain > .summary { max-width: 680px; width: 100%; justify-self: center; }
    .bt-flowpage--cart .woocommerce:has(.woocommerce-cart-form), .bt-flowpage--checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
    .bt-flowpage--cart .cart-collaterals, form.checkout > .bt-co-side { position: static; grid-column: 1 !important; grid-row: auto !important; margin-top: 28px; }
    .bt-info__grid { grid-template-columns: 1fr; }
    .bt-infotop { grid-template-columns: 1fr; }
    .bt-info__aside { position: static; grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
    .bt-hero__grid { grid-template-columns: 1fr; grid-template-areas: "main" "collage" "stats"; }
    .bt-hero__collage { min-height: 520px; }
    .bt-brandgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-deals__head { grid-template-columns: auto minmax(0, 1fr); }
    .bt-deals__head .bt-rail__nav { display: none; }
    .bt-stks { grid-template-columns: 1fr; gap: 14px; }
    .bt-stks::before { left: 40px; right: auto; top: 20px; bottom: 20px; border-top: 0; border-left: 3px dashed var(--navy); }
    .bt-final__strip { grid-template-columns: 1fr; }
    .bt-stk--link { justify-self: start; }
    .bt-board { grid-template-areas: "contact contact" "shop info" "facts facts" "brands brands"; }
    .bt-ffacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-thanks__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bt-flowpage--received .woocommerce-order > .woocommerce-order-details, .bt-flowpage--received .woocommerce-order > .woocommerce-customer-details { grid-column: 1 / -1; }
    .bt-archead { grid-template-columns: 1fr; }
    .bt-archead__art { position: absolute; right: 16px; bottom: 16px; margin: 0; opacity: .95; }
    .bt-archead__art svg { width: 110px; }
    .bt-archead__text { padding-right: 90px; }
    .bt-stickybar {
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: 10px;
        z-index: 70;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 10px 10px 10px 16px;
        background: var(--paper);
        border: var(--bw) solid var(--navy);
        border-radius: 20px;
        box-shadow: var(--sh);
        transform: translateY(160%);
        transition: transform .45s var(--spring);
    }
    .bt-stickybar.is-on { transform: none; }
    .bt-stickybar__info { display: grid; gap: 2px; min-width: 0; flex: 1; }
    .bt-stickybar__title { overflow: hidden; font-weight: 700; font-size: .85rem; text-overflow: ellipsis; white-space: nowrap; }
    .bt-stickybar__price { font: 400 1.2rem/1 var(--font-num); letter-spacing: -.03em; }
    .bt-stickybar__price del { margin-right: 6px; font: 600 .85rem var(--font); }
    .bt-stickybar__price ins { text-decoration: none; }
    /* Room under the footer so the bar never covers its last line. */
    .single-product .bt-footer { padding-bottom: 88px; }
    body.bt-bar-on .bt-toast { bottom: 96px; }
}

@media (max-width: 700px) {
    :root { --r: 18px; --r-lg: 22px; --sh: 4px 4px 0 var(--navy); --sh-lg: 7px 7px 0 var(--navy); --header-h: 64px; }
    .bt-header { padding-top: 8px; }
    .bt-header__bar { min-height: 64px; gap: 8px; padding: 7px 8px; border-radius: 20px; }
    .bt-header.is-scrolled .bt-header__bar { min-height: 60px; }
    .bt-search--header { display: none; }
    .bt-searchtoggle { display: inline-grid; margin-left: auto; transition: transform .45s var(--spring), opacity .2s, visibility 0s; }
    /* While the full-width search row is on screen, the header icon would be a second search: keep its slot, hide it. */
    html.bt-srow:not(.bt-srow-out) .bt-searchtoggle { transform: scale(.2) rotate(-30deg); opacity: 0; visibility: hidden; transition: transform .25s var(--ease), opacity .2s, visibility 0s .25s; }
    /* Category chips only on the home page on phones (archives have their own filters; other pages stay compact). */
    body:not(.home) .bt-catnav { display: none; }
    .bt-iconbtn { width: 46px; height: 46px; }
    .bt-cartbtn { width: 50px; height: 46px; border-radius: 14px; }
    .bt-cartbtn__count { top: -10px; right: -10px; min-width: 28px; height: 28px; font-size: .8rem; }
    .bt-logo__mark { width: 38px; height: 38px; }
    .bt-logo__word { font-size: 1.5rem; }
    .bt-subhead { margin-top: 12px; }
    .bt-search--mobile { display: flex; height: 54px; margin-bottom: 10px; background: var(--paper); }
    body:not(.home) .bt-search--mobile { margin-bottom: 2px; }
    .bt-catnav { margin-inline: calc(-1 * var(--gutter)); }
    .bt-catnav__list { padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
    .bt-chip { min-height: 42px; font-size: .9rem; }

    .bt-hero__grid { gap: 16px; }
    .bt-hero__main { padding: 26px 20px 24px; }
    .bt-hero__cta .bt-btn { flex: 1 1 auto; }
    .bt-hero__collage { min-height: 360px; }
    .bt-hero__collage .bt-polaroid { width: 47%; padding: 7px 7px 9px; border-radius: 16px; gap: 7px; }
    .bt-hero__collage .bt-polaroid__img { border-radius: 10px; }
    .bt-hero__collage .bt-polaroid__meta { display: none; }
    .bt-hero__collage .bt-polaroid__cap { justify-content: flex-end; }
    .bt-polaroid__price { font-size: .75rem; padding: 4px 6px; }
    .bt-polaroid__sticker { width: 58px; top: -12px; right: -10px; }
    .bt-hero__collage .bt-polaroid--1 { left: 4%; top: 7%; }
    .bt-hero__collage .bt-polaroid--2 { right: 4%; top: 15%; }
    .bt-hero__collage .bt-polaroid--3 { display: none; }
    .bt-hero__burst { width: 104px; right: auto; left: 50%; bottom: 5%; margin-left: -20px; }
    .bt-hero__cod { width: 86px; height: 86px; font-size: .62rem; top: auto; bottom: 6%; left: 6%; }
    .bt-hero__cod .bt-i { width: 22px; height: 22px; }
    .bt-hero__stats { gap: 12px; }
    .bt-stat { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px 14px 16px; }
    .bt-stat__txt { font-size: .84rem; }

    .bt-tapes { height: 150px; }
    .bt-tape--a { top: 40%; transform: translateY(-50%) rotate(-4deg); }
    .bt-tape--b { top: 62%; transform: translateY(-50%) rotate(3deg); }
    .bt-tape__group li { padding-block: 12px; gap: 18px; padding-right: 18px; }
    .bt-star { width: 18px; height: 18px; }

    .bt-shead { margin-bottom: 24px; }
    .bt-shead__link { min-height: 46px; padding: .6em 1.1em; font-size: .95rem; }
    .bt-catgrid { gap: 14px; grid-auto-rows: minmax(160px, auto); }
    .bt-catgrid > :first-child { min-height: 230px; padding: 22px; }
    .bt-cattile { min-height: 160px; padding: 16px; }
    .bt-cattile__name { font-size: 1.16rem; letter-spacing: -.03em; }
    .bt-cattile__count { font-size: .72rem; padding: 4px 8px; }
    .bt-cattile__go { width: 36px; height: 36px; left: 14px; bottom: 14px; }
    .bt-catgrid > :first-child .bt-cattile__go { left: 22px; bottom: 20px; width: 44px; height: 44px; }
    .bt-cattile__go .bt-i { width: 18px; height: 18px; }
    .bt-cattile__art,
    .bt-catgrid > :not(:first-child) .bt-cattile__art { height: 62%; max-width: 66%; right: -7%; bottom: -6%; }
    .bt-catgrid > :first-child .bt-cattile__art { height: 80%; max-width: 50%; right: -3%; bottom: -6%; }
    .bt-cattile.bt-cattile--mini { min-height: 112px; padding: 12px 14px; }
    .bt-cattile--mini .bt-cattile__art { height: 66%; max-width: 52%; right: -4%; bottom: -8%; }

    ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .bt-card__media { margin: 7px 7px 0; border-radius: 12px; }
    .bt-card__sticker { width: 56px; top: -12px; right: -9px; }
    .bt-card__body { padding: 10px 11px 12px; gap: 7px; }
    .bt-card__brand { font-size: .62rem; padding: 4px 7px 3px; }
    .bt-card__title { font-size: .9rem; line-height: 1.26; }
    .bt-card__foot { gap: 6px; }
    .bt-card__foot .price ins, .bt-card__foot .price > .amount { font-size: 1.08rem; }
    .bt-card__foot .price del { font-size: .85rem; }
    .bt-atc { width: 42px !important; height: 42px; }
    .bt-atc .bt-i { width: 20px; height: 20px; }
    ul.products li.product:hover { transform: none; box-shadow: var(--sh); }

    .bt-grid--picks { gap: 14px; }
    .bt-feature__sticker { width: 92px; top: -16px; right: -10px; }
    .bt-feature__body { padding: 18px; }
    .bt-feature__cta .bt-btn { flex: 1 1 auto; }
    .bt-deals { --slant: 22px; }
    .bt-deals__head { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 6px 12px; }
    .bt-deals__text { grid-column: 1 / -1; grid-row: 2; }
    .bt-deals__mega { grid-column: 2; grid-row: 1; width: 118px; margin: -6px 4px -40px 0; }
    .bt-deals .bt-shead__title { max-width: 10ch; }
    .bt-deals__sub { margin-top: 10px; font-size: .95rem; }
    .bt-rail { padding: 26px 0 26px; }
    .bt-rail__list li.product { width: 62vw; }

    .bt-brandgrid { gap: 14px; }
    .bt-brandtile { min-height: 118px; padding: 14px 16px; }
    .bt-brandtile__name { max-width: 100%; font-size: clamp(1.25rem, 5.8vw, 1.7rem); letter-spacing: -.04em; overflow-wrap: anywhere; }
    .bt-brandtile::before { display: none; }
    .bt-brandtile__count { top: 12px; left: 14px; font-size: .7rem; }
    .bt-brandtile__go { width: 34px; height: 34px; top: 10px; right: 10px; }

    .bt-final__panel { padding: 30px 18px 20px; }
    .bt-final__top { padding-bottom: 96px; }
    .bt-final__art--1 { right: 36%; top: 250px; width: 96px; }
    .bt-final__art--2 { right: 4%; top: 230px; width: 118px; }
    .bt-final__art--3 { display: none; }
    .bt-final__strip { margin-top: 22px; padding: 18px 14px 20px; rotate: 0deg; }
    .bt-stk { padding: 10px 14px 10px 10px; gap: 12px; }
    .bt-stk__n { width: 50px; height: 50px; font-size: 1.35rem; }
    .bt-stk__t { font-size: .88rem; }
    .bt-stk__t strong { font-size: 1.08rem; }

    .bt-footer { border-radius: 26px 26px 0 0; }
    .bt-board { grid-template-columns: minmax(0, 1fr); grid-template-areas: "contact" "shop" "facts" "info" "brands"; gap: 28px; }
    .bt-ftile { padding: 24px 20px 20px; }
    .bt-ftile--contact { padding: 26px 20px 24px; }
    .bt-ftile--contact .bt-logo__word { font-size: 2.1rem; }
    .bt-ftile__tag { margin-bottom: 18px; padding-right: 96px; }
    .bt-stamp { top: -30px; right: -6px; bottom: auto; width: 108px; }
    .bt-ffacts { grid-template-columns: 1fr; gap: 12px; }
    .bt-ftile--brands { padding: 18px 16px; }
    .bt-fbrands a { font-size: .9rem; padding: 7px 11px 6px; }
    .bt-footer__bottom { flex-direction: column; align-items: flex-start; }

    .bt-archead { padding: 22px 20px; }
    .bt-archead__text { padding-right: 0; }
    .bt-archead__title { font-size: clamp(2.2rem, 11vw, 3.2rem); }
    .bt-archead__lead { font-size: .98rem; }
    .bt-archead__art { display: none; }
    .bt-archead__sticker { width: 80px; top: 12px; right: 12px; }
    .bt-brandtape { margin: -24px calc(-1 * var(--gutter)) 16px; padding: 0; }
    .bt-brandtape__list { flex-wrap: nowrap; gap: 10px; padding: 8px var(--gutter) 12px; overflow-x: auto; scrollbar-width: none; }
    .bt-brandtape__list::-webkit-scrollbar { display: none; }
    .bt-btag { min-height: 44px; gap: 8px; padding: 5px 6px 5px 12px; font-size: .88rem; }
    .bt-btag__n { min-width: 26px; height: 26px; font-size: .74rem; }
    .bt-catstrip__list li { width: 128px; }
    .bt-ctile { min-height: 136px; padding: 10px 12px 12px; border-radius: 18px; }
    .bt-ctile__name { font-size: 1rem; }
    .bt-card--feature .bt-card__sticker { width: 116px; top: -20px; right: -8px; }
    .bt-card--feature .bt-card__body { padding: 16px 16px 18px; }
    .bt-card--feature .bt-atc { height: 52px; }
    .bt-card--wide .bt-card__title { font-size: 1rem; }
    .bt-archead .bt-kicker { margin-bottom: 12px; }
    .bt-toolbar { padding: 10px 10px 10px 14px; }
    .woocommerce-result-count { font-size: .88rem; }
    .woocommerce-ordering { width: 100%; }
    .woocommerce-ordering select { width: 100%; }

    .bt-gallery__sticker { width: 96px; top: -16px; right: -8px; }
    .bt-single .product_title { font-size: clamp(1.7rem, 7.4vw, 2.2rem); }
    .bt-single .bt-ptitle--long { font-size: clamp(1.45rem, 6.2vw, 1.8rem); }
    .bt-single .bt-ptitle--xl { font-size: clamp(1.3rem, 5.4vw, 1.55rem); }
    .bt-ticket { --sh-x: 4px; --notch: 14px; }
    .bt-ticket__top { padding: 16px 18px 20px; }
    .bt-ticket__perf { margin-inline: 18px; }
    .bt-ticket__perf::before { left: calc(-18px - var(--bw) / 2 - var(--notch)); }
    .bt-ticket__perf::after { right: calc(-18px - var(--bw) / 2 - var(--notch)); }
    .bt-ticket form.cart { padding: 20px 18px 24px; }
    .bt-pricebox { gap: 10px 18px; }
    .bt-pricebox__now { font-size: 2.4rem; }
    /* Five seals: one row while they fit, otherwise a 3 + 2 cluster of stickers (text stays legible). */
    .bt-seals__list { justify-content: center; padding: 0 0 0 6px; }
    .bt-seal { width: 100px; margin-right: -6px; }
    .bt-seal__i { width: 20px; height: 20px; margin-bottom: 0; }
    .bt-seal__big { font-size: .86rem; }
    .bt-seal__small { font-size: .6rem; letter-spacing: .03em; }
    .bt-seal__in { padding: 0 4px; gap: 2px; }
    form.cart { grid-template-columns: 1fr; }
    form.cart .quantity { justify-self: stretch; justify-content: space-between; }
    form.cart .quantity input.qty { flex: 1; }
    .bt-bento { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .bt-dcard--wide { grid-column: auto; }
    .bt-dcard { padding: 22px 18px 20px; }
    .bt-bento .bt-dcard .bt-dcard__title { margin: -38px 0 16px -6px; font-size: 1.06rem; }
    .bt-dcard--wide .bt-list--check { grid-template-columns: 1fr; }
    .bt-dcard--wide .bt-list--check > li:nth-last-child(2):nth-child(odd) { border-bottom: 2px dashed rgba(16, 25, 74, .2); }
    .bt-dcard--intro { padding: 24px 18px; }
    .bt-dcard--intro > p:first-child { font-size: 1.08rem; }
    .bt-bento .bt-dcard .bt-dcard__lead { font-size: 1.35rem; }
    .bt-dcard--intro p { font-size: 1rem; }
    .bt-dtile__pct { margin-top: 26px; font-size: 4rem; }
    .bt-prose { font-size: 1rem; }
    .bt-list--check > li { padding: 11px 12px 11px 46px; font-size: .96rem; }
    .bt-list--check > li::before { left: 11px; top: 11px; }
    .bt-dspec > div { grid-template-columns: 1fr; gap: 2px; padding: 10px 14px; }
    .bt-dspec dt { font-size: .86rem; }

    .bt-progress { width: 100%; justify-content: space-between; padding: 6px; }
    .bt-crumbs li:last-child { display: none; }
    .bt-crumbs:not(:has(li:nth-child(3))) { display: none; }
    .bt-empty__cats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
    .bt-empty__cats .bt-chip--lg { min-height: 48px; padding: 6px 10px 6px 8px; font-size: .86rem; white-space: normal; line-height: 1.15; text-align: left; }
    .bt-empty__cats .bt-chip--lg .bt-chip__art { width: 30px; height: 30px; flex: none; }
    .bt-progress li { padding: 3px 10px 3px 3px; font-size: .85rem; }
    .bt-progress li + li::before { display: none; }
    .bt-flowhead { margin-bottom: 22px; }
    /* The remove button becomes a round sticker on the card's corner, so long names get the full width. */
    table.shop_table.cart tr.cart_item {
        grid-template-columns: 72px minmax(0, 1fr) auto;
        grid-template-areas: "thumb name name" "thumb price price" "qty qty subtotal";
        gap: 8px 14px;
        padding: 14px 16px 14px 12px;
    }
    table.shop_table.cart td.product-thumbnail { align-self: start; }
    table.shop_table.cart td.product-thumbnail img { width: 72px; height: 72px; }
    table.shop_table.cart td.product-name { padding-right: 18px !important; font-size: .98rem; }
    table.shop_table.cart td.product-remove { position: absolute; top: -12px; right: -10px; z-index: 2; }
    table.shop_table.cart a.remove { width: 36px; height: 36px; box-shadow: var(--sh-sm); }
    table.shop_table.cart td.product-price { align-self: start; font-size: .85rem; }
    table.shop_table.cart td.product-subtotal { min-width: 0; font-size: 1.2rem; }
    table.shop_table.cart td.product-quantity { margin-top: 4px; }
    table.shop_table.cart td.actions { flex-direction: column; align-items: stretch; }
    .coupon { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .woocommerce-cart-form .coupon input.input-text { width: 100%; }
    .coupon .button { padding-inline: 1em; }
    #customer_details { padding: 18px 16px; }
    #customer_details h3 { margin-bottom: 16px; font-size: 1.4rem; }
    .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
    .woocommerce-billing-fields__field-wrapper > .form-row-first, .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 1; }
    .bt-co-side { padding: 18px 16px; }
    .bt-thanks__title { padding-right: 0; margin-top: 46px; }
    .bt-thanks__sticker { width: 92px; right: 14px; top: -24px; }
    .bt-thanks__steps { grid-template-columns: 1fr; }
    .bt-thanks__foot { margin-top: 20px; }
    .bt-thanks__foot .bt-btn { width: 100%; }
    .bt-thanks__help { align-items: flex-start; font-size: .92rem; }

    .bt-infohead__title { padding-right: 0; }
    .bt-infohead__sticker { width: 70px; top: -14px; right: 14px; }
    .bt-info__aside { grid-template-columns: 1fr; }
    /* The footer right below repeats the contact card and the four facts: don't show them twice on phones. */
    .bt-infotop > .bt-helpcard, .bt-helpcard--m, .bt-infofacts { display: none; }
    .bt-info__body { padding: 22px 18px; }
    .bt-404__sticker { width: 64px; top: -22px; right: -18px; }
    .bt-toast { left: 12px; right: 12px; bottom: 12px; }
    .bt-toast__text { flex: 1; font-size: .92rem; }
}

/* Phones: product photos inside the first screen (compact polaroid strip), one primary CTA. */
@media (max-width: 600px) {
    .bt-hero__grid { grid-template-areas: "main" "stats"; }
    .bt-hero__collage { display: none; }
    .bt-hero__main { padding: 22px 18px 22px; }
    .bt-hero__main .bt-pill { margin-bottom: 12px; font-size: .72rem; }
    .bt-hero__title { margin-bottom: 8px; font-size: clamp(2.25rem, 10.6vw, 2.6rem); }
    .bt-hero__strip { display: flex; justify-content: center; margin: 0 -6px 14px; padding-top: 16px; }
    .bt-hero__strip .bt-polaroid { flex: none; width: 34%; padding: 5px 5px 7px; gap: 6px; border-radius: 13px; box-shadow: 3px 3px 0 var(--navy); }
    .bt-hero__strip .bt-polaroid + .bt-polaroid { margin-left: -4%; }
    .bt-hero__strip .bt-polaroid--1 { rotate: -7deg; translate: 0 6px; z-index: 1; }
    .bt-hero__strip .bt-polaroid--2 { rotate: 4deg; translate: 0 -4px; z-index: 3; }
    .bt-hero__strip .bt-polaroid--3 { rotate: -3deg; translate: 0 8px; z-index: 2; }
    .bt-hero__strip .bt-polaroid__img { border-radius: 8px; }
    .bt-hero__strip .bt-polaroid__cap { justify-content: center; padding: 0; }
    .bt-hero__strip .bt-polaroid__price { font-size: .72rem; padding: 3px 6px; border-radius: 7px; }
    .bt-hero__strip .bt-polaroid__sticker { width: 46px; top: -14px; right: -10px; }
    /* The middle card overlaps the first one's right corner: its sticker goes left. */
    .bt-hero__strip .bt-polaroid--1 .bt-polaroid__sticker { right: auto; left: -10px; rotate: -12deg; }
    .bt-hero__lead { margin-bottom: 16px; font-size: .98rem; line-height: 1.5; }
    .bt-hero__cta { flex-direction: column; align-items: stretch; gap: 8px; }
    .bt-hero__cta .bt-btn--lg { min-height: 58px; }
    /* Secondary action as a text link. */
    .bt-hero__cta .bt-hero__alt {
        min-height: 40px;
        padding: 4px 0;
        font-size: 1rem;
        background: none;
        border: 0;
        box-shadow: none;
        text-decoration: underline;
        text-decoration-thickness: 2px;
        text-underline-offset: 4px;
    }
    .bt-hero__cta .bt-hero__alt:hover, .bt-hero__cta .bt-hero__alt:active { transform: none; box-shadow: none; text-decoration-color: var(--orange); }
    .bt-hero__alt .bt-btn__art { width: 26px; height: 26px; margin: 0; }
}

/* Phones: the five seals no longer fit in one row, so they sit as a 3 + 2 pyramid of stickers. */
@media (max-width: 520px) {
    .bt-seals__list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); max-width: 300px; margin: 0 auto; padding: 0; }
    .bt-seal { grid-column: span 2; justify-self: center; width: 104px; margin: 0; }
    .bt-seal:nth-child(4) { grid-column: 2 / span 2; margin-top: -18px; }
    .bt-seal:nth-child(5) { grid-column: 4 / span 2; margin-top: -18px; }
    .bt-seals__more { justify-content: center; }
}

@media (max-width: 480px) {
    .bt-404__num { font-size: clamp(5.6rem, 27vw, 7rem); }
}

@media (max-width: 380px) {
    .bt-logo__word { font-size: 1.3rem; }
    .bt-hero__cta .bt-btn { width: 100%; }
    .bt-card__title { font-size: .86rem; }
}

@media (hover: none) {
    ul.products li.product:hover, .bt-cattile:hover, .bt-brandtile:hover, .bt-feature:hover, .bt-ctile:not(.is-current):hover, .bt-ftile:hover { transform: none; }
    ul.products li.product:hover, .bt-cattile:hover, .bt-brandtile:hover, .bt-feature:hover { box-shadow: var(--sh); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
    .bt-tape__track { animation: none !important; }
    .bt-404__bolt, .bt-stamp svg { animation: none !important; }
}

@media print {
    .bt-header, .bt-subhead, .bt-footer, .bt-stickybar, .bt-toast, .bt-drawer { display: none !important; }
    body { background: #fff; }
}

/* Keyboard focus lifts the whole card */
ul.products li.product:has(.bt-card__link:focus-visible) { transform: translate(-3px, -5px); box-shadow: 9px 11px 0 var(--orange); }

/* Password field eye toggle (WooCommerce login) */
.password-input { position: relative; display: block; }
.password-input input.input-text { padding-right: 56px; }
.show-password-input {
    position: absolute;
    right: 10px;
    top: 50%;
    width: 38px;
    height: 38px;
    margin-top: -19px;
    padding: 0;
    background: var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310194A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") no-repeat center / 20px;
    border: 2px solid var(--navy);
    border-radius: 10px;
    cursor: pointer;
}
.show-password-input.display-password { background-color: var(--lemon); }

/* Without JavaScript the drawer cannot open: rely on the visible search + category chips instead. */
html:not(.js) .bt-burger, html:not(.js) .bt-searchtoggle { display: none !important; }
@media (max-width: 700px) { html:not(.js) .bt-cartbtn { margin-left: auto; } }
