/* ===== Fuentes locales (Manrope) ===== */
@font-face { font-family:'Manrope'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/manrope/manrope-v20-latin-regular.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:500; font-display:swap; src:url('/fonts/manrope/manrope-v20-latin-500.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:600; font-display:swap; src:url('/fonts/manrope/manrope-v20-latin-600.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:700; font-display:swap; src:url('/fonts/manrope/manrope-v20-latin-700.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:800; font-display:swap; src:url('/fonts/manrope/manrope-v20-latin-800.woff2') format('woff2'); }

/* ===== Variables ===== */
:root{
  --rojo:#e61e1e;        /* Rojo Toshiba oficial · RGB 230 30 30 */
  --rojo-osc:#b81818;
  --negro:#0d0d0f;
  --gris-900:#1b1c1f;
  --gris-700:#3a3b40;
  --gris-500:#71727a;
  --gris-300:#d5d7dd;
  --gris-100:#f1f2f5;
  --blanco:#ffffff;
  --verde:#1f9d55;
  --ambar:#d98014;
  --rojo-crit:#d64545;
  --info:#71727a;
  --radio:12px;
  --sombra:0 4px 24px rgba(0,0,0,.08);
  --ancho:960px;
}

/* ===== Base ===== */
*{box-sizing:border-box}
/* El atributo hidden debe ganar SIEMPRE (evita que .btn--bloque u otras reglas
   con display explícito lo anulen por especificidad). */
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:'Manrope',system-ui,Arial,sans-serif;
  color:var(--gris-900); background:var(--gris-100); line-height:1.55;
}
.contenedor{width:100%; max-width:var(--ancho); margin:0 auto; padding:0 20px}
h1,h2,h3{line-height:1.2; margin:0 0 .4em}
a{color:var(--rojo)}

/* ===== Cabecera ===== */
.cabecera{background:var(--negro)}
.cabecera__inner{display:flex; align-items:center; gap:14px; height:64px}
.cabecera__logo{height:22px; width:auto; filter:brightness(0) invert(1)}
.cabecera__claim{color:#aeb0b8; font-size:14px; font-weight:600; letter-spacing:.02em;
  border-left:1px solid #3a3b40; padding-left:14px}

/* ===== Hero ===== */
.hero{background:linear-gradient(180deg,var(--negro) 0%,var(--gris-900) 100%); color:#fff; padding:64px 0 72px}
.hero__titulo{font-size:clamp(28px,5vw,44px); font-weight:800; letter-spacing:-.02em}
.hero__sub{font-size:clamp(16px,2.4vw,19px); color:#c7c9d1; max-width:620px; margin:0 0 32px}
.buscador{display:flex; gap:10px; max-width:560px; flex-wrap:wrap}
.buscador__input{
  flex:1 1 260px; min-width:0; padding:16px 18px; font-size:17px; font-family:inherit;
  border:2px solid transparent; border-radius:var(--radio); background:#fff; color:#111;
}
.buscador__input:focus{outline:none; border-color:var(--rojo)}
.buscador__nota{color:#9a9ca6; font-size:13px; margin:14px 0 0}
.buscador__acceso{color:#c7c9d1; font-size:13px; margin:5px 0 0}
.buscador__error{color:#ffb4b4; font-size:14px; font-weight:600; margin:12px 0 0}

/* ===== Explicación de la home ===== */
.home-info{background:#fff; padding:56px 0 64px}
.home-info__cabecera{text-align:center; max-width:700px; margin:0 auto 28px}
.home-info__titulo{font-size:clamp(24px,3vw,30px); margin-bottom:8px}
.home-info__intro{margin:0; color:var(--gris-500); font-size:16px}
.bloques-home{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px}
.bloque-home{border:1px solid var(--gris-300); border-radius:var(--radio); padding:22px 20px;
  background:#fff; min-width:0}
.bloque-home__icono{width:48px; height:48px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; color:var(--rojo); background:#fff4f4; margin-bottom:16px}
.bloque-home__titulo{font-size:16px; margin:0 0 8px}
.bloque-home p{margin:0; color:var(--gris-700); font-size:14px; line-height:1.55}
.entrega-home{display:flex; align-items:center; justify-content:space-between; gap:28px;
  margin-top:22px; padding:24px 26px; border-radius:var(--radio); background:var(--gris-100)}
.entrega-home__titulo{font-size:19px; margin:0 0 6px}
.entrega-home p{margin:0; color:var(--gris-700); font-size:14.5px}
.entrega-home__entidad{flex:0 0 auto; padding-left:24px; border-left:1px solid var(--gris-300);
  white-space:nowrap}
.faq-home{margin-top:54px}
.faq-home__titulo{text-align:center; font-size:22px; margin-bottom:22px}
.faq-home__grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px;
  border-top:1px solid var(--gris-300)}
.faq-home__grid article{padding:20px 0; border-bottom:1px solid var(--gris-300)}
.faq-home__grid h3{font-size:15.5px; margin:0 0 6px}
.faq-home__grid p{margin:0; color:var(--gris-700); font-size:14px; line-height:1.55}

/* ===== Botones ===== */
.btn{font-family:inherit; font-weight:700; font-size:16px; cursor:pointer; border:none;
  border-radius:var(--radio); padding:16px 26px; transition:transform .08s, background .15s}
.btn:active{transform:translateY(1px)}
.btn--primario{background:var(--rojo); color:#fff}
.btn--primario:hover{background:var(--rojo-osc)}
.btn--secundario{background:var(--gris-100); color:var(--gris-900); border:1px solid var(--gris-300)}
.btn--secundario:hover{background:var(--gris-300)}
.btn--bloque{display:block; width:100%; margin-top:8px}

/* ===== Cargando ===== */
.cargando{padding:80px 0}
.cargando__inner{text-align:center}
.cargando__txt{font-size:20px; font-weight:700; margin:22px 0 6px}
.cargando__sub{color:var(--gris-500)}
.spinner{width:52px; height:52px; margin:0 auto; border:5px solid var(--gris-300);
  border-top-color:var(--rojo); border-radius:50%; animation:giro 1s linear infinite}
@keyframes giro{to{transform:rotate(360deg)}}

/* ===== Resultado ===== */
.resultado{padding:48px 0 72px}
.impacto{background:var(--negro); color:#fff; border-radius:20px; padding:36px 28px;
  text-align:center; box-shadow:var(--sombra); position:relative; overflow:hidden}
.impacto__criticos{font-size:17px; font-weight:800; letter-spacing:.02em; margin-bottom:14px}
.impacto__criticos.hay{color:#ff6b6b}
.impacto__criticos.cero{color:#5fd39a}
.gauge{position:relative; width:150px; height:150px; margin:0 auto; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  --g:0; --g-color:var(--info);
  background:conic-gradient(var(--g-color) calc(var(--g)*1%), #2a2b30 0);}
.gauge::before{content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:118px; height:118px; border-radius:50%; background:var(--negro)}
.gauge__num{position:relative; font-size:46px; font-weight:800; line-height:1}
.gauge__lbl{position:relative; font-size:13px; color:#9a9ca6}
.impacto__dominio{margin:18px 0 0; color:#c7c9d1; font-size:15px; word-break:break-all}
.impacto__nota{margin:6px 0 0; color:#8a8c95; font-size:13px; word-break:break-all}
.impacto__refrescar{margin-top:14px; background:transparent; border:1px solid #3a3b40; color:#c7c9d1;
  font-family:inherit; font-size:13px; font-weight:600; padding:8px 16px; border-radius:8px; cursor:pointer}
.impacto__refrescar:hover{border-color:var(--rojo); color:#fff}

/* Semáforo por módulo */
.semaforo{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; margin:24px 0}
.mod{background:#fff; border-radius:var(--radio); padding:18px 18px; box-shadow:var(--sombra);
  border-left:6px solid var(--c)}
.mod--correcto{--c:var(--verde)}
.mod--mejorable{--c:var(--ambar)}
.mod--no_disponible{--c:var(--gris-300)}
.mod--no_aplica{--c:var(--gris-300)}
.cobertura{margin:-12px 0 24px; text-align:center; color:var(--gris-500); font-size:13px}
.mod--critico{--c:var(--rojo-crit)}
.mod__cab{display:flex; justify-content:space-between; align-items:baseline; gap:8px}
.mod__titulo{font-size:15px; font-weight:700}
.mod__score{font-size:20px; font-weight:800; color:var(--c)}
.mod__barra{height:6px; background:var(--gris-100); border-radius:4px; margin-top:10px; overflow:hidden}
.mod__barra i{display:block; height:100%; width:calc(var(--s)*1%); background:var(--c)}

/* Hallazgos */
.hallazgos{background:#fff; border-radius:var(--radio); padding:24px; box-shadow:var(--sombra); margin-bottom:22px}
.hallazgos__titulo{font-size:19px}
.hallazgos__lista{list-style:none; margin:0; padding:0}
.hallazgos__lista li{padding:12px 0 12px 30px; border-bottom:1px solid var(--gris-100); position:relative}
.hallazgos__lista li::before{content:'!'; position:absolute; left:0; top:11px; width:20px; height:20px;
  background:var(--rojo-crit); color:#fff; border-radius:50%; font-size:13px; font-weight:800;
  display:flex; align-items:center; justify-content:center}
.hallazgos__lista li:last-child{border-bottom:none}

/* Gancho MFP */
.gancho{display:flex; gap:20px; background:linear-gradient(120deg,#2a0004,#490009); color:#fff;
  border-radius:var(--radio); padding:26px; margin-bottom:22px; border:1px solid #6a0010}
.gancho__icono{flex:0 0 auto; color:#ff8a8a; padding-top:2px}
.gancho__cuerpo{flex:1; min-width:0}
.gancho__titulo{color:#fff; font-size:20px}
.gancho__txt{color:#f1c9cc; margin:0 0 14px}
.gancho__intro{color:#fff; font-weight:600; margin:0 0 8px; font-size:14.5px}
.gancho__lista{margin:0 0 18px; padding-left:18px; color:#f1c9cc; font-size:14px}
.gancho__lista li{margin:5px 0}
.gancho .btn--primario{background:#e61e1e}
.gancho .btn--primario:hover{background:#fff; color:#490009}
@media (max-width:560px){ .gancho{flex-direction:column; gap:12px; padding:22px} }

/* Lead */
.lead{background:#fff; border-radius:var(--radio); padding:28px; box-shadow:var(--sombra); border-top:4px solid var(--rojo)}
.lead__titulo{font-size:22px}
.lead__sub{color:var(--gris-500); margin-top:0}
.campo{margin-bottom:16px}
.campo label{display:block; font-size:14px; font-weight:600; margin-bottom:6px}
.campo input{width:100%; padding:13px 14px; font-size:16px; font-family:inherit;
  border:1px solid var(--gris-300); border-radius:10px; background:#fff}
.campo input:focus{outline:none; border-color:var(--rojo)}
.campo input.err{border-color:var(--rojo-crit); background:#fff5f5}
.check{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--gris-700); margin-bottom:14px}
.check input{margin-top:3px; flex:0 0 auto; width:18px; height:18px; accent-color:var(--rojo)}
.lead__error{color:var(--rojo-crit); font-weight:600; margin:8px 0 0}

/* Detalle completo */
.detalle{margin-top:8px}
.resumen-dir{background:#fff; border-left:6px solid var(--negro); border-radius:var(--radio);
  padding:22px 24px; box-shadow:var(--sombra); margin-bottom:18px}
.resumen-dir__titulo{font-size:16px; text-transform:uppercase; letter-spacing:.04em; color:var(--gris-500); margin:0 0 8px}
.resumen-dir__txt{margin:0; font-size:16px; line-height:1.6; color:var(--gris-900)}
.acciones-dir{background:#fff; border-radius:var(--radio); padding:22px 24px;
  box-shadow:var(--sombra); margin-bottom:18px}
.acciones-dir__titulo{font-size:18px; margin:0 0 14px}
.acciones-dir__lista{display:grid; gap:12px}
.accion-dir{border:1px solid var(--gris-300); border-left:4px solid var(--rojo);
  border-radius:9px; padding:14px 16px}
.accion-dir__nombre{font-size:15px; margin:0 0 7px}
.accion-dir__texto,.accion-dir__gestor{font-size:14px; line-height:1.5; margin:0}
.accion-dir__gestor{color:var(--gris-700); margin-top:4px}
.detalle__desc{margin:0; padding:14px 20px; background:#fbfbfc; color:var(--gris-700);
  font-size:14.5px; line-height:1.55; border-bottom:1px solid var(--gris-100)}
.cierre-mfp{background:linear-gradient(120deg,#141416,#242529); color:#fff; border-radius:var(--radio);
  padding:28px; margin:18px 0 8px}
.cierre-mfp__titulo{color:#fff; font-size:20px; margin:0 0 10px}
.cierre-mfp__txt{color:#c7c9d1; margin:0 0 14px; font-size:15px; line-height:1.6}
.cierre-mfp__lista{margin:0 0 20px; padding-left:18px; color:#c7c9d1; font-size:14px}
.cierre-mfp__lista li{margin:6px 0}
.cierre-mfp .btn--primario{background:var(--rojo); display:inline-block; text-decoration:none}
.cierre-mfp .btn--primario:hover{background:var(--rojo-osc)}
.detalle__mod{background:#fff; border-radius:var(--radio); box-shadow:var(--sombra); margin-bottom:16px; overflow:hidden}
.detalle__cab{display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:16px 20px; background:var(--gris-100)}
.detalle__cab h3{margin:0; font-size:17px}
.detalle__badge{font-weight:800; font-size:16px}
.check-item{padding:16px 20px; border-top:1px solid var(--gris-100); display:flex; gap:14px}
.check-item__punto{flex:0 0 12px; width:12px; height:12px; border-radius:50%; margin-top:6px}
.p-no_aplica{background:var(--gris-300)}
.check-item__cuerpo{flex:1}
.check-item__nombre{font-weight:700; font-size:15px}
.check-item__msg{margin:2px 0 0; font-size:15px}
.check-item__tec{margin:6px 0 0; font-size:12.5px; color:var(--gris-500); font-family:ui-monospace,Menlo,Consolas,monospace; word-break:break-word}
.check-item__accion{margin:10px 0 0; padding:10px 12px; border-left:3px solid var(--rojo);
  background:#f7f7f8; font-size:14px; line-height:1.5}
.check-item__gestor{margin:5px 0 0; font-size:13.5px; line-height:1.45; color:var(--gris-700)}
.p-correcto{background:var(--verde)} .p-mejorable{background:var(--ambar)}
.p-critico{background:var(--rojo-crit)} .p-info{background:var(--info)} .p-no_disponible{background:var(--gris-300)}
.t-correcto{color:var(--verde)} .t-mejorable{color:var(--ambar)} .t-critico{color:var(--rojo-crit)}
.t-no_disponible,.t-no_aplica{color:var(--gris-500)}

.aviso-legal{font-size:12.5px; color:var(--gris-500); margin-top:26px; text-align:center}

/* Páginas legales */
.legal{background:#fff; max-width:780px; margin:24px auto; padding:44px 30px; border-radius:12px; box-shadow:var(--sombra)}
.legal h1{font-size:clamp(24px,4vw,30px)}
.legal h2{font-size:19px; margin-top:30px; border-top:1px solid var(--gris-100); padding-top:22px}
.legal h2:first-of-type{border-top:none}
.legal p,.legal li{font-size:15px; color:var(--gris-700)}
.legal ul{padding-left:20px}
.legal li{margin:6px 0}
.legal .legal__meta{font-size:13px; color:var(--gris-500)}
.legal .legal__volver{display:inline-block; margin-top:30px; font-weight:600}
.legal address{font-style:normal}

/* Franja de confianza ENS */
.ens{background:#fff; border-top:1px solid var(--gris-300)}
.ens__inner{display:flex; align-items:center; justify-content:center; gap:20px;
  padding:26px 20px; flex-wrap:wrap}
.ens__sello{flex:0 0 auto; height:auto}
.ens__txt{max-width:520px}
.ens__titulo{margin:0 0 4px; font-weight:800; font-size:15px; color:var(--gris-900)}
.ens__desc{margin:0; font-size:13.5px; color:var(--gris-500); line-height:1.5}
.ens__desc a{font-weight:600; white-space:nowrap}
@media (max-width:560px){ .ens__inner{flex-direction:column; text-align:center} }

/* Pie */
.pie{background:var(--negro); color:#9a9ca6; padding:22px 0; font-size:13px}
.pie__inner{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap}
.pie a{color:#c7c9d1}
.pie__links a{margin:0 2px}
.pie__cert{display:inline-flex; align-items:center; gap:10px}
.pie__cert-img{height:60px; width:auto; opacity:.9}
.pie__cert a{font-size:12px}

/* Utilidades imprimir */
@media print{
  .cabecera__claim,.buscador,.lead,#btn-otro,.pie,.impacto__refrescar,
  .detalle > .btn--bloque{display:none}
  body{background:#fff; color:#111}

  /* La cabecera no depende del fondo negro: se imprime el logotipo rojo original. */
  .cabecera{background:none !important; border-bottom:1px solid #777}
  .cabecera__logo{filter:none}

  /* Resumen legible incluso con "gráficos de fondo" desactivado. */
  .impacto{color:#111; background:none !important; border:1.5px solid #222; box-shadow:none}
  .impacto__criticos,.impacto__criticos.hay,.impacto__criticos.cero{color:#111}
  .gauge{width:136px; height:136px; background:none !important;
    border:7px solid var(--g-color); print-color-adjust:exact; -webkit-print-color-adjust:exact}
  .gauge::before{display:none}
  .gauge__num,.gauge__lbl,.impacto__dominio{color:#111}
  .impacto__nota{color:#444}

  /* El semáforo conserva su información mediante texto y bordes imprimibles. */
  .mod{background:none !important; box-shadow:none; border-top:1px solid #aaa;
    border-right:1px solid #aaa; border-bottom:1px solid #aaa}
  .mod__titulo,.mod__score{color:#111}
  .mod__barra{background:none !important; border:1px solid #aaa}
  .mod__barra i{background:none !important; border-bottom:4px solid var(--c);
    print-color-adjust:exact; -webkit-print-color-adjust:exact}

  /* Indicadores y bloques con fondo oscuro reciben una alternativa en papel. */
  .hallazgos,.gancho,.cierre-mfp,.resumen-dir,.acciones-dir,.detalle__mod{
    background:none !important; box-shadow:none}
  .hallazgos__lista li{color:#111}
  .hallazgos__lista li::before{background:none !important; color:#111; border:1px solid #111}
  .gancho,.cierre-mfp{color:#111; border:1px solid #777}
  .gancho__icono,.gancho__titulo,.gancho__txt,.gancho__intro,.gancho__lista,
  .cierre-mfp__titulo,.cierre-mfp__txt,.cierre-mfp__lista{color:#111}
  .gancho .btn,.cierre-mfp .btn{background:none !important; color:#111; border:1px solid #777}
  .detalle__cab,.detalle__desc,.check-item__accion{background:none !important}
  .check-item__punto{background:none !important; border:2px solid #777}
  .p-correcto{border-color:var(--verde)} .p-mejorable{border-color:var(--ambar)}
  .p-critico{border-color:var(--rojo-crit)} .p-info{border-color:var(--info)}

  .acciones-dir__lista{display:block}
  .accion-dir{margin-bottom:12px}
  .gancho,.resumen-dir,.accion-dir,.check-item,.cierre-mfp{break-inside:avoid-page}
  .acciones-dir__titulo{break-after:avoid-page}
  .detalle__cab{break-after:avoid-page}
}

@media (max-width:560px){
  .hero{padding:44px 0 52px}
  .buscador{flex-direction:column}
  .buscador__input{flex:0 0 auto; width:100%}
  .btn--primario{width:100%}
  .home-info{padding:42px 0 50px}
  .home-info__cabecera{text-align:left; margin-bottom:22px}
  .bloques-home{grid-template-columns:1fr}
  .bloque-home{display:grid; grid-template-columns:48px 1fr; column-gap:14px; padding:18px}
  .bloque-home__icono{grid-row:1 / span 2; margin:0}
  .bloque-home__titulo{align-self:end}
  .entrega-home{display:block; padding:22px 20px}
  .entrega-home__entidad{margin-top:16px !important; padding:14px 0 0; border-left:0;
    border-top:1px solid var(--gris-300); white-space:normal}
  .faq-home{margin-top:42px}
  .faq-home__titulo{text-align:left}
  .faq-home__grid{grid-template-columns:1fr}
}

@media (min-width:561px) and (max-width:860px){
  .bloques-home{grid-template-columns:repeat(2,minmax(0,1fr))}
  .entrega-home{align-items:flex-start}
  .entrega-home__entidad{white-space:normal}
}
