/* Compartido por la portada y las páginas legales; sin recursos externos. */
.cookie-panel[hidden], .cookie-settings[hidden], .map-consent[hidden], .map-frame iframe[hidden] { display: none !important; }
.cookie-panel { position: fixed; z-index: 10000; right: max(24px, env(safe-area-inset-right)); bottom: calc(96px + env(safe-area-inset-bottom)); width: min(390px, calc(100% - 48px)); box-sizing: border-box; max-height: calc(100dvh - 120px - env(safe-area-inset-bottom)); overflow-y: auto; padding: 20px; border: 1px solid #526356; border-radius: 16px; background: #1e3227; color: #f7f7ef; box-shadow: 0 12px 50px #0003; font: 14px/1.45 'Karla', sans-serif; }
.cookie-panel h2 { margin: 0 0 8px; font: 500 25px/1.15 'Cormorant Garamond', Georgia, serif; color: inherit; }
.cookie-panel p { margin: 0 0 14px; color: #e2e7db; }
.cookie-panel a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cookie-button { appearance: none; cursor: pointer; border: 1px solid #e9edde; border-radius: 999px; padding: 11px 20px; background: #e9edde; color: #1e3227; font: 500 15px/1.25 'Karla', sans-serif; min-height: 44px; }
.cookie-actions .cookie-button { flex: 1 1 auto; padding-inline: 12px; font-size: 14px; }
.cookie-button:hover { background: #fff; }
.cookie-button:focus-visible, .cookie-settings-link:focus-visible, .cookie-panel a:focus-visible { outline: 3px solid #bc714b; outline-offset: 4px; }
.cookie-settings { margin: 18px 0; border-top: 1px solid #526356; padding-top: 18px; }
.cookie-option { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.cookie-option input { flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0 0; accent-color: #e9edde; }
.cookie-option strong { display: block; }
.cookie-option span { color: #e2e7db; }
.cookie-settings-link { appearance: none; border: 0; padding: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.map-consent { min-height: 400px; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 20px; padding: clamp(28px, 5vw, 52px); background: #1e3227; color: #f7f7ef; }
.map-consent-kicker { font-size: 12px; text-transform: uppercase; letter-spacing: .16em; color: #d2dbc9; }
.map-consent h3 { font: 500 clamp(30px, 3vw, 42px)/1.1 'Cormorant Garamond', Georgia, serif; margin: 0; color: #f7f7ef; }
.map-consent p { color: #e2e7db; margin: 0; }
.map-consent a { color: inherit; text-underline-offset: 4px; font-size: 14px; }
@media(max-width: 560px) {
  .cookie-panel { right: max(16px, env(safe-area-inset-right)); bottom: calc(100px + env(safe-area-inset-bottom)); width: min(360px, calc(100% - 32px)); padding: 18px; max-height: calc(100dvh - 116px - env(safe-area-inset-bottom)); }
  .cookie-actions { gap: 8px; }
  .cookie-actions .cookie-button { padding-inline: 10px; }
}
