/*
Theme Name: CLABE Brutal
Theme URI: https://clabebrand.com
Description: Tema premium artesanal para CLABE brand. Hijo de Astra. Diseño editorial, paleta crema/tinta/champagne, tipografía display serif + sans, micro-interacciones cuidadas.
Author: CLABE
Template: astra
Version: 1.0.0
Text Domain: clabe-brutal
*/

/* =========================================================
   TOKENS
   ========================================================= */
:root{
  --c-bg:        #EBDFC5;   /* butter cream — atelier */
  --c-bg-2:      #DFCFAA;   /* deep butter */
  --c-paper:     #F4ECD7;   /* warm editorial off-white */
  --c-paper-2:   #F8F1DE;
  --c-ink:       #14110F;
  --c-ink-soft:  #2A2520;
  --c-mute:      #7A6E5C;
  --c-mute-2:    #A89B83;
  --c-line:      rgba(20,17,15,.12);
  --c-line-soft: rgba(20,17,15,.07);
  --c-gold:      #C9A865;
  --c-gold-deep: #8E7438;
  --c-accent:    #D4B57A;

  --f-display: "Fraunces", "Playfair Display", Georgia, serif;
  --f-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 24px;
  --r-xl: 32px;

  --ease:       cubic-bezier(.22,.61,.36,1);
  --ease-out:   cubic-bezier(.16,1,.3,1);
  --ease-soft:  cubic-bezier(.4,0,.2,1);

  --w: 1360px;
  --pad: clamp(20px, 4vw, 56px);

  /* tipografía con optical sizing */
  font-feature-settings: "ss01", "ss02", "kern", "liga";
  font-optical-sizing: auto;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
html{ scroll-behavior: smooth; }
html, body{ background: var(--c-bg); }
body, .ast-container{
  font-family: var(--f-body) !important;
  font-size: 15px;
  line-height: 1.6;
  color: var(--c-ink) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
  font-feature-settings: "ss01", "kern", "liga", "calt";
}
body.cb-home{ background: var(--c-bg); }

img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
.cb-wrap{ max-width: var(--w); margin: 0 auto; padding: 0 var(--pad); }

::selection{ background: var(--c-ink); color: var(--c-bg); }
::-moz-selection{ background: var(--c-ink); color: var(--c-bg); }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* hide Astra default front-page chrome on our home */
body.cb-home .ast-above-header-wrap,
body.cb-home #content > .ast-container > article,
body.cb-home .entry-header,
body.cb-home .entry-content > .wp-site-blocks,
body.cb-home .ast-archive-description{ display:none; }
body.cb-home #content{ padding:0 !important; margin:0 !important; }
body.cb-home #primary{ padding:0 !important; margin:0 !important; max-width:none !important; }
body.cb-home .site-content > .ast-container{ max-width:none !important; padding:0 !important; }

/* =========================================================
   ANNOUNCEMENT BAR
   ========================================================= */
.cb-bar{
  background: var(--c-ink);
  color: var(--c-bg);
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 10px 0;
  overflow: hidden;
}
.cb-bar__track{
  display:flex; gap: 60px; white-space: nowrap;
  animation: cb-marq 38s linear infinite;
  width: max-content;
}
.cb-bar__track span{ opacity:.85; }
.cb-bar__track em{ color: var(--c-gold); font-style: normal; }
@keyframes cb-marq{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* =========================================================
   NAV (logo top, menu full-width below)
   ========================================================= */
.cb-nav{
  position: sticky; top: 0; z-index: 50;
  background: rgba(235,223,197,.92);
  backdrop-filter: saturate(160%) blur(16px);
  -webkit-backdrop-filter: saturate(160%) blur(16px);
  border-bottom: 1px solid var(--c-line);
  transition: padding .35s var(--ease);
}
.cb-nav__top{
  display:grid; grid-template-columns: 1fr auto 1fr;
  align-items:center;
  padding: 22px 0 14px;
  transition: padding .35s var(--ease);
}
.cb-nav__lang{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--c-mute);
}
.cb-nav__logo{
  text-align:center; display:inline-flex; flex-direction: column; align-items:center;
}
.cb-brand{
  font-family: var(--f-display);
  font-weight: 500;
  font-size: clamp(36px, 4.5vw, 64px);
  letter-spacing: .32em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--c-ink);
  display:block;
  transition: font-size .35s var(--ease);
}
.cb-brand small{
  display:block; font-size:9px; letter-spacing: .56em; color: var(--c-mute);
  margin-top: 8px; font-family: var(--f-body); font-weight:500;
}
.cb-nav__tools{
  display:flex; gap: 14px; justify-content:flex-end; align-items:center;
}
.cb-nav__bar{
  border-top: 1px solid var(--c-line);
  padding: 0;
  transition: padding .35s var(--ease);
}
.cb-nav__menu{
  display:flex; gap: clamp(22px, 3vw, 44px); align-items:center; justify-content:center;
  font-size: 12px; letter-spacing: .26em; text-transform: uppercase;
  list-style:none; margin:0; padding: 14px 0;
}
.cb-nav__menu a{ position:relative; padding: 4px 0; color: var(--c-ink); }
.cb-nav__menu a::after{
  content:""; position:absolute; left:50%; right:50%; bottom:-2px;
  height:1px; background: var(--c-ink);
  transition: left .45s var(--ease-out), right .45s var(--ease-out);
}
.cb-nav__menu a:hover::after{ left:0; right:0; }

/* shrink on scroll */
.cb-nav.is-scrolled .cb-nav__top{ padding: 12px 0 8px; }
.cb-nav.is-scrolled .cb-brand{ font-size: clamp(22px, 2.4vw, 30px); }
.cb-nav.is-scrolled .cb-brand small{ display:none; }
.cb-nav.is-scrolled .cb-nav__menu{ padding: 8px 0; }

@media (max-width: 800px){
  .cb-nav__top{ grid-template-columns: 1fr; gap: 12px; padding: 16px 0; }
  .cb-nav__lang, .cb-nav__tools{ justify-content:center; }
  .cb-brand{ font-size: 30px; }
  .cb-nav__menu{ overflow-x: auto; gap: 22px; padding: 10px var(--pad); justify-content: flex-start; }
}
.cb-nav__icon{
  width: 38px; height:38px; border-radius: 50%;
  display:inline-flex; align-items:center; justify-content:center;
  border: 1px solid var(--c-line);
  transition: all .35s var(--ease);
}
.cb-nav__icon:hover{ background: var(--c-ink); color: var(--c-bg); border-color: var(--c-ink); }
.cb-nav__cart{
  position: relative;
}
.cb-nav__cart span{
  position:absolute; top:-4px; right:-4px;
  background: var(--c-gold); color: var(--c-ink);
  font-size: 10px; font-weight: 700;
  width: 18px; height: 18px; border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
}

/* =========================================================
   HERO — premium editorial
   ========================================================= */
.cb-hero{
  position: relative;
  min-height: clamp(620px, 94vh, 980px);
  overflow: hidden;
  background: var(--c-ink);
  isolation: isolate;
}
.cb-hero::before{
  content:""; position:absolute; inset:0;
  background-image: var(--cb-hero-img);
  background-size: cover;
  background-position: 65% 38%;
  filter: saturate(108%) contrast(106%) brightness(.86);
  transform: scale(1.07);
  transition: transform 1.8s var(--ease-out), filter 1.4s var(--ease-out);
  z-index: 0;
}
.cb-hero.is-in::before{ transform: scale(1.01); filter: saturate(110%) contrast(106%) brightness(.92); }
.cb-hero::after{
  content:""; position:absolute; inset:0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(20,17,15,.55) 0%, rgba(20,17,15,.05) 24%, rgba(20,17,15,0) 56%, rgba(20,17,15,.65) 92%, rgba(20,17,15,.85) 100%),
    linear-gradient(95deg, rgba(20,17,15,.62) 0%, rgba(20,17,15,.18) 38%, rgba(20,17,15,0) 70%);
}

/* edge labels (top + bottom hairline rows) */
.cb-hero__edge{
  position: absolute; left: 0; right: 0; z-index: 3;
  display: flex; align-items: center; gap: 16px;
  padding: 16px var(--pad);
  font-size: 10px; letter-spacing: .42em; text-transform: uppercase;
  color: rgba(245,241,234,.78);
  pointer-events: none;
}
.cb-hero__edge--top{ top: 0; border-bottom: 1px solid rgba(245,241,234,.12); }
.cb-hero__edge--bottom{ bottom: 0; border-top: 1px solid rgba(245,241,234,.12); }
.cb-hero__edge-line{ flex: 1; height: 1px; background: linear-gradient(90deg, rgba(245,241,234,.28), rgba(245,241,234,.04)); }
@media (max-width: 720px){ .cb-hero__edge{ font-size: 9px; gap: 10px; padding: 12px var(--pad); } }

.cb-hero__inner{
  position: relative; z-index: 2;
  width:100%; min-height: clamp(620px, 94vh, 980px);
  padding: 92px var(--pad) 86px;
  color: var(--c-bg);
  display:grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .85fr); align-items: end; gap: 56px;
}
@media (max-width: 960px){
  .cb-hero__inner{ grid-template-columns: 1fr; gap: 32px; padding: 88px var(--pad) 80px; }
}

.cb-hero__copy{ max-width: none; }
.cb-hero__eyebrow{
  display: inline-flex; align-items:center; gap: 10px;
  font-size: 11px; letter-spacing: .42em; text-transform: uppercase;
  color: rgba(245,241,234,.92);
  margin-bottom: 28px;
  opacity: 0; transform: translateY(8px);
  animation: cb-rise .9s var(--ease-out) .2s forwards;
}
.cb-hero__eyebrow i{
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--c-gold);
  box-shadow: 0 0 0 4px rgba(201,166,107,.22);
}
.cb-hero__title{
  font-family: var(--f-display);
  font-weight: 340;
  font-size: clamp(52px, 8.6vw, 132px);
  line-height: .94;
  letter-spacing: -0.02em;
  color: var(--c-bg);
  margin: 0;
  font-variation-settings: "opsz" 144;
  text-shadow: 0 4px 60px rgba(20,17,15,.5);
}
.cb-hero__title i{ font-style: italic; font-weight: 280; color: var(--c-gold); font-variation-settings: "opsz" 144; }
.cb-hero__title .ln{
  display: block;
  white-space: nowrap;
  opacity: 0; transform: translateY(34px);
  animation: cb-rise 1.2s var(--ease-out) forwards;
}
.cb-hero__title .ln:nth-child(1){ animation-delay:.32s; }
.cb-hero__title .ln:nth-child(2){ animation-delay:.50s; }
.cb-hero__title .ln:nth-child(3){ animation-delay:.66s; }
@media (max-width: 720px){
  .cb-hero__title{ font-size: clamp(44px, 12.5vw, 78px); letter-spacing: -.02em; }
  .cb-hero__title .ln{ white-space: normal; }
}

.cb-hero__cta{
  display:inline-flex; align-items:center; gap: 12px;
  margin-top: 36px;
  padding: 17px 28px 17px 30px;
  background: var(--c-bg); color: var(--c-ink) !important;
  font-size: 11.5px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500;
  border-radius: 999px;
  border: 1px solid var(--c-bg);
  transition: all .5s var(--ease-out);
  opacity: 0; transform: translateY(12px);
  animation: cb-rise 1s var(--ease-out) .85s forwards;
}
.cb-hero__cta svg{ transition: transform .45s var(--ease-out); }
.cb-hero__cta:hover{ background: var(--c-gold); border-color: var(--c-gold); transform: translateY(-2px); }
.cb-hero__cta:hover svg{ transform: translateX(4px); }

/* Right card */
.cb-hero__card{
  position: relative;
  padding: 32px 28px 30px;
  background: rgba(20,17,15,.55);
  border: 1px solid rgba(245,241,234,.16);
  border-radius: var(--r-lg);
  -webkit-backdrop-filter: saturate(140%) blur(20px);
  backdrop-filter: saturate(140%) blur(20px);
  color: rgba(245,241,234,.92);
  max-width: 380px;
  margin-left: auto;
  opacity: 0; transform: translateY(18px);
  animation: cb-rise 1s var(--ease-out) 1s forwards;
}
@media (max-width: 960px){ .cb-hero__card{ margin-left: 0; max-width: 100%; } }
.cb-hero__card-num{
  font-family: var(--f-display); font-style: italic; font-size: 13px; letter-spacing: .3em;
  color: var(--c-gold); margin-bottom: 18px;
}
.cb-hero__card-eyebrow{
  font-size: 10px; letter-spacing: .42em; text-transform: uppercase; color: rgba(245,241,234,.6);
  margin-bottom: 10px;
}
.cb-hero__card-title{
  font-family: var(--f-display); font-weight: 400; font-size: 28px; line-height: 1.1;
  margin: 0 0 14px; color: var(--c-bg);
}
.cb-hero__card p{
  font-size: 14px; line-height: 1.65; color: rgba(245,241,234,.84);
  margin: 0 0 20px;
}
.cb-hero__card-meta{
  display:flex; flex-wrap:wrap; gap: 8px;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: rgba(245,241,234,.64);
  padding-top: 18px; border-top: 1px solid rgba(245,241,234,.14);
}

@keyframes cb-rise{ to{ opacity:1; transform: translateY(0);} }
@keyframes cb-rise-skew{ to{ opacity:1; transform: translateY(0) skewY(0);} }

/* =========================================================
   SECTION HEADER — premium scale
   ========================================================= */
.cb-sec{ padding: clamp(88px, 12vw, 168px) 0; position:relative; }
.cb-sec--paper{ background: var(--c-paper); }
.cb-sec--ink{ background: var(--c-ink); color: var(--c-bg); }
.cb-sec--ink :is(h1,h2,h3){ color: var(--c-bg); }

.cb-eyebrow{
  font-size: 11px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--c-mute); margin-bottom: 16px;
  display:inline-flex; align-items:center; gap:10px;
  font-weight: 500;
}
.cb-eyebrow::before{ content:""; width: 28px; height:1px; background: var(--c-gold); }
.cb-sec--ink .cb-eyebrow{ color: var(--c-gold); }

.cb-h1{
  font-family: var(--f-display); font-weight: 340;
  font-size: clamp(40px, 5.8vw, 88px);
  line-height: .98; letter-spacing: -.018em;
  margin: 0;
  font-variation-settings: "opsz" 144;
}
.cb-h1 i{ font-style: italic; font-weight: 300; color: var(--c-gold-deep); font-variation-settings: "opsz" 144; }
.cb-sec--ink .cb-h1 i,
.cb-cat-hero .cb-h1 i,
.cb-hero .cb-h1 i{ color: var(--c-gold) !important; }

/* Any heading that has color: var(--c-bg) (i.e. on dark/image bg) gets the bright gold italic */
[style*="--c-bg"] i,
[style*="color: var(--c-bg)"] i{ color: var(--c-gold) !important; }

.cb-h2{
  font-family: var(--f-display); font-weight: 400;
  font-size: clamp(28px, 3.6vw, 50px);
  line-height: 1.05; letter-spacing: -.01em;
  margin: 0 0 12px;
  font-variation-settings: "opsz" 96;
}

/* =========================================================
   PRODUCTS GRID — editorial style
   ========================================================= */
.cb-prod__head{
  display:grid; grid-template-columns: 1.4fr .6fr;
  align-items:end; gap: 24px;
  margin-bottom: 64px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--c-line);
}
@media (max-width: 720px){ .cb-prod__head{ grid-template-columns: 1fr; } }
.cb-prod__head .right{ text-align:right; font-size: 12px; letter-spacing:.26em; text-transform:uppercase; }
.cb-prod__head .right a{ position:relative; padding-bottom:4px; }
.cb-prod__head .right a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background: var(--c-ink);
  transform: scaleX(.5); transform-origin:left; transition: transform .5s var(--ease-out);
}
.cb-prod__head .right a:hover::after{ transform: scaleX(1); }

.cb-grid{
  display:grid; gap: 72px 36px;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1024px){ .cb-grid{ grid-template-columns: repeat(3,1fr); gap: 56px 24px; } }
@media (max-width: 720px){ .cb-grid{ grid-template-columns: repeat(2,1fr); gap: 36px 16px; } }

.cb-card{
  display:flex; flex-direction:column; position: relative;
  transition: transform .55s var(--ease-out);
}
.cb-card:hover{ transform: translateY(-4px); }
.cb-card__img{
  position: relative; aspect-ratio: 4/5; overflow: hidden;
  /* Card matches section background — image floats, no "box on box" */
  background: var(--cb-card-bg, var(--c-bg-2));
  border-radius: 14px;
  isolation: isolate;
  transition: box-shadow .65s var(--ease), transform .55s var(--ease-out);
}
.cb-card:hover .cb-card__img{ box-shadow: 0 28px 60px -22px rgba(20,17,15,.16); }

/* Section context overrides — card bg follows the section color */
.cb-sec--paper{ --cb-card-bg: #ECE2C6; }
.cb-sec--ink   { --cb-card-bg: #1F1B17; }
/* Default sections (--c-bg) get a deeper butter card bg */
.cb-sec        { --cb-card-bg: #DCCCA5; }
.cb-card__img img{
  width:100%; height:100%; object-fit: cover;
  transition: transform 1.4s var(--ease-out), opacity .65s var(--ease);
}
.cb-card__img img.main{ position: absolute; inset:0; }
.cb-card__img img.alt{ position:absolute; inset:0; opacity:0; }
.cb-card:hover .cb-card__img img.main{ opacity: 0; transform: scale(1.06); }
.cb-card:hover .cb-card__img img.alt{ opacity: 1; transform: scale(1.06); }

/* Editorial category label — bottom-left, tiny, no chip */
.cb-card__img::before{
  content: attr(data-tag);
  position: absolute; left: 16px; bottom: 14px; z-index: 3;
  font-size: 9px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--c-bg);
  font-weight: 500;
  text-shadow: 0 1px 12px rgba(20,17,15,.4);
  opacity: 0;
  transition: opacity .5s var(--ease);
}
.cb-card:hover .cb-card__img::before{ opacity: .9; }
.cb-card__img:not([data-tag])::before, .cb-card__img[data-tag=""]::before{ display:none; }
.cb-card__img::after{ display: none; }

.cb-card__quick-cta{
  position:absolute; left: 50%; bottom: 16px; transform: translate(-50%, 12px); z-index:3;
  background: rgba(20,17,15,.92); color: var(--c-bg);
  text-align:center; white-space:nowrap;
  padding: 11px 22px; border-radius: 999px;
  font-size: 10.5px; letter-spacing:.28em; text-transform: uppercase; font-weight: 500;
  opacity:0;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: opacity .45s var(--ease), transform .55s var(--ease-out);
  pointer-events: none;
}
.cb-card:hover .cb-card__quick-cta{ opacity: 1; transform: translate(-50%, 0); }

.cb-card__body{
  padding: 24px 2px 4px;
  display:flex; flex-direction:column; gap: 10px;
}
.cb-card__head{
  display:flex; justify-content:space-between; align-items:baseline;
  gap: 16px;
}
.cb-card__name{
  font-family: var(--f-display); font-weight: 400;
  font-size: 19px; line-height: 1.18; letter-spacing: -.008em;
  flex: 1;
  font-variation-settings: "opsz" 36;
}
.cb-card__price{
  font-size: 14.5px; font-weight: 500; white-space: nowrap;
  font-feature-settings:"tnum";
  color: var(--c-ink-soft);
}
.cb-card__price::before{
  content: ""; display: inline-block;
  width: 12px; height: 1px; background: var(--c-line);
  margin-right: 10px; vertical-align: middle;
}

/* Swatches row — bigger, hover-glow */
.cb-swatch-row{ display:flex; align-items:center; gap: 9px; min-height: 18px; }
.cb-swatch-row i{
  width: 16px; height: 16px; border-radius: 50%;
  display:inline-block;
  box-shadow: inset 0 0 0 1px rgba(20,17,15,.14), 0 0 0 0 transparent;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.cb-card:hover .cb-swatch-row i{ transform: scale(1.08); }
.cb-card:hover .cb-swatch-row i:first-child{ box-shadow: inset 0 0 0 1px rgba(20,17,15,.14), 0 0 0 3px rgba(20,17,15,.05); }
.cb-swatch-count{
  margin-left: 4px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--c-mute);
}

/* Rich variant of grid (used on home + shop) */
.cb-grid--rich .cb-card__img{ aspect-ratio: 3/4; }

/* WooCommerce loop wrapper inside list items: kill default ul.products */
.woocommerce ul.products li.product .cb-card{ width:100%; }

/* =========================================================
   CATEGORY TILES — bullet-proof contrast
   ========================================================= */
.cb-cats{ display:grid; grid-template-columns: 1fr 1fr; gap: 22px; }
@media (max-width: 720px){ .cb-cats{ grid-template-columns: 1fr; } }
.cb-cat{
  position: relative; aspect-ratio: 4/3;
  border-radius: var(--r-lg);
  overflow:hidden; background: var(--c-ink);
  display:flex; align-items:flex-end;
}
.cb-cat__bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transition: transform 1.4s var(--ease-out);
  filter: brightness(.92);
}
.cb-cat:hover .cb-cat__bg{ transform: scale(1.06); filter: brightness(.96); }
.cb-cat::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,17,15,.18) 0%, rgba(20,17,15,0) 35%, rgba(20,17,15,.78) 100%),
    linear-gradient(45deg, rgba(20,17,15,.35), rgba(20,17,15,0) 60%);
}
.cb-cat__body{
  position: relative; z-index:2; padding: 36px;
  color: var(--c-bg); width: 100%;
  display:flex; justify-content:space-between; align-items:flex-end; gap: 20px;
  text-shadow: 0 2px 30px rgba(20,17,15,.35);
}
.cb-cat__title{
  font-family: var(--f-display); font-weight: 400;
  font-size: clamp(28px, 3.4vw, 46px); line-height: 1.04; margin:0;
  color: var(--c-bg);
}
.cb-cat__title i{ font-style: italic; font-weight: 300; color: var(--c-gold) !important; }
.cb-cat__title small{ display:block; font-size: 11px; letter-spacing:.42em; text-transform:uppercase; color: var(--c-gold); margin-bottom: 10px; font-family: var(--f-body); font-weight: 500; }
.cb-cat__cta{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  border: 1px solid rgba(245,241,234,.55);
  padding: 12px 20px; border-radius: 999px;
  transition: all .35s var(--ease);
  color: var(--c-bg);
  background: rgba(20,17,15,.18);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  white-space: nowrap;
}
.cb-cat:hover .cb-cat__cta{ background: var(--c-bg); color: var(--c-ink); border-color: var(--c-bg); }

/* =========================================================
   DROP / FEATURE ROW
   ========================================================= */
.cb-drop{ display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 6vw, 96px); align-items:center; }
@media (max-width: 900px){ .cb-drop{ grid-template-columns: 1fr; } }
.cb-drop__media{
  position:relative; aspect-ratio: 4/5; overflow:hidden; border-radius: var(--r-lg);
  background: var(--c-bg-2);
}
.cb-drop__media img{ width:100%; height:100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
.cb-drop:hover .cb-drop__media img{ transform: scale(1.04); }
.cb-drop__media::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(80% 60% at 30% 30%, rgba(255,255,255,.15), transparent 60%);
  z-index:2; pointer-events:none;
}
.cb-drop__body p{ font-size: clamp(15px, 1.2vw, 17px); line-height: 1.7; color: var(--c-ink-soft); max-width: 50ch; }
.cb-drop__body .cb-btn{ margin-top: 26px; }

/* =========================================================
   BUTTONS
   ========================================================= */
.cb-btn{
  display:inline-flex; align-items:center; gap: 12px;
  padding: 16px 28px; border-radius: 999px;
  background: var(--c-ink); color: var(--c-bg) !important;
  font-size: 12px; letter-spacing: .26em; text-transform: uppercase;
  transition: all .45s var(--ease);
  border: 1px solid var(--c-ink);
}
.cb-btn:hover{ background: transparent; color: var(--c-ink) !important; }
.cb-btn--ghost{ background: transparent; color: var(--c-ink) !important; }
.cb-btn--ghost:hover{ background: var(--c-ink); color: var(--c-bg) !important; }
.cb-btn--gold{ background: var(--c-gold); border-color: var(--c-gold); color: var(--c-ink) !important; }
.cb-btn--gold:hover{ background: transparent; color: var(--c-bg) !important; border-color: var(--c-gold); }
.cb-sec--ink .cb-btn{ background: var(--c-bg); color: var(--c-ink) !important; border-color: var(--c-bg); }
.cb-sec--ink .cb-btn:hover{ background: transparent; color: var(--c-bg) !important; }
.cb-btn::after{ content:"→"; transition: transform .45s var(--ease); }
.cb-btn:hover::after{ transform: translateX(4px); }

/* =========================================================
   VALUES
   ========================================================= */
.cb-vals{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
@media (max-width: 900px){ .cb-vals{ grid-template-columns: 1fr; } }
.cb-val{
  border: 1px solid rgba(245,241,234,.16);
  border-radius: var(--r-lg);
  padding: 36px 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
  transition: border-color .5s var(--ease), background .5s var(--ease), transform .6s var(--ease-out);
}
.cb-val:hover{ border-color: var(--c-gold); transform: translateY(-3px); }
.cb-val__num{
  font-family: var(--f-display); font-style: italic;
  font-size: 14px; letter-spacing: .3em; color: var(--c-gold);
  margin-bottom: 22px;
}
.cb-val__title{
  font-family: var(--f-display); font-weight: 400;
  font-size: 26px; line-height: 1.1; margin: 0 0 14px;
}
.cb-val__text{ font-size: 14px; line-height: 1.7; color: rgba(245,241,234,.78); }

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.cb-testi{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 900px){ .cb-testi{ grid-template-columns: 1fr; } }
.cb-testi__card{
  background: var(--c-paper); border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: 36px 32px;
  position: relative;
}
.cb-testi__stars{ color: var(--c-gold); letter-spacing: 4px; margin-bottom: 16px; font-size: 14px; }
.cb-testi__text{
  font-family: var(--f-display); font-weight: 350;
  font-size: clamp(17px, 1.35vw, 21px); line-height: 1.45;
  color: var(--c-ink);
}
.cb-testi__author{
  margin-top: 22px; font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-mute);
}

/* =========================================================
   NEWSLETTER
   ========================================================= */
.cb-news{
  background: var(--c-bg-2);
  border-radius: var(--r-lg);
  padding: clamp(48px, 7vw, 96px);
  display:grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items:center;
}
@media (max-width: 900px){ .cb-news{ grid-template-columns: 1fr; } }
.cb-news form{ display:flex; gap: 10px; max-width: 460px; }
.cb-news input{
  flex:1; background: transparent; border: none;
  border-bottom: 1px solid var(--c-ink);
  padding: 14px 4px; font: inherit; color: var(--c-ink);
}
.cb-news input:focus{ outline: none; border-color: var(--c-gold-deep); }
.cb-news button{
  background: var(--c-ink); color: var(--c-bg);
  border: none; padding: 14px 22px; border-radius: 999px;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase; cursor: pointer;
  transition: background .35s var(--ease);
}
.cb-news button:hover{ background: var(--c-gold-deep); }

/* =========================================================
   IG STRIP
   ========================================================= */
.cb-ig{ background: var(--c-paper); padding: 90px 0 110px; text-align:center; }
.cb-ig__title{ font-family: var(--f-display); font-size: clamp(28px, 3.4vw, 46px); margin: 0 0 8px; }
.cb-ig__handle{ font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--c-mute); margin-bottom: 36px; display:inline-block; }
.cb-ig__grid{ display:grid; grid-template-columns: repeat(6, 1fr); gap: 4px; }
@media (max-width: 900px){ .cb-ig__grid{ grid-template-columns: repeat(3, 1fr); } }
.cb-ig__cell{ aspect-ratio: 1; background: var(--c-bg-2); overflow: hidden; }
.cb-ig__cell img{ width:100%; height:100%; object-fit: cover; transition: transform 1s var(--ease-out); }
.cb-ig__cell:hover img{ transform: scale(1.07); }

/* =========================================================
   MARQUEE BIG
   ========================================================= */
.cb-marq{
  background: var(--c-ink); color: var(--c-bg);
  padding: 22px 0; overflow: hidden;
  border-top: 1px solid #ffffff14; border-bottom: 1px solid #ffffff14;
}
.cb-marq__t{
  display:flex; gap: 80px; white-space: nowrap; width: max-content;
  font-family: var(--f-display); font-style: italic; font-size: clamp(36px, 6vw, 84px);
  line-height: 1; animation: cb-marq 28s linear infinite;
}
.cb-marq__t span{ display:inline-flex; align-items:center; gap: 60px; }
.cb-marq__t em{ color: var(--c-gold); font-style: normal; font-size: .6em; transform: translateY(-.15em); }

/* =========================================================
   BIG STATEMENT
   ========================================================= */
.cb-statement{
  font-family: var(--f-display); font-weight: 350;
  font-size: clamp(34px, 5.2vw, 86px); line-height: 1.04;
  letter-spacing: -.012em; max-width: 22ch;
}
.cb-statement i{ font-style: italic; color: var(--c-gold-deep); }

/* =========================================================
   FOOTER
   ========================================================= */
.cb-foot{
  background: var(--c-ink); color: var(--c-bg);
  padding: 90px 0 36px;
}
.cb-foot__grid{
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 48px;
  padding-bottom: 60px; border-bottom: 1px solid #ffffff14;
}
@media (max-width: 900px){ .cb-foot__grid{ grid-template-columns: 1fr 1fr; } }
.cb-foot__brand{
  font-family: var(--f-display); font-size: 30px; letter-spacing: .26em; text-transform: uppercase;
  margin-bottom: 18px;
}
.cb-foot__brand small{ display:block; font-family: var(--f-body); font-size: 9px; letter-spacing: .42em; color: var(--c-gold); margin-top: 4px; }
.cb-foot__col h4{
  font-family: var(--f-body); font-size: 11px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--c-gold); margin: 0 0 22px;
}
.cb-foot__col a{ display:block; font-size: 14px; padding: 6px 0; opacity:.78; transition: opacity .3s var(--ease), transform .3s var(--ease); }
.cb-foot__col a:hover{ opacity:1; transform: translateX(4px); }
.cb-foot__bottom{
  padding-top: 28px; display:flex; justify-content:space-between; gap: 16px;
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: rgba(245,241,234,.55);
  flex-wrap: wrap;
}

/* =========================================================
   REVEAL ON SCROLL
   ========================================================= */
.cb-reveal{ opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.cb-reveal.in{ opacity: 1; transform: translateY(0); }
.cb-reveal.d2{ transition-delay: .12s; }
.cb-reveal.d3{ transition-delay: .24s; }
.cb-reveal.d4{ transition-delay: .36s; }

/* =========================================================
   WOOCOMMERCE OVERRIDES (light)
   ========================================================= */
.woocommerce ul.products li.product .price{ color: var(--c-ink) !important; font-weight: 500 !important; }
.woocommerce-Price-amount{ font-feature-settings: "tnum"; }

/* hide cluttered Astra default header on home only */
body.cb-home #masthead{ display: none !important; }
body.cb-home .ast-header-break-point.ast-mobile-menu-buttons-minimal{ display:none !important; }

/* general improvements site-wide */
.site-header .main-header-menu a{ letter-spacing: .12em !important; text-transform: uppercase !important; font-size: 13px !important; }
.site-title, .site-logo-img img{ font-family: var(--f-display) !important; }

/* =========================================================
   CATEGORY HERO — strong contrast for any image
   ========================================================= */
.cb-cat-hero{
  position:relative; min-height: clamp(440px, 66vh, 660px);
  background: var(--c-ink) center/cover no-repeat;
  overflow:hidden;
  display:flex; align-items:flex-end;
}
.cb-cat-hero::before{
  content:""; position:absolute; inset:0;
  background-image: var(--cb-hero-img);
  background-size: cover; background-position: center 35%;
  filter: saturate(108%) brightness(.86);
  transform: scale(1.05);
  animation: cbZoom 1.6s var(--ease-out) forwards;
}
@keyframes cbZoom{ to{ transform: scale(1); } }
.cb-cat-hero::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,17,15,.32) 0%, rgba(20,17,15,.05) 35%, rgba(20,17,15,.78) 100%),
    linear-gradient(90deg, rgba(20,17,15,.55) 0%, rgba(20,17,15,0) 60%);
}
.cb-cat-hero__inner{ position:relative; z-index:2; padding: 96px var(--pad) 88px; width:100%; }
.cb-cat-hero__copy h1{ margin: 8px 0 0; text-shadow: 0 4px 60px rgba(20,17,15,.4); }
.cb-cat-hero__copy h1 i{ color: var(--c-gold) !important; font-weight: 300; }

.cb-bread{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--c-mute); margin-bottom: 28px;
}
.cb-bread a{ color: var(--c-ink); }
.cb-bread .sep{ color: var(--c-mute); margin: 0 4px; }

.cb-shop__bar{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  border-bottom: 1px solid var(--c-line); padding: 18px 0 22px; margin-bottom: 40px;
}
.cb-shop__count{ font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-mute); }
.cb-shop__sort select{
  background: transparent; border: 1px solid var(--c-line); border-radius: 999px;
  padding: 10px 16px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-ink);
}

.cb-pagi{ margin-top: 64px; text-align:center; }
.cb-pagi .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius: 50%;
  margin: 0 4px; font-size: 13px; color: var(--c-ink);
}
.cb-pagi .page-numbers.current{ background: var(--c-ink); color: var(--c-bg); }
.cb-pagi .page-numbers:hover{ background: var(--c-gold); color: var(--c-ink); }

/* archive grid uses ul.products from Woo — make it match cb-grid */
.woocommerce ul.products{
  display:grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin: 0; padding: 0; list-style:none;
}
@media (max-width: 1024px){ .woocommerce ul.products{ grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px){ .woocommerce ul.products{ grid-template-columns: repeat(2, 1fr); gap: 18px; } }
.woocommerce ul.products li.product{ width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important; }
.woocommerce ul.products li.product .cb-card{ display:block; }

/* swatches mini */
.cb-swatches{ display:inline-flex; gap:5px; align-items:center; }
.cb-swatches i{ width: 10px; height: 10px; border-radius: 50%; display:inline-block; border: 1px solid rgba(0,0,0,.12); }

/* =========================================================
   PDP — editorial sticky layout
   ========================================================= */
.cb-pdp{ padding: 32px 0 60px; }
.cb-pdp__layout{
  display:grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr);
  gap: clamp(28px, 5vw, 88px);
  margin-top: 28px;
  align-items: start;
}
@media (max-width: 960px){ .cb-pdp__layout{ grid-template-columns: 1fr; } }

.cb-pdp__gallery{ display:flex; flex-direction: column; gap: 14px; }
.cb-pdp__shot{
  position:relative; aspect-ratio: 4/5;
  background: linear-gradient(165deg, #F1E9D9 0%, #E1D2B6 100%);
  border-radius: 16px; overflow: hidden;
}
.cb-pdp__shot--detail{ aspect-ratio: 5/4; }
.cb-pdp__shot img{ width:100%; height:100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.cb-pdp__shot:hover img{ transform: scale(1.03); }

.cb-pdp__info{
  position: sticky; top: 200px; align-self: start;
  padding: 4px 0 20px;
}
@media (max-width: 960px){ .cb-pdp__info{ position: static; } }
.cb-pdp__title{
  font-family: var(--f-display); font-weight: 400;
  font-size: clamp(34px, 4vw, 54px); line-height: 1.02; letter-spacing: -.012em;
  margin: 14px 0 14px;
}
.cb-pdp__rating{
  display:flex; align-items:center; gap: 12px;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--c-mute); margin-bottom: 22px;
}
.cb-pdp__stars{ color: var(--c-gold); letter-spacing: 4px; font-size: 13px; }
.cb-pdp__price{
  font-size: clamp(22px, 1.9vw, 28px); font-weight: 500;
  margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--c-line);
  font-feature-settings:"tnum";
}
.cb-pdp__short{ font-size: 15px; line-height: 1.75; color: var(--c-ink-soft); max-width: 52ch; margin-bottom: 28px; }
.cb-pdp__short p{ margin: 0 0 12px; }

.cb-pdp__form{ margin-bottom: 32px; }

/* Quantity + add to cart — premium */
.woocommerce div.product form.cart{
  display:flex; gap: 12px; align-items: stretch; margin: 0 0 20px;
  flex-wrap: wrap;
}
.woocommerce div.product form.cart .quantity{
  display: inline-flex; align-items: center;
  border: 1px solid var(--c-ink);
  border-radius: 999px;
  padding: 4px;
  height: 54px;
}
.woocommerce div.product form.cart .quantity input.qty{
  border: none !important; background: transparent !important;
  width: 40px; text-align: center;
  height: 100%;
  font: inherit; color: inherit;
  font-feature-settings: "tnum";
  font-size: 15px;
  font-weight: 500;
  -moz-appearance: textfield;
  appearance: textfield;
  padding: 0 !important;
}
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button{
  -webkit-appearance: none; margin: 0;
}
.woocommerce div.product form.cart .quantity .cb-qty-btn{
  width: 42px; height: 42px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: none;
  background: transparent;
  cursor: pointer; padding: 0;
  font-size: 18px; line-height: 1;
  color: var(--c-ink);
  font-family: var(--f-body); font-weight: 400;
  transition: background .25s var(--ease), color .25s var(--ease);
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.woocommerce div.product form.cart .quantity .cb-qty-btn:hover,
.woocommerce div.product form.cart .quantity .cb-qty-btn:active{
  background: var(--c-ink); color: var(--c-bg);
}

.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce-page .single_add_to_cart_button{
  flex: 1; min-width: 200px;
  background: var(--c-ink) !important; color: var(--c-bg) !important;
  border: 1px solid var(--c-ink) !important;
  padding: 0 28px !important;
  height: 54px;
  font-size: 11.5px !important; letter-spacing: .28em !important; text-transform: uppercase !important;
  font-weight: 500 !important;
  border-radius: 999px !important;
  transition: all .35s var(--ease);
  display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
}
.woocommerce div.product form.cart button.single_add_to_cart_button::after{
  content: "→"; transition: transform .35s var(--ease);
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover{
  background: var(--c-gold-deep) !important; border-color: var(--c-gold-deep) !important;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover::after{ transform: translateX(4px); }
.woocommerce div.product form.cart button.single_add_to_cart_button.disabled,
.woocommerce div.product form.cart button.single_add_to_cart_button.wc-variation-selection-needed{
  opacity: .55; cursor: not-allowed;
  background: var(--c-mute) !important; border-color: var(--c-mute) !important;
}

/* Variations table */
.woocommerce div.product form.cart .variations{ width:100%; border:none; margin-bottom: 18px; }
.woocommerce div.product form.cart .variations tr{ display:flex; flex-direction:column; gap:8px; margin-bottom: 18px; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{ background: transparent !important; padding: 0 !important; }
.woocommerce div.product form.cart .variations label{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-mute);
}
.woocommerce .reset_variations{ font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--c-mute); }

/* Variation Swatches plugin overrides — clean circular */
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th{
  display: block !important;
  background: transparent !important;
  padding: 0 !important; margin: 0 !important;
  border: none !important;
}
.woocommerce div.product form.cart .variations th.label{
  font-size: 11px !important; letter-spacing: .26em !important; text-transform: uppercase !important;
  color: var(--c-mute) !important; font-weight: 500 !important;
  margin-bottom: 12px !important;
}
.woocommerce div.product form.cart .variations th.label label{ display:inline; padding:0; font-size: inherit; letter-spacing: inherit; color: inherit; }
.woocommerce div.product form.cart .variations td.value{ padding: 0 0 18px !important; }
.variable-items-wrapper{
  display:flex !important; gap: 12px; flex-wrap: wrap; padding: 0 !important; margin: 0 !important;
  background: transparent !important; border: none !important;
}
.variable-items-wrapper .variable-item{
  border: 1px solid rgba(20,17,15,.12) !important;
  border-radius: 50% !important;
  padding: 3px !important;
  width: 38px !important; height: 38px !important; min-width: 0 !important;
  box-shadow: none !important;
  transition: all .3s var(--ease) !important;
  cursor: pointer;
  position: relative;
  background: transparent !important;
}
.variable-items-wrapper .variable-item:hover{ border-color: var(--c-ink) !important; transform: scale(1.06); }
.variable-items-wrapper .variable-item.selected,
.variable-items-wrapper .variable-item.selected-variable-item{
  border-color: var(--c-ink) !important;
  box-shadow: 0 0 0 2px var(--c-bg) inset !important;
}
.variable-items-wrapper .variable-item .variable-item-span{
  display: block !important; width: 100% !important; height: 100% !important;
  border-radius: 50% !important;
}
/* hide the legacy <select> the plugin replaces */
.variations select{ display: none !important; }
.reset_variations{ display: inline-block; margin-top: 8px; }

.cb-pdp__reass{
  list-style:none; padding: 22px 0 0; margin: 22px 0 0;
  border-top: 1px solid var(--c-line);
  display:grid; grid-template-columns: 1fr 1fr; gap: 18px 24px;
}
.cb-pdp__reass li{
  display:flex; gap: 12px; align-items:flex-start;
  font-size: 13px; line-height: 1.5; color: var(--c-ink-soft);
}
.cb-pdp__reass svg{ flex: 0 0 auto; color: var(--c-gold-deep); margin-top: 2px; }
.cb-pdp__reass strong{ display:block; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--c-ink); margin-bottom: 2px; }
.cb-pdp__reass span{ font-size: 12.5px; color: var(--c-mute); }

/* Accordion */
.cb-pdp__acc{
  border-top: 1px solid var(--c-line);
  padding: 18px 0;
}
.cb-pdp__acc:last-of-type{ border-bottom: 1px solid var(--c-line); }
.cb-pdp__acc summary{
  cursor: pointer; list-style: none;
  font-size: 13px; letter-spacing: .22em; text-transform: uppercase;
  display:flex; justify-content:space-between; align-items:center;
  padding: 6px 0;
}
.cb-pdp__acc summary::-webkit-details-marker{ display:none; }
.cb-pdp__acc summary::after{
  content:"+"; font-family: var(--f-body); font-size: 22px; font-weight: 300;
  color: var(--c-mute); transition: transform .35s var(--ease);
  margin-left: 14px;
}
.cb-pdp__acc[open] summary::after{ content:"−"; }
.cb-pdp__acc[open] summary{ color: var(--c-ink); }
.cb-pdp__acc > div{
  font-size: 14px; line-height: 1.7; color: var(--c-ink-soft);
  padding: 12px 0 6px;
}
.cb-pdp__acc dl{ display:grid; grid-template-columns: 1fr 1.4fr; gap: 10px 18px; }
.cb-pdp__acc dt{ font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--c-mute); }
.cb-pdp__acc dd{ margin:0; font-size: 14px; }
.cb-pdp__acc a{ color: var(--c-gold-deep); border-bottom: 1px solid var(--c-gold-deep); }

.cb-quote-bar{
  background: var(--c-paper);
  padding: clamp(50px, 7vw, 90px) 0;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.cb-quote-bar .cb-statement{
  font-size: clamp(28px, 4vw, 56px);
}

/* Process timeline */
.cb-process{
  display:grid; grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-top: 60px;
}
@media (max-width: 900px){ .cb-process{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px){ .cb-process{ grid-template-columns: 1fr; } }
.cb-process__step{
  position: relative; padding-top: 26px;
  border-top: 1px solid var(--c-line);
}
.cb-process__step::before{
  content:""; position:absolute; left:0; top: -1px; width: 36px; height: 1px;
  background: var(--c-gold-deep);
}
.cb-process__num{
  font-family: var(--f-display); font-style: italic; font-size: 13px; letter-spacing: .3em;
  color: var(--c-gold-deep); margin-bottom: 14px;
}
.cb-process__step h3{
  font-family: var(--f-display); font-weight: 400;
  font-size: 26px; line-height: 1.1; margin: 0 0 10px;
}
.cb-process__step p{ font-size: 14px; line-height: 1.7; color: var(--c-mute); margin: 0; }

.cb-pdp__longdesc{ font-size: 16px; line-height: 1.85; color: var(--c-ink-soft); }
.cb-pdp__longdesc p{ margin: 0 0 14px; }
.cb-pdp__longdesc h2, .cb-pdp__longdesc h3{ font-family: var(--f-display); font-weight: 400; line-height: 1.15; margin: 28px 0 12px; }

/* Hide Woo default chrome we don't use */
body.cb-pdp .woocommerce-tabs,
body.cb-pdp .related.products,
body.cb-pdp .upsells.products,
body.cb-pdp .product_meta,
body.cb-pdp .woocommerce-product-gallery,
body.cb-pdp .woocommerce-product-details__short-description{ display: none !important; }
body.cb-pdp div.product .summary{ display: contents; }

/* announcement marquee duplicate spacing */
.cb-bar__track > span{ display:inline-flex; align-items:center; gap: 14px; }

/* nav scrolled */
.cb-nav.is-scrolled{ box-shadow: 0 8px 24px rgba(20,17,15,.06); }

/* style WooCommerce notices nicely */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  background: var(--c-paper) !important; border-top: 2px solid var(--c-gold) !important;
  border-radius: var(--r-md) !important; color: var(--c-ink) !important;
}

/* =========================================================
   GENERIC PAGE TEMPLATE
   ========================================================= */
.cb-page{ background: var(--c-bg); }
.cb-page-hero{
  padding: 80px 0 32px;
  border-bottom: 1px solid var(--c-line);
  background: var(--c-paper);
}
.cb-page-hero .cb-h1{ font-size: clamp(40px, 5.6vw, 84px); }
.cb-page-body{ background: var(--c-bg); }
.cb-page-body__layout{
  display:grid; grid-template-columns: minmax(0, .25fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 80px);
  align-items: start;
}
@media (max-width: 900px){ .cb-page-body__layout{ grid-template-columns: 1fr; } }
.cb-page-body__nav{
  position: sticky; top: 200px;
  font-size: 13px;
}
@media (max-width: 900px){ .cb-page-body__nav{ position: static; padding-bottom: 16px; border-bottom: 1px solid var(--c-line); margin-bottom: 16px; } }
.cb-page-body__nav .cb-eyebrow{ margin-bottom: 18px; }
.cb-page-body__nav ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap: 6px; }
.cb-page-body__nav a{ display:block; padding: 8px 0; color: var(--c-mute); transition: color .3s var(--ease), padding .3s var(--ease); }
.cb-page-body__nav a:hover{ color: var(--c-ink); padding-left: 6px; }

.cb-page-body__content{ font-size: 16px; line-height: 1.85; color: var(--c-ink-soft); max-width: 70ch; }
.cb-page-body__content h2{
  font-family: var(--f-display); font-weight: 400;
  font-size: clamp(24px, 2.6vw, 34px); line-height: 1.2; letter-spacing: -.005em;
  margin: 36px 0 14px; color: var(--c-ink);
}
.cb-page-body__content h3{
  font-family: var(--f-display); font-weight: 400;
  font-size: 22px; margin: 28px 0 10px; color: var(--c-ink);
}
.cb-page-body__content p{ margin: 0 0 14px; }
.cb-page-body__content ul, .cb-page-body__content ol{ margin: 0 0 18px; padding-left: 20px; }
.cb-page-body__content li{ margin-bottom: 6px; }
.cb-page-body__content a{ color: var(--c-gold-deep); border-bottom: 1px solid var(--c-gold-deep); }

/* =========================================================
   PIDE TU CLABE — full-width custom page
   ========================================================= */
.cb-pide{ background: var(--c-bg); }
.cb-pide__hero{
  position: relative; min-height: clamp(440px, 64vh, 620px);
  background: var(--c-ink); overflow: hidden;
  display: flex; align-items: flex-end;
  isolation: isolate;
}
.cb-pide__hero::before{
  content:""; position:absolute; inset:0;
  background-image: var(--cb-hero-img);
  background-size: cover; background-position: center 30%;
  filter: saturate(108%) brightness(.82);
  transform: scale(1.05);
  animation: cbZoom 1.6s var(--ease-out) forwards;
}
.cb-pide__hero::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,17,15,.4) 0%, rgba(20,17,15,0) 30%, rgba(20,17,15,.7) 100%),
    linear-gradient(95deg, rgba(20,17,15,.5), rgba(20,17,15,0) 60%);
}
.cb-pide__hero-inner{
  position:relative; z-index:2;
  padding: 100px var(--pad);
  color: var(--c-bg); width: 100%;
}
.cb-pide__hero h1{
  font-family: var(--f-display); font-weight: 340;
  font-size: clamp(48px, 8vw, 116px); line-height: .95; letter-spacing: -.02em;
  margin: 14px 0 18px; color: var(--c-bg);
  text-shadow: 0 4px 60px rgba(20,17,15,.5);
}
.cb-pide__hero h1 i{ font-style: italic; font-weight: 280; color: var(--c-gold); }
.cb-pide__hero p{ font-size: 16px; line-height: 1.7; color: rgba(245,241,234,.85); max-width: 50ch; margin: 0; }

.cb-pide__intro-grid{ display:grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(36px,6vw,96px); align-items: end; }
@media (max-width: 900px){ .cb-pide__intro-grid{ grid-template-columns: 1fr; gap: 36px; } }
.cb-pide__steps{ display:grid; grid-template-columns: 1fr; gap: 22px; }
.cb-pide__steps article{
  border-top: 1px solid var(--c-line);
  padding: 22px 0 4px;
  display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: baseline;
}
.cb-pide__steps span{
  font-family: var(--f-display); font-style: italic; font-size: 13px; letter-spacing: .3em;
  color: var(--c-gold-deep);
}
.cb-pide__steps h3{
  font-family: var(--f-display); font-weight: 400; font-size: 24px; line-height: 1.15;
  margin: 0 0 8px;
}
.cb-pide__steps p{ margin: 0; color: var(--c-mute); font-size: 14.5px; line-height: 1.7; max-width: 56ch; }
.cb-pide__steps article:hover{ background: linear-gradient(180deg, rgba(201,168,101,.06), transparent); }

/* FORM section — split */
.cb-pide__form{
  position: relative;
  background: var(--c-ink);
  color: var(--c-bg);
  padding: clamp(80px,11vw,160px) 0 clamp(88px,12vw,180px);
  isolation: isolate;
  overflow: hidden;
}
.cb-pide__form .cb-wrap{
  padding-left: clamp(28px, 6vw, 88px);
  padding-right: clamp(28px, 6vw, 88px);
}
.cb-pide__form-bg{
  position: absolute; inset: 0;
  background:
    radial-gradient(60% 40% at 80% 0%, rgba(201,168,101,.18), transparent 70%),
    radial-gradient(50% 40% at 10% 100%, rgba(201,168,101,.10), transparent 70%);
  pointer-events: none;
}
.cb-pide__form-grid{
  position: relative; z-index: 2;
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr);
  gap: clamp(36px, 6vw, 96px);
  align-items: start;
}
@media (max-width: 960px){ .cb-pide__form-grid{ grid-template-columns: 1fr; gap: 48px; } }
.cb-pide__form-side{ position: sticky; top: 200px; }
@media (max-width: 960px){ .cb-pide__form-side{ position: static; } }
.cb-pide__form-side h2{ color: var(--c-bg); margin: 14px 0 22px; }
.cb-pide__form-side h2 i{ color: var(--c-gold) !important; }
.cb-pide__form-side p{ color: rgba(245,241,234,.78); line-height: 1.75; font-size: 15px; max-width: 44ch; }
.cb-pide__form-side strong{ color: var(--c-bg); }

.cb-pide__bullets{ list-style: none; padding: 32px 0 0; margin: 32px 0 0; border-top: 1px solid rgba(245,241,234,.12); display: flex; flex-direction: column; gap: 18px; }
.cb-pide__bullets li{ display:grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; }
.cb-pide__bullets li i{ width: 6px; height: 6px; border-radius: 50%; background: var(--c-gold); }
.cb-pide__bullets strong{ display:block; font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-bg); margin-bottom: 2px; }
.cb-pide__bullets span{ display:block; font-size: 14px; color: rgba(245,241,234,.72); }

/* Fields */
.cb-pide__fields{ display: flex; flex-direction: column; gap: 28px; }
.cb-field{ display: flex; flex-direction: column; gap: 10px; }
.cb-field-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
@media (max-width: 720px){ .cb-field-row{ grid-template-columns: 1fr; } }
.cb-field label{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: rgba(245,241,234,.7); font-weight: 500;
}
.cb-field label small{ font-size: 10px; color: rgba(245,241,234,.4); letter-spacing: .18em; text-transform: none; margin-left: 6px; }
.cb-field input[type="text"], .cb-field input[type="email"], .cb-field input[type="tel"], .cb-field select, .cb-field textarea{
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(245,241,234,.22) !important;
  border-radius: 0 !important;
  color: var(--c-bg) !important;
  padding: 12px 2px !important;
  font: inherit;
  font-size: 16px;
  font-family: var(--f-display);
  font-weight: 400;
  letter-spacing: -.005em;
  outline: none;
  width: 100%;
  transition: border-color .35s var(--ease);
}
.cb-field input::placeholder, .cb-field textarea::placeholder{ color: rgba(245,241,234,.32); font-family: var(--f-display); }
.cb-field input:focus, .cb-field select:focus, .cb-field textarea:focus{ border-bottom-color: var(--c-gold) !important; }
.cb-field select{ appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--c-gold) 50%), linear-gradient(135deg, var(--c-gold) 50%, transparent 50%) !important; background-position: calc(100% - 14px) 22px, calc(100% - 8px) 22px !important; background-size: 6px 6px, 6px 6px !important; background-repeat: no-repeat !important; padding-right: 28px !important; cursor: pointer; }
.cb-field select option{ background: var(--c-ink); color: var(--c-bg); }
.cb-field textarea{ font-family: var(--f-body); font-size: 15px; line-height: 1.6; resize: vertical; min-height: 120px; }

/* Chips & checkbox groups */
.cb-chips{ display: flex; flex-wrap: wrap; gap: 8px; }
.cb-chips input{ position: absolute; opacity: 0; pointer-events: none; }
.cb-chips label{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 16px; border-radius: 999px;
  border: 1px solid rgba(245,241,234,.18);
  font-size: 12.5px; letter-spacing: .04em; text-transform: none;
  color: rgba(245,241,234,.78); cursor: pointer; user-select: none;
  transition: all .25s var(--ease);
  font-weight: 500; font-family: var(--f-body);
}
.cb-chips input:checked + label{ background: var(--c-bg); color: var(--c-ink); border-color: var(--c-bg); }
.cb-chips label:hover{ border-color: var(--c-gold); color: var(--c-bg); }

/* Color palette grid */
.cb-palette{ display: flex; flex-wrap: wrap; gap: 10px; }
.cb-palette input{ position: absolute; opacity: 0; pointer-events: none; }
.cb-palette label{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px 6px 6px; border-radius: 999px;
  border: 1px solid rgba(245,241,234,.18);
  color: rgba(245,241,234,.78); cursor: pointer; user-select: none;
  font-size: 12.5px; font-weight: 500;
  transition: all .25s var(--ease);
}
.cb-palette label span{ width: 22px; height: 22px; border-radius: 50%; background: var(--sw); display: inline-block; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.cb-palette input:checked + label{ background: var(--c-bg); color: var(--c-ink); border-color: var(--c-bg); }
.cb-palette input:checked + label span{ box-shadow: inset 0 0 0 1px rgba(0,0,0,.12), 0 0 0 2px var(--c-bg); }
.cb-palette label:hover{ border-color: var(--c-gold); color: var(--c-bg); }

/* Newsletter inline checkbox */
.cb-field--check{ flex-direction: row; align-items: flex-start; gap: 12px; }
.cb-field--check input{ flex: 0 0 auto; appearance: none; -webkit-appearance: none; width: 18px; height: 18px; border: 1px solid rgba(245,241,234,.4); border-radius: 4px; background: transparent; cursor: pointer; position: relative; margin-top: 2px; }
.cb-field--check input:checked{ background: var(--c-gold); border-color: var(--c-gold); }
.cb-field--check input:checked::after{ content: "✓"; color: var(--c-ink); font-size: 12px; position: absolute; top: -1px; left: 3px; }
.cb-field--check label{ font-size: 13px; letter-spacing: 0; text-transform: none; color: rgba(245,241,234,.78); cursor: pointer; line-height: 1.5; flex: 1; }

.cb-pide__submit{
  margin-top: 8px;
  background: var(--c-bg); color: var(--c-ink);
  border: 1px solid var(--c-bg);
  padding: 0 32px; height: 60px;
  border-radius: 999px;
  font-size: 12px; letter-spacing: .28em; text-transform: uppercase; font-weight: 600;
  display: inline-flex; align-items: center; gap: 12px;
  align-self: flex-start;
  cursor: pointer;
  transition: all .35s var(--ease);
}
.cb-pide__submit:hover{ background: var(--c-gold); border-color: var(--c-gold); transform: translateY(-2px); }
.cb-pide__submit svg{ transition: transform .35s var(--ease); }
.cb-pide__submit:hover svg{ transform: translateX(4px); }

.cb-pide__legal{ font-size: 12.5px; line-height: 1.6; color: rgba(245,241,234,.5); margin: 8px 0 0; }
.cb-pide__legal a{ color: rgba(245,241,234,.85); border-bottom: 1px solid rgba(245,241,234,.3); }

.cb-pide__success{
  text-align: center; padding: 60px 0;
  color: var(--c-bg);
}
.cb-pide__success svg{ color: var(--c-gold); margin: 0 auto 24px; display: block; }
.cb-pide__success h3{ font-family: var(--f-display); font-weight: 400; font-size: 32px; line-height: 1.15; margin: 0 0 14px; color: var(--c-bg); }
.cb-pide__success p{ color: rgba(245,241,234,.78); font-size: 15px; max-width: 40ch; margin: 0 auto; line-height: 1.7; }
.cb-pide__success a{ color: var(--c-gold); border-bottom: 1px solid var(--c-gold); }

.cb-pide__quote{ padding: clamp(80px,9vw,140px) 0; }

/* Generic page wrapper for non-shop pages — disable Astra duplicate header */
body.page #masthead, body.page .ast-archive-description, body.page .entry-header{ display: none !important; }
body.page #content{ padding: 0 !important; margin: 0 !important; background: var(--c-bg) !important; }
body.page #primary{ padding: 0 !important; max-width: none !important; }
body.page .site-content > .ast-container{ max-width: none !important; padding: 0 !important; background: var(--c-bg) !important; }
body.page .ast-container{ max-width: none !important; }
body.page #page{ background: var(--c-bg) !important; }

/* =========================================================
   NAV — burger button (mobile only)
   ========================================================= */
.cb-nav__burger{
  display: none;
  background: transparent; border: 1px solid var(--c-line);
  width: 42px; height: 42px; border-radius: 50%;
  align-items:center; justify-content:center; gap: 4px;
  flex-direction: column; cursor: pointer; padding: 0;
  transition: background .3s var(--ease), border-color .3s var(--ease);
}
.cb-nav__burger span{
  display:block; width: 16px; height: 1.5px; background: var(--c-ink);
  transition: transform .35s var(--ease), opacity .25s var(--ease);
}
.cb-nav__burger:hover{ background: var(--c-ink); border-color: var(--c-ink); }
.cb-nav__burger:hover span{ background: var(--c-bg); }
body.cb-drawer-open .cb-nav__burger span:nth-child(1){ transform: translateY(5.5px) rotate(45deg); }
body.cb-drawer-open .cb-nav__burger span:nth-child(2){ opacity: 0; }
body.cb-drawer-open .cb-nav__burger span:nth-child(3){ transform: translateY(-5.5px) rotate(-45deg); }

/* =========================================================
   MOBILE DRAWER
   ========================================================= */
.cb-drawer{
  position: fixed; top: 0; left: 0;
  width: min(420px, 92vw); height: 100dvh; height: 100vh;
  background: var(--c-bg); color: var(--c-ink);
  z-index: 100; transform: translateX(-100%);
  transition: transform .55s var(--ease-out);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  pointer-events: none;
}
body.cb-drawer-open .cb-drawer{ transform: translateX(0); pointer-events: auto; box-shadow: 24px 0 60px -20px rgba(20,17,15,.3); }
.cb-drawer__inner{
  display:flex; flex-direction: column; min-height: 100%;
  padding: 22px 28px 32px;
}
.cb-drawer__head{
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom: 22px; margin-bottom: 22px;
  border-bottom: 1px solid var(--c-line);
}
.cb-drawer__head .cb-brand{ font-size: 22px !important; letter-spacing: .26em; }
.cb-drawer__head .cb-brand small{ font-size: 8px !important; }
.cb-drawer__close{
  background: transparent; border: 1px solid var(--c-line);
  width: 38px; height: 38px; border-radius: 50%;
  display: inline-flex; align-items:center; justify-content:center;
  color: var(--c-ink); cursor: pointer;
  transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.cb-drawer__close:hover{ background: var(--c-ink); color: var(--c-bg); border-color: var(--c-ink); }
.cb-drawer__menu{ display: flex; flex-direction: column; }
.cb-drawer__menu a{
  display: flex; justify-content: space-between; align-items: center;
  padding: 22px 0;
  font-family: var(--f-display); font-size: 26px; font-weight: 400; line-height: 1;
  letter-spacing: -.005em;
  border-bottom: 1px solid var(--c-line-soft);
  transition: padding .35s var(--ease), color .3s var(--ease);
}
.cb-drawer__menu a i{
  font-style: normal; font-size: 14px; color: var(--c-mute-2);
  transition: transform .35s var(--ease-out), color .3s var(--ease);
  font-family: var(--f-body);
}
.cb-drawer__menu a:hover{ padding-left: 8px; color: var(--c-ink); }
.cb-drawer__menu a:hover i{ transform: translateX(4px); color: var(--c-gold-deep); }
.cb-drawer__sub{
  display:grid; grid-template-columns: 1fr 1fr; gap: 4px 16px;
  padding-top: 28px; margin-top: 28px;
  border-top: 1px solid var(--c-line);
  font-size: 12.5px;
}
.cb-drawer__sub a{ padding: 8px 0; color: var(--c-mute); transition: color .3s var(--ease); }
.cb-drawer__sub a:hover{ color: var(--c-ink); }
.cb-drawer__foot{
  margin-top: auto; padding-top: 28px;
  display:flex; justify-content:space-between; align-items:center;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-mute);
  border-top: 1px solid var(--c-line); padding-top: 22px;
}
.cb-drawer__foot a{ color: var(--c-ink); }

.cb-drawer__scrim{
  position: fixed; inset: 0; background: rgba(20,17,15,.4);
  z-index: 99; opacity: 0; pointer-events: none;
  transition: opacity .4s var(--ease);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
body.cb-drawer-open .cb-drawer__scrim{ opacity: 1; pointer-events: auto; }

/* =========================================================
   STICKY ADD-TO-CART (mobile only)
   ========================================================= */
.cb-stickycta{
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  background: rgba(20,17,15,.92);
  color: var(--c-bg);
  -webkit-backdrop-filter: saturate(180%) blur(16px);
  backdrop-filter: saturate(180%) blur(16px);
  border-top: 1px solid rgba(245,241,234,.08);
  transform: translateY(110%);
  transition: transform .55s var(--ease-out);
  display: none;
  padding-bottom: env(safe-area-inset-bottom);
  box-shadow: 0 -10px 40px -8px rgba(20,17,15,.25);
}
.cb-stickycta.is-on{ transform: translateY(0); }
.cb-stickycta__row{
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 14px; padding: 10px 0;
}
.cb-stickycta__media{
  width: 52px; height: 52px;
  border-radius: 12px; overflow: hidden;
  background: var(--c-bg-2);
  flex: 0 0 auto;
}
.cb-stickycta__media img{ width: 100%; height: 100%; object-fit: cover; }
.cb-stickycta__info{ display:flex; flex-direction:column; min-width: 0; gap: 2px; }
.cb-stickycta__name{
  font-family: var(--f-display);
  font-size: 14.5px;
  line-height: 1.2;
  letter-spacing: -.005em;
  color: var(--c-bg);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cb-stickycta__price{
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(245,241,234,.78);
  font-feature-settings:"tnum";
}
.cb-stickycta__price *{ color: inherit !important; }
.cb-stickycta__btn{
  flex: 0 0 auto;
  background: var(--c-bg); color: var(--c-ink) !important;
  padding: 0 20px; height: 46px;
  border-radius: 999px;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase; font-weight: 600;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.cb-stickycta__btn:hover{ background: var(--c-gold); }
.cb-stickycta__btn svg{ flex: 0 0 auto; }

/* =========================================================
   MOBILE GLOBAL OPTIMIZATIONS
   ========================================================= */
@media (max-width: 800px){
  /* Nav: simplify on mobile */
  .cb-nav__top{
    grid-template-columns: auto 1fr auto !important;
    gap: 12px; padding: 14px 0 !important;
  }
  .cb-nav__burger{ display: inline-flex; }
  .cb-nav__lang{ display: none; }
  .cb-nav__bar{ display: none; }
  .cb-nav__icon--search, .cb-nav__icon--account{ display: none; }
  .cb-nav__tools{ gap: 8px; }
  .cb-nav__icon{ width: 38px; height: 38px; }
  .cb-brand{ font-size: 24px !important; letter-spacing: .26em; }
  .cb-brand small{ font-size: 8px !important; letter-spacing: .42em; margin-top: 4px; }
  .cb-nav.is-scrolled .cb-brand{ font-size: 20px !important; }

  /* Sticky bar visible on mobile only */
  body.cb-pdp .cb-stickycta{ display: block; }
  body.cb-pdp{ padding-bottom: 76px; }

  /* Bar above */
  .cb-bar{ font-size: 10px; padding: 8px 0; }

  /* Edges */
  .cb-hero__inner{ padding: 96px var(--pad) 92px; }

  /* Sec spacing */
  .cb-sec{ padding: clamp(60px, 12vw, 96px) 0; }

  /* Section headers stacked */
  .cb-prod__head{ grid-template-columns: 1fr; gap: 12px; margin-bottom: 36px; padding-bottom: 22px; }
  .cb-prod__head .right{ text-align: left; }

  /* Cards: 2 col */
  .cb-grid{ grid-template-columns: repeat(2, 1fr) !important; gap: 28px 14px !important; }
  .cb-card__name{ font-size: 16px; }
  .cb-card__price{ font-size: 13.5px; }
  .cb-swatch-row i{ width: 13px; height: 13px; }
  .cb-swatch-count{ font-size: 10px; letter-spacing: .2em; }
  .cb-card__quick-cta{ display: none; }

  /* Hero card on mobile becomes inline summary */
  .cb-hero__card{ padding: 22px 20px; }
  .cb-hero__card-title{ font-size: 22px; }

  /* Section ink padding */
  .cb-sec--ink{ padding-left: 0; padding-right: 0; }

  /* Cat tiles single column */
  .cb-cats{ grid-template-columns: 1fr !important; gap: 14px; }
  .cb-cat__body{ padding: 24px; }
  .cb-cat__title{ font-size: 30px !important; }

  /* Drop section stack */
  .cb-drop{ grid-template-columns: 1fr !important; gap: 28px; }

  /* Values */
  .cb-vals{ grid-template-columns: 1fr !important; gap: 14px; }
  .cb-val{ padding: 28px 22px; }

  /* Testimonials */
  .cb-testi{ grid-template-columns: 1fr !important; gap: 14px; }

  /* Newsletter */
  .cb-news{ grid-template-columns: 1fr !important; padding: 32px 24px; gap: 22px; }
  .cb-news form{ flex-direction: column; gap: 14px; }
  .cb-news button{ width: 100%; padding: 16px 22px; }

  /* PDP layout single column */
  .cb-pdp__layout{ grid-template-columns: 1fr !important; gap: 24px; }
  .cb-pdp__info{ position: static; padding: 8px 0; }
  .cb-pdp__title{ font-size: clamp(30px, 8vw, 42px); }
  .cb-pdp__reass{ grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 18px; margin-top: 18px; }
  .cb-pdp__shot{ aspect-ratio: 4/5; border-radius: 12px; }
  .cb-pdp__details{ padding: 56px 0 20px; margin-top: 56px; }

  /* Cart form in single column on mobile — qty top, btn full width */
  .woocommerce div.product form.cart{
    flex-direction: column !important;
    gap: 10px;
  }
  .woocommerce div.product form.cart .quantity{
    align-self: flex-start;
    height: 50px;
  }
  .woocommerce div.product form.cart button.single_add_to_cart_button,
  .woocommerce-page .single_add_to_cart_button{
    width: 100% !important;
    flex: 0 0 auto !important;
    height: 56px !important;
    font-size: 12px !important;
  }
  .variations_form .variations{ width: 100%; }

  /* Process timeline 2 col */
  .cb-process{ grid-template-columns: 1fr 1fr !important; gap: 22px; }
  .cb-process__step h3{ font-size: 22px; }

  /* Page body */
  .cb-page-body__layout{ grid-template-columns: 1fr !important; gap: 22px; }
  .cb-page-body__nav{ position: static; padding-bottom: 18px; border-bottom: 1px solid var(--c-line); }
  .cb-page-body__nav ul{ flex-direction: row; gap: 0 16px; flex-wrap: wrap; }
  .cb-page-body__nav a{ padding: 6px 0; }

  /* Footer columns */
  .cb-foot{ padding: 64px 0 24px; }
  .cb-foot__grid{ grid-template-columns: 1fr 1fr !important; gap: 32px; padding-bottom: 36px; }

  /* Marquees smaller */
  .cb-marq__t{ font-size: clamp(36px, 11vw, 64px); }

  /* Statement */
  .cb-statement{ font-size: clamp(28px, 7vw, 44px) !important; }

  /* IG grid 3 cols */
  .cb-ig__grid{ grid-template-columns: repeat(3, 1fr) !important; gap: 4px; }
  .cb-ig{ padding: 60px 0 70px; }
}

/* Very small screens */
@media (max-width: 420px){
  .cb-grid{ grid-template-columns: 1fr !important; gap: 22px !important; }
  .cb-cat-hero{ min-height: 380px !important; }
  .cb-hero__title{ font-size: clamp(44px, 13vw, 68px) !important; }
}

/* Larger touch targets */
@media (hover: none) and (pointer: coarse){
  .cb-nav__icon{ width: 42px; height: 42px; }
  .cb-card__quick-cta{ display: none; }
  .cb-card__img::after{ display: none; }
}

/* =========================================================
   CART + CHECKOUT — premium conversion
   ========================================================= */
.cb-shoppage{ background: var(--c-bg); padding: 0; min-height: 60vh; }
body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account{
  background: var(--c-bg);
}
body.woocommerce-cart #content, body.woocommerce-checkout #content, body.woocommerce-account #content{
  padding: 0 !important; margin: 0 !important; background: var(--c-bg) !important;
}
body.woocommerce-cart #masthead, body.woocommerce-checkout #masthead, body.woocommerce-account #masthead{ display: none !important; }
body.woocommerce-cart .ast-container, body.woocommerce-checkout .ast-container, body.woocommerce-account .ast-container{ max-width: none !important; padding: 0 !important; background: var(--c-bg) !important; }

.cb-cart, .cb-checkout{ padding: clamp(48px, 7vw, 96px) 0 clamp(80px, 10vw, 140px); }

.cb-cart__head, .cb-checkout__head{
  padding-bottom: 48px; margin-bottom: 48px;
  border-bottom: 1px solid var(--c-line);
}
.cb-cart__head .cb-h1, .cb-checkout__head .cb-h1{ margin-top: 14px; }

.cb-cart__layout, .cb-checkout__layout{
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
@media (max-width: 960px){ .cb-cart__layout, .cb-checkout__layout{ grid-template-columns: 1fr; gap: 32px; } }

/* CART items */
.cb-cart__items-head{
  display:flex; justify-content:space-between; align-items:baseline;
  font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-mute);
  padding-bottom: 14px; margin-bottom: 6px;
  border-bottom: 1px solid var(--c-line-soft);
}
.cb-cart__continue{ color: var(--c-ink); }
.cb-cart__continue:hover{ color: var(--c-gold-deep); }

.cb-cart__item{
  display: grid; grid-template-columns: 120px 1fr;
  gap: 22px; padding: 26px 0;
  border-bottom: 1px solid var(--c-line-soft);
  align-items: stretch;
}
.cb-cart__item-media{ display:block; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: var(--c-bg-2); }
.cb-cart__item-media img{ width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-out); }
.cb-cart__item-media:hover img{ transform: scale(1.04); }
.cb-cart__item-info{ display:flex; flex-direction: column; justify-content: space-between; gap: 12px; }
.cb-cart__item-name{
  font-family: var(--f-display); font-weight: 400; font-size: 22px; line-height: 1.15;
  color: var(--c-ink); display: block;
}
.cb-cart__item-meta{ font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-mute); margin-top: 6px; }
.cb-cart__item-meta dt{ display:inline-block; }
.cb-cart__item-meta dd{ display:inline-block; margin: 0 0 0 4px; color: var(--c-ink); }

.cb-cart__item-bottom{
  display:flex; justify-content: space-between; align-items: center; gap: 16px;
}
.cb-cart__item-bottom .quantity{
  display: inline-flex; align-items: center;
  border: 1px solid var(--c-ink); border-radius: 999px; padding: 4px;
  height: 44px;
}
.cb-cart__item-bottom .quantity input.qty{
  border: none; background: transparent; width: 40px; text-align: center;
  font: inherit; color: inherit; font-feature-settings: "tnum"; font-weight: 500;
  -moz-appearance: textfield; appearance: textfield;
  height: 100%;
}
.cb-cart__item-bottom .quantity input.qty::-webkit-outer-spin-button,
.cb-cart__item-bottom .quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
.cb-cart__item-bottom .quantity .cb-qty-btn{
  width: 34px; height: 34px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: none; background: transparent; cursor: pointer;
  font-size: 16px; line-height: 1; color: var(--c-ink); padding: 0;
  transition: background .25s var(--ease), color .25s var(--ease);
  user-select: none;
}
.cb-cart__item-bottom .quantity .cb-qty-btn:hover,
.cb-cart__item-bottom .quantity .cb-qty-btn:active{ background: var(--c-ink); color: var(--c-bg); }
.cb-cart__item-price{ font-size: 17px; font-weight: 500; font-feature-settings: "tnum"; }
.cb-cart__item-price *{ color: inherit !important; }
.cb-cart__remove{
  width: 34px; height: 34px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--c-line); color: var(--c-mute);
  transition: all .3s var(--ease); flex: 0 0 auto;
}
.cb-cart__remove:hover{ border-color: var(--c-ink); background: var(--c-ink); color: var(--c-bg); }

.cb-cart__update{ padding-top: 22px; display:flex; align-items:center; gap: 12px; }
.cb-cart__update-btn{
  background: transparent; border: 1px solid var(--c-line); color: var(--c-mute);
  padding: 10px 18px; border-radius: 999px;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase; cursor: pointer;
  transition: all .3s var(--ease);
}
.cb-cart__update-btn:hover{ border-color: var(--c-ink); color: var(--c-ink); }

/* CART summary */
.cb-cart__summary{ position: sticky; top: 200px; }
@media (max-width: 960px){ .cb-cart__summary{ position: static; } }
.cb-cart__summary-card{
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: 32px 28px;
}
.cb-cart__summary h3, .cb-checkout__summary h3{
  font-family: var(--f-display); font-weight: 400; font-size: 22px; margin: 0 0 22px;
  padding-bottom: 18px; border-bottom: 1px solid var(--c-line-soft);
}
.cb-cart__totals{ display: grid; grid-template-columns: 1fr auto; gap: 12px 14px; margin: 0 0 24px; padding: 0; }
.cb-cart__totals dt{ font-size: 13.5px; color: var(--c-mute); }
.cb-cart__totals dt small{ font-weight: 500; color: var(--c-ink); margin-left: 4px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.cb-cart__totals dd{ margin: 0; font-size: 14px; font-weight: 500; text-align: right; font-feature-settings: "tnum"; }
.cb-cart__totals dd *{ color: inherit !important; }
.cb-cart__totals .is-total{
  padding-top: 14px; margin-top: 6px; border-top: 1px solid var(--c-line-soft);
}
.cb-cart__totals dt.is-total{ font-family: var(--f-display); font-size: 18px; color: var(--c-ink); font-weight: 400; }
.cb-cart__totals dd.is-total{ font-family: var(--f-display); font-size: 22px; }

.cb-cart__checkout, .cb-checkout__place-order .button{
  display:flex !important; align-items:center; justify-content: center; gap: 12px;
  background: var(--c-ink) !important; color: var(--c-bg) !important;
  padding: 0 28px !important; height: 60px;
  border-radius: 999px !important; border: 1px solid var(--c-ink) !important;
  font-size: 12px !important; letter-spacing: .28em !important; text-transform: uppercase !important; font-weight: 600 !important;
  transition: all .35s var(--ease);
  width: 100%;
}
.cb-cart__checkout:hover, .cb-checkout__place-order .button:hover{ background: var(--c-gold-deep) !important; border-color: var(--c-gold-deep) !important; }
.cb-cart__checkout svg{ transition: transform .35s var(--ease); }
.cb-cart__checkout:hover svg{ transform: translateX(4px); }

.cb-cart__promo{ margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--c-line-soft); }
.cb-cart__promo label{ font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-mute); display: block; margin-bottom: 10px; }
.cb-cart__promo-row{ display: flex; gap: 8px; }
.cb-cart__promo-row input{
  flex: 1; background: transparent; border: 1px solid var(--c-line); border-radius: 999px;
  padding: 10px 16px; font: inherit; color: inherit; font-size: 13px;
  outline: none; transition: border-color .3s var(--ease);
}
.cb-cart__promo-row input:focus{ border-color: var(--c-ink); }
.cb-cart__promo-row button{
  background: transparent; border: 1px solid var(--c-ink); color: var(--c-ink);
  padding: 0 18px; border-radius: 999px; cursor: pointer;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.cb-cart__promo-row button:hover{ background: var(--c-ink); color: var(--c-bg); }

.cb-cart__trust, .cb-checkout__trust{
  list-style: none; padding: 22px 0 0; margin: 22px 0 0;
  border-top: 1px solid var(--c-line-soft);
  display: flex; flex-direction: column; gap: 12px;
}
.cb-cart__trust li, .cb-checkout__trust li{
  display: flex; align-items: center; gap: 12px;
  font-size: 12.5px; color: var(--c-ink-soft);
}
.cb-cart__trust svg, .cb-checkout__trust svg{ color: var(--c-gold-deep); flex: 0 0 auto; }

/* CHECKOUT */
.cb-checkout__steps-mini{ font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-ink); margin: 18px 0 0; display: flex; gap: 10px; align-items: center; }
.cb-checkout__steps-mini a{ color: var(--c-mute); border-bottom: 1px solid transparent; }
.cb-checkout__steps-mini a:hover{ color: var(--c-ink); border-color: var(--c-ink); }
.cb-checkout__steps-mini span{ color: var(--c-mute); }

.cb-checkout__main{ display: flex; flex-direction: column; gap: 28px; }
.cb-checkout__block, .cb-checkout #customer_details{ display: contents; }

/* Force section blocks */
.woocommerce-checkout #customer_details > .col-1,
.woocommerce-checkout #customer_details > .col-2,
.woocommerce-checkout .col-1, .woocommerce-checkout .col-2{
  width: 100% !important; max-width: none !important; float: none !important; margin: 0 !important;
  padding: 0 !important;
}
.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields{
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: 32px 28px;
  margin: 0 0 24px !important;
}
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3{
  font-family: var(--f-display); font-weight: 400; font-size: 22px;
  margin: 0 0 22px; padding-bottom: 18px; border-bottom: 1px solid var(--c-line-soft);
}

/* Checkout fields */
.woocommerce form .form-row{
  margin: 0 0 18px !important; padding: 0 !important;
}
.woocommerce form .form-row label{
  font-size: 11px !important; letter-spacing: .22em !important; text-transform: uppercase !important;
  color: var(--c-mute) !important; font-weight: 500 !important; margin-bottom: 8px !important;
  display: block;
}
.woocommerce form .form-row .required{ color: var(--c-gold-deep); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single{
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--c-line) !important;
  border-radius: 0 !important;
  padding: 12px 0 !important;
  font: inherit !important;
  font-size: 16px !important;
  font-family: var(--f-body) !important;
  color: var(--c-ink) !important;
  height: auto !important;
  outline: none;
  transition: border-color .3s var(--ease);
  width: 100% !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{ border-bottom-color: var(--c-ink) !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered{ padding: 12px 0 !important; line-height: 1.4 !important; color: var(--c-ink) !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow{ top: 12px !important; right: 4px !important; }
.select2-dropdown{ border: 1px solid var(--c-line) !important; border-radius: var(--r-md) !important; background: var(--c-paper) !important; }
.select2-results__option--highlighted{ background: var(--c-ink) !important; color: var(--c-bg) !important; }

/* 2-col rows in checkout */
.woocommerce form .form-row-first, .woocommerce form .form-row-last{ width: 49% !important; }
@media (max-width: 720px){ .woocommerce form .form-row-first, .woocommerce form .form-row-last{ width: 100% !important; } }

/* Checkout summary side */
.cb-checkout__side{ position: sticky; top: 200px; }
@media (max-width: 960px){ .cb-checkout__side{ position: static; } }
.cb-checkout__summary{
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: 32px 28px;
}
.woocommerce-checkout-review-order-table{
  width: 100%; border: none; margin: 0 0 18px;
}
.woocommerce-checkout-review-order-table thead{ display: none; }
.woocommerce-checkout-review-order-table tr{ border: none; }
.woocommerce-checkout-review-order-table td, .woocommerce-checkout-review-order-table th{
  background: transparent !important; border: none !important;
  padding: 8px 0 !important; font-size: 13.5px !important;
}
.woocommerce-checkout-review-order-table .product-name{ color: var(--c-ink); font-weight: 500; }
.woocommerce-checkout-review-order-table .product-quantity{ color: var(--c-mute); font-weight: 400; }
.woocommerce-checkout-review-order-table .product-total{ text-align: right !important; font-feature-settings: "tnum"; }
.woocommerce-checkout-review-order-table tfoot tr{ border-top: 1px solid var(--c-line-soft); }
.woocommerce-checkout-review-order-table tfoot tr:last-child{ border-top: 1px solid var(--c-ink); }
.woocommerce-checkout-review-order-table tfoot th{ font-family: var(--f-body); font-size: 12px !important; letter-spacing: .22em; text-transform: uppercase; color: var(--c-mute) !important; font-weight: 500 !important; }
.woocommerce-checkout-review-order-table tfoot tr.order-total th, .woocommerce-checkout-review-order-table tfoot tr.order-total td{
  font-family: var(--f-display) !important; font-size: 20px !important; color: var(--c-ink) !important; padding-top: 14px !important;
  letter-spacing: -.005em !important; text-transform: none !important;
}

/* Payment methods */
.woocommerce-checkout #payment{
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 22px 0 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods{
  border: none !important; padding: 0 !important; margin: 0 0 18px !important;
}
.woocommerce-checkout #payment ul.payment_methods li{
  list-style: none !important; padding: 14px 0 !important;
  border-top: 1px solid var(--c-line-soft) !important;
}
.woocommerce-checkout #payment ul.payment_methods li:first-child{ border-top: none !important; }
.woocommerce-checkout #payment ul.payment_methods li label{
  font-weight: 500 !important; font-size: 14px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--c-ink) !important;
  display: inline !important; margin: 0 0 0 6px !important;
}
.woocommerce-checkout #payment ul.payment_methods li img{ vertical-align: middle; margin-left: 8px; max-height: 22px; }
.woocommerce-checkout #payment .payment_box{
  background: var(--c-bg-2) !important; border-radius: var(--r-md) !important;
  margin-top: 12px !important; padding: 16px !important;
  font-size: 13px !important; color: var(--c-ink-soft) !important;
}
.woocommerce-checkout #payment .payment_box::before{ display: none !important; }

.cb-checkout__place-order, .woocommerce-checkout .place-order{ margin-top: 18px !important; padding: 0 !important; background: transparent !important; border: none !important; }
.woocommerce-checkout #place_order{
  display: flex !important; align-items: center; justify-content: center; gap: 12px;
  width: 100%;
  background: var(--c-ink) !important; color: var(--c-bg) !important;
  border: 1px solid var(--c-ink) !important;
  height: 60px;
  border-radius: 999px !important;
  font-size: 12px !important; letter-spacing: .28em !important; text-transform: uppercase !important; font-weight: 600 !important;
  transition: background .35s var(--ease), border-color .35s var(--ease);
  cursor: pointer;
}
.woocommerce-checkout #place_order:hover{ background: var(--c-gold-deep) !important; border-color: var(--c-gold-deep) !important; }

.woocommerce-terms-and-conditions-wrapper{ font-size: 12.5px; color: var(--c-mute); padding: 14px 0; }
.woocommerce-privacy-policy-text p{ font-size: 12.5px; color: var(--c-mute); margin: 14px 0 0; }

/* Cart and Checkout mobile */
@media (max-width: 720px){
  .cb-cart__item{ grid-template-columns: 90px 1fr; gap: 16px; padding: 20px 0; }
  .cb-cart__item-name{ font-size: 18px; }
  .cb-cart__item-bottom{ flex-wrap: wrap; }
  .cb-cart__summary-card{ padding: 24px 22px; }
  .woocommerce-billing-fields, .woocommerce-shipping-fields, .cb-checkout__summary{ padding: 24px 22px; }
}

/* unify backgrounds for site shell on shop pages — kill astra default */
body.cb-shop, body.cb-pdp, body.cb-shop #page, body.cb-pdp #page,
body.cb-shop #content, body.cb-pdp #content,
body.cb-shop .site-content, body.cb-pdp .site-content,
body.cb-shop .ast-container, body.cb-pdp .ast-container{
  background: var(--c-bg) !important;
}
body.cb-shop #content, body.cb-pdp #content{ padding: 0 !important; margin: 0 !important; }
body.cb-shop .site-content > .ast-container,
body.cb-pdp .site-content > .ast-container{ max-width: none !important; padding: 0 !important; }
body.cb-shop #primary, body.cb-pdp #primary{ padding: 0 !important; max-width: none !important; }
body.cb-shop #masthead, body.cb-pdp #masthead{ display: none !important; }
body.cb-shop .ast-archive-description, body.cb-pdp .ast-archive-description{ display:none; }
body.cb-shop .entry-header, body.cb-pdp .entry-header{ display:none; }
body.cb-shop .entry-content > h1, body.cb-pdp .entry-content > h1{ display:none; }

/* PDP: form variations form layout */
.woocommerce div.product .variations_form{ display: block !important; }
.woocommerce div.product .variations_form .single_variation_wrap{ margin-top: 14px; }
.woocommerce div.product .variations_form .woocommerce-variation-price{ font-size: 18px; font-weight:500; margin-bottom: 12px; display:block; }
.woocommerce div.product .variations_form .woocommerce-variation-availability{ font-size: 12px; letter-spacing:.18em; text-transform:uppercase; color: var(--c-mute); margin-bottom: 14px; }

/* attribute label tweaks */
.woocommerce div.product form.cart .variations th.label{ width: 100%; padding-bottom: 6px !important; }
.woocommerce div.product form.cart .variations td.value{ width: 100%; }

