/* Shared MECHANICS only: reset, form plumbing, video fallback. Every visual decision
   (type, colour, spacing, shape) belongs to the pack's own style.css. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video{display:block;max-width:100%}
img{height:auto}
/* :where() keeps the reset at zero specificity so every pack rule wins over it */
:where(h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote){margin:0}
:where(ul[role=list],ol[role=list]){list-style:none;padding:0;margin:0}
:where(button,input,select,textarea){font:inherit;color:inherit}
:where(a){color:inherit}
[hidden]{display:none!important}
.ico{width:1.5em;height:1.5em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:.5rem;top:-4rem;z-index:100;padding:.6rem 1rem;background:#000;color:#fff;text-decoration:none}
.skip:focus{top:.5rem}
/* honeypot: off-screen, never display:none (some bots skip hidden fields) */
.qf-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.qf fieldset{border:0;margin:0;padding:0;min-width:0}
.qf-choice{position:relative}
.qf-choice input{position:absolute;opacity:0;width:1px;height:1px}
.qf-status:empty{display:none}
.qf-input{width:100%;min-width:0}
/* background video: always covers its box; the poster is the fallback */
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-video{width:100%;height:100%;object-fit:cover}
/* pause/play button (WCAG 2.2.2). A round icon button bottom-right by default; packs restyle it. */
.vid-toggle{position:absolute;z-index:3;cursor:pointer;right:1rem;bottom:1rem;width:44px;height:44px;padding:0;display:grid;place-items:center;
  border-radius:50%;border:1.5px solid rgba(255,255,255,.75);background:rgba(0,0,0,.45);color:#fff}
.vid-toggle::before{content:"";width:12px;height:14px;border-inline:4px solid currentColor}
.vid-toggle[data-state=paused]::before{width:0;height:0;border:0;border-left:12px solid currentColor;border-block:7px solid transparent;margin-left:4px}
.vid-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
