/* Tipografías alojadas en la propia web (antes Google Fonts). Licencia: assets/fonts/OFL.txt */
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 300 900; font-display: swap;
  src: url("assets/fonts/figtree-latin.woff2") format("woff2-variations"), url("assets/fonts/figtree-latin.woff2") format("woff2"); }
@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url("assets/fonts/bricolage-grotesque-latin.woff2") format("woff2-variations"), url("assets/fonts/bricolage-grotesque-latin.woff2") format("woff2"); }

/* =============================================================
   Polizalia · styles.css
   Diseño de la web de referencia (cristal, malla de fondo, titulares
   con degradado, formulario tipo Typeform) con la marca Polizalia:
   marino y mandarina, logo p🐢lizalia y Poli, la tortuga.
   Un solo tema claro, a propósito: los colores van todos explícitos.
   ============================================================= */

:root {
  color-scheme: light;
  /* Fondo y tinta */
  --bg:        #f4f7fb;
  --bg-warm:   #fdfcfa;
  --ink:       #0b1a2e;
  --ink-soft:  #4a5b72;
  --ink-mute:  #8593a8;

  /* Marca: marino y mandarina */
  --navy:      #0b2545;
  --navy-2:    #1b4f8c;   /* marino claro: enlaces, elegidos, degradados */
  --navy-3:    #3d6fb0;
  --mand:      #ff9f1c;   /* mandarina: solo llamadas a la acción y detalles */
  --mand-2:    #ffb347;
  --mand-dk:   #e67e00;
  --mand-ink:  #a85400;   /* mandarina legible sobre claro */
  --cta-ink:   #1a1206;
  --danger:    #d6453d;

  /* Poli, la tortuga */
  --poli-shell: #0b2545;
  --poli-lines: #ffffff;
  --poli-rim:   #163a66;
  --poli-limb:  #ff9f1c;
  --poli-eye:   #0b2545;

  /* Cristal */
  --glass:      rgba(255, 255, 255, .58);
  --glass-brd:  rgba(255, 255, 255, .75);
  --line:       rgba(11, 26, 46, .10);
  --line-soft:  rgba(11, 26, 46, .06);

  /* Sombras */
  --sh-sm: 0 2px 8px rgba(11, 37, 69, .06);
  --sh-md: 0 14px 34px -14px rgba(11, 37, 69, .20);
  --sh-lg: 0 34px 70px -28px rgba(11, 37, 69, .32);
  --sh-xl: 0 60px 110px -40px rgba(11, 37, 69, .42);

  /* Tipografía */
  --display: "Bricolage Grotesque", "Trebuchet MS", system-ui, sans-serif;
  --sans:    "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Geometría */
  --radius: 24px; --radius-sm: 14px; --radius-lg: 32px;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --maxw: 1220px;

  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in: cubic-bezier(.7, 0, .84, 0);
  --ease-soft: cubic-bezier(.25, .46, .45, .94);
  --ease-bounce: cubic-bezier(.34, 1.56, .64, 1);

  --grad-text: linear-gradient(100deg, var(--navy-2) 0%, var(--navy-3) 42%, #d96c00 100%);
  --grad-cta: linear-gradient(118deg, #ffad33 0%, var(--mand) 48%, #ff8400 115%);
  --grad-navy: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  font-family: var(--sans); font-size: 16px; line-height: 1.65; color: var(--ink);
  background: var(--bg); -webkit-font-smoothing: antialiased; overflow-x: clip;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
[hidden] { display: none !important; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
a { color: inherit; text-decoration: none; }
p { text-wrap: pretty; }
ul, ol { padding: 0; }
h1, h2, h3, h4 { font-family: var(--display); font-weight: 800; line-height: 1.06; letter-spacing: -.028em; text-wrap: balance; }
::selection { background: var(--navy-2); color: #fff; }
:focus-visible { outline: 3px solid rgba(255, 159, 28, .7); outline-offset: 3px; border-radius: 8px; }

.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: 880px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 9999; padding: .65rem 1.1rem; background: var(--navy); color: #fff; border-radius: 10px; font-weight: 600; }
.skip-link:focus { top: 1rem; }
.ph { border-bottom: 1px dashed currentColor; }

.glass { background: rgba(255, 255, 255, .86); border: 1px solid var(--glass-brd); border-radius: var(--radius); }
@supports (backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px)) {
  .glass { background: var(--glass); -webkit-backdrop-filter: blur(22px) saturate(180%); backdrop-filter: blur(22px) saturate(180%); }
}
.ico { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* ---------- Tipografía ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: .55rem; font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--mand); box-shadow: 0 0 0 4px rgba(255, 159, 28, .22); animation: dotPulse 2.6s var(--ease-soft) infinite; }
@keyframes dotPulse { 0%, 100% { box-shadow: 0 0 0 4px rgba(255, 159, 28, .22); } 50% { box-shadow: 0 0 0 7px rgba(255, 159, 28, .06); } }
.section-title { font-size: clamp(2rem, 4.6vw, 3.35rem); margin-top: .7rem; }
.section-title em, .hero-title em, .grad {
  font-style: normal; background: var(--grad-text);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
}
.section-sub { margin-top: 1.1rem; max-width: 62ch; font-size: clamp(1rem, 1.5vw, 1.09rem); color: var(--ink-soft); }
.legal-note { margin-top: 2.4rem; padding: 1rem 1.2rem; border-left: 3px solid var(--line); color: var(--ink-mute); font-size: .845rem; line-height: 1.6; max-width: 66ch; }
.legal-note a { text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Botones ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .72rem 1.3rem; border-radius: 999px; font-family: var(--display); font-weight: 700; font-size: .93rem; letter-spacing: -.01em; white-space: nowrap; transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out), background-color .3s, color .3s; }
.btn--lg { padding: .95rem 1.7rem; font-size: 1rem; }
.btn--cta { color: var(--cta-ink); background: var(--grad-cta); box-shadow: 0 12px 26px -12px rgba(230, 126, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .45); }
.btn--cta:hover { transform: translateY(-2px); box-shadow: 0 20px 38px -14px rgba(230, 126, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .45); }
.btn--navy { color: #fff; background: var(--grad-navy); box-shadow: 0 12px 26px -12px rgba(11, 37, 69, .7); }
.btn--navy:hover { transform: translateY(-2px); }
.btn--ghost { color: var(--ink); border: 1px solid var(--line); background: rgba(255, 255, 255, .55); }
.btn--ghost:hover { border-color: var(--navy-2); color: var(--navy-2); }
.btn--quiet { color: var(--ink); background: rgba(11, 26, 46, .05); }
.btn--quiet:hover { background: rgba(11, 26, 46, .09); }
.btn .ico { width: 18px; height: 18px; transition: transform .4s var(--ease-out); }
.btn:hover .ico { transform: translateX(3px); }

/* Botón gancho: el de «Calcular mi seguro», con destello */
.btn-hook {
  position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; gap: .9rem;
  padding: .6rem .6rem .6rem .7rem; border-radius: 999px; color: var(--cta-ink); text-align: left; cursor: pointer;
  background: var(--grad-cta);
  box-shadow: 0 18px 40px -16px rgba(230, 126, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .5);
  transition: transform .5s var(--ease-bounce); animation: hookHalo 3.4s ease-in-out infinite alternate;
}
.btn-hook::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .55) 48%, rgba(255, 255, 255, .15) 56%, transparent 70%); transform: translateX(-130%); animation: hookBrillo 6s var(--ease-soft) 1.2s infinite; }
.btn-hook > * { position: relative; z-index: 1; }
.btn-hook-ico { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, .32); border: 1px solid rgba(255, 255, 255, .55); overflow: hidden; }
.btn-hook-ico svg { width: 36px; }
.btn-hook-txt { display: grid; font-family: var(--display); font-weight: 800; font-size: 1.1rem; line-height: 1.2; letter-spacing: -.015em; white-space: nowrap; }
.btn-hook-txt small { margin-top: .12rem; font-family: var(--sans); font-weight: 600; font-size: .8rem; letter-spacing: 0; opacity: .82; }
.btn-hook-go { display: grid; place-items: center; flex: none; width: 48px; height: 48px; margin-left: .5rem; border-radius: 50%; overflow: hidden; background: var(--navy); color: #fff; box-shadow: 0 6px 16px -6px rgba(11, 37, 69, .55); transition: transform .5s var(--ease-bounce); }
.btn-hook-go .ico { animation: hookFlecha 6s var(--ease-out) 1.2s infinite; }
.btn-hook:hover { transform: translateY(-3px); }
.btn-hook:hover .btn-hook-go { transform: scale(1.08); }
.btn-hook:active { transform: translateY(0) scale(.985); }
@keyframes hookBrillo { 0% { transform: translateX(-130%); } 24%, 100% { transform: translateX(130%); } }
@keyframes hookFlecha { 0% { transform: none; opacity: 1; } 7% { transform: translateX(24px); opacity: 0; } 8% { transform: translateX(-24px); opacity: 0; } 17%, 100% { transform: none; opacity: 1; } }
@keyframes hookHalo { from { box-shadow: 0 18px 40px -16px rgba(230, 126, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .5); } to { box-shadow: 0 22px 52px -14px rgba(27, 79, 140, .55), inset 0 1px 0 rgba(255, 255, 255, .5); } }
.hook { margin-top: 1.9rem; }
.hook-trust { display: flex; flex-wrap: wrap; gap: .45rem 1.3rem; margin-top: 1.05rem; list-style: none; }
.hook-trust li { display: inline-flex; align-items: center; gap: .45rem; font-size: .86rem; font-weight: 600; color: var(--ink-soft); }
.hook-trust li::before { content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%; background: rgba(255, 159, 28, .22) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5 8.4 14 15 6.5' fill='none' stroke='%230b2545' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat; }

/* ---------- Malla de fondo animada ---------- */
.mesh { position: fixed; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; background: var(--bg); }
.mesh-blob { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .42; will-change: transform; }
.mesh-blob--a { width: 46vw; height: 46vw; min-width: 380px; min-height: 380px; top: -12vh; left: -8vw; background: radial-gradient(circle, #3d6fb0 0%, transparent 68%); animation: meshA 34s var(--ease-soft) infinite; }
.mesh-blob--b { width: 40vw; height: 40vw; min-width: 340px; min-height: 340px; top: 30vh; right: -10vw; background: radial-gradient(circle, #ffb347 0%, transparent 68%); opacity: .38; animation: meshB 41s var(--ease-soft) infinite; }
.mesh-blob--c { width: 36vw; height: 36vw; min-width: 300px; min-height: 300px; bottom: -14vh; left: 26vw; background: radial-gradient(circle, #9dbbe3 0%, transparent 68%); opacity: .45; animation: meshC 47s var(--ease-soft) infinite; }
@keyframes meshA { 0%, 100% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(8vw, 10vh, 0) scale(1.18); } }
@keyframes meshB { 0%, 100% { transform: translate3d(0, 0, 0) scale(1.05); } 50% { transform: translate3d(-9vw, -8vh, 0) scale(.9); } }
@keyframes meshC { 0%, 100% { transform: translate3d(0, 0, 0) scale(.95); } 50% { transform: translate3d(6vw, -11vh, 0) scale(1.2); } }

/* =============================================================
   CABECERA · estructura de Unit Seguros en la píldora de cristal
   INICIO · CONÓCENOS · OFICINAS · SEGUROS · SERVICIOS · NOTICIAS · CONTACTA
   ============================================================= */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; padding: .85rem var(--gutter) 0; transition: padding .45s var(--ease-out); }
.nav-inner { position: relative; max-width: var(--maxw); margin-inline: auto; display: flex; align-items: center; gap: 1rem; padding: .45rem .45rem .45rem 1.2rem; border-radius: 999px; box-shadow: var(--sh-sm); transition: box-shadow .45s var(--ease-out); }
.nav.is-stuck { padding-top: .5rem; }
.nav.is-stuck .nav-inner { box-shadow: var(--sh-md); }

/* Logo: la «o» de polizalia es Poli */
.logo { display: inline-flex; align-items: center; flex: none; }
.wordmark { font-family: var(--display); font-weight: 800; font-size: 1.62rem; letter-spacing: -.03em; line-height: 1; white-space: nowrap; color: var(--navy); }
.o-shell { display: inline-block; height: .8em; width: auto; vertical-align: -.08em; margin: 0 .01em 0 .03em; transition: transform .5s var(--ease-bounce); }
.logo:hover .o-shell { transform: translateY(-2px) rotate(-6deg); }

.nav-links { display: none; align-items: center; gap: .1rem; margin-left: auto; list-style: none; }
.nav-item { position: relative; }
.nav-item--mega { position: static; }
.nav-link {
  position: relative; display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap;
  padding: .62rem .72rem; border-radius: 999px;
  font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--navy-2);
  transition: color .3s var(--ease-out), background-color .3s var(--ease-out);
}
.nav-link .ico { width: 15px; height: 15px; stroke-width: 2.2; }
.nav-link .chev { width: 13px; height: 13px; transition: transform .35s var(--ease-out); }
.nav-link:hover, .nav-item.is-open > .nav-link { color: var(--navy); background: rgba(11, 26, 46, .055); }
.nav-item.is-open > .nav-link .chev { transform: rotate(180deg); }
/* Activo: la raya encima, como en la cabecera de referencia, en mandarina */
.nav-link[aria-current="page"], .nav-link.is-current { color: var(--navy); }
.nav-link[aria-current="page"]::before, .nav-link.is-current::before {
  content: ""; position: absolute; left: .72rem; right: .72rem; top: .18rem; height: 2.5px; border-radius: 2px; background: var(--mand);
}
.nav-actions { display: none; align-items: center; gap: .5rem; margin-left: auto; }
.nav-cta { padding: .66rem 1.15rem; font-size: .88rem; }

.nav-burger { display: grid; gap: 5px; margin-left: auto; padding: .78rem; border-radius: 50%; background: rgba(11, 26, 46, .05); }
.nav-burger span { display: block; width: 18px; height: 2px; border-radius: 2px; background: var(--navy); transition: transform .4s var(--ease-out); }
.nav-burger[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }

/* ---- Megamenú SEGUROS: categoría → sector → seguro ---- */
.mega {
  position: absolute; top: calc(100% + .7rem); left: 0; right: 0; z-index: 5;
  display: grid; grid-template-columns: 290px minmax(0, 1fr); overflow: hidden;
  border-radius: 26px; box-shadow: var(--sh-xl); background: #fdfcfa;
  border: 1px solid rgba(255, 255, 255, .9);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .28s var(--ease-out), transform .38s var(--ease-out), visibility 0s linear .38s;
}
.nav-item.is-open > .mega, .nav-item.is-open > .drop { opacity: 1; visibility: visible; transform: none; transition: opacity .28s var(--ease-out), transform .38s var(--ease-out), visibility 0s; }
.mega-side {
  display: flex; flex-direction: column; gap: .3rem; padding: 1.1rem; color: #fff;
  background: radial-gradient(120% 70% at 0% 0%, rgba(61, 111, 176, .65), transparent 62%), radial-gradient(100% 60% at 100% 100%, rgba(255, 159, 28, .35), transparent 62%), var(--navy);
}
.mega-side-t { padding: .3rem .6rem .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.mega-cat { display: flex; align-items: center; gap: .75rem; width: 100%; padding: .65rem .7rem; border-radius: 16px; text-align: left; color: #fff; transition: background-color .25s; }
.mega-cat .mega-cat-ico { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 12px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); }
.mega-cat .ico { width: 20px; height: 20px; }
.mega-cat b { display: block; font-family: var(--display); font-size: .98rem; letter-spacing: -.01em; }
.mega-cat small { display: block; font-size: .76rem; color: rgba(255, 255, 255, .62); line-height: 1.3; }
.mega-cat .chev-r { margin-left: auto; width: 16px; height: 16px; opacity: .5; transition: transform .3s, opacity .3s; }
.mega-cat:hover, .mega-cat.is-active { background: rgba(255, 255, 255, .1); }
.mega-cat.is-active .mega-cat-ico { background: var(--mand); border-color: var(--mand); color: var(--navy); }
.mega-cat.is-active .chev-r { opacity: 1; transform: translateX(3px); }
.mega-all { margin-top: auto; padding: .7rem; font-size: .84rem; font-weight: 700; color: var(--mand-2); display: inline-flex; align-items: center; gap: .4rem; }
.mega-all:hover { color: #fff; }
.mega-main { min-width: 0; padding: 1.4rem 1.6rem 1.3rem; max-height: min(560px, calc(100vh - 130px)); overflow-y: auto; }
.mega-panel { animation: megaIn .35s var(--ease-out); }
@keyframes megaIn { from { opacity: 0; transform: translateX(10px); } }
.mega-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.mega-head a { font-family: var(--display); font-weight: 800; font-size: 1.25rem; letter-spacing: -.02em; color: var(--navy); }
.mega-head a:hover { color: var(--navy-2); }
.mega-head span { font-size: .8rem; color: var(--ink-mute); }
.mega-list { list-style: none; columns: 2; column-gap: 1.6rem; }
.mega-list li { break-inside: avoid; }
.mega-list a { display: flex; align-items: center; gap: .5rem; padding: .42rem .55rem; margin-inline: -.55rem; border-radius: 10px; font-size: .9rem; font-weight: 600; color: var(--ink-soft); transition: background-color .2s, color .2s; }
.mega-list a::before { content: ""; width: 6px; height: 6px; flex: none; border-radius: 50%; background: rgba(27, 79, 140, .28); transition: background-color .2s; }
.mega-list a:hover { color: var(--navy); background: rgba(27, 79, 140, .07); }
.mega-list a:hover::before { background: var(--mand); }
.mega-list a.has-page::after { content: "Ver"; margin-left: auto; font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--mand-ink); background: rgba(255, 159, 28, .16); padding: .1rem .4rem; border-radius: 6px; }
.mega-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem 1.4rem; }
@media (min-width: 1240px) { .mega-groups { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem 1.1rem; } .mega-group .mega-list a { font-size: .8rem; line-height: 1.3; } }
.mega-group h4 { display: flex; align-items: center; gap: .45rem; margin-bottom: .35rem; font-size: .78rem; font-family: var(--sans); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--navy); }
.mega-group h4 a:hover { color: var(--navy-2); text-decoration: underline; }
.mega-group h4 .ico { width: 16px; height: 16px; color: var(--mand-dk); }
.mega-group .mega-list { columns: 1; }
.mega-group .mega-list a.has-page::after { display: none; }
.mega-list a.has-page::before { background: var(--mand); }
.mega-group .mega-list a { font-size: .84rem; padding-block: .3rem; }
.mega-promo { display: flex; align-items: center; gap: 1rem; margin-top: 1.2rem; padding: .8rem 1rem; border-radius: 18px; background: rgba(255, 159, 28, .1); border: 1px solid rgba(255, 159, 28, .3); }
.mega-promo .poli-sm { width: 74px; flex: none; }
.mega-promo p { font-size: .88rem; color: var(--ink-soft); line-height: 1.4; }
.mega-promo p b { display: block; color: var(--navy); font-family: var(--display); font-size: .98rem; }
.mega-promo .btn { margin-left: auto; }

/* Desplegable sencillo (SERVICIOS) */
.drop {
  position: absolute; top: calc(100% + .7rem); left: 50%; z-index: 5; width: 520px; margin-left: -260px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 1.2rem; border-radius: 22px;
  background: #fdfcfa; border: 1px solid rgba(11, 26, 46, .06); box-shadow: var(--sh-xl);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .28s var(--ease-out), transform .38s var(--ease-out), visibility 0s linear .38s;
}
.drop h4 { margin-bottom: .35rem; font-family: var(--sans); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-mute); }
.drop a { display: flex; align-items: center; gap: .6rem; padding: .55rem .6rem; border-radius: 12px; font-size: .9rem; font-weight: 600; color: var(--ink-soft); }
.drop a .ico { width: 18px; height: 18px; color: var(--navy-2); }
.drop a:hover { color: var(--navy); background: rgba(27, 79, 140, .07); }

/* ---- Menú móvil: acordeón Seguros → categoría → sector → seguro ---- */
.nav-mobile { max-width: var(--maxw); margin: .5rem auto 0; padding: .8rem; box-shadow: var(--sh-lg); max-height: calc(100vh - 100px); max-height: calc(100dvh - 100px); overflow-y: auto; }
.nav-mobile > a, .nav-mobile summary { display: flex; align-items: center; gap: .65rem; padding: .78rem .9rem; border-radius: var(--radius-sm); font-weight: 700; font-size: .92rem; letter-spacing: .03em; text-transform: uppercase; color: var(--navy-2); cursor: pointer; list-style: none; }
.nav-mobile summary::-webkit-details-marker { display: none; }
.nav-mobile summary .chev { margin-left: auto; width: 16px; height: 16px; transition: transform .3s; }
.nav-mobile details[open] > summary .chev { transform: rotate(180deg); }
.nav-mobile > a:hover, .nav-mobile summary:hover { background: rgba(11, 26, 46, .05); }
.nav-mobile details details summary { text-transform: none; letter-spacing: -.005em; font-size: .95rem; color: var(--navy); padding-left: 1.4rem; }
.nav-mobile details details details summary { padding-left: 2.2rem; font-size: .88rem; color: var(--ink-soft); }
.nav-mobile .m-list { list-style: none; display: grid; padding: .1rem 0 .5rem 2rem; }
.nav-mobile details details details .m-list { padding-left: 2.8rem; }
.nav-mobile .m-list a { display: block; padding: .45rem .6rem; border-radius: 10px; font-size: .9rem; font-weight: 600; color: var(--ink-soft); }
.nav-mobile .m-list a:hover { background: rgba(27, 79, 140, .07); color: var(--navy); }
.nav-mobile .m-list a { display: flex !important; align-items: center; gap: .5rem; }
.nav-mobile .m-list a.has-page::after { content: "Ver"; font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--mand-ink); background: rgba(255, 159, 28, .16); padding: .1rem .4rem; border-radius: 6px; }
.nav-mobile .m-all { font-weight: 800 !important; color: var(--navy-2) !important; }
.nav-mobile .btn { margin-top: .6rem; width: 100%; }

/* =============================================================
   HERO
   ============================================================= */
.hero { position: relative; padding: 8.4rem 0 3rem; }
.hero-top { display: grid; gap: 2.4rem; align-items: center; }
.hero-intro { max-width: 44rem; }
.hero-title { font-size: clamp(2.2rem, 5vw, 3.6rem); margin-top: 1.1rem; letter-spacing: -.035em; }
.hero-title em { display: block; }
.hero-sub { margin-top: 1.35rem; max-width: 54ch; font-size: clamp(1.02rem, 1.6vw, 1.13rem); color: var(--ink-soft); }
.miga { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.2rem; font-size: .82rem; color: var(--ink-mute); }
.miga a { color: var(--ink-soft); }
.miga a:hover { color: var(--navy-2); text-decoration: underline; }
.hero-media { position: relative; min-width: 0; }

/* Poli encima de la tarjeta, con bocadillo */
.poli { display: block; line-height: 0; }
.poli svg { width: 100%; height: auto; overflow: visible; }
.hero-poli { position: absolute; z-index: 3; right: 1.4rem; top: -100px; width: 150px; pointer-events: none; }
.hero-poli--gorra { width: 180px; }
.hero-bubble {
  position: absolute; z-index: 3; right: 190px; top: -88px; max-width: 230px;
  padding: .7rem 1rem; border-radius: 18px 18px 4px 18px; background: var(--navy); color: #fff;
  font-family: var(--display); font-weight: 800; font-size: .98rem; line-height: 1.2; letter-spacing: -.01em;
  box-shadow: var(--sh-md);
}
.hero-media.has-poli { margin-top: 92px; }

/* ---- Vista previa del cuestionario ---- */
.fx-mini { display: grid; grid-template-columns: minmax(0, 1fr); border-radius: 26px; overflow: hidden; isolation: isolate; background: var(--bg-warm); border: 1px solid rgba(255, 255, 255, .8); box-shadow: var(--sh-xl); animation: flotaTarjeta 7s var(--ease-soft) infinite; }
@keyframes flotaTarjeta { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.fx-mini-side { display: none; }
.fx-mini-t { margin-bottom: .55rem; font-family: var(--display); font-weight: 800; font-size: 1.05rem; letter-spacing: -.02em; }
.fx-mini-caso { display: grid; list-style: none; }
.fx-mini-caso li { display: flex; align-items: center; gap: .7rem; padding: .6rem 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.fx-mini-caso li:last-child { border-bottom: 0; }
.fx-mini-dot { flex: none; width: 18px; height: 18px; border-radius: 50%; border: 1.5px dashed rgba(255, 255, 255, .35); }
.fx-mini-caso li.is-done .fx-mini-dot { border: 0; background: var(--mand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5 8.4 14 15 6.5' fill='none' stroke='%230b2545' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat; }
.fx-mini-caso li > span:last-child { display: grid; font-family: var(--display); font-weight: 700; font-size: .92rem; line-height: 1.25; color: rgba(255, 255, 255, .88); }
.fx-mini-caso li small { font-family: var(--sans); font-weight: 600; font-size: .7rem; color: rgba(255, 255, 255, .55); }
.fx-mini-caso li.is-done > span:last-child b { color: #fff; }
.fx-mini-main { min-width: 0; padding: 1.3rem 1.3rem 1.15rem; }
.fx-mini-top { display: flex; align-items: center; gap: .7rem; margin-bottom: 1rem; }
.fx-mini-bar { flex: 1; height: 5px; border-radius: 99px; overflow: hidden; background: rgba(11, 26, 46, .07); }
.fx-mini-bar span { display: block; width: 17%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--navy-2), var(--mand)); }
.fx-mini-count { font-size: .72rem; font-weight: 700; color: var(--ink-mute); white-space: nowrap; }
.fx-mini-q { font-family: var(--display); font-weight: 800; color: var(--ink); font-size: clamp(1.15rem, 1.8vw, 1.38rem); line-height: 1.2; letter-spacing: -.025em; }
.fx-mini-opts { display: grid; gap: .55rem; margin-top: 1rem; }
.fx-mini-opts--2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
@media (min-width: 560px) { .fx-mini-opts--2 .fx-mini-opt { flex-direction: column; align-items: flex-start; gap: .55rem; padding: .75rem .8rem; } .fx-mini-opts--2 .fx-txt small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } }
.fx-mini-opt { display: flex; align-items: center; gap: .7rem; padding: .62rem .7rem; border-radius: 15px; color: inherit; background: #fff; border: 1.5px solid rgba(11, 26, 46, .1); text-align: left; width: 100%; transition: border-color .25s, box-shadow .3s, transform .45s var(--ease-bounce); }
.fx-mini-opt .fx-ico { width: 38px; height: 38px; border-radius: 12px; }
.fx-mini-opt .fx-txt strong { font-size: .93rem; }
.fx-mini-opt .fx-txt small { font-size: .74rem; }
.fx-mini-opt:hover { border-color: rgba(27, 79, 140, .55); transform: translateY(-2px); box-shadow: 0 14px 28px -18px rgba(27, 79, 140, .6); }
.fx-mini-opt:hover .fx-ico { transform: rotate(-6deg) scale(1.05); }
.fx-mini-pie { padding: 1rem 1.3rem 1.15rem; }
.fx-mini-pie .btn-hook { display: flex; width: 100%; }
.fx-mini-pie .btn-hook-go { margin-left: auto; }
.fx-mini-pie .hook-trust { justify-content: center; margin-top: .8rem; }
.fx-mini-pie .hook-trust li { font-size: .8rem; }
@media (min-width: 560px) {
  .fx-mini { grid-template-columns: 38% minmax(0, 1fr); grid-template-areas: "side main" "pie pie"; }
  .fx-mini-side { grid-area: side; display: flex; flex-direction: column; padding: 1.3rem 1.1rem 3.2rem; color: #fff; border-top-left-radius: 25px;
    background: radial-gradient(120% 70% at 0% 0%, rgba(61, 111, 176, .7), transparent 62%), radial-gradient(100% 60% at 100% 100%, rgba(255, 159, 28, .38), transparent 62%), var(--navy);
    -webkit-mask-image: linear-gradient(180deg, #000 76%, rgba(0, 0, 0, .35) 90%, transparent 100%); mask-image: linear-gradient(180deg, #000 76%, rgba(0, 0, 0, .35) 90%, transparent 100%); }
  .fx-mini-caso { flex: 1; align-content: center; }
  .fx-mini-main { grid-area: main; }
  .fx-mini-pie { grid-area: pie; position: relative; z-index: 1; margin-top: -2.4rem; }
}
@media (max-width: 559px) {
  .fx-mini-side { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1.15rem; color: #fff;
    background: radial-gradient(120% 160% at 0% 0%, rgba(61, 111, 176, .7), transparent 62%), radial-gradient(90% 160% at 100% 100%, rgba(255, 159, 28, .45), transparent 62%), var(--navy); }
  .fx-mini-t { margin: 0; display: grid; font-size: 1rem; line-height: 1.15; }
  .fx-mini-t::after { content: attr(data-sub); margin-top: .15rem; font-family: var(--sans); font-weight: 500; font-size: .72rem; color: rgba(255, 255, 255, .62); }
  .fx-mini-caso { display: flex; gap: .45rem; }
  .fx-mini-caso li { padding: 0; border: 0; }
  .fx-mini-caso li > span:last-child { display: none; }
  .fx-mini-caso li:not(.is-done):first-of-type .fx-mini-dot, .fx-mini-caso li.is-next .fx-mini-dot { border: 0; background: var(--mand); box-shadow: 0 0 0 4px rgba(255, 159, 28, .3); animation: dotPulse 2.6s infinite; }
  .fx-mini-top { display: none; }
  .fx-mini-main { padding: 1.1rem 1rem 1rem; }
  .fx-mini-pie { padding: .9rem 1rem 1rem; }
  .fx-mini-pie .btn-hook-ico { display: none; }
  .fx-mini-opts--2 { grid-template-columns: 1fr; }
}

/* =============================================================
   SECCIONES
   ============================================================= */
.section { position: relative; padding: clamp(3rem, 6vw, 4.6rem) 0; }
.section--tint::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .62) 14%, rgba(255, 255, 255, .62) 86%, rgba(255, 255, 255, 0) 100%); }
.section-head { margin-bottom: clamp(2.2rem, 5vw, 3.4rem); max-width: 72ch; }
.chooser-label { font-family: var(--display); font-size: .9rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-soft); margin: 3rem 0 1.1rem; }

/* ---- Tarjetas de categoría (como las de rol de la referencia) ---- */
.chooser { display: grid; gap: 1.1rem; }
.cat-card { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 1.6rem 1.5rem 1.4rem; box-shadow: var(--sh-md); transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out); }
.cat-card:hover { transform: translateY(-5px); box-shadow: var(--sh-lg); }
.cat-card-glow { position: absolute; top: -40%; right: -25%; width: 70%; aspect-ratio: 1; border-radius: 50%; filter: blur(46px); opacity: .5; pointer-events: none; transition: opacity .6s, transform .6s; }
.cat-card--a .cat-card-glow { background: radial-gradient(circle, #3d6fb0 0%, transparent 70%); }
.cat-card--b .cat-card-glow { background: radial-gradient(circle, #ffb347 0%, transparent 70%); }
.cat-card:hover .cat-card-glow { opacity: .78; transform: scale(1.12); }
.cat-card-ico { position: relative; display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 1.1rem; border-radius: 16px; }
.cat-card--a .cat-card-ico { color: #fff; background: var(--grad-navy); }
.cat-card--b .cat-card-ico { color: var(--navy); background: linear-gradient(135deg, var(--mand), var(--mand-2)); }
.cat-card-ico .ico { width: 26px; height: 26px; }
.cat-card h3 { position: relative; font-size: clamp(1.35rem, 2.3vw, 1.65rem); margin-bottom: .45rem; }
.cat-card h3 span { display: block; margin-top: .3rem; font-family: var(--sans); font-size: .74rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-mute); }
.cat-card > p { position: relative; font-size: .92rem; color: var(--ink-soft); }
.cat-card-list { position: relative; list-style: none; display: grid; gap: .45rem; margin: 1rem 0 1.4rem; }
.cat-card-list li { position: relative; padding-left: 1.4rem; font-size: .88rem; color: var(--ink); }
.cat-card-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; border-radius: 50%; background: rgba(27, 79, 140, .3); }
.cat-card--b .cat-card-list li::before { background: rgba(255, 159, 28, .55); }
.cat-card-cta { position: relative; margin-top: auto; display: inline-flex; align-items: center; gap: .45rem; font-family: var(--display); font-weight: 700; font-size: .94rem; color: var(--navy-2); transition: gap .4s var(--ease-out); }
.cat-card--b .cat-card-cta { color: var(--mand-ink); }
.cat-card:hover .cat-card-cta { gap: .8rem; }
.cat-card-cta .ico { width: 18px; height: 18px; }
.chooser-nota { margin-top: 1.4rem; font-size: .88rem; color: var(--ink-mute); }
.chooser-nota a, .chooser-nota button { color: var(--navy-2); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ---- Banda destacada (Erasmus) ---- */
.band { position: relative; overflow: hidden; display: grid; gap: 1.5rem; align-items: center; padding: clamp(1.6rem, 4vw, 2.6rem); border-radius: var(--radius-lg); color: #fff; box-shadow: var(--sh-lg);
  background: radial-gradient(90% 120% at 0% 0%, rgba(61, 111, 176, .75), transparent 60%), radial-gradient(70% 100% at 100% 100%, rgba(255, 159, 28, .45), transparent 60%), var(--navy); }
.band .eyebrow { color: rgba(255, 255, 255, .7); }
.band h2 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); margin-top: .6rem; }
.band h2 em { font-style: normal; color: var(--mand); }
.band p { margin-top: .8rem; max-width: 56ch; color: rgba(255, 255, 255, .82); }
.band-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.4rem; }
.band .btn--ghost { color: #fff; border-color: rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .06); }
.band .btn--ghost:hover { color: #fff; border-color: #fff; }
.band-poli { width: min(300px, 70%); justify-self: center; --poli-shell: #fff; --poli-lines: #0b2545; --poli-rim: #c9d6e6; }

/* ---- Tarjetas con foto ---- */
.cards-grid { display: grid; gap: 1.2rem; grid-template-columns: 1fr; }
.card { overflow: hidden; box-shadow: var(--sh-md); display: flex; flex-direction: column; transition: transform .55s var(--ease-out), box-shadow .55s var(--ease-out); }
.card:hover { box-shadow: var(--sh-lg); }
.card-media { overflow: hidden; background: #e8edf5; }
.card-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 1s var(--ease-out), filter .6s; }
.card:hover .card-media img { transform: scale(1.06); filter: saturate(1.08); }
.card-body { padding: 1.25rem 1.35rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.card-title { font-size: 1.28rem; margin-bottom: .45rem; }
.card-title a:hover { color: var(--navy-2); }
.card-law { font-size: .88rem; color: var(--ink-soft); line-height: 1.55; }
.chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .95rem; list-style: none; }
.chips a, .chips span { display: inline-block; padding: .26rem .65rem; border-radius: 999px; font-size: .75rem; font-weight: 700; color: var(--navy-2); background: rgba(27, 79, 140, .08); border: 1px solid rgba(27, 79, 140, .16); transition: background-color .25s, color .25s; }
.chips a:hover { background: var(--navy-2); color: #fff; }

/* ---- Dos herramientas con foto ---- */
.tools { display: grid; gap: 1.3rem; }
.tool { overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--sh-md); }
.tool-media { overflow: hidden; }
.tool-media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform 1s var(--ease-out); }
.tool:hover .tool-media img { transform: scale(1.04); }
.tool-body { padding: 1.5rem 1.6rem 1.7rem; display: flex; flex-direction: column; flex: 1; }
.tool-tag { align-self: flex-start; padding: .25rem .7rem; margin-bottom: .8rem; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--navy-2); background: rgba(27, 79, 140, .1); border: 1px solid rgba(27, 79, 140, .2); }
.tool-tag--alt { color: var(--mand-ink); background: rgba(255, 159, 28, .14); border-color: rgba(255, 159, 28, .34); }
.tool-body h3 { font-size: clamp(1.25rem, 2.2vw, 1.5rem); margin-bottom: .7rem; }
.tool-body > p { font-size: .93rem; color: var(--ink-soft); }
.tool-body .btn { margin-top: auto; align-self: flex-start; }
.ticks { list-style: none; display: grid; gap: .45rem; margin: 1.1rem 0 1.4rem; }
.ticks li { position: relative; padding-left: 1.6rem; font-size: .9rem; }
.ticks li::before { content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 18px; border-radius: 50%; background: rgba(255, 159, 28, .22) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5 8.4 14 15 6.5' fill='none' stroke='%230b2545' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat; }

/* ---- Compromisos: lo que frustra / cómo trabajamos ---- */
.compare { overflow: hidden; box-shadow: var(--sh-md); }
.compare-head { display: none; padding: 1rem 1.5rem; border-bottom: 1px solid var(--line); font-size: .78rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.compare-head span:first-child { color: var(--ink-mute); }
.compare-head span:last-child { color: var(--navy-2); }
.compare-row { display: grid; gap: .5rem; padding: 1.1rem 1.3rem; border-bottom: 1px solid var(--line-soft); }
.compare-row:last-child { border-bottom: 0; }
.compare-bad, .compare-good { position: relative; padding-left: 1.5rem; font-size: .93rem; }
.compare-bad { color: var(--ink-mute); }
.compare-bad::before { content: ""; position: absolute; left: 0; top: .45em; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid #c3cad6; }
.compare-good::before { content: ""; position: absolute; left: 0; top: .4em; width: 11px; height: 11px; border-radius: 50%; background: var(--mand); box-shadow: 0 0 0 3px rgba(255, 159, 28, .22); }
.compare-good strong { font-weight: 700; }

/* ---- Pasos ---- */
.steps { list-style: none; display: grid; gap: 1.1rem; }
.step { padding: 1.5rem 1.5rem 1.6rem; box-shadow: var(--sh-sm); transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out); }
.step:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.step-num { display: inline-block; margin-bottom: .8rem; font-family: var(--display); font-weight: 800; font-size: 2rem; letter-spacing: -.04em; background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.step h3 { font-size: 1.12rem; margin-bottom: .45rem; }
.step p { font-size: .9rem; color: var(--ink-soft); }

/* ---- Casos frecuentes ---- */
.casos { display: grid; gap: 1.1rem; }
.caso { padding: 1.6rem 1.6rem 1.5rem; box-shadow: var(--sh-sm); transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out); }
.caso:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.caso-num { display: block; margin-bottom: .6rem; font-family: var(--display); font-weight: 800; font-size: 1.35rem; color: var(--navy-2); }
.caso h3 { font-size: 1.08rem; margin-bottom: .55rem; }
.caso p { font-size: .9rem; color: var(--ink-soft); }
.caso-cubre { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.caso-cubre b { color: var(--mand-ink); }

/* ---- Preguntas ---- */
.faq { display: grid; gap: .7rem; }
.faq-item { overflow: hidden; box-shadow: var(--sh-sm); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.05rem 1.3rem; cursor: pointer; list-style: none; font-family: var(--display); font-weight: 700; font-size: 1rem; letter-spacing: -.015em; transition: color .3s; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--navy-2); }
.faq-plus { position: relative; width: 16px; height: 16px; flex: none; }
.faq-plus::before, .faq-plus::after { content: ""; position: absolute; top: 50%; left: 0; width: 16px; height: 2px; border-radius: 2px; background: var(--mand-dk); transform: translateY(-50%); transition: transform .42s var(--ease-out), opacity .3s; }
.faq-plus::after { transform: translateY(-50%) rotate(90deg); }
.faq-item[open] .faq-plus::after { transform: translateY(-50%) rotate(0deg); opacity: 0; }
.faq-body { padding: 0 1.3rem 1.25rem; }
.faq-body p { font-size: .94rem; color: var(--ink-soft); }
.faq-body p + p { margin-top: .7rem; }
.faq-body a { color: var(--navy-2); text-decoration: underline; text-underline-offset: 2px; }
.faq-item[open] .faq-body { animation: faqIn .45s var(--ease-out); }
@keyframes faqIn { from { opacity: 0; transform: translateY(-6px); } }

/* ---- Cierre ---- */
.cta-final { position: relative; overflow: hidden; display: grid; gap: 2rem; align-items: center; padding: clamp(1.8rem, 5vw, 3.2rem); box-shadow: var(--sh-lg); }
.cta-final .section-title { font-size: clamp(1.9rem, 4vw, 2.8rem); }
.cta-final-poli { width: min(280px, 70%); justify-self: center; }
.cta-final-list { list-style: none; display: grid; gap: .8rem; }
.cta-final-list li { display: flex; align-items: center; gap: .75rem; font-size: .95rem; color: var(--ink-soft); }
.cta-final-list .ico { width: 20px; height: 20px; color: var(--navy-2); }
.cta-final-btns { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin-top: 1.8rem; }

/* ---- Pie ---- */
.footer { margin-top: 2rem; padding: 3.5rem 0 2rem; border-top: 1px solid var(--line); background: rgba(255, 255, 255, .55); }
.footer-top { display: grid; gap: 2rem; margin-bottom: 2.5rem; }
.footer-brand .wordmark { font-size: 1.5rem; }
.footer-brand p { margin-top: .8rem; font-size: .88rem; color: var(--ink-soft); max-width: 40ch; }
.footer-col { display: grid; gap: .5rem; align-content: start; }
.footer-col h3 { font-family: var(--sans); font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: .2rem; }
.footer-col a, .footer-col span { font-size: .89rem; color: var(--ink-soft); }
.footer-col a:hover { color: var(--navy-2); }
.footer-legal { padding: 1.1rem 1.3rem; border-radius: var(--radius-sm); background: rgba(11, 26, 46, .04); border: 1px solid var(--line-soft); font-size: .8rem; line-height: 1.6; color: var(--ink-mute); }
.footer-copy { margin-top: 1.6rem; font-size: .8rem; color: var(--ink-mute); text-align: center; }

/* ---- Botón de dudas con Poli ---- */
.help { position: fixed; right: clamp(.9rem, 3vw, 1.7rem); bottom: calc(clamp(.9rem, 3vw, 1.7rem) + env(safe-area-inset-bottom, 0px)); z-index: 200; }
.help-launch { position: relative; display: flex; align-items: center; gap: .55rem; padding: .45rem 1.2rem .45rem .5rem; border-radius: 999px; color: #fff; background: var(--grad-navy); box-shadow: 0 16px 34px -12px rgba(11, 37, 69, .7); transition: transform .5s var(--ease-out), opacity .3s; }
.help-launch:hover { transform: translateY(-3px) scale(1.02); }
.help-launch-av { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .12); --poli-shell: #fff; --poli-lines: #0b2545; --poli-rim: #c9d6e6; }
.help-launch-av svg { width: 32px; }
.help-launch-txt { font-family: var(--display); font-weight: 700; font-size: .9rem; }
.help-launch-pulse { position: absolute; inset: 0; border-radius: 999px; border: 2px solid rgba(255, 159, 28, .6); animation: chatPulse 3.2s var(--ease-soft) infinite; pointer-events: none; }
@keyframes chatPulse { 0% { transform: scale(1); opacity: .7; } 70%, 100% { transform: scale(1.22); opacity: 0; } }
.help.is-open .help-launch { transform: scale(.85); opacity: 0; pointer-events: none; }
.help-panel { position: absolute; right: 0; bottom: 0; width: min(370px, calc(100vw - 1.8rem)); overflow: hidden; box-shadow: var(--sh-xl); animation: chatIn .45s var(--ease-out); background: rgba(253, 252, 250, .97); }
@keyframes chatIn { from { opacity: 0; transform: translateY(16px) scale(.97); } }
.help-head { display: flex; align-items: center; gap: .8rem; padding: 1rem 1rem .9rem; color: #fff; background: radial-gradient(120% 140% at 0% 0%, rgba(61, 111, 176, .7), transparent 62%), radial-gradient(90% 140% at 100% 100%, rgba(255, 159, 28, .4), transparent 62%), var(--navy); }
.help-head .poli { width: 64px; flex: none; --poli-shell: #fff; --poli-lines: #0b2545; --poli-rim: #c9d6e6; }
.help-head b { display: block; font-family: var(--display); font-size: 1.02rem; }
.help-head span { font-size: .8rem; color: rgba(255, 255, 255, .72); }
.help-close { margin-left: auto; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .12); }
.help-body { display: grid; gap: .5rem; padding: 1rem; }
.help-body a, .help-body button { display: flex; align-items: center; gap: .75rem; width: 100%; padding: .75rem .85rem; border-radius: 14px; text-align: left; background: #fff; border: 1px solid var(--line); font-weight: 600; font-size: .92rem; transition: border-color .25s, transform .3s var(--ease-out); }
.help-body a:hover, .help-body button:hover { border-color: var(--navy-2); transform: translateY(-1px); }
.help-body .ico { color: var(--navy-2); }
.help-body small { display: block; font-weight: 500; font-size: .78rem; color: var(--ink-mute); }
.help-body .help-main { color: var(--cta-ink); background: var(--grad-cta); border: 0; }
.help-body .help-main .ico { color: var(--navy); }

/* ---- Barra fija de captación (móvil y tableta) ---- */
.barra-cta { display: none; }
@media (max-width: 1099px) {
  .barra-cta { display: block; position: fixed; z-index: 190; left: clamp(.9rem, 3vw, 1.7rem); right: calc(clamp(.9rem, 3vw, 1.7rem) + 62px); bottom: calc(clamp(.9rem, 3vw, 1.7rem) + env(safe-area-inset-bottom, 0px)); max-width: 460px; transform: translateY(calc(100% + 2.5rem)); opacity: 0; visibility: hidden; transition: transform .65s var(--ease-bounce), opacity .3s, visibility 0s linear .65s; }
  .barra-cta.is-visible { transform: none; opacity: 1; visibility: visible; transition: transform .65s var(--ease-bounce), opacity .3s, visibility 0s; }
  body:has(.help.is-open) .barra-cta { opacity: 0; visibility: hidden; }
}
.btn-hook--barra { display: flex; width: 100%; min-height: 52px; justify-content: space-between; gap: .5rem; padding: .2rem .2rem .2rem 1.1rem; }
.btn-hook--barra .btn-hook-txt { font-size: .98rem; }
.btn-hook--barra .btn-hook-go { width: 42px; height: 42px; margin-left: 0; }

/* =============================================================
   PÁGINAS DE CATEGORÍA Y DE SEGURO
   ============================================================= */
.prod-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.prod { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem 1.3rem 1.2rem; box-shadow: var(--sh-sm); scroll-margin-top: 120px; transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .3s; }
.prod:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.prod:target { border-color: var(--mand); box-shadow: 0 0 0 4px rgba(255, 159, 28, .25), var(--sh-md); }
.prod-top { display: flex; align-items: center; gap: .75rem; }
.prod-ico { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border-radius: 13px; color: var(--navy-2); background: rgba(27, 79, 140, .09); }
.prod-ico .ico { width: 21px; height: 21px; }
.prod h3 { font-size: 1.06rem; letter-spacing: -.015em; }
.prod p { font-size: .88rem; color: var(--ink-soft); line-height: 1.5; }
.prod-actions { display: flex; align-items: center; gap: .8rem; margin-top: auto; padding-top: .55rem; }
.prod-link { display: inline-flex; align-items: center; gap: .35rem; font-family: var(--display); font-weight: 700; font-size: .9rem; color: var(--navy-2); }
.prod-link .ico { width: 16px; height: 16px; transition: transform .35s; }
.prod-link:hover .ico { transform: translateX(3px); }
.prod-price { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .8rem; border-radius: 999px; font-family: var(--display); font-weight: 700; font-size: .84rem; color: var(--cta-ink); background: rgba(255, 159, 28, .22); transition: background-color .25s; }
.prod-price:hover { background: var(--mand); }
.prod--page { border-color: rgba(255, 159, 28, .45); }
.prod-badge { position: absolute; top: .9rem; right: .9rem; font-size: .64rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--mand-ink); background: rgba(255, 159, 28, .16); padding: .15rem .45rem; border-radius: 6px; }
.group-head { display: flex; align-items: center; gap: .9rem; margin: 2.6rem 0 1.1rem; scroll-margin-top: 120px; }
.group-head:first-child { margin-top: 0; }
.group-head .prod-ico { width: 46px; height: 46px; color: #fff; background: var(--grad-navy); }
.group-head h2 { font-size: clamp(1.4rem, 2.6vw, 1.8rem); }
.group-head p { font-size: .88rem; color: var(--ink-mute); }

/* Índice de seguros (seguros.html): solo enlaces, sin repetir las fichas de las categorías */
.hub { display: grid; gap: 1.2rem; }
.hub-cat { padding: 1.5rem 1.6rem 1.4rem; box-shadow: var(--sh-md); scroll-margin-top: 120px; }
.hub-cat-head { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-bottom: 1.1rem; }
.hub-cat-head .prod-ico { width: 46px; height: 46px; color: #fff; background: var(--grad-navy); }
.hub-cat-head h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.hub-cat-head h2 a:hover { color: var(--navy-2); }
.hub-cat-head p { font-size: .85rem; color: var(--ink-mute); }
.hub-cat-head .prod-link { margin-left: auto; }
.hub-cat .mega-group h3 { display: flex; align-items: center; gap: .45rem; margin-bottom: .35rem; font-family: var(--sans); font-size: .78rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--navy); }
.hub-cat .mega-group h3 .ico { width: 16px; height: 16px; color: var(--mand-dk); }
@media (max-width: 559px) { .hub-cat .mega-list { columns: 1; } .hub-cat .mega-groups { grid-template-columns: 1fr; } }
@media (min-width: 560px) and (max-width: 899px) { .hub-cat .mega-groups { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .hub { grid-template-columns: 1fr 1fr; } .hub-cat--wide { grid-column: 1 / -1; } }

/* Losetas de sector (Tu Negocio) */
.sectors { display: grid; gap: .9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sector { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 150px; padding: 1rem; border-radius: 20px; color: #fff; box-shadow: var(--sh-md); isolation: isolate; }
.sector img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1s var(--ease-out); }
.sector::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11, 37, 69, .05) 30%, rgba(11, 37, 69, .82) 100%); }
.sector:hover img { transform: scale(1.06); }
.sector b { display: block; font-family: var(--display); font-size: 1.2rem; letter-spacing: -.02em; }
.sector small { font-size: .78rem; opacity: .85; }

/* Hero de seguro: datos */
.page-hero .hero-title { font-size: clamp(2.1rem, 4.6vw, 3.3rem); }
.page-hero .hero-poli-solo { width: min(340px, 80%); margin: 0 auto; }

/* Modalidades (tabla) */
.mod-wrap { overflow-x: auto; border-radius: var(--radius); box-shadow: var(--sh-md); background: rgba(255, 255, 255, .8); border: 1px solid var(--glass-brd); }
.mod { width: 100%; min-width: 640px; border-collapse: collapse; font-size: .92rem; }
.mod th, .mod td { padding: .9rem 1rem; text-align: center; border-bottom: 1px solid var(--line-soft); }
.mod th:first-child, .mod td:first-child { text-align: left; font-weight: 600; }
.mod thead th { font-family: var(--display); font-size: .95rem; letter-spacing: -.01em; color: var(--navy); vertical-align: bottom; }
.mod thead th small { display: block; font-family: var(--sans); font-size: .72rem; font-weight: 600; color: var(--ink-mute); }
.mod tbody tr:last-child td { border-bottom: 0; }
.mod td .si { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(255, 159, 28, .22); }
.mod td .si svg { width: 13px; stroke: var(--navy); stroke-width: 2.8; fill: none; }
.mod td .no { color: #b6bfcc; font-weight: 700; }
.mod td .op { font-size: .78rem; font-weight: 700; color: var(--navy-2); }
.mod-note { margin-top: .8rem; font-size: .82rem; color: var(--ink-mute); }

/* Coberturas: losetas */
.covers { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.cover { padding: 1.25rem 1.3rem; box-shadow: var(--sh-sm); }
.cover .prod-ico { margin-bottom: .8rem; }
.cover h3 { font-size: 1.05rem; margin-bottom: .35rem; }
.cover p { font-size: .88rem; color: var(--ink-soft); }
.cover--opt .prod-ico { color: var(--mand-ink); background: rgba(255, 159, 28, .15); }
.cover-tag { display: inline-block; margin-left: .35rem; padding: .08rem .45rem; border-radius: 6px; font-family: var(--sans); font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; vertical-align: middle; color: var(--mand-ink); background: rgba(255, 159, 28, .16); }

/* Conviene saber */
.saber { display: grid; gap: 1.2rem; align-items: start; }
.saber-list { list-style: none; display: grid; gap: .8rem; }
.saber-list li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .8rem; padding: 1.1rem 1.2rem; border-radius: 18px; background: rgba(255, 255, 255, .75); border: 1px solid var(--glass-brd); box-shadow: var(--sh-sm); font-size: .93rem; color: var(--ink-soft); }
.saber-list li strong { color: var(--ink); }
.saber-list li a { color: var(--navy-2); text-decoration: underline; text-underline-offset: 2px; }
.saber-num { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; font-family: var(--display); font-weight: 800; color: var(--navy); background: rgba(255, 159, 28, .25); }
.saber-poli { position: relative; padding: 1.4rem; border-radius: var(--radius); color: #fff; overflow: hidden; background: radial-gradient(120% 70% at 0% 0%, rgba(61, 111, 176, .7), transparent 62%), radial-gradient(100% 60% at 100% 100%, rgba(255, 159, 28, .4), transparent 62%), var(--navy); box-shadow: var(--sh-lg); }
.saber-poli .poli { width: 150px; margin: -.4rem auto .6rem; --poli-shell: #fff; --poli-lines: #0b2545; --poli-rim: #c9d6e6; }
.saber-poli b { display: block; font-family: var(--display); font-size: 1.15rem; margin-bottom: .4rem; }
.saber-poli p { font-size: .9rem; color: rgba(255, 255, 255, .85); }
.saber-poli .btn { margin-top: 1rem; width: 100%; }

/* ---- Formularios (contacto, siniestros) ---- */
.form { display: grid; gap: .9rem; padding: clamp(1.3rem, 3vw, 2rem); box-shadow: var(--sh-md); }
.form-row { display: grid; gap: .9rem; }
.form-row > *, .saber > *, .field, .form > * { min-width: 0; }
.form .btn { white-space: normal; }
.input { min-width: 0; }
.field label { display: block; margin-bottom: .35rem; font-size: .85rem; font-weight: 700; color: var(--ink-soft); }
.input { width: 100%; padding: .8rem .95rem; font: inherit; font-size: 1rem; color: var(--ink); background: rgba(255, 255, 255, .88); border: 1px solid var(--line); border-radius: var(--radius-sm); transition: border-color .25s, box-shadow .25s; min-height: 48px; }
.input:focus { outline: none; border-color: var(--navy-2); background: #fff; box-shadow: 0 0 0 4px rgba(27, 79, 140, .13); }
select.input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%234a5b72' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.4rem; }
textarea.input { min-height: 84px; resize: vertical; }
.check { display: flex; gap: .65rem; align-items: flex-start; font-size: .84rem; line-height: 1.55; color: var(--ink-soft); cursor: pointer; }
.check input { margin-top: .22rem; width: 18px; height: 18px; accent-color: var(--navy-2); flex: none; }
.check a { color: var(--navy-2); text-decoration: underline; }
.form-msg { font-size: .9rem; font-weight: 700; min-height: 1.2em; }
.form-msg.is-ok { color: #12805c; }
.form-msg.is-err { color: var(--danger); }

/* Canales de contacto / oficinas */
.channels { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.channel { display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem 1.3rem; box-shadow: var(--sh-sm); }
.channel .prod-ico { width: 46px; height: 46px; }
.channel b { display: block; font-family: var(--display); font-size: 1.05rem; }
.channel p { font-size: .88rem; color: var(--ink-soft); }
.channel .val { display: inline-block; margin-top: .35rem; font-weight: 700; color: var(--navy); user-select: all; }

/* Noticias */
.posts { display: grid; gap: 1.2rem; grid-template-columns: 1fr; }
.post { overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--sh-md); transition: transform .5s var(--ease-out), box-shadow .5s; }
.post:hover { transform: translateY(-5px); box-shadow: var(--sh-lg); }
.post-media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #e8edf5; }
.post-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-out); }
.post:hover .post-media img { transform: scale(1.05); }
.post-body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.post-cat { font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--mand-ink); }
.post h3 { font-size: 1.2rem; }
.post p { font-size: .9rem; color: var(--ink-soft); }
.post .prod-link { margin-top: auto; padding-top: .5rem; }

/* Artículo */
.article { padding: clamp(1.4rem, 4vw, 2.6rem); box-shadow: var(--sh-md); }
.article h2 { font-size: clamp(1.35rem, 2.6vw, 1.75rem); margin: 2rem 0 .7rem; }
.article h2:first-child { margin-top: 0; }
.article p, .article li { font-size: 1.02rem; color: var(--ink-soft); }
.article p + p { margin-top: .9rem; }
.article ul { padding-left: 1.2rem; display: grid; gap: .45rem; margin-top: .8rem; }
.article strong { color: var(--ink); }
.article a { color: var(--navy-2); text-decoration: underline; text-underline-offset: 2px; }
.article-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: 1.2rem; font-size: .85rem; color: var(--ink-mute); }

/* Textos legales */
.legal-idx { margin-bottom: 1.2rem; }
.article.legal h2 { scroll-margin-top: 110px; padding-top: .4rem; }
.article.legal h3 { margin: 1.4rem 0 .5rem; font-size: 1.08rem; color: var(--navy); }
.article.legal p, .article.legal li { font-size: .95rem; }
.article.legal ol { padding-left: 1.3rem; display: grid; gap: .55rem; margin-top: .6rem; }
.article.legal ol ul { margin-top: .5rem; }
.article.legal .legal-cols { font-size: .85rem; line-height: 1.7; }

/* Oficinas: tarjeta de ejemplo */
.office { padding: 1.4rem; box-shadow: var(--sh-sm); border-style: dashed; border-color: rgba(27, 79, 140, .3); }
.office b { display: block; font-family: var(--display); font-size: 1.1rem; }
.office p { font-size: .9rem; color: var(--ink-soft); }

/* =============================================================
   CUESTIONARIO (tipo Typeform) · columna «Tu caso» + una pregunta
   ============================================================= */
html.fx-abierto { overflow: hidden; }
.fx-dlg { width: min(1100px, calc(100% - 2.5rem)); max-width: none; max-height: calc(100vh - 2.5rem); max-height: calc(100dvh - 2.5rem); margin: auto; padding: 0; border: 0; border-radius: 28px; background: var(--bg-warm); color: var(--ink); box-shadow: var(--sh-xl); overflow: auto; overscroll-behavior: contain; }
.fx-dlg::backdrop { background: rgba(11, 26, 46, .55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.fx-dlg[open] { animation: dlgEntra .5s var(--ease-out); }
.fx-dlg.is-closing { animation: dlgSale .24s var(--ease-in) forwards; }
@keyframes dlgEntra { from { opacity: 0; transform: translateY(28px) scale(.97); } }
@keyframes dlgSale { to { opacity: 0; transform: translateY(18px) scale(.98); } }
@media (max-width: 759px) { .fx-dlg { width: 100%; height: 100%; max-height: 100%; border-radius: 0; } }
@media (min-width: 760px) { .fx-dlg { height: min(740px, calc(100dvh - 2.5rem)); } .fx-dlg .fx { min-height: 100%; } }

.fx { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--bg-warm); min-height: 100%; }
@media (min-width: 900px) { .fx { grid-template-columns: 330px minmax(0, 1fr); grid-template-areas: "side main"; } .fx-side { grid-area: side; } .fx-main { grid-area: main; } }
.fx-main { min-width: 0; padding: clamp(1.2rem, 3vw, 2.3rem) clamp(1.15rem, 3.6vw, 2.8rem) clamp(1.4rem, 3vw, 2.2rem); }
.fx-top { display: flex; align-items: center; gap: 1rem; margin-bottom: clamp(1.3rem, 3.4vw, 2.2rem); }
.fx-progress { flex: 1; display: flex; align-items: center; gap: .9rem; min-width: 0; }
.fx-bar { flex: 1; height: 6px; border-radius: 99px; overflow: hidden; background: rgba(11, 26, 46, .07); }
.fx-bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--navy-2), var(--mand)); transition: width .7s var(--ease-out); }
.fx-count { font-size: .8rem; font-weight: 700; color: var(--ink-mute); white-space: nowrap; font-variant-numeric: tabular-nums; }
.fx[data-fase="hecho"] .fx-progress { visibility: hidden; }
.fx-close { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; color: var(--ink-soft); background: rgba(11, 26, 46, .06); transition: background-color .25s, color .25s, transform .4s var(--ease-bounce); }
.fx-close:hover { color: var(--ink); background: rgba(11, 26, 46, .1); transform: rotate(90deg); }
.fx-heredado { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; margin-bottom: 1.2rem; padding: .6rem .95rem; border-radius: 12px; font-size: .88rem; font-weight: 600; color: var(--navy); background: rgba(255, 159, 28, .14); }
.fx-heredado button { color: var(--navy-2); text-decoration: underline; text-underline-offset: 3px; font-weight: 700; }

.quiz-step { border: 0; padding: 0; margin: 0; min-width: 0; }
.quiz-step.in-fwd { animation: fxEntra .55s var(--ease-out) backwards; }
.quiz-step.in-back { animation: fxVuelve .55s var(--ease-out) backwards; }
.quiz-step.in-fwd .fx-opt, .quiz-step.in-back .fx-opt { animation: fxOpcion .5s var(--ease-out) backwards; animation-delay: calc(var(--i, 0) * 40ms + 90ms); }
@keyframes fxEntra { from { opacity: 0; transform: translateY(22px); } }
@keyframes fxVuelve { from { opacity: 0; transform: translateY(-22px); } }
@keyframes fxOpcion { from { opacity: 0; transform: translateY(14px) scale(.98); } }
.fx-q { float: left; width: 100%; padding-bottom: .5rem; font-family: var(--display); font-weight: 800; color: var(--ink); font-size: clamp(1.45rem, 2.9vw, 2.05rem); line-height: 1.15; letter-spacing: -.03em; }
.fx-q ~ * { clear: both; }
.fx-help { max-width: 56ch; font-size: .95rem; color: var(--ink-soft); }

.fx-opts { display: grid; gap: .7rem; margin-top: 1.4rem; counter-reset: fxopt; }
.fx-opt { position: relative; display: flex; align-items: center; gap: .85rem; cursor: pointer; padding: .95rem 1rem; border-radius: 18px; background: #fff; border: 1.5px solid rgba(11, 26, 46, .1); box-shadow: 0 1px 2px rgba(11, 26, 46, .04); counter-increment: fxopt; transition: border-color .25s, background-color .25s, box-shadow .3s, transform .45s var(--ease-bounce); }
.fx-opt input { position: absolute; opacity: 0; pointer-events: none; }
.fx-opt:hover { border-color: rgba(27, 79, 140, .5); transform: translateY(-2px); box-shadow: 0 14px 28px -18px rgba(27, 79, 140, .6); }
.fx-opt:has(input:focus-visible) { outline: 3px solid rgba(255, 159, 28, .6); outline-offset: 2px; }
.fx-opt:has(input:checked) { border-color: var(--navy-2); background: #f1f5fb; box-shadow: 0 16px 30px -18px rgba(27, 79, 140, .75), 0 0 0 3px rgba(27, 79, 140, .12); animation: fxElige .42s var(--ease-bounce); }
@keyframes fxElige { 35% { transform: scale(.965); } }
.fx-ico { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 14px; color: var(--navy-2); background: rgba(27, 79, 140, .09); transition: background-color .25s, color .25s, transform .45s var(--ease-bounce); }
.fx-ico .ico { width: 24px; height: 24px; }
.fx-ico--navy { color: #fff; background: var(--grad-navy); }
.fx-ico--mand { color: var(--navy); background: linear-gradient(135deg, var(--mand), var(--mand-2)); }
.fx-opt:hover .fx-ico { transform: rotate(-6deg) scale(1.05); }
.fx-opt:has(input:checked) .fx-ico:not(.fx-ico--navy):not(.fx-ico--mand) { color: #fff; background: var(--navy-2); }
.fx-txt { display: grid; gap: .12rem; min-width: 0; }
.fx-txt strong { font-family: var(--display); font-size: 1rem; font-weight: 700; letter-spacing: -.01em; color: var(--ink); }
.fx-txt small { font-size: .82rem; line-height: 1.35; color: var(--ink-mute); }
.fx-tick { position: absolute; top: .65rem; right: .65rem; z-index: 2; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; color: var(--navy); background: var(--mand); box-shadow: 0 0 0 3px #fff; transform: scale(0); transition: transform .45s var(--ease-bounce); }
.fx-tick svg { width: 14px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.fx-tick path { stroke-dasharray: 20; stroke-dashoffset: 20; transition: stroke-dashoffset .35s var(--ease-out) .12s; }
.fx-opt:has(input:checked) .fx-tick { transform: scale(1); }
.fx-opt:has(input:checked) .fx-tick path { stroke-dashoffset: 0; }
@media (hover: hover) and (pointer: fine) {
  .fx-opt::after { content: counter(fxopt, upper-alpha); position: absolute; top: .65rem; right: .65rem; z-index: 1; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; font: 700 .72rem var(--display); color: var(--ink-mute); background: rgba(255, 255, 255, .92); border: 1px solid rgba(11, 26, 46, .12); transition: opacity .2s; }
  .fx-opt:has(input:checked)::after { opacity: 0; }
  .fx-opt--fila::after, .fx-opt--chip::after { top: 50%; margin-top: -12px; }
}
/* Qué aseguras: cuatro tarjetas grandes */
@media (min-width: 560px) {
  .fx-opts--cat { grid-template-columns: 1fr 1fr; }
  .fx-opt--cat { flex-direction: column; align-items: flex-start; gap: 1rem; min-height: 150px; padding: 1.25rem; }
  .fx-opt--cat .fx-ico { width: 54px; height: 54px; border-radius: 16px; }
  .fx-opt--cat .fx-txt strong { font-size: 1.15rem; }
}
/* Qué seguro: fichas en columnas, agrupadas por sector */
.fx-opts--prod { grid-template-columns: 1fr; gap: .5rem; }
@media (min-width: 560px) { .fx-opts--prod { grid-template-columns: 1fr 1fr; } }
.fx-grupo { grid-column: 1 / -1; margin-top: .6rem; font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-mute); }
.fx-grupo:first-child { margin-top: 0; }
.fx-opt--chip { gap: .7rem; padding: .7rem 2.8rem .7rem .85rem; border-radius: 14px; }
.fx-opt--chip .fx-ico { width: 34px; height: 34px; border-radius: 10px; }
.fx-opt--chip .fx-ico .ico { width: 18px; height: 18px; }
.fx-opt--chip .fx-txt strong { font-size: .92rem; }
.fx-opt--chip.fx-opt--nose { border-style: dashed; }
/* En qué punto estás: tres tarjetas */
@media (min-width: 620px) { .fx-opts--3 { grid-template-columns: repeat(3, 1fr); } .fx-opt--card { flex-direction: column; align-items: flex-start; gap: .85rem; padding: 1.2rem; } }
/* Lo que te importa: fichas marcables */
.fx-opts--chips { grid-template-columns: 1fr; gap: .55rem; }
@media (min-width: 480px) { .fx-opts--chips { grid-template-columns: 1fr 1fr; } }
/* Cuándo: lista compacta */
.fx-opts--lista { gap: .5rem; max-width: 560px; }
.fx-opt--fila { padding: .9rem 3rem .9rem 1.1rem; }
.fx-opt--fila .fx-tick { top: 50%; margin-top: -13px; }
.fx-next { margin-top: 1.5rem; }
/* Último paso: datos */
.fx-incluye { display: grid; gap: .5rem; margin: 1.2rem 0 1.4rem; list-style: none; }
.fx-incluye li { display: flex; align-items: flex-start; gap: .6rem; font-size: .95rem; }
.fx-incluye li::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: .1rem; border-radius: 50%; background: rgba(255, 159, 28, .22) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5 8.4 14 15 6.5' fill='none' stroke='%230b2545' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.fx-datos { display: grid; gap: .7rem; max-width: 600px; }
.fx-datos .form-row { grid-template-columns: 1fr; }
@media (min-width: 560px) { .fx-datos .form-row { grid-template-columns: 1fr 1fr; } }
.fx-email { display: flex; align-items: center; gap: .6rem; max-width: 600px; margin-top: .2rem; padding: .4rem .4rem .4rem 1.2rem; border-radius: 999px; background: #fff; border: 1.5px solid rgba(11, 26, 46, .12); box-shadow: 0 14px 30px -22px rgba(11, 26, 46, .5); transition: border-color .25s, box-shadow .25s; }
.fx-email:focus-within { border-color: var(--navy-2); box-shadow: 0 0 0 4px rgba(27, 79, 140, .14), 0 14px 30px -22px rgba(11, 26, 46, .5); }
.fx-input { flex: 1; min-width: 0; padding: .65rem 0; font: 600 1.08rem var(--display); color: var(--ink); background: transparent; border: 0; outline: none; }
.fx-input::placeholder { color: rgba(11, 26, 46, .32); }
.btn-hook--form { gap: .3rem; padding: .35rem .35rem .35rem 1.3rem; flex: none; animation: none; }
.btn-hook--form .btn-hook-txt { font-size: 1rem; }
.btn-hook--form .btn-hook-go { width: 42px; height: 42px; }
@media (max-width: 519px) { .fx-email { flex-direction: column; align-items: stretch; padding: .5rem; border-radius: 20px; } .fx-input { padding: .7rem; } .btn-hook--form { justify-content: space-between; } }
.fx-check { max-width: 600px; margin-top: .8rem; }
.fx-err { min-height: 1.3em; margin-top: .6rem; font-size: .88rem; font-weight: 700; color: var(--danger); }
.fx-foot { display: flex; align-items: center; gap: 1rem; margin-top: 1.7rem; min-height: 36px; }
.fx-back { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .9rem .45rem .7rem; border-radius: 999px; font: 700 .86rem var(--sans); color: var(--ink-soft); background: rgba(11, 26, 46, .05); transition: background-color .25s, color .25s; }
.fx-back .ico { width: 16px; height: 16px; }
.fx-back:hover { color: var(--navy-2); background: rgba(27, 79, 140, .09); }
.fx-teclas { margin-left: auto; font-size: .76rem; color: var(--ink-mute); }
@media (hover: none), (max-width: 759px) { .fx-teclas { display: none; } }
/* Hecho */
.fx-hecho { display: grid; gap: 1rem; align-content: start; }
.fx-hecho .poli { width: 190px; }
.fx-hecho h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.fx-resumen { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .45rem 1.2rem; padding: 1.1rem 1.2rem; border-radius: 18px; background: #fff; border: 1.5px dashed rgba(27, 79, 140, .35); font-size: .93rem; }
.fx-resumen dt { font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-mute); padding-top: .2rem; }
.fx-resumen dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.fx-ahora { list-style: none; counter-reset: ah; display: grid; gap: .55rem; }
.fx-ahora li { counter-increment: ah; display: flex; gap: .7rem; font-size: .93rem; color: var(--ink-soft); }
.fx-ahora li::before { content: counter(ah); display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; font: 800 .8rem var(--display); color: var(--navy); background: rgba(255, 159, 28, .3); }

/* Columna «Tu caso» */
.fx-side { position: relative; overflow: hidden; color: #fff; background: radial-gradient(120% 70% at 0% 0%, rgba(61, 111, 176, .7), transparent 62%), radial-gradient(100% 60% at 100% 100%, rgba(255, 159, 28, .38), transparent 62%), var(--navy); }
.fx-side-in { position: sticky; top: 0; display: flex; flex-direction: column; gap: 1.2rem; padding: clamp(1.3rem, 3vw, 2.1rem); }
@media (min-width: 900px) { .fx-dlg .fx-side-in { height: min(740px, calc(100dvh - 2.5rem)); } }
.fx-side-t { display: flex; align-items: center; gap: .6rem; font-family: var(--display); font-weight: 800; font-size: 1.25rem; letter-spacing: -.02em; }
.fx-caso { display: grid; list-style: none; }
.fx-caso li { display: grid; grid-template-columns: 22px minmax(0, 1fr); column-gap: .75rem; align-items: start; padding: .65rem 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.fx-caso li:last-child { border-bottom: 0; }
.fx-caso-dot { grid-row: span 2; width: 22px; height: 22px; margin-top: .1rem; border-radius: 50%; border: 1.5px dashed rgba(255, 255, 255, .35); }
.fx-caso-k { font-size: .75rem; color: rgba(255, 255, 255, .6); }
.fx-caso-v { font-family: var(--display); font-weight: 700; font-size: .96rem; color: rgba(255, 255, 255, .38); overflow-wrap: anywhere; }
.fx-caso li.is-done .fx-caso-v { color: #fff; }
.fx-caso li.is-done .fx-caso-dot { border: 0; background: var(--mand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5 8.4 14 15 6.5' fill='none' stroke='%230b2545' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.fx-caso li.is-new .fx-caso-dot { animation: fxSalta .55s var(--ease-bounce); }
.fx-caso li.is-new .fx-caso-v { animation: fxEntra .45s var(--ease-out); }
@keyframes fxSalta { from { transform: scale(.3); } }
.fx-dato { margin-top: auto; padding: 1rem 1.1rem; border-radius: 16px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .15); }
.fx-dato-t { display: flex; align-items: center; gap: .55rem; font-size: .86rem; font-weight: 800; color: var(--mand-2); }
.fx-dato-t .poli { width: 44px; --poli-shell: #fff; --poli-lines: #0b2545; --poli-rim: #c9d6e6; }
.fx-dato-x { margin-top: .45rem; font-size: .9rem; line-height: 1.55; color: rgba(255, 255, 255, .88); transition: opacity .18s, transform .18s; }
.fx-dato-x strong { color: #fff; }
.fx-dato-x.is-swap { opacity: 0; transform: translateY(6px); }
.fx-side-pie { font-size: .75rem; color: rgba(255, 255, 255, .5); }
@media (max-width: 899px) {
  .fx-side-in { position: static; gap: .8rem; }
  .fx-side-t { font-size: 1.05rem; }
  .fx-caso { display: flex; flex-wrap: wrap; gap: .4rem; }
  .fx-caso li { display: none; padding: 0; border: 0; }
  .fx-caso li.is-done { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .7rem .35rem .4rem; border-radius: 999px; background: rgba(255, 255, 255, .1); }
  .fx-caso li.is-done .fx-caso-dot { width: 18px; height: 18px; margin: 0; background-size: 10px; }
  .fx-caso-k { display: none; }
  .fx-caso-v { font-size: .84rem; }
  .fx-dato { margin-top: 0; }
  .fx-side-pie { display: none; }
}
@media (max-width: 599px) { .fx-dato { display: none; } .fx-side-in { padding: 1rem 1.15rem; } }

/* =============================================================
   EFECTOS · aparición al hacer scroll (solo con JS; a los 1,2 s
   todo queda visible igualmente)
   ============================================================= */
.js .reveal { opacity: 0; transform: translateY(24px); }
.reveal { transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.js .reveal.is-visible { opacity: 1; transform: none; }
[data-tilt] { transform-style: preserve-3d; }

/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width: 539px) {
  .help-launch { padding: .4rem; }
  .help-launch-txt { display: none; }
  .hero-bubble { display: none; }
  .hero-poli { width: 104px; top: -54px; right: .8rem; }
  .hero-poli--gorra { width: 126px; }
  .hero-media.has-poli { margin-top: 48px; }
  .wordmark { font-size: 1.42rem; }
}
@media (max-width: 519px) {
  .hook .btn-hook, .cta-final-btns .btn-hook { display: flex; width: 100%; }
  .btn-hook-go { margin-left: auto; }
  .btn-hook-txt { font-size: 1.02rem; white-space: normal; }
  .btn--lg { white-space: normal; text-align: center; }
}
@media (min-width: 540px) {
  .form-row { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
  .sectors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 720px) {
  .chooser { grid-template-columns: repeat(2, 1fr); }
  .cards-grid, .prod-grid, .covers, .posts, .channels { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .casos { grid-template-columns: repeat(2, 1fr); }
  .tools { grid-template-columns: repeat(2, 1fr); }
  .footer-top { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
  .compare-head { display: grid; grid-template-columns: 1fr 1.15fr; gap: 1.5rem; }
  .compare-row { grid-template-columns: 1fr 1.15fr; gap: 1.5rem; align-items: center; padding: 1.2rem 1.5rem; }
  .band { grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); }
  .cta-final { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); }
  .saber { grid-template-columns: minmax(0, 1.5fr) minmax(0, .9fr); }
  .sectors { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
  .hero-top { grid-template-columns: 1fr 1.02fr; gap: 3.4rem; }
  .nav-actions { display: flex; margin-left: auto; }
  .nav-burger { margin-left: .5rem; }
}
@media (max-width: 959px) {
  .hero { padding-top: 6.8rem; }
  .hero-top { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .hero-intro { display: contents; }
  .hero-intro > .miga { order: 0; }
  .hero-intro > .eyebrow { order: 1; align-self: flex-start; }
  .hero-intro > .hero-title { order: 2; }
  .hero-media { order: 3; margin-top: 1.8rem; }
  .hero-intro > .hero-sub { order: 4; margin-top: 1.6rem; }
  .hero-intro > .hook { order: 5; }
  .hero-media.has-poli { margin-top: 5.4rem; }
}
@media (min-width: 1100px) {
  .nav-links { display: flex; }
  .nav-actions { margin-left: .3rem; }
  .nav-actions::before { content: ""; flex: none; width: 1px; height: 20px; background: var(--line); margin-right: .45rem; }
  .nav-burger { display: none; }
  .nav-mobile { display: none !important; }
  .hero { padding: 9.6rem 0 3.6rem; }
  .cards-grid, .prod-grid, .posts { grid-template-columns: repeat(3, 1fr); }
  .covers { grid-template-columns: repeat(3, 1fr); }
  .steps { grid-template-columns: repeat(4, 1fr); }
  .casos { grid-template-columns: repeat(3, 1fr); }
  .chooser--4 { grid-template-columns: repeat(4, 1fr); }
  .channels { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1100px) and (max-width: 1239px) { .nav-link { padding-inline: .55rem; font-size: .74rem; } .nav-link[aria-current="page"]::before, .nav-link.is-current::before { left: .55rem; right: .55rem; } }
@media (max-width: 1099px) { .help-panel { bottom: 0; } .help-launch { padding: .4rem; } .help-launch-txt { display: none; } }

/* Móvil: que el cuestionario se vea en la primera pantalla aunque el titular sea largo */
@media (max-width: 559px) {
  .miga { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; margin-bottom: .8rem; }
  .miga::-webkit-scrollbar { display: none; }
  .hero .eyebrow { font-size: .68rem; }
  .hero-title { font-size: clamp(1.7rem, 7.4vw, 2.2rem); margin-top: .7rem; }
  .hero-media.has-poli { margin-top: 3.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  .mesh-blob, .fx-mini, .eyebrow-dot, .help-launch-pulse, .btn-hook, .btn-hook::after, .btn-hook-go .ico { animation: none !important; }
  .btn-hook::after { display: none; }
  .fx-dlg[open], .fx-dlg.is-closing, .quiz-step.in-fwd, .quiz-step.in-back, .fx-opt, .fx-caso li.is-new .fx-caso-dot, .fx-caso li.is-new .fx-caso-v { animation: none !important; }
  html { scroll-behavior: auto; }
}

/* Bloque «Revisado por» de las landings */
.section--rev { padding-block: 0 2.2rem; }
.revisado { display: flex; gap: .7rem; align-items: flex-start; margin: 0; padding: .9rem 1.1rem; border-radius: 14px; background: var(--surface-2, rgba(11,37,69,.05)); font-size: .86rem; line-height: 1.5; color: var(--ink-soft); }
.revisado svg { flex: none; width: 20px; height: 20px; margin-top: .1rem; color: var(--navy, #0b2545); }

/* Landings hijas (pages_sub.py): requisitos por universidad o país */
.req { list-style: none; display: grid; gap: .8rem; }
.req-item { padding: 1.05rem 1.2rem; box-shadow: var(--sh-sm); }
.req-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem .8rem; margin-bottom: .3rem; }
.req-head h3 { font-size: 1.02rem; }
.req-item p { font-size: .9rem; color: var(--ink-soft); }
.req-tag { flex: none; padding: .14rem .6rem; border-radius: 99px; font-size: .7rem; font-weight: 800; letter-spacing: .02em; }
.req-tag--obl { background: rgba(255, 159, 28, .22); color: var(--mand-ink); }
.req-tag--uni { background: rgba(31, 138, 91, .14); color: #17603f; }
.req-tag--caso { background: rgba(61, 111, 176, .14); color: var(--navy-2); }
.req-tag--rec { background: rgba(255, 159, 28, .1); color: var(--mand-ink); border: 1px dashed rgba(255, 159, 28, .55); }
.req-tag--no { background: rgba(11, 37, 69, .06); color: var(--ink-mute); }
.req-tu { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: .9rem; margin-top: 1.2rem; padding: 1.2rem 1.3rem; box-shadow: var(--sh-md); border-left: 4px solid var(--mand); }
.req-tu > svg { width: 28px; height: 28px; color: var(--navy); margin-top: .1rem; }
.req-tu b { display: block; font-family: var(--display); font-size: 1.05rem; color: var(--navy); margin-bottom: .3rem; }
.req-tu p { font-size: .93rem; color: var(--ink-soft); }
.req-fuente { margin-top: 1rem; font-size: .8rem; color: var(--ink-mute); }
.req-fuente a { color: var(--navy-2); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.sub-grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.sub-card { display: grid; gap: .2rem; padding: 1rem 1.15rem; box-shadow: var(--sh-sm); text-decoration: none; color: inherit; transition: transform .3s var(--ease-out), box-shadow .3s var(--ease-out); }
.sub-card:hover, .sub-card:focus-visible { transform: translateY(-2px); box-shadow: var(--sh-md); }
.sub-card-k { font-family: var(--display); font-weight: 800; font-size: 1.15rem; color: var(--navy); }
.sub-card-n { font-size: .86rem; color: var(--ink-soft); }
.sub-card-go { display: inline-flex; align-items: center; gap: .3rem; margin-top: .35rem; font-size: .8rem; font-weight: 700; color: var(--navy-2); }
.sub-card-go svg { width: 14px; height: 14px; }
.sub-volver { margin-top: 1.4rem; text-align: center; }
.sub-volver .btn { max-width: 100%; white-space: normal; }

/* Ficha de datos (razas) y buscador de razas PPP */
.section--ficha { padding-block: 1.5rem 0; }
.ficha { padding: 1.3rem 1.4rem; box-shadow: var(--sh-md); }
.ficha-t { font-family: var(--display); font-size: 1.15rem; color: var(--navy); margin-bottom: .8rem; }
.ficha-dl { display: grid; gap: .6rem 1.2rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.ficha-dl dt { font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-mute); }
.ficha-dl dd { margin: .15rem 0 0; font-size: .95rem; color: var(--ink); }
.ficha-nota { margin-top: .9rem; font-size: .85rem; color: var(--ink-soft); }
.buscador { padding: 1.3rem 1.4rem; box-shadow: var(--sh-md); }
.buscador label { display: block; font-weight: 700; color: var(--navy); margin-bottom: .45rem; }
.buscador input { width: 100%; padding: .8rem 1rem; border-radius: 12px; border: 1px solid var(--line, #d7dee8); font: inherit; font-size: 1rem; background: #fff; }
.razas { list-style: none; display: grid; gap: .5rem; margin-top: 1rem; }
.razas li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem .8rem; padding: .7rem .9rem; border-radius: 12px; background: rgba(255, 255, 255, .8); border: 1px solid var(--glass-brd); font-size: .92rem; }
.razas li b { color: var(--ink); }
.razas li span { color: var(--ink-soft); font-size: .85rem; }
.razas li[hidden] { display: none; }
.razas-vacio { margin-top: .8rem; font-size: .9rem; color: var(--ink-soft); }

/* Cuestionario: pregunta propia del seguro y preferencias de contacto */
.fx-extra .fx-grupo { margin-top: 1.1rem; }
.fx-extra .fx-grupo:first-child { margin-top: .4rem; }
.fx-extra .fx-opts { margin-top: .55rem; }
.fx-sel { width: 100%; margin-top: .55rem; }
.fx-extra > .input { margin-top: .55rem; }
.fx-lbl { display: block; font-size: .86rem; font-weight: 700; margin-bottom: .4rem; }
.fx-pref { display: flex; flex-wrap: wrap; gap: .4rem; }
.fx-pill { position: relative; }
.fx-pill input { position: absolute; opacity: 0; pointer-events: none; }
.fx-pill span { display: inline-flex; align-items: center; padding: .5rem .85rem; border-radius: 99px; border: 1.5px solid rgba(11, 26, 46, .15); background: #fff; font-size: .86rem; font-weight: 600; cursor: pointer; transition: border-color .2s, background .2s; }
.fx-pill input:checked + span { border-color: var(--navy-2); background: rgba(27, 79, 140, .14); color: var(--navy); }
.fx-pill input:focus-visible + span { outline: 2px solid var(--navy-2); outline-offset: 2px; }
