/* ============================================================
   Coyfer v12 — editorial minimal de lujo
   Plus Jakarta Sans + Geist · blanco, tinta, un navy
   Grid editorial, hairlines, tipografía como ornamento único.
   Motor de captación: wizard 3 pasos, dock, exit-intent.
   ============================================================ */

:root {
  --ink: #12131c;
  --body: #43485a;
  --muted: #6f7488;
  --faint: #9aa0b2;
  --line: #e8e9ee;
  --navy: #1d2452;
  --navy-soft: #eef0f8;
  --bg: #fefefd;
  --bg-soft: #f7f7f5;
  --ease: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-io: cubic-bezier(0.77, 0, 0.175, 1);
  --display: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --text: "Geist", "Segoe UI", system-ui, sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
a, button { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
h1, h2, h3 { text-wrap: balance; font-family: var(--display); }
section[id], div[id] { scroll-margin-top: 110px; }
img { max-width: 100%; }
[hidden] { display: none !important; }

body {
  font-family: var(--text);
  color: var(--body);
  background: var(--bg);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--ink); color: #fff; }

.wrap { max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.wrap-narrow { max-width: 820px; margin: 0 auto; padding: 0 40px; }

.icon {
  width: 20px; height: 20px; stroke: currentColor; fill: none;
  stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
  display: inline-block; vertical-align: middle; flex: none;
}
.icon-fill { width: 17px; height: 17px; fill: currentColor; display: block; }

/* ---------- Tipos de enlace / botón (contenidos) ---------- */
.link-cta {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--navy); text-decoration: none; background: none; border: none; cursor: pointer;
  padding: 6px 0; position: relative;
}
.link-cta::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--navy); transform: scaleX(1); transform-origin: left;
  transition: transform 300ms var(--ease);
}
.link-cta .icon { width: 15px; height: 15px; transition: transform 250ms var(--ease); }
.link-cta:hover .icon { transform: translateX(5px); }
.link-cta:hover::after { transform: scaleX(0.35); }
.link-cta.big { font-size: 14.5px; }

.btn-ink {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: #fff; background: var(--navy);
  border: 1px solid var(--navy); border-radius: 0;
  padding: 17px 34px; cursor: pointer; text-decoration: none;
  transition: background 220ms var(--ease), color 220ms var(--ease), transform 160ms var(--ease);
}
.btn-ink:hover { background: var(--ink); border-color: var(--ink); }
.btn-ink:active { transform: scale(0.98); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  padding: 14px 22px; border: 1px solid var(--ink); border-radius: 0;
  cursor: pointer; text-decoration: none;
  transition: background 200ms var(--ease), color 200ms var(--ease), transform 160ms var(--ease);
}
.btn:active { transform: scale(0.98); }
.btn .icon { width: 15px; height: 15px; }
.btn-primary { background: var(--navy); color: #fff; border-color: var(--navy); }
.btn-primary:hover { background: var(--ink); border-color: var(--ink); }
.btn-ghost { background: transparent; color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: #fff; }

/* ---------- Cabecera ---------- */
header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 60;
  background: rgba(254, 254, 253, 0.92);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color 250ms var(--ease);
}
header.scrolled { border-bottom-color: var(--line); }
.nav-shell { max-width: 1460px; margin: 0 auto; padding: 0 32px; }
.navbar { display: flex; align-items: center; justify-content: space-between; gap: 32px; height: 76px; }
.logo img { height: 46px; width: auto; display: block; }
.nav-links { display: flex; gap: 37px; align-items: center; list-style: none; }
.nav-links a {
  color: var(--muted); text-decoration: none;
  font-size: 14.5px; font-weight: 500; letter-spacing: 0.02em;
  transition: color 160ms var(--ease);
}
.nav-links a:hover { color: var(--ink); }
.nav-links a.active { color: var(--navy); font-weight: 600; }
.nav-cta { display: flex; align-items: center; gap: 30px; }
.nav-phone {
  color: var(--navy) !important; font-size: 14.5px; font-weight: 600;
  text-decoration: none; font-variant-numeric: tabular-nums;
  display: inline-flex; align-items: center; gap: 8px;
  transition: opacity 150ms var(--ease);
}
.nav-phone:hover { opacity: 0.6; }
.nav-phone .icon { width: 15px; height: 15px; }
.menu-btn { display: none; }
.mobile-menu { display: none; }
.hs-tel {
  color: var(--ink); text-decoration: none; font-weight: 600; font-size: 14.5px;
  font-variant-numeric: tabular-nums;
}
.hs-tel:hover { opacity: 0.6; }

/* ---------- Secciones ---------- */
section { padding: 100px 0; }
.sec-soft { background: var(--bg-soft); }
.sec-kicker {
  font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--faint); margin-bottom: 26px;
}
h2.sec-title {
  font-weight: 700;
  font-size: clamp(25px, 2.5vw, 32px); line-height: 1.15;
  color: var(--ink); letter-spacing: -0.025em;
  max-width: 22ch; margin-bottom: 20px;
}
p.sec-sub { color: var(--muted); max-width: 54ch; font-size: 16px; margin-bottom: 64px; }

/* ---------- Filas gigantes (áreas) ---------- */
.mega-rows { border-top: 1px solid var(--ink); margin-top: 14px; }
.mega-row {
  display: grid; grid-template-columns: 70px 1fr auto 60px;
  align-items: center; gap: 30px;
  padding: 22px 0; border-bottom: 1px solid var(--line);
  text-decoration: none;
  transition: background 300ms var(--ease);
}
.mr-name {
  font-family: var(--display);
  font-size: clamp(25px, 2.5vw, 40px); font-weight: 700;
  letter-spacing: -0.025em; color: var(--ink); line-height: 1;
  transition: transform 300ms var(--ease);
}
.mr-desc { font-size: 13px; color: var(--muted); text-align: right; max-width: 30ch; }
.mr-arrow {
  width: 30px; height: 30px; color: var(--ink);
  opacity: 0; transform: translateX(-10px) rotate(-45deg);
  transition: opacity 250ms var(--ease), transform 300ms var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .mega-row:hover { background: var(--navy-soft); }
  .mega-row:hover > * { transform: translateX(18px); }
  .mega-row:hover .mr-name { color: var(--navy); }
  .mega-row:hover .mr-arrow { opacity: 1; transform: rotate(-45deg); }
}
@media (hover: none) { .mr-arrow { opacity: 1; transform: rotate(-45deg); } }

/* ---------- Índice de productos ---------- */
.prod-list { border-top: 1px solid var(--ink); }

/* ---------- 50 años ---------- */
.legacy {
  display: grid; grid-template-columns: auto 1fr; gap: 72px; align-items: center;
}
.lg-num {
  font-family: var(--display);
  font-size: clamp(51px, 8vw, 51px); font-weight: 700; line-height: 0.9;
  letter-spacing: -0.05em; color: var(--navy);
  display: flex; align-items: baseline; gap: 18px;
  font-variant-numeric: tabular-nums;
}
.lg-word {
  font-size: 13px; font-weight: 700; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--faint);
}
.lg-txt h3 { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); margin-bottom: 14px; }
.lg-txt p { font-size: 16px; color: var(--muted); margin-bottom: 24px; max-width: 52ch; }
.text-link {
  color: var(--ink); font-weight: 600; font-size: 14.5px; letter-spacing: 0.02em;
  display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
  border-bottom: 1px solid var(--ink); padding-bottom: 3px;
}
.text-link .icon { width: 15px; height: 15px; transition: transform 200ms var(--ease); }
.text-link:hover .icon { transform: translateX(4px); }

/* ---------- Proceso (banda navy — bicolor) ---------- */
.navy-band { background: linear-gradient(170deg, #171d47, #0c1030); color: #fff; }
.navy-band .sec-kicker { color: rgba(174, 182, 226, 0.85); }
.navy-band h2.sec-title { color: #fff; }
.navy-band p.sec-sub { color: rgba(255, 255, 255, 0.58); }
.steps { border-top: 1px solid rgba(255, 255, 255, 0.35); }
.step {
  display: grid; grid-template-columns: 120px 1fr; gap: 40px;
  padding: 30px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.step .n {
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.18em; color: #aeb6e2; font-variant-numeric: tabular-nums;
  padding-top: 4px;
}
.step h3 { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; color: #fff; margin-bottom: 8px; }
.step p { font-size: 14.5px; color: rgba(255, 255, 255, 0.6); max-width: 62ch; }

/* ---------- Contacto ---------- */
.contact2 { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; align-items: center; }
.c2-sub { color: var(--muted); font-size: 16px; max-width: 44ch; margin-bottom: 34px; }
.c2-data { border-top: 1px solid var(--ink); margin-bottom: 30px; }
.c2-pair { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.c2-pair > span {
  font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--faint);
}
.c2-pair a { color: var(--navy); font-weight: 700; text-decoration: none; font-size: 18px; font-variant-numeric: tabular-nums; }
.c2-pair a:hover { opacity: 0.6; }
.c2-pair b { font-size: 14.5px; font-weight: 500; color: var(--body); }
.assurances { display: grid; gap: 12px; }
.assurances li { list-style: none; display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; color: var(--body); }
.assurances .icon { width: 15px; height: 15px; color: var(--navy); margin-top: 4px; }

.c2-card { padding-top: 6px; }
.c2-card > h3 { font-size: 16px; font-weight: 700; letter-spacing: -0.015em; color: var(--ink); margin-bottom: 30px; }
.f2 { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.cb-form { display: flex; flex-direction: column; gap: 26px; }
.cb-form label {
  display: block; font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--faint); margin-bottom: 8px;
}
.cb-form input, .cb-form select {
  font-family: var(--text); font-size: 18px; color: var(--ink);
  padding: 8px 0 12px; border: none; border-bottom: 1px solid #c7cad6;
  background: transparent; outline: none; width: 100%;
  appearance: none; border-radius: 0;
  transition: border-color 200ms var(--ease);
}
.cb-form input:focus, .cb-form select:focus { border-bottom-color: var(--ink); }
.cb-form input::placeholder { color: var(--faint); }
.cb-form .btn { margin-top: 10px; align-self: flex-start; padding: 16px 34px; }
.cb-privacy { font-size: 13px; color: var(--faint); }
.cb-ok { display: none; padding: 20px 0; }
.cb-ok .check { color: var(--ink); margin-bottom: 14px; }
.cb-ok h3 { font-size: 18px; font-weight: 700; color: var(--ink); margin-bottom: 8px; }
.cb-ok p { font-size: 14.5px; color: var(--muted); }

/* ---------- FAQ ---------- */
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item:first-of-type { border-top: 1px solid var(--ink); }
.faq-q {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  font-family: var(--display); font-size: 16px; font-weight: 700; letter-spacing: -0.01em;
  color: var(--ink); padding: 26px 48px 26px 0; position: relative;
  transition: opacity 150ms var(--ease);
}
.faq-q:hover { opacity: 0.65; }
.faq-q::before, .faq-q::after {
  content: ""; position: absolute; right: 8px; top: 50%;
  width: 15px; height: 1.5px; background: var(--ink);
  transform: translateY(-50%);
  transition: transform 300ms var(--ease);
}
.faq-q::after { transform: translateY(-50%) rotate(90deg); }
.faq-item.open .faq-q::before, .faq-item.open .faq-q::after { background: var(--navy); }
.faq-item.open .faq-q::after { transform: translateY(-50%) rotate(0deg); }
.faq-q:active { opacity: 0.5; }
.faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 320ms var(--ease-io); }
.faq-item.open .faq-a { grid-template-rows: 1fr; }
.faq-a p { overflow: hidden; min-height: 0; color: var(--muted); font-size: 14.5px; max-width: 64ch; }
.faq-item.open .faq-a p { padding-bottom: 28px; }

/* ---------- Oficinas ---------- */
.offices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 56px; border-top: 1px solid var(--ink); padding-top: 44px; }
.office h3 { font-size: 16px; font-weight: 700; letter-spacing: -0.015em; color: var(--ink); margin-bottom: 12px; }
.office p { font-size: 14.5px; color: var(--muted); margin-bottom: 10px; }
.office a { color: var(--ink); font-weight: 600; text-decoration: none; font-size: 16px; font-variant-numeric: tabular-nums; border-bottom: 1px solid var(--line); padding-bottom: 2px; }
.office a:hover { border-color: var(--ink); }

/* ---------- Pie ---------- */
footer { background: linear-gradient(180deg, #0c1030, #080a20); color: rgba(255, 255, 255, 0.62); padding: 84px 0 44px; }
.foot-grid { display: flex; justify-content: space-between; gap: 48px; flex-wrap: wrap; margin-bottom: 60px; }
.foot-brand img { height: 38px; width: auto; margin-bottom: 20px; filter: brightness(0) invert(1); opacity: 0.95; }
.foot-brand p { font-size: 14.5px; max-width: 32ch; line-height: 1.75; }
.foot-social { margin-top: 20px; display: flex; gap: 14px; }
.foot-social a { color: rgba(255, 255, 255, 0.45); transition: color 150ms var(--ease); display: block; }
.foot-social a:hover { color: #fff; }
.foot-col h2 {
  font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35); margin: 0 0 18px;
}
.foot-col a {
  display: block; color: rgba(255, 255, 255, 0.6); text-decoration: none;
  font-size: 14.5px; margin-bottom: 11px; transition: color 150ms var(--ease);
}
.foot-col a:hover { color: #fff; }
.foot-legal { border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 28px; font-size: 13px; color: rgba(255, 255, 255, 0.35); line-height: 1.9; }

/* ---------- Cookies ---------- */
.cookie-pop {
  position: fixed; left: 24px; bottom: 24px; z-index: 90;
  max-width: 360px; background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 24px 60px -30px rgba(18, 19, 28, 0.35);
  padding: 24px 26px;
  opacity: 0; transform: translateY(14px);
  transition: opacity 400ms var(--ease), transform 400ms var(--ease);
}
.cookie-pop.show { opacity: 1; transform: none; }
.cookie-pop p { font-size: 13px; color: var(--body); line-height: 1.65; margin-bottom: 16px; }
.cookie-pop strong { color: var(--ink); }
.ck-row { display: flex; gap: 10px; }
.ck-row .btn { padding: 12px 16px; font-size: 13px; flex: 1; }

/* ---------- Wizard de captación ---------- */
.wizard { position: fixed; inset: 0; z-index: 100; }
.wz-backdrop {
  position: absolute; inset: 0; background: rgba(18, 19, 28, 0.46);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  opacity: 0; transition: opacity 320ms var(--ease);
}
.wizard.show .wz-backdrop { opacity: 1; }
.wz-panel {
  position: absolute; top: 50%; left: 50%;
  width: min(560px, calc(100vw - 32px));
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
  overflow-y: auto; overscroll-behavior: contain;
  background: var(--bg); border: 1px solid var(--line);
  padding: 54px 56px 48px;
  transform: translate(-50%, -48%) scale(0.985); opacity: 0;
  transition: opacity 340ms var(--ease), transform 340ms var(--ease);
  box-shadow: 0 40px 90px -40px rgba(18, 19, 28, 0.5);
}
.wizard.show .wz-panel { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.wz-close {
  position: absolute; top: 14px; right: 18px;
  background: none; border: none; cursor: pointer;
  font-size: 25px; line-height: 1; color: var(--faint);
  padding: 8px;
  transition: color 150ms var(--ease);
}
.wz-close:hover { color: var(--ink); }
.wz-progress { height: 1.5px; background: var(--line); margin-bottom: 40px; }
.wz-progress i { display: block; height: 100%; background: var(--navy); width: 100%; transform: scaleX(0.33); transform-origin: left; transition: transform 400ms var(--ease); }
.wz-k {
  display: block; font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--faint); margin-bottom: 12px;
}
.wz-step h3 {
  font-size: clamp(21px, 2.1vw, 25px); font-weight: 700;
  letter-spacing: -0.02em; color: var(--ink); margin-bottom: 26px;
}
.wz-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.wz-opt {
  font-family: var(--display); font-size: 14.5px; font-weight: 600;
  color: var(--ink); background: none; text-align: left;
  border: 1px solid var(--line); padding: 18px 20px; cursor: pointer;
  transition: border-color 180ms var(--ease), background 180ms var(--ease), transform 160ms var(--ease);
}
.wz-opt:hover { border-color: var(--navy); background: var(--navy-soft); }
.wz-opt:active { transform: scale(0.98); }
.wz-step label {
  display: block; font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--faint); margin: 22px 0 8px;
}
.wz-step input, .wz-step select {
  font-family: var(--text); font-size: 18px; color: var(--ink);
  padding: 8px 0 12px; border: none; border-bottom: 1px solid #c7cad6;
  background: transparent; outline: none; width: 100%;
  appearance: none; border-radius: 0;
  transition: border-color 200ms var(--ease);
}
.wz-step input:focus, .wz-step select:focus { border-bottom-color: var(--ink); }
.wz-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 38px; }
.wz-priv { font-size: 13px; color: var(--faint); margin-top: 18px; }
.wz-done { font-size: 16px; color: var(--muted); max-width: 40ch; margin-bottom: 30px; }
.wz-step.error input { border-bottom-color: #b4322f; }

/* ---------- Dock de captación ---------- */
.dock {
  position: fixed; right: 26px; bottom: 26px; z-index: 80;
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: #fff; background: var(--navy);
  border: none; cursor: pointer;
  padding: 17px 24px;
  display: inline-flex; align-items: center; gap: 10px;
  box-shadow: 0 20px 44px -20px rgba(18, 19, 28, 0.55);
  opacity: 0; transform: translateY(14px); pointer-events: none;
  transition: opacity 350ms var(--ease), transform 350ms var(--ease), background 200ms var(--ease);
}
.dock.show { opacity: 1; transform: none; pointer-events: auto; }
.dock:hover { background: var(--ink); }
.dock .icon { width: 15px; height: 15px; }

/* ---------- Barra fija móvil ---------- */
.mobile-cta {
  display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 80;
  background: rgba(254, 254, 253, 0.95);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-top: 1px solid var(--line);
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); gap: 10px;
}
.mobile-cta .btn { flex: 1; padding: 15px 10px; }

/* ---------- Animación (mejora progresiva) ---------- */
html.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity 700ms var(--ease), transform 700ms var(--ease); }
html.js .reveal.in { opacity: 1; transform: none; }
html.js .d1 { transition-delay: 80ms; }
html.js .d2 { transition-delay: 160ms; }
html.js .d3 { transition-delay: 240ms; }
html.js .d4 { transition-delay: 320ms; }

.lm { display: block; }
html.js .lm { overflow: hidden; }
html.js .subhero h1 .lm { padding-bottom: 4px; }
html.js .lm > span { display: block; transform: translateY(112%); transition: transform 900ms var(--ease); }
html.js .loaded .lm > span { transform: none; }
html.js .lm:nth-child(2) > span { transition-delay: 90ms; }

@media (prefers-reduced-motion: reduce) {
  html.js .reveal, html.js .lm > span { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
  .wz-backdrop, .wz-panel, .dock { transition: none; }
}

/* ---------- Adaptación ---------- */
@media (max-width: 1080px) {
  .nav-cta .link-cta { display: none; }
}
@media (max-width: 960px) {
  .mega-row { grid-template-columns: 44px 1fr 40px; }
  .mr-desc { display: none; }
  .legacy { grid-template-columns: 1fr; gap: 40px; }
  .contact2 { grid-template-columns: 1fr; gap: 56px; }
  .offices { grid-template-columns: 1fr; gap: 36px; }
  .step { grid-template-columns: 64px 1fr; gap: 24px; }
}
@media (max-width: 720px) {
  .nav-shell { padding: 0 22px; }
  .navbar { height: 76px; }
  .logo img { height: 38px; }
  .nav-links, .nav-cta { display: none; }
  .menu-btn { display: block; background: none; border: none; cursor: pointer; color: var(--ink); padding: 10px; }
  .menu-btn .icon { width: 24px; height: 24px; }
  .wrap, .wrap-narrow { padding: 0 22px; }
  section { padding: 78px 0; }
  .mobile-cta { display: flex; }
  .dock { display: none; }
  body { padding-bottom: 78px; }
  section[id], div[id] { scroll-margin-top: 90px; }
  .cookie-pop { left: 14px; right: 14px; bottom: 88px; max-width: none; }
  .wz-panel { padding: 44px 28px 38px; }
  .wz-opts { grid-template-columns: 1fr; }
  .f2 { grid-template-columns: 1fr; }
  .mobile-menu {
    display: block; position: fixed; top: 77px; left: 0; right: 0; z-index: 59;
    background: var(--bg); border-bottom: 1px solid var(--line);
    padding: 12px 22px 20px;
    opacity: 0; transform: translateY(-8px); pointer-events: none; visibility: hidden;
    transition: opacity 220ms var(--ease), transform 220ms var(--ease), visibility 0s 220ms;
  }
  .mobile-menu.open {
    opacity: 1; transform: none; pointer-events: auto; visibility: visible;
    transition: opacity 220ms var(--ease), transform 220ms var(--ease);
  }
  .mobile-menu a {
    display: block; padding: 14px 0; color: var(--ink); text-decoration: none;
    font-size: 18px; font-weight: 500; border-bottom: 1px solid var(--line);
  }
  .mobile-menu a:last-child { border-bottom: none; font-weight: 700; }
}
.hs-facts { border-top: 1px solid var(--ink); margin-top: 24px; }
.strip-all .icon { width: 13px; height: 13px; }

.why-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 2px; margin-top: 44px;
  background: var(--line);
  border: 1px solid var(--line);
}
.why-cell {
  padding: 46px 44px 44px; background: var(--bg);
  position: relative;
  transition: background 320ms var(--ease);
}
.why-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin-bottom: 26px;
  border-radius: 50%;
  background: var(--navy-soft); color: var(--navy);
  transition: background 320ms var(--ease), color 320ms var(--ease), transform 420ms var(--ease);
}
.why-cell .icon { width: 19px; height: 19px; }
.why-cell h3 {
  font-family: var(--display); font-size: 18px; font-weight: 700;
  letter-spacing: -0.015em; color: var(--ink); margin-bottom: 10px;
}
.why-cell p { font-size: 14.5px; color: var(--muted); max-width: 42ch; }
@media (hover: hover) and (pointer: fine) {
  .why-cell:hover { background: #fff; }
  .why-cell:hover .why-ico { background: var(--navy); color: #fff; transform: translateY(-3px); }
}
@media (max-width: 960px) {
  .why-grid { grid-template-columns: 1fr; }
  .why-cell { padding: 34px 28px; }
}
.navy-band .btn-ink { background: #fff; color: var(--navy); border-color: #fff; }
.navy-band .btn-ink:hover { background: rgba(255, 255, 255, 0.88); }

@media (max-width: 960px) {
  .why-grid { grid-template-columns: 1fr; }
}
.hero > .wrap, .hero .hero-strip { position: relative; z-index: 1; }
@keyframes drift-a {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-70px, 50px, 0) scale(1.12); }
}
@keyframes drift-b {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(60px, -40px, 0) scale(1.08); }
}
.quote-sec > .wrap { position: relative; }

/* Superficies del navegador afinadas */
html { scrollbar-width: thin; scrollbar-color: #c3c8dd transparent; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #c3c8dd; border-radius: 6px; border: 2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover { background: var(--navy); }
input, select, textarea { caret-color: var(--navy); }
a { text-underline-offset: 3px; }

/* Cabecera: elevación al hacer scroll */
header.scrolled { box-shadow: 0 8px 30px -18px rgba(18, 19, 28, 0.18); }
h2.sec-title { margin-bottom: 16px; }
p.sec-sub { margin-bottom: 56px; }
.mega-rows { margin-top: 8px; }
.why-grid { margin-top: 8px; }
.legacy { padding: 8px 0; }

/* Transiciones sedosas y consistentes */
.mega-row, .pl-row { transition: background 320ms var(--ease); }
.mega-row > *, .pl-row > *, .cap-row > * { transition: transform 320ms var(--ease); }
.mr-name { transition: transform 320ms var(--ease), color 320ms var(--ease); }
.btn-ink, .btn { transition: background 240ms var(--ease), border-color 240ms var(--ease),
  color 240ms var(--ease), transform 160ms var(--ease); }

/* Contadores estables (sin bailar dígitos) */
[data-count] { display: inline-block; min-width: 1.2ch; }

/* ============ v17 — parallax, glass y micro-motion ============ */

/* Barra de progreso de lectura */
.sprog { position: absolute; top: 0; left: 0; right: 0; height: 2px; background: transparent; }
.sprog i { display: block; height: 100%; width: 100%; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform 80ms linear; }

/* Glassboxes (radius solo en superficies de cristal) */
.hs-facts {
  border-top: none;
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 14px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65), 0 22px 54px -26px rgba(29, 36, 82, 0.35);
  padding: 8px 24px;
  transform-style: preserve-3d;
  will-change: transform;
}

.c2-card {
  background: rgba(255, 255, 255, 0.62);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 16px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 26px 60px -30px rgba(29, 36, 82, 0.32);
  padding: 38px 36px;
}
.wz-panel {
  background: rgba(254, 254, 253, 0.82);
  -webkit-backdrop-filter: blur(24px) saturate(170%);
  backdrop-filter: blur(24px) saturate(170%);
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 16px;
}
.cookie-pop {
  background: rgba(255, 255, 255, 0.78);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 14px;
}

/* Nav: subrayado que se dibuja */
.nav-links a { position: relative; }
.nav-links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1.5px;
  background: var(--navy); transform: scaleX(0); transform-origin: left;
  transition: transform 280ms var(--ease);
}
.nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); }

/* Sheen en botones navy */
.btn-ink { position: relative; overflow: hidden; }
.btn-ink::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -80%; width: 50%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.25), transparent);
  transform: skewX(-18deg);
  transition: left 650ms var(--ease);
}
.btn-ink:hover::after { left: 130%; }

/* Aurora clara dentro de la banda navy */
.navy-band { position: relative; overflow: hidden; }
.navy-band::before {
  content: ""; position: absolute; width: 640px; height: 640px;
  top: -260px; right: -180px; border-radius: 50%;
  filter: blur(70px); pointer-events: none;
  background: radial-gradient(circle, rgba(174, 182, 226, 0.22), transparent 62%);
  animation: drift-a 36s var(--ease-io) infinite alternate;
}
.navy-band > .wrap { position: relative; }

/* Iconos que respiran en hover */
.why-cell .icon { transition: transform 260ms var(--ease); }
.why-cell:hover .icon { transform: translateY(-3px); }
.why-cell { transition: background 260ms var(--ease); }
.why-cell:hover { background: var(--navy-soft); }

@media (prefers-reduced-motion: reduce) {
  .navy-band::before { animation: none; }
  .sprog i { transition: none; }
}

/* Títulos que enfocan al entrar */
html.js h2.sec-title.reveal, html.js .quote.reveal {
  filter: blur(7px);
  transition: opacity 700ms var(--ease), transform 700ms var(--ease), filter 700ms var(--ease);
}
html.js h2.sec-title.reveal.in, html.js .quote.reveal.in { filter: blur(0); }

/* Ficha glass: entrada con escala */
html.js .hero-side.reveal { transform: translateY(18px) scale(0.965); }
html.js .hero-side.reveal.in { transform: none; }

/* Línea de progreso del proceso */
.step-line { height: 2px; background: rgba(255, 255, 255, 0.14); margin-bottom: 0; position: relative; top: -1px; }
.step-line i { display: block; height: 100%; width: 100%; background: #aeb6e2; transform: scaleX(0); transform-origin: left; transition: transform 1400ms var(--ease-io) 300ms; }
.steps.in .step-line i { transform: scaleX(1); }

/* Estado abierto/cerrado */
.open-now { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); margin-bottom: 18px; }
.open-now:empty { display: none; }
.open-now::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--dot, #b9becf); }
.open-now.si { --dot: #2e9e5b; }
.open-now.no { --dot: #b4322f; }
.open-now.inline { margin: 0 0 0 10px; font-size: 13px; }

/* Herramientas de cliente */
.c2-tools { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.tool-btn {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--navy); background: none; cursor: pointer;
  border: 1px solid rgba(29, 36, 82, 0.3); border-radius: 100px;
  padding: 11px 18px;
  transition: background 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
}
.tool-btn .icon { width: 15px; height: 15px; }
.tool-btn:hover { background: var(--navy); color: #fff; border-color: var(--navy); }
.renew-row .btn-ink { padding: 13px 22px; font-size: 13px; }

/* Toast */
.toast {
  position: fixed; left: 50%; bottom: 34px; z-index: 110;
  transform: translate(-50%, 16px);
  background: var(--ink); color: #fff;
  font-size: 14.5px; font-weight: 500;
  padding: 12px 22px; border-radius: 100px;
  opacity: 0; pointer-events: none;
  transition: opacity 300ms var(--ease), transform 300ms var(--ease);
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 720px) { .toast { bottom: 96px; } }

/* ============ v19 — subpáginas dossier (patrón roto) ============ */
.subhero { padding: 168px 0 0; }
.subhero h1 {
  font-weight: 700;
  font-size: clamp(32px, 3.6vw, 51px);
  line-height: 1.1; letter-spacing: -0.03em;
  color: var(--ink); max-width: 24ch;
}
.subhero h1 .lm:last-child span { color: var(--navy); }

.areas-sec { padding: 0 0 40px; }
.area {
  display: grid; grid-template-columns: 0.9fr 1.4fr; gap: 72px;
  padding: 72px 0; border-bottom: 1px solid var(--line);
  min-height: 430px;
}
.area:last-child { border-bottom: none; }
.area-side { position: sticky; top: 130px; align-self: start; }
.area-side h3 {
  font-size: clamp(25px, 2.4vw, 32px); font-weight: 700;
  letter-spacing: -0.025em; color: var(--ink); margin-bottom: 10px;
}
.area-claim { font-size: 16px; font-weight: 600; color: var(--navy); margin-bottom: 12px; font-family: var(--display); }
.area-desc { font-size: 14.5px; color: var(--muted); max-width: 40ch; }

.area-caps { border-top: 1px solid var(--ink); }
.cap-row {
  display: grid; grid-template-columns: 52px 1fr 1.2fr;
  align-items: baseline; gap: 22px;
  padding: 19px 0; border-bottom: 1px solid var(--line);
  text-decoration: none;
  transition: background 260ms var(--ease);
}
.cap-name { font-family: var(--display); font-size: 16px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.cap-desc { font-size: 13px; color: var(--muted); }
@media (hover: hover) and (pointer: fine) {
  .cap-row:hover { background: var(--bg-soft); }
}

.ask-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--ink); margin-top: 8px; }
.ask {
  padding: 30px 34px 30px 0; border-bottom: 1px solid var(--line);
}
.ask:nth-child(even) { padding-left: 34px; border-left: 1px solid var(--line); }
.ask p { font-size: 16px; color: var(--ink); line-height: 1.55; margin-bottom: 12px; font-weight: 500; }
.ask span {
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--navy);
}

.closing { padding: 84px 0 84px; position: relative; overflow: hidden; }
.closing::before {
  content: ""; position: absolute; width: 560px; height: 560px;
  top: -200px; right: -160px; border-radius: 50%;
  filter: blur(70px); pointer-events: none;
  background: radial-gradient(circle, rgba(29, 36, 82, 0.08), transparent 62%);
  animation: drift-b 34s var(--ease-io) infinite alternate;
}
.closing > .wrap { position: relative; }
.cl-word {
  font-family: var(--display);
  font-size: clamp(25px, 2.8vw, 40px); font-weight: 700;
  letter-spacing: -0.025em; color: var(--navy); line-height: 1;
  margin-bottom: 28px;
}
.cl-row { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.cl-row .open-now { margin: 0; }

@media (max-width: 960px) {
  .subhero { padding: 130px 0 0; }
  .area { grid-template-columns: 1fr; gap: 30px; padding: 48px 0; }
  .area-side { position: static; }
  .cap-row { grid-template-columns: 40px 1fr; }
  .cap-desc { display: none; }
  .ask-grid { grid-template-columns: 1fr; }
  .ask, .ask:nth-child(even) { padding-left: 0; border-left: none; }
}
@media (prefers-reduced-motion: reduce) { .closing::before { animation: none; } }

/* ============ v20 — imagen cinematográfica (inspiración F&O, assets propios) ============ */
.logo img { height: 52px; }
.foot-brand img { height: 46px; }

.photo-strip { padding: 0 0 8px; }
.ps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ps-cell {
  height: 320px; overflow: hidden; margin: 0; position: relative;
}
.ps-cell img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 700ms var(--ease);
}
.ps-cell::after {
  content: ""; position: absolute; inset: 0;
  background: rgba(16, 20, 58, 0.14);
  transition: background 400ms var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .ps-cell:hover img { transform: scale(1.045); }
  .ps-cell:hover::after { background: rgba(16, 20, 58, 0); }
}

@media (max-width: 960px) {
  .logo img { height: 44px; }
  .ps-grid { grid-template-columns: repeat(2, 1fr); }
  .ps-cell { height: 210px; }
}

/* ============ v21 — hero-vídeo generativo (copia estructural F&O) ============ */
.hero-cine {
  position: relative; min-height: 100dvh; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: #10143a;
}
#sky-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hc-shade {
  position: absolute; inset: 0;
  background: radial-gradient(120% 90% at 50% 45%, rgba(8, 10, 32, 0) 40%, rgba(8, 10, 32, 0.45) 100%);
}
.hc-in { position: relative; z-index: 2; text-align: center; padding: 0 24px; }
.hero-cine h1 {
  font-weight: 700;
  font-size: clamp(32px, 4vw, 51px);
  line-height: 1.12; letter-spacing: -0.025em;
  color: #fff; margin-bottom: 18px;
}
.hc-sub { font-size: 14.5px; color: rgba(255, 255, 255, 0.75); margin-bottom: 34px; }
.hc-cta { display: flex; justify-content: center; margin-top: 4px; }
.hc-cta .btn-ink { background: #fff; color: var(--navy); border-color: #fff; }
.hc-cta .btn-ink:hover { background: rgba(255, 255, 255, 0.88); }

.hc-data {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(8, 10, 32, 0.25);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.hc-data-in {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
  padding-top: 20px; padding-bottom: 20px;
}
.hc-data-in > div { display: flex; align-items: baseline; gap: 10px; }
.hc-data-in b {
  font-family: var(--display); font-size: 21px; font-weight: 700; color: #fff;
  font-variant-numeric: tabular-nums;
}
.hc-data-in b span { font-size: inherit; color: inherit; }
.hc-data-in > div > span { font-size: 13px; color: rgba(255, 255, 255, 0.6); }

.hc-hint {
  position: absolute; left: 50%; bottom: 86px; z-index: 2;
  width: 1px; height: 44px; background: rgba(255, 255, 255, 0.5);
  animation: hint 2.2s var(--ease-io) infinite;
  transform-origin: top;
}
@keyframes hint {
  0% { transform: scaleY(0); opacity: 0; }
  35% { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(1) translateY(24px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .hc-hint { animation: none; } }

/* Nav transparente sobre el hero-vídeo */
header.light { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom-color: transparent; box-shadow: none; }
header.light .nav-links a { color: rgba(255, 255, 255, 0.8); }
header.light .nav-links a:hover, header.light .nav-links a.active { color: #fff; }
header.light .nav-links a::after { background: #fff; }
header.light .nav-phone { color: #fff !important; }
header.light .link-cta { color: #fff; }
header.light .link-cta::after { background: #fff; }
header.light .logo img { filter: brightness(0) invert(1); }
header.light .menu-btn { color: #fff; }
header, header .logo img, header .nav-links a, header .nav-phone, header .link-cta {
  transition: background 350ms var(--ease), color 350ms var(--ease),
    filter 350ms var(--ease), border-color 350ms var(--ease), box-shadow 350ms var(--ease);
}

/* Galería de columnas (home): 5 */
.ps-grid.five { grid-template-columns: repeat(5, 1fr); }
.gallery-home { padding: 0 0 100px; }
@media (max-width: 960px) {
  .ps-grid.five { grid-template-columns: repeat(2, 1fr); }
  .hc-data-in { grid-template-columns: repeat(2, 1fr); gap: 12px 20px; padding-top: 14px; padding-bottom: 14px; }
  .hero-cine { min-height: 92dvh; }
  .hc-hint { display: none; }
}

/* ============ v22 (taste pre-flight) ============ */
/* Hero crítico: entrada por carga, nunca por observer */
html.js .hc-sub, html.js .hc-cta, html.js .hc-data, html.js .hc-hint {
  opacity: 0; transform: translateY(14px);
  transition: opacity 800ms var(--ease), transform 800ms var(--ease);
}
html.js .hc-data { transform: none; }
html.js .loaded .hc-sub { opacity: 1; transform: none; transition-delay: 260ms; }
html.js .loaded .hc-cta { opacity: 1; transform: none; transition-delay: 380ms; }
html.js .loaded .hc-data { opacity: 1; transition-delay: 520ms; }
html.js .loaded .hc-hint { opacity: 1; transform: none; transition-delay: 900ms; }
@media (prefers-reduced-motion: reduce) {
  html.js .hc-sub, html.js .hc-cta, html.js .hc-data, html.js .hc-hint {
    opacity: 1; transform: none; transition: none;
  }
}

/* ============ v23: foto real en hero (Ken Burns) ============ */
.hc-photo {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; opacity: 0.92;
  animation: kenburns 38s var(--ease-io) infinite alternate;
  will-change: transform;
}
@keyframes kenburns {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to   { transform: scale(1.16) translate3d(-1.5%, -2%, 0); }
}
#sky-canvas { opacity: 0.16; mix-blend-mode: soft-light; }
.hero-cine { background: #0c1030; }
.hc-shade {
  background:
    linear-gradient(180deg, rgba(10,14,40,0.46) 0%, rgba(10,14,40,0.14) 32%, rgba(10,14,40,0.78) 100%),
    radial-gradient(120% 85% at 50% 40%, rgba(10,14,40,0) 45%, rgba(10,14,40,0.4) 100%);
}
@media (prefers-reduced-motion: reduce) { .hc-photo { animation: none; } }

/* ============ Mosaico Particulares (retícula alineada) ============ */
.mosaic { padding: 96px 0 48px; }
.mos-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 20px;
}
.mos { margin: 0; overflow: hidden; }
.mos img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 800ms var(--ease); }
.mos.m1 { grid-column: 1 / span 7; height: 400px; }
.mos.m2 { grid-column: 8 / span 5; height: 400px; }
.mos-note {
  grid-column: 1 / span 4;
  margin: 0; align-self: center;
  font-family: var(--display);
  font-size: 18px; font-weight: 700; line-height: 1.45;
  letter-spacing: -0.015em; color: var(--ink);
  padding-right: 20px;
}
.mos.m3 { grid-column: 5 / span 4; height: 360px; }
.mos.m4 { grid-column: 9 / span 4; height: 360px; }
@media (hover: hover) and (pointer: fine) {
  .mos:hover img { transform: scale(1.04); }
}
@media (max-width: 960px) {
  .mosaic { padding: 64px 0 32px; }
  .mos-grid { grid-template-columns: repeat(6, 1fr); gap: 14px; }
  .mos.m1 { grid-column: 1 / span 6; height: 260px; }
  .mos.m2 { grid-column: 1 / span 3; height: 300px; }
  .mos-note { grid-column: 4 / span 3; font-size: 16px; padding-right: 0; }
  .mos.m3 { grid-column: 1 / span 3; height: 260px; }
  .mos.m4 { grid-column: 4 / span 3; height: 260px; }
}

/* cap-row sin numeración */
.cap-row { grid-template-columns: 1.1fr 1.5fr !important; }

/* ============ Submenú Conoce Coyfer ============ */
.has-sub { position: relative; }
.sub-toggle {
  background: none; border: none; cursor: pointer; padding: 4px 0;
  font-family: var(--text); font-size: 14.5px; font-weight: 500;
  color: var(--muted); letter-spacing: 0.02em;
  display: inline-flex; align-items: center; gap: 6px;
  transition: color 160ms var(--ease);
}
.sub-toggle::after {
  content: ""; width: 5px; height: 5px; margin-top: -3px;
  border-right: 1.3px solid currentColor; border-bottom: 1.3px solid currentColor;
  transform: rotate(45deg);
  transition: transform 250ms var(--ease);
}
.has-sub.open .sub-toggle { color: var(--ink); }
.has-sub.open .sub-toggle::after { transform: rotate(225deg); margin-top: 2px; }
.submenu {
  position: absolute; top: calc(100% + 18px); left: -18px;
  min-width: 238px; background: #fff;
  border: 1px solid rgba(18,19,28,0.1);
  border-radius: 4px;
  box-shadow: 0 26px 60px -22px rgba(10,14,40,0.55);
  padding: 8px 0;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity 220ms var(--ease), transform 220ms var(--ease), visibility 0s 220ms;
}
.has-sub.open .submenu {
  opacity: 1; visibility: visible; transform: none;
  transition: opacity 220ms var(--ease), transform 220ms var(--ease);
}
.submenu a {
  display: block; padding: 11px 20px;
  font-size: 14.5px; color: var(--body); text-decoration: none;
  transition: background 160ms var(--ease), color 160ms var(--ease);
}
.submenu a:hover { background: var(--navy-soft); color: var(--navy); }
header.light .sub-toggle { color: rgba(255,255,255,0.8); }
header.light .has-sub.open .sub-toggle { color: #fff; }

/* ============ Selector de idioma (en el menú) ============ */
.lang { display: inline-flex; gap: 1px; align-items: center; }
.lang button {
  background: none; border: none; cursor: pointer;
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.12em; color: var(--faint);
  padding: 4px 7px;
  transition: color 180ms var(--ease);
}
.lang button:hover { color: var(--ink); }
.lang button.on { color: var(--navy); }
header.light .lang button { color: rgba(255,255,255,0.5); }
header.light .lang button:hover { color: rgba(255,255,255,0.9); }
header.light .lang button.on { color: #fff; }
@media (max-width: 1080px) { .nav-cta .lang { display: none; } }

/* Submenú: siempre legible, también con nav clara sobre el hero */
header.light .submenu a,
.submenu a { color: var(--body) !important; }
header.light .submenu a:hover,
.submenu a:hover { color: var(--navy) !important; background: var(--navy-soft); }
.submenu { background: #fff !important; }

/* ============ FAQ horizontal ============ */
.faq-sec { padding: 100px 0; }
.faq-wrap { display: grid; grid-template-columns: 0.75fr 1.45fr; gap: 80px; align-items: start; }
.faq-head { position: sticky; top: 130px; }
.faq-head .sec-title { margin-bottom: 0; max-width: 16ch; }
.faq-list { border-top: 1px solid var(--ink); }
.faq-item:first-of-type { border-top: none; }
.faq-q { font-size: 16px; padding: 24px 46px 24px 0; }
.faq-a p { font-size: 14.5px; max-width: 70ch; }

/* ============ Subhero moderno (ligero + animado) ============ */
.subhero { position: relative; overflow: hidden; padding: 168px 0 0; }
.sh-aura {
  position: absolute; top: -300px; right: -180px;
  width: 640px; height: 640px; border-radius: 50%;
  background: radial-gradient(circle, rgba(29,36,82,0.1), rgba(29,36,82,0) 66%);
  filter: blur(74px); pointer-events: none;
  animation: drift-a 34s var(--ease-io) infinite alternate;
}
.sh-inner { position: relative; }
.subhero h1 {
  font-weight: 600;
  font-size: clamp(32px, 3.6vw, 51px);
  line-height: 1.14; letter-spacing: -0.028em;
  color: var(--ink); max-width: 22ch;
}
.subhero h1 .lm:last-child span {
  color: var(--navy);
  background-image: linear-gradient(90deg, var(--navy), var(--navy));
  background-size: 0% 1px; background-position: 0 calc(100% - 2px); background-repeat: no-repeat;
  padding-bottom: 12px;
}
html.js .loaded .subhero h1 .lm:last-child span {
  animation: underline-in 900ms var(--ease) 700ms forwards;
}
@keyframes underline-in { to { background-size: 100% 1px; } }

.sh-bar {
  display: flex; flex-wrap: wrap; gap: 0;
  margin-top: 34px; padding-bottom: 44px;
  border-bottom: 1px solid var(--line);
}
.sh-stat {
  position: relative;
  font-family: var(--display); font-size: 13px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted);
  padding: 8px 20px 8px 0; margin-right: 20px;
  display: inline-flex; align-items: center; gap: 9px;
  opacity: 0; transform: translateY(6px);
}
html.js .sh-bar.in .sh-stat { animation: stat-in 620ms var(--ease) forwards; }
.sh-bar.in .sh-stat:nth-child(2) { animation-delay: 90ms; }
.sh-bar.in .sh-stat:nth-child(3) { animation-delay: 180ms; }
.sh-bar.in .sh-stat:nth-child(4) { animation-delay: 270ms; }
@keyframes stat-in { to { opacity: 1; transform: none; } }
.sh-stat::before {
  content: ""; width: 4px; height: 4px; border-radius: 50%;
  background: var(--navy); flex: none;
  box-shadow: 0 0 0 0 rgba(29,36,82,0.35);
  animation: dot-pulse 3.6s var(--ease-io) infinite;
}
.sh-stat:nth-child(2)::before { animation-delay: .9s; }
.sh-stat:nth-child(3)::before { animation-delay: 1.8s; }
.sh-stat:nth-child(4)::before { animation-delay: 2.7s; }
@keyframes dot-pulse {
  0%, 70%, 100% { box-shadow: 0 0 0 0 rgba(29,36,82,0.3); }
  35% { box-shadow: 0 0 0 5px rgba(29,36,82,0); }
}
.sh-stat::after {
  content: ""; position: absolute; right: 0; top: 50%;
  width: 1px; height: 14px; background: var(--line); transform: translateY(-50%);
}
.sh-stat:last-child { margin-right: 0; padding-right: 0; }
.sh-stat:last-child::after { display: none; }

@media (prefers-reduced-motion: reduce) {
  .sh-aura, .sh-stat::before { animation: none; }
  html.js .sh-bar.in .sh-stat { animation: none; opacity: 1; transform: none; }
}
@media (max-width: 960px) {
  .faq-wrap { grid-template-columns: 1fr; gap: 36px; }
  .faq-head { position: static; }
  .subhero { padding: 132px 0 0; }
  .sh-bar { gap: 6px 0; }
  .sh-stat { font-size: 13px; padding-right: 14px; margin-right: 14px; }
}

/* Enlace desde el catálogo a la página de ramo */
a.cap-row { text-decoration: none; grid-template-columns: 1.1fr 1.5fr 30px !important; }
a.cap-row .cap-name { transition: color 200ms var(--ease); }
.cap-go { width: 18px; height: 18px; color: var(--navy); opacity: 0; transform: translateX(-6px); transition: opacity 220ms var(--ease), transform 220ms var(--ease); }
@media (hover:hover) and (pointer:fine) { a.cap-row:hover .cap-name { color: var(--navy); } a.cap-row:hover .cap-go { opacity: 1; transform: none; } }
@media (hover:none) { .cap-go { opacity: 1; transform: none; } }

/* ============ PÁGINAS DE RAMO v2 ============
   19 cabeceras + biblioteca de bloques. Radio 0 en todo (lock de forma).
   Movimiento: entrada de cabecera ligada a body.loaded (nunca a observer),
   revelado de bloques con .reveal, herramientas con feedback inmediato. */

.rh-back {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--muted); text-decoration: none; margin-bottom: 22px;
  transition: color 200ms var(--ease);
}
.rh-back.light { color: rgba(255,255,255,0.78); }
.rh-back.light:hover { color: #fff; }

.x-h1 {
  font-family: var(--display); font-weight: 800;
  font-size: clamp(40px, 4.3vw, 51px); line-height: 1.03;
  letter-spacing: -0.035em; color: var(--ink);
}
.x-claim { font-size: 18px; line-height: 1.6; color: var(--muted); max-width: 44ch; margin: 18px 0 32px; }
.x-h2 {
  font-family: var(--display); font-weight: 700;
  font-size: clamp(25px, 2.6vw, 40px); line-height: 1.14;
  letter-spacing: -0.028em; color: var(--ink); max-width: 24ch; margin-bottom: 22px;
}
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.icon.flip { transform: scaleX(-1); }
html.js body.loaded .x-a { opacity: 1; transform: none; filter: blur(0); }
html.js body.loaded .x-clip { clip-path: inset(0 0 0 0); }
body.loaded .x-clip img, body.loaded .xh-full .xh-bg, body.loaded .xh-center .xh-bg { transform: scale(1); }
figure { margin: 0; }
.x-facts.light dt { color: rgba(255,255,255,0.6); }
.x-facts.light dd { color: #fff; }
.x-facts.light.rows { border-top-color: rgba(255,255,255,0.5); }
.x-facts.light.rows > div { border-bottom-color: rgba(255,255,255,0.14); }

.xh-full > .wrap { width: 100%; }
.xh-full .x-h1, .xh-center .x-h1 { color: #fff; }
.xh-full .x-claim, .xh-center .x-claim { color: rgba(255,255,255,0.84); }
.xh-full .btn-ink, .xh-center .btn-ink, .xh-sidebar .btn-ink, .xh-sn .btn-ink, .xh-navyhalf .btn-ink { background: #fff; color: var(--navy); border-color: #fff; }
.xh-full .btn-ink:hover, .xh-center .btn-ink:hover, .xh-sidebar .btn-ink:hover, .xh-sn .btn-ink:hover, .xh-navyhalf .btn-ink:hover { background: rgba(255,255,255,0.86); }
.xh-full > .wrap:last-child { position: relative; margin-top: 44px; }
.xh-stack .x-h1 { font-size: clamp(40px, 5vw, 51px); max-width: 18ch; }
.xh-stack-row .x-claim { margin: 0; }

/* H navyhalf */
.xh-navyhalf { position: relative; padding: 150px 0 0; }
.xh-nh-copy .x-h1 { color: #fff; }
.xh-nh-copy .x-claim { color: rgba(226,230,248,0.84); }
.xh-type .x-h1 { font-size: clamp(40px, 5.4vw, 51px); font-weight: 700; max-width: 14ch; }
.xh-type .x-claim { font-size: 21px; max-width: 40ch; color: var(--body); }
main.ramo .xh-type-strip img { object-position: center 28%; }
.xh-frame-side .x-claim { margin-top: 0; }
.xh-window-copy .x-claim { margin-left: auto; margin-right: auto; }
html.js body.loaded .xh-window-fig { clip-path: inset(0 0 0 0); }
.xh-col-a .x-claim { margin-bottom: 0; }
.xh-co-card .x-claim { margin-bottom: 30px; }
.xh-index .x-h1 { max-width: 13ch; }
.xh-index-side li a .icon.down { width: 15px; height: 15px; color: var(--faint); transform: rotate(90deg); transition: color 200ms, transform 300ms var(--ease); }
.xh-index-side li a:hover .icon.down { color: var(--navy); transform: rotate(90deg) translateX(3px); }
.xh-dip-side .x-claim { margin-top: 0; }
.xh-sb-copy .x-h1 { color: #fff; }
.xh-sb-copy .x-claim { color: rgba(255,255,255,0.84); }
.xh-bar-row .x-claim { margin: 0; }

/* H splitnavy */
.xh-sn { display: grid; grid-template-columns: 1fr 1fr; min-height: 88vh; }
.xh-sn-copy .x-h1 { color: #fff; }
.xh-sn-copy .x-claim { color: rgba(226,230,248,0.84); }
html.js body.loaded .xh-sn-fig img { transform: scale(1); }
@keyframes tk { to { transform: translateX(-50%); } }
.xh-center .x-claim { margin-left: auto; margin-right: auto; }
.xb-check-list .icon { color: var(--navy); width: 17px; height: 17px; margin-top: 3px; }

.xb-matrix-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.xb-matrix-t td.y .icon { color: var(--navy); width: 18px; height: 18px; }
html.js .reveal .xb-matrix-t td.y .icon { transform: scale(0.4); opacity: 0; transition: transform 500ms var(--ease), opacity 500ms var(--ease); }
html.js .reveal.in .xb-matrix-t td.y .icon { transform: none; opacity: 1; }
html.js .reveal.in tr:nth-child(2) td.y .icon { transition-delay: 60ms; }
html.js .reveal.in tr:nth-child(3) td.y .icon { transition-delay: 120ms; }
html.js .reveal.in tr:nth-child(4) td.y .icon { transition-delay: 180ms; }
html.js .reveal.in tr:nth-child(5) td.y .icon { transition-delay: 240ms; }
html.js .reveal.in tr:nth-child(6) td.y .icon { transition-delay: 300ms; }
html.js .reveal.in tr:nth-child(7) td.y .icon { transition-delay: 360ms; }
.xb-det-q { width: 100%; background: none; border: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px;
  padding: 22px 0; font-family: var(--display); font-weight: 600; font-size: 18px; color: var(--ink); text-align: left; }
.xb-det-q i { width: 26px; height: 26px; border: 1px solid var(--line); position: relative; flex: none; transition: background 250ms var(--ease), border-color 250ms; }
.xb-det-q i::before, .xb-det-q i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1px; background: var(--ink); transform: translate(-50%, -50%); transition: transform 300ms var(--ease), background 250ms; }
.xb-det-q i::after { transform: translate(-50%, -50%) rotate(90deg); }
.xb-det-item.open .xb-det-q i { background: var(--navy); border-color: var(--navy); }
.xb-det-item.open .xb-det-q i::before, .xb-det-item.open .xb-det-q i::after { background: #fff; }
.xb-det-item.open .xb-det-q i::after { transform: translate(-50%, -50%) rotate(0deg); }
.xb-det-item.open .xb-det-a { grid-template-rows: 1fr; }
.xb-det-item.open .xb-det-a p { padding-bottom: 24px; }
html.js .reveal .xb-pills-l li, html.js .xb-pills-l.reveal li { opacity: 0; transform: translateY(10px); transition: opacity 500ms var(--ease), transform 500ms var(--ease), background 250ms, color 250ms, border-color 250ms; transition-delay: calc(var(--i) * 55ms); }
html.js .xb-pills-l.reveal.in li { opacity: 1; transform: none; }
.xs-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 26%); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding: 4px max(40px, calc((100vw - 1280px) / 2 + 40px)) 18px; scrollbar-width: thin; scrollbar-color: var(--navy) transparent; }
.xs-card { scroll-snap-align: start; border-top: 2px solid var(--navy); background: var(--bg-soft); padding: 30px 28px 36px; min-height: 230px; transition: background 250ms var(--ease); }
.xs-card:hover { background: var(--navy-soft); }
.xs-card h3 { font-family: var(--display); font-size: 18px; color: var(--ink); margin-bottom: 12px; letter-spacing: -0.01em; }
.xs-card p { font-size: 16px; color: var(--muted); }
.xb-cindex-l li .icon { color: var(--faint); width: 18px; height: 18px; transition: transform 300ms var(--ease), color 250ms; }
.xb-cindex-l li:hover .icon { color: var(--navy); transform: translateX(4px); }
.xb-yn.yes .icon { color: #fff; width: 17px; height: 17px; margin-top: 3px; }
.xb-case .icon { color: var(--navy); transition: transform 400ms var(--ease); }
.xb-case:hover .icon { transform: translateX(6px); }
.xsv-i { display: grid; grid-template-columns: 100px 1fr; gap: 44px; padding: 0 0 46px; position: relative; }
.xsv-i::before { content: ""; position: absolute; left: 114px; top: 7px; width: 9px; height: 9px; background: #fff; border: 1px solid var(--line); transition: background 400ms var(--ease), border-color 400ms; z-index: 1; }
.xsv-i.on::before { background: var(--navy); border-color: var(--navy); }
.xsv-i h3 { font-family: var(--display); font-size: 18px; color: var(--ink); margin-bottom: 8px; letter-spacing: -0.01em; }
.xsv-i p { color: var(--muted); font-size: 16px; max-width: 52ch; }
.xd-box .icon { width: 15px; height: 15px; color: #fff; stroke-width: 2; stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset 360ms var(--ease) 60ms; }
.xd-l input:checked + .xd-box .icon { stroke-dashoffset: 0; }
.xp-ink { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100px; background: var(--navy); transform-origin: left; transition: transform 450ms var(--ease); }
.xp-panel li .icon { color: var(--navy); width: 17px; height: 17px; margin-top: 3px; }
@keyframes xp-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.xb-pull .wrap { position: relative; width: 100%; padding-bottom: 72px; }
.xb-media-copy li .icon { color: var(--navy); width: 17px; height: 17px; margin-top: 3px; }
.xcalc-o b.bump { animation: bump 380ms var(--ease); }
@keyframes bump { 0% { opacity: .5; transform: translateY(4px); } 100% { opacity: 1; transform: none; } }
.xcalc-o b.warn { color: #f3c9c4; }
.xq-res .btn-ink { background: #fff; color: var(--navy); border-color: #fff; }
.xb-faqc .x-h2 { text-align: center; margin: 0 auto 36px; }
.xb-faqc .faq-list { border-top: 1px solid var(--ink); }
.xc-band .btn-ink { background: #fff; color: var(--navy); border-color: #fff; }
.xc-form .x-h2 { margin-bottom: 0; }
.xc-f.error input { border-color: #b4322f; }
.xc-f-msg { font-size: 13px; color: var(--muted); margin-top: 12px; }
.xc-f.done .xc-f-row { display: none; }
.xc-f.done .xc-f-msg { font-family: var(--display); font-size: 18px; color: var(--navy); font-weight: 600; }

/* Popup de interés por ramo */
.rpop {
  position: fixed; left: 26px; bottom: 26px; z-index: 85; width: 372px; max-width: calc(100vw - 32px);
  background: rgba(254,254,253,0.96); border: 1px solid var(--line);
  -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 40px 80px -36px rgba(18,22,56,0.45), inset 0 1px 0 rgba(255,255,255,0.7);
  padding: 30px 30px 28px;
  opacity: 0; transform: translateY(18px) scale(0.98); filter: blur(6px);
  transition: opacity 520ms var(--ease), transform 520ms var(--ease), filter 520ms var(--ease);
}
.rpop::before { content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 100%; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform 900ms var(--ease-io) 250ms; }
.rpop.show { opacity: 1; transform: none; filter: blur(0); }
.rpop.show::before { transform: scaleX(1); }
.rpop-x { position: absolute; top: 10px; right: 12px; width: 34px; height: 34px; background: none; border: none; font-size: 25px; color: var(--faint); cursor: pointer; transition: color 200ms; }
.rpop-x:hover { color: var(--ink); }
.rpop-q { font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.3; color: var(--ink); letter-spacing: -0.015em; padding-right: 22px; }
.rpop-p { font-size: 14.5px; color: var(--muted); margin: 10px 0 22px; line-height: 1.55; }
.rpop-row { display: flex; align-items: center; gap: 20px; margin-top: 4px; }
.rpop .btn-ink { padding: 14px 22px; font-size: 13px; }
.rpop-no { background: none; border: none; cursor: pointer; font-size: 14.5px; color: var(--muted); padding: 8px 0; transition: color 200ms; }
.rpop-no:hover { color: var(--ink); }
.rpop label { display: block; font-size: 13px; color: var(--muted); margin: 16px 0 6px; }
.rpop input { width: 100%; border: none; border-bottom: 1px solid var(--faint); background: none; font: 500 18px var(--display); color: var(--ink); padding: 8px 0 10px; outline: none; margin-bottom: 20px; transition: border-color 200ms; }
.rpop input:focus { border-bottom-color: var(--navy); }
.rpop.error input { border-bottom-color: #b4322f; }
.rpop-priv { font-size: 13px; color: var(--faint); margin-top: 14px; }
.rpop-s { animation: xp-in 420ms var(--ease); }

@media (prefers-reduced-motion: reduce) {
  .rpop, .rpop::before, .xm-m, .xm-r, .xp-panel, .xsh-l::after { transition: none; animation: none; }
}

@media (max-width: 1080px) {
  .xs-track { grid-auto-columns: minmax(280px, 40%); }
}
@media (max-width: 960px) {
  .xh-sidebar, .xh-sn { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .xb-cases-head span:nth-child(2), .xb-case .icon { display: none; }
  .xsv-i { grid-template-columns: 1fr; gap: 6px; padding-left: 30px; }
  .xsv-i::before { left: 0; }
  .xs-track { grid-auto-columns: 82%; padding: 4px 22px 18px; }
  .rpop { left: 16px; right: 16px; width: auto; bottom: 88px; padding: 26px 22px 22px; }
}

main.ramo [data-rplx] { transform: scale(1.18); }
main.ramo .xh-stack-band img, main.ramo .xh-type-strip img, main.ramo .xh-co-fig img, main.ramo .xh-bar-fig img, main.ramo .xb-media-fig img { height: 100%; margin-top: 0; }
main.ramo .xb-pull img { inset: 0; height: 100%; }

html.js main.ramo .reveal { transform: translateY(26px); filter: blur(6px);
  transition: opacity 1100ms var(--ease), transform 1100ms var(--ease), filter 1100ms var(--ease); }
html.js main.ramo .reveal.in { transform: none; filter: none; }
html.js main.ramo .d1 { transition-delay: 90ms; }
html.js main.ramo .d2 { transition-delay: 180ms; }
html.js main.ramo .d3 { transition-delay: 270ms; }
html.js main.ramo .d4 { transition-delay: 360ms; }

/* Titulares palabra a palabra */
html.js main.ramo .x-h2.kin, html.js .xc-band h2.kin { opacity: 1; transform: none; filter: none; }
.kin.in .kw > span { transform: none; }

/* Imágenes que se descubren */
html.js main.ramo .xb-media-fig.reveal, html.js main.ramo .xbb-img.reveal { opacity: 1; filter: none; transform: none; clip-path: inset(12% 0 12% 0); transition: clip-path 1400ms var(--ease-io); }
html.js main.ramo .xb-media-fig.reveal.in, html.js main.ramo .xbb-img.reveal.in { clip-path: inset(0 0 0 0); }

/* Luz que sigue al cursor */
.spot { --mx: -999px; --my: -999px; position: relative; }
.spot::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 400ms var(--ease);
  background: radial-gradient(360px circle at var(--mx) var(--my), rgba(64, 80, 170, 0.1), transparent 62%); }
.spot:hover::after { opacity: 1; }
.xb-yn.yes.spot::after, .xcalc-outs.spot::after, .xb-band .spot::after { background: radial-gradient(360px circle at var(--mx) var(--my), rgba(170, 184, 255, 0.16), transparent 62%); }
main.ramo .xcc.reveal.in:hover { transform: translateY(-4px); }

/* Botones magnéticos */
main.ramo .btn-ink.mag, .rpop .btn-ink.mag { transition: background 220ms var(--ease), color 220ms var(--ease), transform 500ms var(--ease); }

/* Barra de lectura más viva en ramos */
body:has(main.ramo) .sprog i { background: linear-gradient(90deg, var(--navy), #4a58b8); }

@media (prefers-reduced-motion: reduce) {
  main.ramo [data-rplx] { transform: none; }
  html.js main.ramo .reveal, html.js main.ramo .xb-media-fig.reveal, html.js main.ramo .xbb-img.reveal { filter: none; clip-path: none; transform: none; transition: none; }
}
@media (max-width: 720px) { main.ramo [data-rplx] { transform: none; } }
main.ramo { overflow-x: clip; }
@media (max-width: 960px) {
  .xh-sn { min-height: 0; }
}

@media (max-width: 720px) {
  main.ramo .xh-full, main.ramo .xh-center, main.ramo .xh-sn, main.ramo .xh-sidebar, main.ramo .xb-pull { padding: 0; }
}
.sr { left: 0; top: 0; white-space: nowrap; }
.x-facts.light dt, .x-facts.glass dt { color: rgba(255,255,255,0.72); }
/* Sin halo gris en el cierre de ramos */
main.ramo .closing::before { display: none; }
/* Teléfonos que no se parten */
.xc-line a[href^="tel"], .xc-tel, .hs-tel { white-space: nowrap; }
/* Carrusel alineado a la retícula al hacer snap */
.xs-track { scroll-padding-inline: max(40px, calc((100vw - 1280px) / 2 + 40px)); }
.xh-sb-copy .x-h1, .xh-sb-copy .x-claim { text-shadow: 0 2px 24px rgba(10,14,40,0.45); }

@media (max-width: 720px) {
  /* Tablas comparativas apiladas como fichas */
  .xb-matrix-scroll { overflow: visible; }
  .xp-ink { display: none; }
  .xc-f .btn-ink { width: 100%; }
}
/* Carrusel: tarjetas más compactas */
.xs-card { min-height: 190px; }
.xh-full .x-h1, .xh-full .x-claim { text-shadow: 0 2px 30px rgba(10,14,40,0.4); }

/* ============ Redes sociales (pie) ============ */
.foot-social { gap: 10px; flex-wrap: wrap; }
.foot-social a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,0.16); color: rgba(255,255,255,0.62);
  transition: color 200ms var(--ease), border-color 200ms var(--ease), background 200ms var(--ease), transform 200ms var(--ease); }
.foot-social a:hover { color: #fff; border-color: rgba(255,255,255,0.5); background: rgba(255,255,255,0.06); transform: translateY(-2px); }
.foot-social .icon-fill { width: 16px; height: 16px; }

/* ============ Corredurías del grupo ============ */
.gp-hero { position: relative; padding: 170px 0 110px; overflow: hidden; isolation: isolate; }
.gp-hero-in { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 80px; align-items: center; }
.gp-hero .x-h1 { font-size: clamp(40px, 4.4vw, 51px); }
html.js .gp-hero .lm:nth-child(2) > span { transition-delay: 110ms; }
.gp-hero .lm:nth-child(2) > span { color: var(--navy); }
.gp-hero .x-claim { max-width: 48ch; }
html.js .gp-a { opacity: 0; transform: translateY(14px); filter: blur(4px); transition: opacity 800ms var(--ease), transform 800ms var(--ease), filter 800ms var(--ease); transition-delay: calc(var(--d) * 110ms + 100ms); }
html.js body.loaded .gp-a { opacity: 1; transform: none; filter: none; }
.gp-tile { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 30px 34px; min-height: 132px; text-decoration: none; overflow: hidden;
  background: linear-gradient(135deg, #1a1f45 0%, #141735 100%); border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 30px 60px -40px rgba(18,22,56,0.7), inset 0 1px 0 rgba(255,255,255,0.08);
  transform-style: preserve-3d; transition: transform 500ms var(--ease), box-shadow 500ms var(--ease); }
.gp-tile:nth-child(2) { margin-left: 48px; }
.gp-tile:nth-child(3) { margin-left: 96px; }
.gp-tile::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 400ms var(--ease);
  background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), rgba(150,165,255,0.16), transparent 60%); }
.gp-tile:hover::after { opacity: 1; }
.gp-tile:hover { box-shadow: 0 40px 70px -40px rgba(18,22,56,0.85), inset 0 1px 0 rgba(255,255,255,0.12); }
.gp-tile .gp-logo { height: 58px; width: auto; max-width: 62%; object-fit: contain; }
.gp-tile span { font-size: 13px; color: rgba(214,219,245,0.7); text-align: right; max-width: 16ch; line-height: 1.4; }
.gp-logo-coyfer { filter: brightness(0) invert(1); }
.gp-tile .gp-logo-coyfer { height: 40px; }
html.js .gp-tile { opacity: 0; transform: translateX(40px) rotateY(-8deg); }
html.js body.loaded .gp-tile { opacity: 1; transform: none; transition: opacity 900ms var(--ease), transform 1100ms var(--ease), box-shadow 500ms var(--ease); transition-delay: calc(var(--i) * 140ms + 350ms); }

.gp-figs { background: var(--navy); padding: 70px 0; position: relative; overflow: hidden; }
.gp-figs::before { content: ""; position: absolute; width: 700px; height: 700px; left: -200px; top: -380px; border-radius: 50%; filter: blur(50px);
  background: radial-gradient(circle, rgba(120,136,220,0.22), transparent 62%); animation: drift-b 30s var(--ease-io) infinite alternate; }
.gp-figs-g { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); }
.gp-fig { padding: 0 30px; border-left: 1px solid rgba(255,255,255,0.14); }
.gp-fig:first-child { border-left: none; padding-left: 0; }
.gp-fig b { display: block; font-family: var(--display); font-size: clamp(40px, 3.6vw, 51px); color: #fff; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.gp-fig h3 { font-family: var(--display); font-size: 14.5px; color: #fff; margin: 12px 0 6px; font-weight: 600; }
.gp-fig p { font-size: 14.5px; color: rgba(214,219,245,0.72); }

.gp-book { padding: 120px 0 40px; }
.gp-book-in { display: grid; grid-template-columns: 250px 1fr; gap: 90px; align-items: start; }
.gp-nav { position: sticky; top: 130px; }
.gp-nav p { font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.gp-nav ol { list-style: none; }
.gp-nav a { display: block; padding: 14px 0 14px 18px; text-decoration: none; border-left: 1px solid var(--line); transition: border-color 300ms var(--ease); }
.gp-nav a span { display: block; font-family: var(--display); font-weight: 700; font-size: 18px; color: var(--muted); transition: color 300ms var(--ease), transform 400ms var(--ease); }
.gp-nav a em { display: block; font-style: normal; font-size: 13px; color: var(--muted); margin-top: 2px; }
.gp-nav a:hover span { color: var(--ink); }
.gp-nav a.on { border-left-color: var(--navy); }
.gp-nav a.on span { color: var(--navy); transform: translateX(4px); }
.gp-nav-bar { display: block; margin-top: 22px; height: 2px; background: var(--line); }
.gp-nav-bar i { display: block; height: 100%; background: var(--navy); transform: scaleX(var(--p, 0)); transform-origin: left; transition: transform 150ms linear; }

.gp-ch { padding: 0 0 110px; margin-bottom: 110px; border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.gp-ch:last-child { border-bottom: none; margin-bottom: 0; }
.gp-ch-head { display: grid; grid-template-columns: 250px 1fr; gap: 44px; align-items: center; margin-bottom: 40px; }
.gp-ch-logo { background: linear-gradient(135deg, #1a1f45, #141735); height: 150px; display: grid; place-items: center; padding: 26px; box-shadow: 0 30px 60px -44px rgba(18,22,56,0.7); }
.gp-ch-logo .gp-logo { max-height: 84px; max-width: 100%; width: auto; }
.gp-ch-logo .gp-logo-coyfer { max-height: 52px; }
.gp-ch-head .x-h2 { margin-bottom: 8px; }
.gp-place { font-size: 14.5px; color: var(--muted); }
.gp-ch-text { max-width: 66ch; }
.gp-ch-text p { font-size: 18px; line-height: 1.75; color: var(--body); }
.gp-ch-text p + p { margin-top: 18px; }
.gp-ch-text p:first-child { color: var(--ink); }
.gp-sub { font-family: var(--display); font-size: 16px; font-weight: 700; color: var(--ink); margin: 52px 0 18px; }

.gp-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); margin-top: 44px; }
.gp-facts > div { padding: 20px 24px 0 0; }
.gp-facts > div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.gp-facts dt { font-size: 13px; color: var(--muted); }
.gp-facts dd { font-family: var(--display); font-weight: 700; font-size: 21px; color: var(--navy); letter-spacing: -0.01em; margin-top: 4px; }

.gp-tl { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 48px; position: relative; padding-top: 30px; }
.gp-tl::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line); }
.gp-tl::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform 1600ms var(--ease-io) 200ms; }
.gp-tl:has(li.in)::after { transform: scaleX(1); }
.gp-tl li { position: relative; }
.gp-tl li::before { content: ""; position: absolute; top: -35px; left: 0; width: 9px; height: 9px; background: #fff; border: 1px solid var(--navy); transition: background 400ms var(--ease) 500ms; }
.gp-tl li.in::before { background: var(--navy); }
.gp-tl b { display: block; font-family: var(--display); font-size: 25px; color: var(--navy); letter-spacing: -0.02em; }
.gp-tl span { font-size: 14.5px; color: var(--muted); }
html.js .gp-values.reveal li { opacity: 0; transform: translateY(8px); transition: opacity 500ms var(--ease), transform 500ms var(--ease), background 250ms, color 250ms, border-color 250ms; transition-delay: calc(var(--i) * 50ms); }
html.js .gp-values.reveal.in li { opacity: 1; transform: none; }

.gp-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--ink); }
.gp-area { padding: 22px 26px 4px 0; }
.gp-area + .gp-area { padding-left: 26px; border-left: 1px solid var(--line); }
.gp-area h3 { font-family: var(--display); font-size: 18px; color: var(--ink); margin-bottom: 6px; }
.gp-area p { font-size: 14.5px; color: var(--muted); }

.gp-specs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.gp-spec { background: var(--bg-soft); padding: 28px 26px 30px; border-top: 2px solid var(--navy); transition: background 300ms var(--ease), transform 300ms var(--ease); }
.gp-spec:hover { background: var(--navy-soft); }
.gp-spec h3 { font-family: var(--display); font-size: 18px; color: var(--ink); margin-bottom: 10px; }
.gp-spec p { font-size: 14.5px; color: var(--muted); }

.gp-contact { margin-top: 52px; display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; }
.gp-contact ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; flex: 1; }
.gp-contact li { border: 1px solid var(--line); padding: 20px 22px; display: flex; flex-direction: column; gap: 4px; transition: border-color 250ms var(--ease); }
.gp-contact li:hover { border-color: rgba(29,36,82,0.4); }
.gp-contact strong { font-family: var(--display); font-size: 16px; color: var(--ink); }
.gp-contact span { font-size: 14.5px; color: var(--muted); }
.gp-contact a[href^="tel"] { font-weight: 600; color: var(--navy); text-decoration: none; margin-top: 8px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gp-map, .gp-web { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); text-decoration: none; transition: color 200ms; }
.gp-map .icon, .gp-web .icon { width: 13px; height: 13px; }
.gp-map:hover, .gp-web:hover { color: var(--navy); }
.gp-web { font-family: var(--display); font-weight: 600; font-size: 14.5px; color: var(--ink); padding-bottom: 4px; border-bottom: 1px solid var(--ink); }
.gp-close .btn-ink { background: #fff; color: var(--navy); border-color: #fff; }

@media (prefers-reduced-motion: reduce) {
  html.js .gp-a, html.js .gp-tile, html.js .gp-values.reveal li { opacity: 1; transform: none; filter: none; transition: none; }
  .gp-aura, .gp-figs::before, .gp-close::before { animation: none; }
}
@media (max-width: 960px) {
  .gp-hero { padding: 140px 0 80px; }
  .gp-hero-in, .gp-book-in { grid-template-columns: 1fr; gap: 44px; }
  .gp-tile:nth-child(2), .gp-tile:nth-child(3) { margin-left: 0; }
  .gp-nav { display: none; }
  .gp-figs-g { grid-template-columns: 1fr 1fr; row-gap: 36px; }
  .gp-fig:nth-child(3) { border-left: none; padding-left: 0; }
  .gp-ch-head { grid-template-columns: 1fr; gap: 24px; }
  .gp-tl, .gp-areas, .gp-specs, .gp-facts, .gp-phones { grid-template-columns: 1fr 1fr; }
  .gp-area + .gp-area, .gp-facts > div + div { border-left: none; padding-left: 0; }
}
@media (max-width: 720px) {
  .gp-hero, .gp-figs, .gp-book, .gp-close { padding-left: 0; padding-right: 0; }
  .gp-book { padding: 80px 0 20px; }
  .gp-ch { padding-bottom: 70px; margin-bottom: 70px; }
  .gp-tile { padding: 24px; min-height: 108px; }
  .gp-tile .gp-logo { height: 46px; }
  .gp-figs-g, .gp-tl, .gp-areas, .gp-specs, .gp-facts, .gp-phones { grid-template-columns: 1fr; }
  .gp-fig { border-left: none; padding: 0; }
  .gp-tl { gap: 26px; }
  .gp-tl li::before { display: none; }
  .gp-ch-logo { height: 120px; }
}
.gp-tile .gp-logo-gb { height: 84px; max-width: 58%; }
.gp-ch-logo .gp-logo-gb { max-height: 116px; }
@media (max-width: 720px) { .gp-tile .gp-logo-gb { height: 66px; } }

/* ============ Grupo: versión minimal y fina ============ */
.gp .x-h1 { font-weight: 600; letter-spacing: -0.03em; }
.gp .x-h2 { font-weight: 600; letter-spacing: -0.02em; }
.gp-hero { padding: 180px 0 120px; }
.gp-aura, .gp-figs::before, .gp-close::before { display: none; }
.gp-hero-in { grid-template-columns: 1fr 1fr; gap: 100px; align-items: end; }
.gp-hero .lm:nth-child(2) > span { color: var(--navy); font-weight: 500; }
.gp-ix { list-style: none; border-top: 1px solid var(--line); }
.gp-ix a { display: grid; grid-template-columns: 1fr auto 18px; align-items: baseline; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.gp-ix-n { font-family: var(--display); font-weight: 500; font-size: clamp(21px, 2vw, 25px); color: var(--ink); letter-spacing: -0.015em; transition: color 250ms var(--ease), transform 400ms var(--ease); }
.gp-ix-p { font-size: 13px; color: var(--muted); text-align: right; }
.gp-ix .icon { width: 15px; height: 15px; color: var(--muted); transition: transform 300ms var(--ease), color 250ms; align-self: center; }
.gp-ix a:hover .gp-ix-n { color: var(--navy); transform: translateX(6px); }
.gp-ix a:hover .icon { color: var(--navy); transform: translateX(3px); }
html.js .gp-ix a { opacity: 0; transform: translateY(10px); transition: opacity 800ms var(--ease), transform 800ms var(--ease); transition-delay: calc(var(--i) * 110ms + 450ms); }
html.js body.loaded .gp-ix a { opacity: 1; transform: none; }

.gp-figs { background: transparent; padding: 0; }
.gp-figs-g { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gp-fig { padding: 40px 30px 38px; border-left: 1px solid var(--line); }
.gp-fig:first-child { padding-left: 0; }
.gp-fig b { color: var(--navy); font-weight: 500; font-size: clamp(32px, 3vw, 40px); }
.gp-fig h3 { color: var(--ink); font-weight: 500; font-size: 14.5px; }
.gp-fig p { color: var(--muted); font-size: 14.5px; }

.gp-book { padding-top: 110px; }
.gp-nav a span { font-weight: 500; font-size: 16px; }
.gp-nav-bar { height: 1px; }
.gp-ch-head { grid-template-columns: 170px 1fr; gap: 36px; }
.gp-ch-logo { height: 96px; padding: 18px; box-shadow: none; background: var(--navy); }
.gp-ch-logo .gp-logo { max-height: 52px; }
.gp-ch-logo .gp-logo-coyfer { max-height: 32px; }
.gp-ch-logo .gp-logo-gb { max-height: 72px; }
.gp-ch-text p { font-size: 18px; }
.gp-ch-text p:first-child { color: var(--body); }
.gp-sub { font-weight: 500; font-size: 14.5px; color: var(--muted); margin: 48px 0 16px; }
.gp-facts { border-top-color: var(--line); }
.gp-facts dd { font-weight: 500; font-size: 18px; }
.gp-tl b { font-weight: 500; font-size: 25px; }
.gp-tl li::before { width: 5px; height: 5px; top: -33px; }
.gp-areas { border-top-color: var(--line); }
.gp-area h3, .gp-spec h3 { font-weight: 500; }
.gp-specs { gap: 0; border-top: 1px solid var(--line); }
.gp-spec { background: none; border-top: none; padding: 22px 26px 4px 0; }
.gp-spec + .gp-spec { padding-left: 26px; border-left: 1px solid var(--line); }
.gp-spec:hover { background: none; }
.gp-contact ul { gap: 0; border-top: 1px solid var(--line); }
.gp-contact li { border: none; padding: 20px 24px 0 0; }
.gp-contact li + li { padding-left: 24px; border-left: 1px solid var(--line); }
.gp-contact strong { font-weight: 500; }
.gp-contact a[href^="tel"] { font-weight: 500; }
.gp-web { font-weight: 500; font-size: 14.5px; }

@media (max-width: 960px) {
  .gp-hero-in { grid-template-columns: 1fr; gap: 56px; }
  .gp-fig { padding: 28px 20px; }
  .gp-fig:nth-child(odd) { padding-left: 0; border-left: none; }
  .gp-specs, .gp-contact ul { grid-template-columns: 1fr; }
  .gp-spec + .gp-spec, .gp-contact li + li { padding-left: 0; border-left: none; }
}
@media (max-width: 720px) {
  .gp-hero { padding: 130px 0 70px; }
  .gp-figs-g { grid-template-columns: 1fr 1fr; }
  .gp-fig { padding: 24px 14px; }
  .gp-fig:nth-child(even) { border-left: 1px solid var(--line); }
  .gp-ch-head { grid-template-columns: 1fr; }
  .gp-ch-logo { width: 160px; }
  .gp-ix a { grid-template-columns: 1fr 18px; }
  .gp-ix-p { grid-column: 1; text-align: left; margin-top: -14px; }
}
.foot-social .icon { width: 17px; height: 17px; stroke-width: 1.5; }
.gp-place b { display: block; font-weight: 500; color: var(--navy); font-size: 14.5px; margin-bottom: 2px; }
.gp-ch-head .x-h2 { margin-bottom: 6px; }
.gp-ix .gp-ix-lead a { padding: 28px 0 26px; }
.gp-ix .gp-ix-lead .gp-ix-n { font-size: clamp(25px, 2.6vw, 40px); font-weight: 600; color: var(--navy); }
.gp-ix li:not(.gp-ix-lead) .gp-ix-n { font-size: clamp(18px, 1.7vw, 25px); }
.gp-hero .lm > span { color: var(--ink) !important; font-weight: 600 !important; }
.gp-ix .gp-ix-n { font-size: clamp(21px, 2vw, 25px) !important; font-weight: 500 !important; color: var(--ink) !important; }
.gp-ix a { padding: 22px 0 !important; }
.gp-hero .x-claim { max-width: 52ch; margin-bottom: 0; }
body:has(main.gp) { padding-bottom: 0; }

/* Hero del grupo con fotografía a sangre por la derecha */
.gp-hero-foto { position: relative; overflow: hidden; isolation: isolate; padding-bottom: clamp(96px, 10vw, 132px); }
.gp-hero-foto .gp-hero-in { grid-template-columns: 1fr; align-items: start; }
.gp-hero-foto .gp-hero-copy { max-width: 46ch; }
.gp-hero-foto .x-claim { max-width: 44ch; }
.gp-hero-foto .gp-ix { margin-top: clamp(40px, 4.4vw, 64px); max-width: 46ch; }

.gp-foto { position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; width: clamp(460px, 56%, 1120px); pointer-events: none; }
.gp-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 38% 62%; filter: saturate(0.9); }
/* se funde con el fondo por la izquierda, arriba y abajo */
.gp-foto::after { content: ""; position: absolute; inset: -1px;
  background: linear-gradient(to right, var(--bg) 0%, var(--bg) 10%, rgba(254,254,253,0.72) 30%, rgba(254,254,253,0.28) 50%, rgba(254,254,253,0) 72%),
              linear-gradient(to bottom, var(--bg) 0%, var(--bg) 5%, rgba(254,254,253,0) 30%),
              linear-gradient(to top, var(--bg) 0%, var(--bg) 4%, rgba(254,254,253,0) 26%); }
html.js .gp-foto { opacity: 0; transform: scale(1.04); transition: opacity 1200ms var(--ease), transform 1600ms var(--ease); }
html.js body.loaded .gp-foto { opacity: 1; transform: none; }

@media (max-width: 1100px) { .gp-foto { width: 46%; } .gp-hero-foto .gp-hero-copy { max-width: 40ch; } }
@media (max-width: 860px) {
  .gp-hero-foto { padding-bottom: 0; display: flex; flex-direction: column; }
  .gp-hero-foto .gp-hero-in { order: 1; }
  .gp-foto { order: 2; }
  .gp-hero-foto .gp-hero-copy, .gp-hero-foto .x-claim, .gp-hero-foto .gp-ix { max-width: none; }
  .gp-foto { position: relative; z-index: 0; width: 100%; height: clamp(190px, 46vw, 260px); margin-top: clamp(40px, 8vw, 56px); }
  .gp-foto::after { background: linear-gradient(to bottom, var(--bg) 0%, rgba(254,254,253,0) 22%); }
}
@media (prefers-reduced-motion: reduce) { html.js .gp-foto { opacity: 1; transform: none; transition: none; } }

/* Empresas: catálogo con imagen por área */
.areas-sec.with-figs .area { min-height: 0; }
.area.in .area-fig img { transform: none; }
html.js .area.in .area-fig { clip-path: inset(0 0 0 0); }

@media (max-width: 960px) { a.cap-row { grid-template-columns: 1fr 30px !important; } a.cap-row .cap-desc { display: none; } }

/* ============ Empresas (estructura propia) ============ */
.emp .x-h1 { font-weight: 600; }
.emp .x-h2 { font-weight: 600; }
.em-hero .x-h1 { font-size: clamp(40px, 4.4vw, 51px); max-width: 12ch; }
.em-hero .x-claim { max-width: 46ch; }
html.js .em-a { opacity: 0; transform: translateY(14px); filter: blur(4px); transition: opacity 800ms var(--ease), transform 800ms var(--ease), filter 800ms var(--ease); transition-delay: calc(var(--d) * 110ms + 100ms); }
html.js body.loaded .em-a { opacity: 1; transform: none; filter: none; }
body.loaded .em-hero-fig img { transform: none; }
html.js body.loaded .em-hero-fig { clip-path: inset(0 0 0 0); }
.em-case .icon { width: 14px; height: 14px; transition: transform 300ms var(--ease); }
.em-case:hover .icon { transform: translateX(4px); }
.em-panel { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 70px; align-items: start; animation: em-in 600ms var(--ease); }
@keyframes em-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes em-zoom { from { transform: scale(1.06); } to { transform: none; } }
.em-panel-body li .icon { width: 14px; height: 14px; color: var(--muted); align-self: center; transition: transform 300ms var(--ease), color 250ms; }
.em-panel-body li a:hover .em-it-n, .em-panel-body li a:hover .icon { color: var(--navy); }
.em-panel-body li a:hover .icon { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
  html.js .em-a, html.js .em-hero-fig { opacity: 1; transform: none; filter: none; clip-path: none; transition: none; }
  .em-panel, .em-panel-fig img { animation: none; }
}
@media (max-width: 960px) {
  .em-hero-in, .em-cases-in, .em-panel { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 720px) { .em-panel-body li .icon { grid-column: 2; grid-row: 1; align-self: center; } }
.em-hero .x-h1 { font-size: clamp(40px, 3.8vw, 51px); max-width: none; }
.em-hero .x-claim { margin: 14px 0 0; font-size: 18px; }
.em-finder label { display: block; font-family: var(--display); font-weight: 500; font-size: 14.5px; color: var(--ink); margin-bottom: 10px; }
.em-q-wrap { position: relative; }
.em-q-wrap .icon { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--muted); pointer-events: none; }
.em-finder input { width: 100%; height: 56px; padding: 0 18px 0 50px; border: 1px solid var(--line); background: #fff; font: 400 16px var(--text); color: var(--ink); outline: none; transition: border-color 200ms var(--ease), box-shadow 200ms var(--ease); -webkit-appearance: none; border-radius: 0; }
.em-finder input::placeholder { color: var(--muted); }
.em-finder input:focus { border-color: var(--navy); box-shadow: 0 0 0 3px rgba(29,36,82,0.08); }
.em-finder { position: relative; }
.em-q-res { position: absolute; left: 0; right: 0; top: calc(100% - 40px); z-index: 30; list-style: none; background: #fff; border: 1px solid var(--line); border-top: none; box-shadow: 0 24px 50px -30px rgba(18,22,56,0.35); }
.em-q-res a { display: flex; justify-content: space-between; gap: 16px; padding: 13px 18px; text-decoration: none; color: var(--ink); font-size: 16px; border-top: 1px solid var(--line); }
.em-q-res a small { color: var(--muted); font-size: 13px; }
.em-q-res a:hover, .em-q-res a.on { background: var(--navy-soft); color: var(--navy); }
.em-q-res li.none { padding: 13px 18px; font-size: 14.5px; color: var(--muted); border-top: 1px solid var(--line); }
.em-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--line); }
.em-col { padding: 24px 24px 0; border-left: 1px solid var(--line); scroll-margin-top: 100px; }
.em-col:first-child { padding-left: 0; border-left: none; }
.em-col:hover .em-col-fig img { transform: scale(1.04); }
.em-col h2 { font-family: var(--display); font-weight: 600; font-size: 18px; color: var(--ink); letter-spacing: -0.01em; }
.em-col > p { font-size: 14.5px; color: var(--muted); margin: 4px 0 12px; }
.em-col ul { list-style: none; }
.em-col li a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); text-decoration: none; font-family: var(--display); font-weight: 500; font-size: 16px; color: var(--ink); transition: color 200ms, opacity 250ms; }
.em-col li a .icon { width: 14px; height: 14px; color: var(--muted); flex: none; transition: transform 250ms var(--ease), color 200ms; }
.em-col li a:hover { color: var(--navy); }
.em-col li a:hover .icon { color: var(--navy); transform: translateX(3px); }
.em-grid.filtering li a { opacity: 0.28; }
.em-grid.filtering li a.hit { opacity: 1; color: var(--navy); }
.em-cases .x-h2 { margin-bottom: 18px; }
.em-method .x-h2 { margin-bottom: 14px; }

@media (max-width: 960px) {
  .em-grid { grid-template-columns: 1fr 1fr; }
  .em-col:nth-child(3) { padding-left: 0; border-left: none; }
  .em-col { padding-bottom: 24px; }
}
@media (max-width: 720px) {
  .em-grid { grid-template-columns: 1fr; }
  .em-col, .em-col + .em-col { padding: 22px 0 0; border-left: none; }
}
.em-q-res { top: 100%; }
.em-col { padding: 24px 24px 0; }
.em-col:last-child { padding-right: 0; }
@media (max-width: 960px) { .em-col:nth-child(2) { padding-right: 0; } }
@media (max-width: 720px) { .em-col, .em-col + .em-col, .em-col:last-child { padding: 22px 0 0; } }
.em-hero .x-h1 { font-size: clamp(40px, 3.6vw, 51px); }
.em-hero .x-claim { font-size: 18px; max-width: 40ch; }
.em-finder input { height: 58px; font-size: 18px; }
.em-grid { gap: 48px; border-top: none; }
.em-col, .em-col:first-child, .em-col:last-child { padding: 0; border-left: none; }
.em-col h2 { font-size: 18px; font-weight: 600; margin-bottom: 8px; padding-bottom: 12px; border-bottom: 1px solid var(--ink); }
.em-col li a { min-height: 48px; padding: 12px 0; border-top: none; border-bottom: 1px solid var(--line); font-size: 16px; font-weight: 400; }
.em-col li:last-child a { border-bottom: none; }
.em-col li a:focus-visible, .em-case:focus-visible, .em-chip:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

@media (max-width: 960px) {
  .em-grid { grid-template-columns: 1fr 1fr; gap: 40px 32px; }
  .em-col:nth-child(3) { padding-left: 0; }
}
@media (max-width: 720px) {
  .em-grid, .em-steps { grid-template-columns: 1fr; }
  .em-col, .em-col + .em-col { padding: 0; }
}

/* ============ Empresas v4: selector por sector ============ */
.ep-hero { padding: 140px 0 80px; }
.ep-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex-wrap: wrap; margin-bottom: 44px; }
.ep-top .x-h1 { font-size: clamp(40px, 3.8vw, 51px); font-weight: 600; }
.ep-top .x-claim { margin: 0; max-width: 36ch; font-size: 18px; }
.ep-q { font-family: var(--display); font-weight: 500; font-size: 16px; color: var(--muted); margin-bottom: 14px; }
.ep-cards { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.ep-card { position: relative; background: #fff; border: 1px solid var(--line); padding: 0; cursor: pointer; text-align: left; font: inherit; display: flex; flex-direction: column; overflow: hidden;
  transition: border-color 250ms var(--ease), box-shadow 300ms var(--ease), transform 300ms var(--ease); }
.ep-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.ep-img img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(0.85); transition: transform 900ms var(--ease), filter 400ms var(--ease); }
.ep-name { display: block; padding: 12px 14px 14px; font-family: var(--display); font-weight: 500; font-size: 14.5px; line-height: 1.3; color: var(--ink); min-height: 58px; }
.ep-card:hover { border-color: rgba(29,36,82,0.35); transform: translateY(-2px); }
.ep-card:hover img { transform: scale(1.04); filter: saturate(1); }
.ep-card[aria-selected="true"] { border-color: var(--navy); box-shadow: 0 0 0 1px var(--navy), 0 18px 40px -26px rgba(18,22,56,0.45); }
.ep-card[aria-selected="true"] .ep-name { color: var(--navy); font-weight: 600; }
.ep-card[aria-selected="true"] img { filter: saturate(1); }
.ep-card:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
html.js .ep-card { opacity: 0; transform: translateY(12px); }
html.js body.loaded .ep-card { opacity: 1; transform: none; transition: opacity 700ms var(--ease), transform 700ms var(--ease), border-color 250ms, box-shadow 300ms; transition-delay: calc(var(--i) * 60ms + 400ms); }

.ep-panels { margin-top: 28px; border: 1px solid var(--line); background: #fff; }
.ep-panel { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 56px; padding: 40px 44px; animation: em-in 500ms var(--ease); }
.ep-panel-head h2 { font-family: var(--display); font-weight: 600; font-size: clamp(25px, 2.2vw, 32px); color: var(--ink); letter-spacing: -0.02em; line-height: 1.2; margin-bottom: 12px; }
.ep-panel-head p { color: var(--muted); font-size: 16px; max-width: 42ch; margin-bottom: 26px; }
.ep-note { display: block; margin-top: 12px; font-size: 14.5px; color: var(--muted); }
.ep-list { list-style: none; border-top: 1px solid var(--ink); }
.ep-list a { display: grid; grid-template-columns: 0.9fr 1.1fr 18px; gap: 20px; align-items: center; min-height: 52px; padding: 12px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.ep-it-n { font-family: var(--display); font-weight: 500; font-size: 16px; color: var(--ink); transition: color 200ms; }
.ep-it-d { font-size: 14.5px; color: var(--muted); }
.ep-list .icon { width: 14px; height: 14px; color: var(--muted); transition: transform 250ms var(--ease), color 200ms; }
.ep-list a:hover .ep-it-n, .ep-list a:hover .icon { color: var(--navy); }
.ep-list a:hover .icon { transform: translateX(4px); }
.ep-list a:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
html.js .ep-panel .ep-list li { opacity: 0; transform: translateY(8px); animation: ep-li 500ms var(--ease) forwards; }
.ep-list li:nth-child(1) { animation-delay: 60ms !important; } .ep-list li:nth-child(2) { animation-delay: 120ms !important; }
.ep-list li:nth-child(3) { animation-delay: 180ms !important; } .ep-list li:nth-child(4) { animation-delay: 240ms !important; }
.ep-list li:nth-child(5) { animation-delay: 300ms !important; }
@keyframes ep-li { to { opacity: 1; transform: none; } }
.ep-index-head .x-h2 { margin: 12px 0 0; }
.ep-all { margin-top: 36px; border-top: 1px solid var(--line); }
.ep-all summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 20px 0; font-family: var(--display); font-weight: 500; font-size: 16px; color: var(--navy); }
.ep-all summary::-webkit-details-marker { display: none; }
.ep-all summary .icon { width: 15px; height: 15px; transform: rotate(90deg); transition: transform 300ms var(--ease); }
.ep-all[open] summary .icon { transform: rotate(-90deg); }
.ep-all .em-grid { padding-top: 10px; animation: em-in 450ms var(--ease); }
.ep-all .em-col h3 { font-family: var(--display); font-size: 16px; font-weight: 600; color: var(--ink); padding-bottom: 10px; margin-bottom: 4px; border-bottom: 1px solid var(--ink); }
.ep-all .em-col li a { min-height: 44px; }

@media (prefers-reduced-motion: reduce) { html.js .ep-card, html.js .ep-panel .ep-list li { opacity: 1; transform: none; animation: none; transition: none; } .ep-panel { animation: none; } }
@media (max-width: 1100px) { .ep-cards { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 960px) {
  .ep-hero { padding: 120px 0 56px; }
  .ep-panel, .ep-index-head { grid-template-columns: 1fr; gap: 28px; }
  .ep-panel { padding: 28px 24px; }
}
@media (max-width: 720px) {
  .ep-hero, .ep-index, .ep-trust { padding-left: 0; padding-right: 0; }
  .ep-top { margin-bottom: 28px; }
  .ep-cards { grid-template-columns: 1fr 1fr; gap: 10px; }
  .ep-name { font-size: 14.5px; min-height: 52px; padding: 10px 12px 12px; }
  .ep-img { aspect-ratio: 16 / 9; }
  .ep-panel { padding: 24px 18px; }
  .ep-panel-head .btn-ink { width: 100%; }
  .ep-list a { grid-template-columns: 1fr 18px; gap: 4px 12px; }
  .ep-it-d { grid-column: 1; }
  .ep-list .icon { grid-column: 2; grid-row: 1 / 3; }
}

/* ============ Empresas: pasada taste ============ */
.ep-hero { padding-top: 124px; }
.ep-top { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 40px; }
.ep-top .x-claim { max-width: 52ch; }

.ep-close { position: relative; height: min(62vh, 560px); min-height: 360px; overflow: hidden; display: flex; align-items: flex-end; isolation: isolate; }
.ep-close-fig { position: absolute; inset: 0; margin: 0; z-index: -2; }
.ep-close-fig img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; display: block; transform: scale(1.08); transition: transform 2400ms var(--ease); }
.ep-close.seen .ep-close-fig img { transform: scale(1); }
.ep-close-veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(12,16,44,0) 35%, rgba(12,16,44,0.72) 100%); }
.ep-close-in { width: 100%; padding-bottom: 56px; }
.ep-close-t { font-family: var(--display); font-weight: 500; color: #fff; font-size: clamp(25px, 2.8vw, 40px); line-height: 1.2; letter-spacing: -0.02em; max-width: 24ch; }
@media (prefers-reduced-motion: reduce) { .ep-close-fig img { transform: none; transition: none; } }
@media (max-width: 720px) { .ep-close { height: 420px; min-height: 0; padding: 0; } .ep-close-in { padding-bottom: 36px; } }
.ep-close-fig img { filter: saturate(0.78) contrast(1.03) brightness(0.97); }
.ep-close-veil { background: linear-gradient(90deg, rgba(12,16,44,0.55) 0%, rgba(12,16,44,0.12) 55%, rgba(12,16,44,0) 100%), linear-gradient(180deg, rgba(12,16,44,0.05) 30%, rgba(12,16,44,0.7) 100%); }
/* Título de Empresas sin recorte de descendentes */
html.js .ep-top .lm { padding-bottom: 0.16em; margin-bottom: -0.1em; }
.ep-top .x-h1 { line-height: 1.08; }
/* Cierre: sala de juntas */
.ep-close-fig img { object-position: center 58%; filter: saturate(0.9) contrast(1.02); }
.ep-close-veil { background: linear-gradient(180deg, rgba(12,16,44,0) 40%, rgba(12,16,44,0.66) 100%); }
.ep-close-fig img { object-position: center 78%; }
.ep-close-veil { background: linear-gradient(180deg, rgba(12,16,44,0.28) 0%, rgba(12,16,44,0.4) 45%, rgba(12,16,44,0.8) 100%); }
.ep-close-t { text-shadow: 0 2px 24px rgba(12,16,44,0.35); }

/* Máscara de titulares: margen para descendentes (Safari los dibuja más abajo) */
html.js .lm { padding-bottom: 0.24em; margin-bottom: -0.24em; }
html.js .subhero h1 .lm { padding-bottom: 0.24em; margin-bottom: -0.24em; }
html.js .ep-top .lm { padding-bottom: 0.24em; margin-bottom: -0.24em; }

/* Titulares: tras la animación de entrada, sin máscara para que no se corten los descendentes */
html.js.lm-open .lm { overflow: visible; }

/* Landing: rotación del titular (empresa / familia): fundido con desplazamiento corto */
html.js .loaded .hero-cine h1 .lm > span.rot-out { opacity: 0; transform: translateY(-0.28em); filter: blur(6px); transition: opacity 480ms var(--ease-io), transform 480ms var(--ease-io), filter 480ms var(--ease-io); }
html.js .loaded .hero-cine h1 .lm > span.rot-prep { opacity: 0; transform: translateY(0.32em); filter: blur(6px); transition: none; }
html.js .loaded .hero-cine h1 .lm > span { transition: transform 900ms var(--ease), opacity 700ms var(--ease), filter 700ms var(--ease); }
.hero-cine h1 .lm > span.rot-fade { opacity: 0; transition: opacity 300ms ease; }

/* Menú superior un escalón mayor */
@media (min-width: 721px) {
  .navbar { height: 80px; }
  .logo img { height: 56px; }
  .nav-links { gap: 36px; }
  .nav-links a, .nav-links .sub-toggle { font-size: 16px; }
  .nav-phone { font-size: 16px; }
  .nav-phone .icon { width: 16px; height: 16px; }
  .nav-cta .link-cta { font-size: 14.5px; }
  .nav-cta .link-cta .icon { width: 16px; height: 16px; }
  .lang button { font-size: 13px; }
}
@media (min-width: 721px) and (max-width: 1240px) {
  .nav-links { gap: 26px; }
  .nav-cta { gap: 22px; }
  .logo img { height: 50px; }
}
.nav-links a, .nav-links .sub-toggle, .nav-cta .link-cta, .nav-phone { white-space: nowrap; }
@media (min-width: 1081px) and (max-width: 1200px) {
  .nav-links { gap: 22px; }
  .nav-cta { gap: 20px; }
  .navbar { gap: 20px; }
  .logo img { height: 46px; }
}

/* Particulares: frase del mosaico un poco mayor */
.mos-note { font-size: clamp(21px, 1.6vw, 25px); line-height: 1.35; }
@media (max-width: 960px) { .mos-note { font-size: 18px; } }

/* Landing: franja de datos con facturación */
.hc-data-in { grid-template-columns: repeat(5, 1fr); }
.hc-data-in > div { white-space: nowrap; }
@media (max-width: 1100px) { .hc-data-in > div > span { font-size: 13px; } .hc-data-in b { font-size: 18px; } }
@media (max-width: 960px) {
  .hc-data-in { grid-template-columns: repeat(2, 1fr); }
  .hc-data-in > div:last-child { grid-column: 1 / -1; }
}

/* Cinco oficinas */
.offices { grid-template-columns: repeat(5, 1fr); gap: 32px; }
@media (max-width: 1180px) { .offices { grid-template-columns: repeat(3, 1fr); gap: 40px 32px; } }
@media (max-width: 960px) { .offices { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .offices { grid-template-columns: 1fr; } }
/* Franja de la cabecera con cuatro datos */
.hc-data-in { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .hc-data-in { grid-template-columns: repeat(2, 1fr); } .hc-data-in > div:last-child { grid-column: auto; } }

/* Barra de datos del hero: algo más grande y legible */
.hc-data-in { padding-top: 26px; padding-bottom: 26px; }
.hc-data-in > div { gap: 12px; }
.hc-data-in b { font-size: 25px; }
.hc-data-in > div > span { font-size: 16px; color: rgba(255, 255, 255, 0.72); }
@media (max-width: 1100px) { .hc-data-in b { font-size: 21px; } .hc-data-in > div > span { font-size: 14.5px; } }
@media (max-width: 960px) { .hc-data-in { padding-top: 16px; padding-bottom: 16px; gap: 14px 20px; } .hc-data-in b { font-size: 21px; } .hc-data-in > div > span { font-size: 14.5px; } }
@media (max-width: 600px) { .hc-data-in > div { flex-direction: column; align-items: flex-start; gap: 2px; } .hc-data-in b { font-size: 25px; } .hc-data-in > div > span { font-size: 14.5px; } }
.ep-spec .icon { width: 13px; height: 13px; color: var(--muted); transform: rotate(90deg); transition: transform 300ms var(--ease), color 200ms; }
.ep-spec:hover .icon { color: var(--navy); transform: rotate(90deg) translateX(3px); }
.ej.seen .ej-fig img { transform: scale(1); }
.ej.seen .ej-glint { animation: ej-glint 2.4s 0.9s var(--ease) forwards; }
@keyframes ej-glint { 0% { opacity: 0; background-position: 120% 0; } 20% { opacity: 1; } 100% { opacity: 0; background-position: -30% 0; } }
.ej-tabs { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ej-line); }
.ej-tabs button { font: inherit; text-align: left; background: none; border: 0; color: var(--ej-mute); cursor: pointer; padding: 16px 12px 14px 0; display: grid; gap: 2px; transition: color 250ms var(--ease); }
.ej-tabs button:hover, .ej-tabs button[aria-selected="true"] { color: #fff; }
.ej-tabs button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ej-more .icon { width: 14px; height: 14px; transition: transform 250ms var(--ease); }
.ej-more:hover .icon { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) { .ej.seen .ej-glint { animation: none; } }

@media (max-width: 720px) {
  .ej-tabs button { padding-right: 6px; }
}
@media (max-width: 960px) {
  .ej.seen .ej-fig img { transform: scale(1.6); }
}
@media (max-width: 960px) { .ej.seen .ej-fig img { transform: scale(1.4); } }

/* ============ Especialidad: joyerías (página propia) ============ */
.jy { --jy-bg: #0b0e29; --jy-line: rgba(255,255,255,0.14); --jy-mute: rgba(255,255,255,0.64); background: var(--bg, #f7f7f5); }
.jy section { padding: 0; }
.jy-k { display: flex; align-items: center; gap: 12px; font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--jy-mute); margin-bottom: 18px; }
.jy-k i { width: 28px; height: 1px; background: currentColor; opacity: 0.7; }
.jy-k-ink { color: var(--muted); }
.jy-h2 { font-family: var(--display); font-weight: 600; font-size: clamp(32px, 3.2vw, 40px); letter-spacing: -0.025em; line-height: 1.1; color: var(--ink); }
.jy-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; background: #fff; color: var(--navy); border: 1px solid #fff; font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; transition: background 250ms var(--ease), color 250ms var(--ease); }
.jy-btn:hover { background: transparent; color: #fff; }

/* Hero */
.jy .jy-hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; background: var(--jy-bg); color: #fff; overflow: hidden; isolation: isolate; }
.jy-hero-fig { position: absolute; inset: 0; margin: 0; z-index: -2; }
.jy-hero-fig img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; display: block; transform: scale(1.08); transition: transform 3200ms var(--ease); }
body.loaded .jy-hero-fig img { transform: scale(1); }
.jy-hero-veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11,14,41,0.92) 0%, rgba(11,14,41,0.7) 38%, rgba(11,14,41,0.15) 75%), linear-gradient(0deg, rgba(11,14,41,0.9) 0%, transparent 45%); }
.jy-hero-in { padding-top: 150px; padding-bottom: 56px; }
.jy-crumb { display: flex; gap: 10px; font-size: 14.5px; color: var(--jy-mute); margin-bottom: 40px; }
.jy-crumb a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.35); }
.jy-h1 { font-family: var(--display); font-weight: 600; font-size: clamp(40px, 5.6vw, 51px); letter-spacing: -0.035em; line-height: 1.02; color: #fff; max-width: 13ch; margin-bottom: 26px; }
.jy-claim { font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.8); max-width: 50ch; margin-bottom: 34px; }
.jy-hero-act { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.jy-tel { font-family: var(--display); font-size: 16px; font-weight: 500; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.35); padding-bottom: 2px; }
.jy-hero-facts { border-top: 1px solid var(--jy-line); background: rgba(11,14,41,0.35); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.jy-hero-facts dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; padding: 22px 0; margin: 0; }
.jy-hero-facts div { display: flex; align-items: baseline; gap: 12px; }
.jy-hero-facts dt { font-size: 14.5px; color: var(--jy-mute); }
.jy-hero-facts dd { margin: 0; font-family: var(--display); font-size: 18px; font-weight: 600; color: #fff; order: -1; }
html.js .jy-a { opacity: 0; transform: translateY(14px); }
html.js body.loaded .jy-a { opacity: 1; transform: none; transition: opacity 900ms var(--ease), transform 900ms var(--ease); transition-delay: calc(var(--d) * 110ms + 250ms); }

/* Intro */
.jy .jy-intro { padding: 120px 0 110px; }
.jy-intro-in { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.jy-intro-h { font-family: var(--display); font-weight: 500; font-size: clamp(32px, 3.6vw, 51px); letter-spacing: -0.03em; line-height: 1.08; color: var(--ink); }
.jy-intro-t p { font-size: 18px; line-height: 1.7; color: var(--muted); max-width: 52ch; padding-top: 8px; }

/* Estaciones */
.jy .jy-st { background: var(--jy-bg); color: #fff; padding: 110px 0; }
.jy-st .jy-h2 { color: #fff; margin-bottom: 16px; }
.jy-st-in { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 72px; align-items: center; }
.jy-st-lead { font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.74); max-width: 46ch; margin-bottom: 40px; }
.jy-st-tabs { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--jy-line); }
.jy-st-tabs button { font: inherit; background: none; border: 0; text-align: left; color: var(--jy-mute); padding: 18px 10px 16px 0; display: grid; gap: 3px; cursor: pointer; transition: color 250ms var(--ease); }
.jy-st-tabs button:hover, .jy-st-tabs button[aria-selected="true"] { color: #fff; }
.jy-st-tabs button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.jy-st-n { font-family: var(--display); font-size: 13px; letter-spacing: 0.1em; opacity: 0.7; }
.jy-st-l { font-family: var(--display); font-size: 21px; font-weight: 500; }
.jy-st-w { font-size: 13px; opacity: 0.75; }
.jy-st-ind { position: absolute; top: -1px; left: 0; width: calc(100% / 3); height: 2px; background: #fff; transform: translateX(calc(var(--jy-i, 0) * 100%)); transition: transform 550ms var(--ease); }
.jy-st-panels { min-height: 150px; padding-top: 10px; }
.jy-st-p { animation: em-in 450ms var(--ease); }
.jy-st-p p { font-size: 16px; line-height: 1.65; color: rgba(255,255,255,0.86); max-width: 50ch; margin-bottom: 16px; }
.jy-st-p ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.jy-st-p li { font-size: 13px; padding: 6px 12px; border: 1px solid var(--jy-line); color: rgba(255,255,255,0.8); }
.jy-st-fig { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; background: #070918; }
.jy-st-fig img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity 800ms var(--ease), transform 1600ms var(--ease); }
.jy-st-fig img.on { opacity: 1; transform: scale(1); }

/* Coberturas */
.jy .jy-cv { padding: 120px 0 100px; }
.jy-cv-head { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; margin-bottom: 56px; }
.jy-cv-head p { font-size: 18px; color: var(--muted); max-width: 44ch; }
.jy-cv-g { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.jy-cv-g li { padding: 30px 32px 34px 0; border-bottom: 1px solid var(--line); }
.jy-cv-g li:not(:nth-child(3n+1)) { padding-left: 32px; border-left: 1px solid var(--line); }
.jy-cv-n { display: block; font-family: var(--display); font-size: 13px; letter-spacing: 0.08em; color: var(--navy); margin-bottom: 22px; }
.jy-cv-g h3 { font-family: var(--display); font-size: 21px; font-weight: 600; color: var(--ink); letter-spacing: -0.01em; margin-bottom: 10px; }
.jy-cv-g p { font-size: 16px; line-height: 1.6; color: var(--muted); }

/* Seguridad */
.jy .jy-sec { position: relative; overflow: hidden; isolation: isolate; padding: 120px 0; background: var(--jy-bg); }
.jy-sec-fig { position: absolute; inset: 0; margin: 0; z-index: -1; }
.jy-sec-fig img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0.75; transform: scale(1.18); }
.jy-sec-in { display: flex; justify-content: flex-end; }
.jy-sec-card { width: min(520px, 100%); background: rgba(255,255,255,0.97); padding: 44px 44px 36px; box-shadow: 0 40px 80px -40px rgba(0,0,0,0.6); }
.jy-sec-card .jy-h2 { font-size: clamp(25px, 2.4vw, 32px); margin-bottom: 10px; }
.jy-sec-sub { font-size: 16px; color: var(--muted); margin-bottom: 22px; }
.jy-chk { list-style: none; border-top: 1px solid var(--ink); }
.jy-chk label { display: grid; grid-template-columns: 20px 1fr; gap: 14px; align-items: center; min-height: 52px; padding: 10px 0; border-bottom: 1px solid var(--line); cursor: pointer; font-size: 16px; color: var(--ink); }
.jy-chk input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.jy-box { width: 20px; height: 20px; border: 1px solid rgba(18,19,28,0.35); position: relative; transition: background 200ms, border-color 200ms; }
.jy-box::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg) scale(0); transition: transform 250ms var(--ease); }
.jy-chk input:checked + .jy-box { background: var(--navy); border-color: var(--navy); }
.jy-chk input:checked + .jy-box::after { transform: rotate(45deg) scale(1); }
.jy-chk input:focus-visible + .jy-box { outline: 2px solid var(--navy); outline-offset: 3px; }
.jy-sec-out { display: flex; align-items: center; gap: 16px; padding-top: 20px; }
.jy-meter { display: flex; gap: 4px; flex: none; }
.jy-meter i { width: 16px; height: 4px; background: var(--line); transition: background 300ms var(--ease); }
.jy-meter i.on { background: var(--navy); }
.jy-sec-out p { font-size: 14.5px; line-height: 1.5; color: var(--muted); }

/* Depósito */
.jy .jy-dep { padding: 120px 0; }
.jy-dep-in { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.jy-dep-fig { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.jy-dep-fig img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jy-dep-t .jy-h2 { margin-bottom: 20px; }
.jy-dep-t > p:not(.jy-k) { font-size: 18px; line-height: 1.7; color: var(--muted); max-width: 50ch; }
.jy-dep-tip { margin-top: 28px; padding: 20px 0 0; border-top: 1px solid var(--ink); font-size: 16px !important; color: var(--ink) !important; }
.jy-dep-tip b { font-family: var(--display); font-weight: 600; }

/* Casos */
.jy .jy-cs { padding: 110px 0; border-top: 1px solid var(--line); }
.jy-cs .jy-h2 { margin-bottom: 44px; }
.jy-cs-lbl { display: grid; grid-template-columns: 60px 1fr 1fr; gap: 40px; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); padding-bottom: 12px; }
.jy-cs-lbl span:first-child { grid-column: 2; }
.jy-cs-l { list-style: none; border-top: 1px solid var(--ink); }
.jy-cs-l li { display: grid; grid-template-columns: 60px 1fr 1fr; gap: 40px; padding: 28px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.jy-cs-n { font-family: var(--display); font-size: 13px; color: var(--navy); letter-spacing: 0.08em; }
.jy-cs-q { font-family: var(--display); font-size: 21px; font-weight: 500; line-height: 1.35; color: var(--ink); }
.jy-cs-a { font-size: 16px; line-height: 1.6; color: var(--muted); }

/* FAQ */
.jy .jy-faq { padding: 100px 0 120px; background: #fff; }
.jy-faq-in { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 80px; }
.jy-faq-l { border-top: 1px solid var(--ink); }
.jy-faq-i { border-bottom: 1px solid var(--line); }
.jy-faq-i summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 22px 0; font-family: var(--display); font-size: 18px; font-weight: 500; color: var(--ink); }
.jy-faq-i summary::-webkit-details-marker { display: none; }
.jy-faq-i summary i { position: relative; width: 14px; height: 14px; flex: none; }
.jy-faq-i summary i::before, .jy-faq-i summary i::after { content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 1.5px; background: var(--navy); transition: transform 300ms var(--ease); }
.jy-faq-i summary i::after { transform: rotate(90deg); }
.jy-faq-i[open] summary i::after { transform: rotate(0deg); }
.jy-faq-i p { padding: 0 40px 24px 0; font-size: 16px; line-height: 1.7; color: var(--muted); animation: em-in 400ms var(--ease); }

/* Cierre */
.jy .jy-end { position: relative; height: min(70vh, 620px); min-height: 380px; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; background: var(--jy-bg); }
.jy-end-fig { position: absolute; inset: 0; margin: 0; z-index: -1; }
.jy-end-fig img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; display: block; }
.jy-end-fig::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(11,14,41,0.92) 0%, rgba(11,14,41,0.25) 60%, rgba(11,14,41,0.1) 100%); }
.jy-end-in { padding-bottom: 64px; display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex-wrap: wrap; }
.jy-end-t { font-family: var(--display); font-weight: 500; font-size: clamp(25px, 3.2vw, 51px); letter-spacing: -0.025em; line-height: 1.15; color: #fff; max-width: 22ch; }
.jy-end-l { display: inline-flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 16px; font-weight: 500; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.4); padding-bottom: 4px; }
.jy-end-l .icon { width: 14px; height: 14px; transition: transform 250ms var(--ease); }
.jy-end-l:hover .icon { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) { html.js .jy-a { opacity: 1; transform: none; transition: none; } .jy-hero-fig img, .jy-st-fig img { transition: none; transform: none; } .jy-st-p, .jy-faq-i p { animation: none; } }
@media (max-width: 960px) {
  .jy-intro-in, .jy-st-in, .jy-cv-head, .jy-dep-in, .jy-faq-in { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .jy-st-fig { aspect-ratio: 16 / 11; order: -1; }
  .jy-cv-g { grid-template-columns: 1fr 1fr; }
  .jy-cv-g li, .jy-cv-g li:not(:nth-child(3n+1)) { padding: 26px 20px 28px 0; border-left: 0; }
  .jy-cv-g li:nth-child(2n) { padding-left: 20px; border-left: 1px solid var(--line); }
  .jy-sec-in { justify-content: center; }
}
@media (max-width: 720px) {
  .jy .jy-intro, .jy .jy-st, .jy .jy-cv, .jy .jy-dep, .jy .jy-cs, .jy .jy-faq, .jy .jy-sec { padding: 72px 0; }
  .jy-hero-in { padding-top: 120px; padding-bottom: 36px; }
  .jy-crumb { margin-bottom: 26px; }
  .jy-claim { font-size: 16px; }
  .jy-hero-act { flex-direction: column; align-items: stretch; gap: 18px; }
  .jy-tel { align-self: center; }
  .jy-hero-facts dl { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; }
  .jy-st-l { font-size: 16px; }
  .jy-st-w { font-size: 13px; }
  .jy-cv-g { grid-template-columns: 1fr; }
  .jy-cv-g li, .jy-cv-g li:nth-child(2n) { padding: 22px 0 24px; border-left: 0; }
  .jy-cv-n { margin-bottom: 10px; }
  .jy-sec-card { padding: 30px 22px 26px; }
  .jy-cs-lbl { display: none; }
  .jy-cs-l li { grid-template-columns: 1fr; gap: 8px; }
  .jy-faq-i p { padding-right: 0; }
  .jy-end-in { padding-bottom: 44px; }
}
.jy-hero-in, .jy-end-in, .jy-hero-facts .wrap { width: 100%; }
.ps-grid.six { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 1100px) { .ps-grid.six { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 960px) { .ps-grid.six { grid-template-columns: repeat(2, 1fr); } }
.jy-hero-line { padding: 22px 0; margin: 0; font-family: var(--display); font-size: clamp(18px, 1.5vw, 21px); font-weight: 500; color: #fff; letter-spacing: -0.005em; }
@media (max-width: 720px) { .jy-hero-line { padding: 16px 0; } }

/* ============ Empresas: buscador compacto + especialidades ============ */
.ep-qrow { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; margin-bottom: 14px; }
.ep-qrow .ep-q { margin: 0; }
.ep-find { width: min(300px, 100%); }
.ep-find .em-q-wrap .icon { left: 12px; width: 15px; height: 15px; }
.ep-find input { height: 40px; padding: 0 12px 0 36px; font-size: 14.5px; border: 1px solid var(--line); background: transparent; }
.ep-find input:focus { background: #fff; box-shadow: none; border-color: var(--navy); }
.ep-find .em-q-res { top: 100%; left: auto; right: 0; width: min(380px, calc(100vw - 32px)); border-top: 1px solid var(--line); }
.ep-find .em-q-res a { font-size: 14.5px; padding: 11px 14px; }
.ep-find .em-q-res a:first-child { border-top: none; }
.ep-hero .ep-all { margin-top: 18px; border-top: none; }
.ep-hero .ep-all summary { padding: 6px 0; font-size: 14.5px; color: var(--muted); }
.ep-hero .ep-all summary:hover { color: var(--navy); }
.ep-hero .ep-all[open] summary { color: var(--navy); }
.ep-hero .ep-all .em-grid { padding-top: 22px; }

.es { padding: 100px 0 110px; border-top: 1px solid var(--line); }
.es-h { margin-bottom: 12px; }
.es-sub { font-size: 18px; color: var(--muted); max-width: 52ch; margin-bottom: 48px; }
.es-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 32px; align-items: start; }
.es-tile { display: block; text-decoration: none; color: inherit; }
.es-b { margin-top: 88px; }
.es-img { position: relative; display: block; overflow: hidden; background: var(--navy); }
.es-a .es-img { aspect-ratio: 16 / 11; }
.es-b .es-img { aspect-ratio: 4 / 4.4; }
.es-img img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(0.55) contrast(1.02); transition: transform 1100ms var(--ease), filter 500ms var(--ease); }
.es-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(18,22,56,0.28), rgba(18,22,56,0.06)); transition: opacity 500ms var(--ease); }
.es-body { display: grid; gap: 8px; padding-top: 22px; }
.es-name { font-family: var(--display); font-size: clamp(21px, 1.9vw, 25px); font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.es-text { font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 46ch; }
.es-more { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-family: var(--display); font-size: 14.5px; font-weight: 500; color: var(--navy); }
.es-more .icon { width: 14px; height: 14px; transition: transform 300ms var(--ease); }
.es-tile:hover .es-img img { transform: scale(1.035); filter: saturate(0.9) contrast(1.02); }
.es-tile:hover .es-img::after { opacity: 0.4; }
.es-tile:hover .es-more .icon { transform: translateX(4px); }
.es-tile:focus-visible { outline: 2px solid var(--navy); outline-offset: 6px; }
.es-tile:active .es-img { transform: scale(0.995); }
@media (prefers-reduced-motion: reduce) { .es-img img, .es-more .icon { transition: none; } }
@media (max-width: 960px) {
  .es { padding: 72px 0 80px; }
  .es-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .es-b { margin-top: 0; }
  .es-a .es-img, .es-b .es-img { aspect-ratio: 16 / 10; }
}
@media (max-width: 720px) {
  .ep-qrow { flex-direction: column; align-items: stretch; gap: 10px; }
  .ep-find { width: 100%; }
  .ep-find .em-q-res { left: 0; right: 0; width: auto; }
  .es { padding-left: 0; padding-right: 0; }
  .es-sub { margin-bottom: 32px; }
}
.es-b .es-img img { filter: saturate(0.3) contrast(1.04) brightness(0.96); }
.es-b:hover .es-img img { filter: saturate(0.6) contrast(1.04); }
/* Especialidades: rejilla simétrica y alineada */
.es-grid { grid-template-columns: 1fr 1fr; gap: 40px; align-items: stretch; }
.es-b { margin-top: 0; }
.es-a .es-img, .es-b .es-img { aspect-ratio: 3 / 2; }
.es-tile { display: flex; flex-direction: column; }
.es-body { grid-template-rows: auto 1fr auto; flex: 1; }
.es-more { align-self: start; }
@media (max-width: 960px) { .es-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; } .es-a .es-img, .es-b .es-img { aspect-ratio: 16 / 10; } }
.es-more { justify-self: start; }

/* Barra de datos del hero: celdas cuadradas y centradas */
.hc-data-in { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.hc-data-in > div { justify-content: center; align-items: baseline; padding: 0 12px; }
.hc-data-in > div + div { border-left: 1px solid rgba(255, 255, 255, 0.14); }
.hc-data-in b, .hc-data-in > div > span { line-height: 1.2; }
@media (max-width: 960px) {
  .hc-data-in { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding-top: 14px; padding-bottom: 14px; }
  .hc-data-in > div { flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 4px; padding: 4px 8px; white-space: normal; }
  .hc-data-in > div:last-child { grid-column: auto; }
}
@media (max-width: 600px) {
  .hc-data-in { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 0; padding-bottom: 0; }
  .hc-data-in > div { min-height: 76px; padding: 12px 6px; gap: 3px; }
  .hc-data-in > div + div { border-left: 0; }
  .hc-data-in > div:nth-child(odd) { border-right: 1px solid rgba(255, 255, 255, 0.14); }
  .hc-data-in > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
  .hc-data-in b { font-size: 25px; }
  .hc-data-in > div > span { font-size: 14.5px; }
}

/* ============ Barra de datos del hero v3: integrada, centrada y apilada ============ */
.hc-hint { display: none !important; }
.hc-data {
  border-top: 0;
  background: linear-gradient(to top, rgba(8, 10, 32, 0.78) 0%, rgba(8, 10, 32, 0.45) 55%, rgba(8, 10, 32, 0) 100%);
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
.hc-data-in {
  grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0;
  max-width: 1040px; margin-left: auto; margin-right: auto;
  padding-top: 64px; padding-bottom: 44px;
}
.hc-data-in > div {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; gap: 8px; padding: 0 16px; white-space: nowrap; border: 0 !important;
}
.hc-data-in > div + div::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 44px; transform: translateY(-50%);
  background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.32), rgba(255,255,255,0));
}
.hc-data-in b { font-size: clamp(32px, 2.9vw, 40px); font-weight: 600; letter-spacing: -0.03em; line-height: 1; }
.hc-data-in > div > span { font-size: 14.5px; line-height: 1.3; letter-spacing: 0.01em; color: rgba(255, 255, 255, 0.74); }
@media (max-width: 960px) {
  .hc-data-in { padding-top: 48px; padding-bottom: 28px; }
  .hc-data-in b { font-size: 32px; }
  .hc-data-in > div > span { font-size: 14.5px; }
  .hc-data-in > div { padding: 0 8px; white-space: normal; }
}
@media (max-width: 600px) {
  .hc-data { background: linear-gradient(to top, rgba(8, 10, 32, 0.85) 0%, rgba(8, 10, 32, 0.55) 65%, rgba(8, 10, 32, 0) 100%); }
  .hc-data-in { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 0; padding-top: 40px; padding-bottom: 14px; }
  .hc-data-in > div { min-height: 0; padding: 14px 6px; gap: 5px; }
  .hc-data-in > div + div::before { display: none; }
  .hc-data-in > div:nth-child(2)::before, .hc-data-in > div:nth-child(4)::before { content: ""; display: block; height: 36px; }
  .hc-data-in > div:nth-child(3)::after, .hc-data-in > div:nth-child(4)::after {
    content: ""; position: absolute; top: 0; left: 18%; right: 18%; height: 1px;
    background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.28), rgba(255,255,255,0));
  }
  .hc-data-in b { font-size: 25px; }
  .hc-data-in > div > span { font-size: 13px; }
}

/* ============ Landing: rotación solo de la palabra clave ============ */
.hero-cine h1 .rw {
  display: inline-grid; justify-items: start; vertical-align: baseline;
  clip-path: inset(-0.08em -0.12em -0.28em -0.12em);
  transition: width 650ms var(--ease);
}
.hero-cine h1 .rw-i {
  grid-area: 1 / 1; white-space: nowrap;
  opacity: 0; transform: translateY(0.55em); filter: blur(5px);
  transition: opacity 520ms var(--ease), transform 650ms var(--ease), filter 520ms var(--ease);
}
.hero-cine h1 .rw-i.on { opacity: 1; transform: none; filter: none; }
.hero-cine h1 .rw-i.out { opacity: 0; transform: translateY(-0.5em); filter: blur(5px); }
@media (prefers-reduced-motion: reduce) {
  .hero-cine h1 .rw, .hero-cine h1 .rw-i { transition: opacity 300ms ease; transform: none; filter: none; }
}
.hero-cine h1 .rw-dot { margin-left: -0.035em; }
@media (max-width: 720px) {
  .hero-cine h1.hc-rot { font-size: min(38px, calc((100vw - 48px) / 12.8)); }
  .hero-cine h1.hc-rot .lm > span { white-space: nowrap; }
}
/* Rotación del hero: más fluida */
.hero-cine h1 .rw { transition: width 900ms cubic-bezier(0.65, 0, 0.35, 1); will-change: width; }
.hero-cine h1 .rw-i {
  transform: translate3d(0, 0.32em, 0); filter: blur(3px);
  transition: opacity 800ms cubic-bezier(0.33, 1, 0.68, 1) 140ms, transform 900ms cubic-bezier(0.22, 1, 0.36, 1) 140ms, filter 800ms cubic-bezier(0.33, 1, 0.68, 1) 140ms;
  will-change: transform, opacity, filter; backface-visibility: hidden;
}
.hero-cine h1 .rw-i.on { transform: translate3d(0, 0, 0); }
.hero-cine h1 .rw-i.out {
  transform: translate3d(0, -0.28em, 0); filter: blur(3px);
  transition: opacity 520ms cubic-bezier(0.32, 0, 0.67, 0), transform 620ms cubic-bezier(0.32, 0, 0.67, 0), filter 520ms cubic-bezier(0.32, 0, 0.67, 0);
}

/* ============ Barra de datos del hero v4: panel de cristal flotante ============ */
.hc-data {
  left: 0; right: 0; bottom: clamp(22px, 4.5vh, 44px);
  background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none;
}
.hero-cine::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 38%; z-index: 1; pointer-events: none;
  background: linear-gradient(to top, rgba(8, 10, 32, 0.72), rgba(8, 10, 32, 0));
}
.hc-data-in {
  position: relative; isolation: isolate;
  width: min(1000px, calc(100% - 48px)); max-width: none; margin: 0 auto;
  padding: 30px 12px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.10), rgba(255,255,255,0.03) 60%), rgba(14, 18, 52, 0.42);
  -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 40px 80px -40px rgba(4, 6, 24, 0.8);
}
.hc-data-in::before {
  content: ""; position: absolute; left: 12%; right: 12%; top: -1px; height: 1px; z-index: 1;
  background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.7), rgba(255,255,255,0));
}
.hc-data-in > div { gap: 10px; padding: 0 18px; }
.hc-data-in > div + div::before {
  height: 56px;
  background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.22), rgba(255,255,255,0));
}
.hc-data-in b {
  font-size: clamp(32px, 2.8vw, 40px); font-weight: 600; letter-spacing: -0.035em; line-height: 1;
  font-variant-numeric: tabular-nums lining-nums;
  background: linear-gradient(180deg, #ffffff 30%, rgba(214, 222, 255, 0.82)); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hc-data-in b span { color: transparent; }
.hc-data-in > div > span {
  font-family: var(--display); font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.62);
}
html.js .hc-data { opacity: 0; transform: translateY(14px); }
html.js .loaded .hc-data { opacity: 1; transform: none; transition: opacity 1000ms var(--ease), transform 1000ms var(--ease); transition-delay: 650ms; }
@media (prefers-reduced-transparency: reduce) { .hc-data-in { background: rgba(14, 18, 52, 0.92); -webkit-backdrop-filter: none; backdrop-filter: none; } }
@media (max-width: 960px) {
  .hc-data-in { padding: 24px 6px !important; }
  .hc-data-in b { font-size: 32px; }
  .hc-data-in > div > span { font-size: 13px; letter-spacing: 0.1em; }
  .hc-data-in > div { padding: 0 8px; }
}
@media (max-width: 600px) {
  .hc-data { bottom: 16px; }
  .hc-data-in { width: calc(100% - 32px); grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 4px 0 !important; }
  .hc-data-in > div { padding: 16px 6px; gap: 6px; }
  .hc-data-in > div + div::before { display: none; }
  .hc-data-in > div:nth-child(2)::before, .hc-data-in > div:nth-child(4)::before {
    content: ""; display: block; position: absolute; left: 0; top: 50%; width: 1px; height: 44px; transform: translateY(-50%);
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.22), rgba(255,255,255,0));
  }
  .hc-data-in > div:nth-child(3)::after, .hc-data-in > div:nth-child(4)::after {
    left: 14%; right: 14%; background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.22), rgba(255,255,255,0));
  }
  .hc-data-in b { font-size: 25px; }
  .hc-data-in > div > span { font-size: 13px; letter-spacing: 0.1em; }
}

/* ============ Barra de datos del hero v5: minimal ============ */
.hero-cine::after { height: 30%; background: linear-gradient(to top, rgba(8, 10, 32, 0.55), rgba(8, 10, 32, 0)); }
.hc-data { bottom: clamp(28px, 5vh, 52px); }
.hc-data-in {
  width: min(860px, calc(100% - 48px)); padding: 22px 0 0 !important;
  background: none; -webkit-backdrop-filter: none; backdrop-filter: none;
  border: 0; border-top: 1px solid rgba(255, 255, 255, 0.22); box-shadow: none;
}
.hc-data-in::before { display: none; }
.hc-data-in > div { gap: 6px; padding: 0 8px; }
.hc-data-in > div + div::before, .hc-data-in > div::after { display: none !important; }
.hc-data-in b {
  font-size: clamp(25px, 2vw, 32px); font-weight: 500; letter-spacing: -0.02em;
  background: none; -webkit-background-clip: border-box; background-clip: border-box; color: #fff;
}
.hc-data-in b span { color: inherit; }
.hc-data-in > div > span {
  font-family: var(--text, inherit); font-size: 14.5px; font-weight: 400; letter-spacing: 0; text-transform: none;
  color: rgba(255, 255, 255, 0.6);
}
@media (max-width: 960px) {
  .hc-data-in b { font-size: 25px; }
  .hc-data-in > div > span { font-size: 13px; letter-spacing: 0; }
}
@media (max-width: 600px) {
  .hc-data { bottom: 22px; }
  .hc-data-in { width: calc(100% - 48px); padding: 6px 0 0 !important; row-gap: 0; }
  .hc-data-in > div { padding: 14px 4px 4px; gap: 4px; }
  .hc-data-in > div:nth-child(2)::before, .hc-data-in > div:nth-child(4)::before { display: none !important; }
  .hc-data-in b { font-size: 21px; }
  .hc-data-in > div > span { font-size: 13px; letter-spacing: 0; }
}

/* Landing: filas Particulares / Empresas sin numeración, línea más marcada */
.mega-rows { border-top: 2px solid var(--ink); }
.mega-row { grid-template-columns: 1fr auto 60px; padding: 30px 0; border-bottom: 2px solid var(--ink); }
.mega-row + .mega-row { border-top: 0; }
@media (max-width: 960px) { .mega-row { grid-template-columns: 1fr 40px; padding: 24px 0; } }
.mr-desc { max-width: none; white-space: nowrap; } .mega-row { min-height: 104px; }

/* ============ Landing: pulido final (fino y limpio) ============ */
/* Forma coherente: esquinas rectas en todo */
.why-ico { border-radius: 0; background: none; width: auto; height: auto; margin-bottom: 22px; color: var(--navy); }
.why-cell:hover .why-ico { background: none; color: var(--navy); transform: none; }
.why-cell .icon { width: 22px; height: 22px; stroke-width: 1.5; }
.why-grid { gap: 1px; border: 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); background: var(--line); }
.why-cell { padding: 40px 40px 42px 0; background: var(--bg-soft); }
.why-cell:nth-child(even) { padding-left: 40px; padding-right: 0; }
.why-cell:hover { background: var(--bg-soft); }
.why-cell h3 { font-size: 18px; font-weight: 600; letter-spacing: -0.015em; margin-bottom: 10px; }
.why-cell p { font-size: 16px; line-height: 1.65; }
.tool-btn { border-radius: 0; }
.c2-card { border-radius: 0; background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; border: 1px solid var(--line); box-shadow: 0 30px 60px -40px rgba(29, 36, 82, 0.28); }
/* Aire entre bloques: la galería no pega con la sección gris */
.gallery-home { padding: 96px 0 100px; }
/* Titulares de sección con ancho que no parta mal ("El / trato") */
.sec-title { max-width: 22ch; text-wrap: balance; }
/* Cuerpo algo más legible */
.sec-sub, .c2-sub { line-height: 1.7; }
@media (max-width: 720px) {
  .why-cell, .why-cell:nth-child(even) { padding: 30px 0; }
  .gallery-home { padding: 56px 0 64px; }
  .offices { gap: 0; padding-top: 4px; }
  .office { padding: 24px 0; border-bottom: 1px solid var(--line); }
  .office:last-child { border-bottom: none; }
}

/* Hero: firma discreta bajo el titular */
.hc-sub {
  display: flex; align-items: center; justify-content: center; gap: 18px;
  font-family: var(--display); font-size: 13px; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72); margin-bottom: 38px;
}
.hc-sub::before, .hc-sub::after {
  content: ""; width: clamp(24px, 5vw, 56px); height: 1px; flex: none;
  background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.45));
}
.hc-sub::after { background: linear-gradient(to left, rgba(255,255,255,0), rgba(255,255,255,0.45)); }
@media (max-width: 600px) { .hc-sub { font-size: 13px; letter-spacing: 0.16em; gap: 12px; margin-bottom: 30px; } }

/* ============ Página de Inversión ============ */
main.inv { --iv-bg: #0c1030; background: var(--bg); }
main.inv section { padding: 0; }
.iv-k { display: flex; align-items: center; gap: 12px; font-family: var(--display); font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.7); margin-bottom: 20px; }
.iv-k i { width: 26px; height: 1px; background: currentColor; }
.iv-k-ink { color: var(--muted); }
.iv-h2 { font-family: var(--display); font-weight: 600; font-size: clamp(25px, 2.6vw, 40px); letter-spacing: -0.028em; line-height: 1.12; color: var(--ink); }
.iv-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; background: #fff; color: var(--navy); border: 1px solid #fff; font-family: var(--display); font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; transition: background 250ms var(--ease), color 250ms var(--ease); }
.iv-btn:hover { background: transparent; color: #fff; }

.iv-hero { position: relative; min-height: 86svh; display: flex; flex-direction: column; justify-content: flex-end; background: var(--iv-bg); color: #fff; overflow: hidden; isolation: isolate; }
.iv-hero-fig { position: absolute; inset: 0; margin: 0; z-index: -2; }
.iv-hero-fig img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; display: block; transform: scale(1.06); transition: transform 3000ms var(--ease); }
body.loaded .iv-hero-fig img { transform: scale(1); }
.iv-hero-veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,13,38,0.92) 0%, rgba(10,13,38,0.72) 42%, rgba(10,13,38,0.25) 100%), linear-gradient(0deg, rgba(10,13,38,0.9), transparent 55%); }
.iv-hero-in { padding-top: 150px; padding-bottom: 54px; width: 100%; }
.iv-h1 { font-family: var(--display); font-weight: 600; font-size: clamp(40px, 4.4vw, 51px); letter-spacing: -0.035em; line-height: 1.04; color: #fff; max-width: 16ch; margin-bottom: 22px; }
.iv-claim { font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.8); max-width: 54ch; margin-bottom: 32px; }
.iv-hero-act { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.iv-tel { font-family: var(--display); font-size: 16px; font-weight: 500; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.35); padding-bottom: 2px; }
.iv-hero-facts { border-top: 1px solid rgba(255,255,255,0.16); background: rgba(10,13,38,0.4); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.iv-hero-facts dl { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 22px 0; }
.iv-hero-facts dt { font-family: var(--display); font-size: 18px; font-weight: 600; color: #fff; }
.iv-hero-facts dd { margin: 4px 0 0; font-size: 14.5px; color: rgba(255,255,255,0.66); }

.iv-intro { padding: 104px 0 96px; }
.iv-intro-in { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.iv-intro-in .iv-h2 { font-size: clamp(32px, 3vw, 40px); font-weight: 500; }
.iv-intro-t p { font-size: 18px; line-height: 1.7; color: var(--muted); max-width: 52ch; }
.iv-intro-t p + p { margin-top: 18px; }

.iv-prod { padding: 96px 0; background: var(--bg-soft); }
.iv-prod-head { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: end; margin-bottom: 44px; }
.iv-prod-head p { font-size: 16px; color: var(--muted); max-width: 46ch; }
.iv-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.iv-tabs button { font: inherit; font-family: var(--display); font-size: 16px; font-weight: 500; text-align: left; background: none; border: 0; border-bottom: 2px solid transparent; color: var(--muted); padding: 18px 16px 16px 0; cursor: pointer; transition: color 220ms var(--ease), border-color 220ms var(--ease); }
.iv-tabs button:hover { color: var(--ink); }
.iv-tabs button[aria-selected="true"] { color: var(--navy); border-bottom-color: var(--navy); }
.iv-tabs button:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
.iv-panels { margin-top: 34px; }
.iv-panel { animation: em-in 420ms var(--ease); display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.iv-panel h3 { font-family: var(--display); font-size: clamp(21px, 2.1vw, 32px); font-weight: 600; letter-spacing: -0.02em; color: var(--ink); margin-bottom: 14px; }
.iv-panel p { font-size: 16px; line-height: 1.7; color: var(--muted); max-width: 50ch; }
.iv-rows { border-top: 1px solid var(--ink); margin: 0; }
.iv-rows > div { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.iv-rows dt { font-size: 14.5px; color: var(--muted); }
.iv-rows dd { margin: 0; font-size: 16px; color: var(--ink); }

.iv-sim { padding: 100px 0; background: var(--iv-bg); color: #fff; }
.iv-sim-in { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; align-items: center; }
.iv-sim-copy .iv-h2 { color: #fff; margin-bottom: 16px; }
.iv-sim-copy p { font-size: 16px; line-height: 1.65; color: rgba(255,255,255,0.74); max-width: 46ch; }
.iv-sim-card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.16); padding: 34px 34px 28px; display: grid; gap: 22px; }
.iv-f label { display: block; font-size: 13px; letter-spacing: 0.04em; color: rgba(255,255,255,0.66); margin-bottom: 8px; }
.iv-in { display: flex; align-items: baseline; gap: 8px; border-bottom: 1px solid rgba(255,255,255,0.3); padding-bottom: 8px; }
.iv-in input { flex: 1; min-width: 0; background: none; border: 0; color: #fff; font-family: var(--display); font-size: 25px; font-weight: 600; letter-spacing: -0.02em; outline: none; -moz-appearance: textfield; }
.iv-in input::-webkit-outer-spin-button, .iv-in input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.iv-in span { font-size: 14.5px; color: rgba(255,255,255,0.7); }
.iv-range { width: 100%; margin-top: 12px; accent-color: #fff; }
.iv-out { border-top: 1px solid rgba(255,255,255,0.2); padding-top: 22px; }
.iv-out-k { display: block; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.6); margin-bottom: 8px; }
.iv-out b[data-iv-total] { display: block; font-family: var(--display); font-size: clamp(32px, 3.4vw, 40px); font-weight: 600; letter-spacing: -0.03em; color: #fff; font-variant-numeric: tabular-nums; }
.iv-bar { display: flex; height: 6px; background: rgba(255,255,255,0.18); margin: 16px 0 12px; }
.iv-bar i { display: block; height: 100%; background: #fff; transition: width 400ms var(--ease); }
.iv-out-d { display: flex; gap: 26px; flex-wrap: wrap; font-size: 14.5px; color: rgba(255,255,255,0.7); }
.iv-out-d b { color: #fff; font-weight: 600; font-variant-numeric: tabular-nums; }
.iv-out-n { margin-top: 10px; font-size: 14.5px; color: rgba(255,255,255,0.7); }
.iv-note { font-size: 13px; line-height: 1.5; color: rgba(255,255,255,0.5); }

.iv-comp { padding: 100px 0 96px; }
.iv-comp-sub { font-size: 16px; color: var(--muted); margin: 12px 0 36px; max-width: 54ch; }
.iv-comp-scroll { overflow-x: auto; }
.iv-t { width: 100%; border-collapse: collapse; min-width: 640px; }
.iv-t th, .iv-t td { text-align: left; padding: 16px 20px 16px 0; border-bottom: 1px solid var(--line); vertical-align: top; font-size: 16px; line-height: 1.5; }
.iv-t thead th { font-family: var(--display); font-size: 14.5px; font-weight: 600; color: var(--navy); border-bottom: 1px solid var(--ink); letter-spacing: 0.02em; }
.iv-t th[scope="row"] { color: var(--muted); font-weight: 400; width: 22%; }
.iv-t td { color: var(--ink); width: 39%; }

.iv-serv-s { padding: 96px 0; background: var(--bg-soft); }
.iv-serv-head { margin-bottom: 44px; }
.iv-serv-g { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.iv-serv { background: var(--bg-soft); padding: 32px 30px 34px 0; }
.iv-serv:not(:first-child) { padding-left: 30px; }
.iv-serv h3 { font-family: var(--display); font-size: 18px; font-weight: 600; color: var(--ink); margin-bottom: 12px; }
.iv-serv p { font-size: 16px; line-height: 1.65; color: var(--muted); margin-bottom: 18px; }
.iv-serv ul { list-style: none; border-top: 1px solid var(--line); }
.iv-serv li { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; color: var(--ink); }
.iv-serv-fig { margin: 44px 0 0; aspect-ratio: 21 / 9; overflow: hidden; }
.iv-serv-fig img { width: 100%; height: 100%; object-fit: cover; display: block; }

.iv-steps-s { padding: 96px 0; }
.iv-steps { list-style: none; counter-reset: iv; display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 40px; border-top: 1px solid var(--ink); }
.iv-steps li { counter-increment: iv; padding-top: 26px; }
.iv-steps li::before { content: counter(iv); display: block; font-family: var(--display); font-size: 13px; color: var(--navy); margin-bottom: 14px; }
.iv-steps h3 { font-family: var(--display); font-size: 18px; font-weight: 600; color: var(--ink); margin-bottom: 10px; }
.iv-steps p { font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 40ch; }

.iv-prof { padding: 0 0 100px; }
.iv-prof-g { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 48px; margin-top: 34px; border-top: 1px solid var(--ink); }
.iv-prof-g li { display: grid; gap: 6px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.iv-prof-g b { font-family: var(--display); font-size: 18px; font-weight: 600; color: var(--ink); }
.iv-prof-g span { font-size: 14.5px; color: var(--muted); }

.iv-faq { padding: 96px 0; background: #fff; }
.iv-faq-in { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 72px; }
.iv-faq-l { border-top: 1px solid var(--ink); }
.iv-faq-i { border-bottom: 1px solid var(--line); }
.iv-faq-i summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 20px 0; font-family: var(--display); font-size: 18px; font-weight: 500; color: var(--ink); }
.iv-faq-i summary::-webkit-details-marker { display: none; }
.iv-faq-i summary i { position: relative; width: 13px; height: 13px; flex: none; }
.iv-faq-i summary i::before, .iv-faq-i summary i::after { content: ""; position: absolute; left: 0; top: 50%; width: 13px; height: 1.5px; background: var(--navy); transition: transform 280ms var(--ease); }
.iv-faq-i summary i::after { transform: rotate(90deg); }
.iv-faq-i[open] summary i::after { transform: rotate(0deg); }
.iv-faq-i p { padding: 0 36px 22px 0; font-size: 16px; line-height: 1.7; color: var(--muted); }

.iv-end { background: var(--iv-bg); color: #fff; padding: 84px 0; }
.iv-end-in { display: flex; justify-content: space-between; align-items: center; gap: 36px; flex-wrap: wrap; }
.iv-end-t { font-family: var(--display); font-weight: 500; font-size: clamp(25px, 2.6vw, 32px); letter-spacing: -0.025em; line-height: 1.2; max-width: 26ch; }
.iv-end-l { display: inline-flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 16px; font-weight: 500; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.4); padding-bottom: 4px; }
.iv-end-l .icon { width: 14px; height: 14px; transition: transform 250ms var(--ease); }
.iv-end-l:hover .icon { transform: translateX(4px); }

.iv-legal { padding: 34px 0 60px; background: var(--bg); }
.iv-legal p { font-size: 13px; line-height: 1.65; color: var(--faint); max-width: 100ch; }

@media (prefers-reduced-motion: reduce) { .iv-hero-fig img { transform: none; transition: none; } .iv-panel { animation: none; } }
@media (max-width: 1024px) {
  .iv-intro-in, .iv-prod-head, .iv-panel, .iv-sim-in, .iv-faq-in { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .iv-serv-g, .iv-steps { grid-template-columns: 1fr; }
  .iv-serv, .iv-serv:not(:first-child) { padding: 26px 0; }
  .iv-steps li { border-bottom: 1px solid var(--line); padding-bottom: 24px; }
}
@media (max-width: 720px) {
  .iv-hero { min-height: 78svh; }
  .iv-hero-in { padding-top: 116px; padding-bottom: 32px; }
  .iv-hero-act { flex-direction: column; align-items: stretch; gap: 16px; }
  .iv-tel { align-self: center; }
  .iv-hero-facts dl { grid-template-columns: 1fr 1fr; gap: 14px 20px; padding: 16px 0; }
  .iv-intro, .iv-prod, .iv-sim, .iv-comp, .iv-serv-s, .iv-steps-s, .iv-faq { padding: 64px 0; }
  .iv-prof { padding-bottom: 64px; }
  .iv-tabs { grid-template-columns: 1fr; border-top: 0; }
  .iv-tabs button { border-top: 1px solid var(--line); border-bottom: 0; padding: 14px 0; }
  .iv-tabs button[aria-selected="true"] { border-bottom: 0; border-top-color: var(--navy); }
  .iv-sim-card { padding: 24px 20px; }
  .iv-prof-g { grid-template-columns: 1fr; }
  .iv-end-in { flex-direction: column; align-items: flex-start; }
  .iv-faq-i p { padding-right: 0; }
}
/* Inversión: espaciados de sección (por encima del reset main.inv section) */
main.inv .iv-intro { padding: 104px 0 96px; }
main.inv .iv-prod { padding: 96px 0; }
main.inv .iv-sim { padding: 100px 0; }
main.inv .iv-comp { padding: 100px 0 96px; }
main.inv .iv-serv-s { padding: 96px 0; }
main.inv .iv-steps-s { padding: 96px 0; }
main.inv .iv-prof { padding: 0 0 100px; }
main.inv .iv-faq { padding: 96px 0; }
main.inv .iv-end { padding: 84px 0; }
main.inv .iv-legal { padding: 34px 0 64px; }
@media (max-width: 720px) {
  main.inv .iv-intro, main.inv .iv-prod, main.inv .iv-sim, main.inv .iv-comp,
  main.inv .iv-serv-s, main.inv .iv-steps-s, main.inv .iv-faq { padding: 64px 0; }
  main.inv .iv-prof { padding: 0 0 64px; }
  main.inv .iv-end { padding: 60px 0; }
}

/* Inversión: cabecera con fachada, velo más neutro */
.iv-hero-fig img { object-position: 50% 50%; }
.iv-hero-veil { background: linear-gradient(90deg, rgba(8,11,32,0.94) 0%, rgba(8,11,32,0.78) 48%, rgba(8,11,32,0.42) 100%), linear-gradient(0deg, rgba(8,11,32,0.92), transparent 60%); }

/* Safari: el titular queda en una capa con filtro tras la entrada y vibra al hacer scroll */
html.js body.loaded .x-a, html.js body.loaded .x-h1, html.js body.loaded .x-h2 { filter: none; will-change: auto; }
.x-h1, .x-h2, .xh-split-copy { -webkit-transform: none; transform: none; }
.x-h1, .x-h2 { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Logo algo más grande */
@media (min-width: 721px) { .logo img { height: 64px; } }
@media (min-width: 1081px) and (max-width: 1200px) { .logo img { height: 58px; } }
@media (max-width: 720px) { .logo img { height: 52px; } }

/* Página 404 */
main.nf { min-height: 70vh; display: flex; align-items: center; padding: 160px 0 96px; }
.nf-k { font-family: var(--display); font-size: 13px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.nf-h { font-family: var(--display); font-size: clamp(32px, 3.4vw, 51px); font-weight: 600; letter-spacing: -0.03em; color: var(--ink); margin-bottom: 14px; }
.nf-p { font-size: 18px; color: var(--muted); margin-bottom: 30px; }
.nf-l { list-style: none; border-top: 1px solid var(--ink); max-width: 560px; }
.nf-l a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid var(--line); font-family: var(--display); font-size: 18px; color: var(--ink); text-decoration: none; }
.nf-l a:hover { color: var(--navy); }

/* ============ Accesibilidad (contraste y objetivos táctiles) ============ */
:root { --muted: #62677a; --faint: #63687c; }   /* tonos verificados: 5,5:1 sobre blanco */
/* Idiomas: visibles y pulsables */
.lang button { font-size: 13px; font-weight: 600; color: #5c6173; padding: 10px 8px; min-width: 36px; }
.lang button.on { color: var(--navy); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1.5px; }
header.light .lang button { color: rgba(255,255,255,0.78); }
header.light .lang button.on { color: #fff; }
@media (min-width: 721px) { .lang button { font-size: 13px; } }
/* Pie: etiquetas legibles, enlaces con más contraste y área táctil */
.foot-col h2 { font-size: 13px; font-weight: 600; letter-spacing: 0.14em; color: rgba(255,255,255,0.62); }
.foot-col a { font-size: 14.5px; color: rgba(255,255,255,0.78); margin-bottom: 0; padding: 7px 0; }
.foot-legal { font-size: 13px; color: rgba(255,255,255,0.6); }
.foot-social a { width: 44px; height: 44px; color: rgba(255,255,255,0.78); }
@media (max-width: 720px) { .foot-col a { padding: 12px 0; min-height: 44px; display: flex; align-items: center; } }

/* Logo: proporción real (no se estrecha dentro de la barra) */
.logo { flex: none; }
.logo img { width: auto; max-width: none; object-fit: contain; }
@media (min-width: 721px) { .logo img { height: 50px; } }
@media (min-width: 1081px) and (max-width: 1280px) { .logo img { height: 44px; } }
@media (max-width: 720px) { .logo img { height: 40px; } }

/* Método de trabajo sin números */
.steps .step, .navy-band .step { grid-template-columns: 1fr; }

/* Pregunta destacada (empresas), muy discreta */
.faq-tag { display: inline-block; margin-right: 12px; font-family: var(--sans, inherit); font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--navy); opacity: 0.7; vertical-align: 1px; }
.faq-dest .faq-q { color: var(--navy); }
.faq-link { display: table; margin-top: 10px; color: var(--navy); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.faq-link::after { content: " →"; }

/* Portada de la página */

/* Entradilla */

/* Ocho puntos de control */

/* Fases */

/* Informe y muestra */

/* Marco legal */

/* Ámbitos */

/* Hallazgos */

/* Inversión */

/* Preguntas */

/* Cierre y nota */

/* Cabecera: los rótulos no se parten en dos líneas */
.link-cta, .nav-phone, .sub-toggle, .nav-links a { white-space: nowrap; }
@media (min-width: 1081px) and (max-width: 1520px) { .nav-links { gap: 20px; } .nav-cta { gap: 18px; } }

/* Anuncio de la auditoría en la portada */
.aud-band { padding: 96px 0; border-top: 1px solid var(--line); }
.aud-band-g { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 72px; align-items: start; }
.aud-band .sec-title { margin-bottom: 18px; max-width: 18ch; }
.aud-band .sec-sub { max-width: 58ch; margin-bottom: 28px; }
.ab-l { display: inline-flex; align-items: center; gap: 12px; color: var(--navy); text-decoration: none; font-family: var(--display); font-size: 13px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.ab-l .icon { width: 16px; height: 16px; transition: transform 250ms var(--ease); }
.ab-l:hover .icon { transform: translateX(5px); }
.ab-d { margin: 0; border-top: 1px solid var(--ink); }
.ab-d > div { padding: 20px 0; border-bottom: 1px solid var(--line); }
.ab-d dt { font-family: var(--display); font-size: 16px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.ab-d dd { margin: 5px 0 0; font-family: var(--text); font-weight: 300; font-size: 14.5px; color: var(--muted); }
@media (max-width: 1080px) { .aud-band-g { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 720px) { .aud-band { padding: 64px 0; } }

/* Enlaces a auditoría e inversión desde Particulares y Empresas */
.xl-band { padding: 96px 0; border-top: 1px solid var(--line); }
.xl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 40px; }
.xl-c { display: block; background: var(--bg, #fefefd); padding: 38px 34px 34px; text-decoration: none; transition: background 200ms var(--ease); }
.xl-c:hover { background: #fff; }
.xl-n { display: block; font-family: var(--display); font-size: 21px; font-weight: 500; letter-spacing: -0.025em; color: var(--ink); margin-bottom: 12px; }
.xl-t { display: block; font-family: var(--text); font-weight: 300; font-size: 16px; line-height: 1.75; color: var(--muted); margin-bottom: 26px; max-width: 46ch; }
.xl-m { display: inline-flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 12.5px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--navy); }
.xl-m .icon { width: 15px; height: 15px; transition: transform 250ms var(--ease); }
.xl-c:hover .xl-m .icon { transform: translateX(5px); }
@media (max-width: 860px) { .xl-grid { grid-template-columns: 1fr; } .xl-band { padding: 64px 0; } }

/* Portada: cifra de confianza y ritmo */

/* Barra de confianza */

/* Puntos de control: numeración marcada y reacción al pasar el ratón */

/* Fases: línea de tiempo con hitos */

/* Informe: la muestra parece un documento */

/* Marco legal: acento al pasar el ratón */

/* Ámbitos y hallazgos: tarjetas con más presencia */

/* Formulario: la tarjeta pesa más y las opciones responden */

/* Cierre con más fuerza */

/* Barra fija de llamada a la acción */

/* Mientras se ve el aviso de cookies, la barra fija espera */

/* ============ Prevención de riesgos de IA (CovertoAI) ============ */
main.cov section { padding: 0; }
main.cov { --cv-line: rgba(21, 24, 44, 0.10); }
.cv-h1 { font-family: var(--display); font-weight: 700; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.04; letter-spacing: -0.035em; color: var(--ink); margin: 0 0 24px; }
.cv-h2 { font-family: var(--display); font-weight: 700; font-size: clamp(25px, 2.7vw, 40px); line-height: 1.1; letter-spacing: -0.03em; color: var(--ink); margin: 0 0 14px; }
.cv-sub { font-size: 16px; line-height: 1.7; color: var(--muted); max-width: 54ch; margin: 0; }
.cv-k { display: flex; align-items: center; gap: 12px; font-family: var(--display); font-size: 13px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--navy); margin: 0 0 22px; }
.cv-k i { width: 30px; height: 1px; background: currentColor; display: block; flex: none; }
.cv-head { margin-bottom: 52px; max-width: 900px; }

.cv-hero-g { max-width: 900px; }

.cv-claim { font-size: 17px; line-height: 1.75; color: var(--muted); max-width: 70ch; margin: 0 0 32px; }
.cv-act, .cv-end-a { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.cv-btn { display: inline-flex; align-items: center; background: var(--navy); color: #fff; text-decoration: none; font-family: var(--display); font-size: 14.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; padding: 18px 34px; transition: opacity 180ms var(--ease); }
.cv-btn:hover { opacity: 0.88; }
.cv-out { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font-family: var(--display); font-size: 15px; font-weight: 600; border-bottom: 1px solid var(--cv-line); padding-bottom: 4px; }
.cv-out .icon { width: 15px; height: 15px; transition: transform 250ms var(--ease); }
.cv-out:hover .icon { transform: translateX(4px); }






.cv-sv { padding: 104px 0 !important; }
.cv-sv-g { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--cv-line); border: 1px solid var(--cv-line); }
.cv-sv-i { background: var(--bg, #fefefd); padding: 32px 28px 36px; }
.cv-sv-i h3 { font-family: var(--display); font-size: 20.5px; font-weight: 700; letter-spacing: -0.025em; color: var(--ink); margin: 0 0 12px; }
.cv-sv-i p { font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0; }

.cv-cs { background: var(--bg-soft, #f6f6f4); padding: 104px 0 !important; border-top: 1px solid var(--cv-line); border-bottom: 1px solid var(--cv-line); }
.cv-cs-g { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 64px; align-items: start; }
.cv-cs-l { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.cv-cs-i { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 28px; padding: 22px 0; border-bottom: 1px solid var(--cv-line); }
.cv-cs-i b { font-family: var(--display); font-size: 17px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
.cv-cs-i span { font-size: 15px; line-height: 1.7; color: var(--muted); }

.cv-st { padding: 104px 0 !important; }
.cv-st-g { list-style: none; margin: 0; padding: 40px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; position: relative; }
.cv-st-g::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--cv-line); }
.cv-st-i { position: relative; padding-right: 24px; }
.cv-st-i::before { content: ""; position: absolute; top: -44px; left: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--navy); }
.cv-st-i h3 { font-family: var(--display); font-size: 20.5px; font-weight: 700; letter-spacing: -0.025em; color: var(--ink); margin: 0 0 12px; }
.cv-st-i p { font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0; }

.cv-pr { background: var(--bg-soft, #f6f6f4); padding: 104px 0 !important; border-top: 1px solid var(--cv-line); }
.cv-pr-g { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; align-items: start; }
.cv-pr-n { font-size: 13.5px; line-height: 1.7; color: var(--faint); margin: 22px 0 0; max-width: 52ch; }
.cv-pr-t { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--cv-line); }
.cv-pr-t th { text-align: left; font-family: var(--display); font-size: 12.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); padding: 18px 24px; border-bottom: 1px solid var(--ink); }
.cv-pr-t th:last-child, .cv-pr-t td:last-child { text-align: right; }
.cv-pr-t td { padding: 17px 24px; border-bottom: 1px solid var(--cv-line); font-size: 16px; color: var(--muted); }
.cv-pr-t td:last-child { font-family: var(--display); font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.cv-pr-t tr:last-child td { border-bottom: 0; }

.cv-bd { background: var(--ink); padding: 88px 0 !important; }
.cv-bd-g { max-width: 860px; }
.cv-bd .cv-k { color: #aeb6e2; }
.cv-bd .cv-h2 { color: #fff; }
.cv-bd-t { font-size: 15.5px; line-height: 1.8; color: rgba(255,255,255,0.68); margin: 18px 0 26px; }
.cv-bd-l { display: inline-flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; font-family: var(--display); font-size: 14.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,0.4); padding-bottom: 6px; }
.cv-bd-l .icon { width: 16px; height: 16px; transition: transform 250ms var(--ease); }
.cv-bd-l:hover .icon { transform: translateX(5px); }

.cv-fq { padding: 104px 0 !important; }
.cv-fq-in { display: grid; grid-template-columns: 0.75fr 1.45fr; gap: 64px; align-items: start; }
.cv-fq-i { border-bottom: 1px solid var(--cv-line); }
.cv-fq-i:first-child { border-top: 1px solid var(--ink); }
.cv-fq-i summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-family: var(--display); font-size: 16px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); padding: 24px 0; }
.cv-fq-i summary::-webkit-details-marker { display: none; }
.cv-fq-i summary i { position: relative; width: 12px; height: 12px; flex: none; }
.cv-fq-i summary i::before, .cv-fq-i summary i::after { content: ""; position: absolute; top: 50%; left: 0; width: 12px; height: 1px; background: var(--ink); }
.cv-fq-i summary i::after { transform: rotate(90deg); transition: transform 250ms var(--ease); }
.cv-fq-i[open] summary i::after { transform: rotate(0deg); }
.cv-fq-i p { font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0 0 26px; max-width: 72ch; }

.cv-end { border-top: 1px solid var(--cv-line); background: var(--bg-soft, #f6f6f4); padding: 88px 0 96px !important; }
.cv-end-in { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.cv-end-t { font-family: var(--display); font-size: clamp(21px, 2.2vw, 32px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.15; color: var(--ink); margin: 0; max-width: 28ch; }

@media (max-width: 1080px) {
  .cv-sv-g { grid-template-columns: repeat(2, 1fr); }
  .cv-st-g { grid-template-columns: repeat(2, 1fr); gap: 34px; }
  .cv-cs-g, .cv-pr-g, .cv-fq-in { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 720px) {
  .cv-sv, .cv-cs, .cv-st, .cv-pr, .cv-fq { padding: 64px 0 !important; }
  .cv-sv-g, .cv-st-g { grid-template-columns: 1fr; }
  .cv-cs-i { grid-template-columns: 1fr; gap: 6px; }
  .cv-pr-t th, .cv-pr-t td { padding: 14px 16px; font-size: 15px; }
  .cv-end { padding: 56px 0 72px !important; }
}

/* Especialidades de Empresas: tres tarjetas */
.es-grid { grid-template-columns: repeat(3, 1fr); gap: 28px; }
.es-b { margin-top: 0; }
.es-a .es-img, .es-b .es-img, .es-c .es-img { aspect-ratio: 4 / 3.1; }
@media (max-width: 960px) { .es-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .es-grid { grid-template-columns: 1fr; } }
/* Wizard: complemento opcional (prevención de riesgos de IA) */
.wz-add { display: flex; align-items: flex-start; gap: 12px; margin-top: 18px; padding: 14px 16px; border: 1px solid var(--line); cursor: pointer; font-size: 14.5px; line-height: 1.5; color: var(--ink); }
.wz-add input { margin: 2px 0 0; width: 17px; height: 17px; accent-color: var(--navy); flex: none; }
.wz-add:hover { border-color: var(--navy); }

/* Puntos de control: acordeón */

/* Ámbitos: pestañas */

/* Fases y ley: fila deslizable en móvil */

/* ============ Auditoría · ficha de trabajo ============ */
main.ad {
  --ad-paper: #f4f4f2; --ad-line: rgba(21, 24, 44, 0.12);
  --ad-col: 60px;           /* columna fija de numeración: todo alineado en vertical */
  background: var(--ad-paper);
}
main.ad section { padding: 0; }

/* Portada partida */
main.ad .ad-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; }
main.ad .ad-hero-t { background: var(--ink); display: flex; align-items: center; padding: 140px 0 64px; }
main.ad .ad-hero-in { width: 100%; max-width: 560px; margin-left: auto; padding: 0 64px 0 40px; }
main.ad .ad-k { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: #aeb6e2; margin: 0 0 30px; }
main.ad .ad-h1 { font-family: var(--display); font-size: clamp(34px, 3.6vw, 54px); font-weight: 700; line-height: 1.04; letter-spacing: -0.038em; color: #fff; margin: 0 0 26px; }
main.ad .ad-lead { font-size: 16.5px; line-height: 1.75; color: rgba(255,255,255,0.72); margin: 0 0 36px; max-width: 46ch; }
main.ad .ad-act { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
main.ad .ad-btn { display: inline-flex; align-items: center; background: #fff; color: var(--ink); text-decoration: none; font-family: var(--display); font-size: 13.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; padding: 18px 32px; transition: transform 200ms var(--ease); }
main.ad .ad-btn:hover { transform: translateY(-2px); }
main.ad .ad-btn-l { background: var(--ink); color: #fff; }
main.ad .ad-tel { font-family: var(--display); font-size: 16px; font-weight: 600; color: #fff; text-decoration: none; font-variant-numeric: tabular-nums; border-bottom: 1px solid rgba(255,255,255,0.35); padding-bottom: 3px; }
main.ad .ad-tel-l { color: var(--ink); border-bottom-color: var(--ad-line); }
main.ad .ad-facts { display: grid; gap: 0; margin: 48px 0 0; border-top: 1px solid rgba(255,255,255,0.16); }
main.ad .ad-facts > div { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 20px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.10); }
main.ad .ad-facts dt { font-family: var(--display); font-size: 15px; font-weight: 600; color: #fff; }
main.ad .ad-facts dd { margin: 0; font-size: 13.5px; color: rgba(255,255,255,0.56); text-align: right; }
main.ad .ad-hero-f { margin: 0; position: relative; overflow: hidden; }
main.ad .ad-hero-f img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Hoja de informe */
main.ad .ad-sheet { position: relative; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 72px; max-width: 1400px; margin: 0 auto; padding: 0 40px; background: none; }
main.ad .ad-rail { position: sticky; top: 132px; align-self: start; display: grid; gap: 2px; padding: 96px 0 64px; }
main.ad .ad-rail a { font-family: var(--display); font-size: 13.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--faint); text-decoration: none; padding: 9px 0 9px 18px; border-left: 1px solid var(--ad-line); transition: color 180ms var(--ease), border-color 180ms var(--ease); }
main.ad .ad-rail a:hover { color: var(--ink); }
main.ad .ad-rail a.on { color: var(--ink); border-left-color: var(--navy); }

main.ad .ad-s + .ad-s { margin-top: 84px; padding-top: 84px; border-top: 1px solid var(--ad-line); }
main.ad .ad-s-k { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--navy); margin: 0 0 14px; }
main.ad .ad-s-h { font-family: var(--display); font-size: clamp(24px, 2.2vw, 33px); font-weight: 700; letter-spacing: -0.032em; line-height: 1.12; color: var(--ink); margin: 0 0 34px; }

/* Filas desplegables, alineadas a la columna fija */
main.ad .ad-rows { border-top: 1px solid var(--ink); }
main.ad .ad-row { border-bottom: 1px solid var(--ad-line); }
main.ad .ad-row summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: var(--ad-col) 1fr 14px; align-items: center; gap: 16px; padding: 18px 0; }
main.ad .ad-row summary::-webkit-details-marker { display: none; }
main.ad .ad-num { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.18em; color: var(--faint); font-variant-numeric: tabular-nums; }
main.ad .ad-ttl { font-family: var(--display); font-size: 18.5px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
main.ad .ad-row summary i { position: relative; width: 12px; height: 12px; }
main.ad .ad-row summary i::before, main.ad .ad-row summary i::after { content: ""; position: absolute; top: 50%; left: 0; width: 12px; height: 1px; background: var(--ink); }
main.ad .ad-row summary i::after { transform: rotate(90deg); transition: transform 240ms var(--ease); }
main.ad .ad-row[open] summary i::after { transform: rotate(0deg); }
main.ad .ad-row-b { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; padding: 0 0 24px calc(var(--ad-col) + 16px); }
main.ad .ad-row-b p { font-size: 15.5px; line-height: 1.75; color: var(--muted); margin: 0; }
main.ad .ad-why { border-left: 1px solid var(--ad-line); padding-left: 22px; color: var(--faint) !important; font-size: 14.5px !important; }
main.ad .ad-why span { display: block; font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--navy); margin-bottom: 7px; }

/* Alcance */
main.ad .ad-sc { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; }
main.ad .ad-sc-c h3 { font-family: var(--display); font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--navy); margin: 0 0 12px; }
main.ad .ad-sc-c ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
main.ad .ad-sc-c li { font-size: 15.5px; line-height: 1.55; color: var(--muted); padding: 13px 0; border-bottom: 1px solid var(--ad-line); }

/* Informe */
main.ad .ad-rp { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start; }
main.ad .ad-rep { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
main.ad .ad-rep li { display: grid; grid-template-columns: var(--ad-col) 1fr; gap: 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--ad-line); font-family: var(--display); font-size: 16px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
main.ad .ad-sm { margin: 0; border: 1px solid var(--ad-line); padding: 24px 24px 18px; background: #fcfcfb; }
main.ad .ad-sm figcaption { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--navy); margin-bottom: 16px; }
main.ad .ad-sm table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
main.ad .ad-sm th { text-align: left; font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--faint); padding: 0 10px 10px 0; border-bottom: 1px solid var(--ink); }
main.ad .ad-sm td { padding: 11px 10px 11px 0; border-bottom: 1px solid var(--ad-line); color: var(--muted); vertical-align: top; font-variant-numeric: tabular-nums; }
main.ad .ad-sm td:first-child { color: var(--ink); font-weight: 600; }
main.ad .ad-sm tr td:last-child { padding-left: 12px; border-left: 2px solid transparent; }
main.ad .ad-sm-riesgo td:last-child { border-left-color: #b4342c; color: #8e2a24; }
main.ad .ad-sm-mejora td:last-child { border-left-color: var(--navy); }
main.ad .ad-sm-ok td:last-child { border-left-color: #2f6b45; color: #2a5c3c; }
main.ad .ad-sm-n { font-size: 12px; line-height: 1.6; color: var(--faint); margin: 14px 0 0; }
main.ad .ad-ph { list-style: none; margin: 40px 0 0; padding: 0; border-top: 1px solid var(--ink); }
main.ad .ad-ph li { display: grid; grid-template-columns: var(--ad-col) 1fr; gap: 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--ad-line); }
main.ad .ad-ph-b b { font-family: var(--display); font-size: 16px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); margin-right: 10px; }
main.ad .ad-ph-b span { font-size: 15px; line-height: 1.6; color: var(--muted); }

/* Diagnóstico */
main.ad .ad-form { border-top: 1px solid var(--ink); padding-top: 26px; max-width: 620px; }
main.ad .ad-form-top { margin-bottom: 30px; }
main.ad .ad-prog { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); margin: 0 0 10px; }
main.ad .ad-bar { display: block; height: 2px; background: var(--ad-line); }
main.ad .ad-bar i { display: block; height: 100%; background: var(--navy); transition: width 320ms var(--ease-io); }
main.ad .ad-q { border: 0; margin: 0; padding: 0; min-width: 0; }
main.ad .ad-q legend { font-family: var(--display); font-size: clamp(21px, 2vw, 27px); font-weight: 700; letter-spacing: -0.03em; color: var(--ink); padding: 0; margin-bottom: 20px; }
main.ad .ad-opts { display: grid; border-top: 1px solid var(--ad-line); }
main.ad .ad-opt { text-align: left; background: none; border: 0; border-bottom: 1px solid var(--ad-line); cursor: pointer; font-family: var(--display); font-size: 16.5px; font-weight: 600; letter-spacing: -0.015em; color: var(--ink); padding: 16px 32px 16px 0; position: relative; transition: padding-left 180ms var(--ease); }
main.ad .ad-opt::after { content: ""; position: absolute; right: 6px; top: 50%; width: 7px; height: 7px; border: solid var(--faint); border-width: 1px 1px 0 0; transform: translateY(-50%) rotate(45deg); transition: border-color 180ms var(--ease); }
main.ad .ad-opt:hover { padding-left: 12px; }
main.ad .ad-opt:hover::after { border-color: var(--navy); }
main.ad .ad-opt:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
main.ad .ad-back { background: none; border: 0; cursor: pointer; padding: 0; margin-top: 20px; font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
main.ad .ad-back:hover { color: var(--ink); }
main.ad .ad-res-k { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--navy); margin: 0 0 10px; }
main.ad .ad-res-t { font-family: var(--display); font-size: clamp(21px, 2vw, 27px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.2; color: var(--ink); margin: 0 0 24px; }
main.ad .ad-res-l { list-style: none; margin: 0 0 28px; padding: 0; border-top: 1px solid var(--ad-line); }
main.ad .ad-res-l li { display: grid; grid-template-columns: 44% 1fr; gap: 16px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--ad-line); font-size: 14.5px; color: var(--muted); }
main.ad .ad-res-l b { font-family: var(--display); font-weight: 600; color: var(--ink); }
main.ad .ad-res .ad-btn { background: var(--ink); color: #fff; }

/* Cierre */
main.ad .ad-end { background: var(--ad-paper); padding: 88px 0 72px; }
main.ad .ad-end-in { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap; padding-bottom: 34px; border-bottom: 1px solid var(--ad-line); }
main.ad .ad-end-k { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--navy); margin: 0 0 14px; }
main.ad .ad-end-t { font-family: var(--display); font-size: clamp(28px, 3.2vw, 44px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.06; color: var(--ink); margin: 0; }
main.ad .ad-end-n { padding-top: 26px; display: grid; gap: 10px; }
main.ad .ad-end-n p { margin: 0; font-size: 14.5px; color: var(--muted); }
main.ad .ad-end-n a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--ad-line); }
main.ad .ad-legal { font-size: 12px !important; color: var(--faint) !important; line-height: 1.7; }

@media (max-width: 1180px) {
  main.ad .ad-sheet { grid-template-columns: 1fr; margin: -48px 20px 0; }
  main.ad .ad-rail { position: static; display: flex; gap: 0; overflow-x: auto; padding: 22px 28px 0; border-bottom: 1px solid var(--ad-line); }
  main.ad .ad-rail a { white-space: nowrap; border-left: 0; border-bottom: 2px solid transparent; padding: 10px 18px 12px; }
  main.ad .ad-rail a.on { border-bottom-color: var(--navy); }
  main.ad .ad-body { padding: 40px 28px 56px; }
}
@media (max-width: 900px) {
  main.ad .ad-hero { grid-template-columns: 1fr; min-height: 0; }
  main.ad .ad-hero-f { order: -1; height: 40vh; min-height: 260px; }
  main.ad .ad-hero-t { padding: 56px 0; }
  main.ad .ad-hero-in { margin: 0; padding: 0 20px; max-width: none; }
  main.ad .ad-row-b, main.ad .ad-sc, main.ad .ad-rp { grid-template-columns: 1fr; gap: 18px; }
  main.ad .ad-row-b { padding-left: 0; }
  main.ad .ad-sm { display: none; }
}
@media (max-width: 720px) {
  main.ad { --ad-col: 34px; }
  main.ad .ad-sheet { margin: -32px 12px 0; }
  main.ad .ad-body { padding: 32px 20px 44px; }
  main.ad .ad-s + .ad-s { margin-top: 56px; padding-top: 56px; }
  main.ad .ad-ttl { font-size: 17px; }
  main.ad .ad-res-l li { grid-template-columns: 1fr; gap: 2px; }
  main.ad .ad-end { padding: 56px 0 56px; }
}

/* Auditoría: portada corporativa y efectos sobrios */
main.ad .ad-hero { position: relative; overflow: hidden; }
main.ad .ad-hero-f img { transform: scale(1.06); animation: adZoom 1600ms cubic-bezier(0.16, 1, 0.3, 1) forwards; will-change: transform; }
@keyframes adZoom { to { transform: scale(1); } }
main.ad .ad-hero-f::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink) 0%, rgba(21,24,44,0.55) 22%, rgba(21,24,44,0) 62%); }
main.ad .ad-hero-t { position: relative; z-index: 2; }
main.ad .ad-hero-in > * { opacity: 0; transform: translateY(14px); animation: adUp 760ms cubic-bezier(0.16, 1, 0.3, 1) forwards; }
main.ad .ad-hero-in > *:nth-child(1) { animation-delay: 80ms; }
main.ad .ad-hero-in > *:nth-child(2) { animation-delay: 170ms; }
main.ad .ad-hero-in > *:nth-child(3) { animation-delay: 260ms; }
main.ad .ad-hero-in > *:nth-child(4) { animation-delay: 350ms; }
main.ad .ad-hero-in > *:nth-child(5) { animation-delay: 440ms; }
@keyframes adUp { to { opacity: 1; transform: none; } }
html:not(.js) main.ad .ad-hero-in > * { opacity: 1; transform: none; animation: none; }

/* Fondo y separadores a ancho completo */
main.ad { background: #fff; overflow-x: clip; }
main.ad .ad-sheet { position: relative; }
main.ad .ad-s { position: relative; }
main.ad .ad-s + .ad-s::before { content: ""; position: absolute; top: -1px; left: -1000px; right: -1000px; height: 1px; background: var(--ad-line); }
main.ad .ad-s + .ad-s { border-top: 0; }

/* Título de sección con línea que se dibuja */
main.ad .ad-s-h { position: relative; padding-bottom: 20px; }
main.ad .ad-s-h::after { content: ""; position: absolute; left: 0; bottom: 0; width: 64px; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1); }
main.ad .ad-s.in .ad-s-h::after, html:not(.js) main.ad .ad-s-h::after { transform: scaleX(1); }

/* Filas con reacción */
main.ad .ad-row summary { transition: background 200ms var(--ease); }
main.ad .ad-row .ad-ttl { display: inline-block; transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1); }
main.ad .ad-row .ad-num { transition: color 220ms var(--ease); }
@media (hover: hover) {
  main.ad .ad-row summary:hover .ad-ttl { transform: translateX(5px); }
  main.ad .ad-row summary:hover .ad-num { color: var(--navy); }
  main.ad .ad-rep li, main.ad .ad-ph li { transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1); }
  main.ad .ad-rep li:hover, main.ad .ad-ph li:hover { transform: translateX(5px); }
  main.ad .ad-sc-c li { transition: transform 200ms var(--ease), color 200ms var(--ease); }
  main.ad .ad-sc-c li:hover { transform: translateX(5px); color: var(--ink); }
}
main.ad .ad-btn:active { transform: translateY(1px); }
main.ad .ad-opt:active { transform: scale(0.995); }

/* El extracto del informe entra con el resto */
main.ad .ad-sm { transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1), opacity 700ms var(--ease); }
main.ad .ad-s:not(.in) .ad-sm { opacity: 0; transform: translateY(18px); }
html:not(.js) main.ad .ad-sm { opacity: 1; transform: none; }

@media (max-width: 1180px) {
  main.ad .ad-sheet { grid-template-columns: 1fr; gap: 0; padding: 0 28px; margin: 0 auto; }
  main.ad .ad-rail { position: sticky; top: 76px; z-index: 3; background: #fff; display: flex; gap: 0; overflow-x: auto; padding: 14px 0 0; border-bottom: 1px solid var(--ad-line); }
  main.ad .ad-body { padding: 44px 0 64px; }
}
@media (max-width: 720px) {
  main.ad .ad-sheet { padding: 0 20px; }
  main.ad .ad-hero-f::after { background: linear-gradient(180deg, rgba(21,24,44,0.25) 0%, var(--ink) 92%); }
}
@media (prefers-reduced-motion: reduce) {
  main.ad .ad-hero-f img { animation: none; transform: none; }
  main.ad .ad-hero-in > * { animation: none; opacity: 1; transform: none; }
}

/* Texto solo para lectores de pantalla */
.vh { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Enlace de salto al contenido, visible al tabular */
.skip { position: absolute; left: 16px; top: -60px; z-index: 200; background: var(--ink); color: #fff; font-family: var(--display); font-size: 13.5px; font-weight: 600; padding: 12px 18px; text-decoration: none; transition: top 200ms var(--ease); }
.skip:focus { top: 16px; }


/* Particulares: todas las filas de ramo con la misma altura ---------------- */
@media (min-width: 961px) {
  a.cap-row { min-height: 84px; align-items: center; padding: 16px 0; }
  a.cap-row .cap-desc { display: block; max-width: 44ch; }
}

/* Empresas: filas del panel con la misma altura --------------------------- */
@media (min-width: 861px) {
  .ep-list a { min-height: 84px; padding: 14px 0; }
  .ep-it-d { max-width: 46ch; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}

/* Auditoría · ritmo vertical unificado ------------------------------------ */
/* Una sola escala de espacios: 96 en escritorio, 72 en tableta, 56 en móvil. */
main.ad .ad-hero-t { padding: 190px 0 72px; }
main.ad .ad-body { padding: 96px 0 104px; }
main.ad .ad-rail { padding: 96px 0 0; top: 124px; }
main.ad .ad-s + .ad-s { margin-top: 96px; padding-top: 96px; }
main.ad .ad-s-k { margin-bottom: 16px; }
main.ad .ad-s-h { margin-bottom: 36px; }
main.ad .ad-rp, main.ad .ad-sc { margin-top: 0; }
main.ad .ad-ph { margin-top: 48px; }

@media (max-width: 1239px) {
  main.ad .ad-hero-t { padding: 140px 0 64px; }
  main.ad .ad-body { padding: 72px 0 80px; }
  main.ad .ad-rail { padding: 16px 0 0; top: 76px; }
  main.ad .ad-s + .ad-s { margin-top: 72px; padding-top: 72px; }
  main.ad .ad-ph { margin-top: 40px; }
}
@media (max-width: 720px) {
  main.ad .ad-hero-t { padding: 120px 0 56px; }
  main.ad .ad-body { padding: 48px 0 64px; }
  main.ad .ad-s + .ad-s { margin-top: 56px; padding-top: 56px; }
  main.ad .ad-s-h { margin-bottom: 28px; }
  main.ad .ad-ph { margin-top: 32px; }
}

/* ============ Siniestros ============ */
main.sin { --sn-line: rgba(21, 24, 44, 0.11); }
main.sin section { padding: 0; }
main.sin .wrap { max-width: 1240px; }
main.sin .sn-h2 { font-family: var(--display); font-size: clamp(24px, 2.2vw, 32px); font-weight: 700; letter-spacing: -0.032em; line-height: 1.12; color: var(--ink); margin: 0 0 30px; }
main.sin .sn-k { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: #aeb6e2; margin: 0 0 24px; }
main.sin .sn-k-d { color: var(--navy); }

/* Portada */
main.sin .sn-h1 { font-family: var(--display); font-size: clamp(34px, 4.4vw, 58px); font-weight: 700; line-height: 1.05; letter-spacing: -0.038em; color: #fff; margin: 0 0 22px; }
main.sin .sn-lead { font-size: 17px; line-height: 1.7; color: rgba(255,255,255,0.72); max-width: 54ch; margin: 0 0 34px; }
main.sin .sn-act { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
main.sin .sn-btn { display: inline-flex; align-items: center; background: #fff; color: var(--ink); text-decoration: none; font-family: var(--display); font-size: 14px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 18px 32px; font-variant-numeric: tabular-nums; transition: transform 200ms var(--ease); }
main.sin .sn-btn:hover { transform: translateY(-2px); }
main.sin .sn-btn:active { transform: translateY(1px); }
main.sin .sn-btn-l { background: var(--ink); color: #fff; }
main.sin .sn-alt { font-family: var(--display); font-size: 15.5px; font-weight: 600; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.4); padding-bottom: 3px; }
main.sin .sn-alt-l { color: var(--ink); border-bottom-color: var(--sn-line); }
main.sin .sn-facts dt { font-family: var(--display); font-size: 15.5px; font-weight: 600; color: #fff; }
main.sin .sn-facts dd { margin: 4px 0 0; font-size: 13.5px; color: rgba(255,255,255,0.56); }

/* A quién llamar */
main.sin .sn-24-g { display: grid; grid-template-columns: 1fr 0.85fr; gap: 64px; align-items: start; }
main.sin .sn-24-p { font-size: 16px; line-height: 1.75; color: var(--muted); margin: 0 0 20px; max-width: 50ch; }
main.sin .sn-24-tip { font-size: 15px; line-height: 1.7; color: var(--muted); margin: 0; padding-left: 18px; border-left: 2px solid var(--navy); max-width: 50ch; }
main.sin .sn-24-tip b { color: var(--ink); }
main.sin .sn-pick label { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
main.sin .sn-pick select { appearance: none; width: 100%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2362677a' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 16px center/12px; border: 1px solid var(--sn-line); padding: 15px 44px 15px 16px; font-family: var(--display); font-size: 16px; color: var(--ink); cursor: pointer; }
main.sin .sn-pick select:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
main.sin .sn-pick-out { border-top: 1px solid var(--ink); margin-top: 14px; padding-top: 20px; }
main.sin .sn-pick-k { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--navy); margin: 0 0 8px; }
main.sin .sn-pick-tel { margin: 0 0 8px; }
main.sin .sn-pick-tel a { font-family: var(--display); font-size: clamp(24px, 2.2vw, 30px); font-weight: 700; letter-spacing: -0.02em; color: var(--ink); text-decoration: none; font-variant-numeric: tabular-nums; border-bottom: 2px solid var(--navy); padding-bottom: 2px; }
main.sin .sn-pick-note { font-size: 14.5px; line-height: 1.65; color: var(--muted); margin: 0; }
main.sin .sn-pick-foot { margin: 14px 0 0; font-size: 14.5px; color: var(--muted); }
main.sin .sn-pick-foot a { color: var(--ink); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--sn-line); font-variant-numeric: tabular-nums; }

/* Cómo lo tramitamos */
main.sin .sn-steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
main.sin .sn-steps li { display: grid; grid-template-columns: 56px 220px 1fr; gap: 20px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--sn-line); }
main.sin .sn-n { font-family: var(--display); font-size: 12.5px; font-weight: 600; letter-spacing: 0.2em; color: var(--navy); font-variant-numeric: tabular-nums; }
main.sin .sn-steps b { font-family: var(--display); font-size: 17px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
main.sin .sn-d { font-size: 15.5px; line-height: 1.65; color: var(--muted); }

/* Plazos */

/* Revisión de un siniestro ajeno */
main.sin .sn-an-g { max-width: 760px; }
main.sin .sn-an-p { font-size: 16px; line-height: 1.8; color: var(--muted); margin: 0 0 30px; }

/* Preguntas */
main.sin .sn-fq { display: grid; grid-template-columns: 0.75fr 1.45fr; gap: 56px; align-items: start; }
main.sin .sn-fq-i { border-bottom: 1px solid var(--sn-line); }
main.sin .sn-fq-i:first-child { border-top: 1px solid var(--ink); }
main.sin .sn-fq-i summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-family: var(--display); font-size: 16.5px; font-weight: 700; letter-spacing: -0.015em; color: var(--ink); padding: 20px 0; }
main.sin .sn-fq-i summary::-webkit-details-marker { display: none; }
main.sin .sn-fq-i summary i { position: relative; width: 12px; height: 12px; flex: none; }
main.sin .sn-fq-i summary i::before, main.sin .sn-fq-i summary i::after { content: ""; position: absolute; top: 50%; left: 0; width: 12px; height: 1px; background: var(--ink); }
main.sin .sn-fq-i summary i::after { transform: rotate(90deg); transition: transform 240ms var(--ease); }
main.sin .sn-fq-i[open] summary i::after { transform: rotate(0deg); }
main.sin .sn-fq-i p { font-size: 15.5px; line-height: 1.75; color: var(--muted); margin: 0 0 22px; max-width: 70ch; }

/* Cierre */
main.sin .sn-end { background: var(--bg-soft, #f6f6f4); border-top: 1px solid var(--sn-line); padding: 80px 0 88px; }
main.sin .sn-end-t { font-family: var(--display); font-size: clamp(26px, 2.8vw, 40px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.08; color: var(--ink); margin: 0 0 28px; }
main.sin .sn-legal { margin: 36px 0 0; font-size: 12.5px; line-height: 1.7; color: var(--faint); max-width: 100ch; }

@media (max-width: 1080px) {
  main.sin .sn-24-g { grid-template-columns: 1fr; gap: 36px; }
  main.sin .sn-fq { grid-template-columns: 1fr; gap: 32px; }
  main.sin .sn-steps li { grid-template-columns: 44px 1fr; }
  main.sin .sn-d { grid-column: 2; }
}

/* Siniestros · diseño contenido: sin foto, menos cajas, más aire ---------- */
main.sin .sn-hero { position: relative; overflow: hidden; background: var(--ink); padding: 174px 0 74px; }
main.sin .sn-hero-fig { position: absolute; inset: 0; margin: 0; }
main.sin .sn-hero-fig img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; display: block; }
main.sin .sn-hero-veil { position: absolute; inset: 0; background: linear-gradient(96deg, rgba(21,24,44,0.95) 0%, rgba(21,24,44,0.88) 42%, rgba(21,24,44,0.62) 100%); }
main.sin .sn-hero-in { position: relative; z-index: 2; }
main.sin .sn-hero-in { position: relative; }
main.sin .sn-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 48px 0 0; border-top: 1px solid rgba(255,255,255,0.14); }
main.sin .sn-facts > div { padding: 18px 28px 0 0; }
main.sin .sn-facts > div + div { border-left: 0; padding-left: 0; }
main.sin .sn-s { padding: 76px 0; border-top: 1px solid var(--sn-line); }
main.sin .sn-sub { font-size: 15.5px; line-height: 1.7; color: var(--muted); max-width: 58ch; margin: -14px 0 34px; }

main.sin .sn-hour { margin: 22px 0 0; font-size: 13.5px; line-height: 1.8; color: rgba(255,255,255,0.56); max-width: 70ch; }
main.sin .sn-hour .open-now { display: flex; margin: 2px 0 2px; font-size: 13.5px; }
main.sin .sn-hour .open-now { color: rgba(255,255,255,0.78); }
main.sin .sn-hour .open-now::before { background: currentColor; }

/* Documentación */
main.sin .sn-doc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px 44px; }
main.sin .sn-doc-i { border-top: 1px solid var(--ink); padding-top: 16px; }
main.sin .sn-doc-i h3 { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--navy); margin: 0 0 12px; }
main.sin .sn-doc-i ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
main.sin .sn-doc-i li { font-size: 15px; line-height: 1.55; color: var(--muted); }

/* Plazos, en claro y sin recuadros */
main.sin .sn-pl-g { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 40px; background: none; border: 0; }
main.sin .sn-pl-i { background: none; padding: 16px 0 0; border-top: 1px solid var(--ink); display: grid; gap: 7px; align-content: start; }
main.sin .sn-pl-i b { font-family: var(--display); font-size: clamp(19px, 1.6vw, 24px); font-weight: 600; letter-spacing: -0.025em; color: var(--ink); }
main.sin .sn-pl-i span { font-size: 14.5px; line-height: 1.55; color: var(--muted); }
main.sin .sn-pl-i i { font-family: var(--display); font-size: 12px; font-style: normal; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }

/* Discrepancia con la valoración */
main.sin .sn-di { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 44px; }
main.sin .sn-di-i { border-top: 1px solid var(--ink); padding-top: 18px; }
main.sin .sn-di-i h3 { font-family: var(--display); font-size: 16px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 10px; }
main.sin .sn-di-i p { font-size: 15px; line-height: 1.7; color: var(--muted); margin: 0; }

/* Selector de compañía, sin caja */
main.sin .sn-24 { background: none; border-top: 1px solid var(--sn-line); }
main.sin .sn-pick { background: none; border: 0; border-top: 1px solid var(--ink); padding: 18px 0 0; }
main.sin .sn-pick select { border-color: rgba(21, 24, 44, 0.18); }

/* Banda de captación: la única con fondo */
main.sin .sn-an { background: var(--bg-soft, #f6f6f4); }

/* Tipografía contenida */
main.sin .sn-h1 { font-size: clamp(30px, 3.4vw, 46px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.08; }
main.sin .sn-lead { font-size: 16px; line-height: 1.7; max-width: 52ch; }
main.sin .sn-k { font-size: 11.5px; letter-spacing: 0.22em; }
main.sin .sn-h2 { font-size: clamp(22px, 1.9vw, 27px); font-weight: 600; letter-spacing: -0.025em; margin-bottom: 26px; }
main.sin .sn-facts dt { font-size: 15px; font-weight: 600; }
main.sin .sn-facts dd { font-size: 13px; }
main.sin .sn-btn { font-size: 13px; padding: 16px 28px; }
main.sin .sn-alt { font-size: 15px; }
main.sin .sn-steps b { font-size: 16px; font-weight: 600; }
main.sin .sn-d, main.sin .sn-24-p, main.sin .sn-an-p { font-size: 15.5px; }
main.sin .sn-pick-tel a { font-size: clamp(22px, 1.9vw, 27px); font-weight: 600; }
main.sin .sn-fq-i summary { font-size: 16px; font-weight: 600; }
main.sin .sn-end-t { font-size: clamp(24px, 2.4vw, 34px); font-weight: 600; }

@media (max-width: 1100px) {
  main.sin .sn-doc { grid-template-columns: repeat(2, 1fr); }
  main.sin .sn-pl-g { grid-template-columns: repeat(2, 1fr); gap: 30px 36px; }
  main.sin .sn-di { grid-template-columns: 1fr; gap: 26px; }
}
@media (max-width: 760px) {
  main.sin .sn-hero { padding: 118px 0 56px; }
  main.sin .sn-end { padding: 56px 0 64px; }
  main.sin .sn-facts { grid-template-columns: 1fr; margin-top: 36px; }
  main.sin .sn-facts > div { padding: 14px 0 16px; }
  main.sin .sn-facts > div + div { border-top: 1px solid rgba(255,255,255,0.12); }
  main.sin .sn-s { padding: 52px 0; }
  main.sin .sn-doc { grid-template-columns: 1fr; gap: 26px; }
  main.sin .sn-pl-g { grid-template-columns: 1fr; gap: 24px; }
  main.sin .sn-sub { margin-top: -8px; }
}

/* Cabecera con seis pestañas: aire entre enlaces sin que la barra se desborde */
@media (max-width: 1239px) {
  .nav-links, .nav-cta { display: none; }
  .menu-btn { display: block; background: none; border: none; cursor: pointer; color: var(--ink); padding: 10px; }
  .menu-btn .icon { width: 24px; height: 24px; }
}
@media (min-width: 1240px) and (max-width: 1519px) {
  .navbar { gap: 20px; }
  .nav-links { gap: 36px; }
  .nav-cta { gap: 16px; }
  .nav-cta .link-cta { font-size: 13px; }
  .nav-phone { font-size: 14px; }
}
@media (min-width: 1240px) and (max-width: 1439px) {
  .nav-links { gap: 28px; }
}

/* Idiomas dentro del menú desplegable: arriba se ocultan en pantallas estrechas */
.mobile-menu { padding-bottom: 96px; }
.mobile-menu .lang { display: flex; gap: 6px; margin: 16px 0 0; }
.mobile-menu .lang button { font-size: 14px; padding: 8px 12px; border: 1px solid var(--line); color: var(--ink); }
.mobile-menu .lang button.on { border-color: var(--navy); color: var(--navy); }
@media (min-width: 1240px) and (max-width: 1359px) {
  .nav-cta .link-cta { display: none; }
}

/* Llamadas de nota: superíndice legible, nunca por debajo de 11.5 px */
sup, sub { font-size: max(11.5px, 0.7em); }

/* Refinado de medida: ningún párrafo de lectura pasa de ~75 caracteres por línea */
.faq-a { max-width: 72ch; }
main.sin .sn-an-p { max-width: 70ch; }
main.sin .sn-d { max-width: 74ch; }
main.cv .cv-bd-t { max-width: 74ch; }


/* Portada: el texto sobre la fotografía se lee también cuando el cielo sale claro */
.hc-sub { color: rgba(255, 255, 255, 0.88); text-shadow: 0 1px 14px rgba(10, 12, 26, 0.45); }
.hc-h1 { text-shadow: 0 2px 28px rgba(10, 12, 26, 0.38); }
.hc-data { text-shadow: 0 1px 12px rgba(10, 12, 26, 0.4); }

/* Impresión: hoja sobria, sin elementos de navegación ni fondos oscuros */
@media print {
  html, body { background: #fff !important; color: #16182c !important; }
  main *, footer * { color: #16182c !important; background-color: transparent !important; background-image: none !important; text-shadow: none !important; }
  .sn-hero-fig, .sn-hero-veil, .hc-photo, .ad-hero-ph, .ad-hero-fig, .hero-media, .hero-veil { display: none !important; }
  header, .mobile-menu, .mobile-cta, .dock, .cookie-pop, .wz-backdrop, .wz-panel,
  .hc-hint, .sn-act, .ad-rail, video { display: none !important; }
  main, section { padding: 0 0 18pt !important; background: #fff !important; color: #16182c !important; }
  .wrap, .wrap-narrow { max-width: none !important; padding: 0 !important; }
  a { color: #16182c !important; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
  a[href^="#"]::after, a[href^="tel:"]::after, a[href^="mailto:"]::after { content: ""; }
  img, figure { max-width: 100% !important; break-inside: avoid; }
  h1, h2, h3 { break-after: avoid; color: #16182c !important; }
  p, li, dd, dt, td { color: #2b2f45 !important; }
  details { display: block; }
  details > summary { font-weight: 700; }
  details > summary + * { display: block !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  footer { border-top: 1pt solid #ccc; padding-top: 10pt; }
  .foot-social, .foot-grid nav { display: none !important; }
}


/* ======================= Nuestro equipo ======================= */
main.eq { --eq-line: rgba(21, 24, 44, 0.12); }
main.eq section { padding: 0; }
main.eq .wrap { max-width: 1240px; }
main.eq .eq-k { font-family: var(--display); font-size: 11.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: #aeb6e2; margin: 0 0 22px; }
main.eq .eq-h1 { font-family: var(--display); font-size: clamp(32px, 3.8vw, 50px); font-weight: 600; line-height: 1.06; letter-spacing: -0.032em; color: #fff; margin: 0 0 22px; }
main.eq .eq-h2 { font-family: var(--display); font-size: clamp(23px, 2.1vw, 30px); font-weight: 600; letter-spacing: -0.028em; line-height: 1.14; color: var(--ink); margin: 0; }
main.eq .eq-lead { font-size: 16.5px; line-height: 1.75; color: rgba(255,255,255,0.78); max-width: 50ch; margin: 0 0 54px; }
main.eq .eq-s { padding: 96px 0; }
main.eq .eq-s-head { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: baseline; margin-bottom: 52px; padding-bottom: 22px; border-bottom: 1px solid var(--ink); }
main.eq .eq-s-sub { font-size: 15.5px; line-height: 1.7; color: var(--muted); margin: 0; max-width: 56ch; }

/* Portada con la reunión al fondo */
main.eq .eq-hero { position: relative; overflow: hidden; background: var(--ink); padding: 180px 0 72px; }
main.eq .eq-hero-bg { position: absolute; inset: 0; margin: 0; }
main.eq .eq-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 45%; display: block; }
main.eq .eq-hero-veil { position: absolute; inset: 0; background: linear-gradient(98deg, rgba(21,24,44,0.95) 0%, rgba(21,24,44,0.88) 44%, rgba(21,24,44,0.6) 100%); }
main.eq .eq-hero-in { position: relative; z-index: 2; }
main.eq .eq-cifras { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; border-top: 1px solid rgba(255,255,255,0.22); padding-top: 26px; max-width: 920px; }
main.eq .eq-cifra b { display: block; font-family: var(--display); font-size: clamp(26px, 2.4vw, 34px); font-weight: 600; letter-spacing: -0.035em; color: #fff; line-height: 1; font-variant-numeric: tabular-nums; }
main.eq .eq-cifra span { display: block; margin-top: 10px; font-size: 13.5px; line-height: 1.45; color: rgba(255,255,255,0.6); max-width: 18ch; }

/* Áreas en tres columnas, sin cajas */
main.eq .eq-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 56px; }
main.eq .eq-area h3 { font-family: var(--display); font-size: 18px; font-weight: 600; letter-spacing: -0.022em; color: var(--ink); margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--eq-line); }
main.eq .eq-area-d { font-size: 15px; line-height: 1.7; color: var(--muted); margin: 0 0 12px; }
main.eq .eq-area-y { font-size: 15px; line-height: 1.7; color: var(--ink); margin: 0; padding-left: 14px; border-left: 2px solid var(--navy); }

/* Cita sobre fotografía */
main.eq .eq-cita { position: relative; overflow: hidden; background: var(--ink); padding: 104px 0; }
main.eq .eq-cita-bg { position: absolute; inset: 0; background: linear-gradient(92deg, rgba(21,24,44,0.95) 0%, rgba(21,24,44,0.9) 50%, rgba(21,24,44,0.7) 100%), url("img/eq_cierre.webp") center 42% / cover no-repeat; }
main.eq .eq-cita-in { position: relative; z-index: 2; }
main.eq .eq-cita-t { font-family: var(--display); font-size: clamp(24px, 2.7vw, 36px); font-weight: 600; line-height: 1.24; letter-spacing: -0.03em; color: #fff; margin: 0 0 56px; max-width: 26ch; }
main.eq .eq-apoyos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; border-top: 1px solid rgba(255,255,255,0.22); padding-top: 26px; }
main.eq .eq-apoyo h3 { font-family: var(--display); font-size: 16px; font-weight: 600; color: #fff; margin: 0 0 10px; }
main.eq .eq-apoyo p { font-size: 15px; line-height: 1.68; color: rgba(255,255,255,0.68); margin: 0; }

/* Línea de tiempo */
main.eq .eq-hitos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
main.eq .eq-hito { border-top: 1px solid var(--ink); padding-top: 18px; }
main.eq .eq-hito b { display: block; font-family: var(--display); font-size: 21px; font-weight: 600; letter-spacing: -0.02em; color: var(--navy); margin-bottom: 12px; font-variant-numeric: tabular-nums; }
main.eq .eq-hito p { font-size: 15px; line-height: 1.68; color: var(--muted); margin: 0; }
main.eq .eq-more { margin: 48px 0 0; }
main.eq .eq-more a { font-family: var(--display); font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--navy); padding-bottom: 4px; }

/* Cierre */
main.eq .eq-end { background: var(--bg-soft, #f6f6f4); padding: 76px 0 84px; }
main.eq .eq-end-g { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center; }
main.eq .eq-end-t { font-family: var(--display); font-size: clamp(24px, 2.4vw, 34px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.12; color: var(--ink); margin: 0 0 14px; max-width: 20ch; }
main.eq .eq-end-p { font-size: 15.5px; line-height: 1.7; color: var(--muted); max-width: 52ch; margin: 0; }
main.eq .eq-act { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; justify-content: flex-end; }
main.eq .eq-btn { display: inline-flex; align-items: center; background: var(--ink); color: #fff; text-decoration: none; font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 17px 30px; font-variant-numeric: tabular-nums; transition: transform 200ms var(--ease); }
main.eq .eq-btn:hover { transform: translateY(-2px); }
main.eq .eq-alt { font-family: var(--display); font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--eq-line); padding-bottom: 3px; }

@media (max-width: 1020px) {
  main.eq .eq-areas { grid-template-columns: repeat(2, 1fr); gap: 36px 40px; }
  main.eq .eq-cifras { grid-template-columns: repeat(2, 1fr); gap: 28px; }
  main.eq .eq-hitos { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  main.eq .eq-apoyos { grid-template-columns: 1fr; gap: 26px; }
  main.eq .eq-s-head, main.eq .eq-end-g { grid-template-columns: 1fr; gap: 20px; }
  main.eq .eq-act { justify-content: flex-start; }
}
@media (max-width: 720px) {
  main.eq .eq-hero { padding: 120px 0 56px; }
  main.eq .eq-hero-bg img { object-position: 66% 45%; }
  main.eq .eq-s { padding: 60px 0; }
  main.eq .eq-cita { padding: 68px 0; }
  main.eq .eq-areas, main.eq .eq-cifras, main.eq .eq-hitos { grid-template-columns: 1fr; gap: 26px; }
  main.eq .eq-end { padding: 56px 0 64px; }
}

/* ======================= Internacional ======================= */
main.intl { --il-line: rgba(21, 24, 44, 0.12); }
main.intl section { padding: 0; }
main.intl .wrap { max-width: 1240px; }
main.intl .il-k { font-family: var(--display); font-size: 11.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: #aeb6e2; margin: 0 0 22px; }
main.intl .il-h1 { font-family: var(--display); font-size: clamp(32px, 3.8vw, 50px); font-weight: 600; line-height: 1.06; letter-spacing: -0.032em; color: #fff; margin: 0 0 22px; }
main.intl .il-h2 { font-family: var(--display); font-size: clamp(23px, 2.1vw, 30px); font-weight: 600; letter-spacing: -0.028em; line-height: 1.14; color: var(--ink); margin: 0 0 44px; }
main.intl .il-lead { font-size: 16.5px; line-height: 1.75; color: rgba(255, 255, 255, 0.76); max-width: 50ch; margin: 0 0 56px; }
main.intl .il-sub { font-size: 15.5px; line-height: 1.7; color: var(--muted); max-width: 42ch; margin: -24px 0 32px; }
main.intl .il-s { padding: 92px 0; }

/* Portada con fotografía al fondo */
main.intl .il-hero { position: relative; overflow: hidden; background: var(--ink); padding: 182px 0 76px; }
main.intl .il-hero-bg { position: absolute; inset: 0; background: linear-gradient(96deg, rgba(21,24,44,0.95) 0%, rgba(21,24,44,0.88) 44%, rgba(21,24,44,0.58) 100%), url("img/il_hero2.webp") center 52% / cover no-repeat; }
main.intl .il-hero-in { position: relative; z-index: 2; }
main.intl .il-cifras { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; border-top: 1px solid rgba(255, 255, 255, 0.22); padding-top: 26px; max-width: 980px; }
main.intl .il-cifra b { display: block; font-family: var(--display); font-size: clamp(19px, 1.7vw, 23px); font-weight: 600; letter-spacing: -0.02em; color: #fff; }
main.intl .il-cifra span { display: block; margin-top: 8px; font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, 0.6); max-width: 26ch; }

/* Ámbitos: rejilla con un bloque ancho */
main.intl .il-ambs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--il-line); border-top: 1px solid var(--ink); }
main.intl .il-amb { background: var(--bg); padding: 34px 36px 38px 0; }
main.intl .il-amb:nth-child(n+3) { padding-left: 36px; }
main.intl .il-amb-w { grid-column: span 3; display: grid; grid-template-columns: 1.1fr 1fr; gap: 20px 48px; align-items: start; }
main.intl .il-amb-w h3 { grid-column: 1; }
main.intl .il-amb-w > p { grid-column: 1; margin-bottom: 0; }
main.intl .il-amb-w ul { grid-column: 2; grid-row: 1 / span 2; }
main.intl .il-amb h3 { font-family: var(--display); font-size: 18px; font-weight: 600; letter-spacing: -0.022em; color: var(--ink); margin: 0 0 12px; }
main.intl .il-amb > p { font-size: 15.5px; line-height: 1.7; color: var(--muted); margin: 0 0 20px; }
main.intl .il-amb ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
main.intl .il-amb li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.55; color: var(--ink); }
main.intl .il-amb li::before { content: ""; position: absolute; left: 0; top: 10px; width: 10px; height: 1px; background: var(--navy); }

/* Método: cuatro columnas bajo una misma línea */
main.intl .il-metodo { background: var(--bg-soft, #f6f6f4); }
main.intl .il-pasos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; border-top: 1px solid var(--ink); padding-top: 24px; }
main.intl .il-paso b { display: block; font-family: var(--display); font-size: 17px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); margin-bottom: 10px; }
main.intl .il-paso p { font-size: 15px; line-height: 1.68; color: var(--muted); margin: 0; }

/* Datos que pedimos */
main.intl .il-datos-g { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 72px; align-items: start; }
main.intl .il-datos-l { list-style: none; margin: 0; padding: 0; counter-reset: d; }
main.intl .il-datos-l li { display: grid; grid-template-columns: 54px 1fr; gap: 16px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--il-line); font-size: 16px; line-height: 1.5; color: var(--ink); }
main.intl .il-datos-l li:first-child { border-top: 1px solid var(--ink); }
main.intl .il-datos-l span { font-family: var(--display); font-size: 12.5px; font-weight: 600; letter-spacing: 0.18em; color: var(--navy); font-variant-numeric: tabular-nums; }
main.intl .il-btn { display: inline-flex; align-items: center; background: var(--ink); color: #fff; text-decoration: none; font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 16px 28px; transition: transform 200ms var(--ease); }
main.intl .il-btn:hover { transform: translateY(-2px); }

/* Preguntas a dos columnas */
main.intl .il-fq { columns: 2; column-gap: 72px; }
main.intl .il-fq-i { break-inside: avoid; border-bottom: 1px solid var(--il-line); }
main.intl .il-fq-i summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-family: var(--display); font-size: 16px; font-weight: 600; letter-spacing: -0.015em; color: var(--ink); padding: 20px 0; }
main.intl .il-fq-i summary::-webkit-details-marker { display: none; }
main.intl .il-fq-i summary i { position: relative; width: 12px; height: 12px; flex: none; }
main.intl .il-fq-i summary i::before, main.intl .il-fq-i summary i::after { content: ""; position: absolute; top: 50%; left: 0; width: 12px; height: 1px; background: var(--ink); }
main.intl .il-fq-i summary i::after { transform: rotate(90deg); transition: transform 240ms var(--ease); }
main.intl .il-fq-i[open] summary i::after { transform: rotate(0deg); }
main.intl .il-fq-i p { font-size: 15.5px; line-height: 1.75; color: var(--muted); margin: 0 0 22px; }
main.intl .il-legal { margin: 48px 0 0; font-size: 12.5px; line-height: 1.7; color: var(--faint); max-width: 96ch; }

@media (max-width: 1020px) {
  main.intl .il-ambs { grid-template-columns: 1fr; }
  main.intl .il-amb-w { grid-column: span 1; grid-template-columns: 1fr; gap: 16px; }
  main.intl .il-amb-w ul { grid-column: 1; grid-row: auto; }
  main.intl .il-cifras, main.intl .il-pasos { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  main.intl .il-datos-g { grid-template-columns: 1fr; gap: 36px; }
  main.intl .il-fq { columns: 1; }
  main.intl .il-sub { margin-top: -28px; }
}
@media (max-width: 720px) {
  main.intl .il-hero { padding: 124px 0 56px; }
  main.intl .il-hero-bg { background-position: 62% 52%; }
  main.intl .il-s { padding: 60px 0; }
  main.intl .il-cifras, main.intl .il-pasos { grid-template-columns: 1fr; gap: 24px; }
  main.intl .il-amb { padding: 26px 22px 28px; }
  main.intl .il-datos-l li { grid-template-columns: 40px 1fr; gap: 12px; }
}

/* Inversión: apoyo bajo el texto del producto, para que la columna no quede coja */
.iv-extra { margin-top: 28px; }
.iv-fit { font-size: 16px; line-height: 1.7; color: var(--ink) !important; max-width: 46ch; padding-left: 16px; border-left: 2px solid var(--navy); margin: 0 0 24px; }
.iv-watch { margin: 0; border-top: 1px solid var(--line); }
.iv-watch > div { padding: 14px 0; border-bottom: 1px solid var(--line); }
.iv-watch dt { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--navy); margin-bottom: 6px; }
.iv-watch dd { margin: 0; font-size: 15px; line-height: 1.6; color: var(--muted); max-width: 48ch; }

/* ============ Prevención de riesgos de IA (CovertoAI): rediseño ============ */
main.cov .cv-mark { width: 14px; height: 14px; margin-right: 10px; vertical-align: -2px; }
main.cov .cv-hero { position: relative; overflow: hidden; background: #0b0e1c; padding: 180px 0 76px; }
main.cov .cv-hero-bg { position: absolute; inset: 0; margin: 0; }
main.cov .cv-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; display: block; }
main.cov .cv-hero-veil { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(8,10,22,0.95) 0%, rgba(10,13,28,0.88) 46%, rgba(12,16,34,0.62) 100%); }
main.cov .cv-hero-in { position: relative; z-index: 2; }
main.cov .cv-hero .cv-k { color: #aeb6e2; }
main.cov .cv-hero .cv-h1 { color: #fff; }
main.cov .cv-hero .cv-claim { color: rgba(255,255,255,0.76); max-width: 62ch; }
main.cov .cv-hero .cv-btn { background: #fff; color: var(--ink); }
main.cov .cv-hero .cv-out { color: #fff; }
main.cov .cv-hero-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; margin: 56px 0 0; padding: 26px 0 0; border-top: 1px solid rgba(255,255,255,0.2); background: none; }
main.cov .cv-hero-facts > div { padding: 0; border: 0; }
main.cov .cv-hero-facts dt { font-family: var(--display); font-size: 15px; font-weight: 600; color: #fff; margin-bottom: 8px; }
main.cov .cv-hero-facts dd { margin: 0; font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,0.58); }

/* Servicio: cuatro bloques numerados */
main.cov .cv-sv-g { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
main.cov .cv-sv-i { border-top: 1px solid var(--ink); padding-top: 18px; }
main.cov .cv-sv-n { display: block; font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; color: var(--navy); margin-bottom: 12px; }

/* Casos: figura de apoyo y lista numerada */
main.cov .cv-cs-g { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; align-items: start; }
main.cov .cv-cs-fig { margin: 34px 0 0; }
main.cov .cv-cs-fig img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
main.cov .cv-cs-l { counter-reset: cvc; }
main.cov .cv-cs-i { counter-increment: cvc; }
main.cov .cv-cs-i b::before { content: counter(cvc, decimal-leading-zero); font-family: var(--display); font-size: 12px; letter-spacing: 0.18em; color: var(--navy); margin-right: 14px; vertical-align: 2px; }

/* Pasos numerados */
main.cov .cv-st-n { display: block; font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; color: var(--navy); margin-bottom: 10px; }

/* Cuotas sobre fondo oscuro */
main.cov .cv-pr { background: var(--ink); color: #fff; }
main.cov .cv-pr .cv-h2-l, main.cov .cv-pr .cv-h2 { color: #fff; }
main.cov .cv-pr .cv-sub-l, main.cov .cv-pr .cv-sub { color: rgba(255,255,255,0.72); }
main.cov .cv-pr-n { font-size: 13px; line-height: 1.65; color: rgba(255,255,255,0.52); max-width: 46ch; margin-top: 22px; }
main.cov .cv-pr-b { display: inline-flex; margin-top: 28px; background: #fff; color: var(--ink); text-decoration: none; font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 16px 28px; transition: transform 200ms var(--ease); }
main.cov .cv-pr-b:hover { transform: translateY(-2px); }
main.cov .cv-pr-t2 { width: 100%; border-collapse: collapse; }
main.cov .cv-pr-t2 th { text-align: left; font-family: var(--display); font-size: 11.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #aeb6e2; padding: 0 0 14px; border-bottom: 1px solid rgba(255,255,255,0.28); }
main.cov .cv-pr-t2 th:last-child, main.cov .cv-pr-t2 td:last-child { text-align: right; }
main.cov .cv-pr-t2 td { padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.14); font-size: 16px; color: #fff; font-variant-numeric: tabular-nums; }

/* Cierre con fotografía */
main.cov .cv-end { position: relative; overflow: hidden; background: var(--ink); }
main.cov .cv-end-bg { position: absolute; inset: 0; background: linear-gradient(96deg, rgba(10,13,28,0.95) 0%, rgba(10,13,28,0.88) 50%, rgba(10,13,28,0.66) 100%), url("img/cv_glass.webp") center 50% / cover no-repeat; }
main.cov .cv-end-in { position: relative; z-index: 2; }
main.cov .cv-end-t { color: #fff; }
main.cov .cv-end .cv-btn { background: #fff; color: var(--ink); }
main.cov .cv-end .cv-out { color: #fff; }

@media (max-width: 1020px) {
  main.cov .cv-sv-g { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  main.cov .cv-hero-facts { grid-template-columns: repeat(2, 1fr); gap: 26px; }
  main.cov .cv-cs-g { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 720px) {
  main.cov .cv-hero { padding: 120px 0 56px; }
  main.cov .cv-sv-g, main.cov .cv-hero-facts { grid-template-columns: 1fr; gap: 24px; }
}
main.cov .cv-cs-fig img { height: clamp(220px, 24vw, 320px); aspect-ratio: auto; object-position: 50% 35%; }
main.cov .cv-pr-left { background: none; border: 0; padding: 0; }
main.cov .cv-pr-g { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; align-items: start; }
@media (max-width: 1020px) { main.cov .cv-pr-g { grid-template-columns: 1fr; gap: 36px; } }

/* Empresas: las dos tarjetas de servicios alinean su enlace a la misma altura */
.xl-c { display: flex; flex-direction: column; height: 100%; }
.xl-t { flex: 1 1 auto; }
.xl-m { margin-top: auto; }

/* Seguros relacionados: fila discreta al final de cada ramo, antes del cierre */
.relac { background: #fff; border-top: 1px solid rgba(12, 22, 44, 0.08); }
.relac-in { padding: 34px 40px 36px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 30px; }
.relac-t {
  font-family: var(--display); font-size: 11.5px; font-weight: 700; letter-spacing: 0.18em;
  text-transform: uppercase; color: rgba(12, 22, 44, 0.38); margin: 0;
}
.relac-l { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 26px; }
.relac-l a {
  font-size: 15px; color: rgba(12, 22, 44, 0.72); text-decoration: none;
  border-bottom: 1px solid rgba(12, 22, 44, 0.16); padding-bottom: 2px;
  transition: color 150ms var(--ease), border-color 150ms var(--ease);
}
.relac-l a:hover { color: var(--ink, #0c162c); border-color: currentColor; }
@media (max-width: 720px) {
  .relac-in { flex-direction: column; gap: 14px; padding: 28px 24px 30px; }
  .relac-l { flex-direction: column; gap: 0; }
  .relac-l a { display: block; padding: 11px 0; border-bottom: 1px solid rgba(12, 22, 44, 0.08); }
}

/* Wizard · elegir entre llamada y WhatsApp, y escoger día y hora */
.wz-vias { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 22px; }
.wz-via {
  font-family: var(--display); color: var(--ink); background: none; text-align: left;
  border: 1px solid rgba(12, 22, 44, 0.18); padding: 18px 20px; cursor: pointer;
  transition: border-color 180ms var(--ease), background 180ms var(--ease), transform 160ms var(--ease);
}
.wz-via:active { transform: scale(0.98); }
.wz-via b { display: block; font-size: 14.5px; font-weight: 600; }
.wz-via small { display: block; margin-top: 3px; font-size: 12.5px; color: rgba(12, 22, 44, 0.5); }
.wz-via:hover { border-color: var(--navy); }
.wz-via.on { border-color: var(--navy); background: var(--navy-soft); }
.wz-lab {
  display: block; font-family: var(--display);
  font-size: 13px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--faint); margin: 22px 0 8px;
}
.wz-horas { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.wz-hora {
  font-family: var(--display); font-size: 14px; font-weight: 600; color: var(--ink);
  background: none; border: 1px solid var(--line); padding: 10px 6px; cursor: pointer;
  transition: border-color 160ms var(--ease), background 160ms var(--ease), color 160ms var(--ease);
}
.wz-hora:hover { border-color: var(--navy); }
.wz-hora.on { border-color: var(--navy); background: var(--navy); color: #fff; }
.wz-wa { font-size: 15px; line-height: 1.65; color: rgba(12, 22, 44, 0.72); margin: 0 0 4px; }
.wz-cuando {
  font-family: var(--display); font-size: 19px; font-weight: 700; color: var(--navy);
  margin: 0 0 10px;
}
@media (max-width: 560px) {
  .wz-vias { grid-template-columns: 1fr; }
  .wz-horas { grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); }
}

/* WhatsApp en la barra superior, al lado del teléfono */
.nav-wa {
  color: var(--navy); display: inline-flex; align-items: center;
  transition: opacity 150ms var(--ease);
}
.nav-wa:hover { opacity: 0.6; }
header.light .nav-wa { color: #fff; }
.nav-wa .icon-fill { width: 18px; height: 18px; }

/* Selector de idioma compacto en la barra: un botón con la lengua actual y un
   desplegable con las tres. Antes ocupaba demasiado y desaparecía en portátiles. */
.lang-mini { position: relative; }
.lang-mini .lang-now {
  display: inline-flex; align-items: center; gap: 5px;
  color: var(--faint); padding: 6px 4px 6px 7px;
}
.lang-mini .lang-now::after {
  content: ""; width: 0; height: 0; margin-top: 1px;
  border-left: 3.5px solid transparent; border-right: 3.5px solid transparent;
  border-top: 4px solid currentColor; opacity: 0.75;
  transition: transform 180ms var(--ease);
}
.lang-mini.open .lang-now { color: var(--navy); }
.lang-mini.open .lang-now::after { transform: rotate(180deg); }
header.light .lang-mini.open .lang-now { color: #fff; }
.lang-mini .lang-pop {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 6;
  display: none; flex-direction: column; min-width: 68px;
  background: var(--bg); border: 1px solid var(--line);
  box-shadow: 0 18px 40px -22px rgba(18, 19, 28, 0.45);
}
.lang-mini.open .lang-pop { display: flex; }
.lang-mini .lang-pop button { padding: 10px 14px; text-align: left; color: var(--muted); }
.lang-mini .lang-pop button:hover { background: var(--navy-soft); color: var(--ink); }
.lang-mini .lang-pop button.on { color: var(--navy); }
/* Dentro del desplegable el fondo siempre es claro, aunque la cabecera sea oscura */
header.light .lang-mini .lang-pop button { color: var(--muted); }
header.light .lang-mini .lang-pop button:hover { color: var(--ink); }
header.light .lang-mini .lang-pop button.on { color: var(--navy); }

/* Con el icono de WhatsApp en la barra, el grupo de la derecha va algo más junto */
@media (min-width: 1241px) { .nav-cta { gap: 18px; } }

/* Correo obligatorio en los formularios cortos de cierre y en el aviso rápido.
   Los inputs de esos formularios llevan el borde derecho quitado porque van
   pegados al botón; el del correo va en su propia línea y lo recupera. */
.xc-f .lf-mail, .sc-lf .lf-mail, .cc-lf .lf-mail, .trc-form .lf-mail {
  width: 100%; flex: none; margin: 10px 0 18px;
  border-right-width: 1px; border-right-style: solid;
}
.xc-f.done .lf-mail, .xc-f.done .lf-mail-l,
.sc-lf.done .lf-mail, .sc-lf.done .lf-mail-l,
.cc-lf.done .lf-mail, .cc-lf.done .lf-mail-l,
.trc-form.done .lf-mail, .trc-form.done .lf-mail-l { display: none; }

/* Campo obligatorio: un asterisco discreto. El input lleva required, así que los
   lectores de pantalla ya lo anuncian; el asterisco es solo la señal visual. */
.req { margin-left: 3px; color: var(--navy); font-weight: 600; }
.trc-form .req { color: #fff; }

/* Etiqueta de familia (renta fija / variable) en los productos de inversión */
.iv-fam { margin: 0 0 10px; }
.iv-fam span { display: inline-block; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; }

/* Aviso del límite de rentabilidad en el simulador de inversión */
.iv-lim { margin: 10px 0 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
