/*
Theme Name: Blue Belle
Theme URI: https://bluebellelogistics.shop
Description: A premium women's fashion child theme for Astra. Editorial typography, refined product cards, and a warm neutral palette.
Author: BLUE BELLE LOGISTICS LLC
Author URI: https://bluebellelogistics.shop
Template: astra
Version: 3.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: blue-belle
*/

/* ==========================================================================
   1. TOKENS
   ========================================================================== */
:root {
  /* Deep aubergine + saturated berry. The previous dusty-rose / greige set read
     as interiors; this one is unmistakably womenswear. */
  --ink:        #2e1828;   /* aubergine — headings and dark bands */
  --ink-2:      #4a2c3f;
  --body:       #6b5560;   /* warm plum-grey body copy */
  --muted:      #a08e98;
  --line:       #f0dce5;
  --line-soft:  #f9eef3;
  --ivory:      #fdfafa;   /* page base */
  --cream:      #fdf5f8;   /* faint blush section */
  --blush:      #faeaf0;   /* clear blush section */
  --blush-2:    #f6dde7;
  --berry:      #a8345c;   /* THE brand colour */
  --berry-dark: #8a2549;
  --berry-soft: #c96f92;
  --rose:       #ce7492;
  --gold:       #b07a92;   /* labels — rose-taupe, not metallic gold */
  --gold-dark:  #8f5570;
  --plum:       #3a1f33;   /* footer / dark bands */
  --white:      #ffffff;
  --ok:         #3f6b48;
  --err:        #9c3f36;

  --serif: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans:  "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --wrap: 1320px;
  --wrap-narrow: 780px;
  --pad: 30px;
  --sec: 108px;
  --radius: 3px;
  --shadow: 0 24px 60px -34px rgba(58, 31, 51, 0.30);
  --shadow-sm: 0 12px 34px -22px rgba(58, 31, 51, 0.24);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

body.bb-theme {
  background: var(--white);
  color: var(--body);
  font-family: var(--sans);
  font-size: 16.5px;
  font-weight: 400;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.bb-theme h1, .bb-theme h2, .bb-theme h3,
.bb-theme h4, .bb-theme h5, .bb-theme h6 {
  font-family: var(--serif);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.012em;
  margin: 0 0 0.6em;
}
.bb-theme h1 { font-size: clamp(2.6rem, 5.1vw, 4.35rem); line-height: 1.06; }
.bb-theme h2 { font-size: clamp(1.95rem, 3.5vw, 3rem); }
.bb-theme h3 { font-size: clamp(1.28rem, 2vw, 1.72rem); }
.bb-theme h4 { font-size: 1.15rem; }
.bb-theme p { margin: 0 0 1.25rem; }
.bb-theme p:last-child { margin-bottom: 0; }

/* Link colour is scoped to content links only, so component colours win. */
.bb-theme a { color: var(--ink); transition: color 0.25s var(--ease), border-color 0.25s var(--ease), background-color 0.25s var(--ease); }
.bb-theme .bb-page a:hover { color: var(--gold-dark); }
.bb-theme .bb-page a.bb-btn:hover { color: inherit; }

.bb-theme ::selection { background: var(--gold); color: #fff; }
.bb-theme img { max-width: 100%; height: auto; display: block; }
.bb-theme :focus-visible { outline: 2px solid var(--gold-dark); outline-offset: 3px; }

.bb-theme .screen-reader-text {
  position: absolute !important; width: 1px; height: 1px;
  overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* ==========================================================================
   3. LAYOUT — full-bleed pages, single container
   ========================================================================== */
.bb-theme .bb-page { margin: 0; padding: 0; }

/* Astra's page-builder layout turns `.ast-container` into a FLEX ROW so the
   content and sidebar can sit side by side. With no sidebar here that made the
   hero and the toolbar render as two columns. Force a plain block flow. */
.bb-home .ast-container,
.bb-shop-view .ast-container,
.bb-tpl-home .ast-container,
.bb-tpl-about .ast-container,
.bb-tpl-contact .ast-container,
.bb-theme .ast-container,
.bb-theme .ast-container .ast-container {
  display: block !important;
  flex-wrap: nowrap !important;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.bb-theme .ast-woocommerce-container { display: block !important; width: 100% !important; max-width: 100% !important; }
.bb-theme #primary.bb-primary, .bb-theme .bb-main { margin: 0; padding: 0; }
.bb-theme .bb-page, .bb-theme .bb-page .entry-content { margin: 0; padding: 0; max-width: none; }

.bb-wrap {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: var(--pad);
}
.bb-wrap--narrow { max-width: var(--wrap-narrow); }
.bb-wrap--text { max-width: 66ch; }

.bb-section { padding: var(--sec) 0; }
.bb-section--sm { padding: calc(var(--sec) * 0.62) 0; }
.bb-section--cream { background: var(--cream); }
.bb-section--sand { background: var(--blush); }
.bb-section--ink { background: var(--plum); color: #b8b2a9; }
.bb-section--ink h2, .bb-section--ink h3 { color: #fff; }
.bb-section--line { border-top: 1px solid var(--line); }

/* ==========================================================================
   4. TYPE HELPERS
   ========================================================================== */
.bb-label {
  display: block;
  font-size: 0.685rem;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold-dark);
  margin: 0 0 14px;
}
.bb-label--muted { color: var(--muted); }
.bb-label--light { color: var(--gold); }

.bb-lede { font-size: 1.08rem; line-height: 1.8; color: var(--body); max-width: 62ch; }

.bb-head { max-width: 720px; }
.bb-head--center { margin-inline: auto; text-align: center; }
.bb-head h2 { margin-bottom: 16px; }
.bb-head .bb-lede { margin-bottom: 0; }
.bb-head--center .bb-lede { margin-inline: auto; }
.bb-head--split {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 32px;
  max-width: none;
}
.bb-head--split h2 { margin-bottom: 0; }
.bb-head + .bb-grid, .bb-head + .bb-cats, .bb-head + .bb-lookbook,
.bb-head + .bb-testimonials, .bb-head + .bb-faq, .bb-head + .bb-steps { margin-top: 58px; }

/* ==========================================================================
   5. BUTTONS / LINKS
   ========================================================================== */
.bb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 0.775rem;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  line-height: 1;
  padding: 17px 38px;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: transparent;
  color: var(--ink);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s var(--ease), color 0.3s var(--ease),
              border-color 0.3s var(--ease), transform 0.3s var(--ease);
}
.bb-theme a.bb-btn { text-decoration: none; }
.bb-theme a.bb-btn--solid,
.bb-theme a.bb-btn--solid:hover { color: #fff; }
.bb-theme a.bb-btn--ghost-light,
.bb-theme a.bb-btn--ghost-light:hover { color: #fff; }

.bb-btn:hover { background: var(--plum); color: #fff; }
.bb-btn--solid { background: var(--berry); border-color: var(--berry); color: #fff; }
.bb-btn--solid:hover { background: var(--berry-dark); border-color: var(--berry-dark); color: #fff; }
.bb-btn--gold { background: var(--gold); border-color: var(--gold); color: #fff; }
.bb-btn--gold:hover { background: var(--gold-dark); border-color: var(--gold-dark); color: #fff; }
.bb-btn--plum { background: var(--plum); border-color: var(--plum); color: #fff; }
.bb-btn--plum:hover { background: var(--berry-dark); border-color: var(--berry-dark); color: #fff; }
.bb-btn--ghost-light { border-color: rgba(255, 255, 255, 0.55); background: transparent; color: #fff; }
.bb-btn--ghost-light:hover { background: #fff; border-color: #fff; color: var(--ink); }
.bb-btn--sm { padding: 13px 26px; font-size: 0.71rem; }
.bb-btn--full { width: 100%; }

.bb-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.bb-row--center { justify-content: center; }

.bb-link {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  font-size: 0.775rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--line);
}
.bb-theme .bb-page a.bb-link:hover { border-color: var(--gold); color: var(--ink); gap: 17px; }
.bb-link::after { content: "\2192"; font-size: 0.94em; line-height: 1; }

/* ==========================================================================
   6. ANNOUNCEMENT BAR
   ========================================================================== */
.bb-announce {
  background: var(--plum);
  color: #efe9e1;
  font-size: 0.685rem;
  font-weight: 400;
  letter-spacing: 0.19em;
  text-transform: uppercase;
  position: relative;
  z-index: 60;
}
.bb-announce-inner {
  max-width: var(--wrap);
  margin-inline: auto;
  padding: 12px var(--pad);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.bb-announce strong { color: var(--gold); font-weight: 500; }
.bb-announce-sep { color: var(--gold); opacity: 0.6; }

/* ==========================================================================
   7. HEADER
   ========================================================================== */
.bb-theme .site-header,
.bb-theme .ast-primary-header-bar,
.bb-theme .main-header-menu,
.bb-theme .ast-mobile-header-wrap,
.bb-theme .ast-mobile-popup-content,
.bb-theme .ast-desktop-header-content { background-color: var(--white) !important; }

.bb-theme .ast-primary-header-bar {
  border-bottom: 1px solid var(--line-soft) !important;
  min-height: 84px;
}
.bb-theme .ast-primary-header-bar .site-primary-header-wrap,
.bb-theme .ast-primary-header-bar .ast-builder-grid-row { min-height: 84px; align-items: center; }

.bb-theme .ast-builder-grid-row-container,
.bb-theme .site-header .ast-container { max-width: var(--wrap); padding-inline: var(--pad); }

.bb-theme .site-header .custom-logo-link { display: inline-flex; align-items: center; padding-left: 4px; }
.bb-theme .site-header img.custom-logo {
  /* fallback: only used if the generated wordmark is ever disabled */
  height: 58px;
  width: auto;
  max-height: none;
  display: block;
}

/* Header logo is generated from the company options (see bb_logo_html()), so
   it follows a rename automatically — there is no image to regenerate. */
.bb-theme .site-header .bb-logo-mark {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  text-decoration: none;
  line-height: 1;
  padding-left: 4px;
}
.bb-theme .site-header .bb-logo-mark .bb-logo-l1 {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink);
  white-space: nowrap;
}
.bb-theme .site-header .bb-logo-mark .bb-logo-rule {
  display: block;
  width: 44%;
  min-width: 34px;
  height: 2px;
  background: var(--berry);
  margin: 6px 0 5px;
}
.bb-theme .site-header .bb-logo-mark .bb-logo-l2 {
  font-family: var(--sans);
  font-size: 9.5px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--ink-2);
  white-space: nowrap;
}
.bb-theme .bb-page a.bb-logo-mark:hover,
.bb-theme .bb-logo-mark:hover .bb-logo-l1 { color: var(--ink); }
.bb-theme .bb-logo-mark:hover .bb-logo-rule { background: var(--ink); }

@media (max-width: 921px) {
  .bb-theme .site-header img.custom-logo { height: 44px; }
  .bb-theme .site-header .bb-logo-mark .bb-logo-l1 { font-size: 21px; }
  .bb-theme .site-header .bb-logo-mark .bb-logo-l2 { font-size: 8.5px; letter-spacing: 0.26em; }
}
.bb-theme .site-title, .bb-theme .site-description { display: none !important; }

.bb-theme .main-header-menu .menu-link,
.bb-theme .ast-header-break-point .main-header-menu .menu-link,
.bb-theme .ast-mobile-popup-content .menu-link {
  font-family: var(--sans);
  font-size: 0.745rem;
  font-weight: 500;
  letter-spacing: 0.19em;
  text-transform: uppercase;
  color: var(--ink) !important;
  padding: 12px 18px;
  background: transparent;
}
.bb-theme .main-header-menu > .menu-item > .menu-link { position: relative; }
.bb-theme .main-header-menu > .menu-item > .menu-link::after {
  content: "";
  position: absolute;
  left: 18px; right: 18px; bottom: 5px;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s var(--ease);
}
.bb-theme .main-header-menu > .menu-item:hover > .menu-link::after,
.bb-theme .main-header-menu > .current-menu-item > .menu-link::after,
.bb-theme .main-header-menu > .current_page_item > .menu-link::after,
.bb-theme .main-header-menu > .current-menu-ancestor > .menu-link::after { transform: scaleX(1); }

.bb-theme .ast-header-break-point .main-header-menu { border-top: 1px solid var(--line-soft); }
.bb-theme .ast-header-break-point .main-header-menu .menu-link { border-bottom: 1px solid var(--line-soft); }
.bb-theme .main-header-menu-toggle .menu-toggle { color: var(--ink); }

.bb-theme .site-header.bb-header-scrolled .ast-primary-header-bar {
  box-shadow: 0 14px 40px -32px rgba(69, 39, 58, 0.4);
}

/* ==========================================================================
   8. HERO
   ========================================================================== */
.bb-hero { position: relative; }

.bb-hero--home {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  min-height: min(84vh, 780px);
  background: linear-gradient(160deg, #ffffff 0%, var(--cream) 46%, var(--blush) 100%);
  overflow: hidden;
}
.bb-hero-copy-col {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.bb-hero-inner { max-width: 640px; width: 100%; padding: 92px 0 92px var(--pad); }
.bb-hero--home h1 { margin: 0 0 22px; max-width: 16ch; }
.bb-hero--home .bb-hero-lede { font-size: 1.09rem; line-height: 1.8; max-width: 44ch; margin: 0 0 36px; }
.bb-hero-media { position: relative; overflow: hidden; background: var(--blush); }
.bb-hero-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% 45%;
}
.bb-hero-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 34px;
  margin-top: 46px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.bb-hero-facts span { display: inline-flex; align-items: center; gap: 9px; }
.bb-hero-facts span::before { content: ""; width: 5px; height: 5px; background: var(--gold); border-radius: 50%; flex: 0 0 auto; }

/* Interior page hero */
.bb-hero--page {
  padding: 86px 0 72px;
  background: linear-gradient(180deg, var(--cream) 0%, var(--white) 100%);
  border-bottom: 1px solid var(--line-soft);
  text-align: center;
}
.bb-hero--page .bb-wrap { display: flex; flex-direction: column; align-items: center; }
.bb-hero--page h1 { margin: 0; max-width: 22ch; }
.bb-hero--page .bb-hero-lede { margin: 20px auto 0; max-width: 60ch; font-size: 1.06rem; }

.bb-crumbs {
  font-size: 0.675rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 24px;
}
.bb-theme .bb-page .bb-crumbs a { color: var(--muted); text-decoration: none; }
.bb-theme .bb-page .bb-crumbs a:hover { color: var(--gold-dark); }
.bb-crumbs-sep { margin: 0 10px; color: var(--line); }
.bb-crumbs span[aria-current] { color: var(--ink); }

/* ==========================================================================
   9. MARQUEE STRIP
   ========================================================================== */
.bb-strip {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
}
.bb-strip-inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.bb-strip-item {
  padding: 30px 26px;
  border-left: 1px solid var(--line-soft);
  text-align: center;
}
.bb-strip-item:first-child { border-left: 0; }
.bb-strip-item strong {
  display: block;
  font-family: var(--serif);
  font-size: 1.06rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 5px;
}
.bb-strip-item span {
  font-size: 0.735rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ==========================================================================
   10. CATEGORY GRID
   ========================================================================== */
.bb-cats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.bb-cat-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--blush);
  aspect-ratio: 4 / 5;
  text-decoration: none;
}
.bb-cat-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.bb-cat-card:hover img { transform: scale(1.045); }
.bb-cat-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(43, 26, 36, 0) 40%, rgba(69, 39, 58, 0.52) 100%);
}
.bb-cat-label { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 26px 24px 22px; color: #fff; }
.bb-cat-label i {
  display: block;
  font-style: normal;
  font-size: 0.645rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  opacity: 0.72;
  margin-bottom: 6px;
}
.bb-cat-label strong { font-family: var(--serif); font-size: 1.38rem; font-weight: 600; }
.bb-cat-label em { display: block; font-style: normal; font-size: 0.79rem; opacity: 0; max-height: 0; transition: opacity 0.35s var(--ease), max-height 0.35s var(--ease); }
.bb-cat-card:hover .bb-cat-label em { opacity: 0.85; max-height: 2em; margin-top: 7px; }

/* ==========================================================================
   11. EDITORIAL SPLIT
   ========================================================================== */
.bb-split { display: grid; grid-template-columns: 1fr 1fr; gap: 76px; align-items: center; }
.bb-split--media-right .bb-split-media { order: 2; }
.bb-split-media { position: relative; }
.bb-split-media img { width: 100%; border-radius: var(--radius); }
.bb-split-media--tall img { aspect-ratio: 4 / 5; object-fit: cover; }
.bb-split-media--wide img { aspect-ratio: 3 / 2; object-fit: cover; }
.bb-split-media--stack { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.bb-split-media--stack img:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 11; object-fit: cover; }
.bb-split-media--stack img { aspect-ratio: 1 / 1; object-fit: cover; }

.bb-badge {
  position: absolute;
  left: -20px; bottom: 34px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 20px 24px;
  min-width: 148px;
  text-align: center;
}
.bb-badge strong { display: block; font-family: var(--serif); font-size: 1.85rem; line-height: 1.05; color: var(--ink); }
.bb-badge span { font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }

.bb-split-body h2 { margin-bottom: 20px; }
.bb-split-body .bb-row { margin-top: 34px; }

.bb-points { list-style: none; margin: 34px 0 0; padding: 0; display: grid; gap: 0; }
.bb-points li {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 16px;
  padding: 20px 0;
  border-top: 1px solid var(--line);
}
.bb-points li:last-child { border-bottom: 1px solid var(--line); }
.bb-points .bb-points-i {
  font-family: var(--serif);
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  color: var(--gold);
  padding-top: 2px;
}
.bb-points h3 { font-size: 1.06rem; margin: 0 0 6px; }
.bb-points p { font-size: 0.94rem; margin: 0; }

/* ==========================================================================
   12. STATS BAND
   ========================================================================== */
.bb-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.bb-stat { padding: 8px 34px; border-left: 1px solid rgba(255, 255, 255, 0.12); }
.bb-stat:first-child { border-left: 0; padding-left: 0; }
.bb-stat strong {
  display: block;
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4vw, 3.3rem);
  font-weight: 600;
  line-height: 1;
  color: #fff;
  margin-bottom: 12px;
}
.bb-stat span { font-size: 0.685rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }

/* ==========================================================================
   13. LOOKBOOK
   ========================================================================== */
.bb-lookbook { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.bb-lookbook figure { margin: 0; overflow: hidden; border-radius: var(--radius); position: relative; }
.bb-lookbook img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1s var(--ease); }
.bb-lookbook figure:hover img { transform: scale(1.045); }
.bb-lookbook figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 26px 24px 20px;
  color: #fff;
  font-size: 0.685rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  background: linear-gradient(180deg, rgba(20,22,26,0) 0%, rgba(20,22,26,0.62) 100%);
}

/* ==========================================================================
   14. TESTIMONIALS
   ========================================================================== */
.bb-testimonials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.bb-testimonial {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
}
.bb-testimonial p {
  font-family: var(--serif);
  font-size: 1.24rem;
  line-height: 1.5;
  color: var(--ink-2);
  font-style: italic;
  margin: 0 0 26px;
}
.bb-testimonial footer { margin-top: auto; }
.bb-testimonial cite { display: block; font-style: normal; font-size: 0.79rem; font-weight: 500; letter-spacing: 0.08em; color: var(--ink); }
.bb-testimonial small { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.bb-stars { color: var(--gold); letter-spacing: 3px; font-size: 0.8rem; margin-bottom: 18px; }

/* ==========================================================================
   15. QUOTE
   ========================================================================== */
.bb-quote { max-width: 820px; margin-inline: auto; text-align: center; }
.bb-quote blockquote {
  font-family: var(--serif);
  font-size: clamp(1.55rem, 3vw, 2.35rem);
  line-height: 1.36;
  color: var(--ink);
  font-style: italic;
  margin: 0 0 28px;
  padding: 0;
  border: 0;
  background: none;
  quotes: none;
}
/* Astra draws a left rule on blockquotes; the centred quote must not have one. */
.bb-theme .bb-quote blockquote,
.bb-theme .bb-quote blockquote::before,
.bb-theme .bb-quote blockquote::after {
  border: 0 !important;
  background: none !important;
  content: none;
}
.bb-quote cite { font-style: normal; font-size: 0.685rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--muted); }

/* ==========================================================================
   16. FAQ / STEPS
   ========================================================================== */
.bb-faq { max-width: 880px; margin-inline: auto; border-top: 1px solid var(--line); }
.bb-faq details { border-bottom: 1px solid var(--line); }
.bb-faq summary {
  cursor: pointer;
  list-style: none;
  position: relative;
  padding: 24px 52px 24px 0;
  font-family: var(--serif);
  font-size: 1.22rem;
  color: var(--ink);
}
.bb-faq summary::-webkit-details-marker { display: none; }
.bb-faq summary::after {
  content: "+";
  position: absolute; right: 4px; top: 50%;
  transform: translateY(-50%);
  font-family: var(--sans);
  font-size: 1.35rem;
  line-height: 1;
  color: var(--gold-dark);
  transition: transform 0.3s var(--ease);
}
.bb-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.bb-faq .bb-faq-body { padding: 0 52px 26px 0; max-width: 70ch; }
.bb-faq .bb-faq-body p:last-child { margin-bottom: 0; }

.bb-steps { list-style: none; margin: 0; padding: 0; }
.bb-steps li {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: 26px;
  padding: 32px 0;
  border-top: 1px solid var(--line);
  align-items: baseline;
}
.bb-steps li:last-child { border-bottom: 1px solid var(--line); }
.bb-steps .bb-step-num { font-family: var(--serif); font-size: 1.6rem; color: var(--gold); line-height: 1; }
.bb-steps h3 { margin: 0 0 8px; font-size: 1.18rem; }
.bb-steps p { margin: 0; font-size: 0.96rem; }

/* ==========================================================================
   17. CONTACT
   ========================================================================== */
.bb-contact-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 72px; align-items: start; }

.bb-info-list { list-style: none; margin: 0; padding: 0; }
.bb-info-list li { padding: 24px 0; border-bottom: 1px solid var(--line); }
.bb-info-list li:first-child { padding-top: 0; }
.bb-info-list .bb-info-k {
  display: block;
  font-size: 0.635rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold-dark);
  margin-bottom: 8px;
}
.bb-info-list .bb-info-v { font-family: var(--serif); font-size: 1.18rem; line-height: 1.5; color: var(--ink); }
.bb-theme .bb-page .bb-info-list .bb-info-v a { text-decoration: none; border-bottom: 1px solid var(--line); }
.bb-theme .bb-page .bb-info-list .bb-info-v a:hover { border-color: var(--gold); color: var(--ink); }
.bb-info-list .bb-info-sub { font-size: 0.855rem; color: var(--muted); margin: 7px 0 0; }

.bb-info-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 8px 34px;
}

.bb-map { margin-top: 34px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--cream); }
.bb-map iframe { display: block; width: 100%; height: 320px; border: 0; }

.bb-form-wrap {
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 46px 44px;
}
.bb-form-head h3 { margin: 0 0 8px; }
.bb-form-head p { font-size: 0.95rem; margin-bottom: 30px; }

.bb-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 22px; }
.bb-field { margin: 0; display: flex; flex-direction: column; }
.bb-field--wide, .bb-field--submit { grid-column: 1 / -1; }
.bb-field label {
  font-size: 0.645rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--body);
  margin-bottom: 9px;
}
.bb-req { color: var(--gold-dark); }
.bb-form input[type="text"], .bb-form input[type="email"], .bb-form input[type="tel"],
.bb-form select, .bb-form textarea {
  width: 100%;
  font-family: var(--sans);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px 16px;
  transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.bb-form input:focus, .bb-form select:focus, .bb-form textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(181, 106, 125, 0.15);
}
.bb-form textarea { resize: vertical; min-height: 150px; }
.bb-field--submit { margin-top: 8px; }

.bb-notice {
  border-radius: var(--radius);
  padding: 16px 20px;
  margin-bottom: 28px;
  font-size: 0.92rem;
  border: 1px solid;
}
.bb-notice--ok { background: #f3f7f3; border-color: #cfe0d1; color: var(--ok); }
.bb-notice--err { background: #fbf3f2; border-color: #e8cfcb; color: var(--err); }
.bb-theme .bb-page .bb-notice a { color: inherit; text-decoration: underline; }

/* ==========================================================================
   18. CTA
   ========================================================================== */
.bb-cta { text-align: center; max-width: 680px; margin-inline: auto; }
.bb-cta h2 { margin-bottom: 18px; }
.bb-cta .bb-lede { margin-inline: auto; }
.bb-cta .bb-row { justify-content: center; margin-top: 34px; }
.bb-theme .bb-page .bb-cta .bb-lede a { border-bottom: 1px solid var(--line); text-decoration: none; }
.bb-theme .bb-page .bb-cta .bb-lede a:hover { border-color: var(--gold); color: var(--ink); }

/* ==========================================================================
   19. WOOCOMMERCE
   ========================================================================== */
.bb-theme .bb-hero--shop { padding-bottom: 56px; }

/* Astra renders the WooCommerce archive as a grid that reserves a sidebar
   column, which squeezed the full-bleed hero into one cell. Re-declare it as a
   plain block; the theme's own .bb-wrap controls the measure instead. */
.bb-theme .ast-woocommerce-container,
.bb-theme #primary.bb-primary,
.bb-theme .bb-primary.content-area,
.bb-theme #primary.bb-primary .site-main {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  grid-template-columns: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Toolbar band: full-bleed with a rule, its inner edges aligned to .bb-wrap. */
.bb-archive-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 26px calc(max(0px, (100% - var(--wrap)) / 2) + var(--pad));
  border-bottom: 1px solid var(--line);
}
/* the constrained product body drops onto its own line below the toolbar */
.bb-archive-bar > .bb-woo-wrap {
  flex: 1 1 100%;
  width: 100%;
  margin: 48px 0 0;
  padding: 0;
}
.bb-result-count {
  margin: 0;
  order: -1;
  font-size: 0.685rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}
.bb-archive-bar .woocommerce-result-count { display: none; }

.bb-woo-wrap { padding-bottom: 110px; }

.bb-theme .woocommerce-ordering { margin: 0; }
.bb-theme .woocommerce-ordering select {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  padding: 11px 16px;
}

/* Product grid */
.bb-theme ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 50px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.bb-theme ul.products::before, .bb-theme ul.products::after { display: none; }
.bb-theme ul.products li.product { width: 100% !important; margin: 0 !important; float: none !important; clear: none !important; text-align: left; }

.bb-theme ul.products li.product .bb-card-media {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  margin-bottom: 20px;
  background: var(--blush);
  aspect-ratio: 4 / 5;
}
.bb-theme ul.products li.product .bb-card-media img,
.bb-theme ul.products li.product a img,
.bb-theme ul.products li.product .attachment-woocommerce_thumbnail {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  margin: 0;
  display: block;
  transition: transform 0.9s var(--ease);
}
.bb-theme ul.products li.product:hover .bb-card-media img { transform: scale(1.04); }

.bb-theme ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--serif);
  font-size: 1.16rem;
  font-weight: 600;
  line-height: 1.32;
  color: var(--ink);
  padding: 0 !important;
  margin: 0 0 7px;
}
.bb-theme ul.products li.product .price {
  display: block;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--ink);
  margin: 0;
}
.bb-theme ul.products li.product .price del { color: var(--muted); font-weight: 400; margin-right: 7px; }
.bb-theme ul.products li.product .price ins { text-decoration: none; color: var(--gold-dark); }

.bb-theme ul.products li.product .button,
.bb-theme ul.products li.product .added_to_cart {
  margin-top: 16px;
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.675rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  line-height: 1;
  padding: 12px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: transparent;
  color: var(--ink);
  transition: background-color 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease);
}
.bb-theme ul.products li.product .button:hover { background: var(--plum); border-color: var(--ink); color: #fff; }
.bb-theme ul.products li.product .added_to_cart { margin-left: 10px; }

.bb-theme ul.products li.product .onsale,
.bb-theme .woocommerce span.onsale {
  position: absolute;
  top: 14px; left: 14px; right: auto;
  min-height: 0; min-width: 0;
  line-height: 1;
  background: var(--rose);
  color: #fff;
  font-family: var(--sans);
  font-size: 0.6rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 9px 13px;
  border-radius: var(--radius);
  z-index: 3;
}
.bb-theme ul.products li.product .star-rating { margin: 0 0 9px; font-size: 0.72rem; color: var(--gold); }

/* Single product */
.bb-theme .single-product div.product { padding-top: 24px; }
.bb-theme .single-product .woocommerce-product-gallery { border-radius: var(--radius); overflow: hidden; }
.bb-theme .single-product .woocommerce-product-gallery img { border-radius: var(--radius); }
.bb-theme .single-product .summary .product_title { font-size: clamp(1.95rem, 3.4vw, 2.7rem); margin-bottom: 14px; }
.bb-theme .single-product .summary .price {
  font-family: var(--sans);
  font-size: 1.26rem;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 24px;
}
.bb-theme .single-product .summary .price del { color: var(--muted); font-weight: 400; }
.bb-theme .single-product .summary .price ins { text-decoration: none; color: var(--gold-dark); }
.bb-theme .single-product .woocommerce-product-details__short-description { color: var(--body); }

.bb-theme .single-product .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin-right: 12px;
}
.bb-theme .single-product .quantity input {
  border: 0;
  background: transparent;
  padding: 14px 6px;
  text-align: center;
  font-family: var(--sans);
  width: 70px;
}
.bb-theme .single-product .single_add_to_cart_button,
.bb-theme .single-product button.button.alt {
  background: var(--rose);
  color: #fff;
  border: 1px solid var(--rose);
  border-radius: var(--radius);
  font-family: var(--sans);
  font-size: 0.76rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 16px 36px;
}
.bb-theme .single-product .single_add_to_cart_button:hover { background: var(--berry-dark); border-color: var(--berry-dark); }

.bb-theme .product_meta {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-size: 0.79rem;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.bb-theme .product_meta a { color: var(--ink); }

.bb-assurance {
  list-style: none;
  margin: 28px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--line);
  font-size: 0.875rem;
}
.bb-assurance li { padding: 6px 0; }
.bb-assurance-k { color: var(--ink); font-weight: 500; }

.bb-theme .related.products, .bb-theme .upsells.products {
  margin-top: 90px;
  padding-top: 62px;
  border-top: 1px solid var(--line);
}
.bb-theme .related.products > h2, .bb-theme .upsells.products > h2 { font-size: clamp(1.65rem, 2.6vw, 2.3rem); margin-bottom: 38px; }

.bb-theme .woocommerce-tabs { margin-top: 80px; }
.bb-theme .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 34px; border-bottom: 1px solid var(--line); }
.bb-theme .woocommerce-tabs ul.tabs::before { display: none; }
.bb-theme .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0 28px 0 0; padding: 0; }
.bb-theme .woocommerce-tabs ul.tabs li::before, .bb-theme .woocommerce-tabs ul.tabs li::after { display: none; }
.bb-theme .woocommerce-tabs ul.tabs li a {
  font-family: var(--sans);
  font-size: 0.71rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 15px 0;
  border-bottom: 1px solid transparent;
}
.bb-theme .woocommerce-tabs ul.tabs li.active a { color: var(--ink); border-bottom-color: var(--gold); }

/* Notices */
.bb-theme .woocommerce-message,
.bb-theme .woocommerce-info,
.bb-theme .woocommerce-error {
  background: var(--cream);
  border: 1px solid var(--line);
  border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  color: var(--body);
  font-size: 0.92rem;
  padding: 17px 24px;
}
.bb-theme .woocommerce-message::before,
.bb-theme .woocommerce-info::before,
.bb-theme .woocommerce-error::before { color: var(--gold-dark); }
.bb-theme .woocommerce-message .button,
.bb-theme .woocommerce-info .button {
  background: var(--rose);
  color: #fff;
  border-radius: var(--radius);
  font-size: 0.675rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 11px 18px;
}

/* Cart / checkout tables */
.bb-theme table.shop_table {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  border-collapse: separate;
  border-spacing: 0;
}
.bb-theme table.shop_table th {
  font-family: var(--sans);
  font-size: 0.655rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
  padding: 17px;
  border-bottom: 1px solid var(--line);
}
.bb-theme table.shop_table td { padding: 19px 17px; border-top: 1px solid var(--line-soft); }

.bb-theme .woocommerce a.button,
.bb-theme .woocommerce button.button,
.bb-theme .woocommerce input.button,
.bb-theme .woocommerce #respond input#submit {
  font-family: var(--sans);
  font-size: 0.71rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: var(--rose);
  color: #fff;
  border: 1px solid var(--rose);
  border-radius: var(--radius);
  padding: 14px 28px;
}
.bb-theme .woocommerce a.button:hover,
.bb-theme .woocommerce button.button:hover,
.bb-theme .woocommerce input.button:hover { background: var(--berry-dark); border-color: var(--berry-dark); color: #fff; }
.bb-theme .woocommerce a.button.alt,
.bb-theme .woocommerce button.button.alt { background: var(--rose); border-color: var(--rose); color: #fff; }
.bb-theme .woocommerce a.button.alt:hover,
.bb-theme .woocommerce button.button.alt:hover { background: var(--berry-dark); border-color: var(--berry-dark); }

.bb-theme .woocommerce form .form-row input.input-text,
.bb-theme .woocommerce form .form-row textarea,
.bb-theme .woocommerce form .form-row select,
.bb-theme .select2-container--default .select2-selection--single {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px 16px;
  font-family: var(--sans);
  font-size: 0.95rem;
  color: var(--ink);
  background: var(--white);
  height: auto;
  line-height: 1.6;
}
.bb-theme .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.6; padding: 0; }
.bb-theme .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }

/* Pagination */
.bb-theme .woocommerce nav.woocommerce-pagination { margin-top: 76px; }
.bb-theme .woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 9px; justify-content: center; }
.bb-theme .woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; }
.bb-theme .woocommerce nav.woocommerce-pagination ul li a,
.bb-theme .woocommerce nav.woocommerce-pagination ul li span {
  min-width: 44px; height: 44px; line-height: 44px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  font-size: 0.82rem;
}
.bb-theme .woocommerce nav.woocommerce-pagination ul li a:hover,
.bb-theme .woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--plum); border-color: var(--ink); color: #fff;
}

.bb-theme .woocommerce-breadcrumb {
  font-size: 0.675rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 24px;
}
.bb-theme .woocommerce-breadcrumb a { color: var(--muted); }

/* Constrain transactional pages (Astra runs full-width for our templates) */
.bb-theme.woocommerce-cart .woocommerce,
.bb-theme.woocommerce-checkout .woocommerce,
.bb-theme.woocommerce-account .woocommerce,
.bb-theme .bb-hero--shop,
.bb-theme .bb-woo-wrap {
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: var(--pad);
}
.bb-theme .bb-hero--shop { padding-inline: 0; }
.bb-theme .bb-hero--shop .bb-wrap { padding-inline: var(--pad); }

/* ==========================================================================
   20. FOOTER — one brand block, one link row, one contact block, thin bar
   ========================================================================== */
.bb-footer {
  background: var(--plum);
  color: #b8a6b2;
  padding: 78px 0 0;
}
.bb-theme .bb-footer a { color: #e2d3dc; text-decoration: none; border-bottom: 1px solid transparent; }
.bb-theme .bb-footer a:hover { color: #fff; border-bottom-color: var(--berry-soft); }

.bb-footer-main {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 34px;
  padding-bottom: 44px;
}
.bb-footer-logo {
  font-family: var(--serif);
  font-size: 1.9rem;
  font-weight: 600;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 8px;
  line-height: 1;
}
.bb-footer-line {
  font-size: 0.94rem;
  line-height: 1.7;
  color: #a8929f;
  margin: 0;
  max-width: 40ch;
}

.bb-footer-contact {
  font-style: normal;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  font-size: 0.94rem;
  line-height: 1.5;
}
.bb-footer-contact span { color: #a8929f; font-size: 0.88rem; }
@media (min-width: 861px) {
  .bb-footer-contact { text-align: right; align-items: flex-end; }
}

.bb-footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 34px;
  padding: 26px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
  font-size: 0.735rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.bb-footer-bar {
  padding: 26px 0 30px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: 0.79rem;
  color: #93808d;
}
.bb-footer-bar p { margin: 0; }
.bb-pay { display: flex; gap: 7px; align-items: center; }
.bb-pay span {
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #93808d;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 2px;
  padding: 5px 9px;
}

/* ==========================================================================
   21. MOTION
   ========================================================================== */
.bb-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
.bb-reveal-in { opacity: 1; transform: none; }

/* ==========================================================================
   22. RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
  :root { --sec: 96px; }
  .bb-theme ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bb-split { gap: 54px; }
}

@media (max-width: 1024px) {
  :root { --pad: 26px; --sec: 84px; }
  .bb-hero--home { grid-template-columns: 1fr; min-height: 0; }
  .bb-hero-media { order: -1; aspect-ratio: 16 / 10; }
  .bb-hero-media img { position: relative; }
  .bb-hero-copy-col { justify-content: flex-start; }
  .bb-hero-inner { max-width: 100%; padding: 64px 0 68px; }
  .bb-hero--home h1 { max-width: 22ch; }
  .bb-hero-facts { margin-top: 34px; }
  .bb-cats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bb-contact-grid { grid-template-columns: 1fr; gap: 48px; }
  .bb-strip-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bb-strip-item:nth-child(3) { border-left: 0; }
  .bb-strip-item:nth-child(n + 3) { border-top: 1px solid var(--line-soft); }
  .bb-testimonials { grid-template-columns: 1fr; gap: 20px; }
  .bb-theme .bb-hero--shop, .bb-theme .bb-woo-wrap { padding-inline: var(--pad); }
}

@media (max-width: 860px) {
  .bb-split { grid-template-columns: 1fr; gap: 40px; }
  .bb-split--media-right .bb-split-media { order: 0; }
  .bb-badge { left: 16px; bottom: 16px; }
  .bb-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 0; }
  .bb-stat { padding: 0 24px; }
  .bb-stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .bb-lookbook { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bb-lookbook figure:last-child { grid-column: 1 / -1; }
  .bb-theme ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 18px; }
  .bb-head--split { grid-template-columns: 1fr; gap: 20px; align-items: start; }
  .bb-hero--page { padding: 64px 0 54px; }
}

@media (max-width: 620px) {
  :root { --pad: 20px; --sec: 66px; }
  .bb-theme { font-size: 16px; }
  .bb-announce-inner { flex-direction: column; gap: 4px; }
  .bb-announce-sep { display: none; }
  .bb-hero-inner { padding: 48px 0 54px; }
  .bb-cats-grid, .bb-lookbook { grid-template-columns: 1fr; }
  .bb-lookbook figure:last-child { grid-column: auto; }
  .bb-strip-inner { grid-template-columns: 1fr; }
  .bb-strip-item { border-left: 0; border-top: 1px solid var(--line-soft); }
  .bb-strip-item:first-child { border-top: 0; }
  .bb-stats { grid-template-columns: 1fr 1fr; }
  .bb-form { grid-template-columns: 1fr; }
  .bb-form-wrap { padding: 32px 24px; }
  .bb-steps li { grid-template-columns: 1fr; gap: 10px; }
  .bb-btn { padding: 15px 28px; }
  .bb-theme ul.products { gap: 32px 14px; }
  .bb-theme ul.products li.product .woocommerce-loop-product__title { font-size: 1.02rem; }
  .bb-footer { padding-top: 64px; }
  .bb-footer-bar { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .bb-theme *, .bb-theme *::before, .bb-theme *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
  .bb-reveal { opacity: 1; transform: none; }
}

@media print {
  .bb-announce, .bb-hero--home, .bb-theme .site-header, .bb-footer { display: none !important; }
}
