:root{
  --cc-primary:var(--color-primary,#1a2e4a);
  --cc-primary-light:var(--color-primary-light,#243d62);
  --cc-gold:var(--color-gold,#b8965a);
  --cc-gold-light:var(--color-gold-light,#cca96e);
  --cc-text:var(--color-text,#1e1e2e);
  --cc-muted:var(--color-text-muted,#6b7280);
  --cc-bg:var(--color-white,#fff);
  --cc-soft:var(--color-bg-soft,#f8f7f5);
  --cc-border:var(--color-border,#e5e7eb);
  --cc-radius:var(--radius-lg,16px);
  --cc-shadow:0 18px 60px rgba(17,24,39,.22);
}

.dg-cookie-banner,
.dg-cookie-panel{
  font-family:var(--font-sans,'Segoe UI',system-ui,-apple-system,sans-serif);
}

.dg-cookie-banner[hidden],
.dg-cookie-panel[hidden]{
  display:none!important;
}

.dg-cookie-banner{
  position:fixed;
  left:clamp(1rem,4vw,2rem);
  right:clamp(1rem,4vw,2rem);
  bottom:clamp(1rem,4vw,2rem);
  z-index:9000;
  max-width:980px;
  margin:0 auto;
  color:var(--cc-text);
  background:var(--cc-bg);
  border:1px solid rgba(184,150,90,.32);
  border-radius:var(--cc-radius);
  box-shadow:var(--cc-shadow);
  overflow:hidden;
}

.dg-cookie-banner::before{
  content:"";
  display:block;
  height:5px;
  background:linear-gradient(90deg,var(--cc-primary),var(--cc-gold));
}

.dg-cookie-banner__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1.25rem;
  align-items:center;
  padding:1.25rem;
}

.dg-cookie-eyebrow{
  display:block;
  margin-bottom:.35rem;
  color:var(--cc-gold);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.dg-cookie-banner h2,
.dg-cookie-panel h2{
  margin:0;
  color:var(--cc-primary);
  font-size:clamp(1.05rem,2vw,1.35rem);
  line-height:1.25;
  letter-spacing:0;
}

.dg-cookie-banner p,
.dg-cookie-panel p{
  margin:.55rem 0 0;
  color:var(--cc-muted);
  font-size:.92rem;
  line-height:1.6;
}

.dg-cookie-banner a,
.dg-cookie-panel a{
  color:var(--cc-gold);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}

.dg-cookie-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  justify-content:flex-end;
  min-width:280px;
}

.dg-cookie-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.78rem 1rem;
  border:1.5px solid transparent;
  border-radius:8px;
  font:inherit;
  font-size:.88rem;
  font-weight:800;
  line-height:1.15;
  text-align:center;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}

.dg-cookie-btn:hover{
  transform:translateY(-1px);
}

.dg-cookie-btn--primary{
  background:var(--cc-gold);
  color:#fff;
}

.dg-cookie-btn--primary:hover{
  background:var(--cc-gold-light);
}

.dg-cookie-btn--secondary{
  background:var(--cc-primary);
  color:#fff;
}

.dg-cookie-btn--secondary:hover{
  background:var(--cc-primary-light);
}

.dg-cookie-btn--outline{
  background:#fff;
  color:var(--cc-primary);
  border-color:var(--cc-border);
}

.dg-cookie-btn--outline:hover{
  border-color:var(--cc-gold);
  color:var(--cc-primary);
}

.dg-cookie-panel{
  position:fixed;
  inset:0;
  z-index:9010;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
  background:rgba(17,24,39,.68);
  backdrop-filter:blur(5px);
}

.dg-cookie-panel__dialog{
  width:min(100%,760px);
  max-height:min(92svh,780px);
  overflow:auto;
  background:var(--cc-bg);
  border-radius:24px;
  box-shadow:var(--cc-shadow);
}

.dg-cookie-panel__header{
  display:flex;
  gap:1rem;
  justify-content:space-between;
  align-items:flex-start;
  padding:1.5rem 1.5rem 1rem;
  border-bottom:1px solid var(--cc-border);
}

.dg-cookie-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border:1px solid var(--cc-border);
  border-radius:50%;
  background:var(--cc-soft);
  color:var(--cc-primary);
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
}

.dg-cookie-panel__body{
  padding:1.25rem 1.5rem 0;
}

.dg-cookie-category{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem;
  align-items:center;
  padding:1rem 0;
  border-bottom:1px solid var(--cc-border);
}

.dg-cookie-category h3{
  margin:0;
  color:var(--cc-primary);
  font-size:1rem;
  line-height:1.3;
}

.dg-cookie-category p{
  margin:.35rem 0 0;
  font-size:.86rem;
}

.dg-cookie-required{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:.35rem .65rem;
  border-radius:999px;
  background:rgba(184,150,90,.14);
  color:var(--cc-primary);
  font-size:.78rem;
  font-weight:800;
  white-space:nowrap;
}

.dg-cookie-switch{
  position:relative;
  display:inline-flex;
  align-items:center;
  width:54px;
  height:32px;
}

.dg-cookie-switch input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}

.dg-cookie-switch span{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#d8dde5;
  transition:background .18s ease;
}

.dg-cookie-switch span::after{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 8px rgba(17,24,39,.2);
  transition:transform .18s ease;
}

.dg-cookie-switch input:checked+span{
  background:var(--cc-gold);
}

.dg-cookie-switch input:checked+span::after{
  transform:translateX(22px);
}

.dg-cookie-switch input:focus-visible+span{
  outline:3px solid rgba(184,150,90,.35);
  outline-offset:3px;
}

.dg-cookie-panel__footer{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  justify-content:flex-end;
  padding:1.25rem 1.5rem 1.5rem;
}

.site-footer .footer-cookie-preferences{
  display:inline;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.68);
  font:inherit;
  font-size:.8rem;
  line-height:inherit;
  cursor:pointer;
}

.site-footer .footer-cookie-preferences:hover,
.site-footer .footer-cookie-preferences:focus-visible{
  color:var(--color-gold,#b8965a);
}

.site-footer .footer-cookie-preferences:focus-visible{
  outline:2px solid rgba(184,150,90,.55);
  outline-offset:3px;
  border-radius:4px;
}

@media(max-width:780px){
  .dg-cookie-banner__inner{
    grid-template-columns:1fr;
    gap:1rem;
  }

  .dg-cookie-actions{
    min-width:0;
    justify-content:stretch;
  }

  .dg-cookie-actions .dg-cookie-btn{
    flex:1 1 150px;
  }
}

@media(max-width:540px){
  .dg-cookie-banner{
    left:.75rem;
    right:.75rem;
    bottom:.75rem;
  }

  .dg-cookie-banner__inner,
  .dg-cookie-panel__header,
  .dg-cookie-panel__body,
  .dg-cookie-panel__footer{
    padding-left:1rem;
    padding-right:1rem;
  }

  .dg-cookie-panel__dialog{
    border-radius:18px;
  }

  .dg-cookie-category{
    grid-template-columns:1fr;
    gap:.75rem;
  }

  .dg-cookie-switch{
    justify-self:start;
  }

  .dg-cookie-panel__footer .dg-cookie-btn,
  .dg-cookie-actions .dg-cookie-btn{
    width:100%;
  }
}
