/* Layout and accessibility only. Typography, buttons and checkbox visuals come
   from main.scss: tipoRegular, tipoBold, tipoBoton, tipoCheckbox and coolLink. */
#espacio-cookie-dialog { box-sizing: border-box; position: fixed; z-index: 9999; inset: auto auto 25px 25px; margin: 0; width: min(600px, calc(100% - 50px)); max-height: calc(100dvh - 50px); padding: 22px; color: inherit; background: #fff; border: 2px solid currentColor; overflow: auto; overscroll-behavior: contain; text-align: left; opacity: 0; transform: translateX(calc(-100% - 50px)); transition: opacity .45s ease-out, transform .65s cubic-bezier(.68,.01,.1,1); }
#espacio-cookie-dialog.open { opacity: 1; transform: translateX(0); }
#espacio-cookie-dialog:focus { outline: none; }
#espacio-cookie-dialog h3 { margin: 0 0 8px; }
#espacio-cookie-dialog p { margin: 0 0 15px; font-size: .9em; }
#espacio-cookie-dialog .consent-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 15px; }
#espacio-cookie-dialog .tipoBoton { -webkit-appearance: none; appearance: none; background: transparent; color: inherit; border-radius: 0; font-size: .8em; line-height: inherit; }
#espacio-cookie-dialog .consent-categories { display: grid; grid-template-columns: repeat(4, max-content); justify-content: space-between; gap: 10px; }
#espacio-cookie-dialog .tipoCheckbox { min-height: 30px; padding: 0 0 0 27px; }
#espacio-cookie-dialog .tipoCheckbox label { cursor: pointer; }
#espacio-cookie-dialog .tipoCheckbox label { position: static; width: auto; font-size: .7em; line-height: 22px; white-space: nowrap; }
/* Keep a real, focusable input over the existing decorative checkbox. */
#espacio-cookie-dialog .tipoCheckbox input { display: block; position: absolute; left: 0; top: 0; width: 22px; height: 22px; margin: 0; opacity: 0; z-index: 1; cursor: pointer; }
#espacio-cookie-dialog .tipoCheckbox > span { top: 0; width: 20px; height: 20px; }
#espacio-cookie-dialog .tipoCheckbox > span:after { left: 7px; top: 3px; }
#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: 8px; font-size: .75em; }
#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: 700px) { #espacio-cookie-dialog .consent-categories { grid-template-columns: repeat(2, max-content); justify-content: start; } }
@media (max-width: 540px) { #espacio-cookie-dialog { inset: auto 15px 15px 15px; width: auto; max-height: calc(100dvh - 30px); padding: 18px; transform: translateY(calc(100% + 30px)); } #espacio-cookie-dialog.open { transform: translateY(0); } #espacio-cookie-dialog .consent-actions { grid-template-columns: 1fr; } #espacio-cookie-dialog .consent-categories { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } #espacio-cookie-dialog .tipoCheckbox label { white-space: normal; line-height: 1.25; } }
