/* ===== PALETA CLARA (elegante y visible) ===== */
:root{
  --bg:#f7f9fc; --bg-alt:#f1f5fb; --card:#ffffff; --text:#111827; --muted:#64748b; --line:#e5e7eb;
  --primary:#129AD3;           /* azul del pájaro */
  --primary-600:#0F82B0;       /* azul del pájaro (más oscuro para hover) */
  --accent:#28573a; --tint:#eef2ff;

  /* Alturas clave (ajusta aquí) */
  --ticker-h:44px;
  --logo-h:100px;
  --logo-h-sm:64px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text); background:var(--bg);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-600)}
a:focus-visible{outline:3px solid #dbeafe; outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}

/* ===== TICKER ===== */
.ticker{position:sticky;top:0;z-index:60;border-bottom:1px solid var(--line);background:#fff}
@supports ((backdrop-filter:blur(8px)) or (-webkit-backdrop-filter:blur(8px))){
  .ticker{backdrop-filter:saturate(1.1) blur(8px);
    background:linear-gradient(90deg,#ffffff 0%,#f8fafc 50%,#ffffff 100%)}
}
.ticker-inner{display:flex;align-items:center;gap:10px;min-height:var(--ticker-h);overflow:hidden}
.tick{white-space:nowrap;display:flex;gap:32px;animation:slide 22s linear infinite}
.pill{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border-radius:999px;font-weight:700;letter-spacing:.2px;
  background:#fff;border:1px solid var(--line);color:#0f172a; box-shadow:0 2px 6px rgba(0,0,0,.04)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ===== TOPBAR ===== */
.topbar{position:sticky;top:var(--ticker-h);z-index:50;border-bottom:1px solid var(--line);background:#fff}
.topbar-inner{display:flex;align-items:center;gap:18px;min-height:calc(var(--logo-h) + 24px)}
.brand{display:flex;align-items:center;gap:12px}
.brand .logo{height:var(--logo-h);width:auto;object-fit:contain}
.brand-name{font-family:"Plus Jakarta Sans", Inter, sans-serif;font-weight:900;letter-spacing:.2px}
.nav{display:flex;gap:22px;margin-left:24px}
.nav a{font-weight:700;color:#334155}
.nav a:hover{color:var(--primary)}
.contact-links{margin-left:auto;display:flex;align-items:center;gap:14px}
.btn-mini{padding:9px 12px;border-radius:10px;font-size:14px}

/* ===== HERO ===== */
.hero{
  position:relative;overflow:hidden;border-bottom:1px solid var(--line);
  background:
    radial-gradient(900px 300px at 10% -20%, rgba(31,58,138,.06), transparent 60%),
    radial-gradient(800px 280px at 90% -15%, rgba(199,165,114,.10), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, #f8fafc 70%, #f8fafc 100%);
}
.hero-inner{
  display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:flex-start;
  min-height:640px;padding:64px 0 76px;
}

/* === Tarjeta del héroe y claim centrado === */
.claim-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  width:clamp(320px, 38vw, 560px);
  aspect-ratio: 1 / 1;
  background:var(--card); border:1px solid var(--line); border-radius:20px;
  box-shadow:0 8px 30px rgba(2,6,23,.06);
  padding:clamp(16px, 2.8vw, 28px);
  text-align:center;
}
.hero-logo{
  height: clamp(140px, 26vw, 380px);
  width:auto; margin-bottom:10px; object-fit:contain;
}
.hero-claim{
  margin:0;
  font-weight:800;
  line-height:1.18;
  text-align:center;
  font-size: clamp(22px, 2.6vw, 32px);
  letter-spacing: -0.01em;
  max-width: 28ch;
  margin-inline:auto;
  text-wrap: balance; /* navegadores modernos */
}
.hero-claim .l1,
.hero-claim .l2{ display:block; }
@media (min-width:700px){
  .hero-claim .l1{ transform:translateX(0.02em); }
  .hero-claim .l2{ transform:translateX(-0.02em); }
}

/* === Gradiente de texto con fallback infalible === */
/* Fallback visible por defecto (mata cualquier regla anterior) */
.gradient-text{
  color:#0f172a !important;                 /* visible SIEMPRE */
  -webkit-text-fill-color:#0f172a !important;
  background:none !important;
  background-clip:border-box !important;
}
/* Si el navegador soporta background-clip:text, activamos el gradiente */
@supports ((-webkit-background-clip: text) or (background-clip: text)){
  .gradient-text{
    background: linear-gradient(90deg,#129AD3,#000000) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
  }
}

/* Títulos */
.eyebrow{font-weight:800;color:var(--primary);letter-spacing:.2px}
.title{
  font-family:"Plus Jakarta Sans", Inter, sans-serif;
  font-weight:900; line-height:1.05; margin:10px 0 10px;
  font-size:clamp(36px,5.8vw,60px);
  background:linear-gradient(180deg,#0f172a 0%, #334155 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.title span{
  color:#0f172a;-webkit-text-fill-color:#0f172a;background:none;
  background-image:linear-gradient(transparent 85%, color-mix(in srgb, var(--accent) 35%, transparent) 0);
  -webkit-box-decoration-break:clone; box-decoration-break:clone; padding:0 .04em; border-radius:4px
}
.subtitle{font-size:18px;color:#334155;max-width:62ch;margin-top:10px}

/* Chips */
.trust-row{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 14px}
.trust-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;
  background:#fff;border:1px solid var(--line);box-shadow:0 6px 16px rgba(0,0,0,.04);font-weight:700;color:#0f172a}
.badge-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}

/* Botones */
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:800;letter-spacing:.2px;
  border-radius:12px;padding:12px 16px;border:1px solid transparent;cursor:pointer;
  transition:background .18s ease, box-shadow .18s ease, transform .06s ease}
.btn:focus-visible{outline:3px solid #dbeafe; outline-offset:2px}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);
  box-shadow:0 6px 14px rgba(18,154,211,.16)}
.btn-primary:hover{background:var(--primary-600);
  box-shadow:0 12px 26px rgba(18,154,211,.22);transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0);box-shadow:0 4px 10px rgba(18,154,211,.18)}
.btn-ghost{background:#ffffff;color:#111827;border-color:var(--line)}
.btn-ghost:hover{background:#f9fafb}
.btn-full{width:100%}

/* Cards y formulario */
.card{
  background: var(--card, #ffffff);
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 16px;
  padding: 22px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.04);
}
.form-title{margin:0 0 4px}
.small{font-size:13px}
.muted{color:var(--muted)}
.field{margin:12px 0}
.form label{display:block;font-weight:700;margin-bottom:6px}
input[type="text"],input[type="email"],input[type="tel"],input[type="file"],select,textarea{
  width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid #dbeafe;border-color:#dbeafe}
.help{color:var(--muted);font-size:12px;margin-top:6px}
.r{color:#b45309;font-weight:800}

/* Banda confianza */
.band{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band .wrap{padding:18px 22px}
.band-list{list-style:none;margin:0;padding:0;display:flex;gap:12px;flex-wrap:wrap;color:#374151;font-weight:700}
.band-list li{display:flex;align-items:center;gap:8px;background:#ffffff;border:1px solid var(--line);
  padding:10px 12px;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.03)}

/* Grids */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.section{padding:72px 0}
.section-alt{background:var(--bg-alt)}

.stepcard{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:14px;padding:20px;background:#fff}
.stepnum{width:34px;height:34px;border-radius:9px;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;border:2px solid #fff;
  box-shadow:0 8px 18px rgba(18,154,211,.18)}

.case{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;position:relative;overflow:hidden}
.case::before{content:"";position:absolute;inset:auto -60% -60% auto;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(199,165,114,.25), transparent 60%)}
.beforeafter{font-weight:800;font-size:18px}
.case-note{font-weight:700;color:#1f2937;margin:0 0 6px}

.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
summary{cursor:pointer;font-weight:800;color:#1f2937}

/* Listas */
.list{margin:0;padding-left:0;list-style:none;display:grid;gap:8px}
.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;transform:translateY(1px);margin-right:8px}

/* Sticky CTA */
.sticky-cta{position:sticky;bottom:0;z-index:25;background:rgba(255,255,255,.95);
  border-top:1px solid var(--line);padding:14px 16px;display:flex;justify-content:center}
@supports ((backdrop-filter:blur(8px)) or (-webkit-backdrop-filter:blur(8px))){
  .sticky-cta{backdrop-filter:saturate(1.1) blur(8px)}
}

/* Footer */
footer .foot{padding:34px 22px;color:#374151}

/* Toast & Cookies */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:50;background:#111827;color:#fff;
  padding:10px 14px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .3s}
.toast.show{opacity:1}
.cookie{position:fixed;right:16px;bottom:16px;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:12px;z-index:40;display:none;max-width:320px;box-shadow:0 10px 20px rgba(0,0,0,.06)}
.cookie .row{display:flex;gap:8px;margin-top:10px}
.cookie .decline{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px}
.cookie .accept{border:1px solid transparent;background:var(--primary);color:#fff;border-radius:8px;padding:8px 10px}

/* FAB WhatsApp */
.wa-fab{position:fixed;right:16px;bottom:86px;z-index:26;display:inline-flex;align-items:center;padding:12px 16px;border-radius:999px;
  background:#25D366;color:#032d12;font-weight:800;border:1px solid rgba(0,0,0,.06);box-shadow:0 10px 20px rgba(0,0,0,.12)}
.wa-fab:hover{filter:brightness(1.05)}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(10px);transition:opacity .5s ease, transform .5s ease}
.reveal.in{opacity:1;transform:translateY(0)}

/* Responsive */
@media (max-width: 980px){
  .nav{display:none}
  .topbar{top:var(--ticker-h)}
  .brand .logo{height:var(--logo-h-sm)}
  .topbar-inner{min-height:calc(var(--logo-h-sm) + 20px)}
  .hero-inner{grid-template-columns:1fr;min-height:unset;padding:40px 0 48px}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .faq-grid{grid-template-columns:1fr}
  .wa-fab{bottom:80px}
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .tick{animation:none}
  .reveal{transition:none}
  .scroll-cue::after{animation:none}
}

/* Botón en móvil */
.btn{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.btn-primary,
.btn-primary:visited,
.btn-primary:active,
.btn-primary:focus,
.btn-primary:focus-visible{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
.btn-primary:active{ -webkit-transform:none !important; transform:none !important; box-shadow:0 4px 10px rgba(18,154,211,.18) }
.btn-primary.touch-pressed{ transform:translateY(0); box-shadow:0 6px 16px rgba(18,154,211,.22) }

/* Más respiración en móviles */
@media (max-width: 480px){
  .wrap{padding-left:20px;padding-right:20px}
  .hero .hero-copy{padding-left:6px;padding-right:6px}
  .hero .eyebrow{margin-left:0;margin-right:0;padding-left:2px;padding-right:2px;font-size:14px}
  .hero .subtitle{margin-left:0;margin-right:0;padding-left:2px;padding-right:2px;font-size:15px;line-height:1.35}
  .trust-row{gap:10px;margin-top:10px;padding-left:2px;padding-right:2px}
  .trust-badge{padding:8px 10px;font-size:13px}
}

/* Mostrar/ocultar helper */
.only-mobile{display:none}
@media (max-width:980px){ .only-mobile{display:block} }

/* ===== Tablas ===== */
.table-wrap{
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  box-shadow:0 8px 20px rgba(2,6,23,.04);
  overflow:auto; /* scroll horizontal si hace falta */
  margin-top:14px;
  position:relative; /* para sombras laterales */
}
.criteria-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 6px 14px rgba(2,6,23,.04);
  table-layout:fixed;
  font-size:15px;
  line-height:1.5;
  min-width:780px;
}
#tabla-epi{ min-width:860px; } /* un poco más ancha para respirar */

.criteria-table th,
.criteria-table td{
  padding:14px 16px;
  vertical-align:top;
}
.criteria-table thead th{
  text-align:left;
  font-weight:800;
  color:#0f172a;
  background:linear-gradient(180deg,#f8fafc, #eef2ff);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:1;
}
.criteria-table tbody tr:not(:last-child) td,
.criteria-table tbody tr:not(:last-child) th{
  border-bottom:1px solid var(--line);
}
.criteria-table tbody tr:nth-child(odd) td{ background:#fff; }
.criteria-table tbody tr:nth-child(even) td{ background:#fafafa; }

/* Bordes redondeados */
.criteria-table thead th:first-child{border-top-left-radius:10px}
.criteria-table thead th:last-child{border-top-right-radius:10px}
.criteria-table tbody tr:last-child td:first-child{border-bottom-left-radius:10px}
.criteria-table tbody tr:last-child td:last-child{border-bottom-right-radius:10px}

/* Destacar 1ª columna */
.criteria-table tbody th:first-child,
.criteria-table tbody td:first-child{
  font-weight:800;
  color:#0f172a;
}

/* Hover filas */
@media (hover:hover){
  .criteria-table tbody tr:hover td{ background:#f6fbff; }
}

/* Listas dentro de celdas */
.criteria-table td ul{ margin:6px 0 0 0; padding-left:18px; }
.criteria-table td li{ margin:4px 0; }

/* Columna 1 fija (sticky) */
.criteria-table thead th:first-child,
.criteria-table tbody th:first-child,
.criteria-table tbody td:first-child{
  position:sticky;
  left:0;
  z-index:2;
  background:#fff;
  border-right:1px solid var(--line);
  box-shadow:6px 0 10px rgba(2,6,23,.05);
}

/* Sombras laterales al hacer scroll horizontal */
.table-wrap::before,
.table-wrap::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:18px;
  pointer-events:none;
}
.table-wrap::before{ left:0; background:linear-gradient(90deg,#fff,rgba(255,255,255,0)); }
.table-wrap::after{ right:0; background:linear-gradient(270deg,#fff,rgba(255,255,255,0)); }

/* Conmutador de columnas */
.col-toggle{display:flex;gap:8px;margin:10px 0 8px}
.col-toggle button{
  padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-weight:700;background:#fff;cursor:pointer
}
.col-toggle button.off{opacity:.55}
.is-hidden{ display:none; }

/* Acentos Req/Excl en la primera celda */
.criteria-table tbody tr.req th:first-child{
  border-left:4px solid #16a34a; padding-left:12px;
}
.criteria-table tbody tr.excl th:first-child{
  border-left:4px solid #b91c1c; padding-left:12px;
}
.criteria-table tbody tr.req th:first-child::after{
  content:" Requisito"; font-weight:700; color:#166534; margin-left:6px; font-size:12px;
}
.criteria-table tbody tr.excl th:first-child::after{
  content:" Exclusión"; font-weight:700; color:#7f1d1d; margin-left:6px; font-size:12px;
}

/* Notas legales */
.legal-notes{
  margin-top:14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  box-shadow:0 6px 14px rgba(2,6,23,.04);
}
.legal-notes p{ margin:8px 0; }

/* Responsive tabla */
@media (max-width: 700px){
  .criteria-table th, .criteria-table td{ padding:12px 12px; font-size:14px; }
}

/* ==== HERO centrado y logo grande en móvil ==== */
@media (max-width: 980px){
  /* Centra el contenido vertical y horizontalmente */
  .hero-inner{
    grid-template-columns: 1fr;          /* una sola columna */
    place-items: center;                  /* centra en ambos ejes */
    min-height: 100vh;                    /* fallback */
    padding: 24px 0 32px;                 /* menos padding para que quepa */
  }
  /* Usa 100dvh cuando esté disponible (iOS/Android modernos) */
  @supports (height: 100dvh){
    .hero-inner{ min-height: calc(100dvh - var(--ticker-h)); }
  }

  /* Tarjeta más ancha y sin forzar 1:1 para que el logo pueda crecer */
  .claim-card{
    width: min(92vw, 560px);
    max-width: 560px;
    aspect-ratio: auto;                   /* permite altura natural */
    padding: 28px 22px;
  }

  /* Logo bastante más grande en móvil */
  .hero-logo{
    height: clamp(200px, 32dvh, 480px);   /* crece con la altura de pantalla */
    width: auto;
    margin-bottom: 14px;
    object-fit: contain;
  }

  /* Claim centrado y un pelín mayor */
  .hero-claim{
    font-size: clamp(22px, 6.2vw, 34px);
    max-width: 24ch;
    text-align: center;
    margin-inline: auto;
    line-height: 1.18;
  }
}
/* === FIX tablas móvil: línea blanca sobre el texto === */

/* 1) La 1ª columna sticky no debe superponerse con un divisor */
.criteria-table thead th:first-child,
.criteria-table tbody th:first-child,
.criteria-table tbody td:first-child{
  z-index:1;              /* antes 2 */
  border-right:none;      /* quitamos el divisor que pisa la col 2 */
  box-shadow:none;        /* quitamos el halo-superposición */
}

/* Pon el divisor en la 2ª columna (no sticky) para que no tape texto */
.criteria-table thead th:nth-child(2),
.criteria-table tbody th:nth-child(2),
.criteria-table tbody td:nth-child(2){
  border-left:1px solid var(--line);
}

/* 2) Mantén el “cebra” también en la 1ª columna (antes quedaba siempre blanca) */
.criteria-table tbody tr:nth-child(odd) > :first-child{ background:#fff; }
.criteria-table tbody tr:nth-child(even) > :first-child{ background:#fafafa; }

/* 3) Capas correctas del header y su intersección con la 1ª col */
.criteria-table thead th{ z-index:3; }
.criteria-table thead th:first-child{ z-index:4; } /* esquina superior izq. por encima */

/* 4) Evita que las sombras laterales tapen texto en móviles */
@media (max-width:700px){
  .table-wrap::before,
  .table-wrap::after{ display:none; }
}

/* (Opcional) Suaviza “hairlines” en iOS/Safari */
@supports (-webkit-overflow-scrolling: touch){
  .criteria-table thead th:first-child,
  .criteria-table tbody :is(th,td):first-child{
    -webkit-transform: translateZ(0);
    will-change: transform;
  }
}

/* =========================
   A) TABS en móvil (tabla-epi)
   ========================= */
@media (max-width:700px){
  /* Por defecto muestro la col 2 y oculto la 3 */
  #tabla-epi td:nth-child(3),
  #tabla-epi th:nth-child(3){ display:none; }

  /* Con body.show-col-3 muestro la col 3 y oculto la 2 */
  body.show-col-3 #tabla-epi td:nth-child(2),
  body.show-col-3 #tabla-epi th:nth-child(2){ display:none; }
  body.show-col-3 #tabla-epi td:nth-child(3),
  body.show-col-3 #tabla-epi th:nth-child(3){ display:table-cell; }

  /* En móvil quita sticky/halos en la 1ª col (evita artefactos) */
  #tabla-epi :is(th,td):first-child{
    position:static; box-shadow:none; border-right:0;
  }

  /* Estado visual del tab activo (usa aria-selected) */
  .col-toggle [role="tab"]{
    border:1px solid var(--line); border-radius:10px; padding:8px 10px; font-weight:700;
    background:#fff; color:#0f172a;
  }
  .col-toggle [role="tab"][aria-selected="true"]{
    background:var(--primary); color:#fff; border-color:var(--primary);
  }
}

/* ================================
   B) TARJETAS en móvil (tabla-req)
   ================================ */
@media (max-width:700px){
  /* Rompe el layout de tabla clásico para poder “cardificar” */
  #tabla-req{ 
    display:block; 
    min-width:0; 
    border-collapse:separate; 
    border-spacing:0;
  }
  #tabla-req colgroup{ display:none; }

  /* Oculta thead (accesible) */
  #tabla-req thead{
    position:absolute !important;
    width:1px;height:1px;overflow:hidden;
    clip:rect(0 0 0 0); clip-path:inset(50%);
    white-space:nowrap;border:0;padding:0;margin:-1px;
  }

  /* Neutraliza reglas globales de bordes/cebra y divisor col 2 */
  #tabla-req tbody tr:not(:last-child) td,
  #tabla-req tbody tr:not(:last-child) th{ border-bottom:0; }
  #tabla-req tbody tr:nth-child(odd) td,
  #tabla-req tbody tr:nth-child(even) td{ background:transparent; }
  #tabla-req :is(th,td):nth-child(2){ border-left:0 !important; }

  /* Fila como tarjeta */
  #tabla-req tbody{ display:block; }
  #tabla-req tbody tr{
    display:block;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    padding:12px;
    margin:12px 0;
    box-shadow:0 6px 14px rgba(2,6,23,.04);
  }

  /* Título (1ª col) */
  #tabla-req tbody th[scope="row"]{
    display:block;
    font-size:16px; font-weight:800;
    padding:0 0 8px;
    border-bottom:1px solid var(--line);
    margin-bottom:6px;
    background:transparent;
  }

  /* Pares etiqueta/valor para cada TD */
  #tabla-req tbody td{
    display:grid;
    grid-template-columns:minmax(110px,38%) 1fr;
    gap:8px;
    padding:8px 0;
    border-bottom:1px solid var(--line);
    overflow-wrap:anywhere; word-break:break-word; line-height:1.45;
  }
  #tabla-req tbody td:last-child{ border-bottom:0; }

  /* Etiqueta generada desde thead */
  #tabla-req tbody td::before{
    content:attr(data-label);
    font-weight:800; color:#0f172a;
  }

  /* Sin sticky/halos en 1ª col dentro de tarjetas */
  #tabla-req :is(th,td):first-child{
    position:static; box-shadow:none; border-right:0;
  }
}

/* ================================
   FIX general “línea blanca” (todas)
   ================================ */
.criteria-table thead th:first-child,
.criteria-table tbody th:first-child,
.criteria-table tbody td:first-child{
  z-index:1; border-right:none; box-shadow:none;
}
/* Divisor pasa a la col 2 (no sticky) en modos de tabla */
.criteria-table thead th:nth-child(2),
.criteria-table tbody th:nth-child(2),
.criteria-table tbody td:nth-child(2){
  border-left:1px solid var(--line);
}
/* Cebra también en 1ª celda cuando no estamos en modo tarjetas */
.criteria-table tbody tr:nth-child(odd) > :first-child{ background:#fff; }
.criteria-table tbody tr:nth-child(even) > :first-child{ background:#fafafa; }
/* Capas del thead */
.criteria-table thead th{ z-index:3; }
.criteria-table thead th:first-child{ z-index:4; }
/* Quita sombras laterales en móvil */
@media (max-width:700px){
  .table-wrap::before, .table-wrap::after{ display:none; }
}
/* Suaviza hairlines iOS */
@supports (-webkit-overflow-scrolling: touch){
  .criteria-table thead th:first-child,
  .criteria-table tbody :is(th,td):first-child{
    -webkit-transform: translateZ(0);
    will-change: transform;
  }
}


