/* ══════════════════════════════════════════════════════════════
   ND DERMA — EDITORIAL REDESIGN (home)
   Dirección: editorial de lujo, minimalista, moderno. Tipografía
   sobredimensionada, mucho aire, imágenes a sangre, casi
   monocromático (crema + casi-negro) con el DORADO solo como hilo
   de acento. Mantiene fuentes/colores/logo/fotos de la marca.
   Se carga al final (gana la cascada) y solo en index.html.
   ══════════════════════════════════════════════════════════════ */

:root{
  --ed-paper:#F4EFE7;      /* fondo editorial cálido */
  --ed-paper-2:#EDE6DA;
  --ed-ink:#1C1917;        /* casi negro (ya de la marca) */
  --ed-ink-soft:#4a4640;
  --ed-gold:#B9A885;
  --ed-gold-dk:#9c8a68;
  --ed-line:rgba(28,25,23,.14);
}

.ed-theme{ background:var(--ed-paper) !important; color:var(--ed-ink); }

/* ── Tipografía editorial ─────────────────────────────────────── */
.ed-display{ font-family:var(--font-headline); font-weight:400; line-height:.98; letter-spacing:-.02em; color:var(--ed-ink); }
.ed-kicker{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.34em; font-size:11px; color:var(--ed-ink-soft); }
.ed-num{ font-family:var(--font-title); font-size:12px; letter-spacing:.2em; color:var(--ed-gold-dk); }
.ed-lead{ font-family:var(--font-headline); font-weight:400; line-height:1.3; letter-spacing:-.01em; color:var(--ed-ink); }
.ed-body{ font-family:var(--font-body); font-size:clamp(15px,1.15vw,17px); line-height:1.85; color:var(--ed-ink-soft); }
.ed-hair{ height:1px; background:var(--ed-line); border:0; width:100%; }

.ed-wrap{ max-width:1280px; margin-inline:auto; padding-inline:clamp(1.25rem,5vw,4rem); }
.ed-section{ padding-block:clamp(5rem,12vh,10rem); }

/* ── Link editorial (subrayado fino animado) ──────────────────── */
.ed-link{
  font-family:var(--font-title); text-transform:uppercase; letter-spacing:.24em; font-size:12px;
  color:var(--ed-ink); display:inline-flex; align-items:center; gap:.7rem; text-decoration:none;
  padding-bottom:.5rem; border-bottom:1px solid var(--ed-ink); transition:gap .25s ease,color .25s ease,border-color .25s ease;
}
.ed-link:hover{ gap:1.1rem; color:var(--ed-gold-dk); border-color:var(--ed-gold); }
.ed-link--light{ color:#fff; border-color:rgba(255,255,255,.6); }
.ed-link--light:hover{ color:#fff; border-color:#fff; }

/* ══ HERO — editorial a pantalla completa ═════════════════════ */
.ed-hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ed-ink); }
.ed-hero__img{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.05); }
.ed-hero__veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,16,.55) 0%, rgba(20,18,16,.15) 35%, rgba(20,18,16,.72) 100%); }
.ed-hero__inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(3rem,8vh,7rem); }
.ed-hero__kicker{ color:rgba(255,255,255,.82); display:flex; gap:1.2rem; align-items:center; margin-bottom:2rem; }
.ed-hero__kicker::before{ content:""; width:44px; height:1px; background:var(--ed-gold); display:inline-block; }
.ed-hero h1{ font-family:var(--font-headline); font-weight:400; color:#fff; line-height:.94; letter-spacing:-.025em;
  font-size:clamp(52px,10.5vw,150px); }
.ed-hero h1 em{ font-style:italic; color:#EAE1D4; }
.ed-hero__row{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:2rem; margin-top:2.5rem; }
.ed-hero__sub{ font-family:var(--font-body); font-size:clamp(15px,1.3vw,18px); line-height:1.7; color:rgba(255,255,255,.78); max-width:34ch; }
.ed-scrollcue{ position:absolute; right:clamp(1.25rem,5vw,4rem); bottom:clamp(3rem,8vh,7rem); z-index:2; writing-mode:vertical-rl;
  font-family:var(--font-title); text-transform:uppercase; letter-spacing:.3em; font-size:10px; color:rgba(255,255,255,.6); }

/* ══ MARQUEE — tira de disciplinas ════════════════════════════ */
.ed-marquee{ background:var(--ed-ink); color:var(--ed-paper); overflow:hidden; padding:clamp(1.1rem,2vw,1.6rem) 0; border-block:1px solid rgba(255,255,255,.1); }
.ed-marquee__track{ display:inline-flex; white-space:nowrap; will-change:transform; animation:edMarq 32s linear infinite; }
.ed-marquee__track span{ font-family:var(--font-headline); font-size:clamp(22px,3vw,40px); padding-inline:clamp(1.5rem,3vw,3rem); display:inline-flex; align-items:center; gap:clamp(1.5rem,3vw,3rem); color:var(--ed-paper); }
.ed-marquee__track span::after{ content:"·"; color:var(--ed-gold); }
@keyframes edMarq{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion:reduce){ .ed-marquee__track{ animation:none } }

/* ══ STATEMENT — declaración editorial ════════════════════════ */
.ed-statement{ background:var(--ed-paper); }
.ed-statement .ed-wrap{ display:grid; grid-template-columns:1fr; gap:2.5rem; }
.ed-statement__lead{ font-size:clamp(26px,3.6vw,46px); max-width:20ch; }
.ed-statement__grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:end; }
.ed-statement__grid .ed-body{ max-width:44ch; }
@media (max-width:840px){ .ed-statement__grid{ grid-template-columns:1fr; gap:2rem; } }

/* ══ INDEX — tratamientos como índice de revista ══════════════ */
.ed-index{ background:var(--ed-ink); color:#fff; }
.ed-index .ed-kicker{ color:rgba(255,255,255,.6); }
.ed-index__head{ display:flex; justify-content:space-between; align-items:baseline; gap:2rem; margin-bottom:clamp(2.5rem,5vw,4rem); flex-wrap:wrap; }
.ed-index__head h2{ font-family:var(--font-headline); color:#fff; font-size:clamp(34px,5vw,64px); line-height:1; letter-spacing:-.02em; }
.ed-index__layout{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.ed-index__list{ display:flex; flex-direction:column; }
.ed-index__row{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.5rem; padding:clamp(1.4rem,2.5vw,2.2rem) 0;
  border-top:1px solid rgba(255,255,255,.14); text-decoration:none; color:#fff; transition:padding-left .35s var(--ease-out-expo,ease); }
.ed-index__row:last-child{ border-bottom:1px solid rgba(255,255,255,.14); }
.ed-index__row:hover{ padding-left:.8rem; }
.ed-index__row .ed-num{ color:var(--ed-gold); }
.ed-index__name{ font-family:var(--font-headline); font-size:clamp(24px,3vw,40px); line-height:1.05; color:#fff; transition:color .3s ease; }
.ed-index__row:hover .ed-index__name{ color:var(--ed-gold); }
.ed-index__meta{ font-family:var(--font-body); font-size:13.5px; color:rgba(255,255,255,.55); max-width:24ch; }
.ed-index__arrow{ color:rgba(255,255,255,.4); transition:transform .3s ease,color .3s ease; }
.ed-index__row:hover .ed-index__arrow{ transform:translateX(6px); color:var(--ed-gold); }
/* preview sticky (desktop) */
.ed-index__preview{ position:sticky; top:12vh; aspect-ratio:4/5; overflow:hidden; }
.ed-index__preview img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .5s ease, transform 1.2s var(--ease-out-expo,ease); transform:scale(1.04); }
.ed-index__preview img.is-active{ opacity:1; transform:scale(1); }
.ed-index__meta-col{ display:none; }
@media (max-width:900px){
  .ed-index__layout{ grid-template-columns:1fr; }
  .ed-index__preview{ display:none; }
  .ed-index__row{ grid-template-columns:auto 1fr auto; }
  .ed-index__meta{ display:none; }
}

/* ══ FEATURE — split a sangre con imagen grande ═══════════════ */
.ed-feature{ position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; background:var(--ed-ink); }
.ed-feature__img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.ed-feature__veil{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,18,16,.85) 0%, rgba(20,18,16,.45) 55%, rgba(20,18,16,.15) 100%); }
.ed-feature__inner{ position:relative; z-index:2; max-width:640px; }
.ed-feature h2{ font-family:var(--font-headline); color:#fff; font-size:clamp(34px,5.5vw,68px); line-height:1; letter-spacing:-.02em; margin-bottom:1.5rem; }
.ed-feature .ed-body{ color:rgba(255,255,255,.82); max-width:46ch; margin-bottom:2.5rem; }

/* ══ GALLERY (antes/después) editorial ════════════════════════ */
.ed-gallery{ background:var(--ed-paper); }
.ed-gallery__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(.6rem,1.2vw,1rem); }
.ed-gallery figure{ margin:0; }
.ed-gallery .pair{ display:grid; grid-template-columns:1fr 1fr; gap:4px; aspect-ratio:3/4; overflow:hidden; }
.ed-gallery .pair img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-out-expo,ease); }
.ed-gallery figure:hover .pair img{ transform:scale(1.05); }
.ed-gallery figcaption{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.18em; font-size:10px; color:var(--ed-ink-soft); margin-top:.9rem; }
@media (max-width:820px){ .ed-gallery__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .ed-gallery__grid{ grid-template-columns:1fr; } }

/* ══ QUOTE — cita editorial gigante ═══════════════════════════ */
.ed-quote{ background:var(--ed-paper-2); text-align:center; }
.ed-quote blockquote{ margin:0; }
.ed-quote p{ font-family:var(--font-headline); font-weight:400; font-size:clamp(26px,4vw,52px); line-height:1.2; letter-spacing:-.01em; color:var(--ed-ink); max-width:20ch; margin:0 auto; }
.ed-quote cite{ display:block; margin-top:2.5rem; font-family:var(--font-title); text-transform:uppercase; letter-spacing:.24em; font-size:11px; color:var(--ed-ink-soft); font-style:normal; }
.ed-stars{ display:inline-flex; gap:.4rem; margin-bottom:2rem; }
.ed-stars span{ width:6px; height:6px; border-radius:50%; background:var(--ed-gold); }

/* ══ NUMBERS / promise ════════════════════════════════════════ */
.ed-numbers{ background:var(--ed-paper); }
.ed-numbers__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,4vw,3rem); }
.ed-numbers__grid > div{ border-top:1px solid var(--ed-line); padding-top:1.5rem; }
.ed-numbers b{ font-family:var(--font-headline); font-weight:400; font-size:clamp(44px,7vw,88px); line-height:1; color:var(--ed-ink); display:block; }
.ed-numbers span{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.2em; font-size:11px; color:var(--ed-ink-soft); margin-top:1rem; display:block; }
@media (max-width:640px){ .ed-numbers__grid{ grid-template-columns:1fr; } }

/* ══ FAQ minimal ══════════════════════════════════════════════ */
.ed-faq{ background:var(--ed-paper); }
.ed-faq__list{ max-width:900px; }
.ed-faq details{ border-top:1px solid var(--ed-line); }
.ed-faq details:last-child{ border-bottom:1px solid var(--ed-line); }
.ed-faq summary{ list-style:none; cursor:pointer; padding:clamp(1.4rem,2.5vw,2rem) 0; display:flex; justify-content:space-between; gap:2rem; align-items:baseline;
  font-family:var(--font-headline); font-size:clamp(19px,2.2vw,28px); color:var(--ed-ink); line-height:1.2; }
.ed-faq summary::-webkit-details-marker{ display:none; }
.ed-faq summary::after{ content:"+"; font-family:var(--font-title); font-size:22px; color:var(--ed-gold-dk); transition:transform .3s ease; }
.ed-faq details[open] summary::after{ transform:rotate(45deg); }
.ed-faq p{ font-family:var(--font-body); font-size:16px; line-height:1.85; color:var(--ed-ink-soft); max-width:60ch; padding-bottom:clamp(1.4rem,2.5vw,2rem); margin:0; }

/* ══ CLOSING CTA — a sangre completa ══════════════════════════ */
.ed-closing{ position:relative; min-height:80vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; background:var(--ed-ink); }
.ed-closing__img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.ed-closing__veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,16,.72), rgba(20,18,16,.82)); }
.ed-closing__inner{ position:relative; z-index:2; }
.ed-closing h2{ font-family:var(--font-headline); color:#fff; font-size:clamp(40px,7vw,96px); line-height:.98; letter-spacing:-.02em; margin-bottom:2.5rem; }
.ed-closing .ed-kicker{ color:rgba(255,255,255,.7); display:block; margin-bottom:1.5rem; }

/* ── Sticky book (mobile) ─────────────────────────────────────── */
.ed-stickybook{ position:fixed; left:0; right:0; bottom:0; z-index:480; background:rgba(28,25,23,.96); backdrop-filter:blur(8px);
  padding:.85rem 1.25rem calc(.85rem + env(safe-area-inset-bottom)); display:none; align-items:center; justify-content:space-between; gap:1rem; }
.ed-stickybook small{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.18em; font-size:10px; color:rgba(255,255,255,.6); }
@media (max-width:1023px){ .ed-stickybook{ display:flex; } footer{ padding-bottom:5rem; } }

/* ══ HEADER editorial (compartido) ════════════════════════════
   Estados los pone main.js: .header--on-dark (arriba, sobre hero
   oscuro) y .scrolled (al bajar). */
.ed-theme .site-header{ height:76px; background:transparent !important; backdrop-filter:none; border-bottom:1px solid transparent; transition:background .4s ease, border-color .4s ease, height .3s ease; }
.ed-theme .site-header.scrolled{ background:rgba(244,239,231,.94) !important; backdrop-filter:blur(10px); border-bottom-color:var(--ed-line); height:66px; }
/* logo dual (claro sobre hero, oscuro al bajar) */
.ed-logo{ position:relative; display:block; height:40px; }
.ed-logo img{ height:40px; width:auto; display:block; transition:opacity .35s ease; }
.ed-logo .ed-logo-dark{ position:absolute; inset:0; opacity:0; }
.site-header.scrolled .ed-logo .ed-logo-light{ opacity:0; }
.site-header.scrolled .ed-logo .ed-logo-dark{ opacity:1; }
/* nav links editorial */
.ed-theme .nav-primary a{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.24em; font-size:10.5px; color:#fff; transition:color .3s ease,opacity .2s ease; position:relative; }
.ed-theme .site-header.scrolled .nav-primary a{ color:var(--ed-ink); }
.ed-theme .nav-primary a:hover{ color:var(--ed-gold) !important; }
.ed-theme .nav-primary a::after{ content:""; position:absolute; left:0; bottom:-6px; height:1px; width:0; background:var(--ed-gold); transition:width .3s var(--ease-out-expo,ease); }
.ed-theme .nav-primary a:hover::after,.ed-theme .nav-primary a.active::after{ width:100%; }
/* CTA del header → link editorial */
.ed-theme .header-book-btn{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.2em; font-size:10.5px; padding:.75rem 1.4rem; background:transparent !important; color:#fff !important; border:1px solid rgba(255,255,255,.5) !important; transition:all .3s ease; }
.ed-theme .site-header.scrolled .header-book-btn{ color:var(--ed-ink) !important; border-color:var(--ed-line) !important; }
.ed-theme .header-book-btn:hover{ background:var(--ed-gold) !important; border-color:var(--ed-gold) !important; color:#fff !important; }
/* hamburguesa */
.ed-theme .hamburger .hamburger-line{ background:#fff; transition:background .3s ease; }
.ed-theme .site-header.scrolled .hamburger .hamburger-line{ background:var(--ed-ink); }
/* mobile nav editorial */
.ed-theme .mobile-nav{ background:var(--ed-ink) !important; }
.ed-theme .mobile-nav a{ color:#fff !important; font-family:var(--font-headline) !important; text-transform:none !important; letter-spacing:-.01em !important; font-size:28px !important; }
.ed-theme .mobile-nav a:hover{ color:var(--ed-gold) !important; }

/* ══ PAGE HERO (páginas internas) ═════════════════════════════ */
.ed-pagehero{ position:relative; min-height:66vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ed-ink); }
.ed-pagehero__img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.ed-pagehero__veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,16,.5) 0%, rgba(20,18,16,.2) 40%, rgba(20,18,16,.8) 100%); }
.ed-pagehero__inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(2.5rem,6vh,5rem); }
.ed-pagehero .ed-kicker{ color:rgba(255,255,255,.8); display:flex; gap:1rem; align-items:center; margin-bottom:1.5rem; }
.ed-pagehero .ed-kicker::before{ content:""; width:40px; height:1px; background:var(--ed-gold); }
.ed-pagehero h1{ font-family:var(--font-headline); font-weight:400; color:#fff; line-height:.96; letter-spacing:-.025em; font-size:clamp(44px,8vw,110px); }
.ed-pagehero p{ font-family:var(--font-body); font-size:clamp(15px,1.3vw,18px); line-height:1.7; color:rgba(255,255,255,.78); max-width:46ch; margin-top:1.5rem; }

/* ══ SERVICES editorial ═══════════════════════════════════════ */
.ed-svc{ background:var(--ed-paper); }
.ed-svc__cat{ border-top:1px solid var(--ed-line); padding-block:clamp(3rem,6vw,6rem); scroll-margin-top:90px; }
.ed-svc__cathead{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2rem,5vw,5rem); align-items:start; margin-bottom:clamp(2rem,4vw,3.5rem); }
.ed-svc__cathead-l{ position:sticky; top:100px; }
.ed-svc__cathead h2{ font-family:var(--font-headline); font-weight:400; font-size:clamp(32px,5vw,60px); line-height:1; letter-spacing:-.02em; color:var(--ed-ink); margin-top:1rem; }
.ed-svc__cathead p{ font-family:var(--font-body); font-size:15.5px; line-height:1.8; color:var(--ed-ink-soft); margin-top:1.5rem; max-width:42ch; }
.ed-svc__list{ display:flex; flex-direction:column; }
.ed-svc__item{ border-top:1px solid var(--ed-line); }
.ed-svc__item:last-child{ border-bottom:1px solid var(--ed-line); }
.ed-svc__item summary{ list-style:none; cursor:pointer; padding:1.5rem 0; display:grid; grid-template-columns:1fr auto auto; gap:1.5rem; align-items:baseline; }
.ed-svc__item summary::-webkit-details-marker{ display:none; }
.ed-svc__name{ font-family:var(--font-headline); font-size:clamp(19px,2.2vw,26px); color:var(--ed-ink); line-height:1.15; }
.ed-svc__price{ font-family:var(--font-title); font-size:12px; letter-spacing:.12em; color:var(--ed-gold-dk); white-space:nowrap; }
.ed-svc__plus{ font-family:var(--font-title); font-size:20px; color:var(--ed-gold-dk); transition:transform .3s ease; }
.ed-svc__item[open] .ed-svc__plus{ transform:rotate(45deg); }
.ed-svc__body{ padding-bottom:1.8rem; max-width:64ch; }
.ed-svc__body p{ font-family:var(--font-body); font-size:15px; line-height:1.8; color:var(--ed-ink-soft); margin-bottom:1rem; }
.ed-svc__body dl{ display:grid; grid-template-columns:auto 1fr; gap:.4rem 1.2rem; font-size:13.5px; }
.ed-svc__body dt{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.12em; font-size:10.5px; color:var(--ed-gold-dk); padding-top:.15rem; }
.ed-svc__body dd{ font-family:var(--font-body); color:var(--ed-ink-soft); margin:0; }
.ed-svc__cta{ margin-top:2.5rem; }
@media (max-width:820px){ .ed-svc__cathead{ grid-template-columns:1fr; gap:1.5rem; } .ed-svc__cathead-l{ position:static; } }

/* ══ MEMBERSHIPS editorial ════════════════════════════════════ */
.ed-plans{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.5rem); }
@media (max-width:900px){ .ed-plans{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; } }
.ed-plan{ background:#fff; border:1px solid var(--ed-line); padding:clamp(2rem,3vw,2.8rem); display:flex; flex-direction:column; transition:transform .3s var(--ease-out-expo,ease),box-shadow .3s ease; }
.ed-plan:hover{ transform:translateY(-6px); box-shadow:0 24px 60px rgba(0,0,0,.09); }
.ed-plan--featured{ background:var(--ed-ink); color:#fff; }
.ed-plan__badge{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.2em; font-size:10px; color:var(--ed-gold-dk); margin-bottom:1.2rem; }
.ed-plan--featured .ed-plan__badge{ color:var(--ed-gold); }
.ed-plan__name{ font-family:var(--font-headline); font-size:clamp(26px,3vw,34px); line-height:1; margin-bottom:1.2rem; }
.ed-plan__price{ font-family:var(--font-headline); font-size:clamp(38px,5vw,54px); line-height:1; }
.ed-plan__price small{ font-family:var(--font-body); font-size:13px; color:var(--ed-ink-soft); letter-spacing:normal; text-transform:none; }
.ed-plan--featured .ed-plan__price small{ color:rgba(255,255,255,.6); }
.ed-plan__hair{ height:1px; background:var(--ed-line); margin:1.8rem 0; }
.ed-plan--featured .ed-plan__hair{ background:rgba(255,255,255,.16); }
.ed-plan__feat{ list-style:none; margin:0 0 2rem; padding:0; display:flex; flex-direction:column; gap:.9rem; flex:1; }
.ed-plan__feat li{ font-family:var(--font-body); font-size:14.5px; line-height:1.5; color:var(--ed-ink-soft); display:flex; gap:.7rem; }
.ed-plan--featured .ed-plan__feat li{ color:rgba(255,255,255,.82); }
.ed-plan__feat li::before{ content:""; width:6px; height:6px; margin-top:.5rem; border-radius:50%; background:var(--ed-gold); flex-shrink:0; }

/* ══ CONTACT editorial ════════════════════════════════════════ */
.ed-contact{ background:var(--ed-paper); }
.ed-contact__grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2.5rem,6vw,6rem); align-items:start; }
@media (max-width:880px){ .ed-contact__grid{ grid-template-columns:1fr; gap:3rem; } }
.ed-info__row{ border-top:1px solid var(--ed-line); padding:1.6rem 0; }
.ed-info__row:last-child{ border-bottom:1px solid var(--ed-line); }
.ed-info__label{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.2em; font-size:10.5px; color:var(--ed-gold-dk); margin-bottom:.6rem; display:block; }
.ed-info__val{ font-family:var(--font-headline); font-size:clamp(18px,2vw,24px); color:var(--ed-ink); line-height:1.3; }
.ed-info__val a{ color:inherit; text-decoration:none; transition:color .2s ease; }
.ed-info__val a:hover{ color:var(--ed-gold-dk); }
.ed-field{ margin-bottom:1.4rem; }
.ed-field label{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.16em; font-size:10.5px; color:var(--ed-ink-soft); display:block; margin-bottom:.6rem; }
.ed-field input,.ed-field select,.ed-field textarea{ width:100%; background:transparent; border:0; border-bottom:1px solid var(--ed-line); padding:.7rem 0; font-family:var(--font-body); font-size:16px; color:var(--ed-ink); transition:border-color .25s ease; }
.ed-field input:focus,.ed-field select:focus,.ed-field textarea:focus{ outline:none; border-bottom-color:var(--ed-gold); }

/* ══ FOOTER editorial ═════════════════════════════════════════ */
.ed-footer{ background:var(--ed-ink); color:#fff; padding-top:clamp(4rem,8vw,7rem); }
.ed-footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(2rem,5vw,4rem); padding-bottom:clamp(3rem,6vw,5rem); border-bottom:1px solid rgba(255,255,255,.12); }
.ed-footer__word{ font-family:var(--font-headline); font-weight:400; font-size:clamp(40px,6vw,84px); line-height:.95; letter-spacing:-.02em; color:#fff; }
.ed-footer__tag{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.22em; font-size:11px; color:rgba(255,255,255,.5); margin-top:1.5rem; }
.ed-footer__col h4{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.22em; font-size:10.5px; color:var(--ed-gold); margin-bottom:1.5rem; }
.ed-footer__col a,.ed-footer__col p{ font-family:var(--font-body); font-size:14.5px; line-height:1.9; color:rgba(255,255,255,.62); text-decoration:none; display:block; transition:color .2s ease; }
.ed-footer__col a:hover{ color:var(--ed-gold); }
.ed-footer__cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem; padding-block:clamp(2.5rem,5vw,4rem); border-bottom:1px solid rgba(255,255,255,.12); }
.ed-footer__cta h3{ font-family:var(--font-headline); font-size:clamp(28px,4vw,46px); line-height:1; color:#fff; }
.ed-footer__bar{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding-block:1.8rem; }
.ed-footer__bar, .ed-footer__bar a{ font-family:var(--font-body); font-size:12px; color:rgba(255,255,255,.35); text-decoration:none; }
.ed-footer__bar a:hover{ color:var(--ed-gold); }
.ed-footer__bar nav{ display:flex; gap:1.5rem; }
@media (max-width:820px){ .ed-footer__top{ grid-template-columns:1fr; gap:2.5rem; } }


/* ══ SERVICES — overrides editoriales del markup existente ═════ */
.ed-theme .services-tab-nav{ position:sticky; top:66px; z-index:400; background:rgba(244,239,231,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--ed-line); }
.ed-theme .services-tab-nav ul{ display:flex; gap:0; list-style:none; margin:0; padding:.6rem 0; overflow-x:auto; scrollbar-width:none; }
.ed-theme .services-tab-nav ul::-webkit-scrollbar{ display:none; }
.ed-theme .services-tab-nav a{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.16em; font-size:10.5px; color:var(--ed-ink-soft); white-space:nowrap; padding:.5rem 1.1rem; display:inline-block; transition:color .2s ease; }
.ed-theme .services-tab-nav a:hover,.ed-theme .services-tab-nav a.active{ color:var(--ed-gold-dk); }

.ed-theme .service-category{ background:var(--ed-paper); border-top:1px solid var(--ed-line); padding-block:clamp(3rem,6vw,6rem) !important; scroll-margin-top:120px; }
.ed-theme .service-category .container{ max-width:1280px; }
.ed-theme .service-category__header{ margin-bottom:clamp(2rem,4vw,3rem); max-width:none; }
.ed-theme .service-category__header .eyebrow{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.2em; font-size:11px; color:var(--ed-gold-dk); }
.ed-theme .service-category__header .headline-md{ font-family:var(--font-headline); font-weight:400; font-size:clamp(32px,5vw,58px); line-height:1; letter-spacing:-.02em; color:var(--ed-ink); margin-top:1rem; }
.ed-theme .service-category__intro{ font-family:var(--font-body); font-size:16px; line-height:1.8; color:var(--ed-ink-soft); margin-top:1.2rem; max-width:60ch; }
.ed-theme .service-category__img{ margin:clamp(1.5rem,3vw,2.5rem) 0; overflow:hidden; }
.ed-theme .service-category__img img{ width:100%; height:clamp(240px,32vw,420px); object-fit:cover; }

.ed-theme .services-list{ display:flex; flex-direction:column; }
.ed-theme .service-subgroup > h3{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.18em; font-size:12px; color:var(--ed-gold-dk); margin:2.5rem 0 .5rem; }
.ed-theme .service-item{ border-top:1px solid var(--ed-line); border-radius:0; background:transparent !important; }
.ed-theme .service-item:last-child{ border-bottom:1px solid var(--ed-line); }
.ed-theme .service-item__header{ padding:1.4rem 0 !important; display:grid !important; grid-template-columns:1fr auto auto; gap:1.5rem; align-items:baseline; background:transparent !important; }
.ed-theme .service-item__header:hover{ background:transparent !important; }
.ed-theme .service-item__name{ font-family:var(--font-headline) !important; font-weight:400; font-size:clamp(18px,2.1vw,26px) !important; color:var(--ed-ink) !important; letter-spacing:-.01em; line-height:1.15; text-transform:none !important; }
.ed-theme .service-item__price{ font-family:var(--font-title) !important; font-size:12px !important; letter-spacing:.1em; color:var(--ed-gold-dk) !important; text-transform:uppercase; white-space:nowrap; }
.ed-theme .service-item__toggle::before,.ed-theme .service-item__toggle::after{ background:var(--ed-gold-dk) !important; }
.ed-theme .service-item[open]{ background:transparent !important; }
.ed-theme .service-item__body{ padding:0 0 1.8rem !important; max-width:66ch; }
.ed-theme .service-item__body > p{ font-family:var(--font-body); font-size:15px; line-height:1.8; color:var(--ed-ink-soft); margin-bottom:1.2rem; }
.ed-theme .service-meta{ display:grid; grid-template-columns:auto 1fr; gap:.4rem 1.4rem; margin-bottom:1.4rem; }
.ed-theme .service-meta dt{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.12em; font-size:10px; color:var(--ed-gold-dk); padding-top:.2rem; }
.ed-theme .service-meta dd{ font-family:var(--font-body); font-size:14px; line-height:1.6; color:var(--ed-ink-soft); margin:0; }
.ed-theme .service-item__body .btn-secondary{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.22em; font-size:11px; color:var(--ed-ink); background:transparent; border:0; border-bottom:1px solid var(--ed-ink); padding:0 0 .4rem; display:inline-block; transition:color .2s ease,border-color .2s ease; }
.ed-theme .service-item__body .btn-secondary:hover{ color:var(--ed-gold-dk); border-color:var(--ed-gold); }
.ed-theme .service-category__packages{ margin-top:2.5rem; padding:1.8rem; background:#fff; border:1px solid var(--ed-line); }
.ed-theme .service-category__packages h3{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.16em; font-size:12px; color:var(--ed-gold-dk); margin-bottom:1rem; }
.ed-theme .price-tba{ color:var(--ed-gold-dk); font-family:var(--font-title); font-size:11px; letter-spacing:.08em; }
.ed-theme .service-category__cta{ margin-top:2.5rem; }
.ed-theme .services-closing-cta{ background:var(--ed-ink); text-align:center; padding-block:clamp(4rem,8vw,7rem); }
.ed-theme .services-closing-cta h2{ font-family:var(--font-headline); color:#fff; font-size:clamp(32px,5vw,62px); line-height:1; letter-spacing:-.02em; }
.ed-theme .services-closing-cta .eyebrow{ color:rgba(255,255,255,.6); }
@media (max-width:640px){ .ed-theme .service-item__header{ grid-template-columns:1fr auto; } .ed-theme .service-item__price{ grid-column:1; } }

/* ══ BOOKING — editorial + motion (restyle del wizard existente) ═ */
.ed-theme .booking-section{ background:var(--ed-paper); padding-block:clamp(3rem,6vw,6rem); }
.ed-theme .booking-layout{ gap:clamp(2rem,4vw,4rem); }
/* progreso */
.ed-theme .booking-progress{ display:flex; flex-wrap:wrap; gap:.4rem 1.5rem; border-bottom:1px solid var(--ed-line); padding-bottom:1.5rem; margin-bottom:2.5rem; }
.ed-theme .progress-step{ display:flex; align-items:center; gap:.6rem; opacity:.4; transition:opacity .4s ease; }
.ed-theme .progress-step.active,.ed-theme .progress-step.completed{ opacity:1; }
.ed-theme .progress-step .step-num{ width:26px; height:26px; border-radius:50%; border:1px solid var(--ed-line); display:flex; align-items:center; justify-content:center; font-family:var(--font-title); font-size:11px; color:var(--ed-ink); transition:all .4s ease; }
.ed-theme .progress-step.active .step-num{ background:var(--ed-ink); color:#fff; border-color:var(--ed-ink); }
.ed-theme .progress-step.completed .step-num{ background:var(--ed-gold); color:#fff; border-color:var(--ed-gold); }
.ed-theme .progress-step .step-label{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.14em; font-size:10px; color:var(--ed-ink-soft); }
/* pasos con motion de entrada */
.ed-theme .booking-step{ display:none; }
.ed-theme .booking-step.active{ display:block; animation:edStepIn .55s var(--ease-out-expo,ease) both; }
@keyframes edStepIn{ from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:none;} }
.ed-theme .booking-step.is-leaving{ animation:edStepOut .25s ease both; }
@keyframes edStepOut{ to{opacity:0; transform:translateY(-10px);} }
.ed-theme .booking-step h2{ font-family:var(--font-headline); font-weight:400; font-size:clamp(26px,4vw,44px); line-height:1.05; letter-spacing:-.02em; color:var(--ed-ink); margin-bottom:.6rem; }
.ed-theme .step-instruction{ font-family:var(--font-body); font-size:15px; color:var(--ed-ink-soft); }
/* tarjetas de selección con motion */
.ed-theme .selection-grid--3,.ed-theme .selection-grid--2{ display:grid; gap:1rem; margin-top:1.5rem; }
.ed-theme .selection-grid--3{ grid-template-columns:repeat(3,1fr); }
.ed-theme .selection-grid--2{ grid-template-columns:repeat(2,1fr); }
@media (max-width:640px){ .ed-theme .selection-grid--3{ grid-template-columns:1fr 1fr; } }
.ed-theme .selection-card{ position:relative; cursor:pointer; }
.ed-theme .selection-card__inner{ border:1px solid var(--ed-line); background:#fff; padding:1.2rem; display:flex; flex-direction:column; gap:.6rem; transition:transform .3s var(--ease-out-expo,ease), border-color .3s ease, box-shadow .3s ease; }
.ed-theme .selection-card:hover .selection-card__inner{ transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.08); border-color:var(--ed-gold-light,#DACDC4); }
.ed-theme .selection-card input:checked + .selection-card__inner{ border-color:var(--ed-gold); box-shadow:0 0 0 1px var(--ed-gold) inset; }
.ed-theme .selection-card__thumb{ aspect-ratio:16/11; overflow:hidden; }
.ed-theme .selection-card__thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease-out-expo,ease); }
.ed-theme .selection-card:hover .selection-card__thumb img{ transform:scale(1.05); }
.ed-theme .selection-card__label{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--ed-ink); }
/* select + inputs editorial */
.ed-theme .service-select{ width:100%; background:transparent; border:0; border-bottom:1px solid var(--ed-line); padding:.9rem 0; font-family:var(--font-headline); font-size:20px; color:var(--ed-ink); }
.ed-theme .service-select:focus{ outline:none; border-bottom-color:var(--ed-gold); }
.ed-theme .booking-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.4rem 2rem; }
.ed-theme .form-group--full{ grid-column:1 / -1; }
.ed-theme .form-group label{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.14em; font-size:10.5px; color:var(--ed-ink-soft); display:block; margin-bottom:.5rem; }
.ed-theme .form-group input,.ed-theme .form-group select,.ed-theme .form-group textarea{ width:100%; background:transparent; border:0; border-bottom:1px solid var(--ed-line); padding:.6rem 0; font-family:var(--font-body); font-size:16px; color:var(--ed-ink); }
.ed-theme .form-group input:focus,.ed-theme .form-group select:focus,.ed-theme .form-group textarea:focus{ outline:none; border-bottom-color:var(--ed-gold); }
@media (max-width:600px){ .ed-theme .booking-form-grid{ grid-template-columns:1fr; } }
/* botones */
.ed-theme .step-actions{ display:flex; gap:1.2rem; margin-top:2.5rem; align-items:center; }
.ed-theme .booking-section .btn-primary,.ed-theme .booking-section #submit-booking{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.2em; font-size:11px; background:var(--ed-ink); color:#fff; border:1px solid var(--ed-ink); padding:1rem 2rem; cursor:pointer; transition:all .25s ease; }
.ed-theme .booking-section .btn-primary:hover{ background:var(--ed-gold); border-color:var(--ed-gold); }
.ed-theme .booking-section .btn-secondary{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.2em; font-size:11px; background:transparent; color:var(--ed-ink); border:1px solid var(--ed-line); padding:1rem 2rem; cursor:pointer; transition:all .25s ease; }
.ed-theme .booking-section .btn-secondary:hover{ border-color:var(--ed-ink); }
/* sidebar */
.ed-theme .booking-summary-panel,.ed-theme .booking-help-card{ background:#fff; border:1px solid var(--ed-line); padding:1.6rem; }
.ed-theme .booking-help-card h3{ font-family:var(--font-headline); font-size:22px; color:var(--ed-ink); margin-bottom:.6rem; }
.ed-theme .booking-summary-panel .eyebrow,.ed-theme .booking-help-card .eyebrow{ color:var(--ed-gold-dk); }
.ed-theme #booking-summary-dl dt{ color:var(--ed-gold-dk); font-family:var(--font-title); text-transform:uppercase; letter-spacing:.12em; font-size:10px; }
.ed-theme #booking-summary-dl dd{ font-family:var(--font-headline); font-size:18px; color:var(--ed-ink); }
/* calendar + faq mínimos */
.ed-theme .booking-faq{ background:var(--ed-paper); padding-block:clamp(3rem,6vw,6rem); }
.ed-theme .booking-faq .headline-md{ font-family:var(--font-headline); font-weight:400; font-size:clamp(30px,5vw,54px); color:var(--ed-ink); letter-spacing:-.02em; }
.ed-theme .faq-item{ border-top:1px solid var(--ed-line); }
.ed-theme .faq-item summary,.ed-theme .faq-item .faq-q{ font-family:var(--font-headline); font-size:clamp(18px,2vw,24px); color:var(--ed-ink); padding:1.3rem 0; }

/* ══ BEFORE & AFTER — overrides editoriales ═══════════════════ */
.ed-theme .ba-filter-bar{ position:sticky; top:66px; z-index:400; background:rgba(244,239,231,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--ed-line); }
.ed-theme .ba-filter-btn{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.16em; font-size:11px; color:var(--ed-ink-soft); background:transparent; border:0; padding:.6rem 1.1rem; cursor:pointer; transition:color .2s ease; }
.ed-theme .ba-filter-btn:hover,.ed-theme .ba-filter-btn.active{ color:var(--ed-gold-dk); background:transparent; }
.ed-theme .ba-category-group{ border-top:1px solid var(--ed-line); padding-block:clamp(3rem,6vw,5rem); }
.ed-theme .ba-category-label h2{ font-family:var(--font-headline); font-weight:400; font-size:clamp(30px,5vw,56px); line-height:1; letter-spacing:-.02em; color:var(--ed-ink); }
.ed-theme .ba-category-label p{ font-family:var(--font-body); font-size:16px; line-height:1.8; color:var(--ed-ink-soft); margin-top:1rem; max-width:56ch; }
.ed-theme .ba-pair-card{ background:#fff; border:1px solid var(--ed-line); border-radius:0; overflow:hidden; }
.ed-theme .ba-pair-card__treatment{ font-family:var(--font-headline); font-size:20px; color:var(--ed-ink); }
.ed-theme .ba-pair-card__sessions{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.14em; font-size:10.5px; color:var(--ed-gold-dk); }
.ed-theme .ba-pair-card__label{ font-family:var(--font-title); text-transform:uppercase; letter-spacing:.14em; font-size:10px; }

/* ══════════════════════════════════════════════════════════════
   TYPE SCALE BUMP — subir tamaños de letra en todo el sitio
   (pedido de David: las letras se veían chicas). Overrides al final
   = ganan la cascada. Mantiene la jerarquía, solo agranda.
   ══════════════════════════════════════════════════════════════ */
.ed-body{ font-size:clamp(16px,1.2vw,18.5px); line-height:1.8; }
.ed-kicker{ font-size:clamp(12px,1.1vw,13.5px); letter-spacing:.28em; }
.ed-num{ font-size:13px; }
.ed-hero__sub{ font-size:clamp(16.5px,1.5vw,20px); }
.ed-pagehero p{ font-size:clamp(16.5px,1.4vw,19px); }
.ed-theme .nav-primary a{ font-size:11.5px; }
.ed-theme .header-book-btn{ font-size:11.5px; }
/* services */
.ed-theme .service-item__name{ font-size:clamp(20px,2.3vw,28px) !important; }
.ed-theme .service-category__intro{ font-size:17px; }
.ed-theme .service-item__body > p{ font-size:16px; }
.ed-theme .service-meta dd{ font-size:14.5px; }
.ed-theme .service-meta dt{ font-size:10.5px; }
.ed-theme .services-tab-nav a{ font-size:11.5px; }
/* memberships */
.ed-plan__feat li{ font-size:15.5px; }
.ed-plan__name{ font-size:clamp(28px,3vw,36px); }
/* contact */
.ed-info__val{ font-size:clamp(19px,2vw,25px); }
.ed-field label{ font-size:11px; }
.ed-field input,.ed-field select,.ed-field textarea{ font-size:16.5px; }
/* faq */
.ed-faq summary{ font-size:clamp(20px,2.3vw,29px); }
.ed-faq p{ font-size:16.5px; line-height:1.85; }
/* footer */
.ed-footer__col a,.ed-footer__col p{ font-size:15px; }
/* booking */
.ed-theme .booking-step h2{ font-size:clamp(28px,4vw,46px); }
.ed-theme .step-instruction{ font-size:15.5px; }
.ed-theme .selection-card__label{ font-size:12.5px; }
