/* ---- Consent: the analytics bar, its settings dialog, the footer trigger ----
   Only present on sites with a GA4 measurement ID (assets/consent.js builds
   the markup). Bar and Allow/Reject share one button style on purpose. */
.link-button{
  font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;
  text-decoration:underline;text-underline-offset:0.18em;cursor:pointer;
}
.link-button:hover{color:var(--ink);}
.link-button:focus-visible{outline:3px solid var(--flag);outline-offset:3px;border-radius:3px;}

html.consent-open body{padding-bottom:var(--consent-h, 9rem);}
.consent-bar{
  position:fixed;inset-inline:0;bottom:0;z-index:50;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.75rem 1.5rem;
  padding:1rem max(16px, calc((100vw - var(--wrap)) / 2 + 1.25rem));
  background:var(--paper);color:var(--ink);
  border-top:1px solid var(--line);border-left:4px solid var(--flag);
  font-family:var(--font-body);font-size:var(--step--1);line-height:1.5;
  animation:consent-slide-up 180ms ease-out;
}
.consent-bar__text{flex:1 1 24rem;max-width:44rem;}
.consent-bar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;}
.consent-bar :focus-visible,.consent-dialog :focus-visible{outline:3px solid var(--ink);outline-offset:3px;}
@keyframes consent-slide-up{from{transform:translateY(100%);}to{transform:translateY(0);}}
@media (max-width:40rem){
  .consent-bar{flex-direction:column;align-items:stretch;}
  .consent-bar__text{flex-basis:auto;}
  .consent-bar__actions{flex-direction:column;align-items:stretch;}
  .consent-bar__actions .btn{width:100%;}
}
@media (prefers-reduced-motion: reduce){.consent-bar{animation:none;}}

.consent-dialog{
  width:calc(100% - 32px);max-width:34rem;padding:1.5rem;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius);
  font-family:var(--font-body);font-size:var(--step--1);line-height:1.5;
}
.consent-dialog::backdrop{background:color-mix(in srgb, var(--ink) 45%, transparent);}
.consent-dialog__title{font-size:var(--step-2);margin-bottom:0.75rem;}
.consent-row{padding:1rem 0;border-top:1px solid var(--line);}
.consent-row__head{display:flex;align-items:center;gap:0.6rem;}
.consent-row__box{width:1.15rem;height:1.15rem;margin:0;flex:none;accent-color:var(--ink);}
.consent-row__title{font-weight:600;font-size:var(--step-0);}
.consent-row__text{margin-top:0.35rem;padding-left:1.75rem;color:var(--muted);}
.consent-dialog__actions{display:flex;flex-wrap:wrap;gap:0.5rem;padding-top:1rem;border-top:1px solid var(--line);}
