/* ============================================================
   EP FIESTA — Tent Rental El Paso
   Mobile-first. Diseñado a 390px primero.
   ============================================================ */

:root{
  /* ── Color ── */
  --ink:            #101820;   /* azul-noche profundo, secciones de peso */
  --ink-soft:       #1A242E;   /* panel dentro de fondo oscuro */
  --canvas:         #F7F5F1;   /* blanco lona, fondo principal */
  --canvas-warm:    #EFEBE4;   /* variación cálida para alternar ritmo */
  --brass:          #C9A227;   /* acento único: CTAs y detalles */
  --brass-deep:     #A8871C;   /* hover del acento */
  --sand:           #8C7B6B;   /* SOLO bordes y filetes (no texto de cuerpo) */
  --sand-line:      #DED7CC;
  --mezquite:       #2E4636;   /* acento secundario de confianza */

  /* Texto: contrastes verificados AA */
  --text-strong:    #101820;   /* 16.1:1 sobre --canvas */
  --text-soft:      #6B5D50;   /* 5.79:1 sobre --canvas  */
  --text-on-dark:   #F7F5F1;   /* 16.1:1 sobre --ink     */
  --text-on-dark-soft:#C3BAAE; /* 9.13:1 sobre --ink     */

  /* ── Tipografía ── */
  --font-display: 'Fraunces', ui-serif, Georgia, 'Times New Roman', serif;
  --font-body:    'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --fs-hero:   clamp(2.55rem, 1.35rem + 5.4vw, 5.25rem);
  --fs-h2:     clamp(1.85rem, 1.15rem + 2.9vw, 3.15rem);
  --fs-h3:     clamp(1.2rem,  1.02rem + 0.7vw, 1.55rem);
  --fs-lead:   clamp(1.06rem, 0.98rem + 0.42vw, 1.3rem);
  --fs-body:   1rem;
  --fs-sm:     0.9rem;
  --fs-xs:     0.8rem;

  /* ── Espaciado ── */
  --space-2xs: 4px;  --space-xs: 8px;  --space-sm: 16px;
  --space-md:  24px; --space-lg: 40px; --space-xl: 64px;
  --space-2xl: 96px;
  --section-y: clamp(56px, 4vw + 40px, 112px);

  --wrap:   1180px;
  --radius: 6px;
  --radius-lg: 12px;

  --shadow-lift: 0 18px 44px -22px rgba(16,24,32,.45);
  --focus:       3px solid var(--brass);

  /* Contenedor del embed de GHL — ajustable en un solo sitio */
  --form-bg:      #FFFFFF;
  --form-fg:      var(--text-strong);
  --form-radius:  var(--radius-lg);
  --form-pad:     clamp(18px, 3vw, 30px);
  --form-max:     520px;
  --form-min-h:   700px;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--canvas);
  color:var(--text-strong);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,picture,video,svg{ display:block; max-width:100%; }
img{ height:auto; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.08; margin:0; letter-spacing:-0.015em; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }

:where(a,button,summary,[tabindex]):focus-visible{
  outline:var(--focus); outline-offset:3px; border-radius:2px;
}
.wrap{ width:min(100% - 2*var(--space-md), var(--wrap)); margin-inline:auto; }
@media (min-width:768px){ .wrap{ width:min(100% - 2*var(--space-lg), var(--wrap)); } }

.measure{ max-width:34em; }        /* ~70 caracteres */
.visually-hidden{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--brass); color:var(--ink); padding:12px 18px; font-weight:600;
}
.skip-link:focus{ left:12px; top:12px; }

.ico{ width:20px; height:20px; flex:none; }

/* ============================================================
   BOTONES  (44x44 mínimo garantizado)
   ============================================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:52px; padding:14px 22px;
  font-family:var(--font-body); font-size:var(--fs-body); font-weight:600;
  letter-spacing:.005em; text-decoration:none; cursor:pointer;
  border:1.5px solid transparent; border-radius:var(--radius);
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .12s ease;
}
.btn:active{ transform:translateY(1px); }
.btn--sm{ min-height:46px; padding:11px 18px; font-size:var(--fs-sm); }

.btn--brass{ background:var(--brass); color:var(--ink); border-color:var(--brass); }
.btn--brass:hover{ background:var(--brass-deep); border-color:var(--brass-deep); }

.btn--outline{ background:transparent; color:var(--text-strong); border-color:var(--sand); }
.btn--outline:hover{ background:var(--ink); color:var(--canvas); border-color:var(--ink); }

.btn--outline-light{ background:transparent; color:var(--canvas); border-color:rgba(247,245,241,.5); }
.btn--outline-light:hover{ background:var(--canvas); color:var(--ink); border-color:var(--canvas); }

.btn--ghost{ background:transparent; color:var(--canvas); border-color:transparent; padding-inline:10px; min-height:44px; }
.btn--ghost:hover{ color:var(--brass); }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:absolute; inset:0 0 auto 0; z-index:40;
  padding-block:var(--space-sm);
  color:var(--canvas);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-sm); }

.wordmark{ display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:4px 2px; text-decoration:none; color:inherit; }
.wordmark__mark{ width:30px; height:21px; color:var(--brass); }
.wordmark__text{ display:flex; flex-direction:column; line-height:1.05; }
.wordmark__name{ font-family:var(--font-display); font-weight:700; font-size:1.12rem; letter-spacing:-0.01em; }
.wordmark__sub{ font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; opacity:.72; }

.header-call span{ display:none; }
@media (min-width:768px){ .header-call span{ display:inline; } }

/* ============================================================
   3.1 HERO
   ============================================================ */
.hero{ position:relative; isolation:isolate; background:var(--ink); }
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:50% 42%; }
.hero__scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to bottom, rgba(16,24,32,.72) 0%, rgba(16,24,32,.28) 16%, rgba(16,24,32,0) 34%),
    linear-gradient(to top, rgba(16,24,32,.95) 0%, rgba(16,24,32,.88) 34%, rgba(16,24,32,.66) 58%, rgba(16,24,32,.34) 82%, rgba(16,24,32,.26) 100%);
}
.hero__inner{
  position:relative; z-index:2;
  min-height:max(600px, 78svh);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-block:calc(var(--space-2xl) + 20px) calc(var(--space-xl) + 26px);
  color:var(--text-on-dark);
}
@media (min-width:900px){
  .hero__inner{ min-height:max(620px, 85svh); padding-bottom:var(--space-2xl); }
}
.hero__title{
  font-size:var(--fs-hero); font-weight:600; line-height:.98;
  letter-spacing:-0.03em; max-width:16ch; text-wrap:balance;
}
.hero__title em{ font-style:italic; color:var(--brass); font-weight:400; }
.hero__sub{
  margin-top:var(--space-md); max-width:44ch;
  font-size:var(--fs-lead); color:var(--text-on-dark-soft);
}
.cta-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:var(--space-lg); }
.cta-row .btn{ flex:1 1 100%; }
@media (min-width:560px){ .cta-row .btn{ flex:0 1 auto; } }
.hero__micro{ margin-top:var(--space-sm); font-size:var(--fs-sm); color:var(--text-on-dark-soft); }

/* Franja de confianza */
.trustbar{
  position:relative; z-index:3;
  background:rgba(16,24,32,.92);
  border-top:1px solid rgba(201,162,39,.3);
  backdrop-filter:saturate(1.1) blur(2px);
  color:var(--text-on-dark);
}
.trustbar__inner{
  display:flex; flex-direction:column; gap:12px;
  padding-block:16px;
}
@media (min-width:900px){
  .trustbar__inner{ flex-direction:row; align-items:center; gap:28px; padding-block:18px; }
}
.trustbar__rating{
  display:inline-flex; align-items:center; gap:9px;
  text-decoration:none; flex:none;
}
.trustbar__rating:hover .trustbar__on{ color:var(--brass); }
.stars{ display:inline-block; color:var(--brass); }
.stars__svg{ width:88px; height:17.6px; }
.stars--lg .stars__svg{ width:132px; height:26.4px; }
.trustbar__score{ font-family:var(--font-display); font-size:1.55rem; font-weight:700; line-height:1; }
.trustbar__on{ font-size:var(--fs-sm); color:var(--text-on-dark-soft); transition:color .2s ease; }
.trustbar__count{ font-size:var(--fs-sm); color:var(--text-on-dark-soft); }
.trustbar__count::before{ content:"· "; }

.trustbar__list{
  display:flex; flex-wrap:wrap; gap:6px 22px;
  font-size:var(--fs-sm); color:var(--text-on-dark-soft);
}
@media (min-width:900px){
  .trustbar__list{ border-left:1px solid rgba(247,245,241,.18); padding-left:28px; }
}
.trustbar__list li{ position:relative; }

/* ============================================================
   3.2 PROBLEMA
   ============================================================ */
.problem{ background:var(--canvas); padding-block:var(--section-y); }
.problem__lead{
  font-size:var(--fs-h2); font-weight:600; line-height:1.06;
  letter-spacing:-0.025em; text-wrap:balance;
}
.problem__body{
  margin-top:var(--space-md);
  font-size:var(--fs-lead); color:var(--text-soft); max-width:38em;
}

/* ============================================================
   ENCABEZADOS DE SECCIÓN
   ============================================================ */
.sec-head{ margin-bottom:var(--space-lg); }
.sec-head h2{ font-size:var(--fs-h2); max-width:20ch; text-wrap:balance; }
.sec-head__sub{ margin-top:var(--space-sm); color:var(--text-soft); font-size:var(--fs-lead); max-width:44ch; }
.sec-head--center{ text-align:center; }
.sec-head--center h2, .sec-head--center .sec-head__sub{ margin-inline:auto; }

/* ============================================================
   3.3 CARPAS  (fondo oscuro)
   ============================================================ */
.tents{ background:var(--ink); color:var(--text-on-dark); padding-block:var(--section-y); }
.tents .sec-head__sub{ color:var(--text-on-dark-soft); }

/* Selector por invitados */
.guestpick{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  padding-bottom:var(--space-lg);
  border-bottom:1px solid rgba(247,245,241,.14);
}
.guestpick__label{
  font-size:var(--fs-xs); letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-on-dark-soft); margin-right:4px;
}
.chip{
  min-height:44px; padding:10px 16px; cursor:pointer;
  background:transparent; color:var(--text-on-dark);
  border:1px solid rgba(247,245,241,.32); border-radius:999px;
  font-size:var(--fs-sm); font-weight:500;
  transition:background-color .2s ease, border-color .2s ease, color .2s ease;
}
.chip:hover{ border-color:var(--brass); color:var(--brass); }
.chip--star{ border-color:var(--brass); color:var(--brass); }
.chip--star:hover{ background:var(--brass); color:var(--ink); }

/* Pop-ups: bloque secundario */
.popups{ padding-block:var(--space-xl) var(--space-lg); }
.popups__title{ font-size:var(--fs-h3); color:var(--text-on-dark); }
.popups__note{
  margin-top:10px; max-width:52ch; font-size:var(--fs-sm);
  color:var(--text-on-dark-soft);
}
.popups__grid{ display:grid; gap:var(--space-md); margin-top:var(--space-md); }
@media (min-width:720px){ .popups__grid{ grid-template-columns:1fr 1fr; gap:var(--space-lg); } }

.popcard{
  display:grid; gap:var(--space-sm);
  grid-template-columns:104px 1fr; align-items:start;
  padding:var(--space-sm) 0;
  border-top:1px solid rgba(247,245,241,.14);
}
@media (min-width:480px){ .popcard{ grid-template-columns:150px 1fr; gap:var(--space-md); } }
.popcard:focus-visible, .feature:focus-visible, .tcard:focus-visible{ outline:var(--focus); outline-offset:8px; }

.popcard__media{ border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3; }
.popcard__media--placeholder{
  background:var(--ink-soft); color:rgba(201,162,39,.55);
  display:grid; place-items:center; border:1px dashed rgba(247,245,241,.18);
}
.popcard__media--placeholder svg{ width:62%; }
.popcard__media img{ width:100%; height:100%; object-fit:cover; }
.popcard__name{ font-size:1.16rem; }
.popcard__meta{ margin-top:6px; font-size:var(--fs-sm); color:var(--text-on-dark-soft); }
.price{ font-family:var(--font-display); font-size:1.3rem; font-weight:700; color:var(--brass); }
.popcard__body .btn{ margin-top:var(--space-sm); }

/* Intro high-peak */
.hp-intro{ padding-top:var(--space-xl); border-top:1px solid rgba(247,245,241,.14); }
.hp-intro__title{ font-size:var(--fs-h3); }
.hp-intro__body{ margin-top:12px; max-width:56ch; color:var(--text-on-dark-soft); }

/* Destacada 20x20 */
.feature{
  margin-top:var(--space-lg);
  background:var(--ink-soft);
  border:1px solid rgba(201,162,39,.42);
  border-radius:var(--radius-lg);
  overflow:hidden;
  display:grid;
}
@media (min-width:900px){ .feature{ grid-template-columns:1.15fr 1fr; align-items:stretch; } }
.feature__media{ position:relative; }
.feature__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:3/2; }
@media (min-width:900px){ .feature__media img{ aspect-ratio:auto; min-height:100%; } }
.feature__tag{
  position:absolute; top:14px; left:14px;
  background:var(--brass); color:var(--ink);
  font-size:var(--fs-xs); font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:7px 13px; border-radius:999px;
}
.feature__body{ padding:clamp(22px,3.4vw,42px); display:flex; flex-direction:column; justify-content:center; }
.feature__name{ font-size:clamp(1.6rem,1.1rem + 1.8vw,2.4rem); }
.feature__meta{ margin-top:10px; color:var(--text-on-dark-soft); }
.feature__meta .price{ font-size:1.75rem; }
.feature__body .btn{ margin-top:var(--space-md); align-self:flex-start; }

/* Grid high-peak restante */
.hp-grid{ display:grid; gap:var(--space-lg); margin-top:var(--space-lg); }
@media (min-width:760px){ .hp-grid{ grid-template-columns:repeat(3,1fr); } }
.tcard img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:var(--radius); }
.tcard__name{ margin-top:var(--space-sm); font-size:1.3rem; }
.tcard__meta{ margin-top:6px; font-size:var(--fs-sm); color:var(--text-on-dark-soft); }
.tcard__meta .price{ font-size:1.05rem; }
.tcard .btn{ margin-top:var(--space-sm); }

/* Listas con palomita */
.ticks{ display:grid; gap:9px; margin-top:14px; }
.ticks li{ position:relative; padding-left:26px; }
.ticks li::before{
  content:""; position:absolute; left:0; top:.52em;
  width:13px; height:7px; border-left:2px solid var(--brass); border-bottom:2px solid var(--brass);
  transform:rotate(-45deg) translateY(-2px);
}
.ticks--sm li{ font-size:var(--fs-sm); }
.ticks--lg li{ font-size:var(--fs-lead); padding-left:32px; }
.ticks--lg li::before{ width:16px; height:9px; }

/* Modularidad */
.modular{
  margin-top:var(--space-xl);
  padding:clamp(22px,3.2vw,40px);
  background:linear-gradient(180deg, rgba(201,162,39,.09), rgba(201,162,39,.03));
  border:1px solid rgba(201,162,39,.3);
  border-radius:var(--radius-lg);
  display:grid; gap:var(--space-lg);
}
@media (min-width:900px){ .modular{ grid-template-columns:1fr 1.1fr; align-items:center; gap:var(--space-xl); } }
.modular__title{ font-size:var(--fs-h3); color:var(--brass); }
.modular__copy p{ margin-top:12px; color:var(--text-on-dark-soft); max-width:40ch; }
.modular__diagram{ color:var(--text-on-dark); }
.modular__diagram svg{ width:100%; height:auto; }

/* ============================================================
   3.4 COMPARATIVA
   ============================================================ */
.compare{ background:var(--canvas-warm); padding-block:var(--section-y); }
.tablewrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.tablewrap:focus-visible{ outline:var(--focus); outline-offset:4px; }
.ctable{ width:100%; border-collapse:collapse; text-align:left; }
.ctable th, .ctable td{ padding:16px 18px; vertical-align:top; border-bottom:1px solid var(--sand-line); }
.ctable thead th{
  font-family:var(--font-body); font-size:var(--fs-xs); font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-soft);
  border-bottom:2px solid var(--ink);
}
.ctable tbody th{ font-family:var(--font-body); font-weight:600; white-space:nowrap; }
.ctable td{ color:var(--text-soft); }
.ctable__hp{ background:rgba(46,70,54,.07); color:var(--mezquite)!important; font-weight:500; }
.ctable thead .ctable__hp{ color:var(--mezquite)!important; border-bottom-color:var(--mezquite); }

/* Móvil: la tabla se vuelve bloques legibles, sin scroll horizontal */
@media (max-width:719px){
  .ctable thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .ctable, .ctable tbody, .ctable tr, .ctable th, .ctable td{ display:block; width:100%; }
  .ctable tr{ padding-block:14px; border-bottom:1px solid var(--sand-line); }
  .ctable th, .ctable td{ border:0; padding:4px 0; }
  .ctable tbody th{ font-size:var(--fs-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--text-soft); }
  .ctable td::before{
    content:attr(data-label) " — "; font-weight:600; color:var(--text-strong);
  }
  .ctable__hp{ background:transparent; }
}
.compare__close{
  margin-top:var(--space-lg); max-width:40em;
  font-family:var(--font-display); font-size:var(--fs-lead); font-style:italic;
  color:var(--mezquite);
}

/* ============================================================
   3.5 QUÉ INCLUYE
   ============================================================ */
.included{ background:var(--canvas); padding-block:var(--section-y); }
.included__h{ font-size:var(--fs-h2); max-width:14ch; }
.included__list{ margin-top:var(--space-lg); }
@media (min-width:760px){
  .included__list{ grid-template-columns:1fr 1fr; column-gap:var(--space-xl); row-gap:14px; }
}

/* ============================================================
   3.6 POR QUÉ EP FIESTA  (fondo oscuro + video)
   ============================================================ */
.why{ background:var(--ink); color:var(--text-on-dark); padding-block:var(--section-y); }
.why__inner{ display:grid; gap:var(--space-xl); }
@media (min-width:1060px){
  .why__inner{ grid-template-columns:minmax(0,320px) 1fr; gap:var(--space-2xl); align-items:start; }
}
.why__h{ font-size:var(--fs-h2); max-width:14ch; }
.why__list{ display:grid; gap:var(--space-lg); margin-top:var(--space-lg); counter-reset:why; }
@media (min-width:640px){ .why__list{ grid-template-columns:1fr 1fr; gap:var(--space-lg) var(--space-xl); } }
.why__list li{ padding-top:16px; border-top:1px solid rgba(201,162,39,.4); }
.why__list h3{ font-size:1.22rem; color:var(--brass); }
.why__list p{ margin-top:9px; color:var(--text-on-dark-soft); font-size:var(--fs-sm); max-width:38ch; }

/* Marco de video vertical */
.vidframe{
  margin:0; position:relative;
  border-radius:var(--radius-lg); overflow:hidden;
  background:var(--ink-soft);
  max-width:320px; width:100%;
  box-shadow:var(--shadow-lift);
}
@media (max-width:1059px){ .vidframe{ margin-inline:auto; } }
.vidframe__media{ position:relative; }
.vidframe__el{ width:100%; height:auto; aspect-ratio:9/16; object-fit:cover; background:var(--ink-soft); }
.vidframe__btn{
  position:absolute; inset:auto 0 0 0;
  display:flex; align-items:center; gap:9px;
  min-height:48px; padding:12px 16px; cursor:pointer;
  background:linear-gradient(to top, rgba(16,24,32,.9), rgba(16,24,32,0));
  color:var(--canvas); border:0; text-align:left;
  font-size:var(--fs-sm); font-weight:600;
}
.vidframe__btn .ico--pause{ display:none; }
.vidframe__btn[aria-pressed="true"] .ico--play{ display:none; }
.vidframe__btn[aria-pressed="true"] .ico--pause{ display:block; }
.vidframe__btn:hover{ color:var(--brass); }
.vidframe__cap{
  padding:12px 16px; font-size:var(--fs-xs);
  color:var(--text-on-dark-soft); background:var(--ink-soft);
}

/* ============================================================
   3.7 CÓMO FUNCIONA
   ============================================================ */
.steps{ background:var(--canvas); padding-block:var(--section-y); }
.steps__list{ counter-reset:step; display:grid; gap:var(--space-lg); }
@media (min-width:760px){ .steps__list{ grid-template-columns:repeat(4,1fr); gap:var(--space-md); } }
.steps__list li{ counter-increment:step; padding-top:18px; border-top:2px solid var(--ink); }
.steps__list li::before{
  content:counter(step);
  display:block; font-family:var(--font-display); font-size:2.1rem; font-weight:700;
  line-height:1; color:var(--brass); margin-bottom:10px;
}
.steps__list h3{ font-size:1.18rem; }
.steps__list p{ margin-top:8px; color:var(--text-soft); font-size:var(--fs-sm); max-width:32ch; }

/* ============================================================
   3.8 COMPLETA TU EVENTO
   ============================================================ */
.addons{ background:var(--canvas-warm); padding-block:var(--section-y); }
.addons__grid{ display:grid; gap:var(--space-md); }
@media (min-width:560px){ .addons__grid{ grid-template-columns:1fr 1fr; gap:var(--space-lg); } }
@media (min-width:960px){ .addons__grid{ grid-template-columns:repeat(4,1fr); } }
.addon img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:var(--radius); }
.addon h3{ margin-top:14px; font-size:1.2rem; }
.addon__prices{ margin-top:7px; font-size:var(--fs-sm); color:var(--text-soft); }
.addon__prices b{ color:var(--text-strong); font-weight:600; }
.addons__perk{
  margin-top:var(--space-lg); padding-top:var(--space-md);
  border-top:2px solid var(--brass);
  font-family:var(--font-display); font-size:var(--fs-lead); max-width:42em;
}

/* ============================================================
   3.9 PAQUETES
   ============================================================ */
.packages{ background:var(--mezquite); color:var(--text-on-dark); padding-block:var(--section-y); }
.packages__h{ font-size:var(--fs-h2); max-width:16ch; }
.packages__body{ margin-top:var(--space-md); color:#D3DDD4; max-width:42em; }
.packages__proof{
  margin-top:var(--space-md);
  font-family:var(--font-display); font-size:var(--fs-lead);
}
.packages__proof s{ color:#A8B7AA; }
.packages__proof strong{ color:var(--brass); font-size:1.3em; }
.packages .btn{ margin-top:var(--space-lg); }

/* ============================================================
   3.10 PRUEBA SOCIAL
   ============================================================ */
.social{ background:var(--canvas); padding-block:var(--section-y); }
.ratingblock{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding-block:var(--space-md) var(--space-lg);
}
.ratingblock__score{
  font-family:var(--font-display); font-weight:700; line-height:.9;
  font-size:clamp(3.6rem,2.2rem + 5vw,6rem); letter-spacing:-0.03em;
}
.ratingblock .stars{ color:var(--brass); }
.ratingblock__link{ font-size:var(--fs-sm); color:var(--text-soft); text-underline-offset:3px; }
.ratingblock__link:hover{ color:var(--mezquite); }

/* ── Carrusel de reseñas ───────────────────────────────────
   Sin autoplay: WCAG 2.2.2 y el brief piden un solo momento
   de movimiento (el hero). Aquí el movimiento lo pide el usuario.
   ---------------------------------------------------------- */
.revcar{ margin-bottom:var(--space-xl); }

.revcar__bar{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-sm);
  padding-bottom:14px; margin-bottom:var(--space-md);
  border-bottom:1px solid var(--sand-line);
}
.revcar__status{
  font-size:var(--fs-xs); letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-soft);
}
.revcar__nav{ display:flex; gap:8px; }
.revcar__arrow{
  display:grid; place-items:center;
  width:46px; height:46px; cursor:pointer;
  background:transparent; color:var(--text-strong);
  border:1px solid var(--sand); border-radius:999px;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}
.revcar__arrow svg{ width:22px; height:22px; }
.revcar__arrow:hover:not(:disabled){ background:var(--ink); color:var(--canvas); border-color:var(--ink); }
.revcar__arrow:disabled{ opacity:.32; cursor:default; }

.revcar__track{
  display:flex; gap:var(--space-md);
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding-bottom:var(--space-sm);
  scrollbar-width:none;
}
.revcar__track::-webkit-scrollbar{ display:none; }
.revcar__track:focus-visible{ outline:var(--focus); outline-offset:4px; }
@media (prefers-reduced-motion: reduce){ .revcar__track{ scroll-behavior:auto; } }

.rev{
  flex:0 0 min(100%, 340px);
  scroll-snap-align:start;
  display:flex; flex-direction:column;
  padding:var(--space-md) 0 0;
  border-top:2px solid var(--brass);
}
@media (min-width:760px){ .rev{ flex-basis:min(46%, 380px); } }
@media (min-width:1100px){ .rev{ flex-basis:min(31.5%, 360px); } }

.rev__stars{ color:var(--brass); }
.rev__stars .stars__svg{ width:80px; height:16px; }

.rev__quote{ margin:14px 0 0; flex:1; }
.rev__text{
  font-family:var(--font-display); font-size:1.03rem; line-height:1.5;
  letter-spacing:-0.005em; color:var(--text-strong);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:6;
  overflow:hidden;
}
@media (min-width:760px){ .rev__text{ -webkit-line-clamp:9; } }
.rev__text.is-open{ display:block; -webkit-line-clamp:none; overflow:visible; }

.rev__more{
  align-self:flex-start; margin-top:10px; padding:6px 0; min-height:32px;
  background:none; border:0; cursor:pointer;
  font-size:var(--fs-sm); font-weight:600; color:var(--mezquite);
  text-decoration:underline; text-underline-offset:3px;
}
.rev__more:hover{ color:var(--brass-deep); }

.rev__by{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px;
  margin-top:var(--space-sm); padding-top:12px;
  border-top:1px solid var(--sand-line);
}
.rev__name{ font-style:normal; font-weight:600; font-size:var(--fs-sm); }
.rev__src{ font-size:var(--fs-xs); color:var(--text-soft); }

.revcar__dots{ display:flex; flex-wrap:wrap; gap:7px; margin-top:var(--space-md); }
.revcar__dot{
  width:9px; height:9px; padding:0; cursor:pointer;
  background:var(--sand-line); border:0; border-radius:999px;
  transition:background-color .2s ease, transform .2s ease;
}
.revcar__dot:hover{ background:var(--sand); }
.revcar__dot[aria-current="true"]{ background:var(--brass); transform:scale(1.35); }
/* Área táctil de 44px sin engordar el punto */
.revcar__dots{ padding-block:16px; margin-top:calc(var(--space-md) - 16px); }
.revcar__dot{ position:relative; }
.revcar__dot::after{ content:""; position:absolute; inset:-17px -8px; }

/* Contenedor del widget de reseñas de GHL */
.reviews-embed{
  max-width:960px; margin:0 auto var(--space-xl);
  background:#fff; border:1px solid var(--sand-line); border-radius:var(--radius-lg);
  padding:clamp(14px,2.4vw,26px);
  /* Sin overflow:hidden ni transform: rompen el auto-resize de GHL */
}
.reviews-embed iframe{ width:100%!important; max-width:100%!important; border:0; display:block; }
.reviews-embed__fallback{ color:var(--text-soft); font-size:var(--fs-sm); text-align:center; }

.gallery__h{ font-size:var(--fs-h3); margin-bottom:var(--space-md); }
.gallery{ display:grid; gap:var(--space-sm); grid-template-columns:1fr 1fr; }
@media (min-width:760px){ .gallery{ grid-template-columns:repeat(3,1fr); gap:var(--space-md); } }
.gallery img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); }
@media (min-width:760px){
  .gallery li:first-child{ grid-column:span 2; }
  .gallery li:first-child img{ aspect-ratio:8/3; }
}

/* ============================================================
   3.11 FAQ
   ============================================================ */
.faq{ background:var(--canvas-warm); padding-block:var(--section-y); }
.faq__list{ max-width:820px; border-top:1px solid var(--sand-line); }
.qa{ border-bottom:1px solid var(--sand-line); }
.qa h3{ margin:0; }
.qa__q{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-sm);
  width:100%; min-height:64px; padding:18px 0; cursor:pointer;
  background:none; border:0; text-align:left;
  font-family:var(--font-display); font-size:1.12rem; font-weight:600; line-height:1.3;
  color:var(--text-strong);
  transition:color .18s ease;
}
.qa__q:hover{ color:var(--mezquite); }
.qa__chev{ width:22px; height:22px; flex:none; color:var(--sand); transition:transform .22s ease, color .18s ease; }
.qa__q[aria-expanded="true"] .qa__chev{ transform:rotate(180deg); color:var(--brass); }
.qa__a{ padding-bottom:22px; }
.qa__a p{ color:var(--text-soft); max-width:66ch; }

/* ============================================================
   3.12 CTA FINAL + FORMULARIO
   ============================================================ */
.quote{ position:relative; isolation:isolate; background:var(--ink); color:var(--text-on-dark); padding-block:var(--section-y); }
.quote__bg{
  position:absolute; inset:0; z-index:-1;
  background-image:linear-gradient(rgba(16,24,32,.86), rgba(16,24,32,.93)), image-set(url("assets/images/cta-bg.webp") type("image/webp"), url("assets/images/cta-bg.jpg") type("image/jpeg"));
  background-size:cover; background-position:50% 45%;
}
.quote__inner{ display:grid; gap:var(--space-xl); }
@media (min-width:1060px){ .quote__inner{ grid-template-columns:minmax(320px,1fr) minmax(0,var(--form-max)); gap:var(--space-xl); align-items:start; } }
@media (min-width:1180px){ .quote__inner{ gap:var(--space-2xl); } }
.quote__h{ font-size:var(--fs-h2); }
.quote__sub{ margin-top:var(--space-sm); font-size:var(--fs-lead); color:var(--text-on-dark-soft); max-width:38ch; }
.quote__micro{ margin-top:10px; font-size:var(--fs-sm); color:var(--brass); }

.contactcard{ margin-top:var(--space-lg); padding-top:var(--space-md); border-top:1px solid rgba(247,245,241,.2); }
.contactcard__lead{ font-size:var(--fs-sm); color:var(--text-on-dark-soft); }
.contactcard__phone{
  display:inline-flex; align-items:center; min-height:44px; margin-top:8px;
  font-family:var(--font-display); font-weight:700; letter-spacing:-0.02em;
  font-size:clamp(1.9rem,1.3rem + 2.4vw,2.9rem); line-height:1.05;
  color:var(--canvas); text-decoration:none;
}
.contactcard__phone:hover{ color:var(--brass); }
.contactcard__hours{ margin-top:8px; font-size:var(--fs-xs); color:var(--text-on-dark-soft); max-width:34ch; }
.contactcard__row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:var(--space-md); }

/* Contenedor del embed de GHL */
.formcard{
  background:var(--form-bg); color:var(--form-fg);
  border-radius:var(--form-radius); padding:var(--form-pad);
  max-width:var(--form-max); width:100%;
  /* Nada de overflow:hidden ni transform aquí: rompen el auto-resize */
}
.formcard__intro{ font-size:var(--fs-sm); color:var(--text-soft); }
.formcard__pick{
  margin-top:12px; padding:11px 14px; border-radius:var(--radius);
  background:rgba(201,162,39,.14); border:1px solid rgba(201,162,39,.5);
  font-size:var(--fs-sm);
}
#ghl-form{ margin-top:var(--space-sm); min-height:var(--form-min-h); }
#ghl-form iframe{ width:100%!important; border:0; display:block; min-height:var(--form-min-h); }
.formcard__fallback{ font-size:var(--fs-sm); color:var(--text-soft); }
.formcard__fallback a, .formcard__wa a{ color:var(--mezquite); font-weight:600; text-underline-offset:3px; }
.formcard__wa{ margin-top:var(--space-sm); font-size:var(--fs-sm); color:var(--text-soft); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:var(--ink); color:var(--text-on-dark-soft);
  padding-block:var(--space-xl) calc(var(--space-lg) + env(safe-area-inset-bottom));
  font-size:var(--fs-sm);
  border-top:1px solid rgba(247,245,241,.12);
}
.footer-grid{ display:grid; gap:var(--space-lg); }
@media (min-width:680px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:980px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; gap:var(--space-xl); } }
.footer-brand .wordmark{ color:var(--canvas); }
.footer-note{ margin-top:14px; max-width:34ch; }
.footer-h{ font-family:var(--font-body); font-size:var(--fs-xs); font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--canvas); margin-bottom:12px; }
.footer-col address{ font-style:normal; line-height:1.9; }
.footer-col a{ text-decoration:none; text-underline-offset:3px; }
.footer-col a:hover{ color:var(--brass); text-decoration:underline; }
.footer-hours{ margin-top:10px; color:var(--brass); }
.footer-social{ display:grid; gap:7px; }
.footer-agreement{ display:inline-block; margin-top:14px; text-decoration:underline; text-underline-offset:3px; }
.footer-legal{
  margin-top:var(--space-lg); padding-top:var(--space-md);
  border-top:1px solid rgba(247,245,241,.12);
  font-size:var(--fs-xs);
}

/* ============================================================
   STICKY CTA (móvil)
   ============================================================ */
.stickybar{
  position:fixed; inset:auto 0 0 0; z-index:60;
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:1px;
  background:rgba(247,245,241,.18);
  padding-bottom:env(safe-area-inset-bottom);
  transform:translateY(110%);
  transition:transform .28s ease;
}
.stickybar.is-visible{ transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .stickybar{ transition:none; } }
@media (min-width:900px){ .stickybar{ display:none; } }

.stickybar__btn{
  display:flex; align-items:center; justify-content:center; gap:8px;
  min-height:58px; padding:10px 8px;
  background:var(--ink); color:var(--canvas);
  font-size:var(--fs-sm); font-weight:600; text-decoration:none;
}
.stickybar__btn--primary{ background:var(--brass); color:var(--ink); }
.stickybar__btn:active{ filter:brightness(.92); }

/* Espacio para que la barra no tape el final de la página */
@media (max-width:899px){ body.has-stickybar{ padding-bottom:64px; } }

/* ============================================================
   MOVIMIENTO — un solo momento, en el hero
   ============================================================ */
@media (prefers-reduced-motion: no-preference){
  .hero__title, .hero__sub, .cta-row, .hero__micro{
    animation:heroIn .7s cubic-bezier(.22,.61,.36,1) both;
  }
  .hero__sub{ animation-delay:.08s; }
  .cta-row{ animation-delay:.16s; }
  .hero__micro{ animation-delay:.22s; }
  @keyframes heroIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
}

/* Resalte temporal al saltar desde el selector de invitados */
.is-picked{ box-shadow:0 0 0 2px var(--brass); border-radius:var(--radius-lg); }
@media (prefers-reduced-motion: no-preference){
  .is-picked{ transition:box-shadow .3s ease; }
}

/* Impresión: que el presupuesto se pueda imprimir sin desastres */
@media print{
  .stickybar, .site-header, .vidframe, .hero__media{ display:none!important; }
  body{ background:#fff; color:#000; }
}
