/* =============================================================
   BRISSE STUDIO  v1.1.5  —  css/main.css
   Replica fiel de asanagroove.com
   ─────────────────────────────────────────────────────────────
   Paleta exacta extraída del DOM:
     Negro bg secciones:  #070707  (video/hero)
     Negro oscuro:         #282625  (texto, headers, secciones oscuras)
     Crema/dorado títulos: #ECD3A7  (rgb 236 211 167)
     Lavanda claro:        #ECE6F0  (rgb 236 230 240, bg clases)
     Blanco:               #FFFFFF
     Muted:                #6b6560
   Tipografía: "Helvetica Neue", Helvetica, Arial, sans-serif  700/400
   Botones: pill (border-radius 50px), outline style
================================================================ */

:root {
  --black:        #282625;
  --black-deep:   #070707;
  --cream:        #ECD3A7;
  --lavender:     #ECE6F0;
  --white:        #FFFFFF;
  --muted:        #6b6560;
  --font:         "Helvetica Neue", Helvetica, Arial, sans-serif;
  --gutter:       clamp(16px, 4.5vw, 68px);
  --btn-r:        50px;
  --ease:         0.26s ease;
}

/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { font-family: var(--font); color: var(--black); background: var(--white); overflow-x: hidden; line-height: 1.65; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; font-size: inherit; color: inherit; }
p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

/* ── Typography (exacta asanagroove.com) ───────────────────── */
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font);
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: -0.06em;
}
h1 { font-size: clamp(2.8rem, 8vw, 8.5rem); }
h2 { font-size: clamp(1.8rem, 4.5vw, 4.5rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 2.2rem); }
h4 { font-size: clamp(1rem, 1.8vw, 1.6rem); }
p  { font-size: 1rem; line-height: 1.72; }

/* ── Layout helpers ─────────────────────────────────────────── */
.bw { max-width: 1380px; margin: 0 auto; padding: 0 var(--gutter); }
.bw-narrow { max-width: 780px; margin: 0 auto; padding: 0 var(--gutter); }

/* ================================================================
   BOTONES — pill / outline estilo asanagroove.com
================================================================ */
.bbtn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .7em 2em; border-radius: var(--btn-r);
  font-family: var(--font); font-size: .87rem; font-weight: 400;
  letter-spacing: .01em; white-space: nowrap; cursor: pointer;
  transition: all var(--ease); border: 1.5px solid transparent;
}
/* Outline crema (sobre fondos oscuros) */
.bbtn-ol-c {
  background: transparent; color: var(--cream);
  border-color: rgba(236,211,167,.42);
}
.bbtn-ol-c:hover { background: rgba(236,211,167,.12); }
/* Outline negro (sobre fondos claros) */
.bbtn-ol-k {
  background: transparent; color: var(--black);
  border-color: var(--black);
}
.bbtn-ol-k:hover { background: var(--black); color: var(--white); }
/* Filled dark */
.bbtn-dark { background: var(--black); color: var(--white); border-color: var(--black); }
.bbtn-dark:hover { background: transparent; color: var(--black); }
/* Large */
.bbtn-lg { padding: .85em 2.6em; font-size: .92rem; }

/* ================================================================
   HEADER — fixo, transparente en home, sólido al scroll
================================================================ */
#bh {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  height: 88px; display: flex; align-items: center;
  justify-content: space-between; padding: 0 var(--gutter);
  transition: background var(--ease), box-shadow var(--ease);
}
#bh.bh-trans { background: transparent; }
#bh.bh-solid { background: var(--black-deep); box-shadow: 0 1px 0 rgba(255,255,255,.06); }
#bh.bh-light { background: var(--white); box-shadow: 0 1px 0 rgba(0,0,0,.06); }

/* Logo */
.blogo { flex-shrink: 0; text-decoration: none; display: flex; align-items: center; }
.blogo img { height: 52px; width: auto; max-width: 160px; object-fit: contain; }
.blogo-text { font-size: 1.25rem; font-weight: 700; color: var(--cream); letter-spacing: -0.05em; }
#bh.bh-light .blogo-text { color: var(--black); }

/* Nav principal */
.bnav { flex: 1; display: flex; justify-content: center; }
.bnav ul { display: flex; align-items: center; list-style: none; }
.bnav ul li { position: relative; }
.bnav ul li a {
  display: block; padding: .38rem .8rem;
  font-size: 1.1rem; font-weight: 400;
  color: var(--cream); white-space: nowrap;
  transition: opacity var(--ease);
}
#bh.bh-light .bnav ul li a { color: var(--black); }
.bnav ul li a:hover,
.bnav ul li.current-menu-item > a { text-decoration: underline; text-underline-offset: 4px; }

/* Submenu */
.bnav .sub-menu {
  position: absolute; top: calc(100% + 2px); left: 0;
  background: var(--black-deep); min-width: 180px;
  padding: .5rem 0; border-radius: 4px; list-style: none;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: all var(--ease); z-index: 200;
}
.bnav li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.bnav .sub-menu li a { padding: .5rem 1.1rem; font-size: .9rem; color: var(--cream); }
.bnav .sub-menu li a:hover { opacity: .65; }

/* Derecha del header */
.bh-right { display: flex; align-items: center; gap: .85rem; flex-shrink: 0; }
.bh-lang {
  display: flex; align-items: center; gap: .25rem;
  font-size: .9rem; color: var(--cream); cursor: pointer;
}
#bh.bh-light .bh-lang { color: var(--black); }
.bh-lang svg { width: 15px; height: 15px; }
.bh-cta {
  padding: .46rem 1.2rem; border: 1.5px solid rgba(236,211,167,.44);
  border-radius: var(--btn-r); font-size: .88rem; color: var(--cream);
  transition: all var(--ease); white-space: nowrap;
}
.bh-cta:hover { background: rgba(236,211,167,.13); }
#bh.bh-light .bh-cta { border-color: var(--black); color: var(--black); }
#bh.bh-light .bh-cta:hover { background: var(--black); color: var(--white); }

/* Hamburger */
.bburger {
  display: none; flex-direction: column; gap: 5px;
  cursor: pointer; padding: 4px; z-index: 920;
}
.bburger span { display: block; width: 22px; height: 2px; background: var(--cream); transition: all var(--ease); }
#bh.bh-light .bburger span { background: var(--black); }
.bburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.bburger.open span:nth-child(2) { opacity: 0; }
.bburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Nav mobile overlay */
.bnav.m-open {
  display: flex !important; flex-direction: column;
  position: fixed; inset: 0; background: var(--black-deep);
  z-index: 910; align-items: center; justify-content: center;
}
.bnav.m-open ul { flex-direction: column; align-items: center; gap: .2rem; }
.bnav.m-open ul li a { font-size: 2rem; color: var(--cream); padding: .5rem 1rem; }
.bnav.m-open .sub-menu {
  position: static; background: transparent; opacity: 1;
  visibility: visible; transform: none; text-align: center; padding: .3rem 0;
}
.bnav.m-open .sub-menu li a { font-size: 1.2rem; color: rgba(236,211,167,.65); }

/* ================================================================
   COOKIE BANNER
================================================================ */
#bcookie {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--white); border-top: 1px solid rgba(0,0,0,.09);
  z-index: 8000; padding: 1rem var(--gutter);
  transform: translateY(100%); transition: transform .4s ease;
}
#bcookie.show { transform: translateY(0); }
.bcookie-row {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
}
.bcookie-txt { font-size: .83rem; line-height: 1.55; max-width: 560px; }
.bcookie-btns { display: flex; gap: .65rem; flex-shrink: 0; }

/* Cookie modal */
#bcookie-modal {
  position: fixed; inset: 0; background: rgba(0,0,0,.5);
  z-index: 9000; display: none; align-items: center; justify-content: center;
}
#bcookie-modal.show { display: flex; }
.bcm-box {
  background: var(--white); padding: 2.2rem; max-width: 480px; width: 90%;
  border-radius: 5px; max-height: 86vh; overflow-y: auto;
}
.bcm-box h3 { font-size: 1.2rem; letter-spacing: -.04em; margin-bottom: 1.4rem; }
.bcm-item { padding: 1rem 0; border-bottom: 1px solid rgba(0,0,0,.07); }
.bcm-item:last-of-type { border-bottom: none; }
.bcm-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: .4rem; }
.bcm-hd h4 { font-size: .9rem; font-weight: 600; }
.bcm-always { font-size: .67rem; text-transform: uppercase; letter-spacing: .09em; opacity: .4; }
.bcm-item p { font-size: .8rem; color: var(--muted); line-height: 1.55; margin: 0; }
/* Toggle */
.bswitch { position: relative; width: 42px; height: 23px; flex-shrink: 0; }
.bswitch input { opacity: 0; width: 0; height: 0; }
.bswitch-track {
  position: absolute; inset: 0; background: #ccc;
  border-radius: 23px; cursor: pointer; transition: .28s;
}
.bswitch-track::before {
  content: ""; position: absolute;
  width: 17px; height: 17px; left: 3px; bottom: 3px;
  background: #fff; border-radius: 50%; transition: .28s;
}
.bswitch input:checked + .bswitch-track { background: var(--black); }
.bswitch input:checked + .bswitch-track::before { transform: translateX(19px); }
.bcm-footer { margin-top: 1.4rem; }
.bcm-footer .bbtn { width: 100%; justify-content: center; }

/* ================================================================
   S1 · HERO VIDEO  (S2 bright-inverse, negro puro, h1 crema)
   Texto grande en esquina inferior izquierda, vídeo fondo
================================================================ */
.bs-hero {
  position: relative; height: 100vh; min-height: 560px;
  overflow: hidden; background: var(--black-deep);
}
.bs-hero-media { position: absolute; inset: 0; }
.bs-hero-media video,
.bs-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.bs-hero-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.15); }
.bs-hero-body {
  position: absolute;
  bottom: clamp(28px, 5.5vh, 72px);
  left: var(--gutter); right: var(--gutter);
  z-index: 2;
}
.bs-hero-title {
  font-size: clamp(2.5rem, 8vw, 8.5rem);
  color: var(--cream); font-weight: 700;
  letter-spacing: -0.065em; line-height: 0.9;
  text-transform: uppercase; max-width: 1000px;
}
/* Placeholder cuando no hay vídeo configurado */
.bs-hero-placeholder {
  width: 100%; height: 100%; background: var(--black-deep);
  display: flex; align-items: center; justify-content: center;
}
.bs-hero-placeholder-lbl {
  font-size: .76rem; text-transform: uppercase; letter-spacing: .18em;
  color: rgba(236,211,167,.22); text-align: center; max-width: 400px;
  line-height: 2.1; padding: 0 2rem;
}

/* ================================================================
   S2 · BANNER PROMOCIONAL  (S3 white-bold, imagen fondo, texto centrado)
   Título grande, subtítulo, botón pill — texto blanco sobre imagen oscura
================================================================ */
.bs-promo {
  position: relative; min-height: 70vh;
  overflow: hidden; display: flex; align-items: flex-end;
  background: var(--black-deep);
}
.bs-promo-media { position: absolute; inset: 0; }
.bs-promo-media img { width: 100%; height: 100%; object-fit: cover; }
.bs-promo-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.44); }
.bs-promo-body {
  position: relative; z-index: 2; width: 100%;
  padding: clamp(32px,6vh,80px) var(--gutter);
  text-align: center; color: var(--white);
}
.bs-promo-eyebrow {
  font-size: .72rem; text-transform: uppercase; letter-spacing: .18em;
  display: block; margin-bottom: .7rem; opacity: .7;
}
.bs-promo-title {
  font-size: clamp(1.8rem, 5.5vw, 5.8rem);
  font-weight: 700; letter-spacing: -.055em; line-height: 1;
  margin-bottom: .45rem;
}
.bs-promo-subtitle {
  font-size: clamp(.9rem, 1.8vw, 1.3rem);
  max-width: 660px; margin: 0 auto 2.2rem; line-height: 1.5; opacity: .9;
}

/* ================================================================
   S3 · INTRO TEXTO  (S4 dark, fondo #282625, crema)
   2 columnas: texto izquierda + imagen derecha
================================================================ */
.bs-intro {
  background: var(--black); color: var(--cream);
  padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-intro-inner {
  max-width: 1300px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 6vw, 7rem); align-items: center;
}
.bs-intro-eyebrow {
  font-size: .7rem; text-transform: uppercase; letter-spacing: .18em;
  opacity: .4; display: block; margin-bottom: .9rem;
}
.bs-intro-title {
  font-size: clamp(2rem, 4.5vw, 4.8rem);
  letter-spacing: -.065em; line-height: .9;
  color: var(--cream); margin-bottom: 1rem;
}
.bs-intro-subtitle {
  font-size: clamp(1rem, 2vw, 1.6rem);
  font-style: italic; font-weight: 400; line-height: 1.35;
  color: var(--cream); opacity: .88; margin-bottom: 1.3rem;
}
.bs-intro-body {
  font-size: .92rem; line-height: 1.8;
  color: rgba(236,211,167,.66); margin-bottom: 1.8rem;
}
.bs-intro-img { border-radius: 2px; overflow: hidden; }
.bs-intro-img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; background: rgba(255,255,255,.05); }

/* ================================================================
   S4 · NUESTRAS CLASES  (S5 light-bold, #ECE6F0, accordion + col fija)
   Columna izquierda sticky con título y descripción
   Columna derecha: acordeón ELEVATED / GROOVY / GROUNDED
================================================================ */
.bs-classes {
  background: var(--lavender);
  padding: clamp(60px, 9vh, 110px) 0;
}
.bs-classes-inner {
  max-width: 1380px; margin: 0 auto; padding: 0 var(--gutter);
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0; align-items: start;
}
.bs-classes-left {
  position: sticky; top: 88px;
  padding-right: clamp(1.5rem, 5vw, 6rem);
  padding-bottom: 3rem;
}
.bs-classes-eyebrow {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .19em;
  opacity: .4; display: block; margin-bottom: .9rem;
}
.bs-classes-title {
  font-size: clamp(2.2rem, 5vw, 5.5rem);
  letter-spacing: -.065em; line-height: .9;
  text-transform: uppercase; margin-bottom: 1rem; color: var(--black);
}
.bs-classes-desc {
  font-size: .9rem; line-height: 1.75; color: var(--muted);
  max-width: 300px; margin-bottom: 2rem;
}

/* Acordeón */
.bacc { border-top: 1px solid rgba(40,38,37,.14); }
.bacc-item { border-bottom: 1px solid rgba(40,38,37,.14); }
.bacc-btn {
  width: 100%; padding: 1.5rem 0;
  display: flex; align-items: center; justify-content: space-between;
  background: none; text-align: left; font-family: var(--font); cursor: pointer;
}
.bacc-label {
  font-size: clamp(1.5rem, 3vw, 2.8rem); font-weight: 700;
  letter-spacing: -.065em; line-height: 1; color: var(--black);
  transition: color var(--ease);
}
.bacc-item.open .bacc-label { color: var(--cream); }
.bacc-icon { width: 26px; height: 26px; position: relative; flex-shrink: 0; margin-left: .8rem; }
.bacc-icon::before, .bacc-icon::after {
  content: ""; position: absolute;
  background: var(--black); transition: all var(--ease);
}
.bacc-icon::before { width: 100%; height: 2px; top: 50%; transform: translateY(-50%); }
.bacc-icon::after  { width: 2px; height: 100%; left: 50%; transform: translateX(-50%); }
.bacc-item.open .bacc-icon::after { transform: translateX(-50%) scaleY(0); }
.bacc-body { overflow: hidden; max-height: 0; transition: max-height .48s cubic-bezier(.4,0,.2,1); }
.bacc-item.open .bacc-body { max-height: 500px; }
.bacc-inner { padding: 0 0 1.8rem; }
.bacc-tagline { font-size: .95rem; font-style: italic; color: var(--muted); margin-bottom: 1rem; line-height: 1.55; }
.bacc-list { list-style: none; margin-bottom: 1.2rem; }
.bacc-list li {
  padding: .44rem 0; border-bottom: 1px solid rgba(40,38,37,.08);
  font-size: .85rem; color: var(--muted);
}
.bacc-list li:last-child { border-bottom: none; }
.bacc-cta {
  font-size: .82rem; font-weight: 600;
  text-decoration: underline; text-underline-offset: 3px;
  color: var(--black); transition: opacity var(--ease);
}
.bacc-cta:hover { opacity: .5; }

/* ================================================================
   S5 · ELIGE TU VIBE  (S6 white, texto blanco = fondo #282625)
   3 columnas: ELEVATED / GROOVY / GROUNDED con descripciones
================================================================ */
.bs-vibes {
  background: var(--black); color: var(--white);
  padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-vibes-hd { margin-bottom: 3rem; }
.bs-vibes-eyebrow { font-size: .68rem; text-transform: uppercase; letter-spacing: .19em; opacity: .4; display: block; margin-bottom: .7rem; }
.bs-vibes-title { font-size: clamp(1.8rem, 4vw, 4rem); letter-spacing: -.065em; text-transform: uppercase; margin-bottom: .7rem; color: var(--white); }
.bs-vibes-desc { font-size: .9rem; color: rgba(255,255,255,.62); max-width: 560px; line-height: 1.7; }
.bs-vibes-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255,255,255,.12);
}
.bvibe {
  padding: 2.2rem 2rem 2.5rem;
  border-right: 1px solid rgba(255,255,255,.12);
}
.bvibe:last-child { border-right: none; }
.bvibe-name {
  font-size: clamp(1.3rem, 2.2vw, 2rem);
  font-weight: 700; letter-spacing: -.065em;
  text-transform: uppercase; margin-bottom: .5rem; color: var(--white);
}
.bvibe-tag { font-size: .87rem; color: rgba(255,255,255,.55); margin-bottom: 1.2rem; line-height: 1.55; }
.bvibe-list { list-style: none; margin-bottom: 1.5rem; }
.bvibe-list li {
  padding: .42rem 0; border-bottom: 1px solid rgba(255,255,255,.1);
  font-size: .84rem; color: rgba(255,255,255,.62);
}
.bvibe-list li:last-child { border-bottom: none; }

/* ================================================================
   S6 · MEMBRESÍAS  (S7 dark, fondo real #282625 — texto #282625 pero la sección es oscura)
   Nota: el wrapper mide bg blanco pero el color de texto es #282625, la sección
   usa Squarespace "dark" que en su sistema = fondo blanco con texto negro.
   Para Brisse Studio: usamos fondo negro con texto crema igual que asanagroove
================================================================ */
.bs-memb {
  background: var(--black); color: var(--cream);
  padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-memb-title {
  font-size: clamp(1.5rem, 3.5vw, 3.5rem);
  letter-spacing: -.065em; text-transform: uppercase;
  text-align: center; margin-bottom: 3rem;
}
.bs-memb-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  max-width: 1200px; margin: 0 auto;
  border-top: 1px solid rgba(236,211,167,.15);
}
.bmemb {
  padding: 2.5rem 1.8rem 2.2rem;
  border-right: 1px solid rgba(236,211,167,.15);
  text-align: center;
}
.bmemb:last-child { border-right: none; }
.bmemb-badge {
  display: inline-block; font-size: .62rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em;
  border: 1px solid rgba(236,211,167,.36); border-radius: var(--btn-r);
  padding: .3em 1em; color: var(--cream); margin-bottom: 1.4rem;
}
.bmemb-price {
  font-size: clamp(3rem, 7vw, 6.8rem);
  font-weight: 700; letter-spacing: -.07em; line-height: .85;
  color: var(--cream); margin-bottom: .35rem;
}
.bmemb-name {
  font-size: .9rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; margin-bottom: .4rem;
}
.bmemb-sub { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; opacity: .38; margin-bottom: .9rem; }
.bmemb-desc { font-size: .8rem; line-height: 1.65; opacity: .62; margin-bottom: 1.4rem; }
.bmemb-note { font-size: .72rem; opacity: .4; line-height: 1.55; margin-bottom: 1.4rem; }

/* ================================================================
   S7 · PACKS DE CLASES  (S8 dark, mismo fondo)
================================================================ */
.bs-packs {
  background: var(--black); color: var(--cream);
  padding: 0 var(--gutter) clamp(60px, 9vh, 110px);
  border-top: 1px solid rgba(236,211,167,.08);
}
.bs-packs-title {
  font-size: clamp(1.5rem, 3vw, 3rem);
  letter-spacing: -.065em; text-transform: uppercase;
  text-align: center; padding-top: clamp(40px, 6vh, 72px); margin-bottom: 2.5rem;
}
.bs-packs-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  max-width: 1200px; margin: 0 auto;
  border-top: 1px solid rgba(236,211,167,.12);
}
.bpack {
  padding: 2.2rem 1.8rem 2rem;
  border-right: 1px solid rgba(236,211,167,.12); text-align: center;
}
.bpack:last-child { border-right: none; }
.bpack-tag {
  font-size: .62rem; text-transform: uppercase; letter-spacing: .12em;
  opacity: .38; display: block; margin-bottom: .4rem;
}
.bpack-price {
  font-size: clamp(2.5rem, 5.5vw, 5.8rem);
  font-weight: 700; letter-spacing: -.07em; line-height: .85;
  margin-bottom: .35rem;
}
.bpack-name {
  font-size: .88rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: 1.3rem;
}

/* ================================================================
   S8 · CLASES ONLINE  (S9 bright-inverse, negro puro #070707)
   3 columnas: LIVESTREAM / ONLINE CLASSES / ON-DEMAND
================================================================ */
.bs-online {
  background: var(--black-deep); color: var(--cream);
  padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-online-inner { max-width: 1380px; margin: 0 auto; }
.bs-online-title {
  font-size: clamp(1.8rem, 4vw, 4rem);
  letter-spacing: -.065em; text-transform: uppercase;
  margin-bottom: 3rem; text-align: center;
}
.bs-online-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(236,211,167,.12);
}
.bonline-col {
  padding: 2.5rem 2rem;
  border-right: 1px solid rgba(236,211,167,.12);
}
.bonline-col:last-child { border-right: none; }
.bonline-name {
  font-size: clamp(1rem, 1.8vw, 1.5rem);
  font-weight: 700; letter-spacing: -.04em;
  margin-bottom: .7rem; text-transform: uppercase;
}
.bonline-desc { font-size: .86rem; opacity: .62; line-height: 1.65; margin-bottom: 1.4rem; }
.bonline-link {
  font-size: .82rem; font-weight: 600;
  text-decoration: underline; text-underline-offset: 3px;
  opacity: .8; transition: opacity var(--ease);
}
.bonline-link:hover { opacity: .5; }

/* ================================================================
   S9 · EQUIPO  (S10 none = transparente/blanco)
   Grid de tarjetas del equipo
================================================================ */
.bs-team {
  background: var(--white); padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-team-inner { max-width: 1380px; margin: 0 auto; }
.bs-team-hd {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 3rem; gap: 2rem; flex-wrap: wrap;
}
.bs-team-title { font-size: clamp(1.8rem, 4vw, 4rem); letter-spacing: -.065em; }
.bs-team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.bteam-card {}
.bteam-img {
  width: 100%; aspect-ratio: 3/4; object-fit: cover;
  border-radius: 2px; display: block;
  background: var(--lavender); margin-bottom: .9rem;
}
.bteam-name { font-size: .95rem; font-weight: 700; letter-spacing: -.03em; margin-bottom: .2rem; }
.bteam-role { font-size: .78rem; opacity: .5; text-transform: uppercase; letter-spacing: .1em; }

/* ================================================================
   S10 · RETIROS  (S11 white-bold, blanco, 2 columnas)
================================================================ */
.bs-retreats {
  background: var(--white); padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-retreats-inner {
  max-width: 1380px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 6rem); align-items: center;
}
.bs-retreats-img { border-radius: 2px; overflow: hidden; }
.bs-retreats-img img { width: 100%; aspect-ratio: 3/4; object-fit: cover; background: var(--lavender); }
.bs-retreats-eyebrow { font-size: .68rem; text-transform: uppercase; letter-spacing: .19em; opacity: .4; display: block; margin-bottom: .9rem; }
.bs-retreats-title { font-size: clamp(1.8rem, 3.5vw, 3.5rem); letter-spacing: -.065em; margin-bottom: .7rem; }
.bs-retreats-sub { font-size: clamp(.9rem, 1.8vw, 1.35rem); font-style: italic; font-weight: 400; line-height: 1.4; opacity: .8; margin-bottom: 1.2rem; }
.bs-retreats-body { font-size: .9rem; line-height: 1.75; color: var(--muted); margin-bottom: 1.8rem; }

/* ================================================================
   S11 · TIENDA  (S12 none, blanco)
================================================================ */
.bs-shop {
  background: var(--white); padding: clamp(60px, 9vh, 110px) var(--gutter);
  border-top: 1px solid rgba(40,38,37,.07);
}
.bs-shop-inner { max-width: 1380px; margin: 0 auto; }
.bs-shop-hd {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 3rem; gap: 2rem; flex-wrap: wrap;
}
.bs-shop-title { font-size: clamp(1.8rem, 4vw, 4rem); letter-spacing: -.065em; text-transform: uppercase; }
.bs-shop-sub { font-size: .87rem; color: var(--muted); max-width: 290px; line-height: 1.65; text-align: right; }
.bs-shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.bshop-item {}
.bshop-img {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  border-radius: 2px; display: block;
  background: var(--lavender); margin-bottom: .9rem;
}
.bshop-name { font-size: .9rem; font-weight: 700; margin-bottom: .25rem; }
.bshop-price { font-size: .86rem; color: var(--muted); }

/* ================================================================
   S12 · BLOG  (S13 dark, fondo #282625 con texto oscuro — pero lo hacemos oscuro)
================================================================ */
.bs-blog {
  background: var(--black); color: var(--cream);
  padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-blog-inner { max-width: 1380px; margin: 0 auto; }
.bs-blog-hd {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 2.5rem; gap: 2rem; flex-wrap: wrap;
}
.bs-blog-title { font-size: clamp(1.6rem, 3.2vw, 3rem); letter-spacing: -.055em; }
.bs-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.bblog-post {}
.bblog-img {
  width: 100%; aspect-ratio: 16/10; object-fit: cover;
  border-radius: 2px; display: block;
  background: rgba(255,255,255,.06); margin-bottom: 1rem;
}
.bblog-date { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; opacity: .38; margin-bottom: .45rem; }
.bblog-title {
  font-size: 1.05rem; font-weight: 700; letter-spacing: -.03em;
  line-height: 1.25; margin-bottom: .5rem;
  color: var(--cream); transition: opacity var(--ease);
}
.bblog-title a:hover { opacity: .65; }
.bblog-excerpt { font-size: .8rem; opacity: .58; line-height: 1.6; margin-bottom: .9rem; }

/* ================================================================
   S13 · COMUNIDAD CTA  (S16 dark)
================================================================ */
.bs-community {
  background: var(--black); color: var(--cream);
  padding: clamp(50px, 7vh, 90px) var(--gutter);
  text-align: center; border-top: 1px solid rgba(236,211,167,.08);
}
.bs-community-title { font-size: clamp(1.5rem, 3vw, 3rem); letter-spacing: -.055em; margin-bottom: .7rem; }
.bs-community-desc { font-size: .88rem; opacity: .62; max-width: 440px; margin: 0 auto 2rem; line-height: 1.7; }

/* ================================================================
   S14 · TESTIMONIOS  (S17 white = fondo #282625 en Squarespace)
   3 cajas de testimonios
================================================================ */
.bs-testi {
  background: var(--black); color: var(--white);
  padding: clamp(60px, 9vh, 110px) var(--gutter);
}
.bs-testi-inner { max-width: 1380px; margin: 0 auto; }
.bs-testi-title {
  font-size: clamp(1.6rem, 3.2vw, 3rem);
  letter-spacing: -.055em; text-transform: uppercase;
  margin-bottom: 3rem; text-align: center; color: var(--white);
}
.bs-testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.1); }
.btesti { background: var(--black); padding: 2.5rem 2rem; }
.btesti-quote {
  font-size: .9rem; font-style: italic; line-height: 1.78;
  margin-bottom: 1.2rem; color: var(--white);
}
.btesti-author {
  font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em; opacity: .48;
}

/* ================================================================
   S15 · PRENSA  (S18 white-bold, blanco)
================================================================ */
.bs-press {
  background: var(--white); padding: clamp(40px,5vh,65px) var(--gutter);
  border-top: 1px solid rgba(40,38,37,.06);
}
.bs-press-inner { max-width: 1200px; margin: 0 auto; text-align: center; }
.bs-press-lbl { font-size: .68rem; text-transform: uppercase; letter-spacing: .2em; opacity: .35; margin-bottom: 2rem; display: block; }
.bs-press-logos { display: flex; align-items: center; justify-content: center; gap: 3rem; flex-wrap: wrap; }
.bpress-name {
  font-size: .88rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; opacity: .3; transition: opacity var(--ease);
}
.bpress-name:hover { opacity: .65; }

/* ================================================================
   FOOTER  (S19 light-bold, #ECE6F0, con newsletter)
================================================================ */
#bfooter {
  background: var(--lavender); color: var(--black);
  padding: clamp(50px, 7vh, 80px) var(--gutter) 36px;
}
.bfooter-inner { max-width: 1380px; margin: 0 auto; }

/* Newsletter */
.bfoot-nl {
  padding-bottom: clamp(36px,5vh,56px);
  border-bottom: 1px solid rgba(40,38,37,.1);
  margin-bottom: clamp(36px,5vh,56px);
}
.bfoot-nl-lbl {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .18em;
  opacity: .4; display: block; margin-bottom: .5rem;
}
.bfoot-nl-title { font-size: clamp(1.3rem, 2.5vw, 2.4rem); letter-spacing: -.05em; margin-bottom: .5rem; }
.bfoot-nl-desc { font-size: .86rem; opacity: .65; max-width: 420px; line-height: 1.65; margin-bottom: 1.3rem; }
.bfoot-nl-form { display: flex; gap: .6rem; max-width: 380px; flex-wrap: wrap; }
.bfoot-nl-input {
  flex: 1; min-width: 160px; padding: .65rem 1.2rem;
  border: 1.5px solid rgba(40,38,37,.2); border-radius: var(--btn-r);
  background: transparent; font-family: var(--font); font-size: .86rem;
  outline: none; transition: border-color var(--ease); color: var(--black);
}
.bfoot-nl-input::placeholder { color: rgba(40,38,37,.38); }
.bfoot-nl-input:focus { border-color: var(--black); }

/* Columnas */
.bfoot-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-bottom: 2.5rem; }
.bfoot-col h4 {
  font-size: .65rem; text-transform: uppercase; letter-spacing: .18em;
  opacity: .38; font-weight: 700; margin-bottom: 1rem;
}
.bfoot-col ul { list-style: none; }
.bfoot-col ul li { margin-bottom: .45rem; }
.bfoot-col ul li a { font-size: .86rem; opacity: .65; transition: opacity var(--ease); }
.bfoot-col ul li a:hover { opacity: 1; }
.bfoot-col p { font-size: .86rem; opacity: .65; line-height: 1.6; }

/* Barra inferior */
.bfoot-bar {
  border-top: 1px solid rgba(40,38,37,.1); padding-top: 20px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; font-size: .76rem; opacity: .38; flex-wrap: wrap;
}
.bfoot-bar a { transition: opacity var(--ease); }
.bfoot-bar a:hover { opacity: 2; }

/* ================================================================
   ANIMACIONES — fade-up al hacer scroll
================================================================ */
.bup { opacity: 0; transform: translateY(28px); transition: opacity .65s ease, transform .65s ease; }
.bup.in { opacity: 1; transform: translateY(0); }

/* ================================================================
   RESPONSIVE
================================================================ */
@media (max-width: 1100px) {
  .bs-intro-inner, .bs-retreats-inner { grid-template-columns: 1fr; }
  .bs-classes-inner { grid-template-columns: 1fr; }
  .bs-classes-left { position: static; padding-right: 0; padding-bottom: 2rem; }
  .bfoot-cols { grid-template-columns: 1fr 1fr; }
  .bs-team-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 820px) {
  :root { --gutter: 18px; }
  .bnav { display: none; }
  .bburger { display: flex; }
  .bs-vibes-grid { grid-template-columns: 1fr; }
  .bvibe { border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
  .bs-memb-grid, .bs-packs-grid { grid-template-columns: 1fr; }
  .bmemb { border-right: none; border-bottom: 1px solid rgba(236,211,167,.12); }
  .bmemb:last-child { border-bottom: none; }
  .bpack { border-right: none; border-bottom: 1px solid rgba(236,211,167,.1); }
  .bpack:last-child { border-bottom: none; }
  .bs-online-grid { grid-template-columns: 1fr; }
  .bonline-col { border-right: none; border-bottom: 1px solid rgba(236,211,167,.1); }
  .bonline-col:last-child { border-bottom: none; }
  .bs-team-grid { grid-template-columns: 1fr 1fr; }
  .bs-testi-grid { grid-template-columns: 1fr; }
  .btesti { margin-bottom: 1px; }
  .bs-blog-grid { grid-template-columns: 1fr; }
  .bs-shop-grid { grid-template-columns: 1fr 1fr; }
  .bfoot-cols { grid-template-columns: 1fr; }
  .bfoot-bar { flex-direction: column; text-align: center; }
  .bcookie-row { flex-direction: column; gap: 1rem; align-items: flex-start; }
}
@media (max-width: 480px) {
  .bs-team-grid { grid-template-columns: 1fr; }
  .bs-shop-grid { grid-template-columns: 1fr; }
  .bs-shop-hd { flex-direction: column; }
  .bs-shop-sub { text-align: left; }
}

/* ── WordPress core ── */
.screen-reader-text { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { display: block; margin: 0 auto 1rem; }
.elementor-section, .e-con { margin: 0 !important; }
.elementor-widget-wrap { padding: 0 !important; }

/* ================================================================
   ESTILOS ELEMENTOR — movidos desde custom_css de widgets
   para evitar el error "Array to string conversion" en base.php
================================================================ */

/* ── Header: sticky color change ── */
.elementor-location-header .elementor-sticky--active {
  background-color: var(--bg) !important;
  box-shadow: 0 1px 0 rgba(46,46,46,0.08);
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.elementor-location-header .elementor-sticky--active .elementor-nav-menu--main .elementor-item {
  color: var(--black) !important;
}
.elementor-location-header .elementor-sticky--active .elementor-menu-toggle i,
.elementor-location-header .elementor-sticky--active .elementor-menu-toggle svg {
  color: var(--black) !important;
  fill: var(--black) !important;
}
.elementor-location-header .elementor-sticky--active .elementor-button {
  color: var(--black) !important;
  border-color: var(--black) !important;
}
.elementor-location-header .elementor-sticky--active .elementor-button:hover {
  background-color: var(--black) !important;
  color: var(--bg) !important;
}

/* ── Imágenes circulares de profesoras (team) ── */
.elementor-widget-image .team-photo img,
.e-team-img img {
  aspect-ratio: 3/4;
  object-fit: cover;
  width: 100%;
  border-radius: 4px;
}

/* ── Imagen perfil profesora — arco ── */
.e-teacher-photo img {
  aspect-ratio: 2/3;
  object-fit: cover;
  border-radius: 50% 50% 0 0 / 33% 33% 0 0;
  width: 100%;
}

/* ── Foto circular bio (clase, sobre nosotras) ── */
.e-bio-photo img {
  border-radius: 50%;
  object-fit: cover;
  aspect-ratio: 1;
}

/* ── 404: número gigante superpuesto ── */
.e-404-number .elementor-heading-title {
  line-height: 0.85;
  pointer-events: none;
  user-select: none;
}
.e-404-text {
  margin-top: -120px;
  position: relative;
  z-index: 2;
}
@media (max-width: 767px) {
  .e-404-text { margin-top: -60px; }
}

/* ── Post content typography (single post) ── */
.elementor-widget-post-content p { margin-bottom: 1.4em; }
.elementor-widget-post-content h2 {
  font-size: 1.6rem; font-weight: 700;
  letter-spacing: -0.02em; line-height: 1.15;
  margin: 2rem 0 0.8rem;
}
.elementor-widget-post-content h3 {
  font-size: 1.2rem; font-weight: 700;
  margin: 1.6rem 0 0.6rem;
}
.elementor-widget-post-content blockquote {
  border-left: 2px solid var(--lavender);
  padding-left: 1.5rem; margin: 2rem 0;
  font-style: italic; color: var(--muted);
  font-size: 1.1rem; line-height: 1.65;
}
.elementor-widget-post-content a {
  color: var(--black);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.elementor-widget-post-content a:hover { color: var(--principal); }
.elementor-widget-post-content img {
  width: 100%; border-radius: 4px; margin: 1.5rem 0;
}
.elementor-widget-post-content ul,
.elementor-widget-post-content ol {
  padding-left: 1.5rem; margin-bottom: 1.4em;
}
.elementor-widget-post-content li { margin-bottom: 0.4em; line-height: 1.65; }

/* ── Online page: image aspect ratio ── */
.e-online-img img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }

/* ── Retiro: image aspect ratio ── */
.e-retreat-img img { aspect-ratio: 3/4; object-fit: cover; width: 100%; }

/* ── Masajes/Tratamientos: image ── */
.e-masajes-img img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }

/* ── Author box: avatar circular ── */
.elementor-author-box__avatar img { border-radius: 50% !important; }
.elementor-author-box { gap: 1.5rem; align-items: flex-start; }

/* ── Nav Menu dropdown (header) ── */
.elementor-nav-menu--dropdown { box-shadow: 0 4px 24px rgba(46,46,46,0.08); }

