/* Shared controls, typography and accessibility. */
.site-page{--page-background:var(--paper)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--page-background);color:var(--text-body);font:400 var(--type-body)/var(--lh-body) var(--font)}
button,input,select,textarea{font:inherit}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,h4,h5,h6,p{margin:0}
h1,h2,h3{color:var(--head);font-weight:var(--weight-heading);letter-spacing:-.01em}
h1{font-size:var(--type-h1);line-height:var(--lh-heading)}
h2{font-size:var(--type-h2);line-height:var(--lh-heading)}
h3{font-size:var(--type-h3);line-height:var(--lh-feature);color:var(--text-feature)}
p{line-height:var(--lh-body)}
b,strong{font-weight:600}
a{color:var(--blue);text-underline-offset:3px}
[hidden]{display:none}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.center{text-align:center}
.bold{font-weight:700}
.small{font-size:var(--type-small)}
.skip{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--paper);padding:var(--space-1) var(--space-2)}
.skip:focus{left:var(--space-1);top:var(--space-1)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--button-height);padding:0 var(--space-3);
  border:2px solid var(--button-background,var(--blue));border-radius:var(--radius);background:var(--button-background,var(--blue));
  color:var(--button-color,var(--paper));font:600 15px/1.2 var(--font);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--button-hover,var(--blue-dark));border-color:var(--button-hover,var(--blue-dark))}
.btn-sm{min-height:var(--button-small-height);padding-inline:var(--space-2);font-size:14px}
.btn-light{--button-background:var(--paper);--button-color:var(--blue-dark);--button-hover:var(--tint)}
.field{display:flex;flex-direction:column;min-width:0;gap:var(--space-1)}
.field label{color:var(--text-feature);font-size:var(--type-small);font-weight:500}
.field input,.field select,.field textarea{width:100%;height:var(--control-height);padding:0 var(--space-2);
  border:var(--border-width) solid var(--control-border);border-radius:var(--radius);background:var(--paper);color:var(--text-body)}
.field textarea{height:112px;min-height:112px;padding:var(--space-1) var(--space-2);resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--blue);outline-offset:1px}
.field :user-invalid{border-color:#9e1f34}
.phone{display:flex;height:var(--control-height);border:var(--border-width) solid var(--control-border);border-radius:var(--radius);background:var(--paper)}
.field .phone input{flex:1;min-width:0;height:var(--control-inner-height);padding-inline:var(--space-1);border:0;outline-offset:-2px}
.cc-wrap{position:relative;flex:none}
.cc-btn{display:flex;align-items:center;gap:4px;height:var(--control-inner-height);padding:0 var(--space-1);border:0;background:transparent;color:var(--text-body);cursor:pointer}
.control-icon{display:block;flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cc-code:empty{display:none}
.cc-code{flex:none;white-space:nowrap}
.cc-list{position:absolute;z-index:10;left:0;top:calc(var(--control-height) + 2px);min-width:200px;max-width:80vw;
  margin:0;padding:4px 0;list-style:none;border:var(--border-width) solid var(--control-border);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-subtle)}
.cc-list li{padding:var(--space-1) var(--space-2);cursor:pointer}
.cc-list li:hover,.cc-list li[aria-selected="true"]{background:var(--tint)}
.form-note{padding:var(--space-1) var(--space-2);border-left:4px solid var(--rule-blue);background:var(--page-background);font-size:var(--type-small)}
/* Empty live regions stay available to assistive technology without drawing
   anything or occupying a grid cell. Populated feedback uses .form-note above. */
.form-note:empty{position:absolute;left:-10000px;top:0;width:0;height:0;min-height:0;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);border:0}
.form-honeypot{position:absolute;left:-10000px;top:0;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);border:0;white-space:nowrap}
.form-privacy{font-size:var(--type-small);line-height:1.7}
.feature-icon{display:grid;place-items:center;flex:none;background:var(--tint);border-radius:var(--radius);color:var(--blue)}
.feature-icon{width:40px;height:40px;margin-bottom:var(--icon-heading-gap)}
.feature-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}