/* LGPD — banner + modal de cookies (vanilla, autocontido) */

.cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 400; background: var(--esp-footer); color: #fff; font: 400 var(--fs-sm)/1.5 var(--esp-font); padding: 1.125rem 2rem; box-shadow: 0 -0.25rem 1.25rem rgba(0,0,0,.15); }
.cookie-banner[hidden] { display: none; }
.cookie-banner__inner { max-width: var(--esp-container); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 1.75rem; flex-wrap: wrap; }
.cookie-banner__title { margin: 0 0 0.375rem; font: 800 var(--fs-body)/1.2 var(--esp-font); }
.cookie-banner__text { margin: 0; flex: 1 1 26.25rem; }
.cookie-banner__actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.cookie-banner__btn { border: 0; padding: 0.625rem 1.375rem; border-radius: var(--esp-radius-pill); font: 600 var(--fs-sm)/1 var(--esp-font); cursor: pointer; transition: background .2s ease, color .2s ease; }
.cookie-banner__btn--primary { background: var(--esp-blue-btn); color: #fff; }
.cookie-banner__btn--primary:hover { background: #fff; color: var(--esp-blue); }
.cookie-banner__btn:not(.cookie-banner__btn--primary) { background: transparent; color: #fff; text-decoration: underline; padding: 0.625rem 0; }
.cookie-banner__btn:not(.cookie-banner__btn--primary):hover { color: var(--esp-cyan); }
.cookie-banner__link { color: #fff; text-decoration: underline; }
.cookie-banner__link:hover { color: var(--esp-cyan); }
@media (max-width: 600px) {
  .cookie-banner__inner { flex-direction: column; align-items: stretch; }
  .cookie-banner__text { flex: 0 0 auto; }
  .cookie-banner__actions { justify-content: flex-start; }
}

.cookie-modal { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.cookie-modal[hidden] { display: none; }
.cookie-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); backdrop-filter: blur(0.25rem); -webkit-backdrop-filter: blur(0.25rem); }
.cookie-modal__dialog { position: relative; width: 100%; max-width: 35rem; max-height: calc(100vh - 32px); background: #fff; color: var(--esp-ink); border-radius: var(--esp-radius-md); display: flex; flex-direction: column; overflow: hidden; box-shadow: var(--esp-sh-modal); }
.cookie-modal__header { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; border-bottom: 0.0625rem solid var(--esp-border); }
.cookie-modal__title { margin: 0; font: 800 var(--fs-lead)/1.2 var(--esp-font); color: var(--esp-ink); }
.cookie-modal__close { background: transparent; border: 0; padding: 0; width: 2rem; height: 2rem; font-size: var(--fs-h3); line-height: 1; color: var(--esp-ink); cursor: pointer; border-radius: var(--esp-radius-sm); }
.cookie-modal__close:hover { background: var(--esp-bg-soft); }
.cookie-modal__body { padding: 1.5rem; overflow-y: auto; font: 400 var(--fs-sm)/1.5 var(--esp-font); }
.cookie-modal__body p { margin: 0 0 1rem; }
.cookie-modal__body a { color: var(--esp-blue); text-decoration: underline; }
.cookie-modal__footer { padding: 1rem 1.5rem; border-top: 0.0625rem solid var(--esp-border); display: flex; justify-content: flex-end; }
.cookie-modal__ok { border: 0; padding: 0.625rem 1.625rem; border-radius: var(--esp-radius-pill); background: var(--esp-blue-btn); color: #fff; font: 600 var(--fs-sm)/1 var(--esp-font); cursor: pointer; transition: background .2s ease; }
.cookie-modal__ok:hover { background: var(--esp-blue-btn-hover); }

.cookie-option { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; cursor: pointer; }
.cookie-option input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }
.cookie-option__switch { position: relative; display: inline-block; width: 2.25rem; height: 1.25rem; background: rgba(10,42,74,.25); border-radius: var(--esp-radius-pill); transition: background .2s ease; flex-shrink: 0; }
.cookie-option__switch::before { content: ""; position: absolute; top: 0.125rem; left: 0.125rem; width: 1rem; height: 1rem; background: #fff; border-radius: 50%; transition: transform .2s ease; box-shadow: 0 0.0625rem 0.1875rem rgba(0,0,0,.3); }
.cookie-option input:checked + .cookie-option__switch { background: var(--esp-blue-btn); }
.cookie-option input:checked + .cookie-option__switch::before { transform: translateX(1rem); }
.cookie-option input:disabled + .cookie-option__switch { opacity: .5; cursor: not-allowed; }
.cookie-option__label { font-weight: 800; color: var(--esp-ink); }
