/* ================================================================
   Correcciones de móvil, pie nuevo, fondos y efectos de movimiento
   ================================================================ */

/* ---------- 1. la barra ya no filtra: el menú fijo vuelve a medir la pantalla ----------
   backdrop-filter en un ancestro convierte a los hijos position:fixed en hijos
   de ese ancestro, y por eso el panel del menú se quedaba a la altura de la barra. */
.barra { backdrop-filter: none !important; }
.barra::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: transparent; transition: var(--trans);
}
.barra.solida { background: transparent; box-shadow: none; }
.barra.solida::before {
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  box-shadow: 0 1px 0 var(--borde);
}

/* ---------- 2. logo más grande en móvil ---------- */
.marca img { height: 92px; }
.barra { padding: 10px 0; }
.barra.solida { padding: 7px 0; }
body.interior { padding-top: 112px; }
@media (max-width: 900px) {
  .marca img { height: 84px; }
  body.interior { padding-top: 102px; }
}

/* ---------- 3. menú móvil: panel completo, opaco y con capa de fondo ---------- */
.velo-menu {
  position: fixed; inset: 0; z-index: 98; background: rgba(8, 28, 41, .55);
  backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity .4s ease;
}
.velo-menu.visible { opacity: 1; pointer-events: auto; }

@media (max-width: 900px) {
  .menu {
    position: fixed; top: 0; right: 0; bottom: 0; left: auto;
    width: min(86vw, 360px); height: 100vh; height: 100dvh;
    background: linear-gradient(165deg, #ffffff 0%, #f2f8fb 100%);
    z-index: 99; display: flex; flex-direction: column; align-items: stretch;
    gap: 2px; padding: 96px 26px 32px; overflow-y: auto;
    transform: translateX(102%); transition: transform .45s cubic-bezier(.2, .8, .2, 1);
    box-shadow: -24px 0 70px rgba(8, 28, 41, .28);
  }
  .menu.abierto { transform: none; }
  .menu a {
    color: var(--azul) !important; font-size: 1.12rem; font-weight: 700;
    padding: 15px 4px; width: 100%; border-bottom: 1px solid var(--borde);
  }
  .menu a::after { display: none; }
  .menu a.activo { color: var(--azul-medio) !important; }
  /* el botón dentro del menú ocupa el ancho y no se solapa con nada */
  .menu .boton {
    margin-top: 22px; width: 100%; justify-content: center;
    padding: 16px 20px; font-size: 1rem; border-bottom: 0;
    color: #fff !important;
  }
  .hamburguesa { position: relative; z-index: 100; }
  .hamburguesa span { background: var(--azul); }
  .barra:not(.solida) .hamburguesa span { background: #fff; }
  .menu.abierto ~ .hamburguesa span,
  body.menu-abierto .hamburguesa span { background: var(--azul); }
  /* aspa al abrir */
  body.menu-abierto .hamburguesa span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.menu-abierto .hamburguesa span:nth-child(2) { opacity: 0; }
  body.menu-abierto .hamburguesa span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* ---------- 4. barra de progreso de lectura ---------- */
.progreso {
  position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 101;
  background: linear-gradient(90deg, var(--azul-medio), var(--azul-claro), #9ae6ff);
  transition: width .1s linear;
}

/* ---------- 5. fondo animado: aurora de hielo ---------- */
.aurora { position: absolute; inset: 0; overflow: hidden; z-index: 0; pointer-events: none; }
.aurora span {
  position: absolute; display: block; border-radius: 50%; filter: blur(70px); opacity: .5;
  animation: flotar 22s ease-in-out infinite;
}
.aurora span:nth-child(1) { width: 46vw; height: 46vw; left: -12%; top: -18%;
  background: radial-gradient(circle, rgba(77,182,232,.55), transparent 68%); }
.aurora span:nth-child(2) { width: 38vw; height: 38vw; right: -10%; top: 12%;
  background: radial-gradient(circle, rgba(126,220,255,.42), transparent 68%); animation-delay: -7s; }
.aurora span:nth-child(3) { width: 42vw; height: 42vw; left: 26%; bottom: -22%;
  background: radial-gradient(circle, rgba(20,96,127,.5), transparent 70%); animation-delay: -14s; }
@keyframes flotar {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%      { transform: translate(5%, -6%) scale(1.12); }
  66%      { transform: translate(-4%, 5%) scale(.94); }
}
.seccion-oscura, .cta, footer { position: relative; overflow: hidden; }
.seccion-oscura .contenedor, .cta .contenedor, footer .contenedor { position: relative; z-index: 1; }
footer .pie-cta, footer .pie-cuerpo { position: relative; z-index: 1; }

/* ---------- 6. malla de puntos sobre las secciones claras ---------- */
.seccion-hielo { position: relative; }
.seccion-hielo::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: radial-gradient(rgba(20,96,127,.14) 1px, transparent 1px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 10%, transparent 72%);
  mask-image: radial-gradient(ellipse at 50% 0%, #000 10%, transparent 72%);
}
.seccion-hielo > .contenedor { position: relative; z-index: 1; }

/* ---------- 7. copos que caen despacio en la portada ---------- */
.copos { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.copo {
  position: absolute; top: -6%; color: rgba(255, 255, 255, .55);
  animation: caer linear infinite; will-change: transform;
}
@keyframes caer {
  0%   { transform: translateY(-10vh) translateX(0) rotate(0deg); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { transform: translateY(112vh) translateX(var(--deriva, 30px)) rotate(320deg); opacity: 0; }
}

/* ---------- 8. tarjetas con brillo que sigue al cursor ---------- */
.tarjeta, .pista { --mx: 50%; --my: 50%; }
.tarjeta::after, .pista::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  transition: opacity .45s ease; border-radius: inherit;
  background: radial-gradient(340px circle at var(--mx) var(--my), rgba(77,182,232,.16), transparent 62%);
}
.tarjeta:hover::after, .pista:hover::after { opacity: 1; }

/* ---------- 9. separador de olas entre secciones ---------- */
.ola { display: block; width: 100%; height: 54px; margin-bottom: -1px; }
.ola path { fill: currentColor; }

/* ---------- 10. pie nuevo ---------- */
footer {
  background: linear-gradient(165deg, #0b2f45 0%, #0e3f5c 55%, #114b6d 100%);
  padding: 0; color: rgba(255, 255, 255, .74);
}
.pie-cta { padding: 26px 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.pie-barra { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.pie-barra-titulo { display: block; color: #fff; font-weight: 800; font-size: 1.12rem; }
.pie-barra-texto { display: block; font-size: .9rem; color: rgba(255,255,255,.7); margin-top: 3px; }
@media (max-width: 700px) { .pie-barra { justify-content: center; text-align: center; } }
.pie-cta h3 { font-size: clamp(1.5rem, 3.4vw, 2.4rem); color: #fff; margin-bottom: 12px; }
.pie-cta p { max-width: 52ch; margin: 0 auto 26px; color: rgba(255, 255, 255, .72); }
.pie-contacto { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.pie-cuerpo { padding: clamp(38px, 6vw, 62px) 0 26px; }
.pie-rejilla { grid-template-columns: 1.7fr 1fr 1fr 1.1fr; }
@media (max-width: 900px) { .pie-rejilla { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pie-rejilla { grid-template-columns: 1fr; } }
.pie-marca { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.pie-marca img { height: 56px; width: auto; }
.pie-marca span { font-weight: 800; color: #fff; font-size: 1.05rem; line-height: 1.2; }
footer h4 { color: #fff; font-size: .8rem; letter-spacing: .16em; margin-bottom: 16px; opacity: .85; }
footer li { margin-bottom: 10px; font-size: .92rem; }
footer a { transition: var(--trans); display: inline-block; }
footer a:hover { color: #7fd8f5; transform: translateX(3px); }
.pie-sello {
  display: inline-flex; align-items: center; gap: 9px; margin-top: 14px;
  padding: 9px 15px; border-radius: 100px; font-size: .8rem; font-weight: 700;
  background: rgba(26, 158, 92, .16); color: #6ee7a8; border: 1px solid rgba(110, 231, 168, .28);
}
.pie-abajo { padding-bottom: 26px; opacity: .7; font-size: .82rem; }

/* ---------- 11. detalles de movimiento ---------- */
.revela.escala { transform: translateY(28px) scale(.97); }
.revela.escala.visible { transform: none; }
.boton { position: relative; overflow: hidden; }
.boton::before {
  content: ''; position: absolute; inset: 0; transform: translateX(-102%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
  transition: transform .7s ease;
}
.boton:hover::before { transform: translateX(102%); }
.marcador .cifra { background: linear-gradient(120deg, #fff, #9ae6ff);
  -webkit-background-clip: text; background-clip: text; color: transparent; }

@media (prefers-reduced-motion: reduce) {
  .aurora span, .copo, .boton::before { animation: none !important; transition: none !important; }
  .copos { display: none; }
}

/* ---------- migas de pan ---------- */
.migas{font-size:.85rem;color:var(--gris)}
.migas a{color:var(--azul-medio);font-weight:600}
.migas a:hover{text-decoration:underline}

/* ---------- tiras de imagenes del blog: altura fija, sin deformar ---------- */
.tira-imagenes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:0 0 8px}
.tira-imagenes figure{margin:0;border-radius:14px;overflow:hidden;box-shadow:var(--sombra);background:var(--hielo)}
.tira-imagenes img{width:100%;height:300px;object-fit:cover;object-position:center;display:block;
  transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.tira-imagenes figure:hover img{transform:scale(1.05)}
.tira-pie{font-size:.85rem;color:var(--gris);margin-top:10px;text-align:center}
/* dentro del cuerpo de un articulo, si se intercala una tira */
.entrada .tira-imagenes{margin:26px 0}
@media(max-width:560px){.tira-imagenes img{height:220px}}

/* ---------- calculadora de precio pública (zonas.html) ---------- */
.calc-envoltura{display:grid;grid-template-columns:1.05fr .95fr;gap:26px;align-items:start;margin-top:34px}
@media(max-width:900px){.calc-envoltura{grid-template-columns:1fr}}
.calc-caja{background:var(--blanco);border-radius:var(--radio);box-shadow:var(--sombra);overflow:hidden}
.calc-caja > h3{padding:20px 24px;font-size:1.05rem;border-bottom:1px solid var(--borde);color:var(--azul)}
.calc-cuerpo{padding:22px 24px}
.calc-campo{margin-bottom:16px}
.calc-campo > label{display:block;font-size:.8rem;font-weight:700;color:var(--azul);
  letter-spacing:.02em;margin-bottom:6px}
.calc-campo input,.calc-campo select{width:100%;padding:12px 14px;border:1.5px solid var(--borde);
  border-radius:10px;font-size:.95rem;font-family:inherit;color:var(--texto);background:var(--blanco)}
.calc-campo input:focus,.calc-campo select:focus{outline:0;border-color:var(--azul-claro);
  box-shadow:0 0 0 3px rgba(77,182,232,.18)}
.calc-dos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.calc-tres{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:520px){.calc-dos,.calc-tres{grid-template-columns:1fr}}
.calc-grupo{border-top:1px solid var(--borde);margin-top:22px;padding-top:20px}
.calc-grupo > h4{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gris);
  margin-bottom:14px;font-weight:700}
.calc-nota{font-size:.78rem;color:var(--gris);margin-top:5px}
.calc-linea{display:flex;justify-content:space-between;gap:16px;padding:11px 0;font-size:.94rem;
  border-bottom:1px dashed var(--borde);color:var(--gris)}
.calc-linea b{color:var(--texto);font-variant-numeric:tabular-nums;white-space:nowrap}
.calc-aviso{color:var(--gris);font-size:.92rem;padding:10px 0}
.calc-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  border-top:2px solid var(--azul);margin-top:14px;padding-top:18px}
.calc-total span{font-weight:800;color:var(--azul)}
.calc-total b{font-size:2rem;font-weight:800;color:var(--azul);line-height:1.1;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.calc-menor{display:flex;justify-content:space-between;gap:16px;font-size:.9rem;color:var(--gris);padding-top:7px}
.calc-menor b{color:var(--texto);font-variant-numeric:tabular-nums}
.calc-pie{margin-top:22px;padding-top:20px;border-top:1px solid var(--borde)}
.calc-pie p{font-size:.82rem;color:var(--gris);margin-bottom:16px}
.calc-resultado{position:sticky;top:96px}
@media(max-width:900px){.calc-resultado{position:static}}
.calc-marca{display:inline-block;background:var(--azul);color:#fff;border-radius:100px;
  padding:2px 10px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  margin-right:6px;vertical-align:middle}
#calc-aviso-fechas:not(:empty){background:#fff6e6;border:1px solid #f0d9a8;border-radius:10px;
  padding:11px 13px;margin-top:10px;color:#7a5209}

/* ---------- el menú creció con "Para quién": que quepa sin desbordar ---------- */
@media(min-width:981px){
  .menu{gap:16px}
  .menu a{font-size:.855rem}
  .barra .contenedor{gap:14px}
  .barra .boton{padding:11px 20px;font-size:.88rem}
  .marca{font-size:.94rem}
  .marca img{height:42px}
}
@media(min-width:981px) and (max-width:1180px){
  .menu{gap:12px}
  .menu a{font-size:.8rem}
  .marca span{display:none}          /* en pantallas justas, solo el logotipo */
}

/* ---------- tablas dentro de los artículos del blog ---------- */
.entrada table{width:100%;border-collapse:collapse;margin:26px 0;font-size:.94rem;
  background:var(--blanco);border-radius:12px;overflow:hidden;box-shadow:var(--sombra)}
.entrada table th{background:var(--azul);color:#fff;text-align:left;padding:12px 16px;
  font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.entrada table td{padding:12px 16px;border-top:1px solid var(--borde);vertical-align:top}
.entrada table tr:nth-child(even) td{background:#f7fbfd}
@media(max-width:600px){
  .entrada table{display:block;overflow-x:auto;white-space:nowrap}
  .entrada table td,.entrada table th{white-space:normal;min-width:120px}
}

/* ---------- paginador del blog ---------- */
.paginador{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:48px}
.pag-paso{display:inline-flex;align-items:center;padding:11px 20px;border-radius:100px;
  font-weight:700;font-size:.9rem;background:var(--blanco);color:var(--azul);
  border:1.5px solid var(--borde);transition:var(--trans);white-space:nowrap}
a.pag-paso:hover{background:var(--azul);color:#fff;border-color:var(--azul);transform:translateY(-2px)}
.pag-paso.apagado{opacity:.35;cursor:default}
.pag-numeros{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}
.pag-num{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
  font-weight:700;font-size:.92rem;background:var(--blanco);color:var(--azul);
  border:1.5px solid var(--borde);transition:var(--trans)}
a.pag-num:hover{background:var(--hielo);border-color:var(--azul-claro);transform:translateY(-2px)}
.pag-num.actual{background:linear-gradient(135deg,var(--azul-medio),var(--azul-claro));
  color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(20,96,127,.32)}
.pag-cuenta{text-align:center;margin-top:16px;color:var(--gris);font-size:.86rem}
@media(max-width:560px){
  .paginador{gap:10px}
  .pag-paso{padding:10px 15px;font-size:.84rem}
  .pag-num{width:38px;height:38px;font-size:.86rem}
}
