.lgpdBanner,
.lgpdModal,
.lgpdOverlay,
.lgpdReopen{
    --lgpd-verde:#07964f;
    --lgpd-verde-escuro:#052e23;
    --lgpd-amarelo:#f0e91d;
    --lgpd-texto:#44554d;
    --lgpd-borda:rgba(5,46,35,.14);
    font-family:"Manrope",sans-serif;
}

.lgpd-modal-aberto{ overflow:hidden; }
.lgpdOverlay{
    position:fixed;
    z-index:199800;
    inset:0;
    visibility:hidden;
    opacity:0;
    background:rgba(1,20,14,.58);
    transition:opacity .22s ease,visibility .22s ease;
}
.lgpdOverlay.is-visible{ visibility:visible; opacity:1; }

.lgpdBanner{
    position:fixed;
    z-index:199900;
    left:24px;
    bottom:24px;
    width:min(470px,calc(100vw - 48px));
    padding:24px;
    color:var(--lgpd-texto);
    background:#fff;
    border:1px solid var(--lgpd-borda);
    border-top:4px solid var(--lgpd-verde);
    border-radius:8px;
    box-shadow:0 24px 60px -24px rgba(1,33,23,.4);
    opacity:0;
    pointer-events:none;
    transform:translateY(16px);
    transition:opacity .28s ease,transform .28s cubic-bezier(.2,.7,.3,1);
}
.lgpdBanner.is-visible{ opacity:1; pointer-events:auto; transform:none; }
.lgpdBanner__header{ display:flex; align-items:center; gap:13px; margin-bottom:13px; }
.lgpdBanner__icon{
    display:grid;
    place-items:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    color:var(--lgpd-amarelo);
    background:var(--lgpd-verde-escuro);
    border-radius:5px;
    font-size:18px;
}
.lgpdBanner__eyebrow{
    display:block;
    margin-bottom:2px;
    color:var(--lgpd-verde);
    font-size:10px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.lgpdBanner__title,
.lgpdModal__title{
    margin:0;
    color:var(--lgpd-verde-escuro);
    font-family:"Barlow Condensed",sans-serif;
    font-size:24px;
    font-weight:700;
    line-height:1.05;
}
.lgpdBanner__texto{ margin:0 0 19px; font-size:13px; line-height:1.65; }
.lgpdBanner__texto a{ color:var(--lgpd-verde); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.lgpdBanner__actions{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lgpdBanner__actions .lgpd-btn--accept{ grid-column:1/-1; }

.lgpd-btn{
    appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:43px;
    padding:11px 15px;
    color:var(--lgpd-verde-escuro);
    background:transparent;
    border:1px solid transparent;
    border-radius:4px;
    font:800 11px/1.2 "Manrope",sans-serif;
    letter-spacing:.035em;
    text-transform:uppercase;
    cursor:pointer;
    transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.lgpd-btn:hover{ transform:translateY(-1px); }
.lgpd-btn:focus-visible{ outline:3px solid rgba(7,150,79,.32); outline-offset:2px; }
.lgpd-btn--accept{ color:#fff; background:var(--lgpd-verde); border-color:var(--lgpd-verde); }
.lgpd-btn--accept:hover{ background:var(--lgpd-verde-escuro); border-color:var(--lgpd-verde-escuro); }
.lgpd-btn--ghost{ background:#fff; border-color:var(--lgpd-borda); }
.lgpd-btn--ghost:hover{ color:var(--lgpd-verde); border-color:var(--lgpd-verde); }
.lgpd-btn--link{ color:#66776f; }
.lgpd-btn--link:hover{ color:var(--lgpd-verde); background:rgba(7,150,79,.055); }

.lgpdModal{
    position:fixed;
    z-index:199950;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease,visibility .22s ease;
}
.lgpdModal.is-visible{ visibility:visible; opacity:1; pointer-events:auto; }
.lgpdModal__dialog{
    width:min(620px,100%);
    max-height:calc(100vh - 48px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--lgpd-borda);
    border-radius:8px;
    box-shadow:0 30px 75px -24px rgba(1,20,14,.55);
    transform:scale(.98);
    transition:transform .22s ease;
}
.lgpdModal.is-visible .lgpdModal__dialog{ transform:scale(1); }
.lgpdModal__header{ display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:25px 25px 19px; border-bottom:1px solid var(--lgpd-borda); }
.lgpdModal__subtitle{ margin:8px 0 0; color:#66776f; font-size:13px; line-height:1.55; }
.lgpdModal__close{
    display:grid;
    place-items:center;
    flex:0 0 40px;
    width:40px;
    height:40px;
    color:var(--lgpd-verde-escuro);
    background:#fff;
    border:1px solid var(--lgpd-borda);
    border-radius:4px;
    cursor:pointer;
}
.lgpdModal__close:hover{ color:#fff; background:var(--lgpd-verde); border-color:var(--lgpd-verde); }
.lgpdModal__close:focus-visible{ outline:3px solid rgba(7,150,79,.32); outline-offset:2px; }
.lgpdModal__body{ flex:1 1 auto; overflow-y:auto; padding:4px 25px 8px; }
.lgpdCategory{ padding:19px 0; border-bottom:1px solid var(--lgpd-borda); }
.lgpdCategory:last-child{ border-bottom:0; }
.lgpdCategory__head{ display:flex; align-items:center; justify-content:space-between; gap:18px; }
.lgpdCategory__title{ margin:0 0 6px; color:var(--lgpd-verde-escuro); font-size:14px; line-height:1.3; font-weight:800; }
.lgpdCategory__badge{ display:inline-flex; padding:4px 8px; color:var(--lgpd-verde); background:rgba(7,150,79,.08); border-radius:3px; font-size:9px; line-height:1; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.lgpdCategory__desc{ margin:10px 0 0; color:#66776f; font-size:12.5px; line-height:1.6; }

.lgpdSwitch{ position:relative; flex:0 0 47px; width:47px; height:27px; }
.lgpdSwitch input{ position:absolute; width:1px; height:1px; opacity:0; }
.lgpdSwitch__slider{ position:absolute; inset:0; background:#c8d1cc; border-radius:999px; cursor:pointer; transition:background .2s ease; }
.lgpdSwitch__slider::before{ content:""; position:absolute; top:3px; left:3px; width:21px; height:21px; background:#fff; border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.18); transition:transform .2s ease; }
.lgpdSwitch input:checked + .lgpdSwitch__slider{ background:var(--lgpd-verde); }
.lgpdSwitch input:checked + .lgpdSwitch__slider::before{ transform:translateX(20px); }
.lgpdSwitch input:focus-visible + .lgpdSwitch__slider{ outline:3px solid rgba(7,150,79,.3); outline-offset:2px; }
.lgpdSwitch input:disabled + .lgpdSwitch__slider{ cursor:not-allowed; opacity:.72; }
.lgpdModal__footer{ display:flex; flex-wrap:wrap; gap:8px; padding:19px 25px 25px; background:#f3f6f4; border-top:1px solid var(--lgpd-borda); }
.lgpdModal__footer .lgpd-btn{ flex:1 1 150px; }

.lgpdReopen{
    position:fixed;
    z-index:1490;
    left:86px;
    bottom:22px;
    display:none;
    place-items:center;
    width:46px;
    height:46px;
    color:#fff;
    background:var(--lgpd-verde-escuro);
    border:1px solid rgba(255,255,255,.2);
    border-radius:50%;
    box-shadow:0 10px 26px rgba(1,20,14,.25);
    cursor:pointer;
}
.lgpdReopen.is-visible{ display:grid; }
.lgpdReopen:hover{ color:var(--lgpd-verde-escuro); background:var(--lgpd-amarelo); }
.lgpdReopen:focus-visible{ outline:3px solid #fff; outline-offset:3px; box-shadow:0 0 0 6px var(--lgpd-verde-escuro); }

@media(max-width:640px){
    .lgpdBanner{ left:12px; right:12px; bottom:12px; width:auto; padding:19px; }
    .lgpdBanner__actions{ grid-template-columns:1fr; }
    .lgpdBanner__actions .lgpd-btn--accept{ grid-column:auto; }
    .lgpdModal{ align-items:flex-end; padding:12px; }
    .lgpdModal__dialog{ max-height:calc(100vh - 24px); }
    .lgpdModal__header,.lgpdModal__body,.lgpdModal__footer{ padding-left:18px; padding-right:18px; }
    .lgpdModal__footer .lgpd-btn{ flex-basis:100%; }
    .lgpdReopen{ left:72px; bottom:16px; width:42px; height:42px; }
}

@media(prefers-reduced-motion:reduce){
    .lgpdBanner,.lgpdModal,.lgpdModal__dialog,.lgpdOverlay{ transition:none; }
}
