/* Cookie consent banner + settings modal.
   Standalone: hardcodes the design system's colors/fonts instead of relying
   on each page's :root variables, so it renders identically whether it's
   included on the old Bootstrap shell or the new standalone templates. */

#tz-consent-banner,
#tz-consent-modal,
#tz-consent-tab{
  font-family:'Bricolage Grotesque', Verdana, sans-serif;
  box-sizing:border-box;
}
#tz-consent-banner *,
#tz-consent-modal *{
  box-sizing:border-box;
}

/* ---------- Banner ---------- */
#tz-consent-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  background:#163846;
  color:#fff;
  padding:1rem 1.25rem;
  box-shadow:0 -4px 24px rgba(0,0,0,0.25);
  display:none;
}
#tz-consent-banner.is-visible{ display:block; }
.tz-consent-inner{
  max-width:64rem; margin:0 auto;
  display:flex; flex-direction:column; gap:1rem;
}
@media (min-width:768px){
  .tz-consent-inner{ flex-direction:row; align-items:center; justify-content:space-between; }
}
.tz-consent-text{ font-size:0.85rem; line-height:1.55; color:rgba(255,255,255,0.85); max-width:38rem; }
.tz-consent-text a{ color:#fff; text-decoration:underline; }
.tz-consent-actions{ display:flex; flex-wrap:wrap; gap:0.6rem; flex-shrink:0; }

.tz-btn{
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:9999px; border:none; cursor:pointer;
  font-family:inherit; font-size:0.85rem; font-weight:600;
  padding:0.65rem 1.1rem; white-space:nowrap;
}
.tz-btn-ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,0.35); }
.tz-btn-ghost:hover{ border-color:#fff; }
.tz-btn-solid{ background:#A85A17; color:#fff; }
.tz-btn-solid:hover{ background:#8C4A13; }
.tz-btn-text{ background:none; color:rgba(255,255,255,0.75); text-decoration:underline; padding:0.65rem 0.25rem; }
.tz-btn-text:hover{ color:#fff; }

/* ---------- Settings modal ---------- */
#tz-consent-modal{
  position:fixed; inset:0; z-index:10000;
  background:rgba(27,42,48,0.55);
  display:none; align-items:center; justify-content:center;
  padding:1.25rem;
}
#tz-consent-modal.is-visible{ display:flex; }
.tz-modal-card{
  background:#FFFFFF; color:#1B2A30;
  border-radius:1.25rem; max-width:32rem; width:100%;
  max-height:85vh; overflow-y:auto;
  padding:1.75rem;
  box-shadow:0 20px 60px -12px rgba(0,0,0,0.35);
}
.tz-modal-title{
  font-family:'Fraunces', Georgia, serif; font-weight:800; font-size:1.25rem;
  margin-bottom:0.5rem; color:#1F4E63;
}
.tz-modal-lead{ font-size:0.85rem; color:rgba(27,42,48,0.7); line-height:1.55; margin-bottom:1.25rem; }

.tz-cat{
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  padding:0.9rem 0; border-bottom:1px solid rgba(27,42,48,0.12);
}
.tz-cat:last-of-type{ border-bottom:none; }
.tz-cat-info{ flex:1; }
.tz-cat-title{ font-weight:700; font-size:0.9rem; margin-bottom:0.2rem; }
.tz-cat-desc{ font-size:0.8rem; color:rgba(27,42,48,0.6); line-height:1.5; }
.tz-cat-badge{
  font-family:'JetBrains Mono', monospace; font-size:0.65rem; text-transform:uppercase;
  letter-spacing:0.06em; color:rgba(27,42,48,0.4); flex-shrink:0; margin-top:0.15rem;
}

.tz-switch{ position:relative; display:inline-block; width:2.6rem; height:1.5rem; flex-shrink:0; }
.tz-switch input{ opacity:0; width:0; height:0; }
.tz-switch-track{
  position:absolute; inset:0; background:rgba(27,42,48,0.2); border-radius:9999px;
  cursor:pointer; transition:background 0.15s;
}
.tz-switch-track::before{
  content:''; position:absolute; width:1.15rem; height:1.15rem; left:0.175rem; top:0.175rem;
  background:#fff; border-radius:50%; transition:transform 0.15s;
  box-shadow:0 1px 2px rgba(0,0,0,0.25);
}
.tz-switch input:checked + .tz-switch-track{ background:#A85A17; }
.tz-switch input:checked + .tz-switch-track::before{ transform:translateX(1.1rem); }
.tz-switch input:disabled + .tz-switch-track{ background:#A85A17; opacity:0.5; cursor:not-allowed; }

.tz-modal-actions{ display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:1.5rem; }
.tz-modal-actions .tz-btn{ flex:1; min-width:9rem; }
.tz-modal-actions .tz-btn-ghost{ border-color:rgba(27,42,48,0.2); color:#1B2A30; }
.tz-modal-actions .tz-btn-ghost:hover{ border-color:#1F4E63; color:#1F4E63; }

/* ---------- Reopen tab (shown once a choice has been made) ---------- */
#tz-consent-tab{
  position:fixed; left:1rem; bottom:1rem; z-index:9998;
  background:#FFFFFF; color:#1B2A30;
  border:1.5px solid rgba(27,42,48,0.12);
  border-radius:9999px; padding:0.55rem 1rem;
  font-size:0.75rem; font-weight:600; cursor:pointer;
  box-shadow:0 4px 16px -4px rgba(27,42,48,0.25);
  display:none;
}
#tz-consent-tab.is-visible{ display:inline-flex; align-items:center; gap:0.4rem; }
#tz-consent-tab:hover{ border-color:#A85A17; color:#A85A17; }
