/* EBTC (Estonian Beach Tennis Club) — template stylesheet, built from the demo's assets/css/style.css with every
   class prefixed bt- (the editor canvas shares the admin document). Fonts: Bebas Neue + Roboto Condensed (layout.php). */
/* ==========================================================================
   EBTC — Estonian Beach Tennis Club
   Design system: "Kuld" (gold/black) — white-dominant, black structure,
   a single gold trim carrying every accent. Photography runs in full
   colour; the sponsor strip is the one deliberate exception, kept
   grayscale so partner logos read as one uniform row.
   Dark (ink) is reserved for deliberate punctuation only: the cinematic
   hero, subpage photo headers, closing CTA bands and the footer.
   ========================================================================== */

:root{
  --ink:#141414;
  --ink-2:#1F1F1F;
  --navy:#1A1A1A;
  --navy-deep:#0D0D0D;
  --paper:#FFFFFF;
  --paper-2:#FFFFFF;
  --white:#FFFFFF;
  --muted:#666257;
  --muted-on-dark:#A3A39D;
  --amber:#C6A24C;
  --amber-deep:#9C7C2E;
  --line:rgba(20,20,20,.13);
  --line-on-dark:rgba(255,255,255,.14);

  --font-display:'Bebas Neue','Arial Narrow',sans-serif;
  --font-body:'Roboto Condensed','Arial Narrow',sans-serif;

  --wrap:1240px;
  /* Must stay >= the rendered header height: the header is position:fixed, and
     every page-header/section top offset is derived from this. The logo is the
     tallest thing in the bar (its SVG is 197x226, so height = width x 1.144). */
  --nav-h:140px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
main {
  flex: 1;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3{font-family:var(--font-display);font-weight:400;text-transform:uppercase;margin:0;letter-spacing:.01em;color:var(--ink);}
p{margin:0;}
.bt-icon{width:1em;height:1em;}

.bt-wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px;}
/* phones: match the header's 20px gutter so content lines up with the logo */
@media (max-width:600px){ .bt-wrap{padding:0 20px;} }
.bt-skip-link{position:absolute;left:-999px;top:0;background:var(--amber);color:var(--ink);padding:10px 16px;z-index:999;font-weight:700;}
.bt-skip-link:focus{left:16px;top:16px;}

:focus-visible{outline:2px solid var(--amber);outline-offset:3px;}

/* ---- type scale ---- */
.bt-h1{font-size:clamp(2.6rem,5.6vw,4.4rem);line-height:.98;}
.bt-h2{font-size:clamp(2rem,4vw,3rem);line-height:1.02;}
.bt-h3{font-size:1.5rem;line-height:1.1;}
.bt-lede{font-size:1.1rem;line-height:1.6;color:var(--muted);font-weight:300;max-width:56ch;}
.bt-lede-on-light{color:var(--muted);}
.bt-lede-on-dark{color:rgba(255,255,255,.78);}

/* ---- tag: the one recurring device ---- */
.bt-tag{
  display:inline-flex;align-items:center;
  background:var(--navy);color:var(--white);
  font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;
  padding:7px 12px;white-space:nowrap;
}
.bt-tag-amber{background:var(--amber);color:var(--ink);}
.bt-tag-outline{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55);}
.bt-tag-outline-ink{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);}

/* ---- buttons — ink-on-paper is the default register; on-dark restores
   the light version for the hero/page-header/CTA/footer bands ---- */
.bt-btn{
  display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);font-weight:700;font-size:14px;
  letter-spacing:.03em;text-transform:uppercase;padding:16px 30px;border:none;cursor:pointer;
  transition:transform .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}
.bt-btn-primary{background:var(--amber);color:var(--ink);}
.bt-btn-primary:hover{background:var(--amber-deep);}
.bt-btn-outline{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);background:transparent;}
.bt-btn-outline:hover{box-shadow:inset 0 0 0 1.5px var(--amber-deep);color:var(--amber-deep);}
.bt-btn-outline-ink{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);background:transparent;}
.bt-btn-outline-ink:hover{box-shadow:inset 0 0 0 1.5px var(--amber-deep);color:var(--amber-deep);}
.bt-btn-outline-on-dark{color:var(--white);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5);background:transparent;}
.bt-btn-outline-on-dark:hover{box-shadow:inset 0 0 0 1.5px var(--white);}
.bt-btn-white{background:var(--white);color:var(--ink);}
.bt-btn-white:hover{background:rgba(255,255,255,.85);}
.bt-btn-ghost{color:var(--ink);border-bottom:2px solid var(--ink);padding:4px 0;font-weight:500;background:none;}
.bt-btn-ghost:hover{border-color:var(--amber-deep);color:var(--amber-deep);}
.bt-btn-ghost-dark{color:var(--ink);border-bottom:2px solid var(--ink);padding:4px 0;font-weight:500;background:none;}
.bt-btn-ghost-dark:hover{border-color:var(--amber-deep);color:var(--amber-deep);}
/* The rule has to sit tight under the label, which leaves the box 27px tall —
   under half a finger. The target is padded out to 44px with an overlay so the
   hit area grows without moving the underline away from the text. */
.bt-btn-ghost,.bt-btn-ghost-dark{position:relative;}
.bt-btn-ghost::after,.bt-btn-ghost-dark::after{
  content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:44px;
}
.bt-on-dark.bt-btn-ghost{color:var(--white);border-bottom-color:rgba(255,255,255,.5);}
.bt-on-dark.bt-btn-ghost:hover{border-color:var(--amber);color:var(--amber);}
.bt-btn-sm{padding:22px 40px;font-size:25px;}
.bt-btn[disabled]{opacity:.5;cursor:not-allowed;}

/* House detail: filled buttons carry the same clipped corner as the angled
   photo edge in the rally cards, and any button with an icon nudges it along
   on hover. Outline/ghost buttons keep square corners on purpose — a clipped
   corner would cut their own border and read as a rendering fault. */
.bt-btn-primary,.bt-btn-white{
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 11px), calc(100% - 11px) 100%, 0 100%);
}
.bt-btn .bt-icon{transition:transform .25s cubic-bezier(.2,.8,.2,1);}
.bt-btn:hover .bt-icon{transform:translateX(4px);}
@media (prefers-reduced-motion:reduce){
  .bt-btn .bt-icon{transition:none;}
  .bt-btn:hover .bt-icon{transform:none;}
}

/* ==========================================================================
   Site header / nav — always sits over a dark band (hero or page-header)
   ========================================================================== */
.bt-site-header{
  position:fixed;top:0;left:0;right:0;z-index:30;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:24px;
  padding:15px 56px;
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:opacity .3s ease, visibility 0s linear 0s, border-color .3s ease;
}
/* At rest the bar sits on the page-header's own dark band, where the rule reads
   as a stray line drawn across it rather than an edge. It fades in once content
   starts passing underneath. main.js sets both classes; with no JS neither is
   set and the rule stays permanently, as before. */
body.bt-chrome-js:not(.bt-is-scrolled) .bt-site-header{border-bottom-color:transparent;}
/* Blur lives on a sibling layer, not on .site-header itself: backdrop-filter on an
   element makes it the containing block for its own position:fixed descendants —
   nav.mainnav-mobile (fixed;inset:0) is exactly such a descendant, and would otherwise
   be trapped inside the header's own thin box instead of covering the viewport when open. */
.bt-site-header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:rgba(10,10,10,.4);
  backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
}
.bt-brand{display:flex;align-items:center;justify-content:flex-start;color:var(--white);justify-self:start;}
.bt-brand .bt-ebtc-logo{width:90px;height:auto;}

nav.bt-mainnav{display:flex;align-items:center;justify-content:center;gap:28px;justify-self:center;}
nav.bt-mainnav a {
  position: relative;
  font-size: 18px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  padding: 10px 18px;
  overflow: hidden;
  transition: color 0.3s ease;
  z-index: 1;
}
nav.bt-mainnav a::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: var(--amber);
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: -1;
}
nav.bt-mainnav a:hover {
  color: var(--ink);
}
nav.bt-mainnav a:hover::before {
  transform: translateY(0);
}
nav.bt-mainnav a.bt-active {
  color: var(--ink);
}
nav.bt-mainnav a.bt-active::before {
  transform: translateY(0);
}

/* Treeningud dropdown. The parent stays a real link to the hub page; the panel
   opens on hover and on keyboard focus (:focus-within), so it works without JS.
   The nav stretches to the bar's full height, so .subnav (top:100%) starts at the
   bar's padding edge; its padding-top = header padding + 1px border, which drops
   the panel flush under the bar and leaves no dead strip for the pointer to cross.
   The panel is part of the header band, so it takes the bar's ground. */
nav.bt-mainnav{align-self:stretch;}
.bt-nav-item{position:relative;display:flex;align-items:center;align-self:stretch;}
nav.bt-mainnav .bt-nav-item > a{display:inline-flex;align-items:center;gap:6px;}
nav.bt-mainnav .bt-nav-item > a .bt-icon{width:16px;height:16px;transition:transform .25s ease;}
.bt-nav-item:hover > a .bt-icon,
.bt-nav-item:focus-within > a .bt-icon{transform:rotate(180deg);}
.bt-subnav{
  position:absolute;top:100%;left:50%;min-width:280px;padding-top:16px;
  opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-6px);
  transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.bt-nav-item:hover .bt-subnav,
.bt-nav-item:focus-within .bt-subnav{
  opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);
  transition:opacity .2s ease, transform .2s ease, visibility 0s;
}
.bt-subnav ul{
  list-style:none;margin:0;padding:8px;
  background:rgba(10,10,10,.4);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);
}
nav.bt-mainnav .bt-subnav a{
  display:block;font-size:15px;letter-spacing:.06em;padding:12px 16px;
  white-space:nowrap;color:rgba(255,255,255,.85);
}
nav.bt-mainnav .bt-subnav a:hover,
nav.bt-mainnav .bt-subnav a.bt-active{color:var(--ink);}
@media (prefers-reduced-motion:reduce){
  .bt-subnav,.bt-nav-item:hover .bt-subnav,.bt-nav-item:focus-within .bt-subnav,
  nav.bt-mainnav .bt-nav-item > a .bt-icon{transition:none;}
}

/* nav.mainnav-mobile: element+class matches nav.mainnav's specificity so this
   actually wins the display:none below 980px — a bare .mainnav-mobile selector
   was losing to "nav.mainnav{display:flex}" and rendering as a permanent second row */
nav.bt-mainnav-mobile{display:none;}

.bt-header-actions{
  display:flex;align-items:center;gap:12px;
  justify-self:end;
}
.bt-header-socials{
  display:flex;align-items:center;gap:8px;
}
.bt-header-socials a{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;
  color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  transition:all .2s ease;
}
.bt-header-socials a:hover{
  background:var(--amber);
  border-color:var(--amber);
  color:var(--ink);
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(198,162,76,.25);
}
.bt-header-socials a .bt-icon{
  width:19px;height:19px;
}
.bt-nav-toggle{
  display:none;
  background:none;border:none;color:var(--white);cursor:pointer;padding:12px;
}
.bt-nav-toggle .bt-icon{width:34px;height:34px;}

/* ---- header cart icon: hidden until the session cart holds an item ---- */
.bt-header-cart{
  display:none;align-items:center;gap:6px;position:relative;
  color:var(--white);padding:8px;
}
.bt-header-cart.bt-is-visible{display:inline-flex;}
.bt-header-cart__icon{width:24px;height:24px;transition:transform .2s ease;}
.bt-header-cart:hover .bt-header-cart__icon{transform:scale(1.08);}
.bt-header-cart__count{
  position:absolute;top:0;right:0;
  min-width:17px;height:17px;padding:0 3px;border-radius:999px;
  background:var(--amber);color:var(--ink);
  font-size:10.5px;font-weight:700;line-height:17px;text-align:center;
  font-family:var(--font-body);
}
.bt-header-cart.bt-just-added .bt-header-cart__icon{animation:cartPop .5s ease;}
@keyframes cartPop{
  0%{transform:scale(1);} 35%{transform:scale(1.32);} 100%{transform:scale(1);}
}
@media (prefers-reduced-motion:reduce){
  .bt-header-cart__icon{transition:none;}
  .bt-header-cart.bt-just-added .bt-header-cart__icon{animation:none;}
}

/* hide-on-hero: homepage only, JS-driven, always visible without JS (see noscript in header.php) */
body.bt-has-cine-hero .bt-site-header{
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
body.bt-has-cine-hero .bt-site-header.bt-is-visible{
  opacity:1;visibility:visible;pointer-events:auto;
  transition:opacity .3s ease, visibility 0s linear 0s;
}
@media (prefers-reduced-motion:reduce){
  .bt-site-header,body.bt-has-cine-hero .bt-site-header,body.bt-has-cine-hero .bt-site-header.bt-is-visible{transition:none;}
}

/* The bar scales as one piece: whenever the logo shrinks, --nav-h comes down with
   it, or every page-header inherits dead space under a header that no longer
   fills it. */
@media (max-width: 1200px) {
  :root { --nav-h: 120px; }
  .bt-site-header { padding: 13px 28px; column-gap: 16px; }
  .bt-brand .bt-ebtc-logo { width: 78px; }
  nav.bt-mainnav { gap: 12px; }
  nav.bt-mainnav a { padding: 7px 11px; font-size: 15px; }
  .bt-subnav { padding-top: 14px; }
  .bt-header-socials a { width: 38px; height: 38px; }
  .bt-header-socials a .bt-icon { width: 17px; height: 17px; }
}

@media (max-width:980px){
  :root{--nav-h:112px;}
  .bt-site-header{display:flex;justify-content:space-between;padding:12px 31px;column-gap:24px;}
  /* the 981-1200px step above is not bounded below any more (one width condition per query,
     for the editor's device switch) — put the base link size back for the phone menu */
  nav.bt-mainnav a{padding:10px 18px;font-size:18px;}
  .bt-brand .bt-ebtc-logo{width:73px;}
  nav.bt-mainnav{display:none;}
  .bt-header-socials{display:none;}
  nav.bt-mainnav-mobile{
    /* It shares .mainnav, whose justify-self:center would otherwise shrink this
       fixed overlay to its content width and centre it (Box Alignment now applies
       to positioned boxes) — stretch restores the full-screen inset:0 box. */
    position:fixed;inset:0;z-index:40;background:var(--ink);justify-self:stretch;align-self:stretch;
    display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:30px;
    overflow-y:auto;padding-block:calc(var(--nav-h) + 8px) 40px;
    opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .25s ease, transform .25s ease;
  }
  .bt-mainnav-mobile.bt-open{opacity:1;pointer-events:auto;transform:translateY(0);}
  nav.bt-mainnav-mobile a{font-size:28px;}
  /* overflow:hidden on the links makes their flex min-height 0, so a tall menu
     would squash them and clip the text instead of scrolling. */
  nav.bt-mainnav-mobile > *,
  nav.bt-mainnav-mobile .bt-mobile-group > *,
  nav.bt-mainnav-mobile .bt-mobile-subnav > *{flex-shrink:0;}
  .bt-mobile-group{display:flex;flex-direction:column;align-items:center;gap:8px;}
  .bt-mobile-subnav{display:flex;flex-direction:column;align-items:center;gap:2px;}
  nav.bt-mainnav-mobile .bt-mobile-subnav a{font-size:17px;letter-spacing:.06em;padding:8px 14px;color:rgba(255,255,255,.65);}
  nav.bt-mainnav-mobile .bt-mobile-subnav a.bt-active{color:var(--ink);}
  .bt-mobile-socials{
    display:flex;align-items:center;gap:16px;margin-top:8px;
  }
  .bt-mobile-socials a{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:50%;
    color:rgba(255,255,255,.9);
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.15);
    transition:all .2s ease;
  }
  .bt-mobile-socials a:hover{
    background:var(--amber);color:var(--ink);border-color:var(--amber);
  }
  .bt-mobile-socials a .bt-icon{width:20px;height:20px;}
  /* .header-actions must out-stack nav.mainnav-mobile's z-index:40 (position:relative
     creates a stacking context here; position:static could not, since z-index has no
     effect on non-positioned elements) — otherwise the open full-screen mobile nav
     paints over the toggle button and it becomes both invisible and unclickable to close. */
  .bt-header-actions{position:relative;z-index:41;transform:none;right:auto;}
  .bt-nav-toggle{display:inline-flex;}
}

@media (max-width:600px){
  :root{--nav-h:100px;}
  .bt-site-header{padding:11px 20px;}
  .bt-brand .bt-ebtc-logo{width:65px;}
}

/* ==========================================================================
   Cinematic homepage hero
   ========================================================================== */
.bt-cine-hero{
  position:relative;width:100%;min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  overflow:hidden;background:var(--ink);padding:calc(var(--nav-h) + 30px) 0 40px;
}
.bt-cine-hero__bg{
  position:absolute;inset:0;z-index:0;
  width:100%;height:100%;
}
/* The hero photo is pale sand, and the headline's first line runs to ~80% of the
   width — past where the left-side wash fades out. The bottom band carries the
   white headline: measured at 1366/1440/1920, the title keeps >= 3:1 against the
   background behind 90% of its pixels. The top 30% stays untouched so the ball
   keeps its colour. (The old brightness(1.14) boost was tuned for the darker lake
   photo and pushed this one below 3:1, so it is gone.) */
.bt-cine-hero__vignette{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(0deg, rgba(8,8,8,.65) 0%, rgba(8,8,8,.5) 42%, rgba(8,8,8,0) 70%),
    linear-gradient(100deg, rgba(8,8,8,.6) 0%, rgba(8,8,8,.32) 32%, rgba(8,8,8,0) 58%),
    linear-gradient(0deg, rgba(8,8,8,.5) 0%, rgba(8,8,8,0) 20%, rgba(8,8,8,0) 78%, rgba(8,8,8,.4) 100%);
  pointer-events: none;
}
.bt-cine-hero__inner{position:relative;z-index:2;width:100%;}
.bt-cine-hero__center{
  text-align:left;max-width:36rem;
  display:flex;flex-direction:column;align-items:flex-start;gap:20px;
}
.bt-cine-hero__kicker{
  font-size:1.19rem;letter-spacing:.34em;text-transform:uppercase;color:var(--amber);font-weight:500;
  opacity:0;transform:translateY(16px);animation:cine-fade .9s cubic-bezier(.19,1,.22,1) .3s forwards;
}
.bt-cine-hero__logo{
  width:clamp(120px,min(15vw,20vh),220px);height:auto;color:var(--white);display:block;
  opacity:0;transform:translateY(16px);animation:cine-fade .9s cubic-bezier(.19,1,.22,1) .48s forwards;
}
.bt-cine-hero__desc{
  font-family:var(--font-body);font-size:clamp(1.9rem,3.6vw,2.75rem);font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--white);
  opacity:0;transform:translateY(16px);animation:cine-fade .9s cubic-bezier(.19,1,.22,1) .66s forwards;
}
.bt-cine-hero__sub{
  max-width:44ch;font-size:1.22rem;line-height:1.6;color:rgba(255,255,255,.68);font-weight:300;
  opacity:0;transform:translateY(16px);animation:cine-fade .9s cubic-bezier(.19,1,.22,1) .78s forwards;
}
.bt-cine-hero__actions{
  display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-start;margin-top:10px;
  opacity:0;transform:translateY(16px);animation:cine-fade .9s cubic-bezier(.19,1,.22,1) .92s forwards;
}
/* hero CTAs get their own lift-and-press feel — a bit more tactile than the
   flat color-swap used on buttons elsewhere on the site */
.bt-cine-hero__actions .bt-btn{transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, background .22s ease, color .22s ease;}
.bt-cine-hero__actions .bt-btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(198,162,76,.38);}
.bt-cine-hero__actions .bt-btn-primary:active{transform:translateY(-1px);box-shadow:0 5px 14px rgba(198,162,76,.32);}
.bt-cine-hero__actions .bt-btn-white:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(5,5,5,.3);}
.bt-cine-hero__actions .bt-btn-white:active{transform:translateY(-1px);box-shadow:0 5px 14px rgba(5,5,5,.26);}
@media (prefers-reduced-motion:reduce){
  .bt-cine-hero__actions .bt-btn,
  .bt-cine-hero__actions .bt-btn-primary:hover,.bt-cine-hero__actions .bt-btn-primary:active,
  .bt-cine-hero__actions .bt-btn-white:hover,.bt-cine-hero__actions .bt-btn-white:active{
    transition:background .16s ease, color .16s ease, box-shadow .16s ease;transform:none;
  }
}

@keyframes cine-kenburns{0%{transform:scale(1) translate(0,0);}100%{transform:scale(1.12) translate(-1.5%,-1.5%);}}
@keyframes cine-fade{to{opacity:1;transform:translateY(0);}}

/* Hero socials: a vertical pair at the bottom right, level with the CTA row
   (the hero's bottom padding is 100px desktop / 60px narrow, set in index.php). */
.bt-cine-hero__socials{
  position:absolute;right:56px;bottom:100px;z-index:2;
  display:flex;flex-direction:column;gap:12px;
  opacity:0;transform:translateY(16px);animation:cine-fade .9s cubic-bezier(.19,1,.22,1) .92s forwards;
}
.bt-cine-hero__socials a{
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:50%;
  color:var(--white);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.bt-cine-hero__socials a:hover{background:var(--amber);border-color:var(--amber);color:var(--ink);}
.bt-cine-hero__socials .bt-icon{width:21px;height:21px;}
@media (max-width:760px){ .bt-cine-hero__socials{right:24px;bottom:60px;} }

/* While the hero is behind the header (body.hero-in-view, set by main.js) the header
   drops its own logo and socials; visibility keeps the nav grid in place. */
.bt-site-header .bt-brand,.bt-site-header .bt-header-socials{transition:opacity .3s ease, visibility 0s linear 0s;}
body.bt-hero-in-view .bt-site-header .bt-brand,
body.bt-hero-in-view .bt-site-header .bt-header-socials{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease, visibility 0s linear .3s;}

@media (prefers-reduced-motion:reduce){
  .bt-cine-hero__bg{animation:none;}
  .bt-cine-hero__kicker,.bt-cine-hero__logo,.bt-cine-hero__desc,.bt-cine-hero__sub,.bt-cine-hero__actions,.bt-cine-hero__socials{
    animation:none !important;opacity:1 !important;transform:none !important;
  }
  .bt-site-header .bt-brand,.bt-site-header .bt-header-socials{transition:none;}
}
@media (max-width:760px){
  /* narrow screens have no room for a left/right split, so the scrim
     goes back to a full vertical wash and the column simply centres */
  .bt-cine-hero__vignette{
    background:linear-gradient(180deg, rgba(6,6,6,.5) 0%, rgba(6,6,6,.22) 32%, rgba(6,6,6,.3) 62%, rgba(6,6,6,.62) 100%);
  }
  .bt-cine-hero__center{max-width:none;}
}
@media (max-width:600px){
  .bt-cine-hero{padding-bottom:26px;}
  .bt-cine-hero__sub{font-size:1.08rem;}
}

/* ==========================================================================
   Page header (subpages) — shorter dark band, real photo per page
   ========================================================================== */
.bt-page-header{
  position:relative;min-height:52vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink);
}
/* this is an <img>, not a background — background-size/position would be
   silently ignored on it, leaving the photo short of the band on tall or
   very wide viewports. object-fit is the property that actually applies. */
.bt-page-header__bg{
  position:absolute;inset:0;width:100%;height:100%;
  /* biased above centre: the band is a wide, short slice and the people in
     these photos sit in the upper half of the frame */
  object-fit:cover;object-position:center 15%;
  filter:contrast(1.1) brightness(1.02);
}
.bt-page-header__scrim{position:absolute;inset:0;background:linear-gradient(0deg, rgba(10,10,10,.72) 0%, rgba(10,10,10,.16) 65%, rgba(10,10,10,.26) 100%);}
/* Framed header photos — for pictures whose faces sit at the very top of the frame.
   Pushing the photo down under the fixed menu left an empty strip; instead the photo
   stays top-aligned (so it always fills the band behind the menu) and is scaled from
   its top edge just enough that the face clears the bar. Values are set inline per
   page and follow the menu's own breakpoints:
     --crop-x   subject centre (object-position x and zoom origin)
     --zoom     above 1200px    --zoom-t  981-1200px    --zoom-m  980px and below */
.bt-page-header__bg--framed{
  object-position:var(--crop-x,50%) 0%;
  transform:scale(var(--zoom,1));transform-origin:var(--crop-x,50%) 0;
}
@media (max-width:1200px){ .bt-page-header__bg--framed{transform:scale(var(--zoom-t,var(--zoom,1)));} }
@media (max-width:980px){ .bt-page-header__bg--framed{transform:scale(var(--zoom-m,var(--zoom,1)));} }
.bt-page-header__content{position:relative;z-index:2;padding-top:calc(var(--nav-h) + 46px);padding-bottom:42px;width:100%;}.bt-page-header h1{color:var(--white);max-width:20ch;}
.bt-page-header .bt-lede{margin-top:18px;}
/* The band is held at #0A0A0A for exactly the height the fixed bar covers. The
   bar's veil is rgba(10,10,10,.4), which over #0A0A0A resolves back to #0A0A0A —
   so the bar leaves no darker rectangle on the band. Against the old #1A1A1A it
   landed on #141414 and cut the band into two near-identical tones (W32).
   Height comes from the content: the old min-height:34vh grew the band with the
   window rather than with the title. */
.bt-page-header--plain{
  background:linear-gradient(180deg, #0A0A0A 0, #0A0A0A var(--nav-h), var(--ink) 100%);
  /* content sets the height. The base .page-header is 52vh because it carries a
     photo; a title on a flat band has nothing to fill that area with, and the
     old 34vh override still grew the band with the window rather than the title. */
  min-height:0;
}

/* ==========================================================================
   Sections & rhythm — paper-dominant; section-dark/section-navy are the
   deliberate dark accent bands (CTAs, karikasari stats), used sparingly
   ========================================================================== */
.bt-section{padding:96px 0;background:var(--paper);scroll-margin-top:var(--nav-h);}
.bt-section-sm{padding:64px 0;}
.bt-section-dark{background:var(--ink);color:var(--white);}
.bt-section-navy{background:var(--navy-deep);color:var(--white);}
.bt-section-paper2{background:var(--paper-2);}
.bt-section-dark h1,.bt-section-dark h2,.bt-section-dark h3,
.bt-section-navy h1,.bt-section-navy h2,.bt-section-navy h3{color:var(--white);}

/* ---- photo-band: a dark section-navy band with a real photo underneath,
   duotone-tinted the same way as page-header/split-photo ---- */
.bt-photo-band{position:relative;overflow:hidden;}
.bt-photo-band__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.15) brightness(.75);}
.bt-photo-band__scrim{position:absolute;inset:0;background:linear-gradient(100deg, rgba(10,10,10,.86) 0%, rgba(10,10,10,.5) 48%, rgba(10,10,10,.7) 100%);}
.bt-photo-band > .bt-wrap{position:relative;z-index:2;}
.bt-section-head{max-width:680px;margin-bottom:52px;}
.bt-section-head.bt-center{margin-left:auto;margin-right:auto;text-align:center;}
.bt-section-head h2{margin:16px 0 18px;}
.bt-section-foot{margin-top:52px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}

/* ---- scoreboard strip ---- */
.bt-scoreboard{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.bt-scoreboard-row{max-width:var(--wrap);margin:0 auto;padding:0 40px;display:grid;grid-template-columns:repeat(4,1fr);}
.bt-scoreboard-row li{list-style:none;padding:22px 26px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:4px;}
.bt-scoreboard-row li:first-child{border-left:none;padding-left:0;}
.bt-scoreboard-row strong{font-family:var(--font-display);font-size:26px;color:var(--amber);letter-spacing:.01em;}
.bt-scoreboard-row span{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
@media (max-width:820px){
  .bt-scoreboard-row{grid-template-columns:repeat(2,1fr);padding:0 22px;}
  .bt-scoreboard-row li:nth-child(3){border-left:none;}
  .bt-scoreboard-row li{padding:16px 18px;}
}

/* ---- stat row (replaces boxy card-grid stats — same device as the scoreboard) ---- */
.bt-stat-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);}
.bt-stat-row li{list-style:none;padding:26px 26px 4px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:12px;}
.bt-stat-row li:first-child{border-left:none;padding-left:0;}
.bt-stat-row .bt-icon{width:22px;height:22px;color:var(--amber);}
.bt-stat-row strong{font-family:var(--font-display);font-size:2rem;letter-spacing:.01em;}
.bt-stat-row span{font-size:12.5px;line-height:1.4;color:var(--muted);}
@media (max-width:820px){
  .bt-stat-row{grid-template-columns:repeat(2,1fr);}
  .bt-stat-row li:nth-child(3){border-left:none;}
  .bt-stat-row li{padding:22px 20px 4px;}
}
.bt-section-navy .bt-stat-row,.bt-section-dark .bt-stat-row{border-top-color:var(--line-on-dark);}
.bt-section-navy .bt-stat-row li,.bt-section-dark .bt-stat-row li{border-left-color:var(--line-on-dark);}
.bt-section-navy .bt-stat-row span,.bt-section-dark .bt-stat-row span{color:var(--muted-on-dark);}
.bt-section-navy .bt-stat-row strong,.bt-section-dark .bt-stat-row strong{color:var(--white);}

/* ---- compare table (premium redesign) ---- */
.bt-compare {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 32px;
  max-width: 960px;
  margin-inline: auto;
}
.bt-compare-head {
  display: grid;
  grid-template-columns: 1fr 150px 1fr;
  align-items: center;
  padding: 0 16px 12px;
}
.bt-compare-head .bt-c-left {
  color: var(--amber);
  font-family: var(--font-display);
  font-size: 2.2rem;
  text-align: right;
  line-height: 1;
}
.bt-compare-head .bt-c-right {
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 2.2rem;
  text-align: left;
  line-height: 1;
}
.bt-compare-head span {
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.bt-compare-head .bt-c-mid {
  text-align: center;
}
.bt-compare-rows {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bt-crow {
  display: grid;
  grid-template-columns: 1fr 150px 1fr;
  align-items: center;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 4px solid transparent;
  border-radius: 0;
  padding: 24px;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, border-left-color 0.3s ease, background 0.3s ease;
}
.bt-crow::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 50%;
  background: linear-gradient(90deg, rgba(198,162,76,0.06) 0%, transparent 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.bt-crow:hover {
  transform: translateX(4px);
  border-left-color: var(--amber);
  background: var(--paper-2);
  z-index: 5;
}
.bt-crow:hover::before {
  opacity: 1;
}
.bt-crow .bt-val {
  font-size: 17px;
  line-height: 1.45;
  z-index: 2;
}
.bt-crow .bt-val-left {
  text-align: right;
  padding-right: 28px;
  font-weight: 500;
  color: var(--ink);
}
.bt-crow .bt-val-right {
  text-align: left;
  padding-left: 28px;
  color: var(--muted);
  font-weight: 300;
}
.bt-crow .bt-label-wrap {
  display: flex;
  justify-content: center;
  z-index: 2;
}
.bt-crow .bt-tag {
  background: var(--navy);
  color: var(--white);
  padding: 6px 16px;
  border-radius: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: none;
}
@media (max-width: 768px) {
  .bt-compare-head {
    display: none;
  }
  .bt-crow {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 24px;
    border-radius: 12px;
  }
  .bt-crow:hover {
    transform: translateY(-2px) scale(1);
  }
  .bt-crow .bt-label-wrap {
    justify-content: flex-start;
    order: -1;
    margin-bottom: 4px;
  }
  .bt-crow .bt-tag {
    background: var(--amber);
    color: var(--ink);
    box-shadow: none;
  }
  .bt-crow .bt-val-left, .bt-crow .bt-val-right {
    text-align: left;
    padding: 0;
  }
  .bt-crow .bt-val-left::before {
    content: "Rannatennis";
    color: var(--amber);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    display: block;
    font-weight: 800;
    margin-bottom: 4px;
  }
  .bt-crow .bt-val-right::before {
    content: "Suur tennis";
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    display: block;
    font-weight: 800;
    margin-bottom: 4px;
    margin-top: 16px;
  }
}

/* ---- split: two-photo diptych (training paths, etc.) ---- */
.bt-split{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);}
.bt-split-photo{position:relative;min-height:440px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
.bt-split-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.12) brightness(.95);}
.bt-split-photo .bt-scrim{position:absolute;inset:0;background:linear-gradient(0deg, rgba(10,10,10,.76) 0%, rgba(10,10,10,.1) 62%);}
.bt-split-photo .bt-content{position:relative;z-index:2;padding:40px;display:flex;flex-direction:column;gap:14px;}
.bt-split-photo .bt-content h3{color:var(--white);}
.bt-split-photo .bt-content .bt-lede{color:rgba(255,255,255,.82);}
.bt-split-photo .bt-tag{align-self:flex-start;}
.bt-split-photo .bt-price{font-family:var(--font-display);font-size:2.3rem;color:var(--amber);}
.bt-split-photo .bt-price span{font-family:var(--font-body);font-size:.9rem;color:rgba(255,255,255,.68);text-transform:none;letter-spacing:0;}
@media (max-width:800px){ .bt-split{grid-template-columns:1fr;} .bt-split-photo{min-height:360px;} }

/* ==========================================================================
   Rally — the two training tracks as the two sides of a court, split by a net.
   Photography is cut off at an angle and copy sits below it on solid paper,
   so no text ever has to fight a photo for contrast.
   ========================================================================== */
.bt-rally{
  position:relative;
  display:grid;grid-template-columns:1fr 1fr;
  gap:0 72px;
}

/* the net: a real mesh, drawn as a crosshatch, with a gold post cap at each end */
.bt-rally__net{
  position:absolute;top:26px;bottom:26px;left:50%;width:40px;
  transform:translateX(-50%);
  background-image:
    repeating-linear-gradient(0deg, rgba(20,20,20,.13) 0 1px, transparent 1px 11px),
    repeating-linear-gradient(90deg, rgba(20,20,20,.13) 0 1px, transparent 1px 11px);
  background-position:center;
  z-index:1;
}
.bt-rally__net::before,
.bt-rally__net::after{
  content:"";position:absolute;left:-6px;right:-6px;height:8px;
  background:var(--amber);
}
.bt-rally__net::before{top:-8px;}
.bt-rally__net::after{bottom:-8px;}

.bt-rally__side{
  position:relative;z-index:2;
  display:flex;flex-direction:column;
  background:var(--white);
  border:1px solid var(--line);
}

/* photo: angled bottom edge. The container and the image are clipped to
   slightly different polygons so the gap between them reads as a gold
   hairline running along the diagonal. */
.bt-rally__photo{
  position:relative;aspect-ratio:5/4;overflow:hidden;
  background:var(--amber);
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 34px), 0 100%);
}
.bt-rally__photo img{
  width:100%;height:100%;object-fit:cover;object-position:center 15%;
  filter:contrast(1.06);
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 37px), 0 calc(100% - 3px));
  transition:transform .7s cubic-bezier(.19,1,.22,1);
}
.bt-rally__side:hover .bt-rally__photo img{transform:scale(1.05);}
.bt-rally__tag{
  position:absolute;top:18px;left:18px;z-index:2;
  background:var(--ink);color:var(--white);
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  padding:8px 14px;
}

.bt-rally__body{
  display:flex;flex-direction:column;align-items:flex-start;
  padding:8px 34px 34px;
}
.bt-rally__title{
  font-family:var(--font-display);font-size:clamp(1.7rem,2.6vw,2.3rem);
  line-height:1.04;color:var(--ink);margin:0 0 22px;
}

/* spec rows read like a match sheet — label left, value right, hairline between */
.bt-rally__specs{margin:0 0 26px;width:100%;border-top:1px solid var(--line);}
.bt-rally__spec{
  display:flex;justify-content:space-between;align-items:baseline;gap:18px;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.bt-rally__spec dt{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:700;flex-shrink:0;
}
.bt-rally__spec dd{margin:0;font-size:15px;color:var(--ink);text-align:right;}

.bt-rally__price{
  font-family:var(--font-display);font-size:2.4rem;line-height:1;
  color:var(--amber-deep);margin:0 0 24px;
}
.bt-rally__price span{
  display:block;font-family:var(--font-body);font-size:.8rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:8px;
}
.bt-rally__body .bt-btn-ghost{margin-top:auto;}

@media (max-width:860px){
  /* mobile is its own design: the net turns and becomes the seam between the
     two stacked sides */
  .bt-rally{grid-template-columns:1fr;gap:56px 0;}
  .bt-rally__net{
    top:auto;bottom:auto;left:26px;right:26px;width:auto;height:34px;
    top:calc(50% - 17px);transform:none;
  }
  .bt-rally__net::before,.bt-rally__net::after{
    left:auto;right:auto;top:-5px;bottom:-5px;width:7px;height:auto;
  }
  .bt-rally__net::before{left:-7px;}
  .bt-rally__net::after{right:-7px;left:auto;}
}
@media (max-width:520px){
  .bt-rally__body{padding:8px 22px 26px;}
}

/* ==========================================================================
   Karikasari — format shown at its real proportions
   ========================================================================== */
/* the two segments are sized by the actual minutes they represent, so the bar
   is a measurement rather than a decoration */
.bt-timebar{
  display:flex;gap:4px;margin-top:44px;
  border:1px solid var(--line);padding:4px;background:var(--white);
}
.bt-timebar__seg{
  flex:1 1 0;flex-grow:var(--span);
  display:flex;flex-direction:column;justify-content:flex-end;gap:6px;
  padding:32px 24px 22px;min-width:0;
}
.bt-timebar__seg--play{background:var(--amber);color:var(--ink);}
.bt-timebar__seg--rest{background:var(--paper-2);color:var(--ink);}
.bt-timebar__val{
  font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.4rem);line-height:1;
}
.bt-timebar__label{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
}
.bt-timebar__seg--play .bt-timebar__label{color:rgba(20,20,20,.62);}
.bt-timebar__seg--rest .bt-timebar__label{color:var(--muted);}
.bt-timebar__note{margin-top:18px;font-size:14.5px;color:var(--muted);max-width:62ch;}
@media (max-width:560px){
  .bt-timebar__seg{padding:22px 14px 16px;}
  .bt-timebar__label{font-size:9.5px;letter-spacing:.08em;}
}

/* four competition classes strung along one rail */
.bt-grouprail{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;
  margin-top:44px;background:var(--line);
  border-top:3px solid var(--amber);
}
.bt-grouprail__item{
  list-style:none;background:var(--white);
  padding:26px 22px;display:flex;flex-direction:column;gap:6px;
}
.bt-grouprail__key{
  font-family:var(--font-display);font-size:1.7rem;line-height:1;color:var(--ink);
}
.bt-grouprail__note{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;
}
.bt-grouprail__foot{
  display:flex;align-items:flex-start;gap:12px;
  margin-top:22px;font-size:14.5px;color:var(--muted);max-width:70ch;
}
.bt-grouprail__foot .bt-icon{width:20px;height:20px;color:var(--amber);flex-shrink:0;margin-top:1px;}
@media (max-width:760px){
  .bt-grouprail{grid-template-columns:repeat(2,1fr);}
}

/* prize rows beside the entry-fee ticket */
.bt-prize{
  display:flex;gap:20px;align-items:flex-start;
  padding:26px 0;border-bottom:1px solid var(--line);
}
.bt-prize:first-child{border-top:1px solid var(--line);}
.bt-prize__icon{width:28px;height:28px;color:var(--amber);flex-shrink:0;margin-top:4px;}
.bt-prize h3{margin-bottom:8px;}

/* ---- ticket: the deliberate crisp object — pricing tables live here ---- */
.bt-ticket-wrap{display:flex;justify-content:center;}
.bt-ticket{
  background:var(--white);color:var(--ink);width:100%;max-width:620px;
  padding:8px;box-shadow:0 26px 54px rgba(20,20,20,.18);transform:rotate(-.6deg);
}
.bt-ticket-inner{padding:32px 34px 26px;}
.bt-ticket__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:22px;}
.bt-ticket__head .bt-stub{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.bt-ticket__head strong{font-family:var(--font-display);font-size:1.7rem;color:var(--amber-deep);text-transform:uppercase;}
.bt-ticket .bt-price-table th,.bt-ticket .bt-price-table td{color:var(--ink);border-bottom-color:var(--line);}
.bt-ticket .bt-price-table th{color:var(--muted);border-bottom-color:var(--ink);}
.bt-ticket .bt-price-note{color:var(--muted);}
@media (max-width:480px){ .bt-ticket-inner{padding:24px 20px 20px;} }

/* ---- pricing table (used inside .ticket) ---- */
.bt-price-table{width:100%;border-collapse:collapse;}
.bt-price-table th,.bt-price-table td{text-align:left;padding:14px 6px;border-bottom:1px solid var(--line);font-size:16px;}
.bt-price-table th{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;font-weight:400;font-size:13px;border-bottom:2px solid var(--ink);}
.bt-price-table td.bt-price{font-family:var(--font-display);font-size:1.3rem;color:var(--amber-deep);white-space:nowrap;}
.bt-price-note{margin-top:14px;font-size:13.5px;}
.bt-table-scroll{overflow-x:auto;}

/* ---- legal-page prose (müügitingimused / privaatsus) ---- */
.bt-text-content h2{font-size:1.4rem;letter-spacing:.02em;margin-top:48px;margin-bottom:14px;}
.bt-text-content h2:first-child{margin-top:0;}
.bt-text-content p{color:var(--muted);line-height:1.7;max-width:70ch;}
.bt-text-content p + p{margin-top:14px;}
.bt-text-content a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--amber);text-decoration-thickness:1.5px;text-underline-offset:3px;overflow-wrap:anywhere;}
.bt-text-content a:hover{color:var(--amber-deep);}

/* ---- legal pages: müügitingimused, privaatsus, treeningute tingimused ----
   A sticky index beside the prose. The prose column starts on the page's own
   gutter and is capped at a reading measure; the index takes up the width that
   leaves over. Previously the whole page was a 506px box centred in the
   viewport, so the text lined up with nothing above or below it. */
.bt-legal-layout{
  display:grid;grid-template-columns:220px minmax(0,72ch);gap:0 80px;
  align-items:start;justify-content:start;
}
.bt-legal-index{position:sticky;top:calc(var(--nav-h) + 28px);}
.bt-legal-index__title{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  color:var(--muted);margin-bottom:16px;
}
.bt-legal-index__list li{border-top:1px solid var(--line);}
.bt-legal-index__list li:last-child{border-bottom:1px solid var(--line);}
.bt-legal-index__list a{
  display:flex;gap:12px;padding:11px 0;
  font-size:14.5px;line-height:1.35;color:var(--muted);
  transition:color .2s ease;
}
.bt-legal-index__list a:hover{color:var(--ink);}
.bt-legal-index__num{font-family:var(--font-display);font-size:15px;color:var(--amber-deep);flex-shrink:0;}
/* the bar is fixed, so an anchor jump has to land below it */
.bt-legal-body h2{scroll-margin-top:calc(var(--nav-h) + 24px);}
@media (max-width:1000px){
  .bt-legal-layout{grid-template-columns:minmax(0,72ch);gap:36px;}
  .bt-legal-index{position:static;}
  .bt-legal-index__list{display:flex;flex-wrap:wrap;gap:0 28px;}
  .bt-legal-index__list li,.bt-legal-index__list li:last-child{border:none;}
  .bt-legal-index__list a{padding:7px 0;}
}

/* ---- policy list ---- */
.bt-policy-list{border-top:1px solid var(--line);}
.bt-policy{display:grid;grid-template-columns:220px 1fr;gap:28px;padding:24px 0;border-bottom:1px solid var(--line);}
.bt-policy dt{font-family:var(--font-display);font-size:1.1rem;letter-spacing:.02em;color:var(--amber-deep);}
.bt-policy dd{margin:0;color:var(--muted);line-height:1.55;font-size:15.5px;}
@media (max-width:700px){ .bt-policy{grid-template-columns:1fr;gap:8px;} }

/* ---- trainer spotlight — one full editorial row per trainer. Built to
   read right at exactly one trainer (today's roster) while looping over
   $TRAINERS, so a second or third row can join later without a redesign. ---- */
.bt-trainer-spotlight-list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: 48px;
  /* At the full 1160px the row left 390px of empty card to the right of the
     longest line. The photo and the text set the width; the card stops there. */
  max-width: 920px;
}
.bt-trainer-spotlight {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 56px;
  align-items: center;
  background: var(--paper-2);
  border: 1px solid var(--line);
  padding: 40px;
}
.bt-trainer-spotlight__photo {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--line);
}
.bt-trainer-spotlight__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  filter: contrast(1.1);
  transition: transform 0.6s ease;
}
.bt-trainer-spotlight:hover .bt-trainer-spotlight__photo img {
  transform: scale(1.04);
}
.bt-trainer-spotlight__name {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 3.6vw, 3rem);
  line-height: 1;
  color: var(--ink);
  margin: 20px 0 14px;
}
.bt-trainer-spotlight__credential {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--amber-deep);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 28px;
}
.bt-trainer-spotlight__credential .bt-icon {
  width: 18px;
  height: 18px;
  color: var(--amber);
  flex-shrink: 0;
}
.bt-trainer-spotlight .bt-contact-links {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  max-width: 320px;
}
.bt-trainer-spotlight .bt-contact-line {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  color: var(--muted);
  transition: color 0.2s ease, transform 0.2s ease;
}
.bt-trainer-spotlight .bt-contact-line:hover {
  color: var(--ink);
  transform: translateX(4px);
}
.bt-trainer-spotlight .bt-contact-line .bt-icon {
  width: 18px;
  height: 18px;
  color: var(--amber);
  flex-shrink: 0;
}
@media (max-width: 760px) {
  .bt-trainer-spotlight {
    grid-template-columns: 1fr;
    padding: 24px;
    gap: 24px;
  }
  .bt-trainer-spotlight__photo {
    aspect-ratio: 16/10;
  }
}

/* ---- compact variant: contact-card teaser used on kontakt.php, where the
   full spotlight would out-compete the page's own job (the contact form) ---- */
.bt-trainer-spotlight--compact {
  grid-template-columns: 132px 1fr;
  gap: 28px;
  background: transparent;
  border: none;
  padding: 0;
}
.bt-trainer-spotlight--compact .bt-trainer-spotlight__photo {
  aspect-ratio: 1/1;
  border-radius: 50%;
}
.bt-trainer-spotlight--compact .bt-trainer-spotlight__name {
  font-size: 1.7rem;
  margin: 0 0 6px;
}
.bt-trainer-spotlight--compact .bt-trainer-spotlight__credential {
  font-size: 11.5px;
  margin-bottom: 16px;
}
.bt-trainer-spotlight--compact .bt-contact-links {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px 28px;
  border-top: none;
  padding-top: 0;
  max-width: none;
}
@media (max-width: 480px) {
  .bt-trainer-spotlight--compact {
    grid-template-columns: 84px 1fr;
    gap: 18px;
  }
}

/* ---- sponsors (minimal redesign) ---- */
.bt-sponsor-strip {
  display: flex;
  /* top, not centre: the items are columns whose optional note makes some taller
     than others, and centring them staggered the logos by up to 19px */
  align-items: flex-start;
  justify-content: center;
  gap: 64px;
  flex-wrap: wrap;
  background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
}
.bt-sponsor-strip::before { display: none; }
.bt-sponsor-strip img {
  height: 56px;
  width: auto;
  /* height alone let the widest wordmark run to 257px beside a 56px square one;
     the cap evens out how much of the row each partner takes */
  max-width: 200px;
  object-fit: contain;
  opacity: 0.5;
  filter: grayscale(100%);
  transition: opacity 0.3s ease, transform 0.3s ease, filter 0.3s ease;
}
.bt-sponsor-strip .bt-sponsor-item:hover img {
  opacity: 1;
  transform: translateY(-2px);
  filter: grayscale(0%);
}
.bt-sponsor-strip .bt-sponsor-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  text-align: center;
}
.bt-sponsor-strip .bt-sponsor-item span {
  font-size: 13px;
  color: var(--muted);
  max-width: 24ch;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.bt-sponsor-strip .bt-sponsor-item:hover span {
  opacity: 1;
  transform: translateY(0);
}
@media (max-width: 700px) {
  .bt-sponsor-strip {
    gap: 40px;
    padding: 0;
  }
  .bt-sponsor-strip .bt-sponsor-item span {
    opacity: 1;
    transform: translateY(0);
  }
  .bt-sponsor-strip img {
    height: 40px;
    opacity: 0.8;
  }
}

/* ---- filmstrip gallery — every frame stays visible, hovering one takes the
   space back off its neighbours. No frame is ever hidden, so it works fine
   with no pointer and no JS. ---- */
.bt-filmstrip{
  display:flex;gap:6px;margin-top:48px;
  height:clamp(360px,46vw,540px);
}
.bt-filmstrip__frame{
  position:relative;overflow:hidden;margin:0;
  flex:1 1 0;min-width:0;
  background:var(--ink);
  transition:flex-grow .55s cubic-bezier(.19,1,.22,1);
}
/* Cascade order matters here: the "reset every frame" rule has to outrank
   .is-lead, and the hovered frame has to outrank that reset — hence the
   deliberately descending specificity rather than a flat list of selectors. */
.bt-filmstrip__frame.bt-is-lead{flex-grow:2.4;}                 /* 0,2,0 */
.bt-filmstrip:hover .bt-filmstrip__frame{flex-grow:1;}          /* 0,3,0 */
.bt-filmstrip:hover .bt-filmstrip__frame:hover{flex-grow:3.4;}  /* 0,4,0 */
.bt-filmstrip__frame:focus-visible{
  flex-grow:3.4;
  outline:2px solid var(--amber);outline-offset:-2px;
}
.bt-filmstrip__frame img{
  width:100%;height:100%;object-fit:cover;
  filter:contrast(1.06);
  transition:transform .7s cubic-bezier(.19,1,.22,1);
}
.bt-filmstrip__frame:hover img,
.bt-filmstrip__frame:focus-visible img{transform:scale(1.04);}

/* caption rides in from the bottom on the frame that has the space for it */
.bt-filmstrip__frame figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:34px 18px 16px;
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;
  color:var(--white);white-space:nowrap;
  background:linear-gradient(0deg, rgba(8,8,8,.82) 0%, rgba(8,8,8,0) 100%);
  opacity:0;transform:translateY(10px);
  transition:opacity .4s ease, transform .4s ease;
}
.bt-filmstrip__frame.bt-is-lead figcaption{opacity:1;transform:translateY(0);}            /* 0,3,0 */
.bt-filmstrip:hover .bt-filmstrip__frame figcaption{opacity:0;transform:translateY(10px);} /* 0,4,0 */
.bt-filmstrip:hover .bt-filmstrip__frame:hover figcaption{opacity:1;transform:translateY(0);} /* 0,5,0 */
.bt-filmstrip__frame:focus-visible figcaption{opacity:1;transform:translateY(0);}

/* gold base bar slides in under the open frame */
.bt-filmstrip__frame::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:4px;
  background:var(--amber);
  transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.19,1,.22,1);
}
.bt-filmstrip__frame:hover::after,
.bt-filmstrip__frame:focus-visible::after{transform:scaleX(1);}

@media (max-width:860px){
  /* below the hover threshold the strip stops being a strip: a plain
     two-column grid, all captions on, nothing depending on a pointer */
  .bt-filmstrip{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;height:auto;
  }
  .bt-filmstrip__frame{aspect-ratio:4/5;flex:none;}
  .bt-filmstrip__frame.bt-is-lead{grid-column:1 / -1;aspect-ratio:16/10;}
  .bt-filmstrip__frame figcaption{opacity:1;transform:none;padding:28px 14px 12px;}
  .bt-filmstrip__frame::after{transform:scaleX(1);height:3px;}
}
@media (prefers-reduced-motion:reduce){
  .bt-filmstrip__frame,
  .bt-filmstrip__frame img,
  .bt-filmstrip__frame figcaption,
  .bt-filmstrip__frame::after{transition:none;}
}

/* ---- quote block: photo column stretches to the copy's own height instead of
   dictating it, so a short quote can't leave a towering image beside it ---- */
.bt-quote-block{
  display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);
  gap:56px;align-items:stretch;
}
.bt-quote-block__photo{
  position:relative;overflow:hidden;min-height:320px;
}
.bt-quote-block__photo img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 52%;filter:contrast(1.06);
}
.bt-quote-block__body{
  display:flex;flex-direction:column;align-items:flex-start;
  justify-content:center;gap:32px;padding:8px 0;
}
@media (max-width:860px){
  .bt-quote-block{grid-template-columns:1fr;gap:32px;}
  .bt-quote-block__photo{min-height:0;aspect-ratio:4/3;}
}

/* ---- pull quote ---- */
.bt-pull-quote{position:relative;padding:6px 0 6px 34px;border-left:3px solid var(--amber);}
.bt-pull-quote p{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.16;letter-spacing:.005em;text-transform:none;color:var(--ink);}
.bt-pull-quote cite{display:block;margin-top:16px;font-style:normal;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}

/* ---- Q&A / interview ---- */
.bt-qa{border-top:1px solid var(--line);}
.bt-qa-item{padding:30px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:64px 1fr;gap:24px;}
.bt-qa-item .bt-qn{width:28px;height:28px;color:var(--amber);}
.bt-qa-item h3{font-size:1.15rem;text-transform:none;letter-spacing:0;margin-bottom:10px;font-family:var(--font-body);font-weight:700;color:var(--ink);}
.bt-qa-item p{color:var(--muted);line-height:1.65;font-size:15.5px;}
.bt-qa-item p + p{margin-top:12px;}
@media (max-width:640px){ .bt-qa-item{grid-template-columns:1fr;gap:8px;} }

/* ---- gallery ---- */
.bt-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.bt-gallery a{position:relative;aspect-ratio:4/5;overflow:hidden;display:block;}
.bt-gallery img{width:100%;height:100%;object-fit:cover;filter:contrast(1.1);transition:transform .5s ease;}
.bt-gallery a:hover img{transform:scale(1.04);}
@media (max-width:760px){ .bt-gallery{grid-template-columns:repeat(2,1fr);} }

/* ---- photo tile (generic) ---- */
.bt-photo-tile{position:relative;overflow:hidden;}
.bt-photo-tile img{width:100%;height:100%;object-fit:cover;filter:contrast(1.1) brightness(1.02);}
.bt-photo-tile .bt-cap{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;background:rgba(10,10,10,.74);color:var(--white);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}

/* ---- product teaser (homepage e-pood section) ---- */
.bt-product{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center;}
.bt-product-photo{display:flex;align-items:center;justify-content:center;padding:40px;position:relative;overflow:hidden;}
.bt-product-photo img{position:relative;max-height:520px;filter:drop-shadow(0 24px 32px rgba(20,20,20,.22));}
.bt-product-info .bt-tag{margin-bottom:18px;}
.bt-product-info .bt-price{font-family:var(--font-display);font-size:2rem;color:var(--amber);margin:18px 0;}
.bt-feature-list{margin:22px 0;border-top:1px solid var(--line);}
.bt-feature-list li{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--muted);}
.bt-feature-list .bt-icon{width:18px;height:18px;color:var(--amber);flex-shrink:0;margin-top:2px;}
@media (max-width:860px){ .bt-product{grid-template-columns:1fr;gap:32px;} .bt-product-photo{padding:26px;} }

/* ==========================================================================
   E-pood (W31): opening shelf, left filter sidebar, results bar with sort /
   per-page / view, grid + list cards, pager. Every panel sits on its band's
   own ground — controls get a real step (ink), nothing gets an outline (W30/W32).
   ========================================================================== */
.bt-vh{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}

/* ---- opening band: the page name beside the shelf ---- */
.bt-shop-top__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px 56px;align-items:end;}
.bt-shop-top .bt-h1{color:var(--white);}
.bt-shop-top__line{margin-top:14px;font-size:15px;letter-spacing:.02em;color:var(--muted-on-dark);}
.bt-shop-shelf{display:grid;grid-template-columns:repeat(3,188px);gap:18px;}
.bt-shop-shelf__item{display:flex;flex-direction:column;gap:3px;color:var(--white);}
.bt-shop-shelf__photo{display:block;aspect-ratio:1;background:var(--white);overflow:hidden;margin-bottom:12px;
  box-shadow:inset 0 -4px 0 transparent;transition:box-shadow .2s ease;}
.bt-shop-shelf__photo img{width:100%;height:100%;object-fit:contain;padding:12px;transition:transform .45s cubic-bezier(.2,.8,.2,1);}
.bt-shop-shelf__item:hover .bt-shop-shelf__photo img{transform:scale(1.07) rotate(-3deg);}
/* the one gold bar on the band says which shelf you are on */
.bt-shop-shelf__item.bt-is-on .bt-shop-shelf__photo{box-shadow:inset 0 -4px 0 var(--amber);}
.bt-shop-shelf__name{font-family:var(--font-display);font-size:1.35rem;letter-spacing:.02em;line-height:1.05;text-transform:uppercase;}
.bt-shop-shelf__item:hover .bt-shop-shelf__name,.bt-shop-shelf__item.bt-is-on .bt-shop-shelf__name{color:var(--amber);}
.bt-shop-shelf__n{font-size:13px;color:var(--muted-on-dark);}

/* ---- layout ---- */
.bt-shop-section{padding-top:64px;}
.bt-shop-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start;}

/* ---- sidebar ---- */
.bt-shop-filters{position:sticky;top:calc(var(--nav-h) + 24px);}
.bt-shop-filters__toggle{display:none;}
.bt-shop-filter{margin-bottom:36px;}
.bt-shop-filter__title{display:block;margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.bt-shop-search{display:flex;align-items:center;border-bottom:2px solid var(--ink);}
.bt-shop-search input{flex:1;min-width:0;border:0;background:transparent;padding:10px 0;font:inherit;font-size:15px;color:var(--ink);}
.bt-shop-search input:focus{outline:none;}
.bt-shop-search:focus-within{border-bottom-color:var(--amber-deep);}
.bt-shop-search button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;border:0;background:transparent;color:var(--ink);cursor:pointer;}
.bt-shop-search button .bt-icon{width:19px;height:19px;}
.bt-shop-range{display:flex;align-items:center;gap:8px;}
.bt-shop-range label{flex:1;min-width:0;}
.bt-shop-range input{width:100%;border:0;border-bottom:2px solid var(--ink);background:transparent;padding:10px 0;font:inherit;font-size:15px;color:var(--ink);-moz-appearance:textfield;}
.bt-shop-range input::-webkit-inner-spin-button,.bt-shop-range input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.bt-shop-range input:focus{outline:none;border-bottom-color:var(--amber-deep);}
.bt-shop-range__sep{color:var(--muted);}
.bt-shop-range__go{flex-shrink:0;height:44px;padding:0 16px;border:0;background:var(--ink);color:var(--white);font:inherit;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .2s ease;}
.bt-shop-range__go:hover{background:var(--amber-deep);}
.bt-shop-facet li a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;font-size:15.5px;color:var(--muted);transition:color .2s ease;}
.bt-shop-facet li a:hover{color:var(--ink);}
.bt-shop-facet li a.bt-is-on{color:var(--ink);font-weight:700;}
.bt-shop-facet li a.bt-is-on .bt-shop-facet__n{color:var(--amber-deep);}
.bt-shop-facet li a.bt-is-empty{opacity:.45;}
.bt-shop-facet__n{font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--muted);}
.bt-shop-clear{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:4px;padding:10px 0;}
.bt-shop-clear .bt-icon{width:16px;height:16px;}
.bt-shop-clear:hover{color:var(--amber-deep);}

/* ---- results bar ---- */
.bt-shop-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-bottom:36px;}
.bt-shop-bar__count{font-size:15px;color:var(--muted);}
.bt-shop-bar__count strong{color:var(--ink);font-weight:700;}
.bt-shop-bar__controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;}
.bt-shop-ctl{display:flex;align-items:center;gap:4px;}
.bt-shop-ctl > span,.bt-shop-ctl > label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:8px;}
.bt-shop-ctl select{
  appearance:none;-webkit-appearance:none;border:0;border-bottom:2px solid var(--ink);border-radius:0;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141414' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0 center/16px;
  padding:9px 26px 9px 0;font:inherit;font-size:15px;color:var(--ink);cursor:pointer;
}
.bt-shop-ctl select:focus-visible{outline:2px solid var(--amber);outline-offset:3px;}
.bt-shop-ctl__go{margin-left:8px;height:40px;padding:0 14px;border:0;background:var(--ink);color:var(--white);font:inherit;font-size:13px;font-weight:700;text-transform:uppercase;cursor:pointer;}
.bt-shop-ctl--per a,.bt-shop-ctl--view a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 6px;font-size:15px;font-weight:700;color:var(--muted);transition:background .2s ease,color .2s ease;}
.bt-shop-ctl--per a:hover,.bt-shop-ctl--view a:hover{color:var(--ink);}
.bt-shop-ctl--per a.bt-is-on,.bt-shop-ctl--view a.bt-is-on{background:var(--ink);color:var(--white);}
.bt-shop-ctl--view .bt-icon{width:18px;height:18px;}

/* ---- grid view ---- */
.bt-shop-grid--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px;}
.bt-shop-card{display:flex;flex-direction:column;}
.bt-shop-card__photo{display:block;aspect-ratio:1;overflow:hidden;background:var(--white);}
.bt-shop-card__photo img{width:100%;height:100%;object-fit:contain;padding:8%;transition:transform .5s cubic-bezier(.2,.8,.2,1);}
.bt-shop-card:hover .bt-shop-card__photo img{transform:scale(1.05) rotate(-2deg);}
.bt-shop-card__body{display:flex;flex-direction:column;gap:6px;flex:1;padding-top:14px;}
.bt-shop-card__name{font-family:var(--font-display);font-size:1.55rem;line-height:1;letter-spacing:.01em;}
.bt-shop-card__name a{color:var(--ink);}
.bt-shop-card__name a:hover{color:var(--amber-deep);}
.bt-shop-card__meta{font-size:13.5px;color:var(--muted);}
.bt-shop-card__desc{font-size:14.5px;line-height:1.5;color:var(--muted);margin-top:4px;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;}
.bt-shop-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;}
.bt-shop-card__price{font-family:var(--font-display);font-size:1.55rem;letter-spacing:.01em;color:var(--ink);white-space:nowrap;}
.bt-shop-card__addform{flex-shrink:0;}
.bt-shop-card__add{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;width:46px;height:46px;border:0;cursor:pointer;
  background:var(--ink);color:var(--white);font:inherit;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%);
  transition:background .2s ease,color .2s ease;
}
.bt-shop-card__add .bt-icon{width:20px;height:20px;flex-shrink:0;}
.bt-shop-card__add:hover{background:var(--amber);color:var(--ink);}
.bt-shop-card--awaiting-photo .bt-shop-card__photo img{padding:0;opacity:.75;}
.bt-shop-card--awaiting-photo:hover .bt-shop-card__photo img{transform:none;}

/* ---- list view ---- */
.bt-shop-grid--list{display:flex;flex-direction:column;gap:40px;}
.bt-shop-card--list{display:grid;grid-template-columns:168px minmax(0,1fr);gap:32px;align-items:center;}
.bt-shop-card--list .bt-shop-card__body{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:40px;row-gap:6px;padding-top:0;}
.bt-shop-card--list .bt-shop-card__name,.bt-shop-card--list .bt-shop-card__meta,.bt-shop-card--list .bt-shop-card__desc{grid-column:1;}
.bt-shop-card--list .bt-shop-card__desc{-webkit-line-clamp:unset;line-clamp:unset;display:block;max-width:64ch;}
.bt-shop-card--list .bt-shop-card__foot{grid-column:2;grid-row:1 / span 3;flex-direction:column;align-items:flex-end;justify-content:center;gap:12px;margin:0;padding:0;}
.bt-shop-card--list .bt-shop-card__add{width:auto;padding:0 20px;}

/* empty cart: four suggestions across the full width */
.bt-shop-grid--four{grid-template-columns:repeat(4,minmax(0,1fr));}

/* ---- pager, empty ---- */
.bt-shop-pager{margin-top:64px;}
.bt-shop-pager ul{display:flex;flex-wrap:wrap;align-items:center;gap:4px;}
.bt-shop-pager__num,.bt-shop-pager__step{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;height:44px;padding:0 8px;font-size:15px;font-weight:700;color:var(--muted);}
.bt-shop-pager__step{padding:0 14px;color:var(--ink);text-transform:uppercase;font-size:13px;letter-spacing:.06em;}
.bt-shop-pager__step .bt-icon{width:16px;height:16px;}
.bt-shop-pager a:hover{color:var(--amber-deep);}
.bt-shop-pager__num.bt-is-on{background:var(--ink);color:var(--white);}
.bt-shop-pager__gap{padding:0 6px;color:var(--muted);}
.bt-shop-empty{padding:24px 0 8px;}
.bt-shop-empty p{font-size:16px;color:var(--muted);margin-bottom:22px;max-width:48ch;}

/* ---- widths ---- */
@media (max-width:1200px){
  .bt-shop-shelf{grid-template-columns:repeat(3,150px);}
  .bt-shop-grid--grid,.bt-shop-grid--four{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:980px){
  .bt-shop-top__inner{grid-template-columns:1fr;}
  .bt-shop-shelf{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:900px){
  .bt-shop-section{padding-top:36px;}
  .bt-shop-layout{grid-template-columns:minmax(0,1fr);gap:0;}
  /* on a phone the filters fold behind one toggle so the products come first */
  .bt-shop-filters{position:static;margin-bottom:28px;}
  .bt-shop-filters__toggle{
    display:flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;cursor:pointer;list-style:none;
    background:var(--ink);color:var(--white);font-family:var(--font-display);font-size:1.3rem;letter-spacing:.04em;text-transform:uppercase;
  }
  .bt-shop-filters__toggle::-webkit-details-marker{display:none;}
  .bt-shop-filters__toggle .bt-icon{width:18px;height:18px;}
  .bt-shop-filters__badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:var(--amber);color:var(--ink);font-family:var(--font-body);font-size:13px;font-weight:700;}
  .bt-shop-filters__body{padding-top:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;}
  .bt-shop-filter-form{display:contents;}
  .bt-shop-clear{grid-column:1 / -1;justify-self:start;}
  .bt-shop-bar{margin-bottom:28px;}
}
@media (max-width:600px){
  .bt-shop-shelf{gap:10px;}
  .bt-shop-shelf__photo{margin-bottom:8px;}
  .bt-shop-shelf__name{font-size:1.1rem;}
  .bt-shop-filters__body{grid-template-columns:minmax(0,1fr);}
  .bt-shop-bar__controls{gap:12px 16px;width:100%;justify-content:space-between;}
  /* the labels stay for screen readers; on a phone the row has room for the controls only */
  .bt-shop-ctl > span,.bt-shop-ctl > label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0;}
  .bt-shop-ctl--per a,.bt-shop-ctl--view a{min-width:36px;height:40px;padding:0 4px;}
  .bt-shop-grid--grid{gap:32px 16px;}
  .bt-shop-card__name,.bt-shop-card__price{font-size:1.3rem;}
  .bt-shop-grid--grid .bt-shop-card__desc{display:none;}
  .bt-shop-card--list{grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:start;}
  .bt-shop-card--list .bt-shop-card__body{grid-template-columns:minmax(0,1fr);}
  .bt-shop-card--list .bt-shop-card__desc{-webkit-line-clamp:3;line-clamp:3;display:-webkit-box;}
  .bt-shop-card--list .bt-shop-card__foot{grid-column:1;grid-row:auto;flex-direction:row;align-items:center;justify-content:space-between;padding-top:8px;}
  .bt-shop-card--list .bt-shop-card__add span{display:none;}
  .bt-shop-card--list .bt-shop-card__add{width:46px;padding:0;}
}
@media (prefers-reduced-motion:reduce){
  .bt-shop-shelf__photo img,.bt-shop-card__photo img,.bt-shop-card__add,.bt-shop-facet li a{transition:none;}
  .bt-shop-shelf__item:hover .bt-shop-shelf__photo img,.bt-shop-card:hover .bt-shop-card__photo img{transform:none;}
}

/* ---- contact ---- */
.bt-contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;}
.bt-contact-list{border-top:1px solid var(--line);margin-top:24px;}
.bt-contact-list li{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line);color:var(--muted);}
.bt-contact-list .bt-icon{width:19px;height:19px;color:var(--amber);margin-top:2px;flex-shrink:0;}
.bt-contact-list a:hover{color:var(--amber-deep);}
@media (max-width:860px){ .bt-contact-grid{grid-template-columns:1fr;gap:40px;} }

.bt-field{margin-bottom:20px;}
.bt-field label{display:block;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.bt-field input,.bt-field textarea{
  width:100%;border:1px solid var(--line);background:var(--white);padding:14px 16px;font-family:var(--font-body);
  font-size:15px;color:var(--ink);
}
.bt-field input:focus,.bt-field textarea:focus{border-color:var(--amber);outline:none;}
.bt-field textarea{resize:vertical;min-height:120px;}
.bt-hp-field{position:absolute;left:-9999px;top:-9999px;}
.bt-form-note{margin-top:16px;padding:14px 16px;font-size:14px;}
.bt-form-note.bt-success{background:rgba(198,162,76,.15);color:var(--amber);}
.bt-form-note.bt-error{background:rgba(224,90,70,.15);color:#e58a78;}

/* ==========================================================================
   Footer — premium redesign
   ========================================================================== */
.bt-site-footer {
  position: relative;
  background: var(--navy-deep);
  color: var(--white);
  padding: 72px 0 34px;
  overflow: hidden;
  border-top: 1px solid rgba(198, 162, 76, 0.15);
  z-index: 1;
}

.bt-site-footer .bt-wrap {
  position: relative;
}

.bt-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 64px;
  padding-bottom: 80px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.bt-footer-col-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.bt-footer-logo-link {
  display: inline-flex;
  text-decoration: none;
  margin-bottom: 24px;
  transition: opacity 0.3s ease;
}
.bt-footer-logo-link:hover {
  opacity: 0.8;
}
.bt-footer-logo-link svg, .bt-footer-logo-link img {
  width: 90px;
  height: auto;
  color: var(--white);
}

.bt-footer-desc {
  color: rgba(255, 255, 255, 0.6);
  font-size: 15px;
  line-height: 1.7;
  max-width: 40ch;
  margin-bottom: 32px;
}

.bt-footer-heading {
  font-family: var(--font-display);
  color: var(--amber);
  font-size: 1.25rem;
  letter-spacing: 0.05em;
  margin-bottom: 24px;
  text-transform: uppercase;
}

.bt-footer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.bt-footer-nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: color 0.3s ease;
  width: fit-content;
}

.bt-footer-nav-link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 1.5px;
  background: var(--amber);
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.bt-footer-nav-link:hover {
  color: var(--white);
}

.bt-footer-nav-link:hover::before {
  width: 100%;
}

.bt-footer-contact-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.bt-footer-contact-list li {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bt-contact-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.4);
  font-weight: 700;
}

.bt-contact-val {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.5;
}

a.bt-contact-val {
  transition: color 0.3s ease;
}

a.bt-contact-val:hover {
  color: var(--amber);
}

/* ---- middle row: the site-wide booking CTA, folded into the footer
   instead of being repeated as its own dark section on every page ---- */
/* The closing CTA and the site map sit side by side in .footer-top. Stacked and
   centred they made the footer 945px tall — a full viewport at 1440, and over
   60% of a short page like the empty cart or the 404. */
.bt-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 48px 80px;
  align-items: start;
  padding-bottom: 44px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
@media (max-width: 900px) { .bt-footer-top { grid-template-columns: 1fr; gap: 40px; } }

.bt-footer-cta {
  position: relative;
  text-align: left;
  padding: 0;
}
.bt-footer-cta__sand {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  z-index: 0;
  pointer-events: none;
}
.bt-footer-cta > *:not(.bt-footer-cta__sand) { position: relative; z-index: 1; }
.bt-footer-cta__bar {
  width: 80px;
  height: 3px;
  background: var(--amber);
  margin: 0 0 22px;
}
.bt-footer-cta__title {
  font-family: var(--font-display);
  color: var(--white);
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.1;
  margin: 0 0 16px;
}
.bt-footer-cta__text {
  color: rgba(255, 255, 255, 0.6);
  max-width: 44ch;
  margin: 0 0 28px;
  font-size: 1.05rem;
  line-height: 1.6;
}
.bt-footer-cta__actions {
  display: flex;
  justify-content: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

/* ---- footer middle row: site map + the pages every page must link to (terms,
   privacy). Sits between the booking CTA and the legal/credit bar. Plain columns;
   the two hairlines only mark where the row starts and ends. ---- */
.bt-footer-links{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 40px;
}
.bt-footer-links ul{list-style:none;margin:0;padding:0;}
.bt-footer-links .bt-footer-heading{margin-bottom:20px;font-size:1.1rem;}
/* underline drawn by text-decoration so it follows the words — a wrapped link's
   box is the whole column, and the ::before bar ran past the text */
.bt-footer-links .bt-footer-nav-link{
  display:inline;font-size:15px;
  text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1.5px;text-underline-offset:5px;
  transition:color .3s ease,text-decoration-color .3s ease;
}
.bt-footer-links .bt-footer-nav-link::before{display:none;}
.bt-footer-links .bt-footer-nav-link:hover{text-decoration-color:var(--amber);}
.bt-footer-links .bt-footer-nav-link[aria-current="page"]{color:var(--white);text-decoration-color:var(--amber);}
@media (max-width:760px){
  .bt-footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;}
  /* thumb-sized rows: the inline links are 18px tall, so the padding is what
     makes them tappable. Desktop keeps the tighter list. */
  .bt-footer-links .bt-footer-nav-link{display:inline-block;padding:13px 0;}
  .bt-footer-links .bt-footer-nav-list{gap:0;}
}
/* stays two columns down to the narrowest phones: one column of 13 thumb-sized
   rows made the footer 1358px on a 390px screen */
@media (max-width:339px){ .bt-footer-links{grid-template-columns:1fr;} }

.bt-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 32px;
  flex-wrap: wrap;
  gap: 24px;
}

.bt-footer-bottom__right {
  display: flex;
  align-items: center;
  gap: 28px;
}

.bt-footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
}

.bt-footer-legal .bt-registry {
  position: relative;
}

.bt-footer-legal .bt-registry::before {
  content: "";
  position: absolute;
  left: -13px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
}

.bt-footer-credit {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  text-decoration: none;
}

.bt-footer-credit-name {
  font-family: var(--font-display);
  font-size: 1.3rem;
  line-height: 1;
  background: linear-gradient(90deg, var(--amber) 0%, #fff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  transition: opacity 0.3s ease;
}

.bt-footer-credit-sub {
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.3);
  margin-top: 6px;
  transition: color 0.3s ease;
}

.bt-footer-credit:hover .bt-footer-credit-name {
  opacity: 0.8;
}

.bt-footer-credit:hover .bt-footer-credit-sub {
  color: rgba(255, 255, 255, 0.6);
}

@media (max-width: 900px) {
  .bt-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .bt-footer-col-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 600px) {
  .bt-footer-grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .bt-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .bt-footer-legal .bt-registry::before {
    display: none;
  }
  .bt-footer-legal {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .bt-footer-credit {
    align-items: flex-start;
    text-align: left;
  }
  .bt-footer-bottom__right {
    width: 100%;
    justify-content: space-between;
    margin-top: 16px;
  }
  .bt-footer-cta {
    padding: 48px 0;
  }
}

/* ==========================================================================
   Utility
   ========================================================================== */
.bt-mt-0{margin-top:0;}
.bt-center{text-align:center;}
/* A readable column, not a narrower page. The element stays a full .wrap so its
   left edge lands on the same gutter as every other block — shrinking the wrap
   itself also re-centred it, leaving the text floating in the middle of the
   viewport, aligned with nothing above or below it. The measure is set on the
   content instead. */
.bt-narrow > *{max-width:70ch;}
.bt-narrow.bt-center > *{margin-inline:auto;}
.bt-stack{display:flex;flex-direction:column;gap:18px;}
.bt-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
@media (max-width:800px){ .bt-grid-2{grid-template-columns:1fr;gap:32px;} }

/* ==========================================================================
   E-Commerce (WooCommerce style pages)
   ========================================================================== */
/* Product page header — the compact dark band on toode.php: breadcrumb trail,
   product name, and a brand · category line under the title (never above it). */
.bt-page-header--product{min-height:0;}
.bt-page-header--product .bt-page-header__content{padding-top:calc(var(--nav-h) + 36px);padding-bottom:40px;}
.bt-page-header--product h1{max-width:24ch;}
.bt-breadcrumb{display:flex;align-items:center;gap:6px 8px;margin-bottom:18px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-on-dark);flex-wrap:wrap;}
.bt-breadcrumb a{color:var(--muted-on-dark);transition:color .2s ease;}
.bt-breadcrumb a:hover{color:var(--amber);}
.bt-breadcrumb__sep{display:inline-flex;color:rgba(255,255,255,.35);}
.bt-breadcrumb .bt-icon{width:13px;height:13px;flex-shrink:0;}
.bt-breadcrumb__current{color:var(--white);}
.bt-product-header__meta{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:1.05rem;letter-spacing:.04em;color:rgba(255,255,255,.78);}
.bt-product-header__dot{color:rgba(255,255,255,.4);}
.bt-product-section{padding-top:56px;}

/* centred, not top-aligned: the square product shot runs ~520px while the buy
   box is ~295px, and starting both at the top left 225px of dead white under
   the button */
.bt-product-single { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.bt-product-gallery { display: flex; flex-direction: column; gap: 16px; }
.bt-product-gallery__main { display: flex; justify-content: center; align-items: center; }
.bt-product-gallery__main img { width: 100%; height: auto; max-width: 520px; }
.bt-product-gallery__thumbs { display: flex; gap: 16px; }
.bt-product-gallery__thumbs img { width: 80px; height: 80px; object-fit: contain; background: var(--paper-2); border: 1px solid var(--line); padding: 8px; border-radius: 4px; cursor: pointer; transition: border-color 0.2s; }
.bt-product-gallery__thumbs img:hover { border-color: var(--amber); }

.bt-product-summary .bt-price { font-family: var(--font-display); font-size: 2.2rem; color: var(--amber); margin-bottom: 24px; }
.bt-product-summary .bt-description { font-size: 1.1rem; color: var(--muted); margin-bottom: 32px; line-height: 1.6; }
.bt-product-summary .bt-add-to-cart-form { display: flex; gap: 16px; margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.bt-qty-stepper { display: inline-flex; align-items: stretch; border: 1px solid var(--line); }
.bt-qty-stepper__btn { width: 44px; background: var(--paper-2); border: none; cursor: pointer; font-family: var(--font-display); font-size: 1.3rem; color: var(--ink); transition: background .2s ease, color .2s ease; }
.bt-qty-stepper__btn:hover { background: var(--amber); color: var(--ink); }
.bt-qty-input { width: 56px; padding: 16px 0; border: none; border-left: 1px solid var(--line); border-right: 1px solid var(--line); text-align: center; font-size: 1.1rem; font-family: var(--font-display); border-radius: 0; -moz-appearance: textfield; }
.bt-qty-input::-webkit-outer-spin-button, .bt-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bt-add-to-cart-form .bt-btn { padding: 16px 40px; font-size: 1.1rem; }

/* ---- empty cart / 404: pages whose own content was thin enough that the
   footer outweighed it ---- */
.bt-cart-empty .bt-btn { margin-top: 24px; }
.bt-cart-empty-suggest { margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--line); }
.bt-cart-empty-suggest h2 { margin-bottom: 32px; }

.bt-quick-links {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px;
  max-width: 860px; margin-top: 32px; border-top: 1px solid var(--line);
}
.bt-quick-links li { border-bottom: 1px solid var(--line); }
.bt-quick-links a {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 15px 2px; color: var(--ink);
  font-size: 15px; letter-spacing: .04em; text-transform: uppercase;
  transition: color .2s ease;
}
.bt-quick-links a:hover { color: var(--amber-deep); }
.bt-quick-links .bt-icon { width: 17px; height: 17px; color: var(--amber); flex-shrink: 0; }
@media (max-width: 640px) { .bt-quick-links { grid-template-columns: 1fr; } }

.bt-cart-table { width: 100%; border-collapse: collapse; margin-bottom: 40px; }
.bt-cart-table th { text-align: left; padding: 16px; border-bottom: 2px solid var(--line); color: var(--ink); text-transform: uppercase; font-size: 13px; letter-spacing: 0.05em; }
.bt-cart-table td { padding: 24px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.bt-cart-item-info { display: flex; align-items: center; gap: 24px; }
.bt-cart-item-img { width: 80px; height: 80px; background: var(--paper-2); padding: 8px; border: 1px solid var(--line); object-fit: contain; }
.bt-cart-item-title { font-weight: 700; color: var(--ink); text-decoration: none; font-size: 1.1rem; }
.bt-cart-item-title:hover { color: var(--amber); }
.bt-cart-remove { color: var(--muted); font-size: 13px; text-decoration: none; margin-top: 4px; display: inline-block; }
.bt-cart-remove:hover { color: red; }
.bt-cart-totals { background: var(--paper-2); padding: 40px; border-radius: 4px; border: 1px solid var(--line); }
.bt-cart-totals h2 { font-size: 1.5rem; margin-bottom: 24px; }
.bt-cart-totals-row { display: flex; justify-content: space-between; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); font-size: 1.1rem; }
.bt-cart-totals-row.bt-total { font-weight: 700; font-size: 1.5rem; border-bottom: none; margin-bottom: 32px; }

.bt-checkout-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 64px; align-items: start; }
/* grid items default to min-width:auto = their content's width, so the 4-column cart
   table held its column at 357px on phones; min-width:0 lets .table-scroll scroll instead */
.bt-checkout-grid > * { min-width: 0; }
.bt-checkout-grid .bt-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.bt-checkout-form h2 { margin-bottom: 24px; font-size: 1.8rem; }
.bt-form-row { margin-bottom: 24px; }
.bt-form-row label { display: block; margin-bottom: 8px; font-weight: 700; font-size: 14px; color: var(--ink); }
.bt-order-review { background: var(--paper-2); padding: 40px; border: 1px solid var(--line); border-radius: 4px; }
.bt-order-review h3 { margin-bottom: 24px; font-size: 1.5rem; }
.bt-order-item-list { margin-bottom: 24px; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
.bt-order-item { display: flex; justify-content: space-between; margin-bottom: 16px; font-size: 1rem; color: var(--muted); }
.bt-order-item strong { color: var(--ink); font-weight: 500; }
.bt-payment-methods { margin: 32px 0; }
.bt-payment-method { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.bt-payment-method input { width: auto; }

@media (max-width: 900px) {
  .bt-product-single { grid-template-columns: 1fr; gap: 40px; }
  .bt-checkout-grid { grid-template-columns: 1fr; gap: 40px; }
  .bt-cart-totals, .bt-order-review { padding: 24px; }
}

/* ==========================================================================
   Price stack — two or three priced blocks side by side (noorte-treening).
   The single centred .ticket carries one price list; when a page has several
   (kuutasu / noored / võistlejad) they line up as a rail instead, and the
   rotation is dropped so neighbours don't collide.
   ========================================================================== */
.bt-pricerail{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
  gap:36px;align-items:start;
}
.bt-pricerail .bt-ticket{max-width:none;transform:none;box-shadow:0 18px 40px rgba(20,20,20,.13);}
.bt-pricerail .bt-ticket-inner{padding:28px 26px 24px;height:100%;}
.bt-pricerail .bt-ticket__head{flex-direction:column;align-items:flex-start;gap:6px;}
.bt-pricerail .bt-price-table th,.bt-pricerail .bt-price-table td{padding:12px 4px;font-size:15px;}
.bt-pricerail .bt-price-table td.bt-price{font-size:1.15rem;}
/* A venue heading inside a price list: The Rand and Beach House share one
   block but have separate rate tables. */
.bt-pricerail__venue{
  display:block;margin:22px 0 8px;
  font-family:var(--font-display);font-size:1.15rem;letter-spacing:.02em;color:var(--ink);
}
.bt-pricerail__venue:first-of-type{margin-top:6px;}
.bt-pricerail .bt-rate{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.bt-pricerail .bt-rate:last-child{border-bottom:none;}
.bt-pricerail .bt-rate__what{font-size:14.5px;color:var(--muted);line-height:1.45;}
.bt-pricerail .bt-rate__price{
  font-family:var(--font-display);font-size:1.15rem;color:var(--amber-deep);
  white-space:nowrap;flex-shrink:0;
}

/* ---- venue list: the club runs three courts now, so addresses get their own
   small rail instead of being buried in a sentence ---- */
.bt-venue-list{border-top:1px solid var(--line);margin:8px 0 4px;}
.bt-venue{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:13px 0;border-bottom:1px solid var(--line);
}
.bt-venue dt{
  font-family:var(--font-display);font-size:1.1rem;letter-spacing:.02em;
  color:var(--ink);flex-shrink:0;
}
.bt-venue dd{margin:0;color:var(--muted);font-size:14px;text-align:right;line-height:1.4;}
@media (max-width:560px){
  .bt-venue{flex-direction:column;gap:3px;}
  .bt-venue dd{text-align:left;}
}

/* ---- policy list, compact variant: the client asked for the terms and the
   notification rules to read tighter, so labels sit above the text in columns
   rather than in a 220px gutter down the page ---- */
.bt-policy-list--compact{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:0 40px;border-top:2px solid var(--ink);
}
.bt-policy-list--compact .bt-policy{
  display:block;grid-template-columns:none;gap:0;padding:22px 0 20px;
}
.bt-policy-list--compact .bt-policy dt{margin-bottom:7px;font-size:1rem;}
.bt-policy-list--compact .bt-policy dd{font-size:14.5px;line-height:1.5;}

/* ==========================================================================
   Laagrid — the third training track. The rally above it is a court with two
   sides; camps are not a third side, so this is a full-width band under the
   net rather than a squeezed third column.
   ========================================================================== */
.bt-campband{
  margin-top:56px;
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  background:var(--white);border:1px solid var(--line);
}
.bt-campband__photo{position:relative;overflow:hidden;min-height:320px;}
.bt-campband__photo img{
  /* gallery-1-camp-group.jpg puts the group in the lower third under a lot of
     sky — anything above ~65% crops to clouds. */
  width:100%;height:100%;object-fit:cover;object-position:center 74%;
  filter:contrast(1.06);
  transition:transform .7s cubic-bezier(.19,1,.22,1);
}
.bt-campband:hover .bt-campband__photo img{transform:scale(1.05);}
.bt-campband__tag{
  position:absolute;top:18px;left:18px;z-index:2;
  background:var(--ink);color:var(--white);
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  padding:8px 14px;
}
.bt-campband__body{
  display:flex;flex-direction:column;align-items:flex-start;
  padding:34px 38px 34px;
}
.bt-campband__title{
  font-family:var(--font-display);font-size:clamp(1.7rem,2.6vw,2.3rem);
  line-height:1.04;color:var(--ink);margin:0 0 8px;
}
.bt-campband__lede{color:var(--muted);font-size:15.5px;line-height:1.55;margin-bottom:22px;}
.bt-campband__specs{
  margin:0 0 24px;width:100%;
  display:grid;grid-template-columns:1fr 1fr;gap:0 32px;
  border-top:1px solid var(--line);
}
.bt-campband__spec{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.bt-campband__spec dt{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:700;flex-shrink:0;
}
.bt-campband__spec dd{margin:0;font-size:15px;color:var(--ink);text-align:right;}
.bt-campband__foot{
  display:flex;align-items:flex-end;justify-content:space-between;gap:28px;
  width:100%;margin-top:auto;flex-wrap:wrap;
}
.bt-campband__price{
  font-family:var(--font-display);font-size:2.4rem;line-height:1;
  color:var(--amber-deep);margin:0;
}
.bt-campband__price span{
  display:block;font-family:var(--font-body);font-size:.8rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:8px;
}
@media (max-width:860px){
  .bt-campband{grid-template-columns:1fr;margin-top:44px;}
  /* no min-height here: with aspect-ratio it turns into a 400px min-width and overflows phones */
  .bt-campband__photo{min-height:0;aspect-ratio:5/3;}
}
@media (max-width:520px){
  .bt-campband__body{padding:26px 22px;}
  .bt-campband__specs{grid-template-columns:1fr;}
}

/* ==========================================================================
   Karikasari supporters — one white plate per supporter on the dark band, so
   brand-coloured logos (Saku On Ice blue, Sensilis black, ISDIN on white) keep
   their colours. A supporter whose logo hasn't arrived yet shows its name in the
   same plate, in ink. No outline, no hover: these aren't links.
   ========================================================================== */
.bt-ks-supporters{
  display:flex;flex-wrap:wrap;gap:18px;margin-top:44px;
}
.bt-ks-supporter{
  display:flex;align-items:center;justify-content:center;
  min-height:104px;padding:18px 26px;flex:1 1 190px;
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-display);font-size:1.25rem;letter-spacing:.04em;
  text-align:center;line-height:1.15;
}
.bt-ks-supporter img{display:block;max-height:64px;max-width:min(100%,180px);width:auto;height:auto;object-fit:contain;}
.bt-ks-supporters__note{
  margin-top:20px;font-size:13.5px;color:rgba(255,255,255,.55);
}
@media (prefers-reduced-motion:reduce){
  .bt-campband__photo img,.bt-campband:hover .bt-campband__photo img{transition:none;transform:none;}
}

/* ==========================================================================
   Homepage hero overrides — were an inline <style> in the demo's index.php.
   layout.php sets body.has-cine-hero.is-transparent-header on a page whose
   blocks include the cinematic hero (bt-hero).
   ========================================================================== */
body.bt-is-transparent-header .bt-site-header {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  border-bottom: transparent !important;
}
body.bt-is-transparent-header .bt-site-header::before {
  opacity: 0 !important;
  transition: opacity 0.3s ease;
}
body.bt-is-transparent-header .bt-site-header.bt-is-visible {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}
body.bt-is-transparent-header .bt-site-header.bt-is-visible::before {
  opacity: 1 !important;
}
.bt-cine-hero {
  justify-content: flex-end !important;
  padding-bottom: 100px !important;
}
.bt-cine-hero__center {
  max-width: 100% !important;
}
.bt-cine-hero__desc {
  font-size: clamp(2.5rem, 8vw, 6.875rem) !important;
  line-height: 1.05;
  margin-bottom: 24px;
  white-space: pre-line;
}
/* Full-bleed hero: logo, title and buttons sit on the screen's left edge, on the
   same gutter as the header (56 / 28 / 31 / 20px). */
.bt-cine-hero__inner {
  max-width: none;
  margin: 0;
  padding: 0 56px !important;
}
@media (max-width: 1200px) {
  .bt-cine-hero__inner { padding: 0 28px !important; }
}
@media (max-width: 980px) {
  .bt-cine-hero__inner { padding: 0 31px !important; }
}
@media (max-width: 760px) {
  .bt-cine-hero {
    padding-bottom: 60px !important;
  }
  /* right side reserves room for the vertical socials column (24px edge + 48px + 16px gap) */
  .bt-cine-hero__inner {
    padding: 0 88px 0 31px !important;
  }
}
@media (max-width: 600px) {
  .bt-cine-hero__inner { padding-left: 20px !important; }
}
/* The hero photo is a media-library <img> (the demo used a CSS background). */
.bt-cine-hero__bg{object-fit:cover;object-position:50% 80%;}
@media (max-width:760px){ .bt-cine-hero__bg{object-position:50% 50%;} }

/* ==========================================================================
   Karikasari — was an inline <style> in the demo's karikasari.php.
   ========================================================================== */
.bt-ks-hero {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: flex-end;
  background: var(--ink);
  padding: 120px 0 80px;
  overflow: hidden;
  color: var(--white);
}
.bt-ks-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center var(--nav-h);
  filter: contrast(1.08) brightness(1.02);
  transition: transform 10s ease-out;
}
.bt-ks-hero:hover .bt-ks-hero__img {
  transform: scale(1.05);
}
@media (prefers-reduced-motion:reduce){ .bt-ks-hero__img{transition:none;} .bt-ks-hero:hover .bt-ks-hero__img{transform:none;} }
.bt-ks-hero__gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, var(--ink) 0%, transparent 60%);
}
.bt-ks-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.bt-ks-hero__tag {
  display: inline-block;
  color: var(--amber);
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 0.875rem;
  border-left: 2px solid var(--amber);
  padding-left: 16px;
  margin-bottom: 16px;
}
.bt-ks-hero__title {
  font-size: clamp(3rem, 12vw, 8rem);
  font-family: var(--font-display);
  line-height: 0.85;
  text-transform: uppercase;
  color: var(--white);
  margin: 0;
}
.bt-ks-hero__title span {
  display: block;
  -webkit-text-stroke: 2px var(--white);
  color: transparent;
}
.bt-ks-hero__desc {
  font-size: 1.25rem;
  line-height: 1.5;
  max-width: 600px;
  color: rgba(255,255,255,0.8);
  font-weight: 300;
}
.bt-ks-format {
  background: var(--ink);
  color: var(--white);
  padding: 120px 0;
}
.bt-ks-format-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.bt-ks-format-text h2 {
  font-size: clamp(3rem, 5vw, 4.5rem);
  color: var(--white);
  margin-bottom: 32px;
  white-space: pre-line;
}
.bt-ks-format-text p {
  font-size: 1.2rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.7);
  margin-bottom: 24px;
}
.bt-ks-timer-display {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bt-ks-timer-row {
  display: flex;
  align-items: center;
  background: rgba(255,255,255,0.03);
  padding: 32px 40px;
  transition: background 0.3s;
  border-left: 4px solid transparent;
}
.bt-ks-timer-row:hover {
  background: rgba(255,255,255,0.06);
}
.bt-ks-timer-row--play {
  border-color: var(--amber);
}
.bt-ks-timer-row--pause {
  border-color: rgba(255,255,255,0.3);
}
.bt-ks-timer-val {
  font-family: var(--font-display);
  font-size: 5rem;
  line-height: 1;
  min-width: 120px;
  padding-right: 28px;
  color: var(--amber);
}
.bt-ks-timer-row--pause .bt-ks-timer-val {
  color: var(--white);
}
.bt-ks-timer-label {
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  white-space: pre-line;
}
.bt-ks-timer-row--pause .bt-ks-timer-label { color: rgba(255,255,255,0.5); }
.bt-ks-groups {
  padding: 160px 0;
  background: var(--paper);
}
.bt-ks-section-head {
  margin-bottom: 80px;
}
.bt-ks-section-head .bt-lede { margin-top: 16px; }
.bt-ks-groups-list {
  display: flex;
  flex-direction: column;
}
.bt-ks-group-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 40px 0;
  border-bottom: 1px solid var(--line);
  transition: padding 0.4s ease, background 0.4s ease;
  cursor: default;
}
.bt-ks-group-item:first-child {
  border-top: 2px solid var(--ink);
}
.bt-ks-group-item:hover {
  padding-left: 24px;
  padding-right: 24px;
}
.bt-ks-group-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 6vw, 4rem);
  color: var(--ink);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  transition: color 0.3s;
}
.bt-ks-group-item:hover .bt-ks-group-title {
  color: var(--amber);
}
.bt-ks-group-desc {
  color: var(--muted);
  max-width: 440px;
  font-size: 1.15rem;
  text-align: right;
  line-height: 1.5;
}
.bt-ks-group-who {
  display: block;
  margin-bottom: 6px;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
}
.bt-ks-group-item:hover .bt-ks-group-who { color: var(--amber-deep); }
.bt-ks-prizes {
  background: var(--paper-2);
  padding: 120px 0;
  position: relative;
}
.bt-ks-prizes-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 100px;
}
.bt-ks-ticket {
  background: var(--ink);
  color: var(--white);
  padding: 64px;
  position: relative;
  overflow: hidden;
}
.bt-ks-ticket::before {
  content: '';
  position: absolute;
  top: -50%; left: -50%; width: 200%; height: 200%;
  background: radial-gradient(circle, rgba(198,162,76,0.1) 0%, transparent 60%);
  z-index: 0;
}
.bt-ks-ticket > * { position: relative; z-index: 1; }
.bt-ks-ticket-label {
  text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.5);
  font-size: 0.9rem; font-weight: 700; margin-bottom: 24px;
}
.bt-ks-ticket-price {
  font-family: var(--font-display);
  font-size: 6rem;
  color: var(--amber);
  line-height: 0.9;
  margin-bottom: 16px;
}
.bt-ks-ticket-text { color: rgba(255,255,255,0.6); font-size: 1.1rem; line-height: 1.5; margin-bottom: 16px; }
.bt-ks-ticket-table {
  width: 100%;
  margin-top: 40px;
  border-collapse: collapse;
}
.bt-ks-ticket-table th, .bt-ks-ticket-table td {
  padding: 20px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-size: 1.2rem;
}
.bt-ks-ticket-table th { color: rgba(255,255,255,0.6); font-weight: 400; text-align: left; }
.bt-ks-ticket-table td { text-align: right; font-weight: 700; }
.bt-ks-ticket-table td.bt-is-gold { color: var(--amber); }
.bt-ks-ticket-table tr:last-child th, .bt-ks-ticket-table tr:last-child td { border-bottom: none; }
.bt-ks-prize-list {
  display: flex;
  flex-direction: column;
  gap: 60px;
  padding-top: 24px;
}
.bt-ks-prize-item h3 {
  font-size: 2rem;
  margin-bottom: 16px;
}
.bt-ks-prize-item p {
  font-size: 1.15rem;
  line-height: 1.6;
  color: var(--muted);
}
.bt-ks-prize-item p.bt-ks-prize-note { margin-top: 14px; font-size: .95rem; color: var(--ink); font-weight: 700; }
.bt-ks-prize-icon {
  color: var(--amber);
  margin-bottom: 24px;
  font-size: 2.5rem;
}
.bt-ks-prize-icon svg, .bt-ks-prize-icon img { width: 1em; height: 1em; display: block; }
.bt-ks-policies {
  padding: 120px 0;
  background: var(--ink);
  color: var(--white);
}
.bt-ks-policies .bt-h2 { color: var(--white); }
.bt-ks-policies--lead { padding-bottom: 0; }
.bt-ks-policies--lead .bt-lede { color: rgba(255,255,255,.7); margin-top: 16px; }
.bt-ks-policy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 80px;
}
.bt-ks-policy-box {
  border-top: 1px solid rgba(255,255,255,0.2);
  padding-top: 32px;
  margin: 0;
}
.bt-ks-policy-box dt {
  font-weight: 700;
  font-size: 1.2rem;
  margin-bottom: 16px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--amber);
}
.bt-ks-policy-box dd {
  margin: 0;
  color: rgba(255,255,255,0.7);
  line-height: 1.6;
  font-size: 1.05rem;
}
.bt-ks-band { background: var(--amber); padding: 100px 0; text-align: center; }
.bt-ks-band .bt-h2 { color: var(--ink); margin-bottom: 24px; }
.bt-ks-band .bt-lede { color: var(--ink); margin: 0 auto 40px; }
.bt-ks-band .bt-btn-primary { background: var(--ink); color: var(--white); }
.bt-ks-band .bt-btn-primary:hover { background: var(--ink-2); }
@media (max-width: 980px) {
  .bt-ks-format-grid, .bt-ks-prizes-grid, .bt-ks-policy-grid { grid-template-columns: 1fr; gap: 60px; }
  .bt-ks-group-item { flex-direction: column; align-items: flex-start; gap: 16px; padding: 32px 0; }
  .bt-ks-group-desc { text-align: left; max-width: 100%; }
  .bt-ks-ticket { padding: 40px; }
}
@media (max-width: 600px) {
  .bt-ks-timer-row { padding: 24px 20px; }
  .bt-ks-timer-val { font-size: 3.5rem; min-width: 86px; padding-right: 18px; }
  .bt-ks-ticket { padding: 32px 24px; }
}

/* ==========================================================================
   CMS additions — markup the demo styled inline, and platform pieces.
   ========================================================================== */
/* Inline paragraph links in policies / legal copy (demo: inline border-bottom) */
.bt-policy dd a{border-bottom:1px solid currentColor;}
.bt-lede-wide{max-width:none;}
.bt-section-head--tight{margin-bottom:28px;}
.bt-section-foot--start{justify-content:flex-start;margin-top:36px;}
.bt-photo-tile--portrait{aspect-ratio:4/5;}
.bt-contact-registry{margin-top:40px;font-size:13px;color:var(--muted);}
.bt-contact-social-title{margin-top:44px;}
.bt-form-note[hidden]{display:none;}
.bt-contact-form button[disabled]{opacity:.6;cursor:wait;}
.bt-notfound-head{min-height:60vh;display:flex;align-items:center;}
.bt-notfound-head .bt-page-header__content{padding-top:calc(var(--nav-h) + 20px);margin:0 auto;text-align:center;}
.bt-notfound-head .bt-lede{margin:18px auto 34px;}
.bt-notfound-head .bt-section-foot{justify-content:center;}
.bt-qa-cta .bt-h2{color:var(--white);margin:16px 0;}
.bt-qa-cta .bt-wrap{margin:0 auto;}
.bt-pull-quote--spaced{margin:56px 0;}
.bt-kicker-lede{max-width:none;font-size:1.15rem;}

/* A page that is not drawn by layout.php (the platform's shared checkout,
   order-status and account pages): no dark band sits under the fixed bar, so
   the bar takes its own place in the flow and a solid ground. */
body:not(.bt-body) .bt-site-header{position:sticky;}
body:not(.bt-body) .bt-site-header::before{background:var(--ink);}

/* Cart badge: platform cart pages update #headerCartCount */
.bt-header-cart__count{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-variant-numeric:tabular-nums;}

/* Toast for add-to-cart feedback on the shop pages */
.bt-toast-wrap{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.bt-toast{background:var(--ink);color:var(--white);padding:14px 20px;font-size:14px;letter-spacing:.03em;box-shadow:0 10px 30px rgba(0,0,0,.25);border-left:3px solid var(--amber);}
.bt-toast--error{border-left-color:#e05a46;}

/* Shop add button busy state */
.bt-shop-card__add[aria-busy="true"]{opacity:.6;}
.bt-add-to-cart-form .bt-btn[aria-busy="true"]{opacity:.7;}
.bt-product-stock{margin:0 0 18px;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.bt-product-stock.bt-is-out{color:#b5452f;}
.bt-price-label{display:inline-block;margin-left:8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--amber-deep);}
.bt-compare-price{margin-left:10px;color:var(--muted);text-decoration:line-through;font-size:.6em;}
.bt-tax-note{margin-top:-14px;margin-bottom:22px;font-size:13px;color:var(--muted);}
.bt-cart-qty{display:inline-flex;align-items:center;border:1px solid var(--line);}
.bt-cart-qty button{width:36px;height:36px;border:0;background:none;cursor:pointer;font-size:18px;color:var(--ink);}
.bt-cart-qty button:hover{background:var(--paper-2);color:var(--amber-deep);}
.bt-cart-qty span{min-width:32px;text-align:center;font-variant-numeric:tabular-nums;}
.bt-cart-variant{display:block;font-size:13px;color:var(--muted);margin-top:2px;}
.bt-cart-loading{padding:60px 0;text-align:center;color:var(--muted);}
.bt-cart-actions{margin-top:20px;display:flex;gap:24px;flex-wrap:wrap;}
.bt-order-thanks{background:rgba(198,162,76,.15);padding:64px 40px;text-align:center;max-width:600px;margin:0 auto;}
.bt-order-thanks__icon{color:var(--amber);margin-bottom:24px;display:flex;justify-content:center;}
.bt-order-thanks__icon .bt-icon{width:40px;height:40px;}
.bt-order-thanks .bt-h2{color:var(--amber);margin-bottom:16px;}
.bt-order-thanks .bt-lede{color:var(--ink);margin:0 auto;}
.bt-order-thanks .bt-btn{margin-top:24px;}
.bt-order-thanks__nr{margin-bottom:12px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.bt-order-thanks__nr strong{color:var(--ink);}
.bt-order-lines{margin:28px auto 0;max-width:420px;text-align:left;}

/* The price figure is its own (editable) span; the unit span keeps the demo's small caps line */
.bt-rally__price .bt-rally__amount,.bt-campband__price .bt-campband__amount{display:inline;font:inherit;letter-spacing:inherit;text-transform:none;color:inherit;margin:0;}
.bt-logo-pick{display:inline-flex;}
.bt-shop-card{position:relative;}
.bt-ks-hero__title .bt-ks-hero__line1{display:inline;-webkit-text-stroke:0;color:var(--white);}
.bt-ks-band .bt-section-foot{margin-top:0;}
.bt-legal-section + .bt-legal-section > h2{margin-top:48px;}
.bt-variant-select{appearance:none;-webkit-appearance:none;border:1px solid var(--line);border-radius:0;background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141414' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center/16px;padding:16px 44px 16px 16px;font:inherit;font-size:1rem;color:var(--ink);flex:1 1 100%;cursor:pointer;}
.bt-spec-table{margin-top:0;}
.bt-spec-table td:first-child{color:var(--muted);}
.bt-compare-price[hidden]{display:none;}
.bt-description p + p{margin-top:12px;}
button.bt-cart-remove{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-size:13px;}
.bt-btn-block{width:100%;justify-content:center;}
.bt-cart-totals .bt-btn-block{margin-top:0;}
