/* Self-contained brand styles; no font or third-party requests. */
#cp27-privacy-controls {
  --cp27p-cream:#f5f1e9; --cp27p-ink:#1a364a; --cp27p-dark:#092330;
  --cp27p-green:#accb4b; --cp27p-blue:#009fe3;
  color:var(--cp27p-ink); font-family:Chillax,Arial,sans-serif; font-size:15px; line-height:1.6;
}
#cp27-privacy-controls *, #cp27-privacy-controls *::before, #cp27-privacy-controls *::after {box-sizing:border-box}
#cp27-privacy-controls [hidden] {display:none!important}
#cp27-privacy-controls :is(p,h2,h3,label,button,a,small) {font-family:Chillax,Arial,sans-serif!important; color:inherit}
#cp27-privacy-controls :is(h2,h3) {text-transform:none; letter-spacing:-.025em; font-weight:500; line-height:1.25}
#cp27-privacy-controls h2 {margin:0 0 10px; font-size:clamp(23px,3vw,30px)}
#cp27-privacy-controls p {margin:0 0 16px; font-size:15px; line-height:1.6}
#cp27-privacy-controls :is(button,a,input):focus-visible,
.cp27p-footer-button:focus-visible {outline:3px solid #1a364a; outline-offset:4px}
#cp27-privacy-controls a {text-decoration:underline; text-underline-offset:.2em}
#cp27-privacy-controls .cp27p-banner {
  position:fixed; z-index:2147483000; left:16px; right:16px; bottom:16px;
  width:calc(100% - 32px); max-width:1120px; max-height:calc(100svh - 32px);
  margin:0 auto; padding:24px; overflow:auto; overscroll-behavior:contain;
  background:var(--cp27p-cream); border:1px solid #1a364a33; border-radius:20px;
  box-shadow:0 8px 40px #09233026;
}
#cp27-privacy-controls .cp27p-banner-inner {display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px}
#cp27-privacy-controls .cp27p-banner h2 {font-size:22px}
#cp27-privacy-controls .cp27p-banner p {max-width:65ch; margin-bottom:8px}
#cp27-privacy-controls .cp27p-policy-link {display:inline-flex; align-items:center; min-height:44px; font-size:13px}
#cp27-privacy-controls .cp27p-actions {display:flex; align-items:center; flex-wrap:wrap; gap:10px}
#cp27-privacy-controls .cp27p-banner-actions {display:grid; grid-template-columns:1fr 1fr; max-width:440px}
#cp27-privacy-controls .cp27p-banner-actions .cp27p-configure {grid-column:1/-1}
#cp27-privacy-controls .cp27p-button {
  appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-width:0; min-height:48px; max-width:100%; margin:0; padding:12px 18px;
  border:2px solid var(--cp27p-ink); border-radius:999px; background:var(--cp27p-ink);
  color:#fff!important; font-size:14px; font-weight:500; line-height:1.4;
  text-align:center; white-space:normal; text-transform:none; cursor:pointer;
}
#cp27-privacy-controls .cp27p-button:hover {background:var(--cp27p-dark); border-color:var(--cp27p-dark)}
#cp27-privacy-controls .cp27p-button:disabled {cursor:wait; opacity:.7}
#cp27-privacy-controls .cp27p-button-secondary {background:transparent; color:var(--cp27p-ink)!important}
#cp27-privacy-controls .cp27p-button-secondary:hover {background:#fff; border-color:var(--cp27p-ink)}
#cp27-privacy-controls .cp27p-button-text {border-color:transparent; background:transparent; color:var(--cp27p-ink)!important; text-decoration:underline; text-underline-offset:.2em}
#cp27-privacy-controls .cp27p-button-text:hover {background:#fff; border-color:transparent}
#cp27-privacy-controls dialog {
  position:fixed; inset:0; width:calc(100% - 32px); max-width:680px; max-height:calc(100svh - 32px);
  margin:auto; padding:28px; overflow:auto; overscroll-behavior:contain;
  border:0; border-radius:20px; background:var(--cp27p-cream); color:var(--cp27p-ink);
  box-shadow:0 16px 80px #09233033;
}
#cp27-privacy-controls dialog::backdrop {background:#09233099}
#cp27-privacy-controls .cp27p-dialog-head {display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px}
#cp27-privacy-controls .cp27p-dialog-head h2 {margin:5px 0 0}
#cp27-privacy-controls .cp27p-close {
  flex:none; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
  margin:0; padding:0; border:0; border-radius:50%; background:var(--cp27p-ink);
  color:#fff!important; font-size:28px; line-height:1; cursor:pointer;
}
#cp27-privacy-controls .cp27p-context {padding:16px; border-left:4px solid var(--cp27p-blue); background:#fff}
#cp27-privacy-controls .cp27p-option {display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; margin:0 0 12px; padding:20px; background:#fff; border:0; border-radius:12px}
#cp27-privacy-controls .cp27p-option-copy {min-width:0}
#cp27-privacy-controls .cp27p-option-title {display:block; font-size:18px; font-weight:500; line-height:1.4}
#cp27-privacy-controls .cp27p-option-detail {display:block; margin-top:8px; font-size:14px; line-height:1.6}
#cp27-privacy-controls .cp27p-option-state {display:block; margin-top:8px; font-size:13px; font-weight:500}
#cp27-privacy-controls label.cp27p-option {cursor:pointer}
#cp27-privacy-controls .cp27p-option input[type=checkbox] {
  appearance:auto; align-self:start; flex:none; width:26px; height:26px; min-width:26px;
  margin:2px 0 0; padding:0; accent-color:var(--cp27p-ink); cursor:pointer;
}
#cp27-privacy-controls .cp27p-always {align-self:start; padding:4px 10px; border-radius:999px; background:var(--cp27p-green); font-size:12px; font-weight:500; line-height:1.5}
#cp27-privacy-controls .cp27p-save-actions {margin-top:20px}
#cp27-privacy-controls .cp27p-note {font-size:13px; margin:20px 0 0}
#cp27-privacy-controls .cp27p-status {font-size:14px; font-weight:500; margin:0}
#cp27-privacy-controls .cp27p-status:not(:empty) {margin-top:16px; padding:12px 16px; background:#fff; border-left:4px solid var(--cp27p-ink)}
.cp27p-footer-button {
  appearance:none; display:inline-flex; align-items:center; min-height:44px; max-width:100%;
  margin:0; padding:8px 0; border:0; border-radius:0; background:transparent;
  color:inherit; font-family:Chillax,Arial,sans-serif; font-size:13px; font-weight:400;
  line-height:1.5; text-decoration:underline; text-underline-offset:.2em; cursor:pointer;
}
html.cp27p-pending {scroll-padding-bottom:var(--cp27p-banner-space,0px)}
html.cp27p-pending body {padding-bottom:var(--cp27p-banner-space,0px)}
html.cp27p-modal-open {overflow:hidden}
@media(max-width:760px) {
  #cp27-privacy-controls .cp27p-banner {left:12px; right:12px; bottom:12px; width:calc(100% - 24px); max-height:calc(100svh - 24px); padding:20px; border-radius:16px}
  #cp27-privacy-controls .cp27p-banner-inner {grid-template-columns:minmax(0,1fr); gap:12px}
  #cp27-privacy-controls .cp27p-banner-actions {max-width:none}
  #cp27-privacy-controls .cp27p-banner p {font-size:14px}
  #cp27-privacy-controls dialog {padding:20px}
  #cp27-privacy-controls .cp27p-option {padding:16px}
  #cp27-privacy-controls .cp27p-save-actions {display:grid; grid-template-columns:minmax(0,1fr)}
  #cp27-privacy-controls .cp27p-save-actions .cp27p-button {width:100%}
}
@media(max-width:380px) {
  #cp27-privacy-controls .cp27p-banner-actions {grid-template-columns:minmax(0,1fr)}
  #cp27-privacy-controls .cp27p-banner-actions .cp27p-configure {grid-column:auto}
  #cp27-privacy-controls .cp27p-option {grid-template-columns:minmax(0,1fr) 26px}
  #cp27-privacy-controls .cp27p-option-static {grid-template-columns:minmax(0,1fr)}
  #cp27-privacy-controls .cp27p-always {justify-self:start}
}
@media(prefers-reduced-motion:reduce) {#cp27-privacy-controls * {scroll-behavior:auto!important}}
@media(forced-colors:active) {
  #cp27-privacy-controls :is(.cp27p-banner,dialog,.cp27p-option,.cp27p-button,.cp27p-close) {border:1px solid ButtonText}
  #cp27-privacy-controls .cp27p-option input[type=checkbox] {appearance:auto}
}

/* Contextual activation belongs before fields, to preserve a written message. */
.cp27p-form-notice{margin:20px 0;padding:18px;border-left:4px solid #009fe3;background:#f5f1e9;color:#1a364a;font:inherit}
.cp27p-form-notice p{margin:0 0 12px!important;line-height:1.65}
.cp27p-form-activate{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;padding:12px 18px;border:2px solid #1a364a;border-radius:999px;background:#1a364a;color:#fff;font:inherit;font-size:14px;line-height:1.4;white-space:normal;cursor:pointer}
.cp27p-form-activate:focus-visible{outline:3px solid #1a364a;outline-offset:3px}
.cp27p-footer-fallback{padding:16px 24px;background:#f5f1e9;color:#1a364a}
