/* ============================================================
   EINERGYM — Sistema de diseño
   Negro / naranja / azul marino / gris (+ rosa en Ladies)
   ============================================================ */

:root{
  --ink:      #0D1117;
  --ink-soft: #141C26;
  --ink-card: #1A242F;
  --navy:     #1B2A4A;
  --line:     rgba(255,255,255,.09);
  --line-2:   rgba(255,255,255,.17);

  --orange:   #E9642B;
  --orange-2: #FF7A33;
  --gold:     #E0A94A;
  --blue:     #3E5CC0;
  --pink:     #F06292;

  --accent:   var(--orange);   /* se cambia a rosa en Ladies */
  --accent-2: var(--orange-2);

  --text:     #ECE9E3;
  --muted:    #98A2AE;
  --muted-2:  #6C7783;
  --gray:     #8A929B;

  --wrap: 1200px;
  --r: 18px;

  --f-display: "Archivo", system-ui, sans-serif;
  --f-body: "Inter", system-ui, sans-serif;
  --f-mono: "Space Mono", ui-monospace, monospace;
}

/* Variante Ladies */
.theme-ladies{ --accent:var(--pink); --accent-2:#FF80AB }

*{ box-sizing:border-box; margin:0; padding:0 }
html{ scroll-behavior:smooth }
body{
  background:var(--ink); color:var(--text);
  font-family:var(--f-body); line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a{ color:inherit; text-decoration:none }
img{ max-width:100% }
::selection{ background:var(--accent); color:#fff }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px }

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

.eyebrow{
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--accent);
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent) }
h1,h2,h3,h4{ font-family:var(--f-display); font-weight:900; line-height:.98; letter-spacing:-.02em }

/* ---------- Media placeholder (mientras no hay fotos) ---------- */
.ph{
  position:relative; overflow:hidden; background:
    linear-gradient(135deg, rgba(233,100,43,.25), rgba(27,42,74,.5) 45%, rgba(62,92,192,.25));
  display:grid; place-items:center;
}
.ph::after{
  content:attr(data-label); position:absolute; inset:auto 0 12px 0; text-align:center;
  font-family:var(--f-mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.ph img, .ph video{ width:100%; height:100%; object-fit:cover; display:block; position:relative; z-index:2 }
.ph.has-media::after{ display:none }

/* ============================================================ NAV */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:linear-gradient(180deg, rgba(13,17,23,.75), transparent);
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px; border-bottom:1px solid transparent;
  transition:background .3s, border-color .3s, padding .3s;
}
.nav.scrolled{ background:rgba(13,17,23,.88); backdrop-filter:blur(14px); border-color:var(--line); padding:12px 24px }
.nav__logo{ display:flex; align-items:center; gap:10px; font-family:var(--f-display); font-weight:900; font-size:1.15rem }
.nav__logo b{ color:var(--accent) }
.nav__logo img{ height:30px; width:auto }
.nav__links{ display:flex; align-items:center; gap:28px }
.nav__links a{ font-size:.9rem; color:var(--muted); font-weight:500; transition:color .2s }
.nav__links a:hover{ color:var(--text) }
.nav__cta{
  font-family:var(--f-mono); font-size:.76rem; letter-spacing:.05em; text-transform:uppercase;
  background:var(--accent); color:#fff !important; padding:11px 20px; border-radius:100px; font-weight:700;
  transition:transform .15s, background .2s;
}
.nav__cta:hover{ background:var(--accent-2); transform:translateY(-2px) }
.nav__burger{ display:none; background:none; border:0; color:var(--text); font-size:1.7rem; cursor:pointer; line-height:1 }

/* ============================================================ BOTONES */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--f-mono); font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; font-weight:700;
  padding:15px 26px; border-radius:100px; cursor:pointer; border:1px solid transparent;
  transition:transform .15s, background .2s, border-color .2s, color .2s;
}
.btn--primary{ background:var(--accent); color:#fff }
.btn--primary:hover{ background:var(--accent-2); transform:translateY(-2px) }
.btn--ghost{ background:transparent; border-color:var(--line-2); color:var(--text) }
.btn--ghost:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px) }
.btn--wa{ background:#25D366; color:#062b14 }
.btn--wa:hover{ background:#2AE874; transform:translateY(-2px) }

/* ============================================================ HERO */
.hero{ position:relative; min-height:100vh; display:flex; align-items:center; padding:120px 0 80px; overflow:hidden }
.hero__media{ position:absolute; inset:0; z-index:0 }
.hero__media video, .hero__media img{ width:100%; height:100%; object-fit:cover }
.hero__media::before{
  content:""; position:absolute; inset:0;
  z-index:5;
  background:
    linear-gradient(180deg, rgba(13,17,23,.92) 0%, rgba(13,17,23,.62) 22%, rgba(13,17,23,.78) 60%, rgba(13,17,23,.97) 100%),
    linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.6) 55%, rgba(13,17,23,.35) 100%);
}
.hero__bg{ position:absolute; inset:0; z-index:1; pointer-events:none }
.hero__media{ z-index:0 }
.hero .blob{ opacity:.28 }
.blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; will-change:transform }
.blob--o{ width:52vw; height:52vw; background:radial-gradient(circle,var(--accent),transparent 70%); top:-14vw; right:-10vw; animation:float1 18s ease-in-out infinite }
.blob--b{ width:46vw; height:46vw; background:radial-gradient(circle,var(--blue),transparent 70%); bottom:-16vw; left:-8vw; animation:float2 22s ease-in-out infinite }
.blob--g{ width:34vw; height:34vw; background:radial-gradient(circle,var(--gold),transparent 70%); top:34%; left:36%; opacity:.3; animation:float3 26s ease-in-out infinite }
@keyframes float1{ 50%{ transform:translate(-4vw,5vw) scale(1.08) } }
@keyframes float2{ 50%{ transform:translate(5vw,-4vw) scale(1.1) } }
@keyframes float3{ 50%{ transform:translate(-6vw,-3vw) scale(1.14) } }
.hero .wrap{ position:relative; z-index:10 }

.hero h1{ font-size:clamp(3.2rem, 10.5vw, 8.5rem); text-transform:uppercase; letter-spacing:-.03em; margin-top:22px }
.hero h1 .word{ display:inline-block; opacity:0; transform:translateY(30px); animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards }
.hero h1 .word:nth-child(1){ animation-delay:.05s }
.hero h1 .word:nth-child(2){ animation-delay:.20s; color:var(--accent) }
.hero h1 .word:nth-child(3){ animation-delay:.35s }
.hero h1 .dot{ color:var(--accent) }
@keyframes rise{ to{ opacity:1; transform:none } }
.hero__sub{ margin-top:24px; max-width:540px; font-size:1.08rem; color:var(--muted); opacity:0; animation:rise .7s .5s forwards }
.hero__actions{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:rise .7s .6s forwards }
.hero__stats{ margin-top:54px; display:flex; gap:44px; flex-wrap:wrap; opacity:0; animation:rise .7s .75s forwards }
.stat b{ display:block; font-family:var(--f-display); font-weight:900; font-size:2.3rem; line-height:1 }
.stat span{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted) }

/* ============================================================ TICKER FRASES */
.ticker{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:linear-gradient(90deg, rgba(233,100,43,.06), transparent 40%, rgba(62,92,192,.06));
  padding:38px 0; overflow:hidden;
}
.ticker__inner{ display:flex; align-items:center; gap:24px }
.ticker__eq{ display:flex; align-items:flex-end; gap:4px; height:32px; flex:0 0 auto }
.ticker__eq i{ width:5px; background:var(--accent); border-radius:3px; animation:eq 1.1s ease-in-out infinite }
.ticker__eq i:nth-child(2){ animation-delay:.15s; background:var(--gold) }
.ticker__eq i:nth-child(3){ animation-delay:.3s }
.ticker__eq i:nth-child(4){ animation-delay:.45s; background:var(--gold) }
.ticker__eq i:nth-child(5){ animation-delay:.6s }
@keyframes eq{ 0%,100%{ height:9px } 50%{ height:32px } }
.ticker__phrase{
  font-family:var(--f-display); font-weight:800; font-style:italic;
  font-size:clamp(1.1rem, 3vw, 1.95rem); line-height:1.15; transition:opacity .5s, transform .5s;
}
.ticker__phrase.swap{ opacity:0; transform:translateY(8px) }
.ticker__tag{ flex:0 0 auto; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-2) }

/* ============================================================ SECCIONES */
.section{ padding:105px 0 }
.section--soft{ background:var(--ink-soft) }
.section__head{ max-width:760px; margin-bottom:52px }
.section__head--center{ margin-inline:auto; text-align:center }
.section__head--center .eyebrow{ justify-content:center }
.section__head h2{ font-size:clamp(2.1rem,5.5vw,3.9rem); text-transform:uppercase; margin-top:16px }
.section__head p{ margin-top:16px; color:var(--muted); font-size:1.05rem; max-width:620px }
.section__head--center p{ margin-inline:auto }
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s, transform .7s }
.reveal.in{ opacity:1; transform:none }

/* Manifiesto */
.manifesto{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center }
.manifesto__text p{ color:var(--muted); font-size:1.05rem; margin-top:16px }
.manifesto__text .lead{ color:var(--text); font-size:1.3rem; font-family:var(--f-display); font-weight:600; line-height:1.3 }
.manifesto__img{ border-radius:var(--r); overflow:hidden; border:1px solid var(--line); aspect-ratio:4/3 }
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px }
.pillar{ border:1px solid var(--line); border-radius:var(--r); padding:30px 26px; background:var(--ink-card); transition:border-color .25s, transform .25s }
.pillar:hover{ border-color:var(--accent); transform:translateY(-4px) }
.pillar__n{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.2em; color:var(--accent) }
.pillar h3{ font-size:1.45rem; text-transform:uppercase; margin:13px 0 10px }
.pillar p{ color:var(--muted); font-size:.97rem }

/* Galería general */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px }
.gallery .ph{ border-radius:14px; aspect-ratio:3/4; border:1px solid var(--line) }
.gallery .ph:nth-child(1),.gallery .ph:nth-child(4){ aspect-ratio:3/4 }

/* ============================================================ SUCURSALES (cards) */
.branches{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px }
.branch-card{
  position:relative; display:block; border:1px solid var(--line); border-radius:var(--r);
  background:var(--ink-card); overflow:hidden; transition:transform .3s, border-color .3s;
}
.branch-card:hover{ transform:translateY(-6px); border-color:var(--line-2) }
.branch-card__media{ aspect-ratio:16/9; border-bottom:1px solid var(--line) }
.branch-card__body{ padding:28px 30px 32px }
.branch-card::after{
  content:""; position:absolute; inset:auto 0 0 0; height:3px;
  background:linear-gradient(90deg,var(--accent),var(--gold)); transform:scaleX(0); transform-origin:left; transition:transform .35s;
}
.branch-card:hover::after{ transform:scaleX(1) }
.branch-card--ladies::after{ background:linear-gradient(90deg,var(--pink),#FFB2C9) }
.branch-card__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px }
.branch-card__num{ font-family:var(--f-mono); font-size:.72rem; letter-spacing:.14em; color:var(--muted-2) }
.tag{
  font-family:var(--f-mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  padding:5px 11px; border-radius:100px; border:1px solid var(--line-2); color:var(--muted); white-space:nowrap;
}
.tag--pink{ color:#F8AFC8; border-color:rgba(240,98,146,.45) }
.branch-card h3{ font-size:1.95rem; text-transform:uppercase; margin:20px 0 6px }
.branch-card__zone{ color:var(--muted); font-size:.94rem; display:flex; align-items:center; gap:8px }
.branch-card__go{
  margin-top:20px; display:inline-flex; align-items:center; gap:9px;
  font-family:var(--f-mono); font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); font-weight:700;
}
.branch-card--ladies .branch-card__go{ color:var(--pink) }
.branch-card__go svg{ transition:transform .25s }
.branch-card:hover .branch-card__go svg{ transform:translateX(5px) }

/* ============================================================ PROMOS */
.promos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px }
.promo{
  position:relative; border-radius:var(--r); padding:34px 30px; overflow:hidden;
  background:linear-gradient(135deg, rgba(233,100,43,.16), rgba(27,42,74,.55));
  border:1px solid rgba(233,100,43,.35);
}
.promo__ribbon{ font-family:var(--f-mono); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold) }
.promo h3{ font-size:2rem; text-transform:uppercase; margin:12px 0 4px }
.promo__price{ font-family:var(--f-display); font-weight:900; font-size:3rem; color:var(--accent); line-height:1 }
.promo p{ color:var(--muted); font-size:.94rem; margin-top:10px }

/* ============================================================ PRECIOS */
.insc-banner{
  font-family:var(--f-mono); font-size:.82rem; font-weight:700; letter-spacing:.04em;
  color:var(--gold); background:rgba(224,169,74,.1); border:1px solid rgba(224,169,74,.35);
  border-radius:10px; padding:12px 16px; margin-bottom:18px; text-align:center;
}
.plans{ list-style:none; display:flex; flex-direction:column; gap:12px }
.plan{ display:flex; justify-content:space-between; align-items:center; padding:16px 18px; border:1px solid var(--line); border-radius:12px; transition:border-color .2s }
.plan:hover{ border-color:var(--line-2) }
.plan.best{ border-color:var(--accent); background:rgba(233,100,43,.08); position:relative }
.theme-ladies .plan.best{ background:rgba(240,98,146,.1) }
.plan__badge{ position:absolute; top:-9px; left:18px; font-family:var(--f-mono); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; background:var(--accent); color:#fff; padding:3px 9px; border-radius:100px }
.plan__name{ font-weight:600 }
.plan__period{ display:block; font-size:.76rem; color:var(--muted-2) }
.plan__price{ font-family:var(--f-display); font-weight:900; font-size:1.65rem }

/* Precios en landing (grid) */
.price-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-top:10px }
.price-card{ border:1px solid var(--line); border-radius:var(--r); background:var(--ink-card); padding:28px 24px; text-align:center; position:relative; transition:transform .25s, border-color .25s }
.price-card:hover{ transform:translateY(-5px); border-color:var(--accent) }
.price-card.best{ border-color:var(--accent); background:rgba(233,100,43,.07) }
.price-card h3{ font-size:1.15rem; text-transform:uppercase; color:var(--muted); font-weight:600; font-family:var(--f-body); letter-spacing:0 }
.price-card b{ display:block; font-family:var(--f-display); font-weight:900; font-size:2.8rem; margin:8px 0 2px }
.price-card span{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2) }

/* ============================================================ CONVENIOS */
.convenio{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:50px; align-items:center;
  border:1px solid var(--line); border-radius:24px; padding:48px 44px;
  background:linear-gradient(135deg, rgba(27,42,74,.6), rgba(26,36,47,.6));
}
.convenio__big{ font-family:var(--f-display); font-weight:900; font-size:clamp(4rem,10vw,7rem); line-height:.9; color:var(--accent) }
.convenio h2{ font-size:clamp(1.9rem,4.5vw,3rem); text-transform:uppercase }
.convenio p{ color:var(--muted); margin:16px 0 26px; font-size:1.04rem }

/* ============================================================ REDES */
.social-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px }
.social-card{
  position:relative; display:flex; flex-direction:column; gap:12px;
  padding:30px 26px; border:1px solid var(--line); border-radius:var(--r);
  background:var(--ink-card); overflow:hidden; transition:transform .28s, border-color .28s;
}
.social-card:hover{ transform:translateY(-6px); border-color:var(--brand,var(--line-2)) }
.social-card__ic{ width:50px; height:50px; border-radius:14px; display:grid; place-items:center; background:var(--ink-soft); border:1px solid var(--line); color:var(--brand,var(--text)) }
.social-card__ic svg{ width:25px; height:25px; fill:currentColor }
.social-card__name{ font-family:var(--f-display); font-weight:900; font-size:1.35rem; text-transform:uppercase }
.social-card__meta{ font-family:var(--f-mono); font-size:.76rem; color:var(--muted) }
.social-card__go{ margin-top:auto; padding-top:8px; font-family:var(--f-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--brand,var(--accent)); font-weight:700 }
.social-card--wa{ --brand:#25D366 }
.social-card--ig{ --brand:#E1306C }
.social-card--fb{ --brand:#1877F2 }

/* ============================================================ CTA / FORM */
.cta-band{ position:relative; padding:100px 0; text-align:center; overflow:hidden; background:var(--ink-soft) }
.cta-band .blob{ opacity:.35 }
.cta-band .wrap{ position:relative; z-index:2 }
.cta-band h2{ font-size:clamp(2.3rem,6vw,4.4rem); text-transform:uppercase; margin-top:14px }
.cta-band p{ color:var(--muted); margin:18px auto 32px; max-width:500px; font-size:1.06rem }
.btn-wa-big{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--f-display); font-weight:900; font-size:1.1rem; text-transform:uppercase;
  background:#25D366; color:#062b14; padding:20px 34px; border-radius:100px;
  box-shadow:0 14px 40px rgba(37,211,102,.3); transition:transform .18s, box-shadow .2s;
}
.btn-wa-big:hover{ transform:translateY(-3px); box-shadow:0 20px 50px rgba(37,211,102,.45) }
.btn-wa-big svg{ width:29px; height:29px; fill:currentColor }
.btn-wa-big .pulse{ display:inline-grid; place-items:center; position:relative }
.btn-wa-big .pulse::after{ content:""; position:absolute; inset:-8px; border-radius:50%; border:2px solid rgba(6,43,20,.4); animation:pulse 1.8s ease-out infinite }
@keyframes pulse{ 0%{ transform:scale(.7); opacity:.8 } 100%{ transform:scale(1.4); opacity:0 } }

.lead-form{ margin:36px auto 0; max-width:560px; display:flex; gap:12px; flex-wrap:wrap; justify-content:center }
.lead-form input, .lead-form select{
  flex:1 1 200px; background:var(--ink-card); border:1px solid var(--line-2); color:var(--text);
  padding:15px 18px; border-radius:100px; font-family:var(--f-body); font-size:.95rem;
}
.lead-form input::placeholder{ color:var(--muted-2) }
.lead-form select{ cursor:pointer }
.lead-form option{ background:var(--ink-card); color:var(--text) }
.cta-note{ margin-top:20px; font-family:var(--f-mono); font-size:.8rem; color:var(--muted) }

/* ============================================================ FOOTER */
.footer{ border-top:1px solid var(--line); padding:60px 0 36px }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px }
.footer__brand .nav__logo{ font-size:1.35rem; margin-bottom:14px }
.footer__brand p{ color:var(--muted); font-size:.9rem; max-width:270px }
.footer h4{ font-family:var(--f-mono); font-weight:700; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-2); margin-bottom:16px }
.footer ul{ list-style:none; display:flex; flex-direction:column; gap:10px }
.footer ul a, .footer ul li{ color:var(--muted); font-size:.93rem; transition:color .2s }
.footer ul a:hover{ color:var(--accent) }
.footer__bottom{ margin-top:46px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap }
.footer__bottom span{ font-family:var(--f-mono); font-size:.72rem; color:var(--muted-2) }
.footer__bottom a{ color:var(--accent) }

/* WhatsApp flotante */
.wa{ position:fixed; right:20px; bottom:20px; z-index:90; width:56px; height:56px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 10px 30px rgba(37,211,102,.4); transition:transform .2s }
.wa:hover{ transform:scale(1.08) }
.wa svg{ width:29px; height:29px; fill:#fff }

/* ============================================================ PÁGINA DE SUCURSAL */
.b-hero{ position:relative; padding:150px 0 60px; overflow:hidden; min-height:70vh; display:flex; align-items:flex-end }
.b-hero__media{ position:absolute; inset:0; z-index:0 }
.b-hero__media img, .b-hero__media video{ width:100%; height:100%; object-fit:cover }
.b-hero__media::before{
  content:""; position:absolute; inset:0;
  z-index:5;
  background:
    linear-gradient(180deg, rgba(13,17,23,.9) 0%, rgba(13,17,23,.6) 30%, rgba(13,17,23,.88) 78%, var(--ink) 100%),
    linear-gradient(90deg, rgba(13,17,23,.9) 0%, rgba(13,17,23,.45) 60%, rgba(13,17,23,.25) 100%);
}
.b-hero .wrap{ position:relative; z-index:10 }
.b-back{ font-family:var(--f-mono); font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); display:inline-flex; gap:8px; align-items:center; margin-bottom:26px }
.b-back:hover{ color:var(--accent) }
.b-hero__tags{ display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap }
.b-hero h1{ font-size:clamp(2.6rem,7.5vw,5.4rem); text-transform:uppercase }
.b-hero__addr{ margin-top:16px; color:var(--muted); font-size:1.05rem; display:flex; align-items:flex-start; gap:10px }
.b-hero__desc{ margin-top:16px; max-width:600px; color:var(--muted); font-size:1.04rem }
.b-hero__actions{ margin-top:30px; display:flex; gap:12px; flex-wrap:wrap }

.b-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; padding:56px 0 30px }
.card{ border:1px solid var(--line); border-radius:var(--r); background:var(--ink-card); padding:32px 30px }
.card h3{ font-size:1.4rem; text-transform:uppercase; display:flex; align-items:center; gap:12px; margin-bottom:20px }
.card h3 .ic{ color:var(--accent); display:grid; place-items:center }

.hours{ list-style:none }
.hours li{ display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--line) }
.hours li:last-child{ border-bottom:0 }
.hours .d{ color:var(--muted) }
.hours .h{ font-family:var(--f-mono); font-size:.92rem; text-align:right }
.hours .h.closed{ color:var(--muted-2) }

.chips{ display:flex; flex-wrap:wrap; gap:10px }
.chip{ font-size:.9rem; background:var(--ink-soft); border:1px solid var(--line); padding:9px 15px; border-radius:100px }
.chip--svc{ border-color:rgba(233,100,43,.35); color:#F0B89A }
.theme-ladies .chip--svc{ border-color:rgba(240,98,146,.4); color:#FBC2D5 }

.map-card{ padding:0; overflow:hidden; grid-column:1 / -1 }
.map-card__head{ padding:26px 30px; display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap }
.map-card__head h3{ margin:0 }
.map-card iframe{ display:block; width:100%; height:420px; border:0 }

/* Galería de sucursal */
.b-gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; grid-column:1 / -1 }
.b-gallery .ph{ border-radius:14px; aspect-ratio:4/3; border:1px solid var(--line) }

/* Reels verticales (videos) */
.reels-card{ grid-column:1 / -1 }
.reels{ display:flex; gap:16px; flex-wrap:wrap; justify-content:center }
.reel{
  position:relative; width:250px; aspect-ratio:9/16; border-radius:18px; overflow:hidden;
  border:1px solid var(--line); background:var(--ink-soft); flex:0 0 auto;
}
.reel video{ width:100%; height:100%; object-fit:cover; display:block }

/* Otras sucursales */
.others{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px }
.other{ border:1px solid var(--line); border-radius:14px; padding:24px 22px; background:var(--ink-card); transition:border-color .25s, transform .25s }
.other:hover{ border-color:var(--accent); transform:translateY(-4px) }
.other b{ display:block; font-family:var(--f-display); font-size:1.3rem; text-transform:uppercase; margin-bottom:4px }
.other span{ color:var(--muted); font-size:.88rem }

/* ============================================================ RESPONSIVE */
@media (max-width:960px){
  .manifesto{ grid-template-columns:1fr; gap:32px }
  .pillars{ grid-template-columns:1fr }
  .branches{ grid-template-columns:1fr }
  .b-grid{ grid-template-columns:1fr }
  .footer__grid{ grid-template-columns:1fr 1fr }
  .social-grid{ grid-template-columns:1fr }
  .convenio{ grid-template-columns:1fr; gap:28px; padding:36px 28px; text-align:center }
  .gallery{ grid-template-columns:repeat(2,1fr) }
  .others{ grid-template-columns:1fr }
}
@media (max-width:640px){
  .reel{ width:100%; max-width:320px }
  .nav__links{
    position:fixed; inset:62px 0 auto 0; flex-direction:column; gap:0; align-items:stretch;
    background:rgba(13,17,23,.98); backdrop-filter:blur(14px); border-bottom:1px solid var(--line);
    padding:8px 0; transform:translateY(-150%); transition:transform .35s;
  }
  .nav__links.open{ transform:none }
  .nav__links a{ padding:16px 24px; border-bottom:1px solid var(--line) }
  .nav__links .nav__cta{ margin:14px 24px; text-align:center }
  .nav__burger{ display:block }
  .hero__stats{ gap:26px }
  .stat b{ font-size:1.8rem }
  .ticker__inner{ flex-wrap:wrap; gap:14px }
  .footer__grid{ grid-template-columns:1fr }
  .b-hero__actions .btn{ flex:1 }
  .lead-form input, .lead-form select{ flex:1 1 100% }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important }
  .reveal{ opacity:1; transform:none }
  .hero h1 .word, .hero__sub, .hero__actions, .hero__stats{ opacity:1 }
}
