/* The existing brand palette and typefaces also apply to privacy controls. */
body { padding-bottom:var(--consent-space,0px); }
body.consent-modal-open { overflow:hidden; }
.consent-banner { position:fixed; z-index:70; inset:auto 16px 14px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px 40px; padding:24px 30px; background:#fff; border:0; border-radius:10px; box-shadow:0 6px 28px #0000001a; max-height:calc(100svh - 28px); overflow:auto; overscroll-behavior:contain; color:#000; }
.consent-banner[hidden] { display:none; }
.consent-banner h2 { font:600 22px/1.3 var(--sans); letter-spacing:-.01em; margin:0 0 10px; }
.consent-banner p { max-width:820px; margin:0; font:400 16px/1.5 var(--sans); }
.consent-links { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:12px; font:400 14px/1.5 var(--sans); }
.consent-links a { text-decoration:underline; text-underline-offset:3px; }
.consent-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:10px 14px; }
.consent-button { display:inline-flex; justify-content:center; align-items:center; padding:12px 22px; min-height:48px; border:1px solid transparent; border-radius:100px; background:var(--blue,#a6d7f0); color:#000; font:600 16px/1.4 var(--sans); text-align:center; cursor:pointer; overflow-wrap:anywhere; }
.consent-button:hover { background:#161412; color:#a6d7f0; }
.consent-button[hidden] { display:none; }
.consent-manage { grid-column:1/-1; padding:8px 12px; min-height:44px; border:0; background:transparent; font:600 15px/1.4 var(--sans); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
:is(.consent-banner,.consent-dialog) :is(button,a,input):focus-visible { outline:2px solid #165b83; outline-offset:3px; }
.consent-dialog { padding:0; width:min(640px,calc(100% - 32px)); max-height:calc(100svh - 32px); overflow:auto; border:0; border-radius:10px; box-shadow:0 20px 60px #0003; background:#fff; color:#000; overscroll-behavior:contain; }
.consent-dialog::backdrop { background:#0007; }
.consent-dialog-inner { padding:30px; }
.consent-dialog-header { display:flex; align-items:flex-start; gap:20px; justify-content:space-between; margin-bottom:20px; }
.consent-dialog h2 { margin:0; font:600 28px/1.2 var(--sans); letter-spacing:-.02em; }
.consent-dialog h2:focus { outline:0; }
.consent-close { display:grid; place-items:center; flex:none; width:44px; height:44px; margin-top:-8px; margin-right:-8px; padding:0; border:0; background:transparent; cursor:pointer; }
.consent-close svg { width:22px; height:22px; }
.consent-dialog p { margin:0; font:400 16px/1.5 var(--sans); }
.consent-category { border-top:1px solid #d6c9b9; margin-top:24px; padding-top:22px; }
.consent-category-heading { display:flex; gap:20px; justify-content:space-between; align-items:center; min-height:44px; margin-bottom:8px; }
.consent-category h3,.consent-category label { font:600 18px/1.35 var(--sans); margin:0; }
.consent-category label { flex:1; cursor:pointer; padding-block:10px; }
.consent-category input { width:24px; height:24px; margin:0 10px; flex:none; accent-color:#165b83; cursor:pointer; }
.consent-always { flex:none; font:500 14px/1.4 var(--sans); }
.consent-dialog .consent-no-tracking { margin-top:24px; padding:16px; background:var(--gold-soft,#f4efe7); font-size:14px; }
.consent-dialog .consent-actions { margin-top:26px; }
.consent-footer-link { min-height:44px; display:inline-flex; align-items:center; }
.consent-feedback { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.consent-feedback-visible { position:fixed; z-index:71; bottom:14px; left:16px; right:16px; width:auto; height:auto; margin:0; padding:16px 24px; background:#fff; border:0; border-radius:10px; box-shadow:0 6px 28px #0000001a; clip-path:none; white-space:normal; font:400 16px/1.5 var(--sans); }
.consent-policy-table { overflow-x:auto; margin-block:24px; }
.consent-policy-table table { border-collapse:collapse; width:100%; font:400 16px/1.5 var(--sans); }
.consent-policy-table :is(th,td) { padding:12px 16px; border:1px solid #d6c9b9; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.consent-policy-table th { background:#f4efe7; font-weight:600; }
@media(max-width:1050px) {
  .consent-banner { grid-template-columns:1fr; gap:18px; }
  .consent-banner .consent-actions { grid-template-columns:auto auto auto; justify-content:start; }
  .consent-banner .consent-manage { grid-column:auto; }
}
@media(max-width:600px) {
  .consent-banner { inset:auto 10px 10px; padding:20px; max-height:calc(100svh - 20px); gap:14px; }
  .consent-banner h2 { font-size:20px; }
  .consent-banner p { font-size:15px; }
  .consent-banner .consent-actions { grid-template-columns:repeat(2,minmax(0,1fr)); justify-content:stretch; }
  .consent-banner .consent-manage { grid-column:1/-1; }
  .consent-button { padding:12px 14px; font-size:15px; }
  .consent-dialog-inner { padding:24px; }
  .consent-dialog h2 { font-size:25px; }
  .consent-dialog .consent-actions { grid-template-columns:1fr; }
  .consent-category-heading { gap:10px; }
  .consent-always { max-width:90px; text-align:right; }
}
@media(forced-colors:active) {
  .consent-banner,.consent-dialog,.consent-button { border:1px solid ButtonText; }
}
