body.has-privacy-consent { overflow:hidden; }
.privacy-consent[hidden], .privacy-consent [hidden] { display:none !important; }
.privacy-consent { position:fixed; inset:0; z-index:3000; display:flex; align-items:flex-end; justify-content:flex-start; padding:18px; pointer-events:none; opacity:0; transition:opacity .16s ease; }
.privacy-consent.is-visible { opacity:1; }
.privacy-consent.is-settings { align-items:center; justify-content:center; padding:20px; pointer-events:auto; background:rgba(2,26,22,.58); backdrop-filter:blur(5px); }
.privacy-consent__banner, .privacy-consent__settings { pointer-events:auto; overflow:auto; border:1px solid #d5e2de; background:#fff; color:#18332d; box-shadow:0 18px 50px rgba(0,35,28,.2); }
.privacy-consent__banner { width:min(540px,calc(100vw - 36px)); max-height:calc(100dvh - 36px); padding:20px 21px 17px; border-radius:17px; }
.privacy-consent__copy h2, .privacy-consent__settings h2 { margin:0; color:#063c33; line-height:1.08; }
.privacy-consent__copy h2 { font-size:clamp(21px,2.2vw,27px); }
.privacy-consent__copy p { margin:7px 0 5px; color:#51645f; font-size:14px; line-height:1.5; }
.privacy-consent__copy a { display:inline-flex; min-height:34px; align-items:center; color:#0f7662; font-size:13px; font-weight:850; }
.privacy-consent__eyebrow { display:block; margin-bottom:5px; color:#0f7662; font-size:9px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.privacy-consent__actions, .privacy-consent__settings-actions { display:flex; flex-wrap:wrap; gap:8px; }
.privacy-consent__actions { margin-top:12px; }
.privacy-consent__button { min-height:44px; padding:8px 13px; border:1px solid #b9cbc6; border-radius:10px; background:#fff; color:#0a463b; font:800 13px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif; cursor:pointer; }
.privacy-consent__button:hover { border-color:#0f7662; background:#eef7f4; }
.privacy-consent__button--primary { border-color:#0f7662; background:#0f7662; color:#fff; }
.privacy-consent__button--primary:hover { background:#0a5f50; color:#fff; }
.privacy-consent__button--text { border-color:transparent; padding-inline:8px; }
.privacy-consent__settings { width:min(720px,100%); max-height:calc(100dvh - 40px); padding:28px; border-radius:20px; box-shadow:0 28px 80px rgba(0,25,20,.32); }
.privacy-consent__settings-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.privacy-consent__settings h2 { font-size:clamp(25px,3vw,34px); }
.privacy-consent__settings > p { max-width:650px; margin:10px 0; color:#4e625d; }
.privacy-consent__close { display:grid; flex:0 0 auto; place-items:center; width:44px; height:44px; border:1px solid #cbd8d4; border-radius:50%; background:#fff; color:#063c33; font-size:27px; cursor:pointer; }
.privacy-consent__categories { display:grid; gap:10px; margin:22px 0; }
.privacy-consent__category { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 18px; align-items:center; padding:14px 16px; border:1px solid #d4e2de; border-radius:13px; background:#f8fbfa; }
.privacy-consent__category span { display:grid; gap:2px; }
.privacy-consent__category small { color:#60716c; }
.privacy-consent__category > b { color:#60716c; font-size:12px; }
.privacy-consent__category input { position:absolute; opacity:0; pointer-events:none; }
.privacy-consent__category i { position:relative; width:48px; height:28px; border-radius:99px; background:#afbfbb; cursor:pointer; transition:background .15s ease; }
.privacy-consent__category i::after { content:""; position:absolute; left:4px; top:4px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 2px 5px rgba(0,0,0,.2); transition:transform .15s ease; }
.privacy-consent__category input:checked + i { background:#0f7662; }
.privacy-consent__category input:checked + i::after { transform:translateX(20px); }
.privacy-consent__category input:focus-visible + i, .privacy-consent__button:focus-visible, .privacy-consent__close:focus-visible { outline:3px solid #e4ad28; outline-offset:3px; }
.privacy-preferences-link { display:inline-flex; min-height:44px; align-items:center; padding:0; border:0; background:transparent; color:rgba(255,255,255,.82); font:inherit; cursor:pointer; text-decoration:underline; }
.privacy-preferences-link:hover { color:#fff; }
@media (max-width:600px) {
  .privacy-consent { padding:10px; }
  .privacy-consent__banner { width:100%; max-height:72dvh; padding:17px 17px 14px; border-radius:15px; }
  .privacy-consent__copy h2 { font-size:21px; }
  .privacy-consent__copy p { font-size:13px; }
  .privacy-consent__actions { display:grid; grid-template-columns:1fr 1fr; }
  .privacy-consent__button { width:100%; }
  .privacy-consent__button--text { grid-column:1/-1; min-height:38px; }
  .privacy-consent.is-settings { align-items:flex-end; padding:0; }
  .privacy-consent__settings { max-height:92dvh; padding:23px 18px; border-radius:19px 19px 0 0; }
  .privacy-consent__settings-actions { display:grid; }
}
@media (prefers-reduced-motion:reduce) {
  .privacy-consent, .privacy-consent__category i, .privacy-consent__category i::after { transition:none; }
}
