/* Cookie Consent — styling (Tid til To) */
:root{
  --ttc-bg:#ffffff;
  --ttc-fg:#4B4B4B;                /* brødtekst — Tid til To */
  --ttc-muted:#6B6B6B;
  --ttc-border:#e4e7eb;
  --ttc-accent:#2F6F5E;            /* accent — Tid til To grøn (titel, toggles, fokus, links) */
  --ttc-accent-fg:#ffffff;
  --ttc-radius:14px;
  --ttc-shadow:0 12px 40px rgba(0,0,0,.18);
  --ttc-font-body:'Lato','Open Sans',system-ui,sans-serif;
  --ttc-font-head:'Playfair Display',Georgia,serif;
}

#ttc-root[hidden]{display:none;}
body.ttc-open{overflow:hidden;}

.ttc-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.45);
  z-index:2147483000;
}
.ttc-banner{
  position:fixed;z-index:2147483001;
  left:50%;bottom:24px;transform:translateX(-50%);
  width:min(640px,calc(100vw - 32px));
  max-height:calc(100vh - 48px);overflow:auto;
  background:var(--ttc-bg);color:var(--ttc-fg);
  border:1px solid var(--ttc-border);border-radius:var(--ttc-radius);
  box-shadow:var(--ttc-shadow);
  font-family:var(--ttc-font-body);
}
.ttc-inner{padding:24px 24px 20px;}
.ttc-title{font-size:1.4rem;line-height:1.25;margin:0 0 8px;font-weight:700;color:var(--ttc-accent);font-family:var(--ttc-font-head);}
.ttc-desc{font-size:.95rem;line-height:1.55;color:var(--ttc-muted);margin:0 0 16px;}
.ttc-link{color:var(--ttc-accent);text-decoration:underline;}

.ttc-prefs{margin:4px 0 18px;border-top:1px solid var(--ttc-border);}
.ttc-cat{padding:14px 0;border-bottom:1px solid var(--ttc-border);}
.ttc-cat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;cursor:pointer;}
.ttc-cat-desc{margin:6px 0 0;font-size:.85rem;line-height:1.5;color:var(--ttc-muted);}
.ttc-always{font-size:.8rem;color:var(--ttc-fg);font-weight:600;}

/* toggle-switch */
.ttc-switch{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 auto;}
.ttc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.ttc-slider{position:absolute;inset:0;background:#cbd2d9;border-radius:999px;transition:background .15s;}
.ttc-slider::before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.25);}
.ttc-switch input:checked + .ttc-slider{background:var(--ttc-accent);}
.ttc-switch input:checked + .ttc-slider::before{transform:translateX(20px);}
.ttc-switch input:focus-visible + .ttc-slider{outline:2px solid var(--ttc-accent);outline-offset:2px;}

.ttc-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;}
/* Alle knapper har BEVIDST samme udseende — "Afvis alle" skal være lige så
   fremtrædende som "Accepter alle" (Datatilsynet / ingen dark patterns). */
.ttc-btn{
  font:inherit;font-weight:600;font-size:.92rem;
  padding:11px 18px;border-radius:10px;cursor:pointer;
  background:#fff;color:var(--ttc-fg);border:1px solid var(--ttc-border);
  transition:background .12s;
}
.ttc-btn:hover{background:#f5f7fa;}
.ttc-btn:focus-visible{outline:2px solid var(--ttc-accent);outline-offset:2px;}
/* Variant-klasserne bevares for bagudkompatibilitet, men styles ens. */
.ttc-btn-ghost,
.ttc-btn-accept,
.ttc-btn-save{background:#fff;color:var(--ttc-fg);border-color:var(--ttc-border);}
.ttc-btn-ghost:hover,
.ttc-btn-accept:hover,
.ttc-btn-save:hover{background:#f5f7fa;filter:none;}

/* flydende genåbn-knap */
.ttc-reopen{
  position:fixed;left:18px;bottom:18px;z-index:2147482000;
  width:44px;height:44px;border-radius:50%;
  background:var(--ttc-bg);color:var(--ttc-accent);
  border:1px solid var(--ttc-border);box-shadow:0 4px 14px rgba(0,0,0,.16);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.ttc-reopen:hover{background:#f5f7fa;}
.ttc-reopen:focus-visible{outline:2px solid var(--ttc-accent);outline-offset:2px;}
.ttc-reopen[hidden]{display:none;}

/* cookie-deklaration (politik-side) */
.ttc-declaration{margin:1rem 0;}
.ttc-decl-updated{font-size:.85rem;color:var(--ttc-muted);}
.ttc-decl-table{width:100%;border-collapse:collapse;margin:.5rem 0 1.5rem;font-size:.9rem;}
.ttc-decl-table th,.ttc-decl-table td{border:1px solid var(--ttc-border);padding:8px 10px;text-align:left;vertical-align:top;}
.ttc-decl-table th{background:#f5f7fa;font-weight:600;}
.ttc-decl-table code{font-size:.85em;}

@media (max-width:520px){
  .ttc-banner{left:8px;right:8px;bottom:8px;transform:none;width:auto;}
  .ttc-actions{justify-content:stretch;}
  .ttc-btn{flex:1 1 auto;text-align:center;}
}
@media (prefers-reduced-motion:reduce){
  .ttc-slider,.ttc-slider::before,.ttc-btn{transition:none;}
}
