:root{--consent-primary:#214a38;--consent-dark:#173528;--consent-accent:#e8c472;--consent-accent-bright:#f2d58f;--consent-cream:#fffaf0;--consent-ink:#4f5d55;--consent-muted:#68776f}
.consent-overlay,.consent-overlay *{box-sizing:border-box}
html.consent-open,html.consent-open body{overflow:hidden}
.consent-overlay{position:fixed;inset:0;z-index:2147483646;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;overflow-y:auto;padding:30px;background:#101e18b3;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease}
.consent-overlay[hidden]{display:none!important}.consent-overlay.is-visible{opacity:1;visibility:visible}
.consent-dialog{position:relative;min-width:0;width:min(610px,100%);max-width:100%;max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);overflow:auto;padding:28px 34px 24px;color:var(--consent-ink);text-align:center;background:radial-gradient(circle at 50% -25%,#e8c47252,transparent 42%),var(--consent-cream);border:1px solid #ffffffb8;border-top:7px solid var(--consent-accent);border-radius:30px;box-shadow:0 30px 90px #0816106b,0 0 0 1px #e8c4722e;transform:translateY(18px) scale(.985);transition:transform .32s ease}
.consent-overlay.is-visible .consent-dialog{transform:none}
.consent-symbol{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 12px;color:var(--consent-primary);background:linear-gradient(145deg,#fffdf7,#f6ebcf);border:1px solid #214a382e;border-radius:50%;box-shadow:0 8px 24px #214a381a}
.consent-symbol svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.consent-eyebrow{margin:0 0 9px;color:var(--consent-primary);text-transform:uppercase;letter-spacing:.18em;font:800 10px Arial,sans-serif}
.consent-dialog h2{margin:0;color:var(--consent-dark);font:400 clamp(34px,3.4vw,40px)/1.08 Georgia,"Times New Roman",serif;letter-spacing:-.025em;white-space:nowrap}
.consent-copy{max-width:525px;margin:18px auto 0;color:var(--consent-ink);font:15.5px/1.58 Arial,sans-serif;text-wrap:balance}
.consent-assurance{max-width:525px;margin:10px auto 0;color:var(--consent-muted);font:13px/1.5 Arial,sans-serif;text-wrap:balance}
.consent-actions{display:grid;gap:12px;max-width:470px;margin:23px auto 0}
.consent-button{width:100%;min-height:53px;padding:13px 22px;border-radius:999px;cursor:pointer;font:14px Arial,sans-serif;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.consent-button:hover{transform:translateY(-1px)}
.consent-accept{color:#172d23;background:linear-gradient(135deg,var(--consent-accent-bright),var(--consent-accent));border:1px solid #4a36162e;box-shadow:0 10px 25px #7b591838;font-weight:800}.consent-decline{color:var(--consent-dark);background:#ffffff73;border:1px solid #214a3847;font-weight:400}
.consent-privacy-link{display:inline-block;margin-top:13px;color:var(--consent-muted);font:12px Arial,sans-serif;text-decoration:underline;text-underline-offset:3px}
.consent-settings-link{margin-left:14px;padding:0 0 2px;color:inherit;background:transparent;border:0;border-bottom:1px solid currentColor;cursor:pointer;font:inherit;opacity:.82}.consent-settings-floating{position:fixed;right:14px;bottom:14px;z-index:1000;margin:0;padding:8px 11px;color:#fff;background:#173528d9;border:1px solid #ffffff55;border-radius:999px;font:11px Arial,sans-serif}
.consent-button:focus-visible,.consent-privacy-link:focus-visible,.consent-settings-link:focus-visible{outline:3px solid var(--consent-accent);outline-offset:3px}
@media(max-width:860px){.consent-dialog{padding-inline:clamp(25px,7vw,56px)}.consent-dialog h2{white-space:normal}}
@media(max-width:560px){.consent-overlay{padding:14px}.consent-dialog{max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);padding:24px 21px 20px;border-radius:20px}.consent-symbol{width:48px;height:48px;margin-bottom:10px}.consent-dialog h2{font-size:clamp(32px,9.5vw,41px)}.consent-copy{margin-top:16px;font-size:14px}.consent-assurance{font-size:12.5px}.consent-actions{margin-top:20px}.consent-button{min-height:48px}}

/* WS-CONSENT-001 — one scroll region, compact proportional dialog, readable
   controls at narrow/mobile widths and up to 200%+ browser zoom.
   The overlay alone scrolls when needed; the dialog never creates a second
   giant native scrollbar. No consent/analytics semantics are changed.\n   Browser acceptance is checked at 320px through 1440px widths. */
.consent-overlay{
  display:flex;
  align-items:safe center;
  justify-content:center;
  padding:clamp(12px,2.5vh,24px);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(225,207,165,.72) transparent;
}
.consent-overlay::-webkit-scrollbar{width:8px;height:8px}
.consent-overlay::-webkit-scrollbar-track{background:transparent}
.consent-overlay::-webkit-scrollbar-thumb{
  background:rgba(225,207,165,.72);
  border:2px solid transparent;
  background-clip:padding-box;
  border-radius:999px;
}
.consent-dialog{
  flex:0 1 610px;
  width:min(610px,100%);
  min-width:0;
  max-height:none;
  overflow:visible;
  margin:auto;
  padding:clamp(18px,3vh,28px) clamp(18px,3vw,34px) clamp(17px,2.7vh,24px);
  border-radius:clamp(18px,2.5vw,26px);
}
.consent-dialog h2{
  white-space:normal;
  overflow-wrap:normal;
  text-wrap:balance;
  font-size:clamp(28px,3.2vw,37px);
  line-height:1.12;
}
.consent-symbol{width:46px;height:46px;margin-bottom:9px}
.consent-symbol svg{width:29px;height:29px}
.consent-eyebrow{margin-bottom:8px}
.consent-copy{
  max-width:525px;
  margin-top:13px;
  font-size:15px;
  line-height:1.5;
  text-wrap:pretty;
}
.consent-assurance{margin-top:9px;font-size:13px;line-height:1.45}
.consent-actions{
  max-width:470px;
  margin-top:18px;
  gap:10px;
}
.consent-button{
  min-height:48px;
  padding:11px 19px;
  font-size:14px;
  line-height:1.3;
}
.consent-privacy-link{margin-top:11px;min-height:28px;padding:6px 2px 2px}
@media(max-width:560px){
  .consent-overlay{padding:12px}
  .consent-dialog{
    width:100%;
    max-height:none;
    overflow:visible;
    padding:21px 20px 19px;
    border-radius:20px;
  }
  .consent-dialog h2{font-size:clamp(28px,8vw,35px)}
  .consent-copy{margin-top:12px;font-size:14px;line-height:1.5}
  .consent-assurance{font-size:12.5px}
  .consent-actions{margin-top:17px;gap:9px}
  .consent-button{min-height:48px}
}
@media(max-height:600px){
  .consent-overlay{padding-block:10px}
  .consent-dialog{padding-block:16px}
  .consent-symbol{width:40px;height:40px;margin-bottom:7px}
  .consent-symbol svg{width:26px;height:26px}
  .consent-eyebrow{margin-bottom:6px}
  .consent-copy{margin-top:10px}
  .consent-actions{margin-top:13px}
  .consent-privacy-link{margin-top:8px}
}
@media(prefers-reduced-motion:reduce){
  .consent-overlay,.consent-dialog,.consent-button{
    transition:none;
    animation:none;
  }
}

/* WS-CONSENT-002 — equal, freely distinguishable choices.
   Both vertical choices use identical emphasis, shape, geometry and type weight;
   this affects presentation only, not the visitor's selection or consent storage.
   Keep focus-visible and narrow-viewport rules intact. */
.consent-dialog .consent-actions .consent-accept,
.consent-dialog .consent-actions .consent-decline{
  color:#172d23;
  background:linear-gradient(135deg,#f6ecd3,#ebd8ab);
  border:1px solid #b69d68;
  box-shadow:0 4px 12px rgba(44,36,20,.11);
  font-weight:700;
}
