/* Layout and accessibility only. Typography, buttons and checkbox visuals come
   from main.scss: tipoRegular, tipoBold, tipoBoton, tipoCheckbox and coolLink. */
html.espacio-consent-open, html.espacio-consent-open body { overflow: hidden !important; }
#espacio-cookie-dialog { box-sizing: border-box; position: fixed; inset: 0; margin: auto; width: min(680px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 32px; color: inherit; background: #fff; border: 2px solid currentColor; overflow: auto; overscroll-behavior: contain; text-align: left; }
#espacio-cookie-dialog::backdrop { background: rgb(0 0 0 / 65%); }
#espacio-cookie-dialog:focus { outline: none; }
#espacio-cookie-dialog h3 { margin: 0 0 12px; }
#espacio-cookie-dialog p { margin: 0 0 20px; font-size: 1em; }
#espacio-cookie-dialog .consent-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 22px; }
#espacio-cookie-dialog .tipoBoton { background: transparent; font-size: .8em; line-height: inherit; }
#espacio-cookie-dialog .tipoCheckbox { padding-bottom: 18px; }
#espacio-cookie-dialog .tipoCheckbox label { cursor: pointer; }
#espacio-cookie-dialog .tipoCheckbox small { display: block; margin: 14px 0 0 45px; font-size: .8em; }
/* Keep a real, focusable input over the existing decorative checkbox. */
#espacio-cookie-dialog .tipoCheckbox input { display: block; position: absolute; left: 0; top: 5px; width: 32px; height: 32px; margin: 0; opacity: 0; z-index: 1; cursor: pointer; }
#espacio-cookie-dialog .tipoCheckbox > span { pointer-events: none; }
#espacio-cookie-dialog .tipoCheckbox input:focus-visible ~ span { outline: 2px solid currentColor !important; outline-offset: 3px; }
#espacio-cookie-dialog .consent-necessary label, #espacio-cookie-dialog .consent-necessary input { cursor: default; }
#espacio-cookie-dialog :focus-visible, [data-cookie-settings]:focus-visible { outline: 2px solid currentColor !important; outline-offset: 3px; }
#espacio-cookie-dialog .consent-links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 4px; font-size: .8em; }
#espacio-cookie-dialog [data-consent-close] { border: 0; padding: 0; background: transparent; font-size: inherit; cursor: pointer; }
[data-cookie-settings] { cursor: pointer; }
button[data-cookie-settings]:not(.consent-media-button) { font-size: inherit; color: inherit; background: transparent; border: 0; padding: 0; text-align: left; }
.consent-media-button { position: absolute; inset: 0; margin: auto; width: min(320px, 90%); height: fit-content; z-index: 5; border: 2px solid currentColor; padding: 12px; background: #fff; color: inherit; text-transform: uppercase; font-size: .8em; cursor: pointer; }
@media (max-width: 540px) { #espacio-cookie-dialog { padding: 22px; } #espacio-cookie-dialog .consent-actions { grid-template-columns: 1fr; } }
