/* ============================================================
   Yasmin Cahuich — Mentora de Vida de Alto Rendimiento
   Sitio estático · yasmincahuich.com
   Estilos globales compartidos por las 6 páginas.
   La fidelidad de diseño vive en los estilos inline de cada
   página (aprobados por la clienta). Aquí van: tokens base,
   keyframes, estados :hover (reemplazan style-hover del handoff),
   navegación responsive (menú hamburguesa) y accesibilidad.
   ============================================================ */

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#F8F4EE;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%}
a{color:inherit;transition:background .25s ease,color .25s ease,border-color .25s ease,opacity .25s ease}

/* ---------- Keyframes (compartidas) ---------- */
@keyframes twinkle{0%,100%{opacity:.15}50%{opacity:1}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes drawPath{to{stroke-dashoffset:0}}
@keyframes pulseDot{0%,100%{box-shadow:0 0 0 0 rgba(233,201,169,.5)}50%{box-shadow:0 0 0 14px rgba(233,201,169,0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes glowPulse{0%,100%{opacity:.45}50%{opacity:.85}}
@keyframes beadGlow{0%,100%{opacity:.5;r:5}50%{opacity:1;r:6.5}}
@keyframes dashMove{to{stroke-dashoffset:-220}}
@keyframes starTwinkle{0%,100%{opacity:.1;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}

/* ---------- Estados :hover (reemplazan style-hover del handoff) ----------
   !important porque el estado base vive en style inline (mayor especificidad). */
.btn-gold:hover{background:linear-gradient(90deg,#BC9155,#D7B378 50%,#BC9155)!important}
.btn-wine:hover{background:#5a1830!important}
.btn-champagne:hover{background:#f2ddc4!important}
.btn-outline-wine:hover{background:#6E1F3A!important;color:#F8F4EE!important}
.btn-ghost-wine:hover{background:rgba(110,31,58,.06)!important}
.btn-outline-gold:hover{background:rgba(233,201,169,.12)!important}
.nav-pill-dark:hover{background:rgba(233,201,169,.12)!important}
.contact-wa:hover{background:rgba(110,31,58,.1)!important}
.contact-card:hover{border-color:#6E1F3A!important;background:rgba(110,31,58,.04)!important}
.link-underline:hover{opacity:.72}

/* ---------- Navegación responsive ---------- */
.hamburger{display:none;flex-direction:column;gap:6px;background:none;border:0;
  cursor:pointer;padding:8px;position:relative;z-index:1002}
.hamburger span{display:block;width:26px;height:2px;border-radius:2px;background:#6E1F3A;
  transition:transform .3s ease,opacity .3s ease}
.hamburger.on-dark span{background:#E9C9A9}
.hamburger.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.hamburger.active.on-dark span,.hamburger.active span{background:#E9C9A9}

.mobile-menu{position:fixed;inset:0;z-index:1001;
  background:radial-gradient(120% 100% at 50% 0%, #6E1F3A 0%, #4E1630 55%, #2E0E1E 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;
  transform:translateX(100%);opacity:0;visibility:hidden;
  transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease,visibility .4s}
.mobile-menu.open{transform:none;opacity:1;visibility:visible}
.mobile-menu a{font-family:'Archivo',sans-serif;font-size:15px;letter-spacing:3px;
  text-transform:uppercase;color:rgba(248,244,238,.9);text-decoration:none;padding:8px 0}
.mobile-menu a.active{color:#E9C9A9;border-bottom:1px solid rgba(233,201,169,.6);padding-bottom:5px}
.mobile-menu .mm-cta{margin-top:12px;padding:15px 34px;background:#E9C9A9;color:#4E1630;
  font-weight:600;border:0}
.mobile-menu .mm-ig{margin-top:14px;font-size:12px;letter-spacing:2px;color:#E9C9A9;opacity:.85}
body.menu-open{overflow:hidden}

/* ---------- Utilidades de layout ---------- */
.helix-wrap{display:flex;justify-content:center}

/* ============================================================
   RESPONSIVE — el pendiente más importante (tráfico de Instagram).
   Los diseños están hechos a ~1300–1440px con estilos inline; aquí
   se colapsan columnas, se reduce el tipo grande y se ajustan los
   bloques decorativos. Se usan selectores de atributo [style*=…]
   con !important para poder sobrescribir el inline sin tocar cada
   nodo, más algunas clases-gancho (.sec, .helix-wrap, etc.).
   ============================================================ */
@media (max-width:820px){
  /* Nav */
  .hamburger{display:flex}
  .nav-links{display:none!important}
  .navbar{padding-left:20px!important;padding-right:20px!important}

  /* Colapsar todas las rejillas multi-columna a una sola */
  [style*="grid-template-columns"]{grid-template-columns:1fr!important}

  /* Padding horizontal de secciones */
  .sec{padding-left:22px!important;padding-right:22px!important}

  /* Escalado del tipo de titulares */
  [style*="font-size:60px"]{font-size:33px!important}
  [style*="font-size:56px"]{font-size:40px!important}
  [style*="font-size:54px"]{font-size:32px!important}
  [style*="font-size:52px"]{font-size:31px!important}
  [style*="font-size:48px"]{font-size:30px!important}
  [style*="font-size:44px"]{font-size:28px!important}
  [style*="font-size:42px"]{font-size:27px!important}
  [style*="font-size:40px"]{font-size:26px!important}
  [style*="font-size:38px"]{font-size:26px!important}
  [style*="font-size:36px"]{font-size:25px!important}
  [style*="font-size:34px"]{font-size:24px!important}
  [style*="font-size:27px"]{font-size:22px!important}

  /* Paneles de imagen de alto fijo → más bajos en móvil */
  [style*="min-height:640px"]{min-height:60vh!important}
  [style*="min-height:560px"]{min-height:54vh!important}
  [style*="min-height:540px"]{min-height:52vh!important}

  /* Bloques decorativos circulares (se mantienen cuadrados).
     El ";" inicial evita capturar "max-width:" (que comparte el número). */
  [style*=";width:480px"]{width:290px!important;height:290px!important}
  [style*=";width:460px"]{width:290px!important;height:290px!important}
  [style*=";width:440px"]{width:280px!important;height:280px!important}
  [style*=";width:420px"]{width:280px!important;height:280px!important}
  [style*=";width:360px"]{width:236px!important;height:236px!important} /* retrato hero */
  [style*=";width:340px"]{width:250px!important}                        /* retrato arco / glow */
  [style*=";width:310px"]{max-width:82vw!important}
  [style*="height:520px"]{height:320px!important}

  /* Logos que empiezan la cadena de estilo con width: (hero Expansión, Servicios) */
  [style^="width:380px"]{width:74vw!important;max-width:300px!important}
  [style^="width:300px"]{max-width:88vw!important}

  /* Doble hélice (Inicio): se escala el bloque completo para
     conservar la alineación interna de orbe/etiquetas/svg */
  .helix-wrap{transform:scale(.58);transform-origin:top center;margin:-28px 0 -278px}

  /* Marquesina un poco más compacta */
  .marquee-track span{font-size:15px!important}

  /* Footer apilado */
  .site-footer{flex-direction:column!important;text-align:center;gap:22px!important}
  .site-footer .foot-links{flex-wrap:wrap;justify-content:center;gap:14px 20px!important}
}

@media (max-width:460px){
  .sec{padding-left:18px!important;padding-right:18px!important}
  [style*="font-size:60px"]{font-size:29px!important}
  [style*="font-size:54px"]{font-size:29px!important}
  [style*="font-size:52px"]{font-size:29px!important}
  [style*="font-size:48px"]{font-size:28px!important}
  .helix-wrap{transform:scale(.5);margin:-32px 0 -300px}
}

/* ---------- Accesibilidad: prefers-reduced-motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  path[style*="drawPath"]{stroke-dashoffset:0!important} /* hélice queda dibujada */
}

/* Foco visible para navegación por teclado */
a:focus-visible,button:focus-visible{outline:2px solid #E9C9A9;outline-offset:3px}
