/* =====================================================================
   LETO — banner de consentimento de cookies + modal de preferências.
   ===================================================================== */
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 200; background: rgba(33,33,31,.97); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff; box-shadow: 0 -8px 30px rgba(0,0,0,.28); }
.cookie-banner[hidden] { display: none; }
.cookie-banner__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 28px; max-width: var(--stage, 1280px); margin-inline: auto; padding: 18px var(--mx, 24px); }
.cookie-banner__text { font-size: 13.5px; line-height: 1.55; color: rgba(255,255,255,.82); max-width: 60ch; }
.cookie-banner__text a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner__actions { display: flex; flex-wrap: wrap; gap: 10px; flex: 0 0 auto; }

.cookie-btn { height: 42px; padding-inline: 20px; border-radius: 100px; font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; border: 1px solid transparent; transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.cookie-btn--ghost { background: transparent; border-color: rgba(255,255,255,.45); color: #fff; }
.cookie-btn--ghost:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.cookie-btn--solid { background: var(--leto-green, #D8EEA9); color: var(--leto-ink, #2d2d2d); }
.cookie-btn--solid:hover { background: var(--leto-green-deep, #C7E085); }

/* Modal de preferências */
.cookie-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; }
.cookie-modal[hidden] { display: none; }
.cookie-modal__overlay { position: absolute; inset: 0; background: rgba(20,20,18,.55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.cookie-modal__panel { position: relative; width: 100%; max-width: 540px; max-height: 90vh; overflow: auto; background: #fff; color: var(--leto-ink, #2d2d2d); border-radius: 16px; padding: clamp(1.6rem, 1.2rem + 1.5vw, 34px); box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.cookie-modal__title { font-size: 22px; font-weight: 500; margin-bottom: .5rem; }
.cookie-modal__lead { font-size: 14px; color: var(--leto-gray, #595959); line-height: 1.55; margin-bottom: 1.2rem; }
.cookie-cats { list-style: none; margin: 0 0 1.4rem; padding: 0; }
.cookie-cat { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(45,45,45,.1); }
.cookie-cat:last-child { border-bottom: 0; }
.cookie-cat__txt strong { display: block; font-size: 15px; font-weight: 600; }
.cookie-cat__txt span { display: block; font-size: 12.5px; color: var(--leto-gray, #595959); line-height: 1.45; margin-top: 2px; }
.cookie-cat__on { flex: 0 0 auto; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--leto-green-deep, #9FB45E); }

/* Toggle switch */
.cookie-switch { flex: 0 0 auto; position: relative; display: inline-block; width: 44px; height: 24px; cursor: pointer; }
.cookie-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.cookie-switch span { position: absolute; inset: 0; border-radius: 100px; background: #cfcfc7; transition: background .25s var(--ease); }
.cookie-switch span::before { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform .25s var(--ease); box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.cookie-switch input:checked + span { background: var(--leto-green-deep, #9FB45E); }
.cookie-switch input:checked + span::before { transform: translateX(20px); }
.cookie-switch input:focus-visible + span { outline: 2px solid var(--leto-ink); outline-offset: 2px; }

.cookie-modal__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.cookie-modal__actions .cookie-btn--ghost { border-color: rgba(45,45,45,.4); color: var(--leto-ink, #2d2d2d); }
.cookie-modal__actions .cookie-btn--ghost:hover { background: rgba(45,45,45,.06); }

@media (max-width: 640px) {
	.cookie-banner__inner { flex-direction: column; align-items: stretch; }
	.cookie-banner__actions { justify-content: stretch; }
	.cookie-banner__actions .cookie-btn { flex: 1 1 auto; }
}
