/* === SELF-HOSTED FONTS (generated 2026-05-31) === */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/archivo-normal-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-normal-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-normal-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-normal-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-normal-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-normal-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-normal-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* === END SELF-HOSTED FONTS === */

/* ============================================================
   G5 GENERAL CONTRACTORS — Knoxville / East TN
   Brand (Athena v1): Steel Navy #13233B · Field White #FFFFFF
   · Site Fog #F2F4F7 · Slate #475467 (body) · Safety Amber #E8A317
   (fills/rules/icons only — NEVER amber text on white) · Steel Blue #2E5C8A (links)
   Type: Archivo (display) + Inter (body). Scale 1.200 (disciplined).
   Voice: established / accountable / plain-spoken.
   AMBER RULE: amber is a fill/rule/icon. Text on amber is Steel Navy
   (7.27:1). CTA = amber fill + navy label. Body text is Slate or Navy.
   ============================================================ */

:root {
  --navy:      #13233B;
  --navy-800:  #0E1B2E;
  --navy-600:  #25395A;
  --fog:       #F2F4F7;
  --fog-200:   #E7EBF0;
  --slate:     #475467;
  --slate-300: #98A2B3;
  --amber:     #E8A317;
  --amber-600: #C8870C;   /* deeper amber for hairlines on white */
  --steel:     #2E5C8A;   /* links */
  --line:      #D7DDE5;
  --white:     #FFFFFF;
  --ink:       #101828;

  --maxw: 1200px;
  --radius: 8px;
  --radius-sm: 6px;

  --display: "Archivo", system-ui, sans-serif;
  --body: "Inter", system-ui, -apple-system, sans-serif;
  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow: 0 16px 40px rgba(16,24,40,.12);
  --shadow-sm: 0 6px 18px rgba(16,24,40,.08);
}

/* ---------- reset ---------- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:80px; }
body {
  font-family: var(--body); color: var(--ink); background: var(--white);
  font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font:inherit; cursor:pointer; border:none; background:none; }
::selection { background: var(--navy); color:#fff; }

.skip-link { position:absolute; left:-999px; top:0; z-index:200; background: var(--amber); color: var(--navy); padding:10px 16px; font-weight:700; }
.skip-link:focus { left:0; top:0; }

/* ---------- keyboard focus (WCAG 2.4.7) ---------- */
:focus-visible { outline:3px solid var(--navy); outline-offset:3px; border-radius:4px; }
.hero :focus-visible, .section--navy :focus-visible, .footer :focus-visible, .page-hero :focus-visible { outline-color:#fff; }

/* ---------- layout ---------- */
.container { width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,5vw,52px); }
.section { padding-block: clamp(56px,8vw,116px); position:relative; }
.section--white { background: var(--white); }
.section--fog { background: var(--fog); }
.section--navy { background: var(--navy); color:#E7ECF3; }

.eyebrow { font-family: var(--display); font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color: var(--steel); display:inline-flex; align-items:center; gap:12px; margin-bottom:18px; }
.eyebrow::before { content:""; width:30px; height:3px; background: var(--amber); display:inline-block; }
.section--navy .eyebrow { color: var(--amber); }
.section__title { font-family: var(--display); font-weight:800; letter-spacing:-.02em; line-height:1.05; font-size: clamp(1.9rem,4vw,3rem); color: var(--navy); max-width:20ch; }
.section--navy .section__title { color:#fff; }
.lead { font-size: clamp(1.05rem,1.4vw,1.2rem); color: var(--slate); max-width:60ch; margin-top:18px; }
.section--navy .lead { color: rgba(231,236,243,.8); }

/* ---------- buttons ---------- */
.btn { display:inline-flex; align-items:center; gap:10px; font-family: var(--display); font-weight:700; font-size:.95rem; letter-spacing:.02em; padding:15px 26px; border-radius: var(--radius-sm); transition: transform .2s var(--ease), background .2s, color .2s, border-color .2s, box-shadow .2s; border:2px solid transparent; white-space:nowrap; }
.btn svg { width:17px; height:17px; }
.btn--amber { background: var(--amber); color: var(--navy); }      /* amber fill + navy text (7.27:1) */
.btn--amber:hover { background:#F4B431; transform:translateY(-2px); box-shadow: var(--shadow-sm); }
.btn--navy { background: var(--navy); color:#fff; }
.btn--navy:hover { background: var(--navy-800); transform:translateY(-2px); box-shadow: var(--shadow-sm); }
.btn--ghost { border-color: var(--navy); color: var(--navy); }
.btn--ghost:hover { background: var(--navy); color:#fff; transform:translateY(-2px); }
.btn--ghost-light { border-color: rgba(255,255,255,.4); color:#fff; }
.btn--ghost-light:hover { border-color:#fff; background: rgba(255,255,255,.08); transform:translateY(-2px); }

/* ---------- header ---------- */
.header { position:sticky; top:0; z-index:100; background: rgba(255,255,255,.94); backdrop-filter: blur(10px); border-bottom:1px solid var(--line); }
.header__inner { display:flex; align-items:center; justify-content:space-between; height:74px; gap:16px; }

/* G5 monogram lockup (CSS-recreatable per Athena) */
.g5-lockup { display:inline-flex; align-items:center; gap:.7rem; }
.g5-badge { width:46px; height:46px; background: var(--navy); border-radius:6px; display:flex; align-items:center; justify-content:center; font-family: var(--display); font-weight:800; font-size:1.32rem; color:#fff; flex:none; }
.g5-badge .five { color: var(--amber); }
.g5-name { font-family: var(--display); font-weight:700; color: var(--navy); text-transform:uppercase; letter-spacing:.11em; font-size:.78rem; line-height:1.15; }
.section--navy .g5-name, .footer .g5-name { color:#fff; }

.nav { display:flex; align-items:center; gap: clamp(14px,2vw,28px); }
.nav__link { font-family: var(--display); font-weight:600; font-size:.92rem; color: var(--navy); transition:color .15s; position:relative; padding:6px 0; }
.nav__link:hover { color: var(--steel); }
.nav__link::after { content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background: var(--amber); transition:width .2s var(--ease); }
.nav__link:hover::after, .nav__link[aria-current="page"]::after { width:100%; }
.nav__cta { margin-left:4px; padding:11px 20px; }
.nav-toggle { display:none; width:44px; height:44px; flex-direction:column; gap:5px; justify-content:center; align-items:center; }
.nav-toggle span { width:24px; height:2px; background: var(--navy); transition:.25s var(--ease); }

/* ---------- hero ---------- */
.hero { position:relative; background: var(--navy); color:#fff; overflow:hidden; }
.hero::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:54px 54px; mask-image: radial-gradient(120% 100% at 78% 0%, #000 42%, transparent 100%); }
.hero__glow { position:absolute; right:-12%; top:-30%; width:55vw; height:55vw; pointer-events:none; background: radial-gradient(circle, rgba(46,92,138,.5), transparent 60%); filter: blur(22px); }
.hero__bar { position:absolute; left:0; right:0; bottom:0; height:6px; background: var(--amber); }
.hero__inner { position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap: clamp(28px,5vw,60px); align-items:center; padding-block: clamp(56px,9vw,128px); }
.hero__kicker { font-family: var(--display); font-weight:600; font-size: clamp(.72rem,1.2vw,.82rem); letter-spacing:.2em; text-transform:uppercase; color: var(--amber); margin-bottom:22px; }
.hero__title { font-family: var(--display); font-weight:800; text-transform:uppercase; font-size: clamp(2.4rem,6vw,4.2rem); line-height:.98; letter-spacing:-.025em; }
.hero__title .amber { color: var(--amber); }
.hero__sub { margin-top:24px; font-size: clamp(1.08rem,1.6vw,1.32rem); color: rgba(231,236,243,.84); max-width:46ch; }
.hero__cta { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.hero__trust { margin-top:28px; display:flex; flex-wrap:wrap; gap:18px; font-size:.88rem; color: rgba(231,236,243,.72); }
.hero__trust span { display:inline-flex; align-items:center; gap:8px; }
.hero__trust svg { width:17px; height:17px; color: var(--amber); }
.hero__media { position:relative; aspect-ratio:4/3; border-radius: var(--radius); overflow:hidden; background: linear-gradient(135deg,#1B2C46,#2E5C8A); box-shadow: var(--shadow); border:1px solid rgba(255,255,255,.1); }

/* photo slot */
.photo-slot { position:relative; display:flex; align-items:center; justify-content:center; text-align:center; isolation:isolate; }
.photo-slot::after { content: attr(data-slot); position:absolute; inset:0; z-index:1; pointer-events:none; display:flex; align-items:center; justify-content:center; text-align:center; font-family: var(--display); font-weight:700; font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color: rgba(255,255,255,.92); padding:22px; line-height:1.5; background: linear-gradient(180deg, rgba(19,35,59,.2), rgba(19,35,59,.5)); }

/* ---------- credibility strip ---------- */
.cred { background: var(--fog); border-bottom:1px solid var(--line); }
.cred__grid { display:grid; grid-template-columns: repeat(4,1fr); gap:1px; background: var(--line); border:1px solid var(--line); border-radius: var(--radius); overflow:hidden; }
.cred__cell { background: var(--white); padding: clamp(20px,2.6vw,30px); display:flex; gap:14px; align-items:flex-start; }
.cred__ic { width:42px; height:42px; flex:none; border-radius:8px; background: var(--navy); color: var(--amber); display:flex; align-items:center; justify-content:center; }
.cred__ic svg { width:21px; height:21px; }
.cred__k { font-family: var(--display); font-weight:800; color: var(--navy); font-size:1.02rem; line-height:1.1; }
.cred__v { margin-top:4px; font-size:.9rem; color: var(--slate); }

/* ---------- services / what we build ---------- */
.svc-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:1px; background: var(--line); border:1px solid var(--line); border-radius: var(--radius); overflow:hidden; margin-top:48px; }
.svc { background:#fff; padding: clamp(26px,3vw,38px); transition: background .25s, color .25s; }
.svc:hover { background: var(--navy); color:#fff; }
.svc__no { font-family: var(--display); font-weight:800; font-size:2.1rem; color: var(--line); line-height:1; }
.svc:hover .svc__no { color: var(--amber); }
.svc__title { font-family: var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; font-size:1.28rem; color: var(--navy); margin:12px 0 10px; }
.svc:hover .svc__title { color:#fff; }
.svc__desc { font-size:.97rem; color: var(--slate); }
.svc:hover .svc__desc { color: rgba(255,255,255,.78); }
.svc__list { margin-top:16px; display:flex; flex-wrap:wrap; gap:8px; }
.svc__list li { font-family: var(--display); font-weight:600; font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; color: var(--steel); border:1px solid var(--line); padding:5px 10px; border-radius:40px; }
.svc:hover .svc__list li { color: var(--amber); border-color: rgba(255,255,255,.2); }

/* ---------- selected work ---------- */
.work-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: clamp(16px,2vw,22px); margin-top:48px; }
.work-card { background:#fff; border:1px solid var(--line); border-radius: var(--radius); overflow:hidden; transition: transform .2s var(--ease), box-shadow .2s, border-color .2s; }
.work-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--steel); }
.work-card__media { aspect-ratio:3/2; background: linear-gradient(135deg,#243b5e,#2E5C8A); }
.work-card:nth-child(2) .work-card__media { background: linear-gradient(135deg,#1B2C46,#3a6699); }
.work-card:nth-child(3) .work-card__media { background: linear-gradient(135deg,#24405f,#34557f); }
.work-card__body { padding: clamp(20px,2.4vw,26px); }
.work-card__tag { font-family: var(--display); font-weight:700; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color: var(--steel); }
.work-card__title { font-family: var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; font-size:1.25rem; color: var(--navy); margin:8px 0 6px; line-height:1.08; }
.work-card__line { font-size:.94rem; color: var(--slate); }
.work-note { margin-top:24px; font-size:.88rem; color: var(--slate); background:#fff; border:1px dashed var(--slate-300); border-radius:10px; padding:16px 20px; }
.work-note strong { color: var(--navy); }

/* ---------- how we run a job (process) ---------- */
.proc-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: clamp(18px,2.4vw,28px); margin-top:52px; }
.proc { border-top:3px solid var(--amber); padding-top:20px; }
.proc__no { font-family: var(--display); font-weight:800; color: var(--amber); font-size:.9rem; letter-spacing:.06em; }
.proc__title { font-family: var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; font-size:1.16rem; color:#fff; margin:10px 0 8px; }
.proc__desc { font-size:.95rem; color: rgba(231,236,243,.78); }

/* ---------- work with us / forms ---------- */
.forms-grid { display:grid; grid-template-columns:1fr 1fr; gap: clamp(20px,3vw,32px); margin-top:48px; align-items:start; }
.formcard { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: clamp(24px,3vw,38px); box-shadow: var(--shadow-sm); }
.formcard--accent { border-top:4px solid var(--amber); }
.formcard__h { font-family: var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; font-size:1.4rem; color: var(--navy); }
.formcard__p { color: var(--slate); margin:8px 0 22px; font-size:.96rem; }
.field { margin-bottom:18px; position:relative; }
.field > label { display:block; font-family: var(--display); font-weight:600; font-size:.76rem; letter-spacing:.04em; text-transform:uppercase; color: var(--navy); margin-bottom:7px; }
.field .opt { color: var(--slate); font-weight:500; text-transform:none; letter-spacing:0; }
.field input, .field select, .field textarea { width:100%; font:inherit; color: var(--ink); background: var(--fog); border:1.5px solid var(--line); border-radius:6px; padding:12px 14px; transition: border-color .15s, box-shadow .15s; }
.field textarea { min-height:110px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color: var(--steel); box-shadow:0 0 0 3px rgba(46,92,138,.16); }
.field--error input, .field--error textarea, .field--error select { border-color:#C0392B; background:#FDF3F2; }
.field__err { display:none; color:#C0392B; font-size:.82rem; margin-top:6px; font-weight:600; }
.field--error .field__err { display:block; }
.form__row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-success { display:none; background: var(--navy); color:#fff; border-radius: var(--radius); padding: clamp(26px,4vw,40px); }
.form-success.is-on { display:block; }
.form-success h3 { font-family: var(--display); font-weight:800; text-transform:uppercase; font-size:1.4rem; margin-bottom:10px; color: var(--amber); }
.form-success p { color: rgba(231,236,243,.88); }
.form-success a { color:#fff; font-weight:700; text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }

/* ---------- cta band ---------- */
.cta-band { background: var(--amber); color: var(--navy); }
.cta-band__inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; padding-block: clamp(44px,6vw,84px); }
.cta-band__title { font-family: var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.02em; line-height:1; font-size: clamp(1.8rem,4.6vw,3.2rem); max-width:20ch; }
.cta-band__aside { display:flex; flex-direction:column; gap:12px; }
.cta-band__phone { font-family: var(--display); font-weight:800; font-size:1.3rem; }

/* ---------- page hero (404/inner) ---------- */
.page-hero { position:relative; background: var(--navy); color:#fff; overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:54px 54px; mask-image: radial-gradient(120% 100% at 80% 0%, #000 42%, transparent 100%); }
.page-hero__bar { position:absolute; left:0; right:0; bottom:0; height:5px; background: var(--amber); }
.page-hero__inner { position:relative; padding-block: clamp(50px,8vw,96px); }
.crumbs { font-family: var(--display); font-weight:600; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color: var(--amber); margin-bottom:14px; }
.crumbs a:hover { color:#fff; }
.page-hero__title { font-family: var(--display); font-weight:800; text-transform:uppercase; font-size: clamp(2.2rem,6vw,3.6rem); line-height:1; letter-spacing:-.025em; }
.page-hero__title .amber { color: var(--amber); }
.page-hero__sub { margin-top:18px; font-size: clamp(1.04rem,1.6vw,1.24rem); color: rgba(231,236,243,.84); max-width:56ch; }

/* ---------- footer ---------- */
.footer { background: var(--navy-800); color: rgba(231,236,243,.72); padding-block: clamp(52px,6vw,80px) 28px; }
.footer__grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap: clamp(26px,4vw,48px); }
.footer__brand p { margin-top:16px; font-size:.93rem; max-width:34ch; color: rgba(231,236,243,.56); }
.footer__col h4 { font-family: var(--display); font-weight:700; letter-spacing:.1em; text-transform:uppercase; font-size:.76rem; color:#fff; margin-bottom:14px; }
.footer__col a { display:block; padding:6px 0; font-size:.95rem; color: rgba(231,236,243,.72); transition:color .15s; }
.footer__col a:hover { color: var(--amber); }
.footer__contact a { color:#fff; font-weight:600; }
.footer__legal { margin-top: clamp(36px,5vw,60px); padding-top:22px; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:.82rem; color: rgba(231,236,243,.5); }

/* ---------- reveal ---------- */
.reveal { opacity:0; transform: translateY(20px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1;transform:none;transition:none;} html{scroll-behavior:auto;} }

/* ---------- responsive ---------- */
@media (max-width: 940px){
  .hero__inner { grid-template-columns:1fr; }
  .hero__media { aspect-ratio:16/10; order:2; }
  .cred__grid { grid-template-columns:1fr 1fr; }
  .forms-grid { grid-template-columns:1fr; }
  .footer__grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 760px){
  .nav-toggle { display:flex; }
  .nav { position:fixed; inset:74px 0 auto 0; background:#fff; flex-direction:column; align-items:flex-start; gap:2px; padding:18px clamp(20px,5vw,52px) 28px; border-bottom:1px solid var(--line); box-shadow: var(--shadow); transform: translateY(-135%); transition: transform .3s var(--ease); height:auto; }
  .nav--open { transform: translateY(0); }
  .nav__link { font-size:1.1rem; padding:13px 0; width:100%; }
  .nav__cta { margin:12px 0 0; width:100%; justify-content:center; }
}
@media (max-width: 560px){
  .cred__grid { grid-template-columns:1fr; }
  .form__row { grid-template-columns:1fr; }
  .footer__grid { grid-template-columns:1fr; }
  .cta-band__inner { flex-direction:column; align-items:flex-start; }
}
