:root{
  --form-radius:14px;
  --form-pad-y:12px;
  --form-pad-x:14px;
  --form-font:500 13px/1.45 'Inter',sans-serif;
  --form-bg:color-mix(in srgb,var(--bg2) 86%, transparent);
  --form-border:1px solid var(--bdr);
  --form-focus-ring:0 0 0 4px var(--pri-lo);
}

:where(form,.field,.field-wrap,.nl-group,.route-search)
:where(input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']),select,textarea){
  font:var(--form-font);
  color:var(--text);
  border:var(--form-border);
  border-radius:var(--form-radius);
  background:var(--form-bg);
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

:where(form,.field,.field-wrap,.route-search)
:where(input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']),select,textarea){
  width:100%;
  padding:var(--form-pad-y) var(--form-pad-x);
}

:where(form,.field,.field-wrap,.route-search)
:where(input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']),select,textarea)::placeholder{
  color:color-mix(in srgb,var(--muted) 74%, transparent);
}

:where(form,.field,.field-wrap,.route-search)
:where(input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']),select,textarea):focus{
  outline:none;
  border-color:var(--pri-bdr2);
  box-shadow:var(--form-focus-ring);
}

:where(.nl-group){
  display:flex;
  align-items:stretch;
  width:100%;
  max-width:420px;
  border:1px solid var(--bdr);
  border-radius:999px;
  background:var(--form-bg);
  overflow:hidden;
  transition:border-color .2s ease, box-shadow .2s ease;
}

.nl-group:focus-within{border-color:var(--bdr-hi);box-shadow:0 0 0 3px var(--pri-lo)}

.nl-group input[type='email']{
  flex:1;
  min-width:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:11px 18px;
}

.nl-group button{
  flex-shrink:0;
  border:0;
  border-radius:0 999px 999px 0;
  padding:11px 22px;
  background:var(--pri);
  color:#f9fafb;
  font:600 13px/1 'Inter',sans-serif;
  display:inline-flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
}

.nl-group button:hover{background:var(--pri-d)}

@media (max-width:640px){
  .nl-group{max-width:100%}
}

/* Global heading normalization:
   match all h2 sizing to the homepage governance heading scale. */
h2{
  font-size:clamp(24px,3.1vw,40px) !important;
}
