/* ==========================================================================
   NATIONAL CONSTRUCTION GROUP
   Palette taken from the company logo and Storm Team ad campaign:
   navy #25326c, flag red, warm gray. Amber is used only for keyboard
   focus rings, where it needs to read against both navy and white.
   ========================================================================== */

:root{
  --navy:#25336d;
  --navy-deep:#151e42;
  --navy-mid:#2e3d80;
  --steel:#5f6a86;
  --red:#d21a21;
  --red-deep:#a51218;
  --red-soft:#fdeaec;
  --focus:#ffb703;
  --ink:#231f20;
  --body:#3c4356;
  --paper:#ffffff;
  --mist:#eef1f6;
  --line:#d9dfea;

  --display:'Archivo',system-ui,sans-serif;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  --wrap:1180px;
  --r:3px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:var(--sans);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--navy);}

h1,h2,h3,h4{font-family:var(--display);color:var(--ink);line-height:1.1;margin:0 0 .5em;letter-spacing:-.02em;}
h1{font-size:clamp(2.1rem,5.2vw,3.7rem);font-weight:800;}
h2{font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:700;}
h3{font-size:1.22rem;font-weight:700;letter-spacing:-.01em;}
p{margin:0 0 1.05em;}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px;}

.skip{position:absolute;left:-9999px;background:var(--red);color:#fff;padding:10px 16px;z-index:200;}
.skip:focus{left:8px;top:8px;}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;}

/* ---- eyebrow / labels ---------------------------------------------------- */
.eyebrow{
  font-family:var(--mono);font-size:.71rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--steel);
  margin:0 0 .85em;
}
.eyebrow--light{color:#f0b8bd;}

/* ---- promo + topbar ------------------------------------------------------ */
.promo{
  background:var(--red);color:#fff;text-align:center;
  font-family:var(--mono);font-size:.8rem;font-weight:600;
  letter-spacing:.05em;padding:9px 16px;
}
.topbar{background:var(--navy-deep);color:#c3cbe4;}
.topbar__in{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  min-height:38px;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;
}
.topbar__label{text-transform:uppercase;}
.topbar__tel{color:#fff;text-decoration:none;font-weight:600;white-space:nowrap;}
.topbar__tel:hover{color:#f0b8bd;}

/* ---- header -------------------------------------------------------------- */
.head{
  position:sticky;top:0;z-index:100;background:#fff;
  border-bottom:3px solid var(--red);
  box-shadow:0 1px 14px rgba(35,31,32,.07);
}
.head__in{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;}

.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;}
.brand__mark{height:52px;width:auto;}
@media (max-width:860px){.brand__mark{height:42px;}}

.nav{display:flex;align-items:center;gap:5px;}
.nav a{
  color:var(--navy);text-decoration:none;font-size:.83rem;font-weight:600;
  padding:9px 11px;border-radius:var(--r);white-space:nowrap;
}
.nav a:hover{color:var(--red);background:var(--mist);}
.nav a.is-on{color:var(--red);box-shadow:inset 0 -2px 0 var(--red);}
.nav .nav__cta{
  background:var(--red);color:#fff;font-weight:600;
  margin-left:8px;padding:11px 17px;
}
.nav .nav__cta:hover{background:var(--navy);color:#fff;}

.burger{display:none;background:none;border:0;padding:10px;cursor:pointer;}
.burger span{display:block;width:26px;height:2px;background:var(--navy);margin:5px 0;transition:.25s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---- buttons ------------------------------------------------------------- */
.btn{
  display:inline-block;font-family:var(--sans);font-weight:600;font-size:.95rem;
  padding:15px 28px;border-radius:var(--r);text-decoration:none;border:2px solid transparent;
  transition:.18s;cursor:pointer;
}
.btn--red{background:var(--red);color:#fff;border-color:var(--red);}
.btn--red:hover{background:var(--red-deep);border-color:var(--red-deep);}
.btn--navy{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn--navy:hover{background:var(--navy-deep);border-color:var(--navy-deep);}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);}
.btn--ghost:hover{background:#fff;color:var(--navy);border-color:#fff;}

/* ---- hero ---------------------------------------------------------------- */
.hero{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden;}
.hero__bg{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:.34;}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(22,31,69,.95) 12%,rgba(22,31,69,.55) 72%);
}
.hero__in{position:relative;z-index:2;padding:88px 0 76px;max-width:730px;}
.hero h1{color:#fff;margin-bottom:.4em;}
.hero__sub{font-size:1.12rem;color:#d5dcef;max-width:600px;margin-bottom:1.9em;}
.hero__acts{display:flex;flex-wrap:wrap;gap:13px;}
.hero__tel{
  display:block;margin-top:26px;font-family:var(--mono);font-size:.78rem;
  letter-spacing:.1em;color:#a9b5d8;text-transform:uppercase;
}

/* ---- SIGNATURE: triage bar ----------------------------------------------- */
.triage{background:var(--mist);border-bottom:1px solid var(--line);}
.triage__in{padding:0;margin-top:-46px;position:relative;z-index:5;}
.triage__head{
  background:var(--ink);color:#fff;padding:15px 26px;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
}
.triage__grid{display:grid;grid-template-columns:repeat(3,1fr);}
.triage__card{
  background:#fff;padding:30px 26px 32px;text-decoration:none;color:var(--body);
  border-right:1px solid var(--line);border-bottom:4px solid transparent;
  transition:.2s;display:block;
}
.triage__card:last-child{border-right:0;}
.triage__card:hover{border-bottom-color:var(--red);background:#fbfcfe;}
.triage__n{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
  color:var(--red-deep);text-transform:uppercase;display:block;margin-bottom:10px;
}
.triage__card h3{margin-bottom:.35em;color:var(--navy);}
.triage__card p{font-size:.93rem;margin:0 0 14px;}
.triage__go{font-family:var(--mono);font-size:.76rem;font-weight:600;color:var(--navy);letter-spacing:.06em;}

/* ---- trust strip --------------------------------------------------------- */
.trust{background:var(--navy);color:#fff;}
.trust__in{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(255,255,255,.14);
}
.trust__i{
  background:var(--navy);padding:24px 20px;text-align:center;
  font-family:var(--mono);font-size:.79rem;font-weight:500;
  letter-spacing:.05em;color:#e4e9f7;
}

/* ---- sections ------------------------------------------------------------ */
.sec{padding:82px 0;}
.sec--mist{background:var(--mist);}
.sec--tight{padding:56px 0;}
.sec__head{max-width:660px;margin-bottom:52px;}
.sec__head p{font-size:1.05rem;}

/* ---- service cards ------------------------------------------------------- */
.svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
.svc__i{background:#fff;padding:32px 28px 34px;}
.svc__i h3{color:var(--navy);}
.svc__i p{font-size:.95rem;margin:0;}
.svc__rule{width:34px;height:3px;background:var(--red);margin-bottom:20px;}

/* ---- claim steps --------------------------------------------------------- */
.steps{counter-reset:s;display:grid;gap:0;border-top:1px solid var(--line);}
.step{
  counter-increment:s;display:grid;grid-template-columns:76px 1fr;gap:24px;
  padding:26px 0;border-bottom:1px solid var(--line);align-items:start;
}
.step::before{
  content:counter(s,decimal-leading-zero);
  font-family:var(--mono);font-size:1.5rem;font-weight:600;color:var(--red-deep);
  line-height:1;padding-top:4px;
}
.step h3{margin-bottom:.25em;}
.step p{margin:0;font-size:.96rem;}

/* ---- split ---------------------------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.split--narrow{gap:46px;}
.split img{border-radius:var(--r);}

/* ---- callout ------------------------------------------------------------- */
.note{
  border-left:4px solid var(--red);background:var(--mist);
  padding:22px 26px;margin:30px 0;
}
.note p:last-child{margin:0;}
.note strong{color:var(--ink);}

/* ---- gallery ------------------------------------------------------------- */
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px;}
.gal__i{position:relative;overflow:hidden;background:var(--mist);border-radius:var(--r);}
.gal__i img{width:100%;height:250px;object-fit:cover;transition:transform .5s;}
.gal__i:hover img{transform:scale(1.045);}
.gal__cap{
  position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;
  background:linear-gradient(transparent,rgba(18,21,31,.86));
  color:#fff;font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;
}
.pair{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--ink);border-radius:var(--r);overflow:hidden;}
.pair figure{margin:0;position:relative;}
.pair img{width:100%;height:250px;object-fit:cover;}
.pair__tag{
  position:absolute;top:10px;left:10px;background:var(--ink);color:#fff;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;
  text-transform:uppercase;padding:4px 9px;border-radius:2px;
}
.pair__tag--after{background:var(--red);color:#fff;}
.gal__group{margin-bottom:56px;}
.gal__group h2{margin-bottom:1em;}

.empty{
  border:2px dashed var(--line);padding:56px 30px;text-align:center;
  background:var(--mist);border-radius:var(--r);
}
.empty p{max-width:520px;margin:0 auto 1em;}
.empty code{font-family:var(--mono);background:#fff;padding:3px 8px;border:1px solid var(--line);font-size:.88rem;}

/* ---- form ---------------------------------------------------------------- */
.form{display:grid;gap:18px;}
.form label{display:block;font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:6px;}
.form input,.form select,.form textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:var(--r);
  font-family:var(--sans);font-size:1rem;color:var(--ink);background:#fff;
}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px rgba(37,50,108,.13);}
.form textarea{min-height:135px;resize:vertical;}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form__hp{position:absolute;left:-9999px;}
.alert{padding:15px 18px;border-radius:var(--r);margin-bottom:24px;font-size:.95rem;}
.alert--ok{background:#e6f4ea;border:1px solid #a8d5b5;color:#1d4a2b;}
.alert--bad{background:#fdecea;border:1px solid #f0b7b2;color:#7d2620;}

/* ---- offices / lists ----------------------------------------------------- */
.offices{list-style:none;margin:0;padding:0;}
.offices li{padding:9px 0;border-bottom:1px solid rgba(255,255,255,.11);}
.offices span{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#8e9cc4;}
.offices a{color:#fff;text-decoration:none;font-weight:600;font-size:1.02rem;}
.offices a:hover{color:#f0b8bd;}

/* ---- CTA band ------------------------------------------------------------ */
.cta{background:var(--navy-deep);color:#fff;padding:66px 0;}
.cta__in{display:grid;grid-template-columns:1.4fr 1fr;gap:44px;align-items:center;}
.cta__h{color:#fff;margin-bottom:.4em;}
.cta__p{color:#c6cfe6;margin:0;max-width:520px;}
.cta__acts{display:flex;flex-direction:column;gap:12px;}
.cta__acts .btn{text-align:center;}

/* ---- footer -------------------------------------------------------------- */
.foot{background:var(--ink);color:#9aa4bd;padding:64px 0 90px;font-size:.92rem;}
.foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:46px;}
.foot__brand{font-family:var(--display);font-weight:800;color:#fff;font-size:1.2rem;margin:0 0 4px;}
.foot__tag{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;color:#e8949b;text-transform:uppercase;margin-bottom:1.6em;}
.foot__addr{margin-bottom:1.1em;line-height:1.7;}
.foot__note{color:#e8949b;font-size:.85rem;}
.foot__h{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:0 0 14px;}
.foot__h--sp{margin-top:28px;}
.flist{list-style:none;margin:0;padding:0;}
.flist li{padding:5px 0;}
.flist a{color:#9aa4bd;text-decoration:none;}
.flist a:hover{color:#f0b8bd;}
.foot__areas{
  margin:48px 0 0;padding:24px 0;border-top:1px solid rgba(255,255,255,.1);
  font-size:.8rem;line-height:1.9;color:#79839c;
}
.foot__base{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;
}
.foot__base p{margin:0;}
.foot__creds{font-family:var(--mono);letter-spacing:.06em;color:#e8949b;}

/* ---- sticky mobile call bar ---------------------------------------------- */
.callbar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:150;
  background:var(--red);color:#fff;text-align:center;padding:15px;
  text-decoration:none;font-weight:600;font-size:1.02rem;
  box-shadow:0 -3px 16px rgba(0,0,0,.22);
}
.callbar strong{font-family:var(--display);}

/* ---- reveal -------------------------------------------------------------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;}
.rv.in{opacity:1;transform:none;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1000px){
  .triage__grid{grid-template-columns:1fr;}
  .triage__card{border-right:0;border-bottom:1px solid var(--line);}
  .triage__in{margin-top:0;}
  .trust__in{grid-template-columns:1fr 1fr;}
  .split{grid-template-columns:1fr;gap:34px;}
  .cta__in{grid-template-columns:1fr;}
  .foot__grid{grid-template-columns:1fr 1fr;}
  .pair{grid-column:span 1;}
}

@media (max-width:860px){
  .burger{display:block;}
  .nav{
    position:absolute;top:100%;left:0;right:0;background:#fff;
    flex-direction:column;align-items:stretch;gap:0;padding:10px 14px 20px;
    display:none;border-bottom:3px solid var(--red);
    box-shadow:0 14px 22px rgba(35,31,32,.12);
  }
  .nav.is-open{display:flex;}
  .nav a{padding:14px 8px;border-bottom:1px solid var(--line);font-size:.98rem;}
  .nav a.is-on{box-shadow:none;}
  .nav .nav__cta{margin:14px 0 0;text-align:center;}
  .head__in{min-height:66px;}
  .callbar{display:block;}
  .foot{padding-bottom:104px;}
  .topbar__label{display:none;}
  .topbar__in{justify-content:center;}
}

@media (max-width:620px){
  body{font-size:16px;}
  .hero__in{padding:56px 0 52px;}
  .sec{padding:56px 0;}
  .trust__in{grid-template-columns:1fr;}
  .foot__grid{grid-template-columns:1fr;gap:34px;}
  .form__row{grid-template-columns:1fr;}
  .step{grid-template-columns:52px 1fr;gap:16px;}
  .step::before{font-size:1.2rem;}
  .hero__acts .btn{width:100%;text-align:center;}
  .gal__i img,.pair img{height:200px;}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  .rv{opacity:1;transform:none;}
}


/* ---- vanity number ------------------------------------------------------- */
.vanity{
  display:inline-flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  font-family:var(--display);font-weight:800;letter-spacing:-.02em;
  font-size:clamp(1.5rem,3.6vw,2.4rem);color:#fff;text-decoration:none;line-height:1;
}
.vanity__pre{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:#f0b8bd;display:block;width:100%;margin-bottom:10px;}
.vanity__num{color:#fff;}
.vanity__word{color:var(--red);-webkit-text-stroke:.5px rgba(255,255,255,.35);}
.vanity:hover .vanity__word{color:#fff;-webkit-text-stroke:0;}
.vanity__digits{font-family:var(--mono);font-size:.8rem;font-weight:500;
  letter-spacing:.08em;color:#a9b5d8;display:block;width:100%;margin-top:9px;}

.sec--dark{background:var(--navy-deep);color:#d5dcef;}
.sec--dark h2,.sec--dark h3{color:#fff;}

.ads{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;}
.ads img{border-radius:var(--r);width:100%;height:auto;border:1px solid rgba(255,255,255,.12);}

.badges{display:flex;flex-wrap:wrap;gap:26px;align-items:center;margin-top:26px;}
.badges img{height:76px;width:auto;}


/* ---- partners ------------------------------------------------------------ */
.plogos{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.plogos__i{
  background:#fff;display:flex;align-items:center;justify-content:center;
  padding:24px 20px;min-height:112px;
}
.plogos__i img{max-height:56px;width:auto;max-width:100%;
  opacity:1;transition:transform .25s;}
.plogos__i:hover img{transform:scale(1.05);}

.pnames{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;
}
.pnames li{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:11px 18px;font-family:var(--mono);font-size:.82rem;
  font-weight:500;color:var(--navy);letter-spacing:.02em;
}
.licline{
  margin:32px 0 0;padding-top:22px;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:.82rem;letter-spacing:.03em;color:var(--steel);
}
.licline strong{color:var(--navy);}


/* ---- footer logo --------------------------------------------------------- */
.foot__logo{height:46px;width:auto;margin-bottom:18px;}


/* ---- credentials --------------------------------------------------------- */
.creds{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);}
.creds__i{background:#fff;padding:26px 24px 30px;}
.creds__img{height:96px;display:flex;align-items:center;justify-content:flex-start;margin-bottom:16px;}
.creds__img img{max-height:88px;max-width:100%;width:auto;}
.creds__i h3{font-size:1.02rem;color:var(--navy);margin-bottom:.35em;}
.creds__i p{font-size:.9rem;margin:0;}
@media (max-width:620px){.creds__img{justify-content:center;}.creds__i{text-align:center;}}


/* ---- offices grid -------------------------------------------------------- */
.offices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);}
.office{background:#fff;padding:30px 26px 32px;}
.office h3{color:var(--navy);margin-bottom:.2em;}
.office__area{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--red);margin:0 0 14px;}
.office__note{font-size:.93rem;margin:0 0 18px;}
.office__tel{font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--navy);
  text-decoration:none;letter-spacing:-.01em;}
.office__tel:hover{color:var(--red);}
@media (max-width:860px){.offices-grid{grid-template-columns:1fr;}}
