/* EDAI · Sitio · hoja de estilos compartida
   Concepto visual "Puesto de Control". Mobile-first; corte de navegación en 900px. */

:root {
  --orange: #EC740B;
  --orange-dark: #C85F05;
  --ink: #0A1F33;
  --ink-deep: #061421;
  --ink-soft: #13304A;
  --text: #0A1F33;
  --muted: #5C6068;
  --muted-2: #8A8E96;
  --line: #E3E1DC;
  --line-strong: #D6D3CD;
  --line-soft: #F1EFEA;
  --paper: #F6F5F2;
  --peach: #FBEBDD;
  --green: #2E8B57;
  --wa: #25D366;
  --display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --sans: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --announce-h: 0px;
  --header-h: 64px;
}
@media (min-width: 900px) { :root { --header-h: 72px; } }
body.has-announce { --announce-h: 36px; }

/* Base */
*, *::before, *::after { box-sizing: border-box; }
* { -webkit-tap-highlight-color: transparent; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: #fff; color: var(--text); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: var(--orange); text-decoration: none; }
a:hover { color: var(--orange-dark); }
button { font-family: inherit; }
::selection { background: var(--orange); color: #fff; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
[hidden] { display: none !important; }
.site { overflow-x: clip; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -80px; z-index: 100; padding: 12px 16px; border-radius: 10px; background: var(--orange); color: #fff; font: 600 14px/1 var(--sans); }
.skip-link:focus { top: 12px; color: #fff; }
[data-cta], [id] { scroll-margin-top: calc(var(--announce-h) + var(--header-h) + 16px); }

@keyframes edaiUp { from { transform: translateY(20px); } to { transform: none; } }
@keyframes edaiMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Layout */
.container { position: relative; width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.container--narrow { max-width: 800px; }
.section { position: relative; padding: clamp(56px, 8vw, 104px) 0; }
.section--md { padding: clamp(56px, 8vw, 96px) 0; }
.bg-white { background: #fff; }
.bg-paper { background: var(--paper); }
.bg-ink { background: var(--ink); color: #fff; }
.clip { overflow: hidden; }
.split { display: flex; flex-wrap: wrap; gap: clamp(24px, 4vw, 56px); align-items: center; }
.split--top { align-items: flex-start; }
.split__main { flex: 1 1 380px; min-width: min(100%, 280px); }
.split__side { flex: 1 1 320px; min-width: min(100%, 260px); }
.stack { display: flex; flex-direction: column; gap: 12px; }
.center { text-align: center; }

.grid-lines { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 64px 64px; }
.grid-lines--ink { background-image: linear-gradient(rgba(10,31,51,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(10,31,51,.035) 1px, transparent 1px); background-size: 72px 72px; -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 62%); mask-image: linear-gradient(to bottom, #000 0%, transparent 62%); }
.watermark { position: absolute; height: auto; opacity: .05; pointer-events: none; }
.watermark--06 { opacity: .06; }
.glow { position: absolute; right: -12%; top: -18%; width: min(680px, 70%); aspect-ratio: 1; border-radius: 999px; pointer-events: none; background: radial-gradient(circle, rgba(236,116,11,.14) 0%, rgba(236,116,11,.05) 45%, rgba(246,245,242,0) 70%); }
.topbar { position: absolute; left: 0; top: 0; width: 96px; height: 3px; background: var(--orange); pointer-events: none; }
.topbar--full { right: 0; width: auto; }

/* Tipografía */
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0; font: 500 11px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.eyebrow::before { content: ""; flex: 0 0 auto; width: 22px; height: 2px; background: var(--orange); }
.eyebrow--center { justify-content: center; }
.eyebrow--plain::before { display: none; }
.on-dark .eyebrow { color: rgba(255,255,255,.6); }
.eyebrow.eyebrow--orange { color: var(--orange); }
.kicker { font: 500 10px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--muted-2); }
.kicker--orange { color: var(--orange); }

.h1 { margin: 0; font: 600 clamp(40px, 5.4vw, 72px)/.97 var(--display); letter-spacing: -.005em; color: #fff; text-wrap: pretty; }
.h1--home { font-size: clamp(44px, 6.4vw, 88px); line-height: .94; }
.h2 { margin: 0; font: 600 clamp(32px, 4.2vw, 56px)/1.02 var(--display); letter-spacing: -.004em; color: var(--text); text-wrap: balance; }
.h3 { margin: 0; font: 600 21px/1.15 var(--display); color: var(--text); }
.on-dark .h2, .on-dark .h3 { color: #fff; }
.accent { color: var(--orange); }
.lead { margin: 0; max-width: 56ch; font: 400 clamp(16px, 1.35vw, 18px)/1.6 var(--sans); color: var(--muted); text-wrap: pretty; }
.on-dark .lead { color: rgba(255,255,255,.74); }
.body-text { margin: 0; max-width: 56ch; font: 400 16.5px/1.65 var(--sans); color: var(--muted); text-wrap: pretty; }
.on-dark .body-text { color: rgba(255,255,255,.72); }
.note-dark { margin: 0; font: 400 14px/1.6 var(--sans); color: rgba(255,255,255,.55); }
.link-arrow { display: inline-flex; align-items: center; min-height: 44px; font: 600 15px/1 var(--sans); color: var(--orange); }

.sec-head { margin-bottom: clamp(28px, 4vw, 36px); }
.sec-head > .h2 { margin-top: 16px; }
.sec-head > .lead, .sec-head > .body-text { margin-top: 14px; }
.sec-head--center .h2 { max-width: 30ch; margin-left: auto; margin-right: auto; text-align: center; }
.head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin: 16px 0 28px; }
.head-row .lead, .head-row .body-text { margin-top: 12px; }
.statement { margin: 40px auto 0; max-width: 34ch; text-align: center; font: 700 clamp(22px, 2.6vw, 28px)/1.25 var(--display); color: var(--text); }

/* Botones */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 24px; border: 1px solid transparent; border-radius: 12px; font: 600 16px/1 var(--sans); text-align: center; cursor: pointer; transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease; }
.btn--primary { background: var(--orange); color: #fff; }
.btn--primary:hover { background: var(--orange-dark); color: #fff; transform: translateY(-2px); }
.btn--ghost { border-color: rgba(255,255,255,.45); background: transparent; color: #fff; }
.btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,.07); color: #fff; }
.btn--line { border-color: var(--line-strong); background: transparent; color: var(--text); font-size: 15px; }
.btn--line:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.btn--wa { background: var(--wa); color: var(--ink-deep); }
.btn--wa:hover { color: var(--ink-deep); filter: brightness(1.05); }
.btn--md { min-height: 52px; }
.btn--block { display: flex; width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.btn-row--fill .btn { flex: 1 1 230px; }
.dot-wa { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 999px; background: var(--wa); }

.round-btn { width: 46px; height: 46px; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; color: var(--text); font: 400 18px/1 var(--sans); cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.round-btn:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.on-dark .round-btn { border-color: rgba(255,255,255,.28); background: transparent; color: #fff; }
.on-dark .round-btn:hover { background: var(--orange); border-color: var(--orange); }
.nav-btns { display: flex; gap: 8px; }

/* Chips y listas */
.chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: 999px; background: var(--peach); color: var(--text); font: 600 13px/1 var(--sans); }
.chip--md { min-height: 34px; padding: 0 16px; }
.chip--outline { background: transparent; border: 1px solid var(--line); color: var(--muted); }
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }

.proofs { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.proofs li { display: flex; align-items: center; gap: 8px; font: 500 14px/1.3 var(--sans); color: rgba(255,255,255,.78); }
.proofs li::before { content: "✓"; color: var(--green); font: 600 14px/1 var(--sans); }

.checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.checklist li { display: flex; align-items: flex-start; gap: 12px; font: 400 16.5px/1.55 var(--sans); color: var(--text); }
.checklist li::before { content: "✓"; flex: 0 0 auto; width: 24px; height: 24px; border-radius: 999px; background: var(--green); color: #fff; font: 600 13px/24px var(--sans); text-align: center; }
.checklist--sm { gap: 12px; }
.checklist--sm li { align-items: center; font-size: 16px; line-height: 1.5; }
.checklist--sm li::before { width: 22px; height: 22px; font-size: 12px; line-height: 22px; }

/* Anuncio y header */
.announce { position: fixed; top: 0; left: 0; right: 0; z-index: 70; height: 36px; display: flex; align-items: center; justify-content: center; padding: 0 44px 0 16px; background: var(--orange); }
body:not(.has-announce) .announce { display: none; }
.announce a { font: 600 12.5px/1.2 var(--sans); color: var(--ink); text-align: center; }
.announce a:hover { color: var(--ink); text-decoration: underline; }
.announce__close { position: absolute; right: 8px; top: 4px; width: 28px; height: 28px; border: 0; background: transparent; color: var(--ink); font: 400 18px/1 var(--sans); cursor: pointer; }

.site-header { position: fixed; left: 0; right: 0; top: var(--announce-h); z-index: 60; background: rgba(10,31,51,.72); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255,255,255,.10); transition: background-color .25s ease, box-shadow .25s ease; }
body.is-scrolled .site-header, body.header-solid .site-header { background: var(--ink); }
body.is-scrolled .site-header { box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.site-header__inner { display: flex; align-items: center; gap: 18px; max-width: 1200px; height: var(--header-h); margin: 0 auto; padding: 0 16px; }
.site-header__logo { display: flex; align-items: center; min-height: 44px; margin-right: auto; }
.site-header__logo img { width: auto; height: 36px; }
.nav-desktop { display: none; align-items: center; gap: 22px; }
.nav-desktop a { padding: 6px 0; border-bottom: 2px solid transparent; font: 500 15px/1 var(--sans); color: rgba(255,255,255,.82); }
.nav-desktop a:hover, .nav-desktop a[aria-current="page"] { border-bottom-color: var(--orange); color: #fff; }
.nav-desktop .nav-tel { display: flex; align-items: center; gap: 7px; }
.nav-desktop .nav-tel:hover { border-bottom-color: transparent; }
.nav-tel::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: var(--orange); }
.nav-desktop a.btn, .nav-desktop a.btn:hover { min-height: 44px; padding: 0 20px; border-color: transparent; font-size: 15px; color: #fff; }
.nav-mobile { display: flex; align-items: center; gap: 10px; }
.nav-mobile .btn { min-height: 40px; padding: 0 14px; border-radius: 10px; font-size: 14px; }
.burger { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: transparent; cursor: pointer; }
.burger span { display: block; width: 18px; height: 2px; background: #fff; }
.burger span:last-child { background: var(--orange); }
@media (min-width: 900px) {
  .nav-desktop { display: flex; }
  .nav-mobile { display: none; }
}

/* Menú móvil */
.mmenu { position: fixed; inset: 0; z-index: 80; display: flex; flex-direction: column; padding: 18px 20px 26px; overflow-y: auto; background: var(--ink); }
.mmenu__top { display: flex; align-items: center; justify-content: space-between; height: 46px; }
.mmenu__top img { width: auto; height: 36px; }
.mmenu__close { width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: transparent; color: #fff; font: 400 22px/1 var(--sans); cursor: pointer; }
.mmenu__nav { display: flex; flex-direction: column; gap: 2px; margin-top: 26px; }
.mmenu__link { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.10); background: transparent; font: 600 32px/1.15 var(--display); letter-spacing: -.004em; color: #fff; text-align: left; cursor: pointer; }
.mmenu__link:hover { color: var(--orange); }
.mmenu__acc-icon { font: 600 22px/1 var(--sans); color: var(--orange); }
.mmenu__sub { display: flex; flex-direction: column; gap: 2px; padding: 6px 0 10px 2px; }
.mmenu__sub a { padding: 11px 0; font: 500 17px/1 var(--sans); color: rgba(255,255,255,.75); }
.mmenu__sub a:hover { color: var(--orange); }
.mmenu__spacer { flex: 1; min-height: 26px; }
.mmenu .btn--wa { min-height: 56px; font-size: 17px; }
.mmenu__tel { padding: 16px 0; font: 600 17px/1 var(--sans); color: #fff; text-align: center; }
.mmenu__jobs { font: 400 13px/1 var(--sans); color: var(--muted-2); text-align: center; }
body.menu-open { overflow: hidden; }
@media (min-width: 900px) { .mmenu { display: none !important; } }

/* Hero */
.hero { position: relative; display: flex; align-items: center; min-height: clamp(560px, 72vh, 760px); padding: clamp(112px, 14vh, 150px) 0 clamp(40px, 6vh, 64px); overflow: hidden; background: var(--ink); color: #fff; }
.hero--home { min-height: clamp(600px, 92vh, 940px); }
.hero--mid { min-height: clamp(500px, 62vh, 680px); }
.hero--short { min-height: clamp(380px, 44vh, 520px); padding-top: clamp(112px, 14vh, 140px); padding-bottom: clamp(32px, 5vh, 48px); }
.hero--bolsa { min-height: clamp(420px, 52vh, 560px); padding-top: clamp(112px, 14vh, 140px); padding-bottom: clamp(32px, 5vh, 48px); }
.hero__media { position: absolute; inset: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero__media--flip { transform: scaleX(-1); }
.hero__scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, #0A1F33 0%, rgba(10,31,51,.06) 26%, rgba(10,31,51,0) 52%), linear-gradient(100deg, #0A1F33 0%, rgba(10,31,51,.94) 22%, rgba(10,31,51,.72) 40%, rgba(10,31,51,.32) 62%, rgba(10,31,51,.06) 84%, rgba(10,31,51,0) 100%); }
@media (max-width: 899px) {
  /* En móvil la foto queda detrás del texto: se oscurece más para mantener legibilidad */
  .hero__scrim { background: linear-gradient(to top, #0A1F33 0%, rgba(10,31,51,.35) 40%, rgba(10,31,51,.35) 100%), linear-gradient(100deg, #0A1F33 0%, rgba(10,31,51,.9) 45%, rgba(10,31,51,.6) 100%); }
}
.hero__content { position: relative; max-width: min(100%, 760px); }
.hero--home .hero__content { max-width: min(100%, 720px); }
.hero .eyebrow { margin-bottom: 18px; color: rgba(255,255,255,.62); }
.hero--home .eyebrow { margin-bottom: 20px; }
.hero .h1:not(.h1--home) { max-width: 22ch; }
.hero .lead { margin-top: 20px; max-width: 54ch; color: rgba(255,255,255,.74); }
.hero .btn-row { margin-top: 26px; }
.hero__split { position: relative; }
.hero__split .split__main { flex-basis: 420px; min-width: min(100%, 300px); max-width: min(100%, 760px); }

/* Marquesina de confianza */
.trust { position: relative; overflow: hidden; background: var(--paper); border-bottom: 1px solid var(--line); }
.trust::before, .trust::after { content: ""; position: absolute; top: 0; bottom: 0; z-index: 1; width: 64px; pointer-events: none; }
.trust::before { left: 0; background: linear-gradient(to right, var(--paper), rgba(246,245,242,0)); }
.trust::after { right: 0; background: linear-gradient(to left, var(--paper), rgba(246,245,242,0)); }
.trust__track { display: flex; width: max-content; animation: edaiMarquee 34s linear infinite; }
.trust__track:hover { animation-play-state: paused; }
.trust__group { display: flex; margin: 0; padding: 0 0 0 30px; list-style: none; }
.trust__item { flex: 0 0 auto; display: flex; align-items: center; gap: 14px; min-height: 92px; margin-right: 30px; padding-right: 30px; border-right: 1px solid var(--line); transition: transform .3s ease; }
.trust__item:hover { transform: translateY(-3px); }
.trust__disc { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border: 1px solid var(--line); border-radius: 999px; background: #fff; transition: border-color .3s ease, box-shadow .3s ease, background-color .3s ease; }
.trust__disc img { width: 30px; height: 30px; }
.trust__item:hover .trust__disc { border-color: var(--orange); background: #FFF6EE; box-shadow: 0 8px 20px rgba(236,116,11,.22); }
.trust__label { white-space: nowrap; font: 600 15px/1.35 var(--sans); color: var(--text); }

/* Tarjetas base */
.card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; transition: transform .32s ease, border-color .32s ease, box-shadow .32s ease; }
.card:hover { transform: translateY(-6px); border-color: rgba(236,116,11,.6); box-shadow: 0 18px 38px rgba(10,31,51,.14); }
.card__bar { position: absolute; left: 0; top: 0; width: 32px; height: 3px; background: var(--orange); transition: width .45s ease; }
.card:hover .card__bar, .diff:hover .card__bar { width: 100%; }
.rise { animation: edaiUp .7s ease both; }

.cards-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 18px; margin-top: clamp(32px, 4.5vw, 52px); }
.solve { display: flex; flex-direction: column; padding: 20px 22px 26px; }
.solve:hover { border-color: rgba(236,116,11,.55); box-shadow: 0 20px 44px rgba(10,31,51,.13); }
.solve__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.solve__check { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 999px; color: #C9C6C0; font: 600 14px/28px var(--sans); text-align: center; transition: background-color .32s ease, border-color .32s ease, color .32s ease; }
.solve:hover .solve__check { background: var(--orange); border-color: var(--orange); color: #fff; }
.solve__frame { position: relative; height: 180px; margin-bottom: 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); transition: background-color .32s ease, border-color .32s ease; }
.solve__frame img { width: 100%; height: 100%; object-fit: contain; transition: transform .6s ease; }
.solve:hover .solve__frame { background: var(--peach); border-color: rgba(236,116,11,.4); }
.solve:hover .solve__frame img { transform: scale(1.05); }
.solve .h3 { font-size: 22px; }
.solve p { margin: 10px 0 0; font: 400 16px/1.6 var(--sans); color: var(--muted); text-wrap: pretty; }

/* Líneas de solución */
.sol-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.sol { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: clamp(380px, 40vw, 480px); overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--ink-soft); color: #fff; transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease; }
.sol:hover { transform: translateY(-6px); border-color: rgba(236,116,11,.55); box-shadow: 0 26px 54px rgba(10,31,51,.2); color: #fff; }
.sol__media { position: absolute; inset: 0; }
.sol__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.sol:hover .sol__media img { transform: scale(1.06); }
.sol__grid { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(236,116,11,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(236,116,11,.10) 1px, transparent 1px); background-size: 34px 34px; }
.sol__scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, #0A1F33 8%, rgba(10,31,51,.86) 46%, rgba(10,31,51,.15) 100%); }
.sol__body { position: relative; padding: 26px 24px 24px; }
.sol .h3 { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.03; color: #fff; }
.sol p { margin: 12px 0 0; max-width: 40ch; font: 400 16px/1.6 var(--sans); color: rgba(255,255,255,.76); }
.sol .chip-row { margin-top: 18px; }
.sol__arrow { display: inline-block; margin-top: 20px; font: 600 15px/1 var(--sans); color: var(--orange); transition: transform .3s ease; }
.sol:hover .sol__arrow { transform: translateX(6px); }

.banner-link { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; margin-top: 16px; padding: 26px 24px; overflow: hidden; border: 1px solid var(--line); border-left: 3px solid var(--orange); border-radius: 16px; background: #fff; color: var(--text); transition: transform .25s ease, box-shadow .25s ease; }
.banner-link:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(10,31,51,.12); color: var(--text); }
.banner-link__text { position: relative; max-width: 58ch; }
.banner-link__title { margin: 10px 0 0; font: 600 clamp(20px, 2.2vw, 26px)/1.2 var(--display); color: var(--text); }
.banner-link__sub { margin: 8px 0 0; font: 400 15.5px/1.6 var(--sans); color: var(--muted); }
.banner-link__btn { position: relative; display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border: 1px solid var(--line-strong); border-radius: 12px; font: 600 15px/1 var(--sans); color: var(--orange); }

/* Carruseles horizontales */
.hscroll { display: flex; gap: 16px; margin: 0 -20px; padding: 8px 20px 14px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.hscroll::-webkit-scrollbar { display: none; }
.hscroll > * { flex: 0 0 auto; scroll-snap-align: start; }
.hscroll--start { align-items: flex-start; }

.steps-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; padding-top: 8px; }
.steps-grid .stepc { width: auto; }
.stepc { display: flex; flex-direction: column; gap: 12px; width: min(78vw, 300px); padding: 22px 22px 26px; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: inherit; text-align: left; cursor: pointer; transition: transform .25s ease, border-color .25s ease, background-color .25s ease, box-shadow .25s ease; }
.stepc__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.stepc__n { font: 700 clamp(44px, 5vw, 64px)/.85 var(--display); color: var(--line-strong); transition: color .25s ease; }
.stepc__meta { font: 500 10px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted-2); transition: color .25s ease; }
.stepc__line { display: block; width: 24px; height: 2px; background: var(--line); transition: width .35s ease, background-color .25s ease; }
.stepc .h3 { font-size: clamp(21px, 2.2vw, 26px); transition: color .25s ease; }
.stepc p { margin: 0; font: 400 15.5px/1.6 var(--sans); color: var(--muted); text-wrap: pretty; transition: color .25s ease; }
.stepc.is-active { transform: translateY(-6px); border-color: var(--ink); background: var(--ink); box-shadow: 0 18px 40px rgba(10,31,51,.22); }
.stepc.is-active .stepc__n { color: var(--orange); }
.stepc.is-active .stepc__meta { color: rgba(255,255,255,.5); }
.stepc.is-active .stepc__line { width: 56px; background: var(--orange); }
.stepc.is-active .h3 { color: #fff; }
.stepc.is-active p { color: rgba(255,255,255,.72); }
.dots { display: flex; gap: 6px; margin-top: 10px; }
.dots button { flex: 1 1 0; height: 19px; padding: 8px 0; border: 0; border-radius: 999px; background: var(--line); background-clip: content-box; cursor: pointer; transition: background-color .25s ease; }
.dots button.is-active { background-color: var(--orange); }

.diff { position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.06); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.diff:hover { transform: translateY(-6px); border-color: rgba(236,116,11,.55); box-shadow: 0 18px 40px rgba(0,0,0,.4); }
.diff .card__bar { width: 34px; height: 2px; transition-duration: .35s; }
.diff--wide { width: min(88vw, 520px); }
.diff--small { width: min(72vw, 290px); padding: 24px 22px 26px; }
.diff__media { position: relative; height: clamp(170px, 20vw, 230px); background: var(--ink-deep); }
.diff__media img { width: 100%; height: 100%; object-fit: cover; }
.diff__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,20,33,.92), rgba(6,20,33,.15)); }
.diff__media--side::after { background: linear-gradient(to right, rgba(6,20,33,.2), rgba(6,20,33,.85)); }
.diff__tag { position: absolute; z-index: 1; right: 18px; top: 16px; font: 500 10px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--orange); }
.diff__tag--bottom { top: auto; bottom: 16px; color: rgba(255,255,255,.5); }
.diff__body { padding: 22px 24px 26px; }
.diff .h3 { color: #fff; }
.diff--wide .h3 { font-size: clamp(22px, 2.2vw, 28px); }
.diff p { margin: 10px 0 0; font: 400 15.5px/1.6 var(--sans); color: rgba(255,255,255,.7); text-wrap: pretty; }
.diff--wide p { max-width: 52ch; font-size: 16px; color: rgba(255,255,255,.72); }
.disc { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 20px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(255,255,255,.05); transition: border-color .3s ease, background-color .3s ease, transform .3s ease; }
.disc img { width: 30px; height: 30px; }
.diff:hover .disc { border-color: var(--orange); background: rgba(236,116,11,.16); transform: translateY(-2px); }

.case { display: flex; flex-direction: column; width: min(80vw, 320px); min-height: 400px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.case:hover { transform: translateY(-6px); border-color: rgba(236,116,11,.6); box-shadow: 0 20px 42px rgba(10,31,51,.16); }
.case__media { position: relative; height: 190px; overflow: hidden; background: var(--ink-deep); }
.case__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.case:hover .case__media img { transform: scale(1.06); }
.case__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,20,33,.82), rgba(6,20,33,0) 62%); }
.case__title { position: absolute; z-index: 1; left: 18px; right: 18px; bottom: 14px; margin: 0; font: 600 24px/1.1 var(--display); color: #fff; }
.case__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 12px; padding: 20px 20px 22px; }
.case__body .kicker { letter-spacing: .18em; color: var(--orange); }
.case__body p { margin: 0; font: 400 15.5px/1.6 var(--sans); color: var(--muted); text-wrap: pretty; }

/* Marco de imagen con barra de estado */
.frame { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--ink); }
.frame--light { background: #fff; }
.frame--dark { border-color: rgba(255,255,255,.14); background: var(--ink-deep); }
.frame--soft { border-color: rgba(255,255,255,.14); background: var(--ink-soft); }
.frame__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
.frame__label { font: 500 10px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.frame__status { flex: 0 0 auto; font: 500 10px/1 var(--sans); letter-spacing: .14em; color: var(--green); }
.frame__status--orange { color: var(--orange); }
.frame__media { position: relative; min-height: clamp(240px, 28vw, 340px); overflow: hidden; background: var(--ink-deep); }
.frame__media--sm { min-height: clamp(220px, 26vw, 300px); }
.frame__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.frame__media--fade::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,20,33,.85), rgba(6,20,33,.1)); }

/* FAQ */
.faq { display: flex; flex-direction: column; }
.faq__item { border-top: 1px solid var(--line); }
.faq__h { margin: 0; font: inherit; }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 20px 0; border: 0; background: transparent; font: 600 clamp(16.5px, 1.6vw, 18px)/1.4 var(--sans); color: var(--text); text-align: left; cursor: pointer; }
.faq__icon { flex: 0 0 auto; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 999px; color: var(--orange); font: 400 18px/30px var(--sans); text-align: center; transition: transform .2s ease; }
.faq__q[aria-expanded="true"] .faq__icon { transform: rotate(45deg); }
.faq__a { margin: 0; padding: 0 48px 24px 0; font: 400 16px/1.65 var(--sans); color: var(--muted); text-wrap: pretty; }

/* Sección CTA con formulario */
.cta { position: relative; padding: clamp(56px, 8vw, 96px) 0; overflow: hidden; background: var(--ink); color: #fff; }
.cta__glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(120% 90% at 12% 0%, rgba(236,116,11,.38) 0%, rgba(236,116,11,.12) 42%, rgba(10,31,51,0) 72%); }
.cta .split { gap: clamp(28px, 4vw, 56px); }
.cta__text { flex: 1 1 380px; min-width: min(100%, 280px); }
.cta__form { flex: 1 1 400px; min-width: min(100%, 280px); }
.cta .h2 { margin-top: 16px; text-wrap: pretty; }
.cta .lead { margin-top: 16px; max-width: 46ch; font-size: clamp(16px, 1.3vw, 18px); color: rgba(255,255,255,.92); }

.form-card { width: 100%; padding: 22px 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 18px 40px rgba(10,31,51,.10); color: var(--text); }
.form-card__eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 18px; font: 500 10px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.form-card__eyebrow::before { content: ""; width: 18px; height: 2px; background: var(--orange); }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 215px), 1fr)); gap: 14px; }
.field { display: flex; flex-direction: column; gap: 6px; font: 600 13px/1.2 var(--sans); color: var(--text); }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--line); border-radius: 12px; background-color: #fff; font: 400 16px/1 var(--sans); color: var(--text); transition: border-color .18s ease, box-shadow .18s ease; }
.field input, .field select { height: 48px; padding: 0 12px; }
.field select { -webkit-appearance: none; appearance: none; padding-right: 36px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235C6068' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 12px 8px; }
.field textarea { min-height: 96px; padding: 12px; line-height: 1.5; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--orange); outline: none; box-shadow: 0 0 0 3px rgba(236,116,11,.18); }
.form-card__submit { width: 100%; min-height: 52px; margin-top: 18px; border: 0; border-radius: 12px; background: var(--ink); color: #fff; font: 600 16px/1 var(--sans); cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.form-card__submit:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(10,31,51,.25); }
.form-card__submit:disabled { opacity: .6; cursor: progress; transform: none; box-shadow: none; }
.form-card__error { margin: 12px 0 0; font: 500 14px/1.5 var(--sans); color: #B3261E; }
.form-card__alt { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; font: 400 14px/1.4 var(--sans); color: var(--muted); }
.form-card__wa { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--ink); border-radius: 12px; font: 600 14px/1 var(--sans); color: var(--text); }
.form-card__wa:hover { background: var(--ink); color: #fff; }
.form-card__wa .dot-wa { width: 9px; height: 9px; }
.form-card__legal { margin: 14px 0 0; font: 400 13px/1.6 var(--sans); color: var(--muted); }
.form-card__legal a { color: var(--muted); text-decoration: underline; }

/* Intramuros: necesidades */
.need-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; }
.need { display: flex; flex-direction: column; gap: 14px; padding: 24px 22px 26px; }
.need__num { position: absolute; right: 16px; top: 12px; font: 700 46px/1 var(--display); color: var(--line-soft); transition: color .3s ease; }
.need:hover .need__num { color: var(--orange); }
.need__disc { position: relative; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); transition: background-color .3s ease, border-color .3s ease, transform .3s ease; }
.need__disc img { width: 32px; height: 32px; }
.need:hover .need__disc { border-color: var(--orange); background: var(--peach); transform: scale(1.06); }
.need .h3, .need p { position: relative; }
.need p { margin: 0; font: 400 15.5px/1.6 var(--sans); color: var(--muted); text-wrap: pretty; }

/* Niveles */
.levels { display: flex; align-items: flex-start; gap: 16px; padding: 32px 0 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.levels::-webkit-scrollbar { display: none; }
.level { position: relative; flex: 1 0 0; min-width: min(86%, 272px); padding: 24px 20px 26px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.06); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); scroll-snap-align: center; transition: border-color .3s ease, box-shadow .3s ease; }
.level:hover { border-color: rgba(236,116,11,.6); box-shadow: 0 22px 48px rgba(0,0,0,.42); }
.level--featured { border: 2px solid var(--orange); background: rgba(236,116,11,.10); transform: translateY(-16px); }
.level__badge { position: absolute; top: -13px; left: 22px; display: inline-flex; align-items: center; min-height: 26px; padding: 0 12px; border-radius: 999px; background: var(--orange); color: #fff; font: 600 12px/1 var(--sans); }
.level__bars { display: flex; align-items: flex-end; gap: 4px; height: 28px; margin-bottom: 16px; }
.level__bars span { display: block; width: 7px; background: rgba(255,255,255,.22); }
.level__bars span:nth-child(1) { height: 13px; }
.level__bars span:nth-child(2) { height: 20px; }
.level__bars span:nth-child(3) { height: 27px; }
.level__bars span.on { background: var(--orange); }
.level .h3 { font-size: clamp(26px, 2.8vw, 34px); line-height: 1.05; }
.level__desc { margin: 8px 0 20px; font: 400 15.5px/1.55 var(--sans); color: rgba(255,255,255,.7); }
.level__list { display: flex; flex-direction: column; gap: 11px; margin: 0 0 20px; padding: 18px 0 0; border-top: 1px solid rgba(255,255,255,.12); list-style: none; }
.level__list li { display: flex; align-items: flex-start; gap: 10px; font: 400 15px/1.5 var(--sans); color: rgba(255,255,255,.85); }
.level__list li::before { content: "✓"; flex: 0 0 auto; color: var(--green); font: 600 14px/1.5 var(--sans); }
.level__list:not(.is-expanded) .is-extra { display: none; }
.level__more { padding: 0 0 18px; border: 0; background: transparent; font: 600 14px/1 var(--sans); color: var(--orange); cursor: pointer; }
.level__cta { width: 100%; min-height: 50px; border: 0; border-radius: 12px; background: var(--orange); color: #fff; font: 600 15px/1 var(--sans); cursor: pointer; transition: background-color .18s ease; }
.level__cta:hover { background: var(--orange-dark); }

.btn-toggle { min-height: 48px; padding: 0 22px; border: 1px solid rgba(255,255,255,.24); border-radius: 12px; background: transparent; font: 600 15px/1 var(--sans); color: #fff; cursor: pointer; transition: border-color .18s ease, color .18s ease; }
.btn-toggle:hover { border-color: var(--orange); color: var(--orange); }

.compare { margin-top: 28px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.04); }
.compare__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.compare table { width: 100%; min-width: 620px; border-collapse: collapse; }
.compare th, .compare td { padding: 13px 16px; border-bottom: 1px solid rgba(255,255,255,.08); text-align: center; }
.compare thead th { padding: 14px 16px; border-bottom-color: rgba(255,255,255,.14); font: 600 13px/1.3 var(--sans); color: rgba(255,255,255,.8); }
.compare thead th:first-child, .compare tbody th { position: sticky; left: 0; min-width: 230px; background: var(--ink-soft); text-align: left; }
.compare thead th:first-child { color: #fff; }
.compare thead th.is-featured { color: var(--orange); }
.compare tbody th { font: 400 14.5px/1.4 var(--sans); color: rgba(255,255,255,.85); }
.compare tbody td:nth-of-type(2) { background: rgba(236,116,11,.07); }
@media (max-width: 599px) {
  /* En móvil las 4 columnas caben sin desplazamiento horizontal */
  .compare table { min-width: 0; table-layout: fixed; }
  .compare th, .compare td, .compare thead th { padding: 11px 6px; }
  .compare thead th { font-size: 12px; }
  .compare thead th:first-child, .compare tbody th { position: static; width: 46%; min-width: 0; padding-left: 12px; font-size: 13.5px; }
}
@media (max-width: 374px) {
  .compare th, .compare td, .compare thead th { padding: 10px 3px; }
  .compare thead th { font-size: 10.5px; }
  .compare thead th:first-child, .compare tbody th { width: 38%; padding-left: 10px; font-size: 12.5px; }
}
.yes { color: var(--green); font: 600 16px/1 var(--sans); }
.no { color: var(--muted); font: 400 16px/1 var(--sans); }

.band { padding: clamp(44px, 6vw, 64px) 0; background: var(--peach); }
.band .container { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; min-height: 160px; text-align: center; }
.band .h2 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.05; }
.band p { margin: 0; max-width: 58ch; font: 400 16.5px/1.6 var(--sans); color: var(--muted); }

/* Custodia */
.cstep { width: min(76vw, 300px); min-height: 230px; padding: 22px 20px 24px; }
.cstep .card__bar { width: 30px; }
.cstep__top { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.cstep__n { font: 700 40px/1 var(--display); color: var(--orange); transition: transform .3s ease; }
.cstep:hover .cstep__n { transform: translateY(-2px); }
.cstep__dash { flex: 1; border-top: 2px dashed var(--line); }
.cstep__dot { width: 12px; height: 12px; border-radius: 999px; background: var(--orange); }
.cstep .h3 { font-size: 20px; }
.cstep p { margin: 8px 0 0; font: 400 15.5px/1.6 var(--sans); color: var(--muted); text-wrap: pretty; }

.carga { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; background: var(--peach); color: var(--text); font: 600 14px/1 var(--sans); transition: transform .22s ease, background-color .22s ease, color .22s ease, box-shadow .22s ease; }
.carga:hover { transform: translateY(-3px); background: var(--orange); color: #fff; box-shadow: 0 10px 22px rgba(236,116,11,.3); }
.rutas { flex: 1 1 340px; min-width: min(100%, 300px); overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.rutas__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.rutas__head .kicker { letter-spacing: .18em; color: var(--muted); }
.rutas__count { font: 500 10px/1 var(--sans); letter-spacing: .14em; color: var(--orange); }
.rutas ul { margin: 0; padding: 0; list-style: none; }
.rutas li { display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 0 20px; border-top: 1px solid var(--line-soft); font: 500 16px/1.4 var(--sans); color: var(--text); transition: background-color .22s ease, padding-left .22s ease; }
.rutas li:first-child { border-top: 0; }
.rutas li::before { content: ""; flex: 0 0 auto; width: 10px; height: 10px; border-radius: 999px; background: var(--orange); transition: transform .22s ease, box-shadow .22s ease; }
.rutas li:hover { padding-left: 26px; background: var(--peach); }
.rutas li:hover::before { transform: scale(1.4); box-shadow: 0 0 0 5px rgba(236,116,11,.18); }

/* Otros servicios: pestañas */
.tabs { display: flex; flex-wrap: wrap; gap: 0 26px; margin: 0 0 30px; border-bottom: 1px solid var(--line); }
.tab { position: relative; flex: 0 0 auto; display: flex; align-items: center; gap: 8px; min-height: 58px; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; transition: transform .2s ease; }
.tab:hover { transform: translateY(-2px); }
.tab::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 0; height: 3px; background: var(--orange); transition: width .35s ease; }
.tab__n { font: 700 22px/1 var(--display); color: #C9C6C0; transition: color .25s ease; }
.tab__t { white-space: nowrap; font: 600 15px/1.2 var(--sans); color: var(--muted); transition: color .25s ease; }
.tab[aria-selected="true"]::after { width: 100%; }
.tab[aria-selected="true"] .tab__n { color: var(--orange); }
.tab[aria-selected="true"] .tab__t { color: var(--text); }
.otros-panel { display: flex; flex-wrap: wrap; align-items: stretch; gap: clamp(24px, 4vw, 52px); }
.otros-panel__text { flex: 1 1 330px; min-width: min(100%, 280px); display: flex; flex-direction: column; justify-content: center; }
.otros-panel__text.is-anim { animation: edaiUp .5s ease both; }
.otros-panel .h2 { max-width: 20ch; margin-top: 14px; font-size: clamp(30px, 3.6vw, 46px); line-height: 1.04; }
.otros-panel .body-text { margin-top: 16px; max-width: 50ch; }
.otros-panel .btn-row { margin-top: 26px; }
.otros-media { position: relative; flex: 1 1 380px; min-width: min(100%, 280px); min-height: clamp(260px, 32vw, 400px); overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--ink-deep); transition: border-color .3s ease, box-shadow .3s ease; }
.otros-media:hover { border-color: rgba(236,116,11,.6); box-shadow: 0 20px 44px rgba(10,31,51,.22); }
.otros-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity .5s ease, transform .8s ease; }
.otros-media img.is-on { z-index: 1; opacity: 1; transform: none; }
.otros-media:hover img.is-on { transform: scale(1.05); }
.otros-media__progress { position: absolute; left: 0; bottom: 0; z-index: 3; width: 25%; height: 3px; background: var(--orange); transition: width .5s ease; }

/* Por qué EDAI */
.timeline { position: relative; display: flex; flex-direction: column; gap: clamp(28px, 4vw, 44px); padding-left: 26px; border-left: 2px solid var(--orange); }
.timeline__item { display: flex; flex-wrap: wrap; align-items: baseline; gap: clamp(14px, 2vw, 32px); }
.timeline__n { flex: 0 0 auto; font: 700 clamp(48px, 5vw, 72px)/.85 var(--display); color: var(--orange); }
.timeline__body { flex: 1 1 300px; min-width: min(100%, 260px); }
.timeline .h3 { font-size: clamp(22px, 2.2vw, 28px); }
.timeline p { margin: 8px 0 0; max-width: 52ch; font: 400 16px/1.6 var(--sans); color: var(--muted); text-wrap: pretty; }

.pills { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; padding: 0; list-style: none; }
.pill { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; font: 600 14px/1 var(--sans); color: #fff; }
.pill::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: var(--orange); }
.mosaic { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); align-items: start; gap: 14px; }
.mosaic__tile { position: relative; min-height: clamp(160px, 18vw, 200px); overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: var(--ink-soft); }
.mosaic__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mosaic__tile--wide { grid-column: span 2; min-height: clamp(200px, 24vw, 280px); background: var(--ink-deep); }
.mosaic__tile--wide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,20,33,.9), rgba(6,20,33,.15)); }
@media (max-width: 499px) { .mosaic__tile--wide { grid-column: auto; } }

.stat-card { position: relative; display: flex; flex-direction: column; gap: 20px; padding: 28px 26px; overflow: hidden; border-radius: 16px; background: var(--ink); color: #fff; }
.stat-card > :not(.watermark) { position: relative; }
.stat-card__num { font: 700 clamp(48px, 6.5vw, 84px)/.9 var(--display); color: var(--orange); }
.stat-card__num span { color: rgba(255,255,255,.35); }
.stat-card p { margin: 0; font: 400 16px/1.6 var(--sans); color: rgba(255,255,255,.74); }
.testi { display: flex; flex-direction: column; gap: 16px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); }
.testi figure { margin: 0; }
.testi blockquote { margin: 0; font: 400 15px/1.6 var(--sans); color: rgba(255,255,255,.86); }
.testi figcaption { margin-top: 6px; font: 400 12.5px/1.4 var(--sans); color: rgba(255,255,255,.5); }

/* Cotizar */
.page-top { position: relative; padding: clamp(112px, 14vh, 150px) 0 clamp(48px, 7vw, 88px); overflow: hidden; background: #fff; }
.page-top .h1 { max-width: 22ch; margin-top: 16px; font-size: clamp(38px, 5vw, 68px); line-height: .98; color: var(--text); }
.page-top .lead { margin: 16px 0 clamp(32px, 4vw, 48px); }
.quote-layout { display: flex; flex-wrap: wrap; align-items: flex-start; gap: clamp(20px, 3vw, 36px); }
.quote-layout__form { flex: 3 1 380px; min-width: min(100%, 280px); }
.quote-layout__aside { position: sticky; top: calc(var(--announce-h) + var(--header-h) + 24px); flex: 2 1 280px; min-width: min(100%, 260px); }
.contact-card { display: flex; flex-direction: column; gap: 14px; padding: 26px 24px; border-radius: 16px; background: var(--ink); color: #fff; }
.contact-card h2 { margin: 0; font: 800 26px/1.1 var(--display); color: #fff; }
.contact-card .btn { min-height: 52px; font-size: 15px; }
.contact-card .btn--ghost { border-color: rgba(255,255,255,.35); }
.contact-card .btn--ghost:hover { border-color: var(--orange); background: transparent; color: var(--orange); }
.contact-card__mail { display: inline-flex; align-items: center; min-height: 44px; font: 400 15px/1.5 var(--sans); color: rgba(255,255,255,.75); overflow-wrap: anywhere; }
.contact-card__mail:hover { color: var(--orange); }
.contact-card__meta { font: 400 14px/1.6 var(--sans); color: rgba(255,255,255,.55); }
.contact-card__meta a { display: inline-block; margin: -12px 0; padding: 12px 0; font-weight: 600; color: #fff; white-space: nowrap; }
.contact-card__meta a:hover { color: var(--orange); }
.map { position: relative; min-height: 150px; margin-top: 6px; overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: var(--ink-deep); }
.map img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map span { position: absolute; left: 12px; bottom: 10px; font: 500 10px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: clamp(28px, 4vw, 44px); padding-top: 26px; border-top: 1px solid var(--line); list-style: none; padding-left: 0; }
.badge-dot { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 16px; border-radius: 999px; background: var(--peach); color: var(--text); font: 600 13.5px/1 var(--sans); }
.badge-dot::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: var(--orange); }

/* Bolsa de trabajo */
.benefits { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 16px; }
.benefit { display: flex; flex-direction: column; gap: 14px; min-height: 150px; padding: 24px; border: 1px solid var(--line); border-radius: 16px; }
.benefit img { width: 34px; height: 34px; }
.benefit .h3 { line-height: 1.2; }
.vacante { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.vacante .h3 { line-height: 1.2; }
.vacante .chip-row { margin-top: 12px; }

/* Gracias */
.thanks { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: clamp(120px, 16vh, 180px) 20px clamp(60px, 8vh, 90px); background: var(--paper); }
.thanks__inner { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; max-width: 620px; text-align: center; }
.thanks__mark { position: relative; display: flex; align-items: center; justify-content: center; width: 120px; height: 120px; }
.thanks__mark img { width: 120px; height: auto; opacity: .18; }
.thanks__check { position: absolute; width: 54px; height: 54px; border: 2px solid var(--green); border-radius: 999px; color: var(--green); font: 600 24px/50px var(--sans); text-align: center; }
.thanks .h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1; color: var(--text); }
.thanks .lead { max-width: 46ch; line-height: 1.65; }

/* Legal */
.legal { padding: clamp(112px, 14vh, 150px) 0 clamp(56px, 8vw, 96px); background: #fff; }
.legal .h1 { font-size: clamp(34px, 4.4vw, 56px); line-height: 1.02; color: var(--text); }
.legal__index { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 clamp(36px, 5vw, 56px); padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.legal__index a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--paper); font: 600 14px/1 var(--sans); color: var(--text); }
.legal__index a:hover { background: var(--peach); color: var(--text); }
.legal section + section { margin-top: clamp(40px, 6vw, 64px); }
.legal h2 { margin: 0 0 18px; font: 600 clamp(24px, 2.6vw, 32px)/1.15 var(--display); color: var(--text); }
.legal p { margin: 0 0 16px; font: 400 16px/1.7 var(--sans); color: var(--muted); }
.legal h3 { margin: 32px 0 12px; font: 600 clamp(20px, 2vw, 24px)/1.2 var(--display); color: var(--text); }
.legal ul { margin: 0 0 16px; padding-left: 22px; }
.legal li { margin-bottom: 8px; font: 400 16px/1.7 var(--sans); color: var(--muted); }
.legal li::marker { color: var(--orange); }
.legal p a, .legal li a { color: var(--text); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.legal p a:hover { color: var(--orange); }
.legal__date { font-size: 14px; color: var(--muted-2); }
.legal .note { margin: 0; padding: 16px 18px; border-left: 2px solid var(--orange); background: var(--paper); font-size: 15px; line-height: 1.65; }

/* Footer */
.site-footer { padding-top: clamp(44px, 6vw, 72px); background: var(--ink); color: #fff; }
.site-footer__grid { display: flex; flex-wrap: wrap; gap: clamp(28px, 3vw, 40px); }
.foot-brand { flex: 1 1 280px; min-width: min(100%, 260px); }
.foot-brand img { width: min(260px, 80%); height: auto; }
.foot-brand p { margin: 20px 0 0; font: 400 15px/1.6 var(--sans); color: rgba(255,255,255,.6); }
.social { display: flex; gap: 10px; margin-top: 20px; }
.social a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; font: 600 12px/1 var(--sans); color: rgba(255,255,255,.7); }
.social a:hover { border-color: var(--orange); color: var(--orange); }
.foot-col { flex: 1 1 200px; min-width: min(100%, 200px); }
.foot-col--sm { flex-basis: 180px; min-width: min(100%, 180px); }
.foot-col--contact { flex-basis: 230px; min-width: min(100%, 220px); }
.foot-col__h { margin: 0; font: inherit; }
.foot-col__title { display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 0; padding: 0 0 14px; border: 0; background: transparent; font: 500 11px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--orange); text-align: left; }
button.foot-col__title { cursor: pointer; }
.foot-col__icon { display: none; font: 600 16px/1 var(--sans); letter-spacing: 0; color: #fff; }
.foot-col__links { display: flex; flex-direction: column; gap: 11px; }
.foot-col__links a { font: 400 15px/1.4 var(--sans); color: rgba(255,255,255,.72); }
.foot-col__links a:hover { color: var(--orange); }
.foot-col__links a.is-strong { font-weight: 600; color: #fff; }
.foot-col__links a.is-strong:hover { color: var(--orange); }
.foot-col__links span { font: 400 15px/1.5 var(--sans); color: rgba(255,255,255,.55); }
@media (max-width: 899px) {
  .foot-col__icon { display: inline; }
  .foot-col__title { min-height: 44px; padding-bottom: 4px; }
  .foot-col[data-open="false"] .foot-col__links { display: none; }
}
@media (min-width: 900px) { button.foot-col__title { cursor: default; } }
.site-footer__bottom { margin-top: clamp(32px, 4vw, 52px); border-top: 1px solid rgba(255,255,255,.10); }
.site-footer__bottom .container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 28px; padding-top: 20px; padding-bottom: 96px; font: 400 13px/1.5 var(--sans); color: rgba(255,255,255,.5); }
@media (min-width: 900px) { .site-footer__bottom .container { padding-bottom: 28px; } }

/* Acciones flotantes */
.sticky-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 65; display: flex; align-items: center; gap: 10px; height: 64px; padding: 0 12px; border-top: 1px solid rgba(255,255,255,.12); background: var(--ink); visibility: hidden; transform: translateY(100%); transition: transform .25s ease, visibility 0s linear .25s; }
body.is-past-hero .sticky-bar { visibility: visible; transform: none; transition: transform .25s ease; }
.sticky-bar .btn { flex: 1 1 0; gap: 8px; min-height: 48px; padding: 0 12px; font-size: 15px; }
.sticky-bar .btn:hover { transform: none; }
.sticky-bar img { width: 22px; height: 22px; }
.wa-float { position: fixed; right: 22px; bottom: 22px; z-index: 65; display: none; align-items: center; gap: 10px; height: 56px; padding-right: 14px; border-radius: 999px; background: var(--wa); color: var(--ink-deep); font: 600 14px/1 var(--sans); box-shadow: 0 12px 28px rgba(0,0,0,.28); }
.wa-float:hover { color: var(--ink-deep); }
.wa-float img { width: 56px; height: 56px; border-radius: 999px; }
@media (min-width: 900px) {
  .sticky-bar { display: none; }
  .wa-float { display: flex; }
}

/* Modal de salida */
.modal { position: fixed; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(6,20,33,.72); }
.modal__box { position: relative; width: 100%; max-width: 440px; padding: 28px 26px; border-radius: 16px; background: #fff; }
.modal__close { position: absolute; right: 10px; top: 8px; width: 36px; height: 36px; border: 0; background: transparent; color: var(--muted); font: 400 20px/1 var(--sans); cursor: pointer; }
.modal h2 { margin: 0; font: 800 32px/1.05 var(--display); color: var(--text); }
.modal p { margin: 12px 0 20px; font: 400 16px/1.6 var(--sans); color: var(--muted); }
.modal .btn { margin-top: 16px; }
.modal__dismiss { width: 100%; margin-top: 10px; padding: 10px; border: 0; background: transparent; font: 400 14px/1 var(--sans); color: var(--muted); cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .trust__track { animation: none; }
  .rise, .otros-panel__text.is-anim { animation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
