
500;600;700;800&family=Inter+Tight:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,600&display=swap');

:root{
  --navy-950:#081226;
  --navy-900:#0B1F3A;
  --navy-800:#123163;
  --navy-700:#1B3F82;
  --paper:#F6F2E9;
  --paper-dim:#EEE7D8;
  --white:#FFFFFF;
  --orange-500:#2F6FC4;
  --orange-600:#174E8B;
  --amber-300:#8CB4DF;
  --green-600:#2E8B57;
  --green-400:#5CB37D;
  --slate-500:#5C6B82;
  --slate-300:#A9B7CC;
  --line:#D9D0B8;
  --line-dark:rgba(255,255,255,0.14);

  --display: 'Space Grotesk', sans-serif;
  --body: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;

  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--body);
  color:var(--navy-950);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--display);margin:0;line-height:1.02;letter-spacing:-0.02em;}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;}
:focus-visible{outline:3px solid var(--orange-500);outline-offset:3px;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* ---------- Coordinate / mono eyebrow ---------- */
.coord{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:0.06em;
  color:var(--orange-600);
  display:flex; align-items:center; gap:10px;
}
.dark .coord{color:var(--amber-300);}
.coord .sep{opacity:0.5;}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(246,242,233,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:16px;padding-bottom:16px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;}
.brand img{height:42px;width:auto;}
.brand span{
  font-family:var(--mono);font-size:11px;color:var(--slate-500);
  letter-spacing:0.08em; padding-left:10px; border-left:1px solid var(--line);
}
.header-actions{display:flex;align-items:center;gap:30px;}
.nav-links{display:flex;align-items:center;gap:32px;}
.nav-links a{
  font-family:var(--display);font-weight:500;font-size:14.5px;
  text-decoration:none;color:var(--navy-800);position:relative;padding:4px 0;
}
.nav-links a[aria-current="page"]{color:var(--orange-600);}
.nav-links a:not(.btn)::after{
  content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;
  background:var(--orange-500);transform:scaleX(0);transform-origin:left;
  transition:transform .2s ease;
}
.nav-links a:not(.btn):hover::after{transform:scaleX(1);}

/* ---------- Buttons ---------- */
.btn{
  font-family:var(--display);font-weight:600;font-size:14.5px;
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 22px;border-radius:3px;text-decoration:none;
  border:1px solid transparent; cursor:pointer;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--orange-500);color:var(--white);}
.btn-primary:hover{background:var(--orange-600);}
.btn-ghost{background:transparent;color:var(--navy-900);border-color:var(--navy-900);}
.btn-ghost:hover{background:var(--navy-900);color:var(--white);}
.btn-on-dark{background:var(--white);color:var(--navy-950);}
.btn-on-dark:hover{background:var(--amber-300);}
.btn-ghost-dark{background:transparent;color:var(--white);border-color:rgba(255,255,255,0.35);}
.btn-ghost-dark:hover{border-color:var(--white);}

/* ---------- Section rhythm ---------- */
section{padding:104px 0;}
section.tight{padding:64px 0;}
.section-head{max-width:620px;margin-bottom:56px;}
.section-head h2{font-size:clamp(30px,3.6vw,44px);margin-top:16px;}
.section-head p{margin-top:16px;color:var(--slate-500);font-size:17px;}

.dark{background-color:var(--navy-950);color:var(--white);}
.dark .slate{color:var(--slate-300);}
.dark h2, .dark h3{color:var(--white);}

/* ---------- Big display headline w/ mixed weight ---------- */
.display-xl{font-size:clamp(40px,6.4vw,76px);}
.w-light{font-weight:400;color:var(--slate-300);}

/* ================= HERO — open composition with floating route ================= */
.hero{
  position:relative;
  overflow:hidden;
  padding:0;
  background:var(--navy-950);
  color:var(--white);
  min-height:calc(100vh - 75px);
  display:flex;
  align-items:center;
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(8,18,38,0.98) 0%,
    rgba(8,18,38,0.92) 31%,
    rgba(8,18,38,0.48) 54%,
    rgba(8,18,38,0.04) 76%);
}
.hero-wrap{
  width:min(100%, 1500px);
  margin:0 auto;
  padding:112px 56px 92px;
  position:relative;
  z-index:3;
}
.hero-copy{max-width:850px;}
.hero-copy .display-xl{
  font-size:clamp(54px,4.8vw,82px);
  line-height:.98;
  letter-spacing:-.045em;
  max-width:850px;
}
.hero-line-nowrap{white-space:nowrap;}
.hero-copy-text{
  max-width:600px;
  margin-top:28px;
  font-size:18px;
  line-height:1.75;
  color:var(--slate-300);
}
.hero-actions{display:flex;gap:16px;margin-top:38px;flex-wrap:wrap;}
.hero-route-scene{
  position:absolute;
  z-index:2;
  top:50%;
  right:max(-70px, calc((100vw - 1500px)/2 - 90px));
  width:min(58vw, 930px);
  transform:translateY(-47%);
  pointer-events:none;
  filter:drop-shadow(0 30px 55px rgba(0,0,0,.22));
}
.hero-route-scene svg{display:block;width:100%;height:auto;overflow:visible;}
.hero-route-halo{fill:url(#routeHalo);opacity:.62;}
.hero-route-road{stroke:rgba(255,255,255,.18);stroke-width:2.4;fill:none;}
.hero-route-road.faint{stroke:rgba(255,255,255,.09);stroke-width:1.4;}
.hero-route-scene .fm-route{stroke-width:2.4;opacity:.92;}
.hero-route-scene .fm-label{font-size:12px;}
.hero-route-node{filter:drop-shadow(0 3px 10px rgba(0,0,0,.32));}

@media (max-width:1180px){
  .hero-wrap{padding-left:40px;padding-right:40px;}
  .hero-copy{max-width:650px;}
  .hero-copy .display-xl{font-size:clamp(52px,6vw,76px);max-width:650px;}
  .hero-line-nowrap{white-space:normal;}
  .hero-route-scene{right:-150px;width:66vw;opacity:.82;}
}
@media (max-width:920px){
  .hero{min-height:auto;}
  .hero::before{background:linear-gradient(90deg,rgba(8,18,38,.98),rgba(8,18,38,.84));}
  .hero-wrap{padding:96px 28px 76px;}
  .hero-copy{max-width:720px;}
  .hero-copy .display-xl{font-size:clamp(46px,10vw,68px);max-width:720px;}
  .hero-route-scene{display:none;}
}
@media (max-width:560px){
  .hero-wrap{padding:76px 22px 62px;}
  .hero-copy .display-xl{font-size:clamp(42px,13vw,58px);}
  .hero-line-nowrap{white-space:nowrap;}
.hero-copy-text{font-size:16.5px;line-height:1.65;}
}

/* ================= FIELD MAP (signature element) ================= */
.field-map{position:absolute;inset:0;overflow:hidden;}
.field-map svg{width:100%;height:100%;}
.fm-grid line{stroke:rgba(255,255,255,0.06);stroke-width:1;}
.fm-road{stroke:rgba(255,255,255,0.16);stroke-width:2;fill:none;}
.fm-route{stroke:var(--amber-300);stroke-width:2;fill:none;stroke-dasharray:6 7;opacity:0.75;
  stroke-dashoffset:0; animation:dash 40s linear infinite;}
@keyframes dash{to{stroke-dashoffset:-400;}}
.fm-pin-ring{fill:none;stroke:var(--orange-500);stroke-width:2;opacity:0;
  transform-origin:center; animation:pulse 2.6s ease-out infinite;}
@keyframes pulse{
  0%{opacity:0.9;transform:scale(0.3);}
  70%{opacity:0;transform:scale(2.6);}
  100%{opacity:0;transform:scale(2.6);}
}
.fm-label{font-family:var(--mono);font-size:10.5px;fill:var(--slate-300);letter-spacing:0.04em;}

/* ================= ROUTE (process component) ================= */
.route{position:relative;margin-top:16px;}
.route-line{
  position:absolute; left:0; right:0; top:17px; height:2px;
  background:repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 15px);
}
.dark .route-line{background:repeating-linear-gradient(90deg, var(--line-dark) 0 8px, transparent 8px 15px);}
.route-stops{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.stop{display:flex;flex-direction:column;gap:16px;}
.stop-dot{
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:12px;color:var(--white);
  border:3px solid var(--paper);
}
.dark .stop-dot{border-color:var(--navy-950);}
.stop-dot.p-orange{background:var(--orange-500);}
.stop-dot.p-gray{background:var(--slate-300);color:var(--navy-950);}
.stop-dot.p-navy{background:var(--navy-700);}
.stop-dot.p-green{background:var(--green-600);}
.stop h4{font-size:18px;}
.stop p{color:var(--slate-500);font-size:15px;margin-top:6px;}
.dark .stop p{color:var(--slate-300);}

/* ================= MANIFEST (replaces card grids) ================= */
.manifest{border-top:1px solid var(--line);}
.dark .manifest{border-color:var(--line-dark);}
.manifest-row{
  display:grid; grid-template-columns:64px 1fr 1.4fr; gap:32px;
  padding:30px 0; border-bottom:1px solid var(--line);
  align-items:baseline;
}
.dark .manifest-row{border-color:var(--line-dark);}
.manifest-index{font-family:var(--mono);font-size:13px;color:var(--orange-600);}
.dark .manifest-index{color:var(--amber-300);}
.manifest-row h3{font-size:19px;font-weight:600;font-family:var(--display);}
.manifest-row p{color:var(--slate-500);font-size:15.5px;}
.dark .manifest-row p{color:var(--slate-300);}

/* ================= PATHS (two-audience split) ================= */
.paths{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch;}
.path-card{
  padding:42px 38px 36px; border-radius:6px; position:relative; overflow:hidden;
  display:flex; flex-direction:column; min-height:420px;
}
.path-card.p-navy{background-color:var(--navy-950);color:var(--white);}
.path-card.p-orange{background-color:var(--orange-500);color:var(--white);}
.path-tag{
  font-family:var(--mono); font-size:12.5px; letter-spacing:0.08em;
  display:inline-flex; padding:6px 12px; border-radius:20px;
  border:1px solid rgba(255,255,255,0.4); width:max-content; margin-bottom:22px;
}
.path-card h3{
  font-size:clamp(25px,2.3vw,30px);line-height:1.08;color:var(--white);max-width:470px;
}
.path-card p{
  margin-top:14px;margin-bottom:28px;font-size:16px;line-height:1.52;max-width:440px;opacity:0.9;
}
.path-card .btn{
  margin-top:auto;padding:15px 24px;min-height:52px;line-height:1.2;
  justify-content:center;align-self:flex-start;
}
.path-card .btn-in-card{
  background:var(--white); color:var(--navy-950);
  width:max-content;
}
.path-card .btn-in-card:hover{background:var(--paper);}
@media (max-width:900px){
  .paths{grid-template-columns:1fr;}
  .path-card{min-height:390px;}
}

/* ================= Market chips (scales to any number of markets) ================= */
.market-chips{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px;}
.market-chip{
  display:flex;align-items:center;gap:10px;padding:13px 22px;border-radius:30px;
  border:1px solid var(--line-dark); font-family:var(--display);font-weight:500;font-size:15.5px;
  color:var(--white);
}
.market-chip .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.market-chip.active{border-color:var(--green-400);background:rgba(92,179,125,0.1);}
.market-chip .tag{font-family:var(--mono);font-size:11px;color:var(--slate-300);letter-spacing:0.04em;}

/* ================= STAT BAR (credibility strip) ================= */
.stat-bar{
  background:var(--paper);
  padding:62px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stat-bar-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  text-align:center;
}
.stat-bar-item{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:126px;
  padding:12px 30px;
}
.stat-bar-item + .stat-bar-item{border-left:1px solid var(--line);}
.stat-bar-item::before{
  content:"";
  width:28px;
  height:2px;
  margin-bottom:5px;
  background:var(--orange-500);
}
.stat-bar-item .num{
  width:100%;
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(42px,4vw,56px);
  line-height:1;
  color:var(--navy-950);
  letter-spacing:-0.035em;
  text-align:center;
}
.stat-bar-item .label{
  max-width:180px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:0.075em;
  color:var(--slate-500);
  text-transform:uppercase;
  line-height:1.45;
  text-align:center;
}
@media (max-width:760px){
  .stat-bar{padding:42px 0;}
  .stat-bar-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .stat-bar-item{min-height:132px;padding:20px 16px;}
  .stat-bar-item + .stat-bar-item{border-left:0;}
  .stat-bar-item:nth-child(even){border-left:1px solid var(--line);}
  .stat-bar-item:nth-child(n+3){border-top:1px solid var(--line);}
}

/* ================= US MAP ================= */
.us-map{width:100%;height:auto;}
.us-map .state{fill:var(--paper-dim);stroke:var(--paper);stroke-width:1.4;}
.dark .us-map .state{fill:rgba(255,255,255,0.08);stroke:var(--navy-950);}
.us-map .state.is-active{fill:var(--navy-800);}
.dark .us-map .state.is-active{fill:var(--slate-300);}
.us-map .state.is-next{fill:var(--orange-500);}
.map-legend{display:flex;gap:28px;margin-top:24px;flex-wrap:wrap;}
.map-legend .legend{font-family:var(--display);font-weight:500;font-size:14.5px;}
.map-legend .dot{width:13px;height:13px;border-radius:3px;}

/* ================= Partner card (real partners only) ================= */
.partner-card{
  background:var(--white);border:1px solid var(--line);border-radius:4px;
  padding:36px; display:flex; flex-direction:column; gap:10px; min-height:150px;
  justify-content:center;
}
.partner-card .partner-name{font-family:var(--display);font-weight:700;font-size:26px;color:var(--navy-950);}
.partner-card .partner-tag{font-family:var(--mono);font-size:11.5px;color:var(--orange-600);letter-spacing:0.05em;}
.partner-card.placeholder{
  border-style:dashed; align-items:center; justify-content:center; text-align:center;
}
.partner-card.placeholder .partner-name{color:var(--slate-300);font-size:16px;font-weight:500;font-family:var(--body);}
.dark .partner-card{background:rgba(255,255,255,0.05);border-color:var(--line-dark);}
.dark .partner-card .partner-name{color:var(--white);}
.dark .partner-card.placeholder .partner-name{color:var(--slate-300);}

/* ================= CLOSING CTA (bold centered, pill buttons) ================= */
.cta-close{background-color:var(--navy-950);color:var(--white);padding:130px 0;text-align:center;}
.cta-close .coord{justify-content:center;}
.cta-close h2{font-size:clamp(38px,6.4vw,68px);margin-top:20px;color:var(--white);}
.cta-close p{margin:22px auto 0;max-width:600px;color:var(--slate-300);font-size:18px;}
.cta-close-actions{display:flex;gap:16px;justify-content:center;margin-top:42px;flex-wrap:wrap;}
.btn-pill{border-radius:32px;padding:15px 30px;font-size:15px;}
.btn-pill-primary{background:var(--orange-500);color:var(--white);}
.btn-pill-primary:hover{background:var(--orange-600);}
.btn-pill-outline{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.45);}
.btn-pill-outline:hover{border-color:var(--white);}

/* ================= MOTION SYSTEM ================= */
@keyframes heroIn{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.hero-anim > *{animation:heroIn .8s cubic-bezier(.16,1,.3,1) both;}
.hero-anim > *:nth-child(1){animation-delay:.02s;}
.hero-anim > *:nth-child(2){animation-delay:.12s;}
.hero-anim > *:nth-child(3){animation-delay:.24s;}
.hero-anim > *:nth-child(4){animation-delay:.36s;}
.hero-anim > *:nth-child(5){animation-delay:.46s;}

.stat-bar-item,.manifest-row,.stop,.path-card,.partner-card,.market-chip,.panel{
  opacity:0; transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
}
.stat-bar-item.is-visible,.manifest-row.is-visible,.stop.is-visible,.path-card.is-visible,
.partner-card.is-visible,.market-chip.is-visible,.panel.is-visible{
  opacity:1; transform:translateY(0);
}
.stat-bar-grid>*:nth-child(1),.route-stops>*:nth-child(1),.paths>*:nth-child(1),.market-chips>*:nth-child(1),.manifest>*:nth-child(1){transition-delay:.02s}
.stat-bar-grid>*:nth-child(2),.route-stops>*:nth-child(2),.paths>*:nth-child(2),.market-chips>*:nth-child(2),.manifest>*:nth-child(2){transition-delay:.09s}
.stat-bar-grid>*:nth-child(3),.route-stops>*:nth-child(3),.market-chips>*:nth-child(3),.manifest>*:nth-child(3){transition-delay:.16s}
.stat-bar-grid>*:nth-child(4),.route-stops>*:nth-child(4),.market-chips>*:nth-child(4),.manifest>*:nth-child(4){transition-delay:.23s}
.stat-bar-grid>*:nth-child(5),.market-chips>*:nth-child(5),.manifest>*:nth-child(5){transition-delay:.30s}
.stat-bar-grid>*:nth-child(6),.manifest>*:nth-child(6){transition-delay:.37s}

.path-card{transition:transform .3s ease, box-shadow .3s ease, opacity .7s cubic-bezier(.16,1,.3,1), translate .7s;}
.path-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -12px rgba(0,0,0,0.35);}
.market-chip{transition:transform .2s ease, border-color .2s ease, opacity .7s, translate .7s;}
.market-chip:hover{transform:translateY(-2px);border-color:var(--orange-500);}

@media (prefers-reduced-motion: reduce){
  .hero-anim > *{animation:none;opacity:1;}
  .stat-bar-item,.manifest-row,.stop,.path-card,.partner-card,.market-chip,.panel{opacity:1;transform:none;transition:none;}
}

/* ================= Depth: glow + grain ================= */
.glow{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;}
.grain{position:absolute;inset:0;opacity:0.05;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ================= Bracket index (manifest) ================= */
.manifest-index{font-family:var(--mono);font-size:16px;font-weight:500;color:var(--orange-600);}
.dark .manifest-index{color:var(--amber-300);}

/* ================= PHOTO BACKGROUND + BRAND DUOTONE OVERLAY =================
   Usage: add class="photo-bg" to a section/card, set the photo via inline style
   background-image:url('...'); the two tint layers below apply the brand
   color treatment automatically on top of whatever photo is set. */
.photo-bg{position:relative;background-size:cover;background-position:center 28%;overflow:hidden;}
.photo-bg .tint-a{position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(165deg, rgba(8,18,38,0.94) 10%, rgba(8,18,38,0.6) 55%, rgba(8,18,38,0.85) 100%);
  mix-blend-mode:multiply;}
.photo-bg .tint-b{position:absolute;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(circle at 78% 15%, rgba(47,111,196,0.55), transparent 60%);
  mix-blend-mode:screen;}
.photo-bg.tint-orange .tint-a{background:linear-gradient(165deg, rgba(23,78,139,0.92) 10%, rgba(23,78,139,0.55) 55%, rgba(8,18,38,0.55) 100%);}
.photo-bg.tint-orange .tint-b{background:radial-gradient(circle at 20% 85%, rgba(8,18,38,0.55), transparent 60%);}
.photo-bg > .wrap, .photo-bg > .path-tag, .photo-bg > h3, .photo-bg > p, .photo-bg > .btn,
.photo-bg .section-head, .photo-bg .market-chips{position:relative;z-index:2;}

/* Neutral placeholder pattern — swap out via inline background-image when a real photo exists */
.photo-placeholder{
  background-color:#1a2540;
  background-image:
    repeating-linear-gradient(135deg, rgba(255,255,255,0.035) 0 2px, transparent 2px 26px);
}

/* ================= Legend chip ================= */
.legend{display:flex;align-items:center;gap:10px;font-size:14.5px;}
.legend .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}

/* ---------- Stat ---------- */
.stat{border-left:2px solid var(--orange-500);padding-left:16px;}
.stat .num{font-family:var(--display);font-size:36px;font-weight:600;}
.stat .label{font-family:var(--mono);font-size:11.5px;color:var(--slate-500);text-transform:uppercase;letter-spacing:0.04em;margin-top:4px;}
.dark .stat .label{color:var(--slate-300);}

/* ---------- Simple bordered panel (used sparingly: markets/contact only) ---------- */
.panel{
  background:var(--white);border:1px solid var(--line);border-radius:4px;
  padding:30px;
}
.dark .panel{background:rgba(255,255,255,0.04);border-color:var(--line-dark);}

/* ---------- Grid helpers ---------- */
.grid{display:grid;gap:28px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}

/* ---------- Footer ---------- */
footer{background:var(--navy-950);color:var(--slate-300);padding:64px 0 28px;}
footer .foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid var(--line-dark);}
footer h4{color:var(--white);font-size:14px;font-family:var(--mono);letter-spacing:0.04em;margin-bottom:14px;}
footer .foot-links a{display:block;color:var(--slate-300);text-decoration:none;font-size:14.5px;margin-bottom:10px;}
footer .foot-links a:hover{color:var(--white);}
.foot-legal{padding-top:24px;font-size:12.5px;color:var(--slate-500);line-height:1.7;font-family:var(--mono);}
.foot-bottom{display:flex;justify-content:space-between;padding-top:20px;font-size:13px;color:var(--slate-500);flex-wrap:wrap;gap:10px;}

/* ---------- Form ---------- */
.field label{font-family:var(--mono);font-size:11.5px;letter-spacing:0.04em;color:var(--slate-500);}
.dark .field label{color:var(--slate-300);}
.field input{
  width:100%;margin-top:7px;padding:12px;border-radius:3px;
  border:1px solid var(--line);background:var(--white);font-family:var(--body);font-size:15px;
}
.dark .field input{border-color:rgba(255,255,255,0.2);background:rgba(255,255,255,0.06);color:var(--white);}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .route-stops{grid-template-columns:1fr 1fr;row-gap:32px;}
  .route-line{display:none;}
  .manifest-row{grid-template-columns:40px 1fr;}
  .manifest-row > p{grid-column:1 / -1;}
  .nav-links a:not(.btn){display:none;}
  section{padding:64px 0;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation:none !important;transition:none !important;}
}



/* ================= CTA MODALS ================= */
body.modal-open{overflow:hidden;}
.lead-modal{
  width:min(760px,calc(100vw - 32px));max-height:min(88vh,860px);padding:0;
  border:0;border-radius:12px;background:var(--paper);color:var(--navy-950);
  box-shadow:0 32px 90px rgba(0,0,0,.45);overflow:hidden;
}
.lead-modal::backdrop{background:rgba(4,10,22,.78);backdrop-filter:blur(7px);}
.lead-modal[open]{animation:modalIn .26s cubic-bezier(.16,1,.3,1) both;}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.modal-shell{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:min(88vh,860px);}
.modal-head{
  position:relative;padding:30px 72px 25px 32px;background:var(--navy-950);color:var(--white);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.modal-head .coord{color:var(--amber-300);}
.modal-head h2{font-size:clamp(28px,4vw,38px);margin-top:10px;color:var(--white);}
.modal-head p:not(.coord){max-width:580px;margin-top:10px;color:var(--slate-300);font-size:15.5px;}
.modal-close{
  position:absolute;right:22px;top:22px;width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,255,255,.24);background:transparent;color:var(--white);
  font-size:25px;line-height:1;cursor:pointer;display:grid;place-items:center;
}
.modal-close:hover{background:rgba(255,255,255,.1);}
.modal-body{padding:28px 32px 32px;overflow:auto;overscroll-behavior:contain;}
.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;}
.form-field{display:flex;flex-direction:column;gap:7px;}
.form-field.full{grid-column:1/-1;}
.form-field label,.form-check label{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.045em;color:var(--slate-500);
  text-transform:uppercase;
}
.form-field input,.form-field select,.form-field textarea{
  width:100%;border:1px solid var(--line);border-radius:5px;background:var(--white);
  color:var(--navy-950);font:500 15px/1.35 var(--body);padding:13px 14px;outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.form-field textarea{min-height:110px;resize:vertical;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  border-color:var(--orange-500);box-shadow:0 0 0 3px rgba(47,111,196,.14);
}
.form-field input::placeholder,.form-field textarea::placeholder{color:#8a96a8;}
.form-field input[type="file"]{padding:9px 10px;background:var(--paper);cursor:pointer;}
.form-field input[type="file"]::file-selector-button{
  border:0;border-radius:4px;background:var(--navy-950);color:var(--white);
  padding:10px 13px;margin-right:12px;font:600 13px/1 var(--body);cursor:pointer;
}
.form-field input[type="file"]::file-selector-button:hover{background:var(--navy-800);}
.form-help{font-size:12px;color:var(--slate-500);line-height:1.4;}
.form-check{grid-column:1/-1;display:flex;align-items:flex-start;gap:10px;padding-top:2px;}
.form-check input{margin-top:3px;accent-color:var(--orange-500);}
.form-check label{text-transform:none;font-family:var(--body);font-size:13px;letter-spacing:0;line-height:1.45;}
.modal-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:6px;}
.modal-actions .btn{border:0;}
.form-status{font-size:13px;color:var(--slate-500);max-width:390px;}
.required-mark{color:var(--orange-600);}
@media(max-width:680px){
  .lead-modal{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0;}
  .modal-shell{height:100dvh;max-height:none;}
  .modal-head{padding:24px 64px 20px 22px;}
  .modal-close{right:15px;top:15px;}
  .modal-body{padding:22px;}
  .modal-grid{grid-template-columns:1fr;gap:16px;}
  .form-field.full,.form-check,.modal-actions{grid-column:1;}
  .modal-actions{align-items:stretch;flex-direction:column-reverse;}
  .modal-actions .btn{width:100%;justify-content:center;}
}


/* =====================================================================
   VISUAL SYSTEM V3
   Original layout retained. Cooler, cleaner palette and approved type.
   ===================================================================== */

:root{
  --navy-950:#07162D;
  --navy-900:#0B2342;
  --navy-800:#123D74;
  --navy-700:#1B568F;

  --paper:#FFFFFF;
  --paper-dim:#F3F6F9;
  --white:#FFFFFF;

  --orange-500:#2F6FC4;
  --orange-600:#174E8B;
  --amber-300:#8CB4DF;

  --green-600:#38875F;
  --green-400:#63A67F;

  --slate-500:#637083;
  --slate-300:#AAB8C9;
  --line:#DCE2E8;
  --line-dark:rgba(255,255,255,.15);

  --display:'Inter Tight',sans-serif;
  --body:'Inter',sans-serif;
  --mono:'Inter',sans-serif;

  --maxw:1180px;
}

body{
  background:var(--white);
  color:var(--navy-950);
}

h1,h2,h3,h4{
  letter-spacing:-.035em;
}

.coord,
.brand span,
.stat-bar-item .label,
.manifest-index,
.market-chip .tag,
.path-tag,
footer h4,
.foot-legal,
.form-field label,
.form-check label,
.field label{
  font-family:var(--body);
  font-weight:700;
}

.coord{
  font-size:11px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--orange-600);
}

.dark .coord,
.modal-head .coord{
  color:#BFD3EA;
}

/* Header: white instead of cream */
.site-header{
  background:rgba(255,255,255,.93);
  border-bottom-color:var(--line);
  box-shadow:0 1px 0 rgba(7,22,45,.025);
}

.brand span{
  font-size:10px;
  letter-spacing:.12em;
}

.nav-links a{
  font-family:var(--body);
  font-weight:650;
}

.nav-links a[aria-current="page"]{
  color:var(--navy-800);
}

.nav-links a:not(.btn)::after{
  background:var(--navy-800);
}

/* CTAs: blue is now the principal action; orange is only a signal color */
.btn{
  font-family:var(--body);
  font-weight:700;
  border-radius:4px;
}

.btn-primary,
.btn-pill-primary{
  background:var(--navy-800);
  color:var(--white);
}

.btn-primary:hover,
.btn-pill-primary:hover{
  background:var(--navy-700);
}

.btn-on-dark{
  background:var(--navy-800);
  color:var(--white);
}

.btn-on-dark:hover{
  background:var(--navy-700);
}

.btn-ghost{
  border-color:var(--navy-800);
  color:var(--navy-800);
}

.btn-ghost:hover{
  background:var(--navy-800);
}

:focus-visible{
  outline-color:var(--navy-700);
}

/* Hero: original composition, cooler and more restrained */
.hero{
  background:
    radial-gradient(circle at 83% 26%,rgba(27,86,143,.23),transparent 30%),
    var(--navy-950);
}

.hero::before{
  background:linear-gradient(90deg,
    rgba(7,22,45,.99) 0%,
    rgba(7,22,45,.94) 31%,
    rgba(7,22,45,.54) 55%,
    rgba(7,22,45,.08) 78%);
}

.hero-copy .display-xl{
  letter-spacing:-.055em;
  font-weight:700;
}

.hero-copy-text{
  color:#B8C4D3;
}

.hero-route-scene{
  filter:drop-shadow(0 30px 55px rgba(0,0,0,.16));
}

.fm-route{
  stroke:#5A8FCA;
}

.fm-pin-ring{
  stroke:#5A8FCA;
}

.hero-route-road{
  stroke:rgba(196,215,235,.23);
}

.hero-route-road.faint{
  stroke:rgba(196,215,235,.11);
}

.fm-grid line{
  stroke:rgba(188,208,230,.055);
}

.fm-label{
  font-family:var(--body);
  font-weight:700;
  letter-spacing:.08em;
}

/* Statistics: fully white and cleaner */
.stat-bar{
  background:var(--white);
}

.stat-bar-item::before{
  background:var(--navy-700);
}

.stat-bar-item .num{
  color:var(--navy-800);
}

.stat-bar-item .label{
  font-size:10.5px;
  letter-spacing:.12em;
}

/* Main content rhythm */
section:not(.hero):not(.dark):not(.cta-close){
  background:var(--white);
}

.section-head h2,
.display-xl,
.cta-close h2{
  font-family:var(--display);
}

.section-head p,
.manifest-row p,
.stop p{
  color:var(--slate-500);
}

.manifest-index{
  color:var(--navy-700);
  font-size:13px;
  letter-spacing:.08em;
}

.manifest-row{
  border-bottom-color:var(--line);
}

/* Audience cards: two shades of blue, no orange slab */
.path-card{
  border-radius:5px;
  box-shadow:none;
}

.path-card.p-navy{
  background:var(--navy-950);
}

.path-card.p-orange{
  background:var(--navy-800);
}

.path-card:hover{
  box-shadow:0 18px 36px -18px rgba(7,22,45,.35);
}

.path-tag{
  font-size:10.5px;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.path-card .btn-in-card:hover{
  background:var(--paper-dim);
}

/* Photos: blue brand treatment rather than orange-heavy overlays */
.photo-bg .tint-a{
  background:linear-gradient(165deg,
    rgba(7,22,45,.95) 8%,
    rgba(11,35,66,.69) 56%,
    rgba(7,22,45,.89) 100%);
}

.photo-bg .tint-b{
  background:radial-gradient(circle at 78% 15%,
    rgba(27,86,143,.40),
    transparent 61%);
  mix-blend-mode:screen;
}

.photo-bg.tint-orange .tint-a{
  background:linear-gradient(165deg,
    rgba(18,61,116,.91) 8%,
    rgba(18,61,116,.61) 56%,
    rgba(7,22,45,.70) 100%);
}

.photo-bg.tint-orange .tint-b{
  background:radial-gradient(circle at 20% 85%,
    rgba(7,22,45,.44),
    transparent 60%);
}

.market-chip:hover{
  border-color:#8CB2D9;
}

/* Closing section: clean navy with blue primary action */
.cta-close{
  background:var(--navy-950);
}

.btn-pill{
  border-radius:4px;
}

/* Footer */
footer{
  background:#051226;
}

footer h4{
  font-size:10px;
  letter-spacing:.14em;
}

/* Forms: white surfaces and blue states */
.lead-modal{
  background:var(--white);
  border-radius:8px;
}

.modal-head{
  background:var(--navy-950);
}

.form-field input,
.form-field select,
.form-field textarea{
  background:var(--white);
  border-color:var(--line);
  border-radius:4px;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:var(--navy-700);
  box-shadow:0 0 0 3px rgba(27,86,143,.13);
}

.form-field input[type="file"]{
  background:var(--paper-dim);
}

.form-field input[type="file"]::file-selector-button{
  background:var(--navy-800);
}

.form-field input[type="file"]::file-selector-button:hover{
  background:var(--navy-700);
}

.form-check input{
  accent-color:var(--navy-800);
}

.required-mark{
  color:var(--orange-600);
}

/* Remove the remaining cream-toned visual residue */
.panel,
.partner-card{
  background:var(--white);
}

.us-map .state{
  fill:var(--paper-dim);
  stroke:var(--white);
}

.stop-dot{
  border-color:var(--white);
}

@media(max-width:920px){
  .hero::before{
    background:linear-gradient(90deg,rgba(7,22,45,.99),rgba(7,22,45,.88));
  }
}


/* =====================================================================
   V4 — FULL-BLEED PHOTO HERO + TRANSPARENT / STICKY HEADER
   ===================================================================== */

/* No orange anywhere: blue is the only action/accent family. */
:root{
  --orange-500:#2F6FC4;
  --orange-600:#174E8B;
  --amber-300:#8CB4DF;
}

/* Header overlays the hero at the top. */
.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:80;
  background:transparent;
  border-bottom:1px solid transparent;
  box-shadow:none;
  backdrop-filter:none;
  transition:
    background .28s ease,
    box-shadow .28s ease,
    border-color .28s ease,
    backdrop-filter .28s ease;
}

.site-header .wrap{
  padding-top:20px;
  padding-bottom:20px;
  transition:padding .28s ease;
}

.site-header .brand img{
  height:46px;
  filter:brightness(0) invert(1);
  transition:filter .28s ease,height .28s ease;
}

.site-header .brand span{
  color:rgba(255,255,255,.76);
  border-left-color:rgba(255,255,255,.28);
  transition:color .28s ease,border-color .28s ease;
}

.site-header .nav-links a{
  color:rgba(255,255,255,.94);
  text-shadow:0 1px 15px rgba(0,0,0,.24);
  transition:color .28s ease,text-shadow .28s ease;
}

.site-header .nav-links a[aria-current="page"]{
  color:#FFFFFF;
}

.site-header .nav-links a:not(.btn)::after{
  background:#FFFFFF;
}

.site-header .header-actions > .btn-primary{
  background:rgba(255,255,255,.06);
  color:#FFFFFF;
  border-color:rgba(255,255,255,.52);
  backdrop-filter:blur(8px);
}

.site-header .header-actions > .btn-primary:hover{
  background:#FFFFFF;
  color:var(--navy-900);
  border-color:#FFFFFF;
}

/* White sticky state after leaving the top of the page. */
.site-header.is-scrolled{
  background:rgba(255,255,255,.96);
  border-bottom-color:var(--line);
  box-shadow:0 10px 30px rgba(7,22,45,.08);
  backdrop-filter:blur(14px);
}

.site-header.is-scrolled .wrap{
  padding-top:12px;
  padding-bottom:12px;
}

.site-header.is-scrolled .brand img{
  height:40px;
  filter:none;
}

.site-header.is-scrolled .brand span{
  color:var(--slate-500);
  border-left-color:var(--line);
}

.site-header.is-scrolled .nav-links a{
  color:var(--navy-800);
  text-shadow:none;
}

.site-header.is-scrolled .nav-links a[aria-current="page"]{
  color:var(--navy-950);
}

.site-header.is-scrolled .nav-links a:not(.btn)::after{
  background:var(--navy-700);
}

.site-header.is-scrolled .header-actions > .btn-primary{
  background:var(--navy-800);
  color:#FFFFFF;
  border-color:var(--navy-800);
  backdrop-filter:none;
}

.site-header.is-scrolled .header-actions > .btn-primary:hover{
  background:var(--navy-700);
  border-color:var(--navy-700);
  color:#FFFFFF;
}

/* Full-screen photographic hero inspired by the supplied reference. */
.hero.photo-hero{
  min-height:clamp(720px,92vh,940px);
  padding:0;
  display:flex;
  align-items:center;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-color:var(--navy-950);
  background-image:
    linear-gradient(90deg,
      rgba(5,18,38,.94) 0%,
      rgba(5,18,38,.84) 31%,
      rgba(5,18,38,.48) 57%,
      rgba(5,18,38,.18) 100%),
    linear-gradient(180deg,rgba(5,18,38,.10),rgba(5,18,38,.30)),
    var(--hero-photo);
  background-size:cover;
  background-position:center 49%;
}

.hero.photo-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at 73% 38%,rgba(47,111,196,.10),transparent 30%),
    linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.22));
  pointer-events:none;
}

.hero.photo-hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:rgba(255,255,255,.18);
}

.hero.photo-hero .hero-wrap{
  width:min(var(--maxw),calc(100% - 64px));
  max-width:none;
  margin:0 auto;
  padding:170px 0 108px;
  position:relative;
  z-index:2;
}

.hero.photo-hero .hero-copy{
  max-width:700px;
}

.hero.photo-hero .hero-pill{
  width:max-content;
  padding:11px 17px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:999px;
  color:#FFFFFF;
  background:rgba(5,18,38,.42);
  backdrop-filter:blur(10px);
  letter-spacing:.11em;
}

.hero.photo-hero .display-xl{
  max-width:720px;
  margin-top:30px;
  color:#FFFFFF;
  font-size:clamp(58px,6vw,88px);
  line-height:.94;
  letter-spacing:-.058em;
  text-shadow:0 3px 30px rgba(0,0,0,.22);
}

.hero.photo-hero .display-xl em{
  color:#CBD7E5;
  font-style:italic;
  font-weight:400;
}

.hero.photo-hero .hero-copy-text{
  max-width:610px;
  margin-top:28px;
  color:rgba(255,255,255,.78);
  font-size:18px;
  line-height:1.68;
  text-shadow:0 2px 22px rgba(0,0,0,.20);
}

.hero.photo-hero .hero-actions{
  margin-top:36px;
}

.hero.photo-hero .hero-actions .btn-primary{
  background:var(--navy-700);
  color:#FFFFFF;
  border-color:var(--navy-700);
  min-width:180px;
}

.hero.photo-hero .hero-actions .btn-primary:hover{
  background:#2F6FC4;
  border-color:#2F6FC4;
}

.hero.photo-hero .hero-actions .btn-ghost-dark{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.55);
  color:#FFFFFF;
  min-width:165px;
  backdrop-filter:blur(7px);
}

.hero.photo-hero .hero-actions .btn-ghost-dark:hover{
  background:#FFFFFF;
  color:var(--navy-950);
}

/* Blue-only accents across the remainder of the site. */
.stat-bar-item::before,
.stop-dot.p-orange{
  background:var(--navy-700);
}

.manifest-index,
.required-mark{
  color:var(--navy-700);
}

.fm-route{
  stroke:var(--navy-700);
}

.fm-pin-ring{
  stroke:#5A8FCA;
}

@media(max-width:920px){
  .hero.photo-hero{
    min-height:760px;
    background-position:69% center;
    background-image:
      linear-gradient(90deg,
        rgba(5,18,38,.96) 0%,
        rgba(5,18,38,.84) 55%,
        rgba(5,18,38,.43) 100%),
      var(--hero-photo);
  }

  .hero.photo-hero .hero-wrap{
    width:min(var(--maxw),calc(100% - 48px));
    padding:150px 0 88px;
  }

  .hero.photo-hero .hero-copy{
    max-width:650px;
  }
}

@media(max-width:700px){
  .site-header .wrap{
    padding-top:14px;
    padding-bottom:14px;
  }

  .site-header .brand img{
    height:38px;
  }

  .site-header .brand span{
    display:none;
  }

  .site-header.is-scrolled .brand img{
    height:34px;
  }

  .hero.photo-hero{
    min-height:720px;
    background-position:72% center;
    background-image:
      linear-gradient(90deg,
        rgba(5,18,38,.97) 0%,
        rgba(5,18,38,.88) 66%,
        rgba(5,18,38,.58) 100%),
      var(--hero-photo);
  }

  .hero.photo-hero .hero-wrap{
    width:calc(100% - 36px);
    padding:132px 0 72px;
  }

  .hero.photo-hero .display-xl{
    font-size:clamp(48px,14vw,62px);
  }

  .hero.photo-hero .hero-copy-text{
    font-size:16px;
  }

  .hero.photo-hero .hero-pill{
    font-size:9px;
    padding:9px 13px;
  }
}


/* ==============================================================
   V6 — CORRECT PHOTOGRAPHIC FRAMING
   ============================================================== */

/*
  The neighborhood photo is very wide once used as a full section.
  Move the crop downward so the street and foreground remain visible,
  instead of spending most of the frame on the sky.
*/
.markets-photo-section{
  min-height:680px;
  display:flex;
  align-items:center;
  background-size:cover;
  background-position:center 76%;
}

/*
  Both audience photographs are native 4:3 images.
  Giving the cards the same ratio prevents the browser from cutting off
  faces, bodies, or the residential context.
*/
.paths{
  align-items:start;
}

.path-card.provider-path-card,
.path-card.career-path-card{
  aspect-ratio:4 / 3;
  min-height:0;
  padding:40px 38px 34px;
  background-size:cover;
  background-position:center center;
}

/* Slightly soften the overlays so the full photographs remain readable. */
.path-card.provider-path-card .tint-a,
.path-card.career-path-card .tint-a{
  background:linear-gradient(
    90deg,
    rgba(7,22,45,.91) 0%,
    rgba(7,22,45,.72) 47%,
    rgba(7,22,45,.34) 100%
  );
}

.path-card.provider-path-card .tint-b,
.path-card.career-path-card .tint-b{
  opacity:.42;
}

/* Responsive crops are intentional rather than inherited from the desktop. */
@media(max-width:900px){
  .markets-photo-section{
    min-height:620px;
    background-position:center 72%;
  }

  .path-card.provider-path-card,
  .path-card.career-path-card{
    aspect-ratio:4 / 3;
    min-height:0;
    background-position:center center;
  }
}

@media(max-width:600px){
  .markets-photo-section{
    min-height:660px;
    background-position:42% 78%;
  }

  .path-card.provider-path-card,
  .path-card.career-path-card{
    aspect-ratio:auto;
    min-height:500px;
    background-position:center center;
  }
}


/* ==============================================================
   V7 — BUTTON ALIGNMENT + LIGHTER CLOSING PHOTO
   ============================================================== */

/* Center every CTA label both horizontally and vertically. */
.btn{
  justify-content:center;
  text-align:center;
  line-height:1.2;
}

/*
  The original rule used padding-top to push card buttons downward,
  which also pushed the text off-center inside the button.
*/
.path-card .btn{
  margin-top:auto;
  padding:0 28px;
  min-height:64px;
  min-width:218px;
  align-self:flex-start;
}

.cta-close-actions .btn{
  min-width:205px;
  min-height:62px;
  padding:0 28px;
}

/*
  The source door photograph is already clear enough.
  The problem was the very heavy navy treatment above it.
*/
.cta-close{
  background-position:center center;
}

.cta-close .tint-a{
  background:linear-gradient(
    90deg,
    rgba(5,18,38,.54) 0%,
    rgba(5,18,38,.43) 50%,
    rgba(5,18,38,.54) 100%
  );
  mix-blend-mode:multiply;
}

.cta-close .tint-b{
  background:radial-gradient(
    circle at 65% 45%,
    rgba(47,111,196,.18),
    transparent 62%
  );
  opacity:.5;
}

.cta-close h2{
  text-shadow:0 3px 24px rgba(0,0,0,.25);
}

.cta-close p{
  color:rgba(255,255,255,.82);
  text-shadow:0 2px 18px rgba(0,0,0,.24);
}

@media(max-width:600px){
  .path-card .btn,
  .cta-close-actions .btn{
    width:100%;
    min-width:0;
  }

  .cta-close .tint-a{
    background:rgba(5,18,38,.52);
  }
}


/* ==============================================================
   V8 — NEW CLOSING DOOR PHOTO + RESPONSIVE CTA
   ============================================================== */

.cta-close{
  min-height:650px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:112px 0;
  background-size:cover;
  background-position:center 50%;
}

/* Preserve the warm photograph while keeping the Telio blue treatment. */
.cta-close .tint-a{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.58) 0%,
      rgba(5,18,38,.47) 50%,
      rgba(5,18,38,.58) 100%
    );
  mix-blend-mode:multiply;
}

.cta-close .tint-b{
  background:
    radial-gradient(
      circle at 50% 47%,
      rgba(47,111,196,.16),
      transparent 58%
    );
  opacity:.58;
}

.cta-close > .wrap{
  width:min(1050px,calc(100% - 64px));
}

.cta-close h2{
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
}

.cta-close p{
  max-width:690px;
}

.cta-close-actions{
  align-items:center;
}

.cta-close-actions .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
}

@media(max-width:900px){
  .cta-close{
    min-height:610px;
    padding:92px 0;
    background-position:center center;
  }

  .cta-close > .wrap{
    width:min(100% - 48px,780px);
  }

  .cta-close h2{
    font-size:clamp(43px,8vw,62px);
  }
}

@media(max-width:600px){
  .cta-close{
    min-height:650px;
    padding:76px 0;
    background-position:50% center;
  }

  .cta-close .tint-a{
    background:rgba(5,18,38,.56);
  }

  .cta-close > .wrap{
    width:calc(100% - 36px);
  }

  .cta-close h2{
    font-size:clamp(40px,12vw,54px);
    line-height:.98;
  }

  .cta-close p{
    font-size:16px;
    line-height:1.6;
  }

  .cta-close-actions{
    width:min(100%,340px);
    margin-left:auto;
    margin-right:auto;
    flex-direction:column;
  }

  .cta-close-actions .btn{
    width:100%;
    min-width:0;
  }
}


/* ==============================================================
   V9 — MOBILE PHOTOGRAPHIC FRAMING
   ============================================================== */

/*
  HERO:
  On narrow screens the previous crop placed the representative behind
  the headline and left only the door visible. Moving the focal point
  left places the representative in the open right-hand area.
*/
@media(max-width:700px){
  .hero.photo-hero{
    background-position:52% center;
  }
}

/*
  MARKETS:
  The street is located on the left side of the source photograph.
  The old mobile crop centered the rooftops, so the street disappeared.
*/
@media(max-width:900px){
  .markets-photo-section{
    background-position:27% center;
  }
}

@media(max-width:600px){
  .markets-photo-section{
    background-position:14% center;
  }
}


/* ==============================================================
   PREVIEW-SAFE / IN-APP BROWSER FALLBACKS
   Content is visible by default. Motion and fixed-header behavior
   are enabled only after the corresponding JavaScript initializes.
   ============================================================== */

/* Actual supplied logos, cropped and optimized. */
.brand-logo-stack{position:relative;display:block;width:124px;aspect-ratio:1.72/1;flex:0 0 auto}
.brand-logo{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain;object-position:left center;filter:none!important;margin:0!important}
.brand-logo-blue{opacity:0}
.site-header.is-scrolled .brand-logo-white{opacity:0}
.site-header.is-scrolled .brand-logo-blue{opacity:1}
.footer-logo{width:150px;height:auto;object-fit:contain;margin-bottom:16px}

/* Do not keep the header floating over later sections unless JS is alive. */
.site-header{position:absolute}
.header-js .site-header{position:fixed}

/* Reveal elements are visible in file previews and browsers that block JS. */
.stat-bar-item,.manifest-row,.stop,.path-card,.partner-card,.market-chip,.panel{
  opacity:1;
  transform:none;
}
.motion-ready .stat-bar-item,
.motion-ready .manifest-row,
.motion-ready .stop,
.motion-ready .path-card,
.motion-ready .partner-card,
.motion-ready .market-chip,
.motion-ready .panel{
  opacity:0;
  transform:translateY(22px);
}
.motion-ready .stat-bar-item.is-visible,
.motion-ready .manifest-row.is-visible,
.motion-ready .stop.is-visible,
.motion-ready .path-card.is-visible,
.motion-ready .partner-card.is-visible,
.motion-ready .market-chip.is-visible,
.motion-ready .panel.is-visible{
  opacity:1;
  transform:translateY(0);
}

.no-js .hero-anim > *{animation:none!important;opacity:1!important;transform:none!important}

@media(max-width:700px){
  /* The hero already contains the conversion CTAs. Hide the duplicate header CTA. */
  .site-header .header-actions{display:none!important}
  .site-header .wrap{justify-content:flex-start;padding-left:22px;padding-right:22px}
  .brand-logo-stack{width:104px}
  .site-header.is-scrolled{background:rgba(255,255,255,.97)}
  .site-header.is-scrolled .brand-logo-stack{width:94px}

  /* Prevent oversized embedded logo rules from older versions. */
  .site-header .brand img,.site-header.is-scrolled .brand img{height:100%!important;width:100%!important}
}


/* ==============================================================
   LOGO HAIRLINE FIX
   A legacy .brand span rule was adding a left border and padding
   to the logo stack because the white/blue logo wrapper is a span.
   ============================================================== */
.brand > .brand-logo-stack{
  padding-left:0 !important;
  border-left:0 !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:none !important;
  letter-spacing:normal !important;
}
.brand > .brand-logo-stack::before,
.brand > .brand-logo-stack::after{
  content:none !important;
  display:none !important;
}


/* ==============================================================
   HOME HEADER CTA HIERARCHY
   Partner with us is always primary; Join the team is secondary.
   ============================================================== */
.header-cta-group{
  display:flex;
  align-items:center;
  gap:10px;
}
.site-header .header-secondary{
  min-height:46px;
  padding:0 18px;
  border:1px solid rgba(255,255,255,.52);
  background:rgba(255,255,255,.04);
  color:#fff;
  backdrop-filter:blur(8px);
}
.site-header .header-secondary:hover{
  background:#fff;
  border-color:#fff;
  color:var(--navy-900);
}
.site-header.is-scrolled .header-secondary{
  background:#fff;
  border-color:var(--navy-800);
  color:var(--navy-800);
  backdrop-filter:none;
}
.site-header.is-scrolled .header-secondary:hover{
  background:var(--navy-800);
  color:#fff;
}
@media(max-width:900px){
  .header-cta-group{gap:8px}
  .header-cta-group .btn{
    padding-left:15px;
    padding-right:15px;
    white-space:nowrap;
  }
}


/* ==============================================================
   HERO PROPORTION REFINEMENT
   Full-bleed, but no longer forced to occupy almost the entire screen.
   ============================================================== */
@media(min-width:921px){
  .hero.photo-hero{
    min-height:clamp(650px,78vh,800px);
  }

  .hero.photo-hero .hero-wrap{
    padding-top:128px;
    padding-bottom:76px;
  }

  .hero.photo-hero .display-xl{
    font-size:clamp(54px,5.15vw,78px);
    max-width:690px;
    margin-top:24px;
  }

  .hero.photo-hero .hero-copy-text{
    margin-top:22px;
    font-size:17px;
    line-height:1.64;
  }

  .hero.photo-hero .hero-actions{
    margin-top:30px;
  }
}

@media(max-width:920px){
  .hero.photo-hero{
    min-height:auto;
  }

  .hero.photo-hero .hero-wrap{
    padding-top:128px;
    padding-bottom:72px;
  }
}

@media(max-width:600px){
  .hero.photo-hero .hero-wrap{
    padding-top:116px;
    padding-bottom:62px;
  }
}


/* ==============================================================
   HOME — LOCKED NUMBERED SECTION TITLE SYSTEM
   Matches the original "Who We Are" section.
   ============================================================== */
.home-numbered-section{
  padding-top:104px !important;
  padding-bottom:104px !important;
}

.home-numbered-section > .wrap{
  max-width:var(--maxw);
  margin-left:auto;
  margin-right:auto;
  padding-left:32px;
  padding-right:32px;
}

.home-numbered-section .section-head{
  max-width:620px !important;
  margin-bottom:56px;
  text-align:left;
}

.home-numbered-section .section-head .coord{
  font-family:var(--body);
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#637083;
}

.home-numbered-section .section-head .coord .sep{
  color:#aab8c9;
}

.home-numbered-section .section-head h2{
  margin-top:16px !important;
  font-family:var(--display);
  font-size:clamp(34px,3.6vw,44px) !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
  color:var(--navy-950);
  text-align:left;
}

.home-numbered-section.dark .section-head .coord{
  color:#b7c8da;
}

.home-numbered-section.dark .section-head .coord .sep{
  color:#7f93aa;
}

.home-numbered-section.dark .section-head h2{
  color:#fff;
}

@media(max-width:900px){
  .home-numbered-section{
    padding-top:76px !important;
    padding-bottom:76px !important;
  }

  .home-numbered-section > .wrap{
    padding-left:24px;
    padding-right:24px;
  }
}

@media(max-width:600px){
  .home-numbered-section{
    padding-top:64px !important;
    padding-bottom:64px !important;
  }

  .home-numbered-section > .wrap{
    padding-left:18px;
    padding-right:18px;
  }

  .home-numbered-section .section-head{
    margin-bottom:38px;
  }

  .home-numbered-section .section-head h2{
    font-size:clamp(34px,10.5vw,44px) !important;
  }
}


/* ==============================================================
   MOTION & INTERACTION SYSTEM
   Progressive enhancement: content remains visible if JS is blocked.
   ============================================================== */

:root{
  --fx-ease:cubic-bezier(.16,1,.3,1);
  --fx-ease-soft:cubic-bezier(.22,1,.36,1);
}

/* Reveal states are applied only after JavaScript confirms support. */
.motionfx .fx-reveal{
  opacity:0;
  transform:translate3d(0,28px,0);
  transition:
    opacity .78s var(--fx-ease),
    transform .78s var(--fx-ease);
  transition-delay:var(--fx-delay,0ms);
  will-change:opacity,transform;
}

.motionfx .fx-left{
  transform:translate3d(-34px,0,0);
}

.motionfx .fx-right{
  transform:translate3d(34px,0,0);
}

.motionfx .fx-scale{
  transform:scale(.965);
}

.motionfx .fx-reveal.fx-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}

/* Hero entrance: fast, editorial, and intentionally restrained. */
.motionfx .hero .hero-pill,
.motionfx .p15-hero .hero-pill{
  animation:fxHeroUp .7s var(--fx-ease) both;
}

.motionfx .hero .display-xl,
.motionfx .p15-hero .display-xl{
  animation:fxHeroUp .9s .08s var(--fx-ease) both;
}

.motionfx .hero .hero-copy-text,
.motionfx .p15-hero .hero-copy-text{
  animation:fxHeroUp .85s .18s var(--fx-ease) both;
}

.motionfx .hero .hero-actions,
.motionfx .p15-hero .hero-actions{
  animation:fxHeroUp .8s .28s var(--fx-ease) both;
}

@keyframes fxHeroUp{
  from{opacity:0;transform:translate3d(0,24px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

/* Photographic sections receive a subtle depth cue on entry. */
.motionfx .fx-photo{
  overflow:hidden;
}

.motionfx .fx-photo::after{
  transition:opacity .8s var(--fx-ease);
}

/* Button interaction */
.btn{
  position:relative;
  overflow:hidden;
  transition:
    transform .24s var(--fx-ease),
    box-shadow .24s var(--fx-ease),
    background-color .24s ease,
    border-color .24s ease,
    color .24s ease;
}

.btn::after{
  content:"";
  position:absolute;
  top:-80%;
  left:-42%;
  width:28%;
  height:260%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
  transform:rotate(18deg) translateX(-220%);
  transition:transform .62s var(--fx-ease-soft);
  pointer-events:none;
}

/* Cards, rows, map and route elements */
.manifest-row,
.path-card,
.partner-card,
.market-chip,
.panel,
.p15-feature-grid > article,
.p15-status-grid > div,
.p15-compare > article,
.p15-route > article,
.p15-steps > article,
.stat-bar-item{
  transition:
    transform .28s var(--fx-ease),
    box-shadow .28s var(--fx-ease),
    background-color .28s ease,
    border-color .28s ease;
}

.p15-map img,
.market-map-figure img{
  transition:transform .65s var(--fx-ease);
  transform-origin:center center;
}

/* Route dots feel active without becoming decorative noise. */
.stop-dot,
.p15-route > article > span{
  transition:
    transform .28s var(--fx-ease),
    box-shadow .28s var(--fx-ease);
}

/* Navigation and footer link feedback */
.nav-links a,
.foot-links a{
  transition:
    color .2s ease,
    opacity .2s ease,
    transform .2s var(--fx-ease);
}

/* Hover effects only on devices that actually support hover. */
@media(hover:hover) and (pointer:fine){
  .btn:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(7,22,45,.18);
  }

  .btn:hover::after{
    transform:rotate(18deg) translateX(560%);
  }

  .manifest-row:hover{
    transform:translateX(7px);
    background:rgba(18,61,116,.025);
  }

  .path-card:hover,
  .partner-card:hover,
  .p15-compare > article:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 42px rgba(7,22,45,.14);
  }

  .market-chip:hover,
  .p15-status-grid > div:hover{
    transform:translateY(-4px);
    border-color:rgba(127,166,207,.7);
  }

  .p15-feature-grid > article:hover,
  .p15-steps > article:hover{
    transform:translateY(-4px);
    background:rgba(18,61,116,.025);
  }

  .stop:hover,
  .p15-route > article:hover{
    transform:translateY(-4px);
  }

  .stop:hover .stop-dot,
  .p15-route > article:hover > span{
    transform:scale(1.09);
    box-shadow:0 8px 20px rgba(18,61,116,.22);
  }

  .p15-map:hover img,
  .market-map-figure:hover img{
    transform:scale(1.018);
  }

  .nav-links a:hover{
    transform:translateY(-1px);
  }

  .foot-links a:hover{
    transform:translateX(4px);
    color:#fff;
  }
}

/* Keyboard users get equivalent feedback. */
.btn:focus-visible,
.path-card:focus-within,
.partner-card:focus-within{
  outline:3px solid rgba(127,166,207,.55);
  outline-offset:4px;
}

/* Avoid expensive movement on smaller screens. */
@media(max-width:700px){
  .motionfx .fx-left,
  .motionfx .fx-right{
    transform:translate3d(0,22px,0);
  }

  .motionfx .fx-reveal.fx-visible{
    transform:translate3d(0,0,0);
  }
}

/* Accessibility: all movement disappears when requested. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}

  .motionfx .fx-reveal,
  .motionfx .fx-left,
  .motionfx .fx-right,
  .motionfx .fx-scale,
  .motionfx .hero .hero-pill,
  .motionfx .hero .display-xl,
  .motionfx .hero .hero-copy-text,
  .motionfx .hero .hero-actions,
  .motionfx .p15-hero .hero-pill,
  .motionfx .p15-hero .display-xl,
  .motionfx .p15-hero .hero-copy-text,
  .motionfx .p15-hero .hero-actions{
    opacity:1!important;
    transform:none!important;
    animation:none!important;
    transition:none!important;
  }

  .btn,
  .manifest-row,
  .path-card,
  .partner-card,
  .market-chip,
  .panel,
  .p15-feature-grid > article,
  .p15-status-grid > div,
  .p15-compare > article,
  .p15-route > article,
  .p15-steps > article,
  .stat-bar-item,
  .p15-map img,
  .market-map-figure img{
    transition:none!important;
  }
}


/* ==============================================================
   FINAL NAVIGATION — HOME / PARTNERS / CAREERS / CONTACT
   ============================================================== */
.header-actions{
  gap:22px;
}

.nav-links{
  gap:24px;
}

.header-cta-group{
  gap:12px !important;
}

.site-header .header-secondary{
  min-height:46px;
  padding:0 18px;
}

@media(max-width:1100px){
  .header-actions{gap:16px}
  .nav-links{gap:17px}
  .site-header .btn{
    padding-left:16px;
    padding-right:16px;
    font-size:13px;
  }
}

@media(max-width:900px){
  .header-actions{
    margin-left:auto;
  }
}


/* ==============================================================
   TELIO INFRASTRUCTURE SOCIAL LINKS
   ============================================================== */
.social-links{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:22px;
}

.social-links a{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.24);
  color:#fff;
  text-decoration:none;
  transition:
    transform .24s var(--fx-ease, cubic-bezier(.16,1,.3,1)),
    background-color .24s ease,
    border-color .24s ease;
}

.social-links svg{
  width:20px;
  height:20px;
  fill:currentColor;
}

@media(hover:hover) and (pointer:fine){
  .social-links a:hover{
    transform:translateY(-3px);
    background:#fff;
    border-color:#fff;
    color:var(--navy-900);
  }
}

.contact-social-links{
  margin-top:26px;
}

.contact-social-links a{
  width:46px;
  height:46px;
  border-color:rgba(255,255,255,.34);
}

@media(prefers-reduced-motion:reduce){
  .social-links a{
    transition:none!important;
  }
}


/* ==============================================================
   TELIO INFRASTRUCTURE — LEGAL MODAL & COOKIE CONSENT
   ============================================================== */
.footer-legal-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin-top:28px;
  padding:19px 0;
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
}

.footer-legal-row button,
.legal-inline-button{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:var(--slate-300);
  font:700 10px/1.4 var(--body);
  letter-spacing:.09em;
  text-transform:uppercase;
  cursor:pointer;
  text-align:left;
  transition:color .2s ease;
}

.footer-legal-row button:hover,
.footer-legal-row button:focus-visible,
.legal-inline-button:hover,
.legal-inline-button:focus-visible{
  color:#fff;
  outline:none;
  text-decoration:underline;
  text-underline-offset:4px;
}

.form-legal-note{
  margin-top:16px;
  max-width:780px;
  color:var(--slate-500);
  font-size:11px;
  line-height:1.6;
}

.form-legal-note .legal-inline-button{
  color:var(--navy-700);
  font-size:inherit;
  letter-spacing:0;
  text-transform:none;
  font-weight:700;
}

.form-legal-note .legal-inline-button:hover,
.form-legal-note .legal-inline-button:focus-visible{
  color:var(--navy-950);
}

.telio-legal-modal{
  width:min(920px,calc(100vw - 34px));
  max-width:none;
  max-height:88vh;
  padding:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:10px;
  background:#fff;
  color:var(--navy-950);
  box-shadow:0 30px 90px rgba(2,12,27,.42);
  overflow:hidden;
}

.telio-legal-modal::backdrop{
  background:rgba(4,14,31,.76);
  backdrop-filter:blur(7px);
}

.telio-legal-modal[open]{
  animation:telioLegalIn .3s cubic-bezier(.16,1,.3,1) both;
}

@keyframes telioLegalIn{
  from{opacity:0;transform:translateY(14px) scale(.985)}
  to{opacity:1;transform:none}
}

.telio-legal-shell{
  display:flex;
  flex-direction:column;
  max-height:88vh;
  background:#fff;
}

.telio-legal-header{
  position:relative;
  z-index:2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:24px 28px 20px;
  border-bottom:1px solid var(--line);
  background:#fff;
}

.telio-legal-eyebrow{
  color:var(--navy-700);
  font-size:9px;
  font-weight:800;
  letter-spacing:.13em;
}

.telio-legal-header h2{
  margin-top:7px;
  font-family:var(--display);
  font-size:clamp(28px,3.2vw,42px);
  line-height:1;
  letter-spacing:-.04em;
}

.telio-legal-close{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--navy-950);
  font:400 30px/1 var(--body);
  cursor:pointer;
  transition:transform .2s ease,background-color .2s ease,color .2s ease;
}

.telio-legal-close:hover{
  transform:rotate(5deg);
  background:var(--navy-950);
  color:#fff;
}

.telio-legal-scroll{
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:30px 32px 44px;
  scroll-behavior:smooth;
}

.telio-legal-panel{
  max-width:790px;
  margin:0 auto;
  color:#435269;
  font-size:15px;
  line-height:1.72;
}

.telio-legal-panel[hidden]{
  display:none!important;
}

.telio-legal-panel p + p{
  margin-top:14px;
}

.telio-legal-panel h3{
  margin:31px 0 10px;
  font-family:var(--display);
  color:var(--navy-950);
  font-size:21px;
  line-height:1.15;
  letter-spacing:-.025em;
}

.telio-legal-panel ul{
  margin:12px 0 0;
  padding-left:22px;
}

.telio-legal-panel li + li{
  margin-top:8px;
}

.telio-legal-panel a{
  color:var(--navy-700);
  font-weight:700;
  text-underline-offset:3px;
}

.telio-legal-panel address{
  margin-top:12px;
  padding:18px 20px;
  border-left:3px solid var(--navy-700);
  background:var(--paper-dim);
  color:var(--navy-900);
  font-style:normal;
  line-height:1.65;
}

.telio-legal-updated{
  margin-bottom:22px;
  color:var(--navy-700);
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.telio-cookie-choice{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
  margin-top:18px;
  padding:22px 0;
  border-top:1px solid var(--line);
}

.telio-cookie-choice h3{
  margin:0 0 7px;
}

.telio-cookie-choice p{
  margin:0;
  font-size:13px;
}

.telio-switch{
  position:relative;
  width:52px;
  height:30px;
  cursor:pointer;
}

.telio-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.telio-switch span{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#cbd5e1;
  transition:background-color .2s ease;
}

.telio-switch span::after{
  content:"";
  position:absolute;
  width:24px;
  height:24px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 8px rgba(7,22,45,.22);
  transition:transform .2s ease;
}

.telio-switch input:checked + span{
  background:var(--navy-700);
}

.telio-switch input:checked + span::after{
  transform:translateX(22px);
}

.telio-switch input:focus-visible + span{
  outline:3px solid rgba(47,111,196,.28);
  outline-offset:3px;
}

.telio-switch input:disabled + span{
  background:#6e7f92;
  opacity:.65;
}

.telio-gpc-note{
  margin-top:20px!important;
  padding:14px 16px;
  border:1px solid #b9d6c7;
  background:#edf8f2;
  color:#225c41;
  font-size:12px;
}

.telio-cookie-settings-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  margin-top:30px;
  padding-top:22px;
  border-top:1px solid var(--line);
}

.telio-cookie-reject,
.telio-cookie-customize,
.telio-cookie-accept{
  border:1px solid var(--navy-800);
  background:#fff;
  color:var(--navy-900);
}

.telio-cookie-banner{
  position:fixed;
  z-index:10020;
  left:22px;
  right:22px;
  bottom:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  max-width:1180px;
  margin:0 auto;
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:rgba(7,22,45,.97);
  color:#fff;
  box-shadow:0 24px 70px rgba(2,12,27,.42);
  backdrop-filter:blur(16px);
}

.telio-cookie-banner[hidden]{
  display:none!important;
}

.telio-cookie-banner-copy{
  max-width:650px;
}

.telio-cookie-banner-copy strong{
  font-family:var(--display);
  font-size:17px;
}

.telio-cookie-banner-copy p{
  margin-top:5px;
  color:#c4d0dd;
  font-size:12px;
  line-height:1.55;
}

.telio-cookie-banner-copy button{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:#fff;
  font:700 inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}

.telio-cookie-banner-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px;
  flex:0 0 auto;
}

.telio-cookie-banner .btn{
  min-height:44px;
  padding:0 16px;
  white-space:nowrap;
  font-size:12px;
}

body.telio-legal-open{
  overflow:hidden;
}

@media(max-width:760px){
  .footer-legal-row{
    gap:11px 18px;
  }

  .telio-legal-modal{
    width:calc(100vw - 18px);
    max-height:94vh;
    border-radius:8px;
  }

  .telio-legal-shell{
    max-height:94vh;
  }

  .telio-legal-header{
    padding:19px 18px 16px;
  }

  .telio-legal-scroll{
    padding:24px 20px 34px;
  }

  .telio-legal-panel{
    font-size:14px;
  }

  .telio-cookie-settings-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .telio-cookie-settings-actions .btn{
    width:100%;
    justify-content:center;
  }

  .telio-cookie-banner{
    left:10px;
    right:10px;
    bottom:10px;
    align-items:stretch;
    flex-direction:column;
    gap:15px;
    padding:18px;
  }

  .telio-cookie-banner-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }

  .telio-cookie-banner-actions .btn{
    justify-content:center;
  }

  .telio-cookie-banner-actions .btn-primary{
    grid-column:1 / -1;
  }
}

@media(prefers-reduced-motion:reduce){
  .telio-legal-modal[open]{
    animation:none;
  }

  .telio-legal-close,
  .telio-switch span,
  .telio-switch span::after{
    transition:none!important;
  }
}


/* ==============================================================
   MOBILE NAVIGATION — ACCESSIBLE HAMBURGER DRAWER
   ============================================================== */
.mobile-nav-toggle,
.mobile-nav-backdrop,
.mobile-nav-drawer{
  display:none;
}

@media(max-width:900px){
  .site-header .wrap{
    justify-content:space-between !important;
  }

  .site-header .header-actions{
    display:none !important;
  }

  .mobile-nav-toggle{
    appearance:none;
    display:inline-flex;
    width:46px;
    height:46px;
    padding:0;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.48);
    border-radius:4px;
    background:rgba(5,18,38,.08);
    color:#fff;
    cursor:pointer;
    position:relative;
    z-index:2;
    transition:
      color .22s ease,
      border-color .22s ease,
      background-color .22s ease,
      transform .22s ease;
  }

  .mobile-nav-toggle:hover{
    background:rgba(255,255,255,.12);
  }

  .mobile-nav-toggle:active{
    transform:scale(.97);
  }

  .mobile-nav-toggle-lines,
  .mobile-nav-toggle-lines::before,
  .mobile-nav-toggle-lines::after{
    display:block;
    width:20px;
    height:2px;
    border-radius:999px;
    background:currentColor;
  }

  .mobile-nav-toggle-lines{
    position:relative;
  }

  .mobile-nav-toggle-lines::before,
  .mobile-nav-toggle-lines::after{
    content:"";
    position:absolute;
    left:0;
  }

  .mobile-nav-toggle-lines::before{top:-6px}
  .mobile-nav-toggle-lines::after{top:6px}

  .site-header.is-scrolled .mobile-nav-toggle{
    color:var(--navy-900);
    border-color:rgba(11,31,58,.28);
    background:#fff;
  }

  .mobile-nav-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:190;
    background:rgba(3,12,27,.64);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    backdrop-filter:blur(3px);
    transition:opacity .28s ease,visibility .28s ease;
  }

  .mobile-nav-drawer{
    display:flex;
    position:fixed;
    z-index:200;
    top:0;
    right:0;
    width:min(88vw,390px);
    height:100vh;
    height:100dvh;
    padding:0;
    flex-direction:column;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:#fff;
    color:var(--navy-950);
    box-shadow:-24px 0 70px rgba(3,12,27,.28);
    transform:translate3d(102%,0,0);
    visibility:hidden;
    transition:
      transform .34s cubic-bezier(.16,1,.3,1),
      visibility .34s ease;
  }

  body.mobile-nav-open{
    overflow:hidden;
  }

  body.mobile-nav-open .mobile-nav-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  body.mobile-nav-open .mobile-nav-drawer{
    transform:translate3d(0,0,0);
    visibility:visible;
  }

  .mobile-nav-head{
    display:flex;
    min-height:82px;
    padding:18px 22px;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--line);
  }

  .mobile-nav-label{
    font-family:var(--mono);
    font-size:11px;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--navy-700);
  }

  .mobile-nav-close{
    appearance:none;
    width:44px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:#fff;
    color:var(--navy-950);
    font:400 29px/1 var(--body);
    cursor:pointer;
  }

  .mobile-nav-links{
    display:flex;
    padding:18px 22px 10px;
    flex-direction:column;
  }

  .mobile-nav-links a{
    display:flex;
    min-height:58px;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    border-bottom:1px solid var(--line);
    color:var(--navy-950);
    font-family:var(--display);
    font-size:21px;
    font-weight:700;
    line-height:1.1;
    letter-spacing:-.025em;
    text-decoration:none;
  }

  .mobile-nav-links a::after{
    content:"";
    width:7px;
    height:7px;
    flex:0 0 auto;
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    transform:rotate(45deg);
    opacity:.46;
  }

  .mobile-nav-links a[aria-current="page"]{
    color:var(--navy-700);
  }

  .mobile-nav-links a[aria-current="page"]::before{
    content:"";
    width:7px;
    height:7px;
    flex:0 0 auto;
    margin-right:-6px;
    border-radius:50%;
    background:var(--navy-700);
  }

  .mobile-nav-ctas{
    display:grid;
    gap:11px;
    padding:24px 22px 20px;
  }

  .mobile-nav-ctas .btn{
    width:100%;
    min-height:52px;
    justify-content:center;
    text-align:center;
  }

  .mobile-nav-ctas .mobile-nav-secondary{
    border-color:var(--navy-800);
    background:#fff;
    color:var(--navy-900);
  }

  .mobile-nav-meta{
    margin-top:auto;
    padding:22px;
    border-top:1px solid var(--line);
    color:var(--slate-500);
    font-size:12px;
    line-height:1.6;
  }

  .mobile-nav-meta a{
    color:var(--navy-800);
    font-weight:700;
    text-decoration:none;
  }
}

@media(prefers-reduced-motion:reduce){
  .mobile-nav-toggle,
  .mobile-nav-backdrop,
  .mobile-nav-drawer{
    transition:none !important;
  }
}


/* ==============================================================
   MOBILE HEADER — FINAL LOGO VISIBILITY FIX
   The legacy mobile rule hid every span inside .brand; the actual
   supplied logo stack is also a span. Restore it explicitly.
   ============================================================== */
@media(max-width:900px){
  .site-header .brand{
    display:flex !important;
    width:auto !important;
    height:auto !important;
    min-width:96px;
    flex:0 0 auto;
    align-items:center;
    opacity:1 !important;
    visibility:visible !important;
    position:relative;
    z-index:3;
  }

  .site-header .brand > .brand-logo-stack{
    display:block !important;
    width:96px !important;
    height:56px !important;
    aspect-ratio:auto !important;
    flex:0 0 96px !important;
    opacity:1 !important;
    visibility:visible !important;
    overflow:visible !important;
  }

  .site-header .brand-logo{
    display:block !important;
    visibility:visible !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:contain !important;
    object-position:left center !important;
    transition:opacity .24s ease !important;
  }

  .site-header:not(.is-scrolled) .brand-logo-white{
    opacity:1 !important;
  }

  .site-header:not(.is-scrolled) .brand-logo-blue{
    opacity:0 !important;
  }

  .site-header.is-scrolled .brand > .brand-logo-stack{
    width:88px !important;
    height:51px !important;
    flex-basis:88px !important;
  }

  .site-header.is-scrolled .brand-logo-white{
    opacity:0 !important;
  }

  .site-header.is-scrolled .brand-logo-blue{
    opacity:1 !important;
  }
}

/* Photo preview: lighter overlays so the new photography remains visible. */
.hero.photo-hero{
  background-image:
    linear-gradient(90deg,rgba(5,18,38,.88) 0%,rgba(5,18,38,.72) 38%,rgba(5,18,38,.28) 68%,rgba(5,18,38,.10) 100%),
    linear-gradient(180deg,rgba(5,18,38,.04),rgba(5,18,38,.18)),
    var(--hero-photo);
  background-position:center center;
}
.hero.photo-hero::before{background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.12))}
.markets-photo-section .tint-a{
  background:linear-gradient(90deg,rgba(7,22,45,.78) 0%,rgba(7,22,45,.61) 48%,rgba(7,22,45,.38) 100%);
  mix-blend-mode:multiply;
}
.markets-photo-section .tint-b{opacity:.24}
.markets-photo-section{background-position:62% center}
.market-chips .market-chip:last-child{
  border-color:rgba(140,180,223,.85);
  background:rgba(18,61,116,.58);
  box-shadow:0 8px 28px rgba(0,0,0,.18);
  backdrop-filter:blur(8px);
}
.market-chips .market-chip:last-child .dot{
  width:10px;
  height:10px;
  background:#4B93E6 !important;
  box-shadow:0 0 0 4px rgba(75,147,230,.18);
}
.path-card.provider-path-card .tint-a,
.path-card.career-path-card .tint-a{
  background:linear-gradient(90deg,rgba(7,22,45,.84) 0%,rgba(7,22,45,.66) 49%,rgba(7,22,45,.20) 100%);
  mix-blend-mode:multiply;
}
.path-card.provider-path-card .tint-b,
.path-card.career-path-card .tint-b{opacity:.16}
.cta-close.photo-bg{
  background-size:cover;
  background-position:center 54%;
}
.cta-close.photo-bg .tint-a{
  background:linear-gradient(90deg,rgba(7,22,45,.68),rgba(7,22,45,.53),rgba(7,22,45,.66));
  mix-blend-mode:multiply;
}
.cta-close.photo-bg .tint-b{opacity:.16}
@media(max-width:920px){
  .hero.photo-hero{
    background-image:linear-gradient(90deg,rgba(5,18,38,.92),rgba(5,18,38,.62)),var(--hero-photo);
    background-position:66% center;
  }
}
@media(max-width:600px){
  .hero.photo-hero{background-position:71% center}
  .markets-photo-section{background-position:58% center}
  .cta-close.photo-bg{background-position:72% center}
}

