/* Local Hero SEO — base: reset, typography, buttons, reveal utilities.
   Ported verbatim from the approved mockup. */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--navy-ink);
  font-family:var(--font-body);font-size:var(--t-base);line-height:1.68;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:3px}

/* ---------- Type ---------- */
.display{
  font-family:var(--font-display);font-weight:400;line-height:.95;
  letter-spacing:-.005em;text-transform:uppercase;margin:0;
}
.eyebrow{
  font-family:var(--font-data);font-weight:600;text-transform:uppercase;
  letter-spacing:.22em;font-size:.8125rem;color:var(--red);
  display:flex;align-items:center;gap:.7rem;margin:0 0 var(--s3);
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--red);flex:none}
.eyebrow--light{color:var(--caption)}
.eyebrow--light::before{background:var(--red)}
.lede{font-size:var(--t-lg);color:var(--steel);max-width:58ch;margin:var(--s3) 0 0;line-height:1.7}
.sec-head{max-width:64ch;margin-bottom:clamp(2.5rem,5vw,3.5rem)}
.sec-head h2{font-size:var(--t-2xl);text-wrap:balance}
.sec-cta{text-align:center;margin-top:var(--s5)}

/* Outline display treatment — from the brand banner. Used once. */
.stroke{
  color:var(--white);
  -webkit-text-stroke:clamp(2px,.5vw,4px) var(--red);
  paint-order:stroke fill;
  text-shadow:0 clamp(3px,.65vw,7px) 0 var(--navy);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-data);font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;font-size:1rem;line-height:1;
  padding:1.05rem 1.75rem;border-radius:var(--r-sm);border:1px solid transparent;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform var(--ease),box-shadow var(--ease),background var(--ease),color var(--ease),border-color var(--ease);
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--red);color:var(--white);box-shadow:var(--shadow-xs)}
.btn-primary:hover{background:var(--red-deep);box-shadow:0 6px 18px rgba(200,20,20,.28)}
.btn-navy{background:var(--navy);color:var(--white);box-shadow:var(--shadow-xs)}
.btn-navy:hover{background:var(--navy-deep);box-shadow:0 6px 18px rgba(30,65,146,.28)}
.btn-ghost{border-color:var(--line-strong);color:var(--navy);background:transparent}
.btn-ghost:hover{border-color:var(--navy);background:var(--white);box-shadow:var(--shadow-sm)}
.btn-ghost-light{border-color:rgba(255,255,255,.32);color:var(--white)}
.btn-ghost-light:hover{border-color:var(--white);background:rgba(255,255,255,.08)}
.btn-sm{padding:.75rem 1.15rem;font-size:.9375rem}

/* ---------- Reveal ---------- */
.rv{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- Ninja Forms ---------- */
.nf-form-cont .nf-form-title h3{
  font-family:var(--font-display);text-transform:uppercase;font-weight:400;
  font-size:var(--t-xl);margin:0 0 var(--s1);letter-spacing:.01em;
}
.nf-form-fields-required{
  font-size:var(--t-sm);color:var(--steel);margin-bottom:var(--s3);
}
.nf-field-container{margin-bottom:var(--s3)}
.nf-field-label .nf-label-span{
  font-family:var(--font-data);font-weight:600;text-transform:uppercase;
  letter-spacing:.14em;font-size:.8125rem;color:var(--navy-ink);
  display:block;margin-bottom:.4rem;
}
.nf-field-label .ninja-forms-req-symbol{color:var(--red);margin-left:.2em}
.nf-field-element input[type="text"],
.nf-field-element input[type="email"],
.nf-field-element input[type="tel"],
.nf-field-element input[type="url"],
.nf-field-element input[type="number"],
.nf-field-element input[type="password"],
.nf-field-element select,
.nf-field-element textarea{
  width:100%;padding:.85rem 1rem;border-radius:var(--r-sm);
  border:1px solid var(--line-strong);background:var(--white);
  color:var(--navy-ink);font-family:var(--font-body);font-size:1rem;
  line-height:1.5;min-height:48px;
  transition:border-color var(--ease),box-shadow var(--ease);
}
.nf-field-element input:focus,
.nf-field-element select:focus,
.nf-field-element textarea:focus{
  outline:none;border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(30,65,146,.12);
}
.nf-field-element textarea{min-height:140px;resize:vertical}
.nf-field-element input[type="submit"],
.nf-field-element button,
.nf-field-element .ninja-forms-field.nf-element[type="submit"]{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-data);font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;font-size:1rem;line-height:1;
  padding:1.05rem 1.75rem;border-radius:var(--r-sm);border:1px solid transparent;
  background:var(--red);color:var(--white);cursor:pointer;white-space:nowrap;
  box-shadow:var(--shadow-xs);
  transition:transform var(--ease),box-shadow var(--ease),background var(--ease);
}
.nf-field-element input[type="submit"]:hover,
.nf-field-element button:hover,
.nf-field-element .ninja-forms-field.nf-element[type="submit"]:hover{
  background:var(--red-deep);transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(200,20,20,.28);
}
.nf-error .nf-field-element input,
.nf-error .nf-field-element textarea{border-color:var(--red)}
.nf-error-msg{font-size:var(--t-sm);color:var(--red);margin-top:.35rem}
.nf-response-msg p{
  padding:var(--s3);border-radius:var(--r-sm);
  background:rgba(18,183,106,.08);border:1px solid var(--win);
  color:var(--navy-ink);font-size:var(--t-sm);
}
.nf-form-hp{position:absolute;left:-9999px}

/* ---------- Screen-reader utility ---------- */
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy-ink);color:var(--white);
  padding:.75rem 1.25rem;font-family:var(--font-data);text-transform:uppercase;letter-spacing:.1em;
}
.skip-link:focus{left:1rem;top:1rem}
