/* ==========================================================================
   MayMor Marketing & Communications — editorial / consultoría boutique
   ========================================================================== */

:root{
  /* ===== 1. Paleta oficial — colores base =====
     Snow / Onyx / Coral, tal como fue definida como identidad cromática oficial. */
  --color-snow:  #F7F3F3;   /* Fondo principal */
  --color-onyx:  #11100F;   /* Texto principal / fondo oscuro */
  --color-coral: #F0544F;   /* Acento principal */
  --color-coral-dim: #AD3C39; /* Acento — variante oscura (hover, fondos con texto pequeño) */
  --color-white: #FFFFFF;   /* Blanco puro */
  --color-black: #000000;   /* Reservado — no usado activamente en el sistema actual */

  /* Canales RGB de los colores base, para poder generar variantes con opacidad (rgba)
     sin volver a escribir valores de color sueltos en ninguna regla. */
  --color-snow-rgb:  247,243,243;
  --color-onyx-rgb:  17,16,15;
  --color-coral-rgb: 240,84,79;
  --color-white-rgb: 255,255,255;

  /* ===== 2. Roles semánticos =====
     Todo el resto de la hoja de estilos consume estos alias, nunca los colores base
     directamente. Cambiar la marca en el futuro implica editar solo el bloque 1. */
  --color-bg:      var(--color-snow);   /* fondo de secciones claras (.bg-cream) */
  --color-bg-alt:  var(--color-white);  /* fondo alterno de secciones claras (.bg-white) */
  --color-dark:    var(--color-onyx);   /* fondo de secciones oscuras (.bg-navy) */
  --color-text:        var(--color-onyx); /* texto principal sobre fondo claro */
  --color-text-on-dark: var(--color-snow); /* texto claro (cuerpo) sobre fondo oscuro */
  --color-accent:     var(--color-coral);     /* acento: líneas, bordes, cifras grandes, texto sobre fondo oscuro */
  --color-accent-dim: var(--color-coral-dim); /* acento en botones/rellenos y texto pequeño — mejor contraste (WCAG) */

  /* ===== 3. Tipografía (sin cambios respecto a la versión anterior) ===== */
  --serif: 'Playfair Display', 'Georgia', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --display: 'Bodoni Moda', 'Playfair Display', serif;

  /* ===== 4. Layout (sin cambios) ===== */
  --wrap: 1240px;
  --gutter: clamp(1.5rem, 5vw, 4rem);
  --section-y: clamp(4.5rem, 9vw, 8.5rem);
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--sans);
  font-weight:400;
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  line-height:1.08;
  margin:0 0 .6em;
  letter-spacing:-.02em;
}
h1{ font-size:clamp(2.5rem, 5.6vw, 4.8rem); font-weight:600; }
h2{ font-size:clamp(1.9rem, 3.4vw, 2.9rem); font-weight:600; }
h3{ font-size:clamp(1.3rem, 2vw, 1.7rem); }
p{ margin:0 0 1.2em; }
em, .italic{ font-style:italic; }

.wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 var(--gutter);
}

.section{ padding:var(--section-y) 0; }
.section-tight{ padding:clamp(3rem,6vw,5rem) 0; }
.bg-navy{ background:var(--color-dark); color:var(--color-text-on-dark); }
.bg-navy h1, .bg-navy h2, .bg-navy h3{ color:var(--color-white); }
.bg-cream{ background:var(--color-bg); }
.bg-gold{ background:var(--color-accent); color:var(--color-white); }

/* ---- statement band (frase contundente, rota entre 3 fragmentos) ---- */
.statement-band{ text-align:center; }
.statement-band .wrap{ max-width:1100px; }
.statement-rotator{
  position:relative;
  min-height:clamp(7rem,15vw,9rem);
  display:flex;
  align-items:center;
  justify-content:center;
}
.statement-slide{
  position:absolute;
  left:0; right:0;
  opacity:0;
  transition:opacity .8s ease;
  pointer-events:none;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.3rem,2.6vw,1.85rem);
  line-height:1.5;
  margin:0;
  color:var(--color-white);
  white-space:nowrap;
}
.statement-slide.is-active{ opacity:1; }
@media (max-width:700px){
  .statement-slide{ white-space:normal; font-size:1.05rem; line-height:1.45; }
}
.statement-slide.statement-slide-question{
  font-family:var(--display);
  font-style:normal;
  font-weight:800;
  font-size:clamp(1.65rem,3.6vw,2.4rem);
  line-height:1.25;
  color:var(--color-white);
  margin:0;
}
.bg-white{ background:var(--color-bg-alt); }

.eyebrow{
  display:block;
  position:relative;
  font-family:var(--serif);
  font-style:normal;
  font-size:clamp(1.6rem,2.8vw,2.2rem);
  letter-spacing:-.01em;
  text-transform:none;
  color:var(--color-accent);
  margin-bottom:1.7rem;
  padding-bottom:.9rem;
  font-weight:600;
}
.strike-word{
  position:relative;
  display:inline-block;
  color:rgba(var(--color-onyx-rgb),.4);
  font-style:italic;
}
.strike-word::after{
  content:"";
  position:absolute;
  left:-3%;
  right:-3%;
  top:52%;
  height:2px;
  background:var(--color-accent);
  transform:rotate(-4deg);
}
.eyebrow::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:2.6rem; height:2px;
  background:var(--color-accent);
}
.bg-navy .eyebrow{ color:var(--color-accent); }
.bg-navy .eyebrow::after{ background:var(--color-accent); }

.lede{
  font-size:clamp(1.1rem, 1.6vw, 1.35rem);
  color:rgba(var(--color-onyx-rgb),.7);
  max-width:42em;
}
.bg-navy .lede{ color:rgba(var(--color-snow-rgb),.7); }

.lede-compact{
  font-size:clamp(1rem, 1.3vw, 1.15rem);
  line-height:1.5;
  margin-bottom:.75rem;
}

/* ---- buttons ----
   Relleno en coral vivo (--color-accent, #F0544F) con texto onyx: el contraste
   onyx-sobre-coral (~5.4:1) cumple WCAG AA sin diluir el color de marca.
   --color-accent-dim se reserva solo para el texto en el estado hover
   (borde/relleno transparente) sobre secciones claras, donde el coral vivo
   como texto pequeño no alcanza el contraste mínimo. */
.btn{
  display:inline-block;
  font-family:var(--sans);
  font-size:.84rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  padding:1.2em 2.8em;
  border:1px solid var(--color-accent);
  border-radius:999px;
  background:var(--color-accent);
  color:var(--color-text);
  cursor:pointer;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.btn:hover{ background:transparent; color:var(--color-accent-dim); border-color:var(--color-accent); transform:translateY(-1px); }
.btn-gold{ border-color:var(--color-accent); background:var(--color-accent); color:var(--color-text); }
.btn-gold:hover{ background:transparent; color:var(--color-accent-dim); border-color:var(--color-accent); }
.bg-navy .btn{ border-color:var(--color-accent); background:var(--color-accent); color:var(--color-text); }
.bg-navy .btn:hover{ background:transparent; color:var(--color-accent); border-color:var(--color-accent); }
.bg-navy .btn-gold{ border-color:var(--color-accent); background:var(--color-accent); color:var(--color-text); }
.bg-navy .btn-gold:hover{ background:transparent; color:var(--color-accent); border-color:var(--color-accent); }

.btn-row{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.2rem; }
.btn-row.center{ justify-content:center; }

.hairline{ border:none; border-top:1px solid rgba(var(--color-onyx-rgb),.15); margin:0; }
.bg-navy .hairline{ border-top-color:rgba(var(--color-white-rgb),.18); }

/* Visualmente oculto pero accesible / legible para buscadores y lectores de pantalla */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ==========================================================================
   Cintillo superior (portada)
   ========================================================================== */
.top-ribbon{
  position:relative;
  overflow:hidden;
  background:linear-gradient(100deg, var(--color-dark) 0%, var(--color-coral-dim) 45%, var(--color-dark) 90%);
  background-size:220% 100%;
  animation:ribbonShift 10s ease-in-out infinite;
  text-align:center;
  padding:1rem var(--gutter) 1.1rem;
}
.top-ribbon-kicker{
  margin:0 0 .4rem;
  font-family:var(--sans);
  font-size:.92rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--color-white);
}
.top-ribbon-kicker strong{
  font-family:var(--sans);
  font-style:normal;
  font-weight:700;
  font-size:1.25em;
  color:var(--color-white);
  letter-spacing:.06em;
}
.top-ribbon-question{
  margin:0;
  font-family:var(--display);
  font-style:italic;
  font-weight:800;
  font-size:clamp(1.05rem,2.1vw,1.4rem);
  line-height:1.2;
  color:var(--color-white);
  position:relative;
  display:inline-block;
}
.top-ribbon-question::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-.2em;
  height:2px;
  background:var(--color-accent);
  transform-origin:left;
  animation:ribbonUnderline 3.2s ease-in-out infinite;
}
@keyframes ribbonShift{
  0%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
  100%{ background-position:0% 50%; }
}
@keyframes ribbonUnderline{
  0%{ transform:scaleX(0); opacity:0; }
  35%{ transform:scaleX(1); opacity:1; }
  75%{ transform:scaleX(1); opacity:1; }
  100%{ transform:scaleX(1); opacity:0; }
}
@media (prefers-reduced-motion: reduce){
  .top-ribbon{ animation:none; }
  .top-ribbon-question::after{ animation:none; transform:scaleX(1); opacity:1; }
}
@media (max-width:700px){
  .top-ribbon-kicker{ font-size:.72rem; letter-spacing:.1em; }
  .top-ribbon-question{ font-size:.95rem; }
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(var(--color-white-rgb),.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, background .3s ease;
}
.site-header.scrolled{ border-bottom-color:rgba(var(--color-onyx-rgb),.15); }
.header-inner{
  max-width:var(--wrap);
  margin:0 auto;
  padding:1.3rem var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  position:relative;
}
.logo img{ height:68px; width:auto; }
.main-nav{ display:flex; gap:2.8rem; }
.main-nav a{
  font-size:.86rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:500;
  color:rgba(var(--color-onyx-rgb),.7);
  padding:.3rem 0;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.main-nav a:hover, .main-nav a[aria-current="page"]{
  color:var(--color-text);
  border-bottom-color:var(--color-accent);
}
.nav-toggle{
  display:none;
  background:none; border:1px solid var(--color-text); color:var(--color-text);
  font-family:var(--sans); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  padding:.55em 1.1em; cursor:pointer;
}

@media (max-width: 760px){
  .main-nav{
    position:absolute; top:100%; left:0; right:0;
    background:var(--color-bg);
    flex-direction:column; gap:0;
    border-bottom:1px solid rgba(var(--color-onyx-rgb),.15);
    display:none;
  }
  .main-nav.open{ display:flex; }
  .main-nav a{ padding:1.1rem var(--gutter); border-bottom:1px solid rgba(var(--color-onyx-rgb),.15); }
  .nav-toggle{ display:inline-block; }
}

/* ==========================================================================
   Hero (split text / photo)
   ========================================================================== */
.hero{
  padding:clamp(3rem,7vw,5.5rem) 0 clamp(3.5rem,7vw,6rem);
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(2.5rem,6vw,5rem);
  align-items:center;
}
.hero-photo{
  aspect-ratio:4/5;
  overflow:hidden;
  background:rgba(var(--color-onyx-rgb),.15);
}
.hero-photo img, .hero-photo video{ width:100%; height:100%; object-fit:cover; }
.hero-text h1{ margin-bottom:.5rem; }
.hero-text .lede{ margin-top:1.3rem; }

@media (max-width: 900px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-photo{ order:-1; aspect-ratio:4/3; }
}

/* full-bleed variant used on mentoria / servicios */
.hero-full .hero-photo{ aspect-ratio:16/7; margin-top:clamp(2.5rem,5vw,4rem); }
@media (max-width: 700px){
  .hero-full .hero-photo{ aspect-ratio:4/3; }
}

/* ---- Home hero only — isolated, does not affect mentoria/servicios ---- */
.hero-home{
  padding:clamp(4rem,8vw,6rem) 0 clamp(4rem,8vw,7rem);
}
.hero-home .hero-grid{
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(3rem,7vw,6rem);
}
.hero-home .hero-text h1{
  font-size:clamp(2.2rem, 4.6vw, 4rem);
  font-weight:600;
  margin-bottom:.7rem;
}
.hero-home .hero-text .lede{
  font-size:clamp(1.15rem, 1.7vw, 1.4rem);
  margin-top:1.6rem;
}
.hero-home .hero-photo{
  aspect-ratio:4/3;
}
.hero-home .btn-row{
  gap:1.4rem;
  margin-top:2.6rem;
}
.hero-home .btn-hero{
  font-size:.84rem;
  letter-spacing:.14em;
  padding:1.25em 2.6em;
}
@media (max-width:900px){
  .hero-home .hero-grid{ grid-template-columns:1fr; }
  .hero-home .hero-photo{ aspect-ratio:16/9; }
}

/* ==========================================================================
   Quién soy
   ========================================================================== */
.split{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(2.5rem,6vw,5.5rem);
  align-items:center;
}
.split-reverse{ grid-template-columns:1.15fr .85fr; }
.split-reverse .split-photo{ order:2; }
.split-photo{ aspect-ratio:4/5; overflow:hidden; background:rgba(var(--color-onyx-rgb),.15); }
.split-photo img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:860px){
  .split, .split-reverse{ grid-template-columns:1fr; }
  .split-reverse .split-photo{ order:-1; }
}

/* ==========================================================================
   THE PERCEPTION — three cimientos, generous breathing room
   ========================================================================== */
.perception-logo-row{
  display:flex;
  justify-content:flex-end;
  margin-top:clamp(calc(1rem - 0.5cm),calc(2.5vw - 0.5cm),calc(1.5rem - 0.5cm));
}
.perception-lockup{
  width:clamp(215px,27vw,300px);
  height:auto;
}

.perception-intro{ max-width:46em; margin-bottom:clamp(2.5rem,6vw,4.5rem); }
.perception-close{
  max-width:38em;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.3rem,2.4vw,1.7rem);
  color:var(--color-white);
  margin-top:clamp(2.5rem,6vw,4.5rem);
  line-height:1.5;
}
.cimientos{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(2rem,5vw,3rem);
}
.cimiento{
  border-top:1px solid rgba(var(--color-white-rgb),.25);
  padding-top:1.6rem;
}
.cimiento .num{
  font-family:var(--display); font-style:normal; font-weight:800; color:var(--color-accent);
  font-size:1.5rem; letter-spacing:0; display:block; margin-bottom:.8rem;
}
.cimiento h3{ color:var(--color-white); }
.cimiento p{ color:rgba(var(--color-snow-rgb),.7); margin-bottom:0; font-size:1.12em; }
@media (max-width:760px){ .cimientos{ grid-template-columns:1fr; } }

/* ==========================================================================
   Para quién es esto — list of thoughts
   ========================================================================== */
.thought-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.4rem 7.5rem;
  margin-top:2.5rem;
  max-width:60em;
}
.thought{
  font-family:var(--sans);
  font-style:normal;
  font-weight:400;
  font-size:clamp(1rem,1.6vw,1.15rem);
  padding-left:1.4rem;
  border-left:2px solid var(--color-accent);
  line-height:1.5;
}
@media (max-width:700px){ .thought-list{ grid-template-columns:1fr; } }

/* Qué conseguirás — dos bloques por paquete (mentoria) */
.results-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,5vw,4rem);
  margin-top:2.5rem;
}
.results-col .fit-label{
  font-family:var(--serif); font-style:normal; font-size:clamp(1.4rem,2.2vw,1.7rem); letter-spacing:-.01em; text-transform:none; font-weight:600;
  color:var(--color-accent); display:block; margin-bottom:.6rem;
}
.results-col h3{ margin-bottom:.5rem; }
@media (max-width:800px){ .results-grid{ grid-template-columns:1fr; gap:2.5rem; } }

/* Qué conseguirás — lista de beneficios (mentoria) */
.benefit-list{
  list-style:none;
  margin:2rem 0 0;
  padding:0;
  max-width:52em;
}
.benefit-list li{
  position:relative;
  padding:1.1rem 0 1.1rem 2.2rem;
  border-top:1px solid rgba(var(--color-onyx-rgb),.15);
  font-size:1.05rem;
  line-height:1.55;
  color:rgba(var(--color-onyx-rgb),.8);
}
.benefit-list li:last-child{ border-bottom:1px solid rgba(var(--color-onyx-rgb),.15); }
.benefit-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:1.55rem;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--color-accent);
}

/* sí / no list (mentoria) */
.fit-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4rem);
  margin-top:2rem;
}
.fit-col .fit-label{
  font-family:var(--display); font-style:normal; font-size:1.3rem; letter-spacing:.08em; text-transform:uppercase; font-weight:800;
  color:var(--color-accent); display:block; margin-bottom:1.2rem;
}
.fit-col ul{ list-style:none; margin:0; padding:0; }
.fit-col li{
  padding:1rem 0;
  border-top:1px solid rgba(var(--color-onyx-rgb),.15);
  font-size:1.02rem;
  color:rgba(var(--color-onyx-rgb),.7);
}
.fit-col li:last-child{ border-bottom:1px solid rgba(var(--color-onyx-rgb),.15); }
@media (max-width:700px){ .fit-grid{ grid-template-columns:1fr; gap:2.5rem; } }

/* ==========================================================================
   Los dos caminos
   ========================================================================== */
.paths{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,5vw,3.5rem);
  margin-top:clamp(2.5rem,5vw,4rem);
}
.path{ display:flex; flex-direction:column; }
.path-photo{ aspect-ratio:5/4; overflow:hidden; margin-bottom:2rem; background:rgba(var(--color-onyx-rgb),.15); }
.path-photo img{ width:100%; height:100%; object-fit:cover; }
.img-top{ object-position:50% 18%; }
.hero-full .hero-photo img.img-top{ object-position:50% 30%; }
.path h3{ margin-bottom:.9rem; }
.path p{ color:rgba(var(--color-onyx-rgb),.7); flex-grow:1; }
.path .btn{ align-self:flex-start; margin-top:1rem; }
@media (max-width:800px){ .paths{ grid-template-columns:1fr; } }

/* ==========================================================================
   Promesa (sí / no) — index
   ========================================================================== */
.promesa{ max-width:60em; }
.promesa p{ font-size:1.1rem; }
.promesa .no{ color:rgba(var(--color-onyx-rgb),.45); }
.promesa .si{ color:var(--color-text); font-weight:500; }
.promesa p.promesa-close{
  max-width:100%;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.3rem,2.2vw,1.7rem);
  color:var(--color-text);
  font-weight:600;
  margin-top:clamp(2.5rem,6vw,4.5rem);
  line-height:1.45;
}

/* ==========================================================================
   Testimonios
   ========================================================================== */
.testi-section .wrap{ max-width:1400px; }
.testi-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,5vw,4rem) clamp(2.5rem,5vw,4rem);
  margin-top:clamp(2rem,4vw,3rem);
}
.testi{
  display:flex;
  gap:1.2rem;
  align-items:flex-start;
  border-top:1px solid rgba(var(--color-onyx-rgb),.15);
  padding-top:1.6rem;
}
.bg-navy .testi{ border-top-color:rgba(var(--color-white-rgb),.2); }
.testi-photo{
  flex:0 0 auto;
  width:84px; height:84px;
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(var(--color-coral-rgb),.5);
  background:rgba(var(--color-onyx-rgb),.08);
}
.testi-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.testi-content{ flex:1 1 auto; min-width:0; }
.testi blockquote{
  margin:0 0 1.2rem;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.1rem,1.7vw,1.35rem);
  line-height:1.5;
}
.testi cite{
  display:block;
  font-style:normal;
  font-family:var(--sans);
  font-size:.85rem;
  letter-spacing:.03em;
  color:rgba(var(--color-onyx-rgb),.45);
}
.bg-navy .testi cite{ color:rgba(var(--color-snow-rgb),.7); }
.testi cite .role{ display:block; opacity:.75; }
.testi-ig{
  display:inline-block;
  margin-top:.35rem;
  color:var(--color-accent);
  text-decoration:none;
  font-weight:600;
}
.testi-ig:hover{ text-decoration:underline; }
@media (max-width:700px){ .testi-grid{ grid-template-columns:1fr; } }

.testi-grid-single{
  grid-template-columns:1fr;
  max-width:700px;
  margin-left:auto;
  margin-right:auto;
}
.testi-grid-single .testi{
  flex-direction:column;
  align-items:center;
  text-align:center;
  border-top:none;
  padding-top:0;
}
.testi-grid-single .testi blockquote{
  font-size:clamp(1.25rem,2vw,1.55rem);
}

/* ==========================================================================
   Carrusel de marcas (servicios)
   ========================================================================== */
.logos-section .wrap{ text-align:center; max-width:820px; }
.logos-section h2{
  font-size:clamp(1.4rem,2.4vw,1.9rem);
  line-height:1.4;
  margin:0;
}
.logos-section h2 .text-accent{ color:var(--color-accent); }
.logo-carousel{
  margin-top:clamp(3rem,6vw,4.5rem);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image:linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.logo-track{
  display:flex;
  align-items:center;
  gap:clamp(3rem,6vw,5.5rem);
  width:max-content;
  animation:logo-scroll 42s linear infinite;
}
.logo-track img{
  flex:0 0 auto;
  height:64px;
  width:auto;
  object-fit:contain;
  opacity:.92;
  transition:opacity .35s ease;
}
.logo-track img:hover{ opacity:1; }
@keyframes logo-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@media (max-width:700px){
  .logo-track{ gap:2.4rem; animation-duration:26s; }
  .logo-track img{ height:46px; }
}
@media (prefers-reduced-motion: reduce){
  .logo-track{ animation:none; }
}

/* ==========================================================================
   Paquetes (mentoria)
   ========================================================================== */
.packages{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin-top:clamp(2.5rem,5vw,4rem);
  border-top:1px solid rgba(var(--color-onyx-rgb),.15);
}
.package{
  padding:2.4rem 2rem;
  border-right:1px solid rgba(var(--color-onyx-rgb),.15);
  display:flex; flex-direction:column;
}
.package:first-child{ padding-left:0; }
.package:last-child{ border-right:none; }
.package .price{
  font-family:var(--serif); font-style:normal; font-weight:600; color:var(--color-accent);
  font-size:2.1rem; letter-spacing:0; margin-bottom:.4rem; display:block;
}
.package h3{ margin-bottom:.9rem; }
.package p{ color:rgba(var(--color-onyx-rgb),.7); flex-grow:1; }
.package .btn{ margin-top:1.4rem; align-self:flex-start; }
@media (max-width:900px){
  .packages{ grid-template-columns:1fr; border-top:none; }
  .package{ border-right:none; border-top:1px solid rgba(var(--color-onyx-rgb),.15); padding:2.4rem 0; }
  .package:first-child{ padding-left:0; }
}
.package-note{ margin-top:2.5rem; font-size:1rem; color:rgba(var(--color-onyx-rgb),.7); }

/* ==========================================================================
   Servicios — categorías
   ========================================================================== */
.positioning{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.3rem,2.6vw,1.85rem);
  max-width:38em;
  margin:0 0 clamp(2.5rem,5vw,4rem);
  line-height:1.45;
}
.service-cats{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(2.2rem,5vw,3.5rem);
}
.service-cat{ border-top:1px solid rgba(var(--color-onyx-rgb),.15); padding-top:1.4rem; }
.service-cat h3{ margin-bottom:1rem; }
.service-cat ul{ list-style:none; margin:0; padding:0; color:rgba(var(--color-onyx-rgb),.7); }
.service-cat li{ padding:.5rem 0; border-top:1px solid rgba(var(--color-onyx-rgb),.15); }
.service-cat li:first-child{ border-top:none; }
@media (max-width:760px){ .service-cats{ grid-template-columns:1fr; } }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-list{ margin-top:2.5rem; max-width:52em; }
.faq-item{ border-top:1px solid rgba(var(--color-onyx-rgb),.15); padding:1.8rem 0; }
.faq-list .faq-item:last-child{ border-bottom:1px solid rgba(var(--color-onyx-rgb),.15); }
.faq-item h3{ font-size:1.15rem; margin-bottom:.6rem; }
.faq-item p{ color:rgba(var(--color-onyx-rgb),.7); margin-bottom:0; }

/* ==========================================================================
   CTA final band
   ========================================================================== */
.cta-final{ text-align:center; }
.cta-final .wrap{ max-width:760px; }
.cta-final h2{ margin-bottom:0; }
.cta-final.cta-wide .wrap{ max-width:1100px; }
.cta-final.cta-wide h2{ font-size:clamp(1.4rem, 2.2vw, 1.9rem); line-height:1.5; }

/* ==========================================================================
   Newsletter (placeholder, per config point 9)
   ========================================================================== */
.newsletter{
  display:flex; gap:.8rem; flex-wrap:wrap; margin-top:2rem; max-width:32em;
}
.newsletter input[type="email"]{
  flex:1; min-width:200px;
  padding:1em 1.2em;
  border:1px solid rgba(var(--color-onyx-rgb),.15);
  background:var(--color-white);
  font-family:var(--sans); font-size:.95rem; color:var(--color-text);
}
.bg-navy .newsletter input[type="email"]{
  background:transparent; border-color:rgba(var(--color-white-rgb),.3); color:var(--color-text-on-dark);
}

/* lead magnet placeholder — reserved, not visually activated */
.lead-magnet-slot{ display:none; }

/* ==========================================================================
   Contacto — formulario y datos directos
   ========================================================================== */
.contact-grid{
  display:grid;
  grid-template-columns:1.3fr .9fr;
  gap:clamp(2.5rem,5vw,4.5rem);
  align-items:start;
}
@media (max-width:800px){
  .contact-grid{ grid-template-columns:1fr; gap:3rem; }
}

.contact-form{ display:flex; flex-direction:column; gap:1.5rem; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
@media (max-width:600px){
  .form-row{ grid-template-columns:1fr; }
}
.form-field{ display:flex; flex-direction:column; gap:.55rem; }
.form-field label{
  font-family:var(--sans);
  font-size:.8rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-weight:600;
  color:rgba(var(--color-onyx-rgb),.75);
}
.form-field input,
.form-field select,
.form-field textarea{
  padding:1em 1.2em;
  border:1px solid rgba(var(--color-onyx-rgb),.15);
  background:var(--color-white);
  font-family:var(--sans);
  font-size:.95rem;
  color:var(--color-text);
  width:100%;
}
.form-field select{ cursor:pointer; }
.form-field textarea{ resize:vertical; min-height:140px; line-height:1.6; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:none;
  border-color:var(--color-accent);
}
.form-consent{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  font-size:.85rem;
  line-height:1.55;
  color:rgba(var(--color-onyx-rgb),.7);
}
.form-consent input[type="checkbox"]{
  margin-top:.25rem;
  width:1.1rem;
  height:1.1rem;
  flex-shrink:0;
  accent-color:var(--color-accent);
}
.form-consent a{ color:var(--color-accent-dim); text-decoration:underline; }
.contact-form .btn{ align-self:flex-start; margin-top:.3rem; }
.contact-form-note{ display:none; }

.contact-info{
  background:var(--color-bg);
  border:1px solid rgba(var(--color-onyx-rgb),.08);
  padding:clamp(2rem,3vw,2.6rem);
}
.contact-info h3{ font-size:1.25rem; margin-bottom:.4rem; }
.contact-info-lede{
  font-size:.92rem;
  color:rgba(var(--color-onyx-rgb),.65);
  margin-bottom:1.6rem;
}
.contact-info-item{
  display:flex;
  flex-direction:column;
  gap:.25rem;
  padding:1rem 0;
  border-top:1px solid rgba(var(--color-onyx-rgb),.1);
}
.contact-info-item:first-of-type{ border-top:none; padding-top:0; }
.contact-info-label{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:rgba(var(--color-onyx-rgb),.5);
}
.contact-info-item a{ font-size:1rem; }
.contact-info-item a:hover{ color:var(--color-accent-dim); }
.contact-info .btn{ margin-top:1.8rem; width:100%; text-align:center; }

/* ==========================================================================
   Quién soy — franja negra (historia personal)
   ========================================================================== */
.historia-quote-section{ text-align:left; }
.historia-quote-title{
  display:block;
  font-family:var(--sans);
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--color-accent);
  margin:0 0 1rem;
}
.historia-quote{
  font-family:var(--sans);
  font-style:normal;
  font-weight:300;
  font-size:clamp(1.05rem,1.6vw,1.25rem);
  line-height:1.75;
  color:var(--color-white);
  text-align:justify;
  margin:0;
}
.historia-firma{
  display:block;
  height:56px;
  width:auto;
  margin:.9rem auto 0;
  transform:translate(calc(-3.5rem - 5cm), -0.3cm);
}

/* ==========================================================================
   Quién soy — Mi Recorrido (línea de tiempo)
   ========================================================================== */
.recorrido-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  margin-bottom:clamp(1.6rem,3.5vw,2.4rem);
}
.recorrido-tag{
  font-family:var(--sans);
  font-size:.76rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--color-accent-dim);
}
.recorrido-tag-right{
  color:rgba(var(--color-onyx-rgb),.4);
}

.recorrido-title{
  max-width:32em;
  margin-bottom:clamp(3rem,6.5vw,5.5rem);
}
.recorrido-title em{
  font-style:italic;
  color:var(--color-accent-dim);
}

.recorrido-track{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:clamp(1.7rem,3.4vw,2.5rem);
}
.recorrido-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.recorrido-photo{
  width:min(100%,168px);
  aspect-ratio:1/1;
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(var(--color-coral-rgb),.5);
  margin-bottom:1.5rem;
}
.recorrido-photo img{ width:100%; height:100%; object-fit:cover; }
.recorrido-etapa{
  display:block;
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:600;
  color:rgba(var(--color-onyx-rgb),.4);
  margin-bottom:.6rem;
}
.recorrido-card-title{
  font-size:1.2rem;
  margin-bottom:.5rem;
}
.recorrido-card-title em{ font-style:italic; color:var(--color-accent-dim); }
.recorrido-subtitle{
  display:block;
  font-family:var(--sans);
  font-size:.74rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--color-accent-dim);
  margin-bottom:.9rem;
}
.recorrido-card p{
  font-size:.92rem;
  color:rgba(var(--color-onyx-rgb),.65);
  margin-bottom:0;
  line-height:1.55;
}

/* Tarjeta con dos roles (La Voz de Galicia + Cadena SER) — tamaños reducidos para no perder la estructura de la cuadrícula */
.recorrido-card-dual .recorrido-card-title{
  font-size:1.08rem;
  margin-bottom:.3rem;
}
.recorrido-card-dual .recorrido-card-title:first-of-type{ margin-top:0; }
.recorrido-card-dual .recorrido-card-title + .recorrido-subtitle{ margin-bottom:.6rem; }
.recorrido-card-dual .recorrido-card-title ~ .recorrido-card-title{ margin-top:.5rem; }
.recorrido-card-dual .recorrido-subtitle{
  font-size:.7rem;
  margin-bottom:.6rem;
}
.recorrido-card-dual p{
  font-size:.87rem;
  line-height:1.48;
  margin-bottom:.6rem;
}
.recorrido-card-dual p:last-child{ margin-bottom:0; }

/* Tarjeta "Hoy" (Maymor) — letra un poco mayor para que no quede corta frente a la tarjeta dual */
.recorrido-card-hoy .recorrido-card-title{ font-size:1.26rem; }
.recorrido-card-hoy .recorrido-subtitle{ font-size:.78rem; }
.recorrido-card-hoy p{ font-size:.93rem; line-height:1.5; }

.recorrido-intro{
  text-align:left;
  max-width:none;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.5rem,3vw,2.1rem);
  color:var(--color-text);
  margin-top:0;
  margin-bottom:clamp(1rem,2.2vw,1.5rem);
}
.recorrido-intro em{ font-style:italic; color:var(--color-accent-dim); }

@media (max-width:1300px){
  .recorrido-track{ grid-template-columns:repeat(3,1fr); gap:2.6rem 1.8rem; }
}
@media (max-width:700px){
  .recorrido-topbar{ flex-direction:column; align-items:flex-start; gap:.5rem; }
  .recorrido-track{
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:1.6rem;
    margin:0 calc(var(--gutter) * -1);
    padding:.2rem var(--gutter) .8rem;
    -webkit-overflow-scrolling:touch;
  }
  .recorrido-card{
    flex:0 0 76%;
    scroll-snap-align:start;
  }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{
  background:var(--color-dark);
  color:rgba(var(--color-snow-rgb),.7);
  padding:clamp(3rem,6vw,4.5rem) 0 2.5rem;
}
.footer-inner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:2rem;
  padding-bottom:2rem;
  border-bottom:1px solid rgba(var(--color-white-rgb),.15);
}
.footer-logo img{ height:58px; }
.footer-links{ display:flex; flex-wrap:wrap; gap:1.8rem; font-size:.9rem; }
.footer-links a:hover{ color:var(--color-accent); }
.footer-icons{ align-items:center; gap:.9rem; }
.footer-icon-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.5rem;
  height:2.5rem;
  border:1px solid rgba(var(--color-white-rgb),.25);
  border-radius:50%;
  transition:border-color .25s ease, background .25s ease;
}
.footer-icon-link svg{
  width:1.05rem;
  height:1.05rem;
  color:rgba(var(--color-snow-rgb),.85);
  transition:color .25s ease;
}
.footer-icon-link:hover{
  border-color:var(--color-accent);
  background:rgba(var(--color-coral-rgb),.14);
}
.footer-icon-link:hover svg{ color:var(--color-accent); }
.footer-bottom{
  padding-top:1.6rem;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem;
  font-size:.78rem; letter-spacing:.03em; color:rgba(var(--color-snow-rgb),.7);
}
.footer-bottom a:hover{ color:var(--color-accent); }
.footer-legal{ display:flex; flex-wrap:wrap; gap:1.4rem; }
@media (max-width:600px){
  .footer-logo img{ height:46px; }
}

/* ==========================================================================
   Páginas legales
   ========================================================================== */
.legal-content{ max-width:780px; margin:0 auto; }
.legal-content h2{ font-size:clamp(1.25rem,2vw,1.5rem); margin-top:2.6rem; }
.legal-content h2:first-of-type{ margin-top:0; }
.legal-content h3{ font-size:1.05rem; margin-top:1.6rem; margin-bottom:.6rem; }
.legal-content p{ color:rgba(var(--color-onyx-rgb),.75); }
.legal-content ul{ padding-left:1.3rem; margin:0 0 1.2em; color:rgba(var(--color-onyx-rgb),.75); }
.legal-content li{ margin-bottom:.5rem; }
.legal-content .legal-updated{
  font-size:.85rem;
  color:rgba(var(--color-onyx-rgb),.5);
  margin-bottom:2.5rem;
}

/* ==========================================================================
   Reveal on scroll — subtle only
   ========================================================================== */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}
