/* ---------- consent banner ----------
   Both buttons are deliberately identical in size, weight and colour. Nothing here
   nudges toward "Accept": no pre-selection, no greyed-out reject, no close X that
   could be mistaken for consent. */
html[data-consent] .consent{display:none}
.consent{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--paper);
  border-top:2px solid var(--forest);box-shadow:0 -10px 40px -18px rgba(35,31,32,.4);
  padding:18px 0 calc(18px + env(safe-area-inset-bottom))}
.consent-in{width:min(100% - 32px,var(--maxw));margin-inline:auto;display:grid;gap:16px}
.consent h2{font-size:1.05rem;margin:0 0 6px}
.consent p{margin:0;font-size:.9rem;color:var(--ink-soft);max-width:72ch}
.consent a{color:var(--forest);font-weight:700;text-decoration:underline}
.consent-act{display:flex;gap:10px;flex-wrap:wrap}
.consent-act button{flex:1 1 auto;min-width:150px;padding:13px 22px;border-radius:var(--pill);
  font-weight:700;font-size:.94rem;border:2px solid var(--forest);background:var(--paper);
  color:var(--forest-ink);transition:background .2s var(--ease),color .2s var(--ease)}
.consent-act button:hover{background:var(--forest);color:#fff}
@media(min-width:860px){.consent-in{grid-template-columns:1fr auto;align-items:center;gap:28px}}
@media(prefers-reduced-motion:reduce){.consent-act button{transition:none}}