/* CloudSprout consent banner (2026-10-05). Source: design-comparison/concepts/d5-pixel/consent.css, exported to the theme as
   assets/d5/consent.css by tools/export-d5.py and loaded by inc/analytics-posthog.php while analytics is configured.
   Calm and small: a paper card at the bottom left on desktop, a bottom sheet on phones. Fixed position, so nothing on the
   page moves (no layout shift). Accept and Decline share one button style (equal weight). Uses the D5 tokens from d5.css,
   with fallbacks so it also works on a page without them. */
.cc{position:fixed;z-index:80;left:var(--sp-3,21px);bottom:var(--sp-3,21px);width:min(440px,calc(100vw - 2 * var(--sp-3,21px)));
  box-sizing:border-box;padding:var(--sp-4,34px);background:var(--paper,#fffdf7);color:var(--ink,#161a14);
  border:1.5px solid var(--ink,#161a14);border-radius:var(--r-l,24px);box-shadow:var(--sh-2,0 18px 36px rgba(23,58,39,.13)),var(--stamp,3px 3px 0 #161a14);
  font:400 var(--fs-body,1.125rem)/var(--lh,1.6) var(--font,system-ui,sans-serif);
  animation:cc-in .32s var(--ease,cubic-bezier(.2,.7,.2,1)) both}
.cc[hidden]{display:none}
.cc *{box-sizing:border-box}
.cc__h{margin:0 0 var(--sp-1,8px);font:700 var(--fs-lead,1.43rem)/1.2 var(--font,system-ui,sans-serif);color:var(--green-ink,#173a27);outline:none}
.cc__p{margin:0 0 var(--sp-2,13px);max-width:60ch;color:var(--ink-2,#2f352c)}
.cc__p[hidden],.cc__now[hidden],.cc__b[hidden]{display:none}
.cc__now{margin:0 0 var(--sp-2,13px);font-size:var(--fs-sm,.885rem);color:var(--ink-3,#454c42)}
.cc__btns{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2,13px);margin:var(--sp-3,21px) 0 0}
.cc__btns--one{grid-template-columns:1fr}
.cc .cc__b{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:0 var(--sp-3,21px);margin:0;
  font:650 var(--fs-body,1.125rem)/1.1 var(--font,system-ui,sans-serif);color:var(--ink,#161a14);background:var(--paper,#fffdf7);
  border:1.5px solid var(--ink,#161a14);border-radius:6px;box-shadow:var(--stamp,3px 3px 0 #161a14);cursor:pointer;
  transition:transform .18s var(--ease,ease),box-shadow .18s var(--ease,ease),background-color .18s}
.cc .cc__b:hover{background:var(--mint,#dff0d6);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink,#161a14)}
.cc .cc__b:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink,#161a14)}
.cc :focus-visible{outline:3px solid var(--green,#2d6040);outline-offset:3px}
.cc__more{display:inline-block;padding:10px 0;margin:-10px 0;color:var(--green-ink,#173a27);font-weight:650;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.cc__more:hover{color:var(--green,#2d6040)}
.cc-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.cc-spacer{display:none}
@keyframes cc-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cc{animation:none}.cc .cc__b{transition:none}}
/* phones: a bottom sheet across the full width, safe-area aware; the spacer keeps the end of the page reachable above it */
@media (max-width:640px){
  .cc{left:0;right:0;bottom:0;width:100%;border-width:1.5px 0 0;border-radius:var(--r-l,24px) var(--r-l,24px) 0 0;
    padding:var(--sp-3,21px) var(--sp-3,21px) calc(var(--sp-3,21px) + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 30px rgba(23,58,39,.16)}
  .cc__h{font-size:calc(var(--fs-body,1.125rem) * 1.15)}
  .cc__btns{margin:var(--sp-2,13px) 0 0}
  html.cc-open .cc-spacer{display:block;height:var(--cc-space,280px)}
}
@media print{.cc,.cc-spacer{display:none!important}}
