/* ==========================================================================
   DISFRICAL — Páginas legales + aviso de cookies + mapas bloqueados
   ========================================================================== */

/* ---- Páginas legales ---- */
.legal-banner { min-height: clamp(320px, 40vh, 420px); }
.legal { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1040px) { .legal { grid-template-columns: 260px 1fr; gap: 64px; } }
.legal__toc { display: grid; gap: 4px; padding: 20px; border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); }
@media (min-width: 1040px) { .legal__toc { position: sticky; top: calc(var(--nav-h) + 40px); } }
.legal__toc-title { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 8px; }
.legal__toc a { padding: 7px 10px; border-radius: 8px; font-size: 0.9rem; font-weight: 500; color: var(--ink-2); transition: background 0.2s, color 0.2s; }
.legal__toc a:hover { background: var(--surface-2); color: var(--ink); }
.legal__updated { margin-top: 12px; font-size: 0.75rem; color: var(--ink-3); }
.legal__body { max-width: 760px; }
.legal__body h2 { font-size: 1.4rem; color: var(--ink); margin-top: 18px; scroll-margin-top: calc(var(--nav-h) + 30px); }
.legal__body h2:first-child { margin-top: 0; }
.legal__body ul { display: grid; gap: 8px; padding-left: 20px; list-style: disc; }
.legal__data { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--line); }
.legal__data div { display: grid; gap: 4px 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
@media (min-width: 640px) { .legal__data div { grid-template-columns: 180px 1fr; } }
.legal__data dt { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); padding-top: 2px; }
.legal__data dd { margin: 0; color: var(--ink); }
.legal__table-wrap { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--line); }
.legal__table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 0.88rem; background: var(--surface); }
.legal__table th, .legal__table td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.legal__table thead th { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); background: var(--surface-2); }
.legal__table tbody th { color: var(--ink); font-weight: 600; }
.legal__table tr:last-child th, .legal__table tr:last-child td { border-bottom: 0; }
.legal__links { margin-top: 12px; padding-top: 18px; border-top: 1px dashed var(--line-2); }
.todo-field { background: color-mix(in srgb, var(--heat-400) 28%, transparent); color: var(--ink); padding: 1px 6px; border-radius: 4px; font-weight: 600; }

/* ---- Aviso de cookies ---- */
.cookie-bar {
  position: fixed; z-index: 140; left: max(16px, env(safe-area-inset-left)); bottom: max(16px, env(safe-area-inset-bottom));
  width: min(560px, calc(100vw - 32px)); display: grid; gap: 14px; padding: 20px;
  border-radius: var(--radius-lg); background: var(--glass-solid); color: var(--ink);
  border: 1px solid var(--line); box-shadow: var(--shadow-2);
  opacity: 0; visibility: hidden; transform: translateY(20px);
  transition: opacity 0.35s, transform 0.5s var(--ease-out), visibility 0.35s;
}
@supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
  .cookie-bar { background: var(--glass); backdrop-filter: blur(22px) saturate(180%); -webkit-backdrop-filter: blur(22px) saturate(180%); }
}
.cookie-bar.is-shown { opacity: 1; visibility: visible; transform: none; }
.cookie-bar__title { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 1rem; }
.cookie-bar__title svg { width: 20px; height: 20px; color: var(--accent); }
.cookie-bar__main { display: grid; gap: 8px; }
.cookie-bar__main > p:not(.cookie-bar__title) { font-size: 0.86rem; color: var(--ink-2); line-height: 1.55; }
.cookie-bar__main a { color: var(--accent); font-weight: 600; text-decoration: underline; }
.cookie-bar__prefs { display: grid; gap: 10px; margin-top: 6px; }
.cookie-bar__prefs[hidden] { display: none; }
.cookie-bar__prefs .f-switch { padding: 12px 14px; border-radius: 12px; background: var(--surface-2); border: 1px solid var(--line); align-items: center; }
.cookie-bar__prefs .f-switch b { display: block; font-size: 0.9rem; }
.cookie-bar__prefs .f-switch small { display: block; font-size: 0.78rem; color: var(--ink-3); font-weight: 400; }
.cookie-bar__prefs input:disabled { opacity: 0.6; cursor: not-allowed; }
.cookie-bar__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.cookie-bar__actions [hidden] { display: none; }
@media (max-width: 520px) { .cookie-bar__actions .btn { flex: 1 1 auto; } }
/* Con el aviso abierto en móvil, los botones flotantes se apartan */
@media (max-width: 640px) { .has-cookie-bar .wa-widget, .has-cookie-bar .wa-button { opacity: 0; pointer-events: none; } }

/* ---- Mapa bloqueado hasta dar permiso ---- */
.consent-ph {
  position: absolute; inset: 0; z-index: 4; display: grid; place-content: center; justify-items: center; gap: 10px;
  padding: 24px; text-align: center; color: #fff;
  background: radial-gradient(60% 60% at 50% 40%, rgba(29, 116, 216, 0.35), transparent 70%), var(--frost-950);
}
.consent-ph__icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--grad-heat); box-shadow: 0 12px 30px -8px rgba(242, 98, 42, 0.7); }
.consent-ph__icon svg { width: 26px; height: 26px; }
.consent-ph b { font-size: 1.05rem; }
.consent-ph p { max-width: 38ch; font-size: 0.86rem; color: rgba(233, 241, 251, 0.75); }
.consent-ph__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 6px; }

.footer__legal button { font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
.footer__legal a:hover, .footer__legal button:hover { color: #fff; }
