/* ==========================================================================
   Fairbourne Digital — first-party cookie consent
   Reusable across static client sites. Extractable to:
   /assets/css/cookie-consent.css
   Theme variables can be overridden per-site (see :root block).
   ========================================================================== */
:root{
  --fd-cc-bg:#1b1e22;
  --fd-cc-panel:#212529;
  --fd-cc-line:#3a4149;
  --fd-cc-text:#ece7de;
  --fd-cc-muted:#a6adb4;
  --fd-cc-accent:#bd4b27;
  --fd-cc-accent-bright:#d65d31;
  --fd-cc-on-accent:#ffffff;
  --fd-cc-radius:6px;
  --fd-cc-font:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --fd-cc-display:"Saira Condensed","IBM Plex Sans",system-ui,sans-serif;
}

/* Banner ------------------------------------------------------------------ */
.fd-cc,.fd-cc *{box-sizing:border-box}
.fd-cc-banner{
  position:fixed;z-index:2147483000;left:16px;right:16px;bottom:16px;
  max-width:560px;margin:0 auto;
  background:var(--fd-cc-bg);color:var(--fd-cc-text);
  border:1px solid var(--fd-cc-line);border-radius:var(--fd-cc-radius);
  box-shadow:0 18px 50px rgba(0,0,0,.5);
  padding:20px 22px;font-family:var(--fd-cc-font);font-size:14px;line-height:1.55;
}
.fd-cc-banner h2{
  font-family:var(--fd-cc-display);font-weight:800;text-transform:uppercase;
  letter-spacing:.02em;font-size:19px;margin:0 0 6px;color:#fff;
}
.fd-cc-banner p{margin:0 0 14px;color:var(--fd-cc-muted)}
.fd-cc-banner a{color:var(--fd-cc-accent-bright);text-decoration:underline;text-underline-offset:2px}
.fd-cc-actions{display:flex;flex-wrap:wrap;gap:10px}

/* Buttons ----------------------------------------------------------------- */
.fd-cc-btn{
  font-family:var(--fd-cc-font);font-size:13.5px;font-weight:600;cursor:pointer;
  border-radius:var(--fd-cc-radius);padding:11px 16px;border:1px solid transparent;
  transition:background .15s,border-color .15s,color .15s,transform .1s;
}
.fd-cc-btn:hover{transform:translateY(-1px)}
.fd-cc-btn:focus-visible{outline:2px solid var(--fd-cc-accent-bright);outline-offset:2px}
.fd-cc-btn--primary{background:var(--fd-cc-accent);color:var(--fd-cc-on-accent);flex:1 1 auto}
.fd-cc-btn--primary:hover{background:var(--fd-cc-accent-bright)}
.fd-cc-btn--ghost{background:transparent;border-color:var(--fd-cc-line);color:var(--fd-cc-text);flex:1 1 auto}
.fd-cc-btn--ghost:hover{border-color:var(--fd-cc-accent);color:#fff}
.fd-cc-btn--link{background:transparent;color:var(--fd-cc-muted);border:0;text-decoration:underline;flex:0 0 auto;padding:11px 8px}
.fd-cc-btn--link:hover{color:#fff}

/* Modal / preferences panel ----------------------------------------------- */
.fd-cc-overlay{
  position:fixed;inset:0;z-index:2147483001;background:rgba(8,10,12,.66);
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.fd-cc-modal{
  width:100%;max-width:600px;max-height:calc(100vh - 32px);overflow:auto;
  background:var(--fd-cc-panel);color:var(--fd-cc-text);
  border:1px solid var(--fd-cc-line);border-radius:var(--fd-cc-radius);
  font-family:var(--fd-cc-font);font-size:14px;line-height:1.55;
  box-shadow:0 22px 60px rgba(0,0,0,.55);
}
.fd-cc-modal__head{padding:22px 24px 8px}
.fd-cc-modal__head h2{
  font-family:var(--fd-cc-display);font-weight:800;text-transform:uppercase;
  letter-spacing:.02em;font-size:22px;margin:0 0 6px;color:#fff;
}
.fd-cc-modal__head p{margin:0;color:var(--fd-cc-muted)}
.fd-cc-modal__body{padding:8px 24px 4px}
.fd-cc-modal__foot{
  position:sticky;bottom:0;background:var(--fd-cc-panel);
  border-top:1px solid var(--fd-cc-line);padding:16px 24px;
  display:flex;flex-wrap:wrap;gap:10px;
}

/* Category rows ----------------------------------------------------------- */
.fd-cc-cat{border-top:1px solid var(--fd-cc-line);padding:16px 0;display:flex;gap:14px;align-items:flex-start}
.fd-cc-cat:first-child{border-top:0}
.fd-cc-cat__text{flex:1 1 auto}
.fd-cc-cat__text h3{
  font-family:var(--fd-cc-display);font-weight:700;text-transform:uppercase;
  font-size:16px;margin:0 0 3px;color:#fff;
}
.fd-cc-cat__text p{margin:0;color:var(--fd-cc-muted);font-size:13px}
.fd-cc-cat__ctrl{flex:0 0 auto;padding-top:2px}

/* Toggle switch ----------------------------------------------------------- */
.fd-cc-switch{position:relative;display:inline-block;width:46px;height:26px}
.fd-cc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.fd-cc-slider{
  position:absolute;inset:0;background:#3a4149;border-radius:999px;transition:background .15s;
}
.fd-cc-slider::before{
  content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;
  background:#fff;border-radius:50%;transition:transform .15s;
}
.fd-cc-switch input:checked + .fd-cc-slider{background:var(--fd-cc-accent)}
.fd-cc-switch input:checked + .fd-cc-slider::before{transform:translateX(20px)}
.fd-cc-switch input:focus-visible + .fd-cc-slider{outline:2px solid var(--fd-cc-accent-bright);outline-offset:2px}
.fd-cc-switch input:disabled + .fd-cc-slider{background:var(--fd-cc-accent);opacity:.55;cursor:not-allowed}
.fd-cc-badge{
  display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--fd-cc-muted);border:1px solid var(--fd-cc-line);border-radius:4px;padding:5px 9px;white-space:nowrap;
}

/* Utilities --------------------------------------------------------------- */
.fd-cc-hidden{display:none !important}
body.fd-cc-lock{overflow:hidden}

@media (max-width:520px){
  .fd-cc-banner{left:8px;right:8px;bottom:8px;padding:18px}
  .fd-cc-actions{flex-direction:column}
  .fd-cc-btn--link{order:3;text-align:center}
  .fd-cc-modal__foot{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  .fd-cc-btn,.fd-cc-slider,.fd-cc-slider::before{transition:none}
  .fd-cc-btn:hover{transform:none}
}
