:root {
  --ink: #061827;
  --ink-2: #0b2c42;
  --paper: #f5f2e9;
  --paper-2: #fffdf7;
  --blue: #087dbe;
  --cyan: #16a7e0;
  --yellow: #f6dd3c;
  --red: #f0443e;
  --muted: #58707c;
  --line: rgba(6,24,39,.16);
  --white-line: rgba(255,255,255,.18);
  --shadow: 0 28px 80px rgba(6,24,39,.18);
  --ease: cubic-bezier(.2,.8,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body { width: 100%; margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: "DM Sans", sans-serif; }
body.menu-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
img, svg { display: block; max-width: 100%; }
::selection { color: var(--ink); background: var(--yellow); }

.skip-link { position: fixed; z-index: 300; left: 1rem; top: -6rem; padding: .8rem 1rem; color: white; background: var(--ink); }
.skip-link:focus { top: 1rem; }
.academy-wire { position: fixed; z-index: 200; top: 0; left: 0; width: 0; height: 3px; background: linear-gradient(90deg,var(--yellow),var(--cyan)); box-shadow: 0 0 18px rgba(22,167,224,.6); }

.load-screen { position: fixed; z-index: 500; inset: 0; display: flex; align-items: center; justify-content: center; gap: 1.1rem; color: white; background: var(--ink); font: 800 clamp(2.4rem,8vw,8rem)/1 "Manrope", sans-serif; letter-spacing: -.08em; animation: load-away .85s 1.15s var(--ease) forwards; }
.load-screen i { width: clamp(40px,8vw,110px); height: .13em; background: var(--yellow); transform: scaleX(0); animation: load-line .7s .25s var(--ease) forwards; }

.topline { min-height: 38px; display: flex; align-items: center; justify-content: center; gap: clamp(1rem,4vw,3rem); padding: .45rem 1rem; color: white; background: linear-gradient(95deg,#07273c,#0a4a70 58%,#087dbe); font-size: .7rem; letter-spacing: .05em; }
.topline p { margin: 0; font-weight: 700; text-transform: uppercase; }
.topline a { color: var(--yellow); font-weight: 800; text-underline-offset: 4px; }
.live-dot { display: inline-block; width: 7px; height: 7px; margin-right: .45rem; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 5px rgba(246,221,60,.12); animation: dot-pulse 2s infinite; }

.site-header { position: sticky; z-index: 100; top: 0; min-height: 94px; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 2rem; padding: 1rem clamp(1rem,4vw,4.5rem); border-bottom: 1px solid rgba(255,255,255,.65); background: linear-gradient(100deg,rgba(255,253,247,.94),rgba(245,242,233,.78)),url("assets/training-room.jpg") center/cover; backdrop-filter: blur(18px) saturate(1.15); }
.brand { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; }
.brand img { width: 56px; height: 56px; }
.brand span, .brand strong, .brand small { display: block; }
.brand strong { font: 800 1.25rem/1 "Manrope",sans-serif; letter-spacing: -.035em; }
.brand small { margin-top: .35rem; color: #526a77; font-size: .48rem; font-weight: 800; letter-spacing: .2em; }
.desktop-nav { justify-self: end; display: flex; align-items: center; gap: clamp(1rem,2.6vw,2.5rem); }
.desktop-nav a { position: relative; font-size: .72rem; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:0; bottom:-.5rem; height:2px; background:var(--cyan); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.desktop-nav a:hover::after { transform: scaleX(1); }
.header-apply { min-height: 44px; display: inline-flex; align-items: center; gap: 1rem; padding: .75rem 1rem; color: white; background: var(--ink); font-size: .72rem; font-weight: 800; text-decoration: none; text-transform: uppercase; }
.header-apply span { color: var(--yellow); }
.menu-button { width: 52px; height: 52px; display: grid; place-items: center; padding: 0; border: 0; color: white; background: var(--ink); cursor: pointer; }
.menu-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.menu-button i { display:block; width:20px; height:2px; background:white; transition:transform .3s var(--ease); }
.menu-button i + i { margin-top:-15px; }
.menu-button[aria-expanded="true"] i:first-of-type { transform: translateY(4px) rotate(45deg); }
.menu-button[aria-expanded="true"] i:last-of-type { transform: translateY(-4px) rotate(-45deg); }

.menu { position: fixed; z-index: 90; inset: 132px 0 0; display: grid; grid-template-rows: 1fr auto; padding: clamp(1.2rem,4vw,4rem); color: white; background: linear-gradient(120deg,rgba(6,24,39,.94),rgba(6,24,39,.76)),url("assets/fire-training.jpg") center/cover; visibility: hidden; opacity: 0; transform: translateY(-24px); transition: opacity .3s,transform .45s var(--ease),visibility .3s; }
.menu.open { visibility: visible; opacity: 1; transform: none; }
.menu-grid { display: grid; grid-template-columns: repeat(5,1fr); align-content: center; border: 1px solid var(--white-line); background: rgba(6,24,39,.32); backdrop-filter: blur(8px); }
.menu-grid > p { grid-column: 1/-1; margin:0; padding:1rem; color:var(--yellow); border-bottom:1px solid var(--white-line); font-size:.62rem; font-weight:800; letter-spacing:.16em; }
.menu-grid a { min-height: 240px; display:flex; flex-direction:column; justify-content:flex-end; padding:1.4rem; border-right:1px solid var(--white-line); text-decoration:none; transition:background .25s,transform .25s; }
.menu-grid a:last-child { border-right:0; }
.menu-grid a:hover { background:rgba(22,167,224,.2); transform:translateY(-8px); }
.menu-grid a span { margin-bottom:auto; color:var(--yellow); font-size:.65rem; }
.menu-grid a strong { font:800 clamp(1.05rem,1.6vw,1.6rem)/1.05 "Manrope",sans-serif; }
.menu-grid a small { margin-top:.6rem; color:#b6c9d2; }
.menu-foot { display:flex; justify-content:flex-end; padding-top:1rem; }
.menu-foot a { color:#bdd0da; font-size:.78rem; text-decoration:none; }
.menu-foot strong { margin-left:1rem; color:var(--yellow); }

.hero { position:relative; min-height:calc(100svh - 132px); display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); align-items:stretch; overflow:hidden; background: radial-gradient(circle at 15% 15%,rgba(22,167,224,.11),transparent 25%),linear-gradient(110deg,rgba(255,253,247,.98) 0 51%,rgba(245,242,233,.7)),url("assets/first-aid-training.jpg") center/cover fixed; }
.hero::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(rgba(6,24,39,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(6,24,39,.045) 1px,transparent 1px); background-size:52px 52px; mask-image:linear-gradient(90deg,#000,transparent 75%); }
.hero-copy { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; padding:clamp(4rem,8vw,8.5rem) clamp(1.3rem,5vw,5rem); }
.eyebrow,.kicker { margin:0 0 1.5rem; color:var(--blue); font-size:.65rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.eyebrow span { margin-right:1.2rem; padding:.38rem .55rem; color:var(--ink); background:var(--yellow); }
.hero h1 { max-width:850px; margin:0; font:800 clamp(3.2rem,6.7vw,7.4rem)/.88 "Manrope",sans-serif; letter-spacing:-.075em; }
.hero h1 em,.section-head h2 em,.experience h2 em,.mobile-unit h2 em,.contact h2 em { color:var(--blue); font-style:normal; }
.hero-intro { max-width:670px; margin:2rem 0 0; color:#405965; font-size:clamp(1rem,1.4vw,1.3rem); line-height:1.55; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem; margin-top:2rem; }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:space-between; gap:2rem; padding:.85rem 1.2rem; border:0; font-size:.78rem; font-weight:800; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:transform .25s var(--ease),box-shadow .25s; }
.button:hover { transform:translateY(-4px); box-shadow:0 16px 30px rgba(6,24,39,.17); }
.button-dark { color:white; background:var(--ink); }
.button-dark span { color:var(--yellow); }
.button-yellow { color:var(--ink); background:var(--yellow); }
.text-button { padding:.7rem 0; border:0; border-bottom:1px solid var(--ink); background:none; font-weight:800; cursor:pointer; }
.text-button span { margin-left:1rem; color:var(--blue); }
.hero-stats { display:grid; grid-template-columns:repeat(3,1fr); max-width:720px; margin:clamp(2.5rem,5vw,5rem) 0 0; padding-top:1.2rem; border-top:1px solid var(--line); }
.hero-stats div { padding-right:1rem; border-right:1px solid var(--line); }
.hero-stats div + div { padding-left:1rem; }
.hero-stats div:last-child { border-right:0; }
.hero-stats dt { color:#6b808a; font-size:.55rem; font-weight:800; letter-spacing:.12em; }
.hero-stats dd { margin:.35rem 0 0; font:800 clamp(1rem,1.5vw,1.4rem) "Manrope",sans-serif; }
.hero-stage { position:relative; min-height:660px; margin:clamp(1rem,3vw,3rem) clamp(1rem,3vw,3rem) clamp(1rem,3vw,3rem) 0; overflow:hidden; clip-path:polygon(10% 0,100% 0,100% 90%,90% 100%,0 100%,0 10%); background:var(--blue); box-shadow:var(--shadow); }
.hero-photo,.hero-photo img { width:100%; height:100%; margin:0; }
.hero-photo img { object-fit:cover; filter:saturate(.8) contrast(1.07); }
.hero-stage::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(6,24,39,.75)),linear-gradient(90deg,rgba(8,125,190,.35),transparent 38%); }
.stage-frame { position:absolute; z-index:3; inset:1.5rem; border:1px solid rgba(255,255,255,.45); }
.stage-frame span { position:absolute; width:42px; height:42px; border-color:var(--yellow); }
.stage-frame span:nth-child(1){left:-1px;top:-1px;border-left:3px solid var(--yellow);border-top:3px solid var(--yellow)}
.stage-frame span:nth-child(2){right:-1px;top:-1px;border-right:3px solid var(--yellow);border-top:3px solid var(--yellow)}
.stage-frame span:nth-child(3){left:-1px;bottom:-1px;border-left:3px solid var(--yellow);border-bottom:3px solid var(--yellow)}
.stage-frame span:nth-child(4){right:-1px;bottom:-1px;border-right:3px solid var(--yellow);border-bottom:3px solid var(--yellow)}
.stage-label { position:absolute; z-index:4; left:3.2rem; bottom:3rem; margin:0; color:white; }
.stage-label small,.stage-label strong { display:block; }
.stage-label small { color:var(--yellow); font-size:.56rem; letter-spacing:.14em; }
.stage-label strong { margin-top:.45rem; font:800 clamp(1.25rem,2.3vw,2.3rem) "Manrope",sans-serif; }
.academy-seal { position:absolute; z-index:5; top:0; right:0; width:145px; height:145px; display:grid; place-content:center; text-align:center; color:var(--ink); background:var(--yellow); clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,0 72%); }
.academy-seal b { font:800 2.2rem/1 "Manrope",sans-serif; }
.academy-seal span { margin-top:.35rem; font-size:.52rem; font-weight:800; letter-spacing:.1em; }
.scroll-note { position:absolute; z-index:4; left:1rem; bottom:1rem; display:flex; align-items:center; gap:.7rem; color:#71858e; font-size:.55rem; font-weight:800; letter-spacing:.12em; writing-mode:vertical-rl; }
.scroll-note span { width:1px; height:46px; background:var(--blue); }

.signal-rail { overflow:hidden; padding:.8rem 0; color:white; background:linear-gradient(90deg,var(--ink),#0b3b58,var(--ink)); }
.signal-rail div { width:max-content; display:flex; gap:2rem; align-items:center; animation:rail 24s linear infinite; }
.signal-rail span { font-size:.65rem; font-weight:800; letter-spacing:.18em; }
.signal-rail i { color:var(--yellow); font-style:normal; }

.pathfinder,.standard,.locations { position:relative; padding:clamp(5rem,9vw,9rem) clamp(1.2rem,5vw,5rem); }
.pathfinder { background:linear-gradient(115deg,rgba(255,253,247,.92),rgba(245,242,233,.64)),url("assets/training-room.jpg") center/cover fixed; }
.section-head { display:grid; grid-template-columns:1fr minmax(260px,.48fr); gap:2rem; align-items:end; }
.section-head .kicker { grid-column:1/-1; margin-bottom:0; }
.section-head h2 { max-width:1000px; margin:0; font:800 clamp(2.7rem,5.8vw,6rem)/.93 "Manrope",sans-serif; letter-spacing:-.065em; }
.section-head > p:last-child { max-width:500px; margin:0; color:#536a76; font-size:1.05rem; line-height:1.65; }
.pathfinder-shell { display:grid; grid-template-columns:minmax(230px,.34fr) 1fr; margin-top:clamp(2.5rem,5vw,5rem); box-shadow:var(--shadow); }
.path-tabs { display:flex; flex-direction:column; background:linear-gradient(rgba(6,24,39,.85),rgba(6,24,39,.94)),url("assets/fire-training.jpg") center/cover; }
.path-tab { min-height:110px; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:1rem; align-content:center; padding:1.2rem; color:#bfd0d8; border:0; border-bottom:1px solid var(--white-line); background:rgba(6,24,39,.16); text-align:left; cursor:pointer; transition:background .25s,color .25s,transform .3s var(--ease); }
.path-tab span { grid-row:1/3; align-self:start; color:#6e96a8; font-size:.58rem; font-weight:800; }
.path-tab strong { font:800 1.05rem "Manrope",sans-serif; }
.path-tab small { margin-top:.25rem; color:#7f9ba8; }
.path-tab:hover { background:rgba(22,167,224,.18); transform:translateX(7px); }
.path-tab.active { color:var(--ink); background:linear-gradient(110deg,rgba(246,221,60,.96),rgba(246,221,60,.76)),url("assets/first-aid-training.jpg") center/cover; }
.path-tab.active span,.path-tab.active small { color:#655a1f; }
.track-panel { min-height:610px; display:grid; grid-template-columns:1fr minmax(330px,.75fr); background:rgba(255,253,247,.92); }
.track-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,5vw,5rem); }
.track-meta { margin:0 0 1.2rem; color:var(--blue); font-size:.62rem; font-weight:800; letter-spacing:.13em; }
.track-copy h3 { margin:0; font:800 clamp(2.5rem,4.3vw,4.7rem)/.95 "Manrope",sans-serif; letter-spacing:-.06em; }
.track-copy > p:not(.track-meta) { max-width:650px; color:#526b77; line-height:1.65; }
.track-copy ul { display:grid; grid-template-columns:1fr 1fr; gap:.6rem 1.4rem; margin:1rem 0 2rem; padding:0; list-style:none; }
.track-copy li { position:relative; padding-left:1.2rem; font-weight:700; }
.track-copy li::before { content:"+"; position:absolute; left:0; color:var(--blue); }
.track-actions { display:flex; flex-wrap:wrap; gap:1.4rem; }
.track-actions a,.track-actions button { padding:.6rem 0; border:0; border-bottom:1px solid var(--ink); color:var(--ink); background:none; font-weight:800; text-decoration:none; cursor:pointer; }
.track-image { position:relative; min-height:430px; margin:0; overflow:hidden; }
.track-image img { width:100%; height:100%; object-fit:cover; }
.track-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent,rgba(6,24,39,.72)); }
.track-image figcaption { position:absolute; z-index:2; left:1.5rem; right:1.5rem; bottom:1.5rem; display:flex; align-items:end; justify-content:space-between; gap:1rem; color:white; }
.track-image figcaption span { color:var(--yellow); font:800 2.5rem "Manrope",sans-serif; }
.track-image figcaption strong { max-width:190px; font-size:.58rem; letter-spacing:.12em; text-align:right; }

.experience { display:grid; grid-template-columns:1fr 1fr; color:white; background:linear-gradient(115deg,rgba(6,24,39,.9),rgba(6,24,39,.7)),url("assets/fire-training.jpg") center/cover fixed; }
.experience-image { position:relative; min-height:760px; overflow:hidden; }
.experience-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.1); }
.experience-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 58%,rgba(6,24,39,.88)),linear-gradient(180deg,transparent 65%,rgba(6,24,39,.7)); }
.image-coordinate { position:absolute; z-index:2; left:1.4rem; bottom:1.4rem; padding:.5rem .7rem; color:var(--yellow); background:rgba(6,24,39,.7); font-size:.58rem; font-weight:800; letter-spacing:.12em; }
.experience-copy { align-self:center; padding:clamp(3rem,7vw,8rem); }
.kicker.light { color:var(--yellow); }
.experience h2,.mobile-unit h2,.contact h2 { margin:0; font:800 clamp(2.7rem,5vw,5.7rem)/.95 "Manrope",sans-serif; letter-spacing:-.06em; }
.experience h2 em,.mobile-unit h2 em,.contact h2 em { color:var(--yellow); }
.experience-copy > p:not(.kicker),.mobile-unit-copy > p:not(.kicker),.contact-copy > p:not(.kicker) { max-width:680px; color:#bfd0d8; font-size:1.05rem; line-height:1.7; }
.method-list { margin:2.2rem 0 0; padding:0; list-style:none; }
.method-list li { display:grid; grid-template-columns:48px 1fr; gap:1rem; padding:1rem 0; border-top:1px solid var(--white-line); }
.method-list span { color:var(--yellow); font-size:.65rem; }
.method-list strong,.method-list small { display:block; }
.method-list strong { font:800 1.05rem "Manrope",sans-serif; }
.method-list small { margin-top:.3rem; color:#91a8b4; }

.standard { overflow:hidden; background:linear-gradient(110deg,rgba(245,242,233,.92),rgba(255,253,247,.66)),url("assets/first-aid-training.jpg") center/cover fixed; }
.standard::after { content:"STANDARD"; position:absolute; z-index:0; right:-3vw; bottom:-2vw; color:rgba(6,24,39,.045); font:800 clamp(7rem,17vw,18rem)/.75 "Manrope",sans-serif; letter-spacing:-.1em; }
.standard > * { position:relative; z-index:1; }
.standard-grid { display:grid; grid-template-columns:.8fr .8fr 1.2fr; margin-top:4rem; border:1px solid var(--line); background:rgba(255,255,255,.5); backdrop-filter:blur(12px); }
.standard-card { min-height:420px; padding:2rem; border-right:1px solid var(--line); }
.standard-card > span { color:var(--blue); font-size:.62rem; font-weight:800; letter-spacing:.15em; }
.standard-card h3 { margin:7rem 0 1rem; font:800 clamp(1.4rem,2vw,2.1rem)/1.05 "Manrope",sans-serif; letter-spacing:-.04em; }
.standard-card p { color:#526a76; line-height:1.6; }
.standard-card a { display:inline-block; margin-top:1rem; font-weight:800; text-underline-offset:5px; }
.photo-card { position:relative; padding:0; overflow:hidden; color:white; border-right:0; }
.photo-card img { width:100%; height:100%; object-fit:cover; filter:saturate(.75); }
.photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,24,39,.05),rgba(6,24,39,.88)); }
.photo-card div { position:absolute; z-index:2; left:2rem; right:2rem; bottom:2rem; }
.photo-card div span { color:var(--yellow); font-size:.57rem; font-weight:800; letter-spacing:.13em; }
.photo-card div h3 { margin:1rem 0 0; }

.mobile-unit { min-height:760px; display:grid; grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr); align-items:center; gap:clamp(2rem,6vw,7rem); padding:clamp(5rem,9vw,9rem) clamp(1.2rem,5vw,5rem); color:white; background:linear-gradient(105deg,rgba(6,24,39,.94),rgba(6,24,39,.6)),url("assets/fire-training.jpg") center/cover fixed; }
.mobile-unit .button { margin-top:1rem; }
.reach-map { position:relative; min-height:520px; border:1px solid rgba(255,255,255,.32); background:radial-gradient(circle at 50% 45%,rgba(22,167,224,.18),transparent 32%),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:auto,46px 46px,46px 46px; }
.map-line { position:absolute; left:22%; top:23%; width:52%; height:57%; border:2px dashed rgba(246,221,60,.45); border-left-color:transparent; border-radius:50%; transform:rotate(-16deg); }
.reach-map button { position:absolute; display:grid; gap:.2rem; padding:0; color:white; border:0; background:none; text-align:left; cursor:pointer; }
.reach-map button:nth-of-type(1){left:48%;top:47%}.reach-map button:nth-of-type(2){left:60%;top:18%}.reach-map button:nth-of-type(3){left:20%;top:68%}
.reach-map button i { width:18px; height:18px; margin-bottom:.35rem; border:4px solid var(--ink); border-radius:50%; background:var(--yellow); box-shadow:0 0 0 2px var(--yellow),0 0 0 12px rgba(246,221,60,.1); animation:map-pulse 2.6s infinite; }
.reach-map button strong { font:800 clamp(1.1rem,1.7vw,1.6rem) "Manrope",sans-serif; }
.reach-map button small { color:#9eb4bf; }
.mobile-pulse { position:absolute; right:1.2rem; bottom:1.2rem; padding:.7rem; color:var(--ink); background:var(--yellow); font-size:.58rem; font-weight:800; letter-spacing:.12em; }

.calendar-callout { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:clamp(2rem,6vw,6rem); margin:clamp(1rem,4vw,4rem); padding:clamp(2rem,5vw,5rem); background:linear-gradient(105deg,rgba(246,221,60,.96),rgba(246,221,60,.72)),url("assets/training-room.jpg") center/cover; box-shadow:var(--shadow); }
.calendar-callout p { margin:0 0 1rem; font-size:.62rem; font-weight:800; letter-spacing:.14em; }
.calendar-callout h2 { margin:0; font:800 clamp(2.3rem,4vw,4.5rem)/.95 "Manrope",sans-serif; letter-spacing:-.055em; }
.calendar-callout > div:last-child { justify-self:end; }
.calendar-orbit { position:relative; width:150px; height:150px; display:grid; place-items:center; border:1px solid rgba(6,24,39,.3); border-radius:50%; }
.calendar-orbit span { font:800 1.7rem "Manrope",sans-serif; }
.calendar-orbit i { position:absolute; inset:10px; border:1px dashed rgba(6,24,39,.4); border-radius:50%; animation:spin 12s linear infinite; }
.calendar-orbit i::after { content:""; position:absolute; top:-5px; left:50%; width:10px; height:10px; border-radius:50%; background:var(--blue); }

.locations { background:linear-gradient(115deg,rgba(255,253,247,.9),rgba(245,242,233,.62)),url("assets/training-room.jpg") center/cover fixed; }
.location-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:3.5rem; border:1px solid var(--line); }
.location-grid article { min-height:360px; display:flex; flex-direction:column; padding:2rem; border-right:1px solid var(--line); background:linear-gradient(180deg,rgba(255,253,247,.7),rgba(255,253,247,.9)),url("assets/training-room.jpg") center/cover; transition:transform .35s var(--ease); }
.location-grid article:nth-child(2){background-image:linear-gradient(180deg,rgba(255,253,247,.68),rgba(255,253,247,.9)),url("assets/first-aid-training.jpg")}.location-grid article:nth-child(3){background-image:linear-gradient(180deg,rgba(255,253,247,.68),rgba(255,253,247,.9)),url("assets/fire-training.jpg")}
.location-grid article:last-child { border-right:0; }
.location-grid article:hover { position:relative; z-index:2; transform:translateY(-10px); box-shadow:var(--shadow); }
.location-grid span { color:var(--blue); font-size:.6rem; font-weight:800; letter-spacing:.12em; }
.location-grid h3 { margin:auto 0 1rem; font:800 clamp(2rem,3vw,3.5rem) "Manrope",sans-serif; letter-spacing:-.05em; }
.location-grid p { color:#526a76; line-height:1.55; }
.location-grid a { margin-top:1rem; font-weight:800; text-underline-offset:5px; }

.contact { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,7vw,8rem); padding:clamp(5rem,9vw,9rem) clamp(1.2rem,5vw,5rem); color:white; background:linear-gradient(105deg,rgba(6,24,39,.94),rgba(6,24,39,.62)),url("assets/training-room.jpg") center/cover fixed; }
.contact-lines { display:grid; gap:.8rem; margin-top:2rem; }
.contact-lines a { display:grid; grid-template-columns:70px 1fr; align-items:center; padding:1rem 0; border-top:1px solid var(--white-line); text-decoration:none; }
.contact-lines small { color:var(--yellow); font-size:.56rem; font-weight:800; letter-spacing:.1em; }
.contact-lines strong { font:800 clamp(1rem,1.8vw,1.5rem) "Manrope",sans-serif; overflow-wrap:anywhere; }
.contact-form { align-self:center; display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding:clamp(1.3rem,3vw,3rem); color:var(--ink); border:1px solid rgba(255,255,255,.55); background:rgba(255,253,247,.86); box-shadow:var(--shadow); backdrop-filter:blur(18px); }
.contact-form label { display:grid; gap:.45rem; }
.contact-form label span { font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; min-height:52px; padding:.8rem; color:var(--ink); border:1px solid #b8c1c4; border-radius:0; background:rgba(255,255,255,.9); font-size:16px; }
.contact-form textarea { resize:vertical; }
.contact-form .wide { grid-column:1/-1; }
.form-note { margin:0; color:#657984; font-size:.66rem; }

.site-footer { display:grid; grid-template-columns:1fr 1fr; gap:3rem; padding:clamp(3rem,6vw,6rem) clamp(1.2rem,5vw,5rem) 2rem; color:white; background:linear-gradient(110deg,rgba(6,24,39,.93),rgba(6,24,39,.72)),url("assets/fire-training.jpg") center/cover; }
.brand-light small { color:#9eb3bd; }
.footer-brand > p { color:#91a8b4; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.footer-links div { display:flex; flex-direction:column; gap:.65rem; }
.footer-links strong { margin-bottom:.4rem; color:var(--yellow); font-size:.6rem; letter-spacing:.14em; }
.footer-links a { color:#bed0d8; font-size:.82rem; text-decoration:none; }
.footer-links a:hover { color:white; }
.ema-crosslink { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:1rem; padding:1.5rem 0; border-top:1px solid var(--white-line); border-bottom:1px solid var(--white-line); text-decoration:none; }
.ema-crosslink span { color:#91a8b4; font-size:.58rem; font-weight:800; letter-spacing:.12em; }
.ema-crosslink strong { font:800 clamp(1.4rem,3vw,3rem) "Manrope",sans-serif; }
.ema-crosslink i { color:var(--yellow); font:800 1.2rem "Manrope",sans-serif; font-style:normal; }
.footer-base { grid-column:1/-1; display:flex; justify-content:space-between; align-items:end; gap:2rem; color:#78919d; font-size:.68rem; }
.footer-base a { display:grid; text-align:right; color:white; text-decoration:none; }
.footer-base a span { color:#78919d; font-size:.56rem; text-transform:uppercase; letter-spacing:.12em; }
.footer-base a strong { font:800 1.35rem "Manrope",sans-serif; }

.floating-finder { position:fixed; z-index:70; right:1.2rem; bottom:1.2rem; width:84px; height:84px; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.45rem; padding:.75rem; color:var(--ink); border:0; background:var(--yellow); box-shadow:0 14px 45px rgba(6,24,39,.28); cursor:pointer; }
.floating-finder span { font-size:1.5rem; }
.floating-finder strong { font:800 .58rem/1.15 "Manrope",sans-serif; letter-spacing:.05em; text-align:left; }
.finder { width:min(760px,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); padding:0; border:0; color:var(--ink); background:transparent; }
.finder::backdrop { background:rgba(3,13,22,.8); backdrop-filter:blur(8px); }
.finder-shell { overflow:auto; background:linear-gradient(120deg,rgba(255,253,247,.96),rgba(245,242,233,.88)),url("assets/training-room.jpg") center/cover; box-shadow:0 30px 90px rgba(0,0,0,.35); }
.finder header { display:flex; justify-content:space-between; gap:1rem; padding:1.2rem; color:white; background:var(--ink); }
.finder header span,.finder header strong { display:block; }
.finder header span { color:var(--yellow); font-size:.55rem; letter-spacing:.12em; }
.finder header strong { margin-top:.35rem; font:800 1.2rem "Manrope",sans-serif; }
.finder header button { width:42px; border:0; color:white; background:none; font-size:2rem; cursor:pointer; }
.finder-body { padding:clamp(1.2rem,4vw,3rem); }
.finder-prompt { color:#526a76; }
.finder-options { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:1.5rem; }
.finder-options button { min-height:58px; padding:.8rem; border:1px solid var(--line); background:rgba(255,255,255,.8); font-weight:800; text-align:left; cursor:pointer; }
.finder-options button:hover { color:white; border-color:var(--blue); background:var(--blue); }
.finder-result { margin-top:1rem; padding:1.2rem; color:white; background:var(--ink); }
.finder-result strong { display:block; color:var(--yellow); font:800 1.2rem "Manrope",sans-serif; }
.finder-result p { color:#c1d1d8; }
.finder-result a { color:var(--yellow); font-weight:800; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s ease,transform .9s var(--ease); }
.reveal.in-view { opacity:1; transform:none; }

@keyframes load-line { to { transform:scaleX(1); } }
@keyframes load-away { to { opacity:0; visibility:hidden; transform:translateY(-100%); } }
@keyframes dot-pulse { 50% { box-shadow:0 0 0 10px rgba(246,221,60,0); } }
@keyframes rail { to { transform:translateX(-50%); } }
@keyframes map-pulse { 50% { box-shadow:0 0 0 2px var(--yellow),0 0 0 20px rgba(246,221,60,0); } }
@keyframes spin { to { transform:rotate(360deg); } }

@media (max-width:1100px) {
  .desktop-nav { display:none; }
  .site-header { grid-template-columns:auto 1fr auto auto; }
  .hero { grid-template-columns:1fr; }
  .hero-stage { min-height:680px; margin:0 1rem 3rem; }
  .hero-copy { min-height:720px; }
  .pathfinder-shell { grid-template-columns:1fr; }
  .path-tabs { flex-direction:row; overflow-x:auto; }
  .path-tab { min-width:230px; border-right:1px solid var(--white-line); }
  .standard-grid { grid-template-columns:1fr 1fr; }
  .photo-card { grid-column:1/-1; min-height:500px; }
  .mobile-unit { grid-template-columns:1fr; }
  .calendar-callout { grid-template-columns:1fr auto; }
  .calendar-callout > div:last-child { grid-column:1/-1; justify-self:start; }
  .menu-grid { grid-template-columns:repeat(3,1fr); overflow:auto; }
  .menu-grid a { min-height:190px; }
}

@media (max-width:760px) {
  .topline { justify-content:space-between; }
  .topline p { max-width:58%; line-height:1.25; }
  .site-header { min-height:78px; grid-template-columns:1fr auto; padding:.7rem .85rem; }
  .brand img { width:48px; height:48px; }
  .brand strong { font-size:1rem; }
  .brand small { font-size:.4rem; letter-spacing:.12em; }
  .header-apply { display:none; }
  .menu { inset:116px 0 0; padding:.75rem; }
  .menu-grid { grid-template-columns:1fr 1fr; align-content:start; }
  .menu-grid a { min-height:138px; padding:1rem; }
  .menu-grid a strong { font-size:1rem; }
  .menu-foot { justify-content:flex-start; }
  .hero { min-height:auto; background-attachment:scroll; }
  .hero-copy { min-height:auto; padding:5rem 1.1rem 3rem; }
  .hero h1 { font-size:clamp(3.2rem,15vw,5rem); }
  .hero-intro { font-size:1rem; }
  .hero-stats { gap:0; }
  .hero-stats div { min-width:0; padding-right:.5rem; }
  .hero-stats div + div { padding-left:.5rem; }
  .hero-stats dt { font-size:.48rem; }
  .hero-stats dd { font-size:.88rem; overflow-wrap:anywhere; }
  .hero-stage { min-height:530px; margin:0 .75rem 2rem; }
  .stage-label { left:2rem; bottom:2rem; }
  .academy-seal { width:110px; height:110px; }
  .scroll-note { display:none; }
  .pathfinder,.standard,.locations { padding:5rem 1rem; background-attachment:scroll; }
  .section-head { grid-template-columns:1fr; }
  .section-head h2 { font-size:clamp(2.7rem,12vw,4rem); }
  .path-tabs { margin-inline:-1rem; padding-inline:1rem; }
  .track-panel { grid-template-columns:1fr; }
  .track-copy { padding:2rem 1.2rem; }
  .track-copy ul { grid-template-columns:1fr; }
  .track-image { min-height:420px; }
  .experience { grid-template-columns:1fr; background-attachment:scroll; }
  .experience-image { min-height:480px; }
  .experience-copy { padding:4rem 1.2rem; }
  .standard-grid { grid-template-columns:1fr; }
  .standard-card { min-height:330px; border-right:0; border-bottom:1px solid var(--line); }
  .standard-card h3 { margin-top:4.5rem; }
  .photo-card { grid-column:auto; min-height:430px; }
  .mobile-unit { padding:5rem 1rem; background-attachment:scroll; }
  .reach-map { min-height:440px; }
  .calendar-callout { grid-template-columns:1fr; margin:.75rem; padding:2rem 1.2rem; }
  .calendar-callout > div:last-child { grid-column:auto; }
  .calendar-orbit { width:110px; height:110px; }
  .location-grid { grid-template-columns:1fr; }
  .location-grid article { min-height:300px; border-right:0; border-bottom:1px solid var(--line); }
  .contact { grid-template-columns:1fr; padding:5rem 1rem; background-attachment:scroll; }
  .contact-form { grid-template-columns:1fr; }
  .contact-form .wide { grid-column:auto; }
  .site-footer { grid-template-columns:1fr; padding:4rem 1rem 6.5rem; }
  .footer-links { grid-template-columns:1fr 1fr; }
  .ema-crosslink { grid-column:auto; grid-template-columns:1fr auto; }
  .ema-crosslink span { grid-column:1/-1; }
  .footer-base { grid-column:auto; align-items:flex-start; flex-direction:column; }
  .footer-base a { text-align:left; }
  .floating-finder { right:.65rem; bottom:.65rem; width:70px; height:70px; }
  .finder-options { grid-template-columns:1fr; }
}

@media (max-width:380px) {
  .topline a { font-size:.6rem; }
  .brand small { display:none; }
  .menu-grid { grid-template-columns:1fr; }
  .menu-grid a { min-height:95px; }
  .hero-actions .button,.hero-actions .text-button { width:100%; }
  .hero-stats { grid-template-columns:1fr; }
  .hero-stats div,.hero-stats div + div { padding:.65rem 0; border-right:0; border-bottom:1px solid var(--line); }
  .reach-map button:nth-of-type(1){left:42%}.reach-map button:nth-of-type(2){left:50%}.reach-map button:nth-of-type(3){left:10%}
  .footer-links { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
  .reveal { opacity:1; transform:none; }
}
