/*
Theme Name:   Bambiha Child
Theme URI:    https://bambiha.com
Description:  Bambiha Wear design system — "Night Shift / Loud". Dark site, Bone light-island for cart/checkout/account, Oxblood accent. Styles WooCommerce's default templates so Elementor Pro is not required. Includes COD fee/cap, Google Consent Mode v2 and the cookie banner.
Author:       Bambiha Wear
Template:     hello-elementor
Version:      2.0.0
Text Domain:  bambiha-child
*/

/* ==========================================================================
   HOW THIS FILE WORKS — read before editing

   There is ONE set of component rules. They never name a colour directly.
   They use semantic tokens (--bg, --fg, --surface, --line, --muted).

   Those tokens are bound twice:
     :root            → the dark scheme (most of the site)
     body.bw-light    → the Bone scheme (cart, checkout, my-account)

   So "make checkout light" is one body class, not a second stylesheet.
   If you add a component, use the semantic tokens and it works in both.
   ========================================================================== */

/* ==========================================================================
   1. Brand constants — the only place a hex appears
   ========================================================================== */

:root{
  --bw-ink:      #0A0A0A;
  --bw-tile:     #151515;
  --bw-bone:     #EDE8DC;
  --bw-paper:    #F8F5EF;
  --bw-ox:       #7B2233;
  --bw-ox-lift:  #93293C;

  --bw-line-dark:  rgba(237,232,220,.13);
  --bw-line-light: #D9D2C4;
  --bw-mute-dark:  rgba(237,232,220,.60);
  --bw-mute-light: #6B6B6B;

  --bw-ok:   #2E7D5B;
  --bw-warn: #A8701B;
  --bw-err:  #B23A48;

  --font-display: "Anton", "Archivo Black", Impact, "Haettenschweiler", sans-serif;
  --font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Type scale — fluid, capped. Do not add sizes outside this scale. */
  --t-hero: clamp(3.2rem, 13vw, 10rem);
  --t-h1:   clamp(2.4rem, 7vw,  5rem);
  --t-h2:   clamp(1.6rem, 4.6vw, 2.9rem);
  --t-h3:   clamp(1.2rem, 2.6vw, 1.6rem);
  --t-body: 1rem;
  --t-sm:   .875rem;
  --t-xs:   .78rem;
  --t-micro:.68rem;

  /* Spacing scale — use these, not arbitrary px */
  --s1: 4px;  --s2: 8px;  --s3: 14px; --s4: 22px;
  --s5: 34px; --s6: 52px; --s7: 78px; --s8: 112px;

  --wrap: 1240px;
  --gut:  clamp(16px, 4vw, 32px);
  --radius: 0px;              /* streetwear. Square. Do not soften. */
  --logo-h: 46px;             /* header logo HEIGHT. width is always auto. */
  --hdr-h: 78px;

  --ease: cubic-bezier(.2,.7,.3,1);

  /* --- semantic: DARK (default) --- */
  --bg:      var(--bw-ink);
  --fg:      var(--bw-bone);
  --surface: var(--bw-tile);
  --line:    var(--bw-line-dark);
  --muted:   var(--bw-mute-dark);
  --accent:  var(--bw-ox);
  --btn-bg:  var(--bw-bone);
  --btn-fg:  var(--bw-ink);
  --field-bg: #111111;
}

/* --- semantic: LIGHT ISLAND — cart, checkout, my-account ---
   Dark checkout is where dark themes lose money and there is no brand
   upside to a dark payment form. Applied by functions.php. */
body.bw-light{
  --bg:      var(--bw-bone);
  --fg:      var(--bw-ink);
  --surface: var(--bw-paper);
  --line:    var(--bw-line-light);
  --muted:   var(--bw-mute-light);
  --btn-bg:  var(--bw-ink);
  --btn-fg:  var(--bw-bone);
  --field-bg:#FFFFFF;
}

/* ==========================================================================
   2. Base
   ========================================================================== */

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--font-body);
  font-size:var(--t-body);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img,svg,video{ max-width:100%; height:auto; display:block; }

a{ color:inherit; text-decoration:none; }
a:hover{ color:var(--accent); }
p a, .entry-content a, .bw-legal a{ text-decoration:underline; text-underline-offset:.18em; }

h1,h2,h3,.bw-display{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  line-height:.98;
  letter-spacing:-.005em;
  margin:0 0 var(--s3);
}
h1{ font-size:var(--t-h1); }
h2{ font-size:var(--t-h2); }
h3{ font-size:var(--t-h3); }
h4,h5,h6{
  font-family:var(--font-body); font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; font-size:var(--t-sm); margin:0 0 var(--s2);
}

::selection{ background:var(--bw-ox); color:var(--bw-bone); }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

/* Fine film grain. Cheap, fixed, non-interactive. Remove this block to kill it. */
body::after{
  content:""; position:fixed; inset:0; z-index:3; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/><feColorMatrix type='saturate' values='0'/></filter><rect width='120' height='120' filter='url(%23n)' opacity='.045'/></svg>");
}
body.bw-light::after{ opacity:.28; }

/* ==========================================================================
   3. Layout
   ========================================================================== */

.bw-wrap,
.site-header > .site-header-inner,
.site-footer > .site-footer-inner,
.site-main > .page-content,
.site-main > article,
.woocommerce.archive .site-main,
.woocommerce.single .site-main{
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:var(--gut);
  width:100%;
}
.bw-wrap--narrow{ max-width:820px; }

.bw-section{ padding-block:var(--s7); }
.bw-section--tight{ padding-block:var(--s6); }
.bw-rule{ height:1px; background:var(--line); border:0; margin:0; }

/* Section head: title left, meta right, rule under. Used across the site. */
.bw-shead{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:var(--s4); flex-wrap:wrap;
  border-bottom:1px solid var(--line);
  padding-bottom:var(--s3); margin-bottom:var(--s5);
}
.bw-shead h2{ margin:0; }
.bw-shead .bw-meta{
  font-weight:700; font-size:var(--t-micro); letter-spacing:.2em;
  text-transform:uppercase; color:var(--accent);
}

.bw-label{
  font-weight:700; font-size:var(--t-micro); letter-spacing:.2em;
  text-transform:uppercase; color:var(--accent); margin-bottom:var(--s3);
}
.bw-sub{ color:var(--muted); max-width:56ch; line-height:1.65; }

/* ==========================================================================
   4. Header
   ========================================================================== */

.site-header{
  background:var(--bg);
  border-bottom:1px solid var(--line);
  position:relative; z-index:50;
}
.site-header .site-header-inner,
.site-header > div{
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--s5); min-height:var(--hdr-h);
}

/* --- LOGO. Sized by HEIGHT, width always auto.
   This is the fix for a logo that renders at its raw pixel size.
   Never set a width here and never let WordPress inline one. --- */
.site-header .site-logo img,
.site-header .custom-logo,
.site-header img.custom-logo,
.site-branding img,
.bw-logo{
  height:var(--logo-h) !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain;
  display:block;
}
/* Inline SVG logo inherits the text colour, so it flips with the scheme. */
svg.bw-logo{ color:var(--fg); fill:currentColor; }

/* Fallback PNG: the dark artwork must not sit on the dark scheme. */
body:not(.bw-light) .site-header img.custom-logo[src*="logo-dark"]{ filter:invert(1) brightness(1.06); }

.site-title,.site-description{
  font-family:var(--font-display); text-transform:uppercase;
  font-size:var(--t-h3); margin:0;
}
.site-description{ display:none; }

/* Nav */
.site-navigation ul,
.site-header nav ul{
  display:flex; gap:var(--s4); list-style:none; margin:0; padding:0; align-items:center;
}
.site-navigation a,
.site-header nav a{
  font-weight:700; font-size:var(--t-micro); letter-spacing:.18em;
  text-transform:uppercase; color:var(--fg); opacity:.62;
  padding-block:var(--s2); transition:opacity .15s var(--ease), color .15s var(--ease);
}
.site-navigation a:hover,
.site-header nav .current-menu-item > a{ opacity:1; color:var(--accent); }

/* Drop pill — right of the nav */
.bw-pill{
  border:1px solid var(--accent); color:var(--accent);
  font-weight:700; font-size:var(--t-micro); letter-spacing:.18em; text-transform:uppercase;
  padding:7px 12px; border-radius:999px; white-space:nowrap; line-height:1;
}
.bw-pill a{ color:inherit; }

/* Sticky on scroll */
.site-header.bw-stuck{
  position:sticky; top:0;
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:saturate(140%) blur(9px);
}

/* ==========================================================================
   5. Ticker
   ========================================================================== */

.bw-ticker{
  background:var(--bw-ox); color:var(--bw-bone);
  overflow:hidden; white-space:nowrap; position:relative; z-index:40;
}
.bw-ticker__run{
  display:inline-block; padding-block:11px;
  font-weight:700; font-size:var(--t-micro); letter-spacing:.24em; text-transform:uppercase;
  animation:bw-tick 34s linear infinite; will-change:transform;
}
.bw-ticker__run span{ padding-inline:26px; }
.bw-ticker:hover .bw-ticker__run{ animation-play-state:paused; }
@keyframes bw-tick{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion: reduce){
  .bw-ticker__run{ animation:none; }
  .bw-ticker{ text-align:center; }
}

/* ==========================================================================
   6. Buttons — one shape, two weights, everywhere
   ========================================================================== */

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wp-block-button__link, .bw-btn, button.bw-btn, input[type=submit]{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid var(--btn-bg); border-radius:var(--radius);
  font-family:var(--font-body); font-weight:700;
  font-size:var(--t-xs); letter-spacing:.16em; text-transform:uppercase;
  padding:17px 30px; line-height:1; cursor:pointer;
  transition:background .14s var(--ease), border-color .14s var(--ease), color .14s var(--ease);
  text-decoration:none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover, .bw-btn:hover, input[type=submit]:hover{
  background:var(--bw-ox); border-color:var(--bw-ox); color:var(--bw-bone);
}
.bw-btn--ghost{ background:transparent; color:var(--fg); border-color:var(--fg); }
.bw-btn--sm{ padding:12px 20px; font-size:var(--t-micro); }

.woocommerce button.button.alt.single_add_to_cart_button{
  width:100%; padding:20px 30px; font-size:var(--t-sm);
}
.woocommerce .button.disabled, .woocommerce button.button:disabled{ opacity:.4; }

/* ==========================================================================
   7. Shop archive / product grid
   ========================================================================== */

.woocommerce .woocommerce-products-header{ padding-block:var(--s6) var(--s4); }
.woocommerce .woocommerce-products-header__title{ font-size:var(--t-h1); margin:0 0 var(--s3); }
.woocommerce .term-description{ color:var(--muted); max-width:62ch; }
.woocommerce .woocommerce-result-count{ display:none; }
.woocommerce .woocommerce-ordering{ margin-bottom:var(--s4); }
.woocommerce .woocommerce-ordering select{
  background:var(--field-bg); color:var(--fg); border:1px solid var(--line);
  padding:11px 14px; font:inherit; font-size:var(--t-xs); border-radius:var(--radius);
}

.woocommerce ul.products{
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
  margin:0 0 var(--s7); padding:0; list-style:none;
}
.woocommerce ul.products li.product{
  width:100% !important; margin:0 !important; float:none !important; text-align:left;
}
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .bw-thumb{
  margin:0; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); aspect-ratio:4/5; object-fit:cover;
  transition:border-color .16s var(--ease);
}
.woocommerce ul.products li.product:hover a img{ border-color:var(--accent); }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--font-body) !important;
  font-weight:700 !important; font-size:var(--t-xs) !important;
  letter-spacing:.05em; text-transform:uppercase;
  padding:0 !important; margin:var(--s3) 0 3px !important; color:var(--fg);
}
.woocommerce ul.products li.product .price{
  color:var(--muted) !important; font-size:var(--t-xs); font-weight:600;
}
.woocommerce ul.products li.product .price del{ opacity:.5; margin-right:6px; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; color:var(--fg); }
/* Hide the loop add-to-cart. One decision per card: open the product. */
.woocommerce ul.products li.product .button{ display:none; }

.woocommerce span.onsale{
  background:var(--bw-ox); color:var(--bw-bone); border-radius:var(--radius);
  font-weight:700; font-size:var(--t-micro); letter-spacing:.16em; text-transform:uppercase;
  min-height:0; min-width:0; line-height:1; padding:7px 10px; top:10px; left:10px; right:auto; margin:0;
}

/* ==========================================================================
   8. Single product
   ========================================================================== */

.woocommerce div.product{ padding-block:var(--s6) var(--s7); }
.woocommerce div.product .product_title{ font-size:var(--t-h1); margin-bottom:var(--s2); }
.woocommerce div.product p.price, .woocommerce div.product span.price{
  color:var(--fg); font-family:var(--font-body);
  font-size:1.4rem; font-weight:700; margin:0 0 var(--s1);
}
.woocommerce div.product .woocommerce-product-details__short-description{
  color:var(--muted); margin:var(--s3) 0 var(--s4); max-width:52ch;
}
.woocommerce div.product div.images img{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
}
.woocommerce div.product .flex-control-thumbs{ margin-top:10px; gap:8px; display:flex; }
.woocommerce div.product .flex-control-thumbs li{ width:calc(25% - 6px); margin:0; }

/* Variations — the most-touched element on the site. M+L are 51% of units. */
.woocommerce div.product form.cart .variations{ width:100%; margin-bottom:var(--s3); }
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{
  display:block; width:100%; padding:0 0 var(--s3); border:0; text-align:left;
}
.woocommerce div.product form.cart .variations label{
  display:block; font-weight:700; font-size:var(--t-micro);
  letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:7px;
}
.woocommerce div.product form.cart .variations select{
  width:100%; min-height:52px; padding:14px 14px;
  background:var(--field-bg); color:var(--fg);
  border:1px solid var(--line); border-radius:var(--radius);
  font:inherit; font-size:1rem; appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 20px) 22px, calc(100% - 14px) 22px;
  background-size:6px 6px,6px 6px; background-repeat:no-repeat;
}
.woocommerce div.product form.cart .variations select:focus{ border-color:var(--accent); }
.woocommerce div.product form.cart .reset_variations{
  font-size:var(--t-micro); letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.woocommerce div.product form.cart .quantity{ display:none; }   /* one tee at a time; use the bundle */

.woocommerce div.product .product_meta{
  margin-top:var(--s4); padding-top:var(--s3); border-top:1px solid var(--line);
  font-size:var(--t-micro); letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs{ margin-top:var(--s6); }
.woocommerce div.product .woocommerce-tabs ul.tabs{ padding:0; margin:0 0 var(--s4); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ border-bottom:1px solid var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:transparent; border:0; border-bottom:2px solid transparent; border-radius:0;
  margin:0 var(--s4) 0 0; padding:0 0 12px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font-weight:700; font-size:var(--t-micro); letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ border-bottom-color:var(--accent); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--fg); }
.woocommerce div.product .woocommerce-tabs .panel h2{ display:none; }
.woocommerce table.shop_attributes th,.woocommerce table.shop_attributes td{
  border-color:var(--line); color:var(--fg);
}

/* ==========================================================================
   9. Trust strip, notices, size guide
   ========================================================================== */

.bw-trust{
  display:grid; grid-template-columns:repeat(2,1fr); gap:12px;
  margin:var(--s4) 0; padding:var(--s4);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
}
.bw-trust > div span{
  display:block; font-weight:700; font-size:var(--t-micro);
  letter-spacing:.14em; text-transform:uppercase; margin-bottom:3px;
}
.bw-trust > div small{ color:var(--muted); font-size:var(--t-xs); line-height:1.45; }

.bw-acid-note{
  border-left:3px solid var(--accent);
  padding:10px 0 10px 14px; margin:var(--s4) 0;
  font-size:var(--t-xs); color:var(--muted); line-height:1.6;
}
.bw-dispatch{
  font-size:var(--t-xs); color:var(--muted); margin:var(--s3) 0 0;
}
.bw-dispatch b{ color:var(--fg); }

.bw-sizeguide table{ width:100%; border-collapse:collapse; font-size:var(--t-sm); }
.bw-sizeguide th,.bw-sizeguide td{ border:1px solid var(--line); padding:11px 13px; text-align:left; }
.bw-sizeguide th{ background:var(--surface); font-weight:700; text-transform:uppercase; font-size:var(--t-micro); letter-spacing:.1em; }

/* WooCommerce messages */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  background:var(--surface); color:var(--fg);
  border-top:3px solid var(--accent); border-radius:var(--radius);
  padding:var(--s3) var(--s4); font-size:var(--t-sm); list-style:none;
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{ display:none; }
.woocommerce-error{ border-top-color:var(--bw-err); }

/* ==========================================================================
   10. Cart · Checkout · My Account  (the Bone light island)
   Component rules are shared; only the tokens change. See the header note.
   ========================================================================== */

body.bw-light .site-header{ border-bottom-color:var(--line); }

.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main{ padding-block:var(--s6) var(--s7); }

.woocommerce table.shop_table{
  border:1px solid var(--line); border-radius:var(--radius);
  border-collapse:collapse; background:var(--surface);
}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{
  border-color:var(--line); color:var(--fg); padding:var(--s3);
}
.woocommerce table.shop_table thead th{
  font-weight:700; font-size:var(--t-micro); letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.woocommerce-cart table.cart img{ width:78px; border:1px solid var(--line); border-radius:var(--radius); }
.woocommerce-cart .cart-collaterals .cart_totals{ background:var(--surface); border:1px solid var(--line); padding:var(--s4); }

/* Forms */
.woocommerce form .form-row{ padding:0 0 var(--s3); margin:0; }
.woocommerce form .form-row label{
  font-weight:700; font-size:var(--t-micro); letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted); margin-bottom:6px; display:block;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single,
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=search],textarea{
  width:100%; min-height:52px; padding:14px;
  background:var(--field-bg); color:var(--fg);
  border:1px solid var(--line); border-radius:var(--radius);
  font:inherit; font-size:1rem;   /* 16px — anything smaller makes iOS zoom on focus */
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,textarea:focus{ border-color:var(--accent); outline:none; }
.select2-container .select2-selection--single{ display:flex; align-items:center; }
.woocommerce form .form-row.woocommerce-invalid input.input-text{ border-color:var(--bw-err); }

/* Checkout layout */
.woocommerce-checkout .col2-set{ display:grid; grid-template-columns:1fr; gap:var(--s5); }
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{ width:100%; float:none; }
.woocommerce-checkout h3{ font-size:var(--t-h3); margin-bottom:var(--s3); }
.woocommerce-checkout #order_review_heading{ margin-top:var(--s5); }
.woocommerce-checkout #payment{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
}
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid var(--line); padding:var(--s4); }
.woocommerce-checkout #payment ul.payment_methods li{ margin-bottom:var(--s3); }
.woocommerce-checkout #payment ul.payment_methods label{
  font-weight:700; font-size:var(--t-sm); letter-spacing:.04em; text-transform:none;
}
.woocommerce-checkout #payment div.payment_box{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--radius);
  font-size:var(--t-xs); color:var(--muted);
}
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:var(--line); }
.woocommerce-checkout #payment div.form-row.place-order{ padding:var(--s4); }
.woocommerce-checkout #payment #place_order{ width:100%; padding:20px; font-size:var(--t-sm); }

/* The ₹99 COD line must be impossible to miss. A total that moves quietly is a lost sale. */
.woocommerce-checkout tr.fee th,.woocommerce-checkout tr.fee td,
.woocommerce-cart tr.fee th,.woocommerce-cart tr.fee td{ color:var(--accent); font-weight:700; }
.woocommerce-checkout tr.order-total th,.woocommerce-checkout tr.order-total td{ font-size:1.15rem; font-weight:700; }

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0 0 var(--s5); padding:0; display:flex; gap:var(--s4); flex-wrap:wrap; border-bottom:1px solid var(--line); }
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block; padding-bottom:12px; font-weight:700; font-size:var(--t-micro);
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted); border-bottom:2px solid transparent;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ color:var(--fg); border-bottom-color:var(--accent); }
.woocommerce-account .woocommerce-MyAccount-content{ width:100%; float:none; }

/* ==========================================================================
   11. Footer
   ========================================================================== */

.site-footer{
  background:var(--bg); color:var(--fg);
  border-top:1px solid var(--line); padding-block:var(--s6) var(--s4);
}
.site-footer .site-footer-inner,
.site-footer > div{
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--s5); flex-wrap:wrap;
}
.site-footer img.custom-logo,.site-footer .site-logo img,.site-footer .bw-logo{ height:var(--logo-h) !important; width:auto !important; }
.site-footer nav ul{ display:flex; gap:var(--s4); flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.site-footer nav a{
  font-weight:600; font-size:var(--t-micro); letter-spacing:.14em;
  text-transform:uppercase; opacity:.5;
}
.site-footer nav a:hover{ opacity:1; color:var(--accent); }
.site-footer .copyright,.bw-copy{
  width:100%; border-top:1px solid var(--line); margin-top:var(--s4); padding-top:var(--s4);
  font-weight:600; font-size:var(--t-micro); letter-spacing:.12em;
  text-transform:uppercase; opacity:.38;
}

/* ==========================================================================
   12. Legal pages
   ========================================================================== */

.bw-legal{ max-width:760px; margin-inline:auto; padding-block:var(--s6) var(--s7); }
.bw-legal h2{ margin-top:0; }
.bw-legal h3{
  font-family:var(--font-body); font-weight:700; text-transform:none;
  letter-spacing:0; font-size:1.1rem; margin-top:2.2em; line-height:1.35;
}
.bw-legal p,.bw-legal li{ color:var(--muted); }
.bw-legal table{ width:100%; border-collapse:collapse; margin:1.3em 0; font-size:var(--t-sm); }
.bw-legal th,.bw-legal td{ border:1px solid var(--line); padding:11px 13px; text-align:left; vertical-align:top; color:var(--fg); }
.bw-legal th{ background:var(--surface); font-weight:700; }
.bw-legal ul{ padding-left:1.2em; } .bw-legal li{ margin-bottom:.45em; }

/* ==========================================================================
   13. Cookie banner
   ========================================================================== */

.bw-consent{
  position:fixed; inset-inline:0; bottom:0; z-index:9999; display:none;
  background:var(--bw-ink); color:var(--bw-bone);
  padding:var(--s4) var(--gut); border-top:1px solid var(--bw-ox);
}
.bw-consent.is-open{ display:block; }
.bw-consent__inner{
  max-width:var(--wrap); margin-inline:auto;
  display:flex; flex-wrap:wrap; gap:var(--s3); align-items:center; justify-content:space-between;
}
.bw-consent p{ margin:0; font-size:var(--t-xs); max-width:64ch; line-height:1.55; opacity:.8; }
.bw-consent a{ color:var(--bw-bone); text-decoration:underline; }
.bw-consent__actions{ display:flex; gap:10px; flex-wrap:wrap; }
.bw-consent button{
  font:inherit; font-weight:700; font-size:var(--t-micro); letter-spacing:.14em; text-transform:uppercase;
  padding:13px 22px; border-radius:var(--radius); cursor:pointer;
  border:1px solid var(--bw-bone); background:transparent; color:var(--bw-bone);
}
.bw-consent button.is-primary{ background:var(--bw-bone); color:var(--bw-ink); }
.bw-consent button:hover{ background:var(--bw-ox); border-color:var(--bw-ox); color:var(--bw-bone); }

/* ==========================================================================
   14. Sticky mobile add-to-cart
   ========================================================================== */

.bw-stickybuy{
  position:fixed; inset-inline:0; bottom:0; z-index:60; display:none;
  align-items:center; justify-content:space-between; gap:12px;
  background:var(--bw-bone); color:var(--bw-ink);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid var(--bw-ink);
}
.bw-stickybuy .bw-sb-name{ font-weight:700; font-size:var(--t-micro); letter-spacing:.1em; text-transform:uppercase; line-height:1.3; }
.bw-stickybuy .bw-sb-price{ font-weight:600; font-size:var(--t-xs); opacity:.7; }
.bw-stickybuy .bw-btn{ background:var(--bw-ink); color:var(--bw-bone); border-color:var(--bw-ink); padding:15px 22px; }

/* ==========================================================================
   15. Mobile — 70%+ of traffic. Check every change here first.
   ========================================================================== */

@media (max-width:1024px){
  .woocommerce ul.products{ grid-template-columns:repeat(3,1fr); }
}

@media (max-width:900px){
  :root{ --logo-h:38px; --hdr-h:64px; }
  .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .site-header .site-navigation ul{ gap:var(--s3); }
  .bw-section{ padding-block:var(--s6); }
  .woocommerce div.product{ padding-block:var(--s5) var(--s7); }
  .site-footer > div,.site-footer .site-footer-inner{ flex-direction:column; align-items:flex-start; }
  .bw-consent__inner{ flex-direction:column; align-items:flex-start; }
  .bw-consent__actions{ width:100%; }
  .bw-consent button{ flex:1; }
}

@media (max-width:600px){
  .bw-trust{ grid-template-columns:repeat(2,1fr); padding:var(--s3); }
  .woocommerce div.product .product_title{ font-size:2rem; }
  .site-header .bw-pill{ display:none; }
  .woocommerce div.product form.cart .variations select{ min-height:54px; }
  /* Room for the sticky buy bar so it never covers the footer links */
  body.single-product{ padding-bottom:82px; }
  .bw-stickybuy{ display:flex; }
  .bw-consent{ padding-bottom:calc(var(--s4) + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* Print — order confirmations get printed more than you'd think */
@media print{
  .site-header,.site-footer,.bw-ticker,.bw-consent,.bw-stickybuy,body::after{ display:none !important; }
  body{ background:#fff; color:#000; }
}
