/* ============================================================
   Global Tour Llanos — dirección visual 2026
   Construido desde el manual de marca y la guía visual aprobada.
   ============================================================ */

:root {
  --surface-blue: #377ADF;
  --surface-sky: #50C4ED;
  --surface-orange: #FAA734;
  --surface-mist: #D6E5E5;
  --surface-ink: #15171B;
  --surface-white: #FFFFFF;
  --line-blue: rgba(55, 122, 223, .14);
  --soft-blue: rgba(55, 122, 223, .08);
  --soft-orange: rgba(250, 167, 52, .14);
}

html, body { max-width:100%; overflow-x:clip; }
body { background: #fff; }
body::before { opacity: .12; }

/* Navegación editorial, clara y compacta */
.nav { top: 0; background: rgba(255,255,255,.97); border-bottom-color: var(--line-blue); }
.topbar { background: var(--surface-blue); color:#fff; font-size:.72rem; font-weight:600; }
.topbar__in { min-height:30px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.topbar span, .topbar a { display:inline-flex; align-items:center; gap:7px; }
.topbar svg { width:13px; height:13px; color:var(--surface-orange); }
.topbar__right { gap:18px !important; }
.topbar__right strong { color:var(--surface-orange); letter-spacing:.04em; text-transform:uppercase; }
.topbar__pay { padding:3px 10px; border-radius:999px; background:var(--surface-orange); color:var(--surface-ink) !important; font-weight:800; }
.nav__bar { padding-block:11px; }
.brand__img { height:45px; }
.nav.is-scrolled .brand__img { height:41px; }
.nav__links { gap:2px; }
.nav__link { padding:9px 12px; font-size:.79rem; }
.nav__link:hover { background:var(--soft-blue); color:var(--surface-blue); }
.nav__link.is-active { background:var(--surface-blue); color:#fff; }
.nav__link.is-active::after { display:none; }
.nav__cta .btn { min-height:42px; padding:9px 17px; }
.mega { border:1px solid var(--line-blue); }

/* Inicio: composición de la guía con pasaporte de marca */
.hero {
  min-height:auto;
  background:
    radial-gradient(circle at 86% 14%, rgba(80,196,237,.46), transparent 26%),
    linear-gradient(125deg, #225FB9 0%, var(--surface-blue) 54%, #2B70D4 100%);
  isolation:isolate;
}
.hero::before {
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.22;
  background-image:radial-gradient(circle, #fff 1px, transparent 1.5px);
  background-size:24px 24px;
  mask-image:linear-gradient(90deg,#000,transparent 75%);
}
.hero::after {
  content:""; position:absolute; width:clamp(260px,38vw,560px); aspect-ratio:1;
  border:1px solid rgba(255,255,255,.13); border-radius:50%; right:-10%; bottom:-54%;
  box-shadow:0 0 0 70px rgba(255,255,255,.04),0 0 0 140px rgba(255,255,255,.025);
}
.hero__inner {
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);
  align-items:center; gap:clamp(48px,7vw,94px); padding-block:clamp(64px,7vw,98px);
}
.hero__inner > * { min-width:0; }
.hero__copy { position:relative; z-index:3; width:100%; }
.hero h1 { font-size:clamp(3rem,5.6vw,5.6rem); line-height:.94; max-width:11.4ch; margin-top:22px; }
.hero h1 .w { color:var(--surface-orange); }
.hero__sub { max-width:53ch; font-size:clamp(1rem,1.45vw,1.18rem); }
.hero__kicker { background:#fff; color:var(--surface-blue); box-shadow:0 10px 28px rgba(21,23,27,.12); }
.hero__cta { margin-top:28px; }
.hero__steps { margin-top:40px; gap:9px; }
.hstep { flex:1; min-width:150px; padding:12px 14px; border-radius:14px; background:rgba(255,255,255,.09); }
.hstep b { color:var(--surface-orange); font-size:1.2rem; }
.hstep span strong { font-size:.9rem; }
.hstep span em { font-size:.7rem; }

.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.hero-wheel { position:relative; z-index:3; width:100%; min-width:0; perspective:1100px; }
.hero-wheel__stage { position:relative; width:100%; height:438px; transform-style:preserve-3d; }
.hero__brandcard {
  position:absolute; left:50%; top:0; z-index:1; min-height:420px; padding:24px;
  width:88%; max-width:390px; min-width:0;
  border-radius:28px; background:rgba(214,229,229,.98); color:var(--surface-ink);
  border:1px solid rgba(255,255,255,.88); box-shadow:0 30px 70px rgba(13,44,96,.3);
  overflow:hidden; transform-style:preserve-3d; backface-visibility:hidden; pointer-events:none;
  opacity:0; transform:translate3d(-50%,22px,-140px) scale(.72);
  transition:transform .68s cubic-bezier(.2,.8,.2,1), opacity .46s ease, filter .46s ease;
}
.hero-slide.is-active { z-index:4; opacity:1; pointer-events:auto; filter:none; transform:translate3d(-50%,0,0) rotateY(0) scale(1); }
.hero-slide.is-prev { z-index:2; opacity:.28; filter:saturate(.55) brightness(.9); transform:translate3d(-88%,18px,-90px) rotateY(18deg) scale(.78); }
.hero-slide.is-next { z-index:2; opacity:.28; filter:saturate(.55) brightness(.9); transform:translate3d(-12%,18px,-90px) rotateY(-18deg) scale(.78); }
.hero__brandcard::before {
  content:""; position:absolute; inset:9px; border:1px solid rgba(55,122,223,.16);
  border-radius:21px; pointer-events:none;
}
.hero__brandlabel {
  position:relative; z-index:4; display:inline-flex; padding:7px 12px; border-radius:999px;
  background:#fff; color:var(--surface-blue); font-size:.66rem; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase;
}
.hero__sun { position:absolute; width:118px; height:118px; right:-18px; top:-25px; border-radius:50%; background:var(--surface-orange); }
.hero-slide--brand {
  background:
    radial-gradient(circle at 18% 18%,rgba(255,255,255,.72),transparent 28%),
    linear-gradient(145deg,#DDEBEC 0%,#D1E4E6 58%,#C4DDE2 100%);
}
.hero-slide--brand::after {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.38;
  background-image:radial-gradient(circle,rgba(55,122,223,.2) 1px,transparent 1.5px);
  background-size:22px 22px;
  mask-image:linear-gradient(135deg,#000,transparent 76%);
}
.hero__passport {
  position:relative; z-index:2; margin-top:30px; width:74%; min-height:174px; border-radius:18px;
  background:#fff; display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:26px 54px 26px 22px; box-shadow:0 13px 28px rgba(55,122,223,.12);
}
.hero__passport img { width:min(184px,100%); height:auto; }
.hero__passport span { max-width:19ch; margin-top:10px; color:var(--gtl-earth); font-size:.58rem; font-weight:700; line-height:1.4; letter-spacing:.07em; text-transform:uppercase; }
.hero-slide--brand .hero__passport {
  width:100%; min-height:220px; padding:30px 24px; align-items:center; text-align:center;
  border:1px solid rgba(55,122,223,.09); box-shadow:0 16px 34px rgba(55,122,223,.14);
}
.hero-slide--brand .hero__passport img { width:min(230px,82%); }
.hero-slide--brand .hero__passport span { max-width:none; margin-top:16px; color:#1E4FA4; font-size:.68rem; }
.hero-slide--brand .hero__passport small {
  margin-top:8px; color:rgba(21,23,27,.58); font-size:.57rem; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase;
}
.hero__place {
  position:absolute; z-index:4; left:24px; right:24px; bottom:24px; min-height:65px;
  border-radius:15px; background:var(--surface-blue); color:#fff; padding:12px 16px 12px 49px;
  display:flex; flex-direction:column; justify-content:center; box-shadow:0 12px 24px rgba(55,122,223,.22);
}
.hero__place > span { position:absolute; left:15px; width:22px; height:22px; border-radius:50%; background:var(--surface-orange); box-shadow:inset 0 0 0 6px rgba(255,255,255,.25); }
.hero__place strong { font-size:.76rem; }
.hero__place em { font-style:normal; font-size:.64rem; opacity:.75; }
.wheel-feature {
  position:relative; z-index:2; margin-top:30px; min-height:245px; border-radius:19px;
  overflow:hidden; background:#fff; padding:24px; box-shadow:0 13px 28px rgba(55,122,223,.12);
}
.wheel-feature > :not(.hero-card-mascot) { position:relative; z-index:2; }
.hero-card-mascot {
  position:absolute; z-index:1; right:-13%; bottom:-7%; width:70%; height:92%;
  object-fit:contain; object-position:right bottom; opacity:.23; pointer-events:none;
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.4) 28%,#000 58%);
  filter:drop-shadow(0 10px 18px rgba(30,79,164,.1));
}
.wheel-feature--school .hero-card-mascot { right:-10%; width:72%; opacity:.22; }
.wheel-feature--llano .hero-card-mascot { right:-8%; width:68%; opacity:.23; }
.wheel-feature__number { display:block; font-family:var(--font-display); font-size:4.6rem; line-height:.82; color:var(--surface-orange); }
.wheel-feature h2 { max-width:12ch; margin-top:16px; font-size:1.55rem; line-height:1.02; color:var(--surface-ink); }
.wheel-feature p { max-width:31ch; margin-top:10px; font-size:.76rem; line-height:1.45; color:var(--gtl-earth); }
.wheel-feature__chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.wheel-feature__chips span { display:inline-flex; padding:5px 9px; border-radius:999px; background:var(--soft-blue); color:var(--surface-blue); font-size:.61rem; font-weight:800; }
.hero-slide--school { background:linear-gradient(145deg,#1E4FA4,var(--surface-blue) 62%,var(--surface-sky)); color:#fff; }
.hero-slide--school::before { border-color:rgba(255,255,255,.2); }
.hero-slide--school .hero__brandlabel { color:var(--surface-blue); }
.wheel-feature--school { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); box-shadow:none; color:#fff; }
.wheel-feature--school h2, .wheel-feature--school p { color:#fff; }
.wheel-feature--school p { color:rgba(255,255,255,.78); }
.wheel-feature--school .wheel-feature__chips span { background:rgba(255,255,255,.14); color:#fff; }
.wheel-feature__icon { width:56px; height:56px; border-radius:17px; display:grid; place-items:center; background:var(--surface-orange); color:var(--surface-ink); }
.wheel-feature__icon svg { width:29px; height:29px; }
.hero-slide--school .hero__place { background:#fff; color:var(--surface-blue); }
.hero-slide--school .hero__place em { color:var(--gtl-earth); }
.hero-slide--llano {
  background:
    radial-gradient(circle at 78% 20%,rgba(255,255,255,.22),transparent 23%),
    linear-gradient(145deg,#FAA734 0%,#F7B955 58%,#F6C96F 100%);
  color:var(--surface-ink);
}
.hero-slide--llano::before { border-color:rgba(255,255,255,.42); }
.hero-slide--llano::after {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.22;
  background-image:radial-gradient(circle,rgba(30,79,164,.5) 1px,transparent 1.4px);
  background-size:19px 19px; mask-image:linear-gradient(145deg,transparent 18%,#000 86%);
}
.hero-slide--llano .hero__brandlabel { color:#1E4FA4; }
.wheel-feature--llano { background:rgba(255,255,255,.86); border:1px solid rgba(255,255,255,.58); }
.wheel-feature--llano .wheel-feature__number { color:#1E4FA4; }
.wheel-feature--llano .wheel-feature__chips span { background:rgba(30,79,164,.09); color:#1E4FA4; }
.hero-slide--llano .hero__place { background:#1E4FA4; color:#fff; }

.hero-wheel__controls { position:relative; z-index:8; display:flex; align-items:center; justify-content:center; gap:9px; margin-top:12px; }
.wheel-btn, .wheel-dot { touch-action:manipulation; }
.wheel-btn {
  width:44px; height:44px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.28); color:#fff;
  transition:background .2s, transform .2s, color .2s;
}
.wheel-btn:hover { background:#fff; color:var(--surface-blue); transform:translateY(-2px); }
.wheel-btn svg { width:20px; height:20px; }
.wheel-btn--pause { width:38px; height:38px; }
.wheel-btn--pause.is-paused .wheel-pause-icon { display:none; }
.wheel-btn--pause.is-paused::before { content:""; width:0; height:0; margin-left:3px; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:10px solid currentColor; }
.wheel-dots { display:flex; align-items:center; gap:7px; padding:7px 10px; border-radius:999px; background:rgba(21,23,27,.13); }
.wheel-dot { width:9px; height:9px; padding:0; border-radius:50%; background:rgba(255,255,255,.4); transition:width .25s, background .25s; }
.wheel-dot.is-on { width:24px; border-radius:99px; background:var(--surface-orange); }

/* Franja de confianza sobre una superficie clara */
body .trust { position:relative; z-index:3; margin-top:-30px; padding:24px 28px; border-radius:20px; background:#fff; border:1px solid var(--line-blue); box-shadow:0 18px 42px rgba(55,122,223,.12); }
body .trust__item { position:relative; }
body .trust__item:not(:last-child)::after { content:""; position:absolute; top:10%; right:-12px; width:1px; height:80%; background:var(--line-blue); }
body .trust__num { font-size:clamp(1.75rem,3vw,2.5rem); color:var(--surface-blue); }
body .trust__lbl { margin-top:5px; font-size:.78rem; }
.home-proof { background:linear-gradient(180deg,#fff 0%,rgba(214,229,229,.34) 100%); }
.home-proof .trust { grid-template-columns:repeat(3,minmax(0,1fr)); }

/* Jerarquía común */
.section { padding-block:clamp(58px,7vw,92px); }
.eyebrow { color:var(--surface-blue); font-size:.68rem; letter-spacing:.17em; }
.eyebrow::before, .eyebrow.center::after { background:var(--surface-orange); }
.section-title { font-size:clamp(2rem,3.7vw,3.05rem); line-height:1.02; }
.accent-ital { color:var(--surface-blue); }
.lead { line-height:1.68; }

/* Página interior: encabezado de marca compartido */
body .phead {
  position:relative; overflow:hidden; min-height:610px; color:#fff;
  background:
    radial-gradient(circle at 85% 25%, rgba(80,196,237,.54), transparent 25%),
    linear-gradient(125deg,#225FB9,var(--surface-blue) 60%,#2D72D2);
}
body .phead::before {
  content:""; position:absolute; width:280px; aspect-ratio:1; border-radius:50%;
  right:9%; top:-42%; background:var(--surface-orange); opacity:.98;
}
body .phead::after {
  content:""; position:absolute; z-index:2; right:max(1.5vw,calc((100vw - var(--maxw))/2)); bottom:0;
  width:clamp(330px,31.5vw,400px); aspect-ratio:2/3;
  background:url('assets/brand/mascot-white-manual.png') center bottom/contain no-repeat;
  filter:drop-shadow(0 18px 22px rgba(21,23,27,.18)); pointer-events:none;
}
.page-destinos .phead::after { background-image:url('assets/brand/mascot-destinos.png'); }
.page-escolares .phead::after { background-image:url('assets/brand/mascot-escolares.png'); }
.page-servicios .phead::after { background-image:url('assets/brand/mascot-servicios.png'); }
.page-nosotros .phead::after { background-image:url('assets/brand/mascot-nosotros.png'); }
.page-contacto .phead::after { background-image:url('assets/brand/mascot-contacto.png'); }
body .phead__bg { opacity:.12; mix-blend-mode:soft-light; }
body .phead__bg::after { background:linear-gradient(90deg,rgba(30,79,164,.6),transparent 72%); }
body .phead__in { min-height:610px; padding-block:clamp(62px,7vw,92px); padding-right:min(36vw,460px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
body .phead h1 { font-size:clamp(2.5rem,5vw,4.4rem); line-height:.95; max-width:14ch; }
body .phead h1 .w { color:var(--surface-orange); font-style:normal; }
body .phead .hero__sub { max-width:56ch; color:rgba(255,255,255,.88); }
body .phead .hero__kicker { color:var(--surface-blue); }

/* Tarjetas y controles */
.card, body .srvc, body .pillar, body .mv__card, body .valc, body .teamc,
body .cform, body .cinfo__card, body .qform, body .minicard {
  border:1px solid var(--line-blue); box-shadow:0 9px 28px rgba(55,122,223,.09);
}
.card:hover, body .srvc:hover, body .teamc:hover, body .minicard:hover { box-shadow:0 20px 46px rgba(55,122,223,.16); }
.tc__media { aspect-ratio:1.52; }
.tc__body { padding:18px; }
.tc__title { font-size:1.18rem; }
.tc__dest, .tc__go, .linkbtn { color:var(--surface-blue); }
.tc__inc { background:var(--soft-blue); color:var(--surface-blue); }
.cat { min-height:255px; border-radius:22px; }
.cat__ic { width:44px; height:44px; border-radius:50%; background:var(--surface-orange); }
.cat__body { padding:22px; }
.cat h3 { font-size:1.45rem; }

body .filterbar { top:94px; background:rgba(255,255,255,.94); border-color:var(--line-blue); }
body .fchip { border-color:var(--line-blue); color:var(--gtl-earth); }
body .fchip:hover { border-color:var(--surface-blue); color:var(--surface-blue); }
body .fchip.is-on { background:var(--surface-blue); border-color:var(--surface-blue); }
body .fchip--type.is-on { background:var(--surface-orange); border-color:var(--surface-orange); color:var(--surface-ink); }
body .catblock__head { border-color:var(--line-blue); }
body .catblock__count { color:var(--surface-blue); }

/* Componentes de páginas */
body .lstep, body .step4, body .proc__step, body .incol, body .sumic, body .pago__card {
  background:var(--soft-blue); border:1px solid var(--line-blue);
}
body .lstep:hover { transform:translateX(5px); }
body .lstep__go, body .minicard__dest, body .thead__meta svg, body .thead__meta em,
body .itin__t, body .hotel-chip svg, body .qform__locked { color:var(--surface-blue) !important; }
body .inc { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.14); border-radius:18px; }
body .inc__ic, body .pillar__ic { background:var(--surface-orange); color:var(--surface-ink); }
body .testi__av { background:var(--surface-blue); }
body .esc-teaser { border:1px solid var(--line-blue); box-shadow:0 20px 50px rgba(55,122,223,.13); }
body .chip { background:var(--soft-blue); color:var(--surface-blue); }

body .srvc__ic, body .mv__ic { background:var(--surface-blue); }
body .srvc__go, body .teamc__role, body .valc__n { color:var(--surface-blue); }
body .srv-inc__item { border:1px solid var(--line-blue); }
body .srv-inc__item span, body .cinfo__ic, body .cinfo__socs a { background:var(--soft-blue); color:var(--surface-blue); }
body .proc__n, body .step4__n { color:var(--surface-orange); }
body .valc__tags span { background:var(--soft-blue); color:var(--surface-blue); }
body .teamc__tel svg { color:var(--surface-blue); }
body .cinfo__wa { background:var(--surface-blue); }
body .mapwrap { border:1px solid var(--line-blue); }

/* Detalle de viaje */
body .crumb { background:var(--surface-mist); }
body .thead { position:relative; background:linear-gradient(180deg,#fff,var(--soft-blue)); padding-block:42px 32px; }
body .thead::after { content:""; position:absolute; right:3%; top:-18px; width:178px; height:240px; background:url('assets/brand/mascot-trip.png') center/contain no-repeat; filter:drop-shadow(0 8px 15px rgba(55,122,223,.18)); opacity:.24; }
body .thead__star { background:var(--surface-blue); color:#fff; }
body .thead__tag { color:var(--surface-blue); font-style:normal; }
body .gal > div { border:1px solid var(--line-blue); }
body .tabs { border-color:var(--line-blue); }
body .tab.is-on { color:var(--surface-blue); border-color:var(--surface-orange); }
body .pago__ic { background:var(--surface-orange); }
body .closing { background:linear-gradient(110deg,#1E4FA4,var(--surface-blue)); }
body .closing p { color:#fff; font-style:normal; }

/* CTA y pie claros, como en la guía */
.cta-band {
  min-height:390px; padding-right:min(40vw,470px);
  background:linear-gradient(120deg,#1E4FA4,var(--surface-blue) 58%,#6D8FE0); border-radius:22px;
}
.cta-band::after { width:390px; height:390px; right:-58px; bottom:-138px; background:rgba(255,255,255,.12); }
.cta-band::before {
  content:""; position:absolute; z-index:1; right:clamp(14px,4vw,58px); bottom:-168px;
  width:clamp(330px,31vw,430px); aspect-ratio:1594/2104;
  background:url('assets/brand/mascot-white-manual.png') center bottom/contain no-repeat;
  filter:brightness(0) invert(1); opacity:.22; pointer-events:none;
}
.cta-band__in { z-index:2; }
.ft { background:#fff; color:var(--gtl-earth); border-top:1px solid var(--line-blue); }
.ft__grid { padding-block:54px; }
.ft__tag { color:var(--gtl-earth); }
.ft__social a { background:var(--soft-blue); color:var(--surface-blue); }
.ft__social a:hover { background:var(--surface-blue); color:#fff; }
.ft__col h4 { color:var(--surface-ink); }
.ft__col a { color:var(--gtl-earth); }
.ft__col a:hover { color:var(--surface-blue); }
.ft__contact svg { color:var(--surface-blue); }
.ft__bar { border-top-color:var(--line-blue); background:var(--surface-mist); }
.ft__bar-in { color:var(--gtl-earth); }

.floating { gap:9px; }
.fab { box-shadow:0 12px 26px rgba(21,23,27,.2); }
.fab--pay { width:auto; min-width:166px; padding:0 17px; gap:9px; border-radius:999px; background:var(--surface-orange); color:var(--surface-ink); }
.fab--pay span { font-size:.76rem; font-weight:800; white-space:nowrap; }
.fab--pay svg { width:22px; height:22px; }
.fab--wa { background:var(--surface-blue); }

@media (max-width:1080px) {
  .hero__inner { grid-template-columns:minmax(0,1fr) 350px; gap:36px; }
  .hero-wheel__stage { height:418px; }
  .hero__brandcard { min-height:400px; }
  .nav__link { padding-inline:9px; }
}

@media (max-width:980px) {
  .nav__bar { min-height:66px; }
  .nav__mobile { inset:96px 0 0; }
  .hero__inner { grid-template-columns:1fr; gap:38px; }
  .hero__copy { max-width:680px; }
  .hero__inner { grid-template-columns:minmax(0,1fr); width:100%; }
  .hero-wheel { width:min(520px,100%); margin-inline:auto; }
  .hero-wheel__stage { height:438px; }
  .hero__brandcard { width:82%; max-width:390px; min-height:420px; }
  body .phead { min-height:540px; }
  body .phead::after { right:-8px; bottom:0; width:330px; height:auto; opacity:.72; }
  body .phead__in { min-height:540px; padding-right:285px; }
  body .filterbar { top:96px; }
}

@media (max-width:620px) {
  .floating { right:12px; bottom:12px; display:flex; gap:7px; }
  .fab { width:50px; height:50px; }
  .fab--pay { display:none; }
  .topbar__in { justify-content:center; min-height:27px; }
  .topbar__right { display:none !important; }
  .nav__bar { min-height:61px; padding-block:8px; }
  .nav__mobile { inset:88px 0 0; }
  .brand__img, .nav.is-scrolled .brand__img { height:40px; }
  .hero__inner { padding-block:52px 64px; }
  .hero h1 { font-size:clamp(2.75rem,13vw,4rem); }
  .hero__sub { font-size:.97rem; }
  .hero__cta { display:grid; grid-template-columns:1fr; width:100%; }
  .hero__cta .btn { width:100%; white-space:normal; justify-content:center; text-align:center; }
  .hero__steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:30px; width:100%; }
  .hstep { min-width:0; align-items:flex-start; flex-direction:column; gap:4px; padding:10px; }
  .hstep span em { display:none; }
  .hero-wheel { width:100%; }
  .hero-wheel__stage { height:382px; }
  .hero__brandcard { width:88%; min-height:365px; padding:18px; border-radius:23px; }
  .hero-slide.is-prev { transform:translate3d(-84%,14px,-70px) rotateY(16deg) scale(.8); opacity:.24; }
  .hero-slide.is-next { transform:translate3d(-16%,14px,-70px) rotateY(-16deg) scale(.8); opacity:.24; }
  .hero__passport { width:76%; margin-top:24px; min-height:145px; padding:20px 46px 20px 18px; }
  .hero__passport img { width:min(150px,100%); }
  .hero__passport span { font-size:.52rem; }
  .hero-slide--brand .hero__passport { width:100%; min-height:190px; padding:24px 18px; }
  .hero-slide--brand .hero__passport img { width:min(190px,78%); }
  .hero-slide--brand .hero__passport span { margin-top:13px; font-size:.6rem; }
  .hero-slide--brand .hero__passport small { margin-top:7px; font-size:.49rem; }
  .hero__brandlabel { font-size:.58rem; }
  .hero__sun { width:88px; height:88px; }
  .hero__place { left:18px; right:18px; bottom:18px; padding-left:43px; }
  .wheel-feature { margin-top:24px; min-height:204px; padding:20px; }
  .wheel-feature__number { font-size:3.7rem; }
  .wheel-feature h2 { margin-top:12px; font-size:1.28rem; }
  .wheel-feature p { margin-top:8px; font-size:.7rem; }
  .wheel-feature__chips { margin-top:10px; }
  .hero-wheel__controls { margin-top:8px; }
  body .trust, .home-proof .trust { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:-24px; padding:18px 8px; gap:12px 4px; }
  body .trust__item:not(:last-child)::after { display:none; }
  body .trust__num { font-size:1.34rem; }
  body .trust__lbl { padding-inline:3px; font-size:.63rem; line-height:1.3; }
  body .phead::before { width:190px; right:-55px; top:-34%; }
  body .phead { min-height:480px; }
  body .phead::after { width:155px; height:auto; right:8px; bottom:0; opacity:.32; }
  body .phead__in { min-height:480px; padding-right:110px; padding-block:52px 66px; }
  body .thead::after { right:-22px; top:8px; width:112px; height:160px; opacity:.16; }
  body .phead h1 { font-size:clamp(2.35rem,12vw,3.4rem); }
  body .phead .hero__sub { font-size:.93rem; }
  body .filterbar { top:88px; }
  .cta-band { min-height:430px; padding-right:clamp(28px,7vw,46px); }
  .cta-band::after { width:300px; height:300px; right:-96px; bottom:-105px; }
  .cta-band::before { width:250px; right:-42px; bottom:-104px; opacity:.15; }
  .ft__grid { padding-block:44px; }
}

@media (prefers-reduced-motion:reduce) {
  .hero__brandcard { transition:none; }
}

/* ============================================================
   Capa responsive global — teléfonos y navegadores embebidos
   Mantiene todas las páginas dentro del viewport y prioriza
   contenido, lectura y controles táctiles.
   ============================================================ */
@media (max-width: 700px) {
  html, body { width:100%; max-width:100%; overflow-x:hidden; }
  body { min-width:0; font-size:16px; }
  body::before { display:none; }
  img, picture, video, iframe, table { max-width:100%; }
  main, section, article, aside, header, footer,
  .container, .grid, .section, .catalog-layout, .catalog-main,
  .hero__inner, .hero__copy, .phead__in, .thead__row,
  .tbody__grid, .ft__grid, .cta-band__in { min-width:0; max-width:100%; }
  h1, h2, h3, h4 { overflow-wrap:normal; word-break:normal; hyphens:none; text-wrap:wrap; }
  p, li, dd, td, th, label, input, select, textarea { overflow-wrap:break-word; word-break:normal; }

  /* Cabecera móvil: se elimina la franja secundaria para ganar espacio
     y evitar que textos breves se conviertan en letras aisladas. */
  .topbar { display:none !important; }
  .nav { top:0; }
  .nav__bar { min-height:68px; padding-block:9px; gap:12px; justify-content:space-between; }
  .brand { min-width:0; flex:0 1 auto; }
  .brand__img, .nav.is-scrolled .brand__img { width:auto; max-width:min(210px,64vw); height:44px; object-fit:contain; }
  .nav__burger { position:relative; z-index:10; display:inline-flex; flex:0 0 48px; width:48px; height:48px; margin-left:auto; border-radius:50%; background:var(--soft-blue); color:var(--surface-ink) !important; }
  .nav__mobile { inset:68px 0 0; padding:18px max(18px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left)); }
  .nav__mobile a { min-height:52px; padding:13px 8px; font-size:1.08rem; }

  /* Inicio */
  .hero__inner { display:grid; grid-template-columns:minmax(0,1fr); gap:34px; padding-block:48px 62px; }
  .hero__copy { width:100%; }
  .hero__kicker { max-width:100%; padding:8px 12px; font-size:.66rem; line-height:1.35; letter-spacing:.11em; white-space:normal; }
  .hero h1 { width:100%; max-width:100%; margin-top:18px; font-size:clamp(2.55rem,12.5vw,3.55rem); line-height:.93; }
  .hero__sub { max-width:100%; margin-top:18px; font-size:1rem; line-height:1.55; }
  .hero__cta { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; width:100%; margin-top:24px; }
  .hero__cta .btn { width:100%; min-height:50px; padding-inline:18px; justify-content:center; text-align:center; white-space:normal; }
  .hero__steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; width:100%; }
  .hstep { min-width:0; padding:10px 8px; }
  .hstep span strong { font-size:.78rem; overflow-wrap:normal; }
  .hero-wheel { width:100%; max-width:430px; }
  .hero-wheel__stage { height:382px; }

  /* Encabezados interiores: el personaje ya no roba ancho al texto. */
  body .phead { min-height:520px; }
  body .phead::before { width:170px; right:-58px; top:-18%; opacity:.72; }
  body .phead::after { z-index:1; width:clamp(185px,52vw,245px); right:-24px; bottom:-2px; opacity:.24; }
  body .phead__in { z-index:3; min-height:520px; width:100%; padding-block:52px 180px; padding-right:clamp(20px,4vw,40px); }
  body .phead h1 { width:100%; max-width:100%; margin-top:18px; font-size:clamp(2.5rem,12vw,3.25rem); line-height:.96; }
  body .phead .hero__sub { max-width:100%; margin-top:18px; font-size:1rem; line-height:1.55; }

  /* Secciones y componentes compartidos */
  .section { padding-block:48px; }
  .section-title { max-width:100%; font-size:clamp(1.8rem,8.5vw,2.5rem); line-height:1.05; }
  .sec-head, .catblock__head, .thead__row { align-items:flex-start; }
  .cats, .catblock__grid, .related-grid { grid-template-columns:minmax(0,1fr) !important; }
  .card, .tc, .cat, .srvc, .pillar, .mv__card, .valc, .teamc, .minicard { min-width:0; width:100%; }
  .tc__media { width:100%; height:auto; aspect-ratio:4/3; }
  .tc__body { min-width:0; padding:18px; }
  .tc__foot { flex-wrap:wrap; }
  .tc__incs { flex-wrap:wrap; }
  .tc__go { min-height:44px; }

  /* Filtros: panel estático y usable; los chips se desplazan solo dentro
     de su propia fila sin ensanchar la página. */
  body .filterbar { position:relative; top:auto !important; width:100%; max-width:100%; max-height:none; overflow:visible; }
  body .filterbar__in { width:100%; padding:14px; gap:14px; }
  body .filterbar__group { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
  body .fchip { min-height:44px; }
  body .fselect { min-height:48px; font-size:16px; }
  .catalog-layout { gap:24px; }
  .catblock { margin-bottom:48px; }
  .catblock__head { flex-direction:column; gap:8px; margin-bottom:20px; }

  /* Landings de planes y pasadías */
  .catalog-hero { min-height:0; }
  .catalog-hero__photo { inset:0; width:100%; height:100%; opacity:.2; mask-image:none; }
  .catalog-hero__in { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; padding-block:52px 0; }
  .catalog-hero__copy { min-width:0; }
  .catalog-hero__copy h1 { width:100%; max-width:100%; margin:18px 0; font-size:clamp(2.5rem,12vw,3.35rem); line-height:.95; }
  .catalog-hero__copy p { max-width:100%; font-size:1rem; line-height:1.55; }
  .catalog-hero__actions { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
  .catalog-hero__actions .btn { width:100%; min-height:50px; justify-content:center; white-space:normal; text-align:center; }
  .catalog-hero__mascot { width:min(220px,62vw); max-height:245px; margin-top:0; justify-self:end; }
  .landing-intro, .landing-band__in { grid-template-columns:minmax(0,1fr); gap:24px; }
  .landing-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .landing-stat { min-width:0; }
  .landing-grid { grid-template-columns:minmax(0,1fr); }
  .landing-step { grid-template-columns:44px minmax(0,1fr); }

  /* Grillas específicas de Inicio, Servicios, Nosotros, Contacto y PROM */
  .llano-wrap, .about-intro, .contact, .registry { grid-template-columns:minmax(0,1fr) !important; }
  .incs-grid, .srv-inc, .minigrid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .srv, .proc, .pillars, .steps4, .values, .mv { grid-template-columns:minmax(0,1fr) !important; }
  .about-intro, .contact { gap:28px !important; }
  .map-card { position:static !important; max-width:none !important; border-radius:0 0 16px 16px !important; }

  /* Detalle de producto, tablas y formularios */
  body .thead { padding-block:30px 24px; overflow:hidden; }
  body .thead::after { width:105px; height:145px; right:-30px; opacity:.1; }
  .thead__row { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
  .thead__title { max-width:13ch; font-size:clamp(2rem,10vw,2.8rem); line-height:1; }
  .thead__meta { align-items:flex-start; font-size:.92rem; line-height:1.45; }
  .thead__cta { width:100%; justify-content:center; }
  .gal { gap:10px; }
  .gal__main, .gal__side { border-radius:16px; }
  .tbody__grid { grid-template-columns:minmax(0,1fr); gap:32px; }
  .tabs { width:100%; max-width:100%; overflow-x:auto; flex-wrap:nowrap; }
  .tab { min-height:48px; flex:0 0 auto; }
  .tabpane__cols, .pago__cards, .qform__two { grid-template-columns:minmax(0,1fr); }
  .itin li { display:grid; grid-template-columns:minmax(0,1fr); gap:4px; }
  .itin__t { min-width:0; }
  .price-wrap { width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .price-table { min-width:480px; }
  .price-table th, .price-table td { padding:11px 12px; }
  .qform { width:100%; padding:20px; }
  .field input, .field select, .field textarea { width:100%; min-width:0; font-size:16px; }

  /* CTA, pie y botones flotantes */
  .cta-band { min-height:0; padding:38px 24px 190px; border-radius:18px; }
  .cta-band::before { width:210px; right:-35px; bottom:-76px; opacity:.15; }
  .cta-band::after { width:250px; height:250px; right:-82px; bottom:-90px; }
  .cta-band h2 { font-size:clamp(1.75rem,8vw,2.3rem); line-height:1.05; }
  .cta-band p { font-size:1rem; }
  .ft__grid { grid-template-columns:minmax(0,1fr); gap:30px; padding-block:42px; }
  .ft__col, .ft__contact { min-width:0; }
  .ft__contact p, .ft__contact a { overflow-wrap:anywhere; }
  .ft__bar-in { flex-direction:column; align-items:flex-start; }
  .floating { right:max(12px,env(safe-area-inset-right)); bottom:max(12px,env(safe-area-inset-bottom)); }
  .fab { width:52px; height:52px; }
}

@media (max-width: 390px) {
  .container { width:min(100% - 30px,var(--maxw)); }
  .hero h1, body .phead h1 { font-size:clamp(2.25rem,12vw,2.85rem); }
  .hero__steps { grid-template-columns:minmax(0,1fr); }
  .hstep { flex-direction:row; align-items:center; }
  .hero-wheel__stage { height:370px; }
  .hero__brandcard { width:92%; }
  .sumics, body .trust, .home-proof .trust { grid-template-columns:minmax(0,1fr); }
}
