/* ════════════════════════════════════════════════════════════════
   derechos.css — página "Derechos del pasajero" (/derechos-del-pasajero)
   ────────────────────────────────────────────────────────────────
   Implementación del mockup APROBADO derechos-final-v18.html (3-jul-2026).
   Se carga DESPUÉS de base.css y home.css: el carrusel (why-, type-),
   la FAQ (faq-*), el proceso (section-how/how-*) y la CTA (section-cta)
   vienen del home; aquí solo vive lo propio de la página (scope .dp) y
   las desviaciones aprobadas sobre esos componentes. Hoja limpia: nada
   de !important (la especificidad la da el scope).
==================================================================== */

/* ── Página ──
   overflow-x:hidden de base.css rompe position:sticky (trampa conocida,
   ver legal.php): clip recorta igual sin crear contenedor de scroll.
   El navbar se queda en flujo como en legal (no acompaña al bajar); el
   menú móvil (.navbar.menu-open, 2 clases) gana por especificidad. */
html, body { overflow-x: clip; }
/* En flujo (no acompaña al bajar, como el home) pero POSICIONADO: con
   static el z-index:100 no aplica y el backdrop-filter del navbar crea
   un stacking context a nivel auto → el hero (z-index:1) se pintaba
   ENCIMA del dropdown "Conoce tus derechos". relative mantiene el flujo
   y devuelve el menú a su plano. */
.navbar { position: relative; z-index: 100; }
.dp section { scroll-margin-top: 124px; }

/* ── Migas de pan — FUENTE ÚNICA ──────────────────────────────────
   La usan las 11 páginas con <nav class="crumb">: las 7 de incidencia,
   el directorio de aerolíneas, la página por-aerolínea, la calculadora
   y el centro de ayuda (todas cargan esta hoja). Antes había 9 copias
   distintas (7 inline + aerolinea.css + aerolineas.css) y en móvil las
   migas se veían pegadas a la izquierda al no caber.

   Reglas (owner 27-jul-2026):
     · SIEMPRE centradas, en cualquier ancho.
     · SIEMPRE en UNA sola línea: si el texto no cabe, se recorta con
       puntos suspensivos en vez de saltar de línea.
   Cómo: los separadores y el "Inicio" no encogen nunca; los tramos con
   texto sí (flex:0 1 auto + min-width:0), y el que se queda corto se
   trunca con ellipsis. */
.dp .crumb { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 6px; max-width: 100%; font-size: 13px; color: var(--gray-400); margin: 0 0 18px; }
.dp .crumb > * { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dp .crumb > a, .dp .crumb > span:not(.sep) { flex: 0 1 auto; }
.dp .crumb > a:first-child { flex: 0 0 auto; }
.dp .crumb .sep { flex: 0 0 auto; overflow: visible; opacity: .5; }
.dp .crumb a { color: var(--blue); text-decoration: none; }
.dp .crumb a:hover { color: var(--blue); }

/* ── Cabeceras de sección propias ── */
.dp .sec { padding: var(--sec-y) 0; }
.dp .sec-head { max-width: 660px; }
.dp .esc-title { font-size: 1.24rem; font-weight: 700; letter-spacing: -.015em; color: var(--dark); margin-top: 56px; }
.dp .esc-sub { color: var(--gray-500); font-size: 1rem; margin-top: 6px; }

/* ════ 1 · HERO + COMPROBADOR ════
   Sin card (aprobado): eyebrow + h1 + sub del home, comprobador en
   panel gris. hero/hero-eyebrow vienen de home.css. */
.dp .hero-in { position: relative; z-index: 1; text-align: center; }
.dp .hero h1 { font-size: clamp(2.2rem, 4.5vw, 3.6rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.12; max-width: 18ch; margin: 0 auto; color: var(--dark); }
.dp .hero-sub { color: var(--gray-500); font-size: clamp(1.02rem, 1.5vw, 1.18rem); line-height: 1.6; max-width: 52ch; margin: 14px auto 0; }

.dp .checker { max-width: 880px; margin: 44px auto 0; background: var(--gray-50); border-radius: 28px; padding: 38px 38px 34px; text-align: left; position: relative; }
.dp .chk-progress { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 28px; }
.dp .chk-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gray-200); transition: background .25s ease, transform .25s ease; }
.dp .chk-dot.on { background: var(--blue); transform: scale(1.25); }
.dp .chk-dot.done { background: var(--blue); opacity: .45; transform: none; }
.dp .chk-bar { width: 34px; height: 2px; border-radius: 2px; background: var(--gray-200); overflow: hidden; position: relative; }
.dp .chk-bar i { position: absolute; inset: 0; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .4s cubic-bezier(.22,.61,.36,1); }
.dp .chk-bar.fill i { transform: scaleX(1); }

.dp .chk-step { display: none; }
.dp .chk-step.on { display: block; animation: dpChkIn .38s cubic-bezier(.22,.61,.36,1) both; }
@keyframes dpChkIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.dp .chk-q { font-size: clamp(1.2rem, 2.1vw, 1.5rem); font-weight: 600; letter-spacing: -.02em; color: var(--dark); text-align: center; }
.dp .chk-hint { text-align: center; font-size: .9rem; color: var(--gray-400); margin-top: 6px; }
.dp .chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 26px; }
.dp .chip { flex: 0 0 calc(25% - 11px); height: 154px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: var(--white); border: 1px solid var(--gray-100); box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06); border-radius: 20px; padding: 20px 14px; font-size: .98rem; font-weight: 600; color: var(--dark); text-align: center; transition: transform .2s cubic-bezier(.22,.61,.36,1), border-color .2s ease, background .2s ease; }
.dp .chip:hover { transform: translateY(-2px); border-color: var(--blue-light); }
.dp .chip:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.dp .chip .em { font-size: 1.7rem; line-height: 1; }
.dp .chip small { display: block; font-size: .78rem; font-weight: 500; color: var(--gray-400); margin-top: -2px; }
.dp .chips--row .chip { padding: 18px 14px; }
.dp .chk-back { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; font-weight: 600; color: var(--gray-400); margin-top: 22px; padding: 6px 10px; border-radius: var(--r-md); transition: color var(--t), background var(--t); }
.dp .chk-back:hover { color: var(--dark); background: var(--gray-100); }
.dp .chk-back svg { width: 13px; height: 13px; }
.dp .chk-footrow { display: flex; justify-content: center; }

.dp .chk-result { display: none; text-align: center; }
.dp .chk-result.on { display: block; animation: dpChkPop .5s cubic-bezier(.22,.61,.36,1) both; }
@keyframes dpChkPop { 0% { opacity: 0; transform: translateY(18px) scale(.98); } 100% { opacity: 1; transform: none; } }
.dp .res-badge { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; padding: 8px 15px; border-radius: 999px; }
.dp .res-badge svg { width: 14px; height: 14px; flex: none; }
.dp .res-badge.si { background: rgba(19,115,51,.09); color: var(--green); }
.dp .res-badge.mix { background: var(--blue-light); color: var(--blue); }
.dp .res-verdict { font-size: clamp(1.5rem, 3.4vw, 2.3rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.2; color: var(--dark); max-width: 24ch; margin: 18px auto 0; }
.dp .res-verdict strong { color: var(--blue); font-weight: 700; }
.dp .res-sub { color: var(--gray-500); font-size: 1rem; line-height: 1.62; max-width: 52ch; margin: 14px auto 0; }
.dp .res-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 24px; }
.dp .res-pill { display: inline-flex; align-items: center; gap: 7px; font-size: .87rem; font-weight: 600; color: var(--gray-700); background: var(--gray-50); border-radius: 999px; padding: 8px 15px; opacity: 0; transform: translateY(8px); animation: dpPillIn .4s cubic-bezier(.22,.61,.36,1) forwards; }
.dp .res-pill svg { width: 14px; height: 14px; color: var(--blue); flex: none; }
@keyframes dpPillIn { to { opacity: 1; transform: none; } }
.dp .res-note { display: flex; gap: 11px; align-items: flex-start; text-align: left; background: var(--gray-50); border-radius: 20px; padding: 16px 18px; font-size: .92rem; line-height: 1.6; color: var(--gray-700); max-width: 560px; margin: 24px auto 0; }
.dp .res-note svg { width: 17px; height: 17px; color: var(--blue); flex: none; margin-top: 2px; }
.dp .res-note strong { color: var(--dark); }
.dp .res-cta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px; margin-top: 28px; }
.dp .res-cta .btn-cta--lg { font-size: 15px; padding: 13px 26px; gap: 8px; }
.dp .res-restart { display: inline-flex; align-items: center; gap: 7px; font-size: .9rem; font-weight: 600; color: var(--gray-500); padding: 10px 16px; border-radius: var(--r-md); transition: color var(--t), background var(--t); }
.dp .res-restart:hover { color: var(--dark); background: var(--gray-100); }
.dp .res-restart svg { width: 14px; height: 14px; }
.dp .chk-legal { text-align: center; font-size: .8rem; color: var(--gray-400); margin-top: 26px; }
@media (prefers-reduced-motion: reduce) {
  .dp .chk-step.on, .dp .chk-result.on { animation: none; }
  .dp .res-pill { animation: none; opacity: 1; transform: none; }
}

/* ════ 2 · ÍNDICE (subnav) ════
   Desktop: cristal OSCURO al ancho de su contenido, flotante y centrado.
   Móvil: el patrón del índice de términos y condiciones (legal.php). */
.subnav { position: sticky; top: 10px; z-index: 55; height: 46px; width: fit-content; max-width: calc(100vw - 48px); margin: 0 auto; border-radius: 16px; padding: 0 10px; background: rgb(16 16 16 / 72%); -webkit-backdrop-filter: saturate(140%) blur(9px); backdrop-filter: saturate(140%) blur(9px); box-shadow: 0 8px 32px rgba(2,16,20,.35); }
.subnav-in { height: 100%; display: flex; align-items: stretch; justify-content: center; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 0 14px; }
/* Desplegable de aeropuertos SIEMPRE por encima del índice (owner 27-jul-2026).
   El z-index:9999 del .ac-dropdown no servía de nada: está anidado en tres
   contextos de apilamiento — .hero (z-index:1, inline en cada página de
   incidencia), .hero-in (1) y .hero-form (10) —, y el TECHO lo pone el más
   externo. Con .hero a 1 y el índice a 55, el índice se pintaba encima y, al
   ser translúcido, el listado se leía mezclado con él.
   Se elevan los tres mientras el listado está abierto; el que decide es .hero,
   pero los internos deben acompañar para no recortar dentro. Mismo patrón
   canónico que .cam-ctrl:has(.ac-dropdown.open) en calc-mapa.css. */
.dp .hero:has(.ac-dropdown.open),
.dp .hero-in:has(.ac-dropdown.open),
.dp .hero-form:has(.ac-dropdown.open) { z-index: 60; }
.subnav-in::-webkit-scrollbar { display: none; }
.subnav-label { display: flex; align-items: center; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.6); padding-right: 20px; margin-right: 10px; border-right: 1px solid rgba(255,255,255,.18); flex: none; }
.subnav a { display: flex; align-items: center; padding: 0 14px; font-size: 13.5px; font-weight: 500; color: rgba(255,255,255,.85); position: relative; white-space: nowrap; transition: color var(--t); }
.subnav a:hover { color: #fff; }
.subnav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; background: #fff; border-radius: 2px; transform: scaleX(0); transition: transform .22s cubic-bezier(.22,.61,.36,1); }
.subnav a.act { color: #fff; font-weight: 600; }
.subnav a.act::after { transform: scaleX(1); }
.sn-bar { display: none; }

@media (max-width: 920px) {
  /* Owner 8-jul: fondo TRANSPARENTE hasta que la barra se fija arriba; al
     quedar pegada (.is-stuck, lo pone derechos.js) pasa a fondo+sombra con
     transición canónica. */
  .subnav { top: 0; width: 100%; max-width: 100%; margin: 0; border-radius: 0; height: auto; padding: 0; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; transition: background .25s ease, box-shadow .25s ease, -webkit-backdrop-filter .25s ease, backdrop-filter .25s ease; }
  .subnav.is-stuck { background: rgba(255,255,255,.92); -webkit-backdrop-filter: saturate(180%) blur(12px); backdrop-filter: saturate(180%) blur(12px); box-shadow: 0 1px 0 rgba(0,0,0,.06); }
  .subnav-label { display: none; }
  .sn-bar { display: block; width: 100%; background: none; border: 0; cursor: pointer; padding: 0 16px 9px; font-family: inherit; }
  .sn-prog { height: 4px; background: #E6ECED; overflow: hidden; margin: 0 0 9px; }
  .sn-prog-fill { height: 100%; width: 0; background: #164450; transition: width .25s ease; }
  .sn-cur { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; font-weight: 600; color: #3A6770; }
  .sn-cur .nav-chevron { color: #6B7878; flex: 0 0 auto; }
  .subnav.is-open .nav-chevron__l { transform: rotate(-90deg); }
  .subnav.is-open .nav-chevron__r { transform: rotate(90deg); }
  .subnav-in { position: absolute; left: 0; right: 0; top: 100%; height: auto; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; background: #fff; box-shadow: 0 12px 26px rgba(0,0,0,.10); max-height: 64vh; overflow: auto; padding: 8px 16px 16px; opacity: 0; pointer-events: none; transform: translateY(-6px); transition: opacity .18s ease, transform .18s ease; }
  .subnav.is-open .subnav-in { opacity: 1; pointer-events: auto; transform: none; }
  .subnav a { width: 100%; display: block; color: #6B7878; padding: 11px 2px; }
  .subnav a::after { display: none; }
  .subnav a:hover { color: #164450; }
  .subnav a.act { color: #164450; font-weight: 600; }
}

/* ════ 3 · BENTO "Todo lo que la aerolínea te debe" ════ */
.dp .bento-sec { background: linear-gradient(to bottom, #fff 0%, var(--gray-50) 12%, var(--gray-50) 88%, #fff 100%); }
.dp .bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(190px, auto); gap: 18px; margin-top: 48px; }
.dp .bc { background: #fff; border: 1px solid var(--gray-100); border-radius: 20px; box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06); padding: 32px 28px 36px; position: relative; overflow: hidden; cursor: pointer; text-align: left; transition: transform var(--t), box-shadow var(--t), border-color var(--t); }
.dp .bc:hover { box-shadow: 0 4px 8px rgba(0,0,0,.06), 0 16px 40px rgba(0,0,0,.08); }
.dp .bc:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.dp .bc h3 { font-size: 1.1rem; font-weight: 600; position: relative; }
.dp .bc p { color: var(--gray-500); font-size: .95rem; line-height: 1.58; margin-top: 8px; position: relative; }
/* Enlace anclado abajo-izquierda a la MISMA distancia en todas las cards */
.dp .bc[data-pop] { padding-bottom: 78px; }
.dp .bc .more { display: inline-flex; align-items: center; gap: 6px; position: absolute; left: 28px; bottom: 32px; max-width: calc(100% - 56px); color: var(--blue); font-weight: 600; font-size: .88rem; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0% 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .18s ease; }
.dp .bc .more svg { width: 14px; height: 14px; flex-shrink: 0; }
/* misma animación que los enlaces del carrusel (.type-link): subrayado que crece */
.dp .bc:hover .more { background-size: 100% 1px; }
.dp .bc-ic { width: 44px; height: 44px; border-radius: var(--r-md); background: var(--blue-light); color: var(--blue); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; position: relative; }
.dp .bc-ic svg { width: 22px; height: 22px; }
/* Mesh monocromo de marca dentro de las cards blancas */
.dp .mesh { position: absolute; top: -46%; right: -24%; width: 72%; height: 88%; pointer-events: none; background: radial-gradient(closest-side at 62% 40%, rgba(26,115,232,.16), transparent 72%), radial-gradient(closest-side at 30% 68%, rgba(26,115,232,.08), transparent 70%); filter: blur(46px); }

/* Card 600 € = el fondo de la sección comparativa OSCURA del home
   (#0d1825 + halos azules) con los tramos como mini-cards translúcidas */
.dp .bc-600 { grid-column: span 2; grid-row: span 2; display: flex; flex-direction: column; justify-content: flex-end; min-height: 400px; background: #0d1825; border: 0; box-shadow: 0 20px 60px rgba(10,25,41,.2); }
.dp .bc-600::before { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(ellipse 70% 60% at 85% 10%, rgba(26,115,232,0.45) 0%, rgba(26,115,232,0) 70%), radial-gradient(ellipse 45% 50% at 8% 92%, rgba(26,115,232,0.25) 0%, rgba(26,115,232,0) 65%); }
.dp .bc-600 > * { position: relative; z-index: 1; }
.dp .bc-600 .giant { font-size: clamp(4.4rem, 9vw, 7.4rem); font-weight: 700; letter-spacing: -.04em; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.dp .bc-600 .giant small { font-size: .42em; font-weight: 700; letter-spacing: -.02em; }
.dp .bc-600 h3 { color: #fff; margin-top: 14px; }
.dp .bc-600 p { color: rgba(255,255,255,.75); max-width: 40ch; font-size: 1rem; }
.dp .bc-600 .tramos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.dp .bc-600 .tramos .chip-mono { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,.85); }
.dp .bc-600 .chip-mono b { color: #7EB3F7; }
.dp .bc-600 .more { color: #7EB3F7; }

.dp .chip-mono { font-size: .76rem; font-weight: 600; color: var(--dark); border: 1px solid var(--gray-200); border-radius: var(--r-md); padding: 6px 10px; background: #fff; white-space: nowrap; }
.dp .chip-mono b { color: var(--blue); font-weight: 700; }

/* Card "5 años": el numeral entero en azul (aprobado) */
.dp .bc-num .giant2 { font-size: clamp(2.6rem, 4vw, 3.4rem); font-weight: 700; letter-spacing: -.03em; color: var(--blue); font-variant-numeric: tabular-nums; position: relative; }
.dp .bc-num .giant2 b { color: var(--blue); font-weight: 700; }
.dp .bc-num h3 { margin-top: 10px; }

/* Lista dentro de una card del bento (owner 14-ago-2026: escribio en lista los
   documentos a conservar). Mismo check azul dibujado con bordes que ya usan las
   listas de los popups (.alp-modal-body ul), a menor escala para la card. */
.dp .bc .bc-list { list-style: none; display: grid; gap: 8px; margin: 4px 0 12px; }
.dp .bc .bc-list li { position: relative; padding-left: 22px; color: var(--gray-500); font-size: .95rem; line-height: 1.55; }
.dp .bc .bc-list li::before { content: ""; position: absolute; left: 1px; top: 7px; width: 10px; height: 6px; border-left: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(-45deg); border-radius: 1px; }

/* Card "¿Te cubre la ley europea?": gradiente azul claro */
.dp .bc-norm { background: linear-gradient(135deg, #EEF3FE 0%, #DCE9FD 100%); border-color: transparent; }
/* Sobre fondo azul el icono necesita fondo blanco, como en la banda de
   gastos: con --blue-light se fundia con la card. */
.dp .bc-norm .bc-ic { background: #fff; }

.dp .bc-wide { grid-column: span 2; }
.dp .choice2 { display: flex; align-items: center; gap: 10px; margin-top: 16px; position: relative; }
.dp .choice2 .ch { flex: 1; display: flex; align-items: center; gap: 10px; background: var(--gray-50); border: 1px solid var(--gray-100); border-radius: 14px; padding: 13px 14px; font-size: .88rem; font-weight: 600; color: var(--dark); }
.dp .choice2 .ch svg { width: 17px; height: 17px; color: var(--blue); flex: none; }
.dp .choice2 .ch-o { font-size: .75rem; font-weight: 700; color: var(--gray-400); flex: none; }
@media (max-width: 560px) { .dp .choice2 { flex-direction: column; align-items: stretch; } .dp .choice2 .ch-o { text-align: center; } }

/* ════ 4 · "Mientras esperas": iconitos grandes centrados, sin cards ════ */
.dp .mini-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 34px; }
.dp .mini { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 36px 16px; }
/* La pastilla de icono vive en base.css (.mini-ic): la comparten /derechos y /tarifas. */
.dp .mini h5 { font-size: 15.5px; font-weight: 700; color: var(--dark); margin: 0; }
.dp .mini p { font-size: 13.5px; color: var(--gray-500); line-height: 1.62; margin-top: 7px; max-width: 26ch; }
@media (max-width: 900px) { .dp .mini-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; } }
@media (max-width: 480px) { .dp .mini-grid { grid-template-columns: 1fr; } }

/* ════ 5 · IMPORTES: cards pastel + Montreal amarilla aparte ════ */
.dp .imp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 44px; }
.dp .imp { display: flex; flex-direction: column; border-radius: 24px; padding: 38px 30px 24px; min-height: 296px; background: var(--gray-100); }
.dp .imp:nth-child(2) { background: var(--blue-light); }
.dp .imp:nth-child(3) { background: #D7E5FC; }
.dp .imp .n { font-size: clamp(3rem, 5vw, 4.2rem); font-weight: 700; letter-spacing: -.03em; line-height: 1; color: var(--blue); font-variant-numeric: tabular-nums; }
.dp .imp .n .eur { font-size: .42em; font-weight: 700; margin-left: 5px; color: var(--blue); }
.dp .imp .dist { font-size: 1rem; font-weight: 700; letter-spacing: -.01em; color: var(--dark); margin-top: 16px; }
.dp .imp .rt { display: flex; align-items: flex-start; gap: 8px; font-size: .88rem; color: var(--gray-500); margin-top: 6px; line-height: 1.5; min-height: 42px; }
.dp .imp .rt svg { width: 13px; height: 13px; color: var(--gray-400); flex: none; margin-top: 3px; }
.dp .imp .ft { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid rgba(13,13,13,.08); margin-top: auto; padding-top: 13px; font-size: .72rem; font-weight: 600; letter-spacing: .02em; color: var(--gray-500); }
@media (max-width: 900px) {
  .dp .imp-grid { grid-template-columns: 1fr; gap: 14px; }
  /* Apiladas en móvil no necesitan el min-height de igualado del grid 3-col;
     bajamos altura y padding (owner 05-jul: demasiado altas en móvil). */
  .dp .imp { min-height: 0; padding: 22px 22px 16px; }
  .dp .imp .rt { min-height: 0; margin-top: 4px; }
  .dp .imp .dist { margin-top: 12px; }
  /* Aire alrededor del separador: margin-top (auto se colapsa al quitar el
     min-height) por encima de la línea + padding-top por debajo (owner 05-jul:
     que respire, no pegado al texto de la ruta). */
  .dp .imp .ft { margin-top: 20px; padding-top: 15px; }
}

.dp .stats-legal { color: var(--gray-500); font-size: .92rem; line-height: 1.65; margin-top: 34px; max-width: 76ch; }
.dp .stats-legal strong { color: var(--dark); }

.dp .montreal { display: grid; grid-template-columns: auto 1fr; gap: 16px 56px; align-items: center; background: #FEF7E0; border-radius: 24px; padding: 36px 40px; margin-top: 48px; }
.dp .mont-k { display: inline-flex; align-items: center; gap: 8px; font-size: .8rem; font-weight: 700; color: #B06000; }
.dp .mont-k svg { width: 15px; height: 15px; }
.dp .mont-n { font-size: clamp(2.6rem, 4.5vw, 3.8rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.05; color: var(--dark); margin-top: 8px; }
.dp .mont-n span { font-size: .36em; font-weight: 700; color: #B06000; }
.dp .mont-sub { font-size: 1rem; font-weight: 700; color: var(--dark); margin-top: 6px; }
.dp .mont-r p { font-size: .93rem; color: var(--gray-700); line-height: 1.65; margin: 0; }
.dp .mont-r p strong { color: var(--dark); }
.dp .mont-pill { display: inline-flex; align-items: center; gap: 7px; background: #F5EAD0; color: #8F6B00; font-size: .82rem; font-weight: 600; border-radius: 999px; padding: 8px 15px; margin-top: 14px; }
.dp .mont-pill svg { width: 14px; height: 14px; }
@media (max-width: 760px) { .dp .montreal { grid-template-columns: 1fr; padding: 28px 22px; } }

/* ════ 6 · EXCEPCIONES (paneles NO / SÍ) ════ */
.dp .exc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 28px; align-items: start; }
.dp .exc-panel { background: var(--white); border-radius: var(--r-xl); padding: 30px; border: 1px solid var(--gray-100); box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06); }
@media (max-width: 560px) { .dp .exc-grid { margin-top: 22px; } }
.dp .exc-panel .tag { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 8px 14px; border-radius: var(--r-md); }
.dp .exc-panel.no .tag { background: rgba(192,57,43,.08); color: #C0392B; }
.dp .exc-panel.yes .tag { background: rgba(19,115,51,.08); color: var(--green); }
.dp .exc-panel h3 { font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; margin-top: 18px; color: var(--dark); }
.dp .exc-panel ul { list-style: none; margin-top: 22px; display: grid; gap: 15px; }
/* el icono, centrado con el texto de la fila (owner 14-ago-2026) */
.dp .exc-panel li { display: flex; gap: 14px; align-items: center; font-size: .96rem; line-height: 1.55; color: var(--gray-700); }
.dp .exc-panel li .ck { width: 26px; height: 26px; border-radius: var(--r-md); flex: none; display: flex; align-items: center; justify-content: center; }
.dp .exc-panel li .ck svg { width: 15px; height: 15px; }
.dp .exc-panel.no li .ck { background: rgba(192,57,43,.08); color: #C0392B; }
.dp .exc-panel.yes li .ck { background: rgba(19,115,51,.08); color: var(--green); }
.dp .exc-panel li span strong { font-weight: 600; color: var(--dark); }
/* Panel unico (equipaje: declaracion especial de valor). Owner 14-ago-2026:
   una sola columna con el listado centrado entre los dos parrafos, como salia
   en movil, y el ancho de la tarjeta «lo que significa en euros» de /tarifas
   (920 px, .tar-tabla-wrap). */
.dp .exc-grid--uno { grid-template-columns: 1fr; max-width: 920px; margin-left: auto; margin-right: auto; }
.dp .exc-panel .exc-intro { font-size: .96rem; line-height: 1.65; color: var(--gray-700); margin-top: 20px; }
.dp .exc-mid { width: fit-content; max-width: 100%; margin: 26px auto 0; }
.dp .exc-mid h3 { margin-top: 0; text-align: center; }
.dp .exc-mid ul { margin-top: 16px; }
/* etiqueta que es una frase entera: el check va CENTRADO respecto al bloque
   de texto, no colgado de la primera linea (owner 14-ago-2026) */
.dp .exc-panel .tag--frase { align-items: center; }
.dp .exc-panel .tag--frase svg { margin-top: 0; flex: none; }
.dp .exc-foot { color: var(--gray-500); font-size: .92rem; line-height: 1.6; margin-top: 24px; }
.dp .exc-foot strong { color: var(--dark); font-weight: 600; }
.dp .exc-more { display: flex; justify-content: center; margin-top: 32px; }
.dp .exc-more button { display: inline-flex; align-items: center; gap: 8px; background: var(--white); color: var(--gray-700); font-size: .92rem; font-weight: 600; padding: 11px 22px; border-radius: var(--r-md); box-shadow: 0 1px 2px rgba(0,0,0,.05); transition: color var(--t), box-shadow var(--t), transform var(--t); }
.dp .exc-more button:hover { color: var(--dark); transform: translateY(-1px); box-shadow: 0 8px 22px rgba(0,0,0,.08); }
.dp .exc-more button svg { width: 15px; height: 15px; color: var(--blue); }

/* ════ 7 · Desviaciones aprobadas sobre componentes del home ════ */
/* Proceso: fondo blanco y título izquierdo ESTÁTICO (en el home es sticky
   y lleva gradiente de enlace con la calculadora) */
.dp .section-how { padding: var(--sec-y) 0; background: #fff; }
.dp .how-left { position: static; }
/* CTA: halo blanco CONCISO desde arriba-centro iluminando "Es tu dinero".
   home.css pinta su ::before con opacity:.16 — aquí el halo va a plena
   opacidad (con .16 no se percibe, ya reportado por el owner). */
.dp .section-cta { padding: 96px 0 112px; }
.dp .section-cta::before { opacity: 1; background: radial-gradient(ellipse 26% 18% at 50% 0%, rgba(255,255,255,.32) 0%, rgba(255,255,255,.08) 42%, rgba(255,255,255,0) 62%), radial-gradient(circle at 80% 12%, rgba(29,111,232,.20) 0, transparent 42%), radial-gradient(circle at 12% 88%, rgba(29,111,232,.12) 0, transparent 45%); }
/* Piezas del CTA que el home real NO define (su markup es otro): eyebrow
   "Es tu dinero" y fila de reassurance. Sin esto los checks SVG (sin
   width de atributo) renderizaban a tamaño natural — gigantes. */
.dp .section-cta .cta-ck { display: block; color: #7EB3F7; font-weight: 600; font-size: .95rem; letter-spacing: .01em; }
.dp .section-cta h2 { color: #fff; font-size: clamp(1.9rem, 3.8vw, 2.9rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.12; max-width: 17ch; margin: 16px auto 0; }
.dp .section-cta p { color: rgba(255,255,255,.55); font-size: 16px; line-height: 1.6; max-width: 50ch; margin: 18px auto 36px; }
.dp .cta-reassure { display: flex; justify-content: center; gap: 10px 30px; flex-wrap: wrap; margin-top: 40px; }
.dp .cta-reassure span { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.66); font-size: .93rem; font-weight: 500; }
.dp .cta-reassure svg { width: 16px; height: 16px; color: #7EB3F7; flex: none; }
/* CTA: halo superior con angulo mas ABIERTO en movil, lo mas parecido al escritorio (owner 15-jul) */
@media (max-width: 768px) { .dp .section-cta::before { background: radial-gradient(ellipse 88% 15% at 50% 0%, rgba(255,255,255,.32) 0%, rgba(255,255,255,.08) 45%, rgba(255,255,255,0) 72%), radial-gradient(circle at 80% 12%, rgba(29,111,232,.20) 0, transparent 42%), radial-gradient(circle at 12% 88%, rgba(29,111,232,.12) 0, transparent 45%); } }

/* ════ 8 · POPUPS canónicos (patrón OCR del home) ════ */
.alp-overlay { position: fixed; inset: 0; z-index: 320; display: none; align-items: center; justify-content: center; padding: 28px; background: rgba(12,22,38,.55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); opacity: 0; transition: opacity .22s cubic-bezier(.22,.61,.36,1); }
.alp-overlay.open { opacity: 1; }
.alp-modal { background: #fff; width: min(720px, 100%); max-height: calc(100vh - 32px); border-radius: 26px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 32px 80px -24px rgba(0,0,0,.35); transform: scale(.96) translateY(10px); opacity: 0; transition: transform .42s cubic-bezier(.16,1,.3,1), opacity .32s ease; position: relative; }
.alp-overlay.open .alp-modal { transform: scale(1) translateY(0); opacity: 1; }
.alp-head { padding: 44px 66px 22px 44px; position: relative; flex: none; overflow: hidden; }
.alp-head .mesh { top: -120%; right: -10%; width: 52%; height: 220%; }
.alp-tag { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); position: relative; }
.alp-title { font-size: 1.3rem; font-weight: 700; letter-spacing: -.02em; margin-top: 6px; position: relative; }
.alp-x { position: absolute; top: 20px; right: 20px; z-index: 3; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #f1f2f5; color: #6b6f76; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background var(--t), color var(--t); }
.alp-x:hover { background: #e6e7ec; color: #3a3d44; }
.alp-x:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.alp-x svg { width: 16px; height: 16px; }
.alp-modal-body { padding: 26px 44px 40px; overflow-y: auto; -webkit-overflow-scrolling: touch; flex: 1; }
.alp-modal-body h4 { font-size: 1.02rem; font-weight: 700; letter-spacing: -.005em; margin: 24px 0 8px; }
.alp-modal-body h4:first-child { margin-top: 0; }
.alp-modal-body p { color: var(--gray-500); font-size: .98rem; line-height: 1.7; margin-top: 8px; }
.alp-modal-body ul { list-style: none; margin-top: 10px; display: grid; gap: 9px; }
.alp-modal-body ul li { position: relative; padding-left: 26px; color: var(--gray-500); font-size: .96rem; line-height: 1.6; }
.alp-modal-body ul li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 12px; height: 7px; border-left: 2.2px solid var(--blue); border-bottom: 2.2px solid var(--blue); transform: rotate(-45deg); border-radius: 1px; }
.alp-modal-body ul.neg li::before { border: none; width: 13px; height: 13px; top: 5px; transform: none; background: no-repeat center/13px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0392b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E"); }
.alp-modal-body strong { color: var(--dark); }
.pop-ex { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: var(--r-md); padding: 16px 18px; margin-top: 18px; }
.pop-ex .lbl { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.pop-ex p { margin-top: 6px; font-size: .94rem; }
.alp-foot { flex: none; position: relative; padding: 16px 28px; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; background: #fff; }
/* Separador del pie sutil e inset (como en móvil): no llega a los extremos. */
.alp-foot::before { content: ""; position: absolute; left: 28px; right: 28px; top: 0; height: 1px; background: var(--gray-100); }
.alp-foot .note { color: var(--gray-500); font-size: .86rem; }
/* La flecha del CTA no trae width/height en el markup del shell; sin esta
   regla el SVG se estiraba a ~107px (botón deforme, sobre todo full-width
   en móvil). Owner 4-jul-2026. */
.alp-foot .btn-cta svg { width: 16px; height: 16px; flex: none; }
@media (max-width: 760px) {
  /* full-screen EXACTO al popup OCR del home */
  .alp-overlay { padding: 0; }
  .alp-modal { width: 100%; max-width: 100%; min-height: 100dvh; max-height: 100dvh; border-radius: 0; }
  /* Owner 8-jul (#8): el KICKER (.alp-tag, antes del título) sigue AZUL; el
     TÍTULO vuelve a NEGRO (var(--dark)) — lo había puesto azul por error. Sube
     un poco (menos padding-top, respetando el hueco de la X a la derecha).
     Separador sutil tras el título + antes del botón (grises e insertados).
     Tamaños de título/contenido/nota menores, coherentes con el sitio. */
  .alp-head { padding: 26px 62px 12px 22px; }
  .alp-head::after { content: ""; position: absolute; left: 22px; right: 22px; bottom: 0; height: 1px; background: var(--gray-100); }
  /* Owner 8-jul: tamaños en px REDONDOS (nada de 18.4). Título 18, subtítulo
     (h4) y cuerpo (p/li) unificados a 15, nota al pie 12 (igual que .ocr-note
     del popup OCR del home). */
  .alp-title { color: var(--dark); font-size: 18px; margin-top: 4px; }
  .alp-modal-body { padding: 18px 22px 30px; }
  .alp-modal-body h4 { font-size: 15px; }
  .alp-modal-body p { font-size: 15px; }
  .alp-modal-body ul li { font-size: 15px; }
  /* pie: mantiene sticky + separador inset del base; sólo ajustes móviles */
  .alp-foot .btn-cta { width: 100%; justify-content: center; }
  .alp-foot .note { width: 100%; text-align: center; order: 2; font-size: 12px; }
}

/* ════ 9 · Reveal canónico de elementos propios ════ */
.dp .rv { opacity: 0; transform: translateY(20px); transition: opacity .55s ease, transform .55s ease, box-shadow var(--t); }
.dp .rv.on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .dp .rv { opacity: 1; transform: none; transition: none; }
  .alp-overlay, .alp-modal { transition: none; }
}

/* ════ 10 · Responsive general ════ */
@media (max-width: 1000px) {
  .dp .bento { grid-template-columns: repeat(2, 1fr); }
  .dp .bc-600 { grid-column: span 2; grid-row: auto; min-height: 340px; }
}
@media (max-width: 860px) { .dp .chip { flex-basis: calc(50% - 7px); height: 142px; } }
@media (max-width: 768px) { .dp .checker { padding: 24px 16px 22px; } }
@media (max-width: 640px) {
  .dp .hero h1 { font-size: clamp(1.9rem, 7.5vw, 2.6rem); }
  .dp .bento { grid-template-columns: 1fr; }
  .dp .bc-600 { grid-column: span 1; min-height: 300px; }
  .dp .bc-wide { grid-column: span 1; }
  .dp .exc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 400px) { .dp .chip { flex-basis: calc(50% - 7px); height: 132px; } }

/* ════ 11 · Gastos y reservas perdidas — banda bajo el bento ════ */
.dp .gband-wrap { margin-top: 18px; }
.dp .bc.gband { position: relative; display: flex; align-items: center; gap: 24px; padding: 24px 34px; background: linear-gradient(135deg, #EEF3FE 0%, #DCE9FD 100%); border-color: transparent; }
.dp .gband .bc-ic { margin-bottom: 0; flex: none; background: #fff; color: var(--blue); }
.dp .gband-txt { flex: 1; min-width: 0; padding-right: 350px; }
.dp .gband-txt h3 { margin: 0; }
.dp .gband-txt p { margin-top: 5px; }
/* chips legales a la DERECHA (distribución del mockup); en el orden van ANTES
   del enlace, así el enlace azul queda el último (abajo) como en el resto de cards */
.dp .gband .leg-chips { position: absolute; top: 50%; right: 34px; transform: translateY(-50%); max-width: 340px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.dp .gband .gband-link { position: static; display: inline-flex; margin-top: 12px; }
/* Unificación de chips (owner 14-jul): los chips legales de la banda usan el
   MISMO tratamiento dark-glass que los tramos de importe del card 600 (fondo
   oscuro + acento azul claro), que sí gustan, en vez del pill blanco plano. */
.dp .gband .leg-chips .chip-mono { background: #1b2632; border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.85); box-shadow: none; }
.dp .gband .leg-chips .chip-mono b { color: #7EB3F7; }

/* La banda dentro del bento (denegacion: ocupa el hueco de la card de
   circunstancias extraordinarias). Alli mide 2 columnas, no el ancho
   completo, asi que los chips dejan de ir absolutos y el texto no reserva
   los 350px de la derecha. */
.dp .bento .bc.gband { flex-direction: column; align-items: flex-start; gap: 14px; padding: 32px 28px; }
.dp .bento .gband-txt { padding-right: 0; }
.dp .bento .gband .leg-chips { position: static; transform: none; max-width: none; justify-content: flex-start; margin-top: 12px; }
.dp .bento .gband .gband-link { margin-top: 24px; }   /* el mismo hueco chips->enlace que las demas cards */
/* fix trampa flexbox: sin min-width:0 las mini-cards de .choice2 no bajan del min-content */
.dp .choice2 .ch { min-width: 0; }
@media (max-width: 820px) {
  .dp .bc.gband { flex-direction: column; align-items: flex-start; gap: 14px; }
  .dp .gband-txt { padding-right: 0; }
  .dp .gband .leg-chips { position: static; transform: none; width: auto; justify-content: flex-start; margin-top: 12px; }
}

/* ═══ ESCALA TIPOGRÁFICA — .dp (paginas internas), gemela del bloque de home.css.
   Owner 14-jul. Pisa los .dp de hero/CTA de arriba por orden de fuente.
   ↩ REVERTIR: borrar este bloque (y su gemelo bare en home.css). ═══ */
.dp .hero h1{font-size:56px}
.dp .section-cta h2{font-size:44px}
.dp .section-title,.dp .faq-wrap-left h2,.dp .compare-left h2{font-size:38px}
.dp .hero-sub{font-size:19px}
.dp .section-sub,.dp .faq-wrap-left p,.dp .compare-left p{font-size:16px}
.dp .section-cta .cta-ck{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.dp .faq-q{font-size:15px;font-weight:600}
.dp .faq-ans-inner{font-size:15px}
.dp .faq-wrap-left a{font-size:14px}
.dp .how-step-label{font-size:11px}
.dp .how-step h3{font-size:18px}
.dp .how-step p{font-size:16px}
.dp .compare-leg-row span{font-size:14px}
@media(max-width:860px){
  .dp .hero h1{font-size:40px}
  .dp .section-cta h2{font-size:36px}
  .dp .section-title,.dp .faq-wrap-left h2,.dp .compare-left h2{font-size:30px}
  .dp .hero-sub{font-size:17px}
}
@media(max-width:560px){
  .dp .hero h1{font-size:32px}
  .dp .section-cta h2{font-size:30px}
  .dp .section-title,.dp .faq-wrap-left h2,.dp .compare-left h2{font-size:26px}
  .dp .hero-sub{font-size:16px}
}

/* ════ "Reclama a las aerolíneas más frecuentes" ════
   Fuente única: _partials/aerolineas-frecuentes.php (antes duplicado inline en las
   7 páginas de incidencia). Hover = el MISMO del bento .bc (profundiza la sombra, NO
   levanta). CTA = enlace canónico: subrayado que crece 0→100% (.bc .more) + flecha que
   se desplaza 3px (.air-card .arw); box-decoration-break:clone para multilínea, y la
   flecha atada a la última palabra (.ar-lnk-nb) para que nunca quede huérfana. */
.dp .ar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.dp .ar-tile{background:#fff;border:1px solid var(--gray-100);border-radius:20px;box-shadow:0 2px 4px rgba(0,0,0,.04),0 8px 32px rgba(0,0,0,.06);padding:24px;text-decoration:none;display:flex;flex-direction:column;gap:12px;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.dp .ar-tile:hover{box-shadow:0 4px 8px rgba(0,0,0,.06),0 16px 40px rgba(0,0,0,.08)}
.dp .ar-tile .ar-nm{font-weight:700;color:var(--dark);font-size:17px}
.dp .ar-tile .ar-lnk{margin-top:auto;color:var(--blue);font-weight:600;font-size:14px;line-height:1.5}
.dp .ar-tile .ar-lnk-in{display:inline;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .2s cubic-bezier(.22,.61,.36,1)}
.dp .ar-tile:hover .ar-lnk-in,.dp .ar-tile:focus-visible .ar-lnk-in{background-size:100% 1px}
.dp .ar-tile .ar-lnk svg{width:14px;height:14px;vertical-align:-2px;margin-left:1px;transition:transform .2s cubic-bezier(.22,.61,.36,1)}
.dp .ar-tile:hover .ar-lnk svg,.dp .ar-tile:focus-visible .ar-lnk svg{transform:translateX(3px)}
.dp .ar-lnk-nb{white-space:nowrap} /* la flecha nunca se separa de la última palabra */
.dp .ar-all{grid-column:span 3;background:var(--blue-light);flex-direction:row;align-items:center;justify-content:center;gap:8px;color:var(--blue);font-weight:700}
.dp .ar-all svg{width:18px;height:18px;transition:transform .2s cubic-bezier(.22,.61,.36,1)}
.dp .ar-all:hover svg,.dp .ar-all:focus-visible svg{transform:translateX(3px)}
@media(max-width:720px){.dp .ar-grid{grid-template-columns:1fr 1fr}.dp .ar-all{grid-column:span 2}}
@media(max-width:480px){.dp .ar-grid{grid-template-columns:1fr}.dp .ar-all{grid-column:span 1}}

/* ── Cobertura legal por aerolínea (sección nueva de /derechos/retraso-vuelo/{slug})
   Dos tarjetas a la par + una ancha debajo, con el mismo lenguaje visual que
   el resto de bento de la página. En móvil, una columna. */
.dp .cards-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.dp .cards-2 > .bc { margin: 0; }
.dp #cobertura .bc h3 { margin-bottom: .55rem; }
.dp .ej-retraso { margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--gray-100); color: var(--gray-600); }
@media (max-width: 860px) { .dp .cards-2 { grid-template-columns: 1fr; } }

/* ── Logos de operadores: UNA sola línea, siempre ─────────────────────────
   La regla vivía solo en aerolinea.css, que NO se carga en las páginas de
   incidencia (/derechos/{incidencia}/{aerolínea}): allí los logos se iban a
   dos filas. Se trae aquí, que sí las alcanza.

   Truco: flex-wrap:wrap + alto de UNA fila + overflow:hidden. Los que no
   caben bajan a la segunda fila y quedan ocultos, así que los visibles se
   ven ENTEROS —nada de un logo cortado por la mitad, que es lo que pasa con
   nowrap+overflow—. Caben los que caben: 3 en móvil, 5 en escritorio. */
.dp .op-logos { display: flex; flex-wrap: wrap; gap: 8px; height: 50px; overflow: hidden; margin-bottom: 15px; }
.dp .op-logos .al-logo { flex: 0 0 auto; margin-bottom: 0; }

/* ── «Por qué reclamar» de la página por-aerolínea (#motivos) ──────────────
   Mismas tarjetas que en /aerolineas/{slug} —icono en el color de la marca,
   CTA con subrayado que crece y flecha que avanza— pero dentro del carrusel
   deslizable de derechos-del-pasajero. Los estilos vivían en aerolinea.css,
   que no se carga en las páginas de incidencia, así que se traen aquí. */
.dp #motivos .why-carousel-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.dp #motivos .why-track { align-items: stretch; }
.dp #motivos .why-slide.w { background: #fff; border: 1px solid var(--gray-100); border-radius: 20px; box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06); padding: 26px 24px; display: flex; flex-direction: column; transition: box-shadow .2s cubic-bezier(.22,.61,.36,1); }
.dp #motivos .why-slide.w:hover { box-shadow: 0 4px 8px rgba(0,0,0,.06), 0 16px 40px rgba(0,0,0,.08); }
.dp #motivos .w-ic { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; margin-bottom: 14px; }
.dp #motivos .w-ic svg { width: 23px; height: 23px; }
.dp #motivos .why-slide h4 { font-size: 1rem; font-weight: 700; color: var(--dark); }
.dp #motivos .why-slide p { color: var(--gray-500); font-size: .9rem; line-height: 1.6; margin-top: 7px; }
.dp #motivos .w-cta-wrap { margin-top: auto; padding-top: 14px; }
.dp #motivos .w-cta { display: inline; color: var(--blue); font-weight: 600; font-size: .9rem; line-height: 1.55; text-decoration: none; background-image: linear-gradient(currentColor,currentColor); background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 1px; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background-size .2s cubic-bezier(.22,.61,.36,1); }
.dp #motivos .why-slide:hover .w-cta, .dp #motivos .why-slide:focus-visible .w-cta { background-size: 100% 1px; }
.dp #motivos .w-cta svg { width: 14px; height: 14px; vertical-align: -2px; margin-left: 1px; transition: transform .2s cubic-bezier(.22,.61,.36,1); }
.dp #motivos .w-cta-nb { white-space: nowrap; }
.dp #motivos .why-slide:hover .w-cta svg, .dp #motivos .why-slide:focus-visible .w-cta svg { transform: translateX(3px); }
@media (max-width: 700px) { .dp #motivos .why-carousel-header { flex-direction: column; align-items: flex-start; } }

/* El carrusel de incidencias (partial único) reutiliza .why-* de home.css.
   Aquí solo el encabezado con las flechas y el icono en color de compañía. */
.dp .carr-inc .why-carousel-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
@media (max-width: 700px) { .dp .carr-inc .why-carousel-header { flex-direction: column; align-items: flex-start; } }
