/* ==========================================================================
   Hoja de estilo del sitio profesional. Sin dependencias externas, sin
   tipografías de Google (evita problemas de RGPD y hace la web instantánea).
   ========================================================================== */

:root{
  --tinta:#12181f; --papel:#ffffff; --fondo:#f7f9fa; --panel:#ffffff;
  --suave:#5b6672; --linea:#e2e8ee; --linea-fuerte:#cbd5e1;
  --acento:#0e5563; --acento-claro:#e8f2f4; --acento-oscuro:#093c46;
  --aviso:#b45309; --aviso-claro:#fef6e7;
  --ok:#15803d; --ok-claro:#eefaf1;
  --mal:#b91c1c; --mal-claro:#fdeeee;
  --radio:10px; --sombra:0 1px 2px rgba(18,24,31,.06),0 4px 14px rgba(18,24,31,.05);
  --ancho:1060px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--fondo); color:var(--tinta);
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--acento)}

.envoltura{max-width:var(--ancho);margin:0 auto;padding:0 20px}
.estrecho{max-width:760px;margin:0 auto;padding:0 20px}

/* ---------- cabecera ---------- */
.cabecera{background:var(--papel);border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:50}
.cabecera .envoltura{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;flex-wrap:wrap}
.marca{font-weight:700;font-size:1.06rem;color:var(--tinta);text-decoration:none;letter-spacing:-.01em}
.marca span{display:block;font-weight:400;font-size:.76rem;color:var(--suave);letter-spacing:0}
.menu{display:flex;gap:22px;flex-wrap:wrap}
.menu a{color:var(--suave);text-decoration:none;font-size:.93rem;padding:4px 0;border-bottom:2px solid transparent}
.menu a:hover{color:var(--tinta)}
.menu a[aria-current="page"]{color:var(--acento);border-bottom-color:var(--acento)}

/* ---------- tipografía ---------- */
h1{font-size:clamp(1.75rem,4.2vw,2.6rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 16px}
h2{font-size:clamp(1.3rem,2.6vw,1.72rem);line-height:1.25;letter-spacing:-.015em;margin:56px 0 14px}
h3{font-size:1.1rem;margin:0 0 8px}
p{margin:0 0 14px}
.entrada{font-size:clamp(1.02rem,1.9vw,1.2rem);color:var(--suave);max-width:64ch}
.tenue{color:var(--suave)}
.pequeno{font-size:.87rem}
.mini{font-size:.79rem}
strong{font-weight:650}

/* ---------- secciones ---------- */
section{padding:0}
.parte{padding:56px 0}
.parte.blanca{background:var(--papel);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.etiqueta{
  display:inline-block;background:var(--acento-claro);color:var(--acento-oscuro);
  font-size:.76rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 11px;border-radius:100px;margin-bottom:14px;
}

/* ---------- hero ---------- */
.hero{padding:64px 0 56px;background:var(--papel);border-bottom:1px solid var(--linea)}
.hero h1{max-width:20ch}
.hero .entrada{margin-bottom:26px}

/* ---------- formulario de diagnóstico ---------- */
.diagnostico{background:var(--fondo);border:1px solid var(--linea);border-radius:var(--radio);padding:22px;box-shadow:var(--sombra);max-width:620px}
.diagnostico label{display:block;font-weight:600;font-size:.94rem;margin-bottom:8px}
.fila{display:flex;gap:10px;flex-wrap:wrap}
.fila input[type=text],.fila input[type=email],.fila input[type=tel],.fila input[type=url],.fila textarea,.fila select{
  flex:1 1 240px;min-width:0;padding:12px 14px;border:1px solid var(--linea-fuerte);
  border-radius:8px;font:inherit;background:var(--papel);color:var(--tinta);
  /* Ocupan TODO el ancho de su columna. Sin esto, un campo dentro de un contenedor se
     quedaba con el ancho de fábrica (unos 180 píxeles) y el texto largo se escribía en
     un hueco diminuto. */
  width:100%;box-sizing:border-box;
}
.fila textarea{flex-basis:100%;min-height:150px;resize:vertical}
.fila input:focus,.fila textarea:focus,.fila select:focus{outline:2px solid var(--acento);outline-offset:1px;border-color:var(--acento)}

/* ---------- botones ---------- */
.boton{
  display:inline-block;background:var(--acento);color:#fff;border:0;border-radius:8px;
  padding:13px 22px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;
  text-align:center;transition:background .15s;
}
.boton:hover{background:var(--acento-oscuro)}
.boton.grande{padding:15px 28px;font-size:1.03rem}
.boton.secundario{background:transparent;color:var(--acento);border:1.5px solid var(--acento)}
.boton.secundario:hover{background:var(--acento-claro)}
.boton[disabled]{opacity:.55;cursor:progress}
.acciones{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* ---------- tarjetas ---------- */
.rejilla{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));margin-top:22px}
.tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:var(--radio);padding:24px;box-shadow:var(--sombra)}
.tarjeta.destacada{border-color:var(--acento);border-width:2px;position:relative}
.tarjeta.destacada::before{
  content:"Lo más pedido";position:absolute;top:-12px;left:22px;background:var(--acento);color:#fff;
  font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:100px;
}
.precio{font-size:1.85rem;font-weight:700;letter-spacing:-.02em;margin:12px 0 2px}
.precio small{font-size:.86rem;font-weight:400;color:var(--suave);letter-spacing:0}
.tarjeta ul{margin:16px 0 0;padding-left:0;list-style:none}
.tarjeta li{padding-left:24px;position:relative;margin-bottom:9px;font-size:.94rem}
.tarjeta li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.tarjeta li.no::before{content:"—";color:var(--linea-fuerte)}
/* Listas de datos (teléfono, correo, horario): sin el visto bueno, que ahí no significa nada */
.tarjeta ul.limpia li::before{content:none}
.tarjeta ul.limpia li{padding-left:0}

/* ---------- cifras ---------- */
.cifras{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:26px 0 8px}
.cifra{background:var(--panel);border:1px solid var(--linea);border-left:4px solid var(--acento);border-radius:8px;padding:18px 20px}
.cifra b{display:block;font-size:2rem;line-height:1.1;letter-spacing:-.03em}
.cifra span{display:block;font-size:.88rem;color:var(--suave);margin-top:6px}

/* ---------- avisos ---------- */
.aviso{border-radius:var(--radio);padding:18px 20px;margin:22px 0;border:1px solid}
.aviso.ok{background:var(--ok-claro);border-color:#bbf7d0}
.aviso.info{background:var(--acento-claro);border-color:#cbe6ea}
.aviso.alerta{background:var(--aviso-claro);border-color:#fde68a}
.aviso.mal{background:var(--mal-claro);border-color:#fecaca}
.aviso p:last-child{margin-bottom:0}

/* ---------- listas ---------- */
.lista{padding-left:0;list-style:none;margin:18px 0}
.lista li{padding-left:30px;position:relative;margin-bottom:12px}
.lista li::before{content:"→";position:absolute;left:0;color:var(--acento);font-weight:700}
ol.pasos{counter-reset:p;list-style:none;padding-left:0;margin:26px 0}
ol.pasos li{counter-increment:p;position:relative;padding-left:52px;margin-bottom:26px}
ol.pasos li::before{
  content:counter(p);position:absolute;left:0;top:-2px;width:34px;height:34px;border-radius:50%;
  background:var(--acento);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.95rem;
}
ol.pasos h3{margin-bottom:4px}

/* ---------- tablas ---------- */
.tabla-envoltura{overflow-x:auto;margin:22px 0;border:1px solid var(--linea);border-radius:var(--radio);background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:.93rem;min-width:520px}
th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--linea);vertical-align:top}
th{background:var(--fondo);font-weight:650;font-size:.86rem;color:var(--suave);text-transform:uppercase;letter-spacing:.04em}
tbody tr:last-child td{border-bottom:0}
td.cifra-col{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}

/* ---------- resultados del diagnóstico ---------- */
#resultado{margin-top:18px}
.hallazgo{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--linea);align-items:flex-start}
.hallazgo:last-child{border-bottom:0}
.hallazgo .coste{display:inline-block;background:#fef3c7;color:#92400e;font-weight:700;font-size:.78rem;
  border-radius:6px;padding:2px 9px;margin:3px 0 5px;letter-spacing:.2px}
.hallazgo .icono{flex:0 0 24px;font-size:1.05rem;line-height:1.5}
.hallazgo.bien .icono{color:var(--ok)}
.hallazgo.mal .icono{color:var(--mal)}
.hallazgo .texto{flex:1}
.hallazgo .texto small{display:block;color:var(--suave);font-size:.84rem}
.cargando{color:var(--suave);font-size:.95rem}

/* ---------- pie ---------- */
.pie{background:var(--tinta);color:#cbd5e1;padding:44px 0 30px;margin-top:70px;font-size:.9rem}
.pie a{color:#e2e8ee}
.pie .envoltura{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.pie h4{color:#fff;font-size:.83rem;text-transform:uppercase;letter-spacing:.07em;margin:0 0 12px}
.pie ul{list-style:none;padding:0;margin:0}
.pie li{margin-bottom:7px}
.pie .legal{margin-top:34px;padding-top:20px;border-top:1px solid #2b3540;color:#8a97a4;font-size:.82rem}

/* ---------- dos columnas (contacto) ---------- */
.dos-columnas{display:grid;gap:36px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}

/* ---------- quién soy ---------- */
.quien-soy{display:flex;gap:24px;align-items:flex-start;margin:20px 0 24px;flex-wrap:wrap}
.quien-soy-foto{
  flex:0 0 96px;width:96px;height:96px;border-radius:50%;background:var(--acento);color:#fff;
  display:grid;place-items:center;font-size:1.6rem;font-weight:700;letter-spacing:.02em;
}
.quien-soy-texto{flex:1 1 420px;min-width:0}
.quien-soy-texto p:last-child{margin-bottom:0}

/* ---------- utilidades ---------- */
.centrado{text-align:center}
.mt0{margin-top:0}
.mb0{margin-bottom:0}
.separador{height:1px;background:var(--linea);margin:34px 0;border:0}

/* ---------- móvil ---------- */
@media (max-width:640px){
  .parte{padding:40px 0}
  .hero{padding:44px 0 40px}
  h2{margin-top:42px}
  .menu{gap:14px;font-size:.88rem}
  .tarjeta{padding:20px}
  ol.pasos li{padding-left:46px}
}

/* ---------- impresión (para las condiciones y el contrato) ---------- */
@media print{
  .cabecera,.pie,.acciones,.diagnostico{display:none}
  body{background:#fff;font-size:11.5pt}
  .parte{padding:0}
  a{color:#000;text-decoration:none}
  h2{page-break-after:avoid}
  .tarjeta,.aviso,.tabla-envoltura{page-break-inside:avoid;box-shadow:none}
}

/* ===========================================================================
   Panel privado: ventanas plegables (15-nov-2026)
   El título resume (número + una línea) y al pulsar se abre. La abierta ocupa
   el ancho completo. Marcado generado por ventana_abrir()/ventana_cerrar().
   =========================================================================== */
.ventanas{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.ventana{flex:1 1 320px;min-width:0;background:#fff;border:1px solid #e2e8ee;border-radius:10px;margin:0}
.ventana[open]{flex:1 1 100%}
.ventana>summary{cursor:pointer;list-style:none;padding:11px 14px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.ventana>summary::-webkit-details-marker{display:none}
.ventana>summary::before{content:"\25B8";color:#0e5563;font-size:.8rem}
.ventana[open]>summary::before{content:"\25BE"}
.ventana .v-tit{font-weight:800;color:#0e5563;font-size:.92rem}
.ventana .v-num{background:#0e5563;color:#fff;border-radius:10px;padding:1px 8px;font-size:.72rem;font-weight:800}
.ventana .v-num.rojo{background:#b91c1c}
.ventana .v-res{color:#5b6672;font-size:.78rem;flex:1 1 100%;padding-left:14px}
.ventana .v-cuerpo{padding:0 14px 10px;border-top:1px solid #eef2f5}
.ventana .v-pie{margin:0;padding:0 14px 12px}
.ventana .v-pie a{font-size:.8rem;font-weight:700;color:#0e5563;text-decoration:none}


/* ===========================================================================
   Nav del panel en una sola línea, con grupos desplegables (15-nov-2026)
   Cada grupo (<details>) se abre al pulsar y no ocupa sitio hasta entonces.
   =========================================================================== */
.navp{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:0 0 14px;font-size:.84rem;white-space:nowrap}
.navp .pild{display:inline-flex;align-items:center;gap:7px;border:1px solid #e2e8ee;background:#f8fafc;border-radius:20px;padding:5px 11px}
.navp a{color:#40515e;text-decoration:none}
.navp a.act{color:#0e5563;font-weight:700}
.navp .sep{color:#cbd5e1}
.navp .badge-nav{background:#b91c1c;color:#fff;border-radius:9px;padding:0 5px;font-size:.68rem;font-weight:700}
.nav-grupo{position:relative;margin:0}
.nav-grupo>summary{list-style:none;cursor:pointer;color:#40515e;font-weight:600}
.nav-grupo>summary::-webkit-details-marker{display:none}
.nav-grupo>summary::after{content:" \25BE";font-size:.7rem}
.nav-grupo[open]>summary{color:#0e5563}
.nav-grupo>.nav-panel{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid #e2e8ee;border-radius:12px;box-shadow:0 10px 26px rgba(14,85,99,.14);padding:8px 10px;z-index:60;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;max-width:min(92vw,760px);width:max-content}
.nav-panel a{padding:5px 11px;border:1px solid #e2e8ee;border-radius:16px;display:block;background:#fbfdfd}
.nav-panel a:hover{background:#f2f7f8}
.nav-panel a.act{background:#eef7f8;font-weight:700}
