/* Cookiebot-style consent UI — theme-agnostic, self-contained. */
#hb-cc { --cc-accent:#0E6E66; --cc-ink:#1e2430; --cc-line:#e6e8ec; --cc-bg:#fff; --cc-muted:#5b6472; font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
#hb-cc *{ box-sizing:border-box; }

.hb-cc-banner{ position:fixed; left:16px; right:16px; bottom:16px; z-index:2147483000; background:var(--cc-bg); color:var(--cc-ink);
  border:1px solid var(--cc-line); border-radius:16px; box-shadow:0 24px 60px -20px rgba(20,26,38,.45); max-width:1080px; margin:0 auto; }
.hb-cc-banner-inner{ display:flex; gap:20px; align-items:center; padding:20px 22px; flex-wrap:wrap; }
.hb-cc-icon{ flex:0 0 auto; width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--cc-accent); background:rgba(14,110,102,.12); background:color-mix(in srgb, var(--cc-accent) 14%, transparent); }
.hb-cc-icon svg{ display:block; }
.hb-cc-text{ flex:1 1 300px; min-width:0; }
.hb-cc-text h2{ margin:0 0 4px; font-size:17px; font-weight:700; }
.hb-cc-text p{ margin:0; font-size:13.5px; line-height:1.55; color:var(--cc-muted); }
.hb-cc-actions{ display:flex; gap:10px; flex-wrap:wrap; }

.hb-cc-btn{ appearance:none; border:1px solid var(--cc-line); background:#fff; color:var(--cc-ink); border-radius:10px;
  padding:11px 18px; font-size:14px; font-weight:600; cursor:pointer; transition:filter .15s,transform .1s,background .15s; }
.hb-cc-btn:hover{ filter:brightness(.98); }
.hb-cc-btn:active{ transform:translateY(1px); }
.hb-cc-btn-primary{ background:var(--cc-accent); border-color:var(--cc-accent); color:#fff; }
.hb-cc-btn-ghost{ background:#f4f6f8; }

.hb-cc-fab{ position:fixed; left:16px; bottom:16px; z-index:2147482000; width:44px; height:44px; border-radius:50%;
  border:1px solid var(--cc-line); background:var(--cc-bg); color:var(--cc-accent); box-shadow:0 8px 20px -8px rgba(20,26,38,.5);
  cursor:pointer; display:none; align-items:center; justify-content:center; }
#hb-cc.hb-cc-has-fab .hb-cc-fab{ display:flex; }

.hb-cc-modal{ position:fixed; inset:0; z-index:2147483600; display:flex; align-items:center; justify-content:center; padding:16px; }
/* The [hidden] attribute must win over the display rules above/below. */
#hb-cc [hidden]{ display:none !important; }
.hb-cc-backdrop{ position:absolute; inset:0; background:rgba(15,20,30,.55); backdrop-filter:blur(2px); }
.hb-cc-card{ position:relative; background:var(--cc-bg); color:var(--cc-ink); width:min(680px,100%); max-height:88vh; display:flex; flex-direction:column;
  border-radius:16px; overflow:hidden; box-shadow:0 30px 80px -20px rgba(15,20,30,.6); }
.hb-cc-card-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--cc-line); }
.hb-cc-card-head h2{ margin:0; font-size:18px; font-weight:700; }
.hb-cc-close{ border:0; background:none; font-size:26px; line-height:1; color:var(--cc-muted); cursor:pointer; }
.hb-cc-card-body{ padding:8px 22px; overflow:auto; }
.hb-cc-lead{ font-size:13.5px; color:var(--cc-muted); margin:14px 0 8px; }
.hb-cc-card-foot{ display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; padding:16px 22px; border-top:1px solid var(--cc-line); }

.hb-cc-cat{ border:1px solid var(--cc-line); border-radius:11px; margin:8px 0; }
.hb-cc-cat-head{ display:grid; grid-template-columns:auto auto 1fr auto; gap:11px; align-items:center; padding:10px 13px; }
.hb-cc-cat-icon{ width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; }
.hb-cc-cat-icon svg{ width:19px; height:19px; display:block; }
.hb-cc-cat-icon-necessary{ color:#0E6E66; background:rgba(14,110,102,.12); }
.hb-cc-cat-icon-preferences{ color:#2f6fd6; background:rgba(47,111,214,.12); }
.hb-cc-cat-icon-statistics{ color:#7c5cd6; background:rgba(124,92,214,.13); }
.hb-cc-cat-icon-marketing{ color:#e07a1f; background:rgba(224,122,31,.13); }
.hb-cc-cat-title strong{ font-size:14px; }
.hb-cc-cat-title p{ margin:2px 0 0; font-size:12.5px; color:var(--cc-muted); line-height:1.45; }
.hb-cc-badge{ display:inline-block; margin-left:8px; font-size:11px; font-weight:700; color:var(--cc-accent); background:rgba(14,110,102,.1); border-radius:20px; padding:2px 9px; vertical-align:middle; }
.hb-cc-toggle-details{ border:0; background:none; color:var(--cc-accent); font-size:12.5px; font-weight:600; cursor:pointer; white-space:nowrap; }

.hb-cc-switch{ position:relative; display:inline-block; width:40px; height:23px; flex:0 0 auto; }
.hb-cc-switch input{ opacity:0; width:0; height:0; }
.hb-cc-slider{ position:absolute; inset:0; background:#c7ccd4; border-radius:23px; transition:background .2s; }
.hb-cc-slider:before{ content:""; position:absolute; height:17px; width:17px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.hb-cc-switch input:checked + .hb-cc-slider{ background:var(--cc-accent); }
.hb-cc-switch input:checked + .hb-cc-slider:before{ transform:translateX(17px); }
.hb-cc-switch input:disabled + .hb-cc-slider{ opacity:.6; }

.hb-cc-cat-details{ border-top:1px dashed var(--cc-line); padding:10px 13px; }
.hb-cc-table-wrap{ overflow-x:auto; }
.hb-cc-table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.hb-cc-table th,.hb-cc-table td{ text-align:left; padding:7px 8px; border-bottom:1px solid var(--cc-line); vertical-align:top; }
.hb-cc-table th{ color:var(--cc-muted); font-weight:600; }
.hb-cc-table code{ font-size:12px; }
.hb-cc-empty{ font-size:13px; color:var(--cc-muted); margin:4px 0; }

@media (max-width:640px){
  .hb-cc-banner-inner{ padding:16px; } .hb-cc-actions .hb-cc-btn{ flex:1 1 100%; }
  .hb-cc-cat-head{ grid-template-columns:auto auto 1fr; } .hb-cc-toggle-details{ grid-column:1 / -1; justify-self:start; margin-top:6px; }
}

/* ---- Multiple views (layout) ---- */
/* bar (default) = full-width centered bottom bar, defined above. */
#hb-cc.hb-cc-layout-box .hb-cc-banner{ right:auto; max-width:400px; margin:0; }
#hb-cc.hb-cc-layout-box .hb-cc-banner-inner{ flex-direction:column; align-items:stretch; }
#hb-cc.hb-cc-layout-box .hb-cc-actions .hb-cc-btn{ flex:1 1 auto; }
#hb-cc.hb-cc-layout-center .hb-cc-banner{ left:50%; right:auto; bottom:auto; top:50%; transform:translate(-50%,-50%); max-width:520px; width:calc(100% - 32px); }
#hb-cc.hb-cc-layout-center .hb-cc-banner-inner{ flex-direction:column; align-items:stretch; text-align:center; }

/* ---- Forced colour themes ---- */
#hb-cc.hb-cc-theme-dark{ --cc-ink:#e8ebf0; --cc-line:#2b323d; --cc-bg:#181d25; --cc-muted:#9aa4b2; }
#hb-cc.hb-cc-theme-dark .hb-cc-btn-ghost{ background:#232a34; }
#hb-cc.hb-cc-theme-dark .hb-cc-btn{ background:#1f252e; }
@media (prefers-color-scheme:dark){
  #hb-cc.hb-cc-theme-auto{ --cc-ink:#e8ebf0; --cc-line:#2b323d; --cc-bg:#181d25; --cc-muted:#9aa4b2; }
  #hb-cc.hb-cc-theme-auto .hb-cc-btn-ghost{ background:#232a34; }
  #hb-cc.hb-cc-theme-auto .hb-cc-btn{ background:#1f252e; }
}

/* [cookie-declaration] shortcode — for the cookie/privacy policy page */
.hb-ccd{ --ccd-accent:#0E6E66; --ccd-line:#e6e8ec; --ccd-muted:#5b6472; font-size:15px; line-height:1.6; }
.hb-ccd-title{ font-size:1.6em; font-weight:700; margin:0 0 .4em; }
.hb-ccd-intro{ color:var(--ccd-muted); margin:0 0 1em; }
.hb-ccd-actions{ margin:0 0 1.4em; }
.hb-ccd-btn{ appearance:none; border:1px solid var(--ccd-accent); background:var(--ccd-accent); color:#fff; border-radius:10px;
  padding:10px 18px; font-size:14px; font-weight:600; cursor:pointer; }
.hb-ccd-btn:hover{ filter:brightness(1.05); }
.hb-ccd-cat{ margin:1.4em 0; }
.hb-ccd-cat-title{ font-size:1.15em; font-weight:700; margin:0 0 .2em; display:flex; align-items:center; gap:.5em; }
.hb-ccd-cat-icon{ width:30px; height:30px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.hb-ccd-cat-icon svg{ width:18px; height:18px; }
.hb-ccd-cat-icon-necessary{ color:#0E6E66; background:rgba(14,110,102,.12); }
.hb-ccd-cat-icon-preferences{ color:#2f6fd6; background:rgba(47,111,214,.12); }
.hb-ccd-cat-icon-statistics{ color:#7c5cd6; background:rgba(124,92,214,.13); }
.hb-ccd-cat-icon-marketing{ color:#e07a1f; background:rgba(224,122,31,.13); }
.hb-ccd-count{ font-size:.7em; font-weight:700; color:var(--ccd-accent); background:rgba(14,110,102,.12); border-radius:20px; padding:2px 10px; }
.hb-ccd-cat-desc{ color:var(--ccd-muted); margin:.1em 0 .7em; }
.hb-ccd-table-wrap{ overflow-x:auto; border:1px solid var(--ccd-line); border-radius:12px; }
.hb-ccd-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.hb-ccd-table th,.hb-ccd-table td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--ccd-line); vertical-align:top; }
.hb-ccd-table thead th{ background:rgba(14,110,102,.06); color:var(--ccd-muted); font-weight:600; }
.hb-ccd-table tbody tr:last-child td,.hb-ccd-table tr:last-child td{ border-bottom:0; }
.hb-ccd-table code{ font-size:12.5px; }
.hb-ccd-empty{ color:var(--ccd-muted); font-style:italic; }
@media (prefers-color-scheme:dark){
  .hb-ccd{ --ccd-line:#2b323d; --ccd-muted:#9aa4b2; }
  .hb-ccd-table thead th{ background:rgba(255,255,255,.04); }
}
