
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}
}


/* ================= PARTNERS — exact Home visual system ================= */
.mobile-menu{display:none!important}

.partner-photo-placeholder::before{
  background:
    radial-gradient(circle at 78% 38%,rgba(47,111,196,.26),transparent 30%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 1px,transparent 1px 28px),
    linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.20));
}
.partner-photo-placeholder{
  background-position:center;
}

.photo-slot-label{
  position:absolute;
  z-index:4;
  right:24px;
  bottom:22px;
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(7,22,45,.54);
  color:rgba(255,255,255,.78);
  font-family:var(--body);
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.hero-photo-label{right:0;bottom:34px}
.partner-lede{font-size:17px;color:var(--slate-500);line-height:1.72}
.partner-manifest{margin-top:30px}
.partner-manifest .manifest-row{grid-template-columns:48px 180px 1fr}
.partner-leadership-slot{
  min-height:650px;
  display:flex;
  align-items:center;
  background-position:center;
}
.partner-leadership-slot::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0 1px,transparent 1px 30px);
}
.partner-leadership-slot .wrap{position:relative;z-index:2}
.partner-photo-copy{max-width:780px}
.partner-capability-chips{max-width:900px}
.partner-compare-section{background:var(--paper-dim)}
.partner-wide-head{max-width:780px}
.partner-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.partner-compare-card{
  padding:42px 38px;
  min-height:420px;
  background:var(--white);
  border:1px solid var(--line);
}
.partner-compare-card.is-primary{
  background:var(--navy-800);
  border-color:var(--navy-800);
  color:var(--white);
}
.partner-compare-card h3{
  font-family:var(--display);
  font-size:clamp(26px,2.7vw,36px);
  line-height:1.03;
  letter-spacing:-.035em;
  margin-top:18px;
}
.partner-compare-card ul{margin-top:32px}
.partner-compare-card li{
  position:relative;
  padding:16px 0 16px 24px;
  border-top:1px solid var(--line);
  color:var(--slate-500);
  font-size:14px;
  line-height:1.62;
}
.partner-compare-card li::before{
  content:"";
  position:absolute;
  left:0;
  top:23px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--slate-300);
}
.partner-compare-card.is-primary .coord{color:#bad0e6}
.partner-compare-card.is-primary li{
  color:#d5e0ed;
  border-color:rgba(255,255,255,.17);
}
.partner-compare-card.is-primary li::before{background:#7ba9d8}
.partner-start-section{background:var(--white)}
.partner-start-grid{align-items:start}
.partner-start-grid .manifest-row{grid-template-columns:48px 190px 1fr}
.partner-inline-cta{margin-top:28px}
.partner-closing-slot{
  min-height:650px;
  display:flex;
  align-items:center;
  background-position:center;
}
.partner-closing-slot::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0 1px,transparent 1px 30px);
}
.partner-closing-slot .wrap{position:relative;z-index:2}
.closing-photo-label{right:24px;bottom:22px}

@media(max-width:900px){
  .partner-intro-grid,
  .partner-start-grid{grid-template-columns:1fr;gap:48px}
  .partner-compare-grid{grid-template-columns:1fr}
  .partner-manifest .manifest-row,
  .partner-start-grid .manifest-row{grid-template-columns:40px 1fr}
  .partner-manifest .manifest-row>p,
  .partner-start-grid .manifest-row>p{grid-column:1/-1}
  .hero-photo-label{right:0}
}
@media(max-width:600px){
  .photo-slot-label{
    right:14px;
    bottom:14px;
    max-width:calc(100% - 28px);
    font-size:8px;
  }
  .hero-photo-label{right:0;bottom:12px}
  .partner-leadership-slot{min-height:700px}
  .partner-compare-card{padding:32px 24px;min-height:0}
  .partner-closing-slot{min-height:650px}
}


/* ==============================================================
   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;
}


/* ==============================================================
   PARTNERS — APPROVED PHOTOGRAPHY
   ============================================================== */
.partner-photo-placeholder{
  background-position:center 48%;
}
.partner-photo-placeholder::before{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.96) 0%,
      rgba(5,18,38,.82) 37%,
      rgba(5,18,38,.42) 66%,
      rgba(5,18,38,.12) 100%
    ),
    linear-gradient(180deg,rgba(5,18,38,.08),rgba(5,18,38,.24));
}
.partner-leadership-slot{
  background-position:center 48%;
}
.partner-leadership-slot .tint-a{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.92) 0%,
      rgba(5,18,38,.74) 48%,
      rgba(5,18,38,.33) 100%
    );
}
.partner-leadership-slot .tint-b{
  background:radial-gradient(circle at 78% 25%,rgba(47,111,196,.18),transparent 58%);
}
.partner-closing-slot{
  background-position:center 46%;
}
.partner-closing-slot .tint-a{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.70) 0%,
      rgba(5,18,38,.48) 50%,
      rgba(5,18,38,.68) 100%
    );
}
.partner-closing-slot .tint-b{
  background:radial-gradient(circle at 50% 45%,rgba(47,111,196,.14),transparent 60%);
}
@media(max-width:900px){
  .partner-photo-placeholder{
    background-position:56% center;
  }
  .partner-leadership-slot{
    background-position:56% center;
  }
}
@media(max-width:600px){
  .partner-photo-placeholder{
    background-position:59% center;
  }
  .partner-leadership-slot{
    background-position:55% center;
  }
  .partner-closing-slot{
    background-position:60% center;
  }
}


/* ==============================================================
   PARTNERS — GEOGRAPHIC COVERAGE MAP
   ============================================================== */
.partner-map-section{
  padding:104px 0;
  background:#ffffff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.partner-map-grid{
  display:grid;
  grid-template-columns:minmax(340px,.72fr) minmax(520px,1.28fr);
  gap:72px;
  align-items:center;
}
.partner-map-copy h2{
  margin-top:16px;
  font-family:var(--display);
  font-size:clamp(38px,4.5vw,62px);
  line-height:.98;
  letter-spacing:-.045em;
  color:var(--navy-950);
}
.partner-map-copy > p:last-of-type{
  margin-top:22px;
  max-width:560px;
  color:var(--slate-500);
  font-size:17px;
  line-height:1.7;
}
.partner-market-groups{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.partner-market-group{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.partner-market-group strong{
  font-family:var(--body);
  font-size:13px;
  line-height:1.5;
  color:var(--navy-900);
}
.partner-market-status{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:4px;
  font-family:var(--body);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--slate-500);
}
.partner-market-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
  flex:0 0 auto;
}
.partner-market-dot.active{background:#123D74}
.partner-market-dot.next{background:#7FA6CF}
.partner-map-figure{
  margin:0;
  padding:20px;
  background:var(--paper-dim);
  border:1px solid var(--line);
}
.partner-map-figure img{
  display:block;
  width:100%;
  height:auto;
}
@media(max-width:920px){
  .partner-map-grid{
    grid-template-columns:1fr;
    gap:42px;
  }
}
@media(max-width:600px){
  .partner-map-section{padding:72px 0}
  .partner-market-groups{grid-template-columns:1fr;gap:24px}
  .partner-map-figure{
    margin-left:-8px;
    margin-right:-8px;
    padding:8px;
  }
}


/* ==============================================================
   PARTNERS V5 — HERO PHOTO FRAMING
   Keep a clean navy field for the copy and move the photograph to
   the right, so both people remain visible instead of sitting
   underneath the headline.
   ============================================================== */

@media(min-width:921px){
  .hero.photo-hero.partner-photo-placeholder{
    background-color:var(--navy-950);
    background-size:
      cover,
      cover,
      auto 100%;
    background-position:
      center,
      center,
      right center;
    background-repeat:no-repeat;
  }

  .hero.photo-hero.partner-photo-placeholder::before{
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,1) 0%,
        rgba(5,18,38,.98) 32%,
        rgba(5,18,38,.78) 48%,
        rgba(5,18,38,.30) 68%,
        rgba(5,18,38,.08) 100%
      );
  }

  .hero.photo-hero.partner-photo-placeholder .hero-copy{
    max-width:690px;
  }
}

/* Tablet and mobile keep a full-bleed image, but focus the crop on the people. */
@media(max-width:920px){
  .hero.photo-hero.partner-photo-placeholder{
    background-size:cover;
    background-position:46% center;
  }

  .hero.photo-hero.partner-photo-placeholder::before{
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,.97) 0%,
        rgba(5,18,38,.86) 58%,
        rgba(5,18,38,.48) 100%
      );
  }
}

@media(max-width:600px){
  .hero.photo-hero.partner-photo-placeholder{
    background-position:52% center;
  }
}


/* ==============================================================
   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;
  }
}


/* ==============================================================
   PARTNERS HERO — BLENDED RIGHT-SIDE PHOTOGRAPH
   The image is a dedicated layer instead of being buried under the copy.
   ============================================================== */
@media(min-width:921px){
  .hero.photo-hero.partner-photo-placeholder{
    background-color:var(--navy-950) !important;
    background-image:none !important;
  }

  .hero.photo-hero.partner-photo-placeholder::after{
    content:"";
    position:absolute;
    inset:0 0 0 36%;
    height:auto;
    z-index:0;
    background-image:var(--hero-photo);
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center center;
    -webkit-mask-image:linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.22) 10%,
      #000 28%,
      #000 100%
    );
    mask-image:linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.22) 10%,
      #000 28%,
      #000 100%
    );
  }

  .hero.photo-hero.partner-photo-placeholder::before{
    z-index:1;
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,1) 0%,
        rgba(5,18,38,.97) 30%,
        rgba(5,18,38,.73) 47%,
        rgba(5,18,38,.22) 68%,
        rgba(5,18,38,.05) 100%
      ),
      linear-gradient(180deg,rgba(5,18,38,.05),rgba(5,18,38,.20));
  }

  .hero.photo-hero.partner-photo-placeholder .hero-wrap{
    z-index:2;
  }

  .hero.photo-hero.partner-photo-placeholder .hero-copy{
    max-width:650px;
  }

  .hero.photo-hero.partner-photo-placeholder .display-xl{
    max-width:650px;
  }
}

@media(max-width:920px){
  .hero.photo-hero.partner-photo-placeholder{
    background-image:var(--hero-photo) !important;
    background-size:cover;
    background-position:40% center;
  }

  .hero.photo-hero.partner-photo-placeholder::after{
    content:none;
  }

  .hero.photo-hero.partner-photo-placeholder::before{
    z-index:0;
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,.96) 0%,
        rgba(5,18,38,.83) 62%,
        rgba(5,18,38,.47) 100%
      ),
      linear-gradient(180deg,rgba(5,18,38,.08),rgba(5,18,38,.24));
  }
}

@media(max-width:600px){
  .hero.photo-hero.partner-photo-placeholder{
    background-position:43% center;
  }
}


/* ==============================================================
   PARTNERS MAP — COMPACT, BORDERLESS, CONSISTENT COLOR SYSTEM
   ============================================================== */
.partner-map-section{
  padding:78px 0 82px;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.partner-map-grid{
  display:grid;
  grid-template-columns:minmax(330px,.72fr) minmax(560px,1.28fr);
  gap:42px;
  align-items:start;
}
.partner-map-copy{
  padding-top:2px;
}
.partner-map-copy h2{
  margin-top:14px;
  max-width:470px;
  font-family:var(--display);
  font-size:clamp(38px,4vw,56px);
  line-height:.98;
  letter-spacing:-.045em;
  color:var(--navy-950);
}
.partner-map-copy > p:last-child{
  margin-top:20px;
  max-width:480px;
  color:var(--slate-500);
  font-size:16px;
  line-height:1.68;
}
.partner-map-figure{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  align-self:start;
  transform:translateY(-12px);
}
.partner-map-figure img{
  display:block;
  width:100%;
  height:auto;
}
.partner-map-legend{
  display:flex;
  justify-content:center;
  gap:30px;
  flex-wrap:wrap;
  margin-top:12px;
  font-family:var(--body);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--slate-500);
}
.partner-map-legend span{
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.partner-market-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
  flex:0 0 auto;
}
.partner-market-dot.active{background:#123d74}
.partner-market-dot.next{background:#7fa6cf}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media(max-width:980px){
  .partner-map-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .partner-map-copy h2{
    max-width:650px;
  }
  .partner-map-figure{
    transform:none;
  }
}
@media(max-width:600px){
  .partner-map-section{
    padding:64px 0 68px;
  }
  .partner-map-copy h2{
    font-size:clamp(38px,11vw,50px);
  }
  .partner-map-legend{
    justify-content:flex-start;
    gap:18px;
    margin-top:8px;
  }
}


/* ==============================================================
   INDEX EDITORIAL SECTION SYSTEM — HOME + PARTNERS
   Based on Home section 01: label/title left, content right.
   ============================================================== */
:root{
  --index-section-space:104px;
  --index-section-gap:72px;
  --index-section-title:clamp(34px,3.6vw,46px);
  --index-section-copy:17px;
}
.index-layout-section{
  padding-top:var(--index-section-space) !important;
  padding-bottom:var(--index-section-space) !important;
}
.index-section-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--index-section-gap);
  align-items:start;
}
.index-section-heading{
  max-width:620px !important;
  margin:0 !important;
}
.index-section-heading .coord{
  font-family:var(--body);
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.145em;
  text-transform:uppercase;
  color:var(--navy-700);
}
.index-section-heading h2{
  margin-top:16px !important;
  max-width:620px;
  font-family:var(--display);
  font-size:var(--index-section-title) !important;
  line-height:1.02 !important;
  letter-spacing:-.045em !important;
  color:var(--navy-950);
}
.index-section-body{
  min-width:0;
  color:var(--slate-500);
}
.index-section-body > p,
.index-section-copy{
  margin:0;
  max-width:700px;
  font-family:var(--body);
  font-size:var(--index-section-copy) !important;
  line-height:1.72 !important;
  color:var(--slate-500) !important;
}
.index-section-body > p + p{
  margin-top:18px;
}
.index-section-detail{
  margin-top:46px;
}
.index-layout-section.dark .index-section-heading .coord,
.index-layout-section.photo-bg .index-section-heading .coord{
  color:#b9cce1;
}
.index-layout-section.dark .index-section-heading h2,
.index-layout-section.photo-bg .index-section-heading h2{
  color:#fff;
}
.index-section-body-dark,
.index-section-body-dark > p{
  color:#c1cedc !important;
}
.index-section-body-dark .market-chip{
  color:#fff;
}
/* Keep all light numbered sections on the same neutral canvas. */
.index-layout-section:not(.dark):not(.photo-bg){
  background:#fff;
}
/* Full-width photographic sections still follow the same internal grid. */
.index-layout-section.photo-bg{
  min-height:570px !important;
  display:flex;
  align-items:center;
}
.index-layout-section.photo-bg > .wrap{
  width:100%;
}
.index-layout-section.photo-bg .index-section-grid{
  position:relative;
  z-index:2;
}
/* Lists and process components begin on one shared baseline. */
.index-section-body .manifest,
.index-section-body .market-chips,
.index-section-body .partner-map-figure,
.index-section-body .partner-inline-cta{
  margin-top:28px;
}
.index-section-body .manifest:first-child,
.index-section-body .partner-map-figure:first-child{
  margin-top:0;
}
.index-section-body .partner-map-figure{
  transform:none !important;
}
.index-section-body .partner-map-legend{
  margin-top:10px;
}
.index-section-detail.partner-compare-grid{
  margin-top:46px;
}
.index-section-detail.route{
  margin-top:48px;
}
/* The map should feel like content, not a boxed widget. */
.partner-map-figure{
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
@media(max-width:920px){
  :root{
    --index-section-space:76px;
    --index-section-gap:36px;
  }
  .index-section-grid{
    grid-template-columns:1fr;
  }
  .index-section-heading,
  .index-section-heading h2{
    max-width:720px !important;
  }
  .index-layout-section.photo-bg{
    min-height:620px !important;
  }
  .index-section-detail{
    margin-top:38px;
  }
}
@media(max-width:600px){
  :root{
    --index-section-space:64px;
    --index-section-title:clamp(34px,10vw,44px);
    --index-section-copy:16px;
  }
  .index-section-grid{
    gap:28px;
  }
  .index-section-detail.route,
  .index-section-detail.partner-compare-grid{
    margin-top:34px;
  }
}

/* ==============================================================
   PARTNERS V11 — LIGHTER HERO + CONTROLLED HEADLINE WRAPPING
   ============================================================== */

@media(min-width:921px){
  /*
    Use the photograph across the complete hero instead of starting it
    halfway across the screen. The gradient still protects legibility,
    but the street and both people remain visible behind the copy.
  */
  .hero.photo-hero.partner-photo-placeholder{
    background-color:var(--navy-950) !important;
    background-image:none !important;
  }

  .hero.photo-hero.partner-photo-placeholder::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    height:auto;
    background-image:var(--hero-photo);
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center center;
    -webkit-mask-image:none;
    mask-image:none;
  }

  .hero.photo-hero.partner-photo-placeholder::before{
    z-index:1;
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,.82) 0%,
        rgba(5,18,38,.76) 27%,
        rgba(5,18,38,.58) 46%,
        rgba(5,18,38,.28) 68%,
        rgba(5,18,38,.10) 100%
      ),
      linear-gradient(
        180deg,
        rgba(5,18,38,.06) 0%,
        rgba(5,18,38,.10) 56%,
        rgba(5,18,38,.24) 100%
      );
  }

  .hero.photo-hero.partner-photo-placeholder .hero-wrap{
    z-index:2;
  }

  .hero.photo-hero.partner-photo-placeholder .hero-copy{
    max-width:850px;
  }

  .hero.photo-hero.partner-photo-placeholder .display-xl{
    max-width:850px;
    font-size:clamp(56px,4.25vw,70px);
    line-height:.99;
  }

  .partner-hero-first-line{
    white-space:nowrap;
  }
}

/* Never force the sentence onto one line when the viewport is narrower. */
@media(max-width:920px){
  .partner-hero-first-line{
    white-space:normal;
  }

  .hero.photo-hero.partner-photo-placeholder{
    background-position:center center;
  }

  .hero.photo-hero.partner-photo-placeholder::before{
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,.86) 0%,
        rgba(5,18,38,.72) 64%,
        rgba(5,18,38,.40) 100%
      ),
      linear-gradient(180deg,rgba(5,18,38,.08),rgba(5,18,38,.22));
  }
}

@media(max-width:600px){
  .hero.photo-hero.partner-photo-placeholder::before{
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,.88) 0%,
        rgba(5,18,38,.76) 68%,
        rgba(5,18,38,.48) 100%
      ),
      linear-gradient(180deg,rgba(5,18,38,.08),rgba(5,18,38,.25));
  }
}


/* ==============================================================
   PARTNERS — LOCKED NUMBERED SECTION TITLE SYSTEM
   Uses the same title format, size, position, and colors as Home 01.
   ============================================================== */
:root{
  --approved-section-space:104px;
  --approved-section-gap:72px;
  --approved-section-title:clamp(34px,3.6vw,44px);
}

.index-layout-section{
  padding-top:var(--approved-section-space) !important;
  padding-bottom:var(--approved-section-space) !important;
}

.index-layout-section > .wrap,
.partner-leadership-slot > .wrap{
  max-width:var(--maxw);
  margin-left:auto;
  margin-right:auto;
  padding-left:32px;
  padding-right:32px;
}

.index-section-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:var(--approved-section-gap) !important;
  align-items:start !important;
}

.index-section-heading{
  width:100%;
  max-width:620px !important;
  margin:0 !important;
  text-align:left;
}

.index-section-heading .coord{
  font-family:var(--body);
  font-size:12px !important;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.13em !important;
  text-transform:uppercase;
  color:#637083 !important;
}

.index-section-heading .coord .sep{
  color:#aab8c9 !important;
}

.index-section-heading h2{
  margin-top:16px !important;
  font-family:var(--display);
  font-size:var(--approved-section-title) !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
  color:var(--navy-950) !important;
  text-align:left;
  max-width:620px !important;
}

.index-section-body{
  width:100%;
  max-width:720px;
  padding-top:0 !important;
  text-align:left;
}

.index-section-body > p:first-child,
.index-section-copy,
.partner-lede{
  margin-top:0 !important;
  font-family:var(--body);
  font-size:17px !important;
  line-height:1.7 !important;
  font-weight:400;
  color:var(--slate-500) !important;
}

/* Dark photographic section: same structure, inverted colors only. */
.partner-leadership-slot .index-section-heading .coord{
  color:#b7c8da !important;
}

.partner-leadership-slot .index-section-heading .coord .sep{
  color:#7f93aa !important;
}

.partner-leadership-slot .index-section-heading h2{
  color:#fff !important;
}

.partner-leadership-slot .index-section-body > p:first-child{
  color:#c5d1de !important;
}

/* Map: no nested-grid distortion, no box, fixed natural aspect ratio. */
.partner-map-grid{
  display:block !important;
}

.partner-map-section .index-section-body{
  max-width:none;
}

.partner-map-figure{
  width:100%;
  margin:28px 0 0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  transform:none !important;
}

.partner-map-figure img{
  display:block;
  width:100% !important;
  height:auto !important;
  max-width:100%;
  aspect-ratio:1176 / 504;
  object-fit:contain;
}

.partner-map-legend{
  display:flex;
  justify-content:center;
  gap:30px;
  flex-wrap:wrap;
  margin-top:12px !important;
}

/* Detail components sit below the approved heading grid. */
.index-section-detail{
  margin-top:50px !important;
}

@media(max-width:920px){
  :root{
    --approved-section-space:76px;
    --approved-section-gap:38px;
  }

  .index-layout-section > .wrap,
  .partner-leadership-slot > .wrap{
    padding-left:24px;
    padding-right:24px;
  }

  .index-section-grid{
    grid-template-columns:1fr !important;
  }

  .index-section-heading,
  .index-section-body{
    max-width:720px !important;
  }

  .partner-map-figure{
    margin-top:22px !important;
  }
}

@media(max-width:600px){
  :root{
    --approved-section-space:64px;
    --approved-section-title:clamp(34px,10.5vw,44px);
  }

  .index-layout-section > .wrap,
  .partner-leadership-slot > .wrap{
    padding-left:18px;
    padding-right:18px;
  }

  .index-section-body > p:first-child,
  .index-section-copy,
  .partner-lede{
    font-size:16px !important;
  }

  .partner-map-legend{
    justify-content:flex-start;
    gap:18px;
  }

  .index-section-detail{
    margin-top:38px !important;
  }
}


/* ==============================================================
   PARTNERS V13 — COMPACT SECTION COMPOSITION
   ============================================================== */
.partner-compact-section{
  padding:78px 0 !important;
}
.partner-section-head{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:64px;
  align-items:start;
}
.partner-section-title,
.partner-section-copy{
  min-width:0;
}
.partner-section-title .coord{
  margin:0;
  font-family:var(--body);
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#637083;
}
.partner-section-title .coord .sep{
  color:#aab8c9;
}
.partner-section-title h2{
  margin:16px 0 0 !important;
  max-width:650px;
  font-family:var(--display);
  font-size:clamp(38px,3.55vw,52px) !important;
  line-height:.99 !important;
  letter-spacing:-.045em !important;
  color:var(--navy-950) !important;
}
.partner-section-copy{
  padding-top:0;
}
.partner-section-copy p{
  max-width:690px;
  margin:0;
  font-family:var(--body);
  font-size:17px;
  line-height:1.7;
  color:var(--slate-500);
}
.partner-section-head-dark .partner-section-title .coord{
  color:#b8c9db;
}
.partner-section-head-dark .partner-section-title .coord .sep{
  color:#7f93aa;
}
.partner-section-head-dark .partner-section-title h2{
  color:#fff !important;
}
.partner-section-head-dark .partner-section-copy p{
  color:#c5d1de;
}
.partner-detail-block{
  margin-top:34px !important;
}

/* 01 */
.partner-feature-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  margin-top:34px;
}
.partner-feature{
  padding:22px 0 0;
  border-top:1px solid var(--line);
}
.partner-feature > span,
.partner-start-grid article > span{
  display:block;
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--navy-700);
}
.partner-feature h3,
.partner-start-grid h3{
  margin-top:20px;
  font-family:var(--display);
  font-size:21px;
  line-height:1.08;
  letter-spacing:-.025em;
}
.partner-feature p,
.partner-start-grid p{
  margin-top:12px;
  color:var(--slate-500);
  font-size:14px;
  line-height:1.65;
}

/* 02 */
.partner-leadership-slot{
  min-height:520px !important;
  display:flex;
  align-items:center;
  background-position:center 48%;
}
.partner-leadership-slot .tint-a{
  background:linear-gradient(90deg,rgba(5,18,38,.78),rgba(5,18,38,.58) 52%,rgba(5,18,38,.38));
}
.partner-chip-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:34px;
}
.partner-op-chip{
  min-height:74px;
  padding:17px 18px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(7,22,45,.28);
  backdrop-filter:blur(8px);
  display:grid;
  grid-template-columns:10px 1fr;
  column-gap:11px;
  align-content:center;
}
.partner-op-chip i{
  width:9px;height:9px;border-radius:50%;
  background:#3d82c7;
  margin-top:4px;
}
.partner-op-chip.installed i{background:#63a67f}
.partner-op-chip strong{
  font-size:14px;
  color:#fff;
}
.partner-op-chip span{
  grid-column:2;
  margin-top:4px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#b8c6d5;
}

/* 03 */
.partner-map-section{
  background:#fff;
}
.partner-map-clean{
  margin:24px auto 0;
  padding:0;
  max-width:1120px;
}
.partner-map-clean img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.partner-map-clean figcaption{
  display:flex;
  justify-content:center;
  gap:42px;
  flex-wrap:wrap;
  margin-top:10px;
}
.partner-map-clean figcaption > div{
  display:grid;
  grid-template-columns:10px auto;
  column-gap:9px;
  align-items:center;
}
.map-dot{
  width:10px;height:10px;border-radius:50%;display:block;
}
.map-dot.active{background:#123d74}
.map-dot.next{background:#7fa6cf}
.partner-map-clean figcaption strong{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--slate-500);
}
.partner-map-clean figcaption small{
  grid-column:2;
  margin-top:4px;
  font-size:11px;
  color:var(--slate-500);
}

/* 04 */
.partner-compare-section{
  background:var(--paper-dim);
}

/* 05 */
.partner-process-section .route{
  margin-top:32px !important;
}

/* 06 */
.partner-start-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 38px;
  margin-top:34px;
}
.partner-start-grid article{
  display:grid;
  grid-template-columns:42px 190px 1fr;
  gap:18px;
  align-items:start;
  padding:22px 0;
  border-top:1px solid var(--line);
}
.partner-start-grid article > span{
  padding-top:4px;
}
.partner-start-grid h3,
.partner-start-grid p{
  margin-top:0;
}
.partner-inline-cta{
  margin-top:24px;
}

@media(max-width:920px){
  .partner-compact-section{padding:68px 0 !important}
  .partner-section-head{grid-template-columns:1fr;gap:24px}
  .partner-feature-grid,
  .partner-chip-grid{grid-template-columns:1fr}
  .partner-map-clean{margin-top:28px}
  .partner-start-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .partner-compact-section{padding:58px 0 !important}
  .partner-section-title h2{font-size:clamp(36px,10.5vw,46px)!important}
  .partner-section-copy p{font-size:16px}
  .partner-start-grid article{
    grid-template-columns:34px 1fr;
  }
  .partner-start-grid article p{
    grid-column:2;
    margin-top:8px;
  }
  .partner-map-clean figcaption{
    justify-content:flex-start;
    gap:18px;
  }
}


/* ==============================================================
   PARTNERS V15 — CLEAN COMPACT COMPOSITION
   ============================================================== */
.p15-hero{position:relative;min-height:clamp(650px,78vh,800px);overflow:hidden;background:#07162d;color:#fff;display:flex;align-items:center}
.p15-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;z-index:0}
.p15-hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,18,38,.77) 0%,rgba(5,18,38,.66) 30%,rgba(5,18,38,.42) 49%,rgba(5,18,38,.16) 73%,rgba(5,18,38,.05) 100%),linear-gradient(180deg,rgba(5,18,38,.03),rgba(5,18,38,.18))}
.p15-hero-wrap{position:relative;z-index:2;width:min(var(--maxw),calc(100% - 64px));padding:128px 0 76px}
.p15-hero-copy{max-width:850px}
.p15-hero .display-xl{font-size:clamp(56px,4.25vw,70px)!important;line-height:.99!important;max-width:850px!important;margin-top:24px!important}
.p15-hero-line{white-space:nowrap}
.p15-hero .hero-copy-text{max-width:660px;margin-top:22px;font-size:17px;line-height:1.64;color:rgba(255,255,255,.78)}
.p15-hero .hero-actions{margin-top:30px}

.p15-section{padding:76px 0;border-bottom:1px solid var(--line)}
.p15-light{background:#fff}.p15-soft{background:var(--paper-dim)}
.p15-head{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:56px;align-items:start}
.p15-title .coord,.p15-photo-section .coord{font-family:var(--body);font-size:11px;font-weight:800;letter-spacing:.145em;text-transform:uppercase;color:#637083;margin:0}
.p15-title .coord .sep{color:#aab8c9}
.p15-title h2{font-family:var(--display);font-size:clamp(38px,3.45vw,52px);line-height:1;letter-spacing:-.043em;color:var(--navy-950);margin:16px 0 0;max-width:650px}
.p15-intro{max-width:690px}
.p15-intro p{font-size:17px;line-height:1.7;color:var(--slate-500);margin:0}
.p15-head-action .p15-intro .btn{margin-top:24px}

.p15-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;border-top:1px solid var(--line)}
.p15-feature-grid article{padding:26px 28px 6px 0;display:grid;grid-template-columns:42px 145px 1fr;gap:14px;border-bottom:1px solid var(--line);grid-column:1/-1}
.p15-feature-grid article>span,.p15-steps article>span{font-size:11px;font-weight:800;color:var(--navy-700);padding-top:4px}
.p15-feature-grid h3,.p15-steps h3{font-family:var(--display);font-size:18px;line-height:1.15;letter-spacing:-.025em;margin:0;color:var(--navy-950)}
.p15-feature-grid p,.p15-steps p{font-size:14px;line-height:1.62;color:var(--slate-500);margin:0}

.p15-photo-section{position:relative;min-height:520px;overflow:hidden;color:#fff;display:flex;align-items:center;padding:76px 0}
.p15-photo-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;z-index:0}
.p15-photo-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,18,38,.82),rgba(5,18,38,.58) 52%,rgba(5,18,38,.34)),linear-gradient(180deg,rgba(5,18,38,.12),rgba(5,18,38,.34))}
.p15-photo-content{position:relative;z-index:2}
.p15-head-dark .p15-title .coord{color:#b8c9da}.p15-head-dark .p15-title .coord .sep{color:#7f93aa}.p15-head-dark .p15-title h2{color:#fff}.p15-head-dark .p15-intro p{color:#c6d1dd}
.p15-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.p15-status-grid>div{min-height:62px;padding:0 18px;border:1px solid rgba(255,255,255,.24);background:rgba(5,18,38,.34);display:flex;align-items:center;gap:10px;backdrop-filter:blur(8px)}
.p15-status-grid i{width:10px;height:10px;border-radius:50%;background:#2f6fc4;flex:0 0 auto}.p15-status-grid i.green{background:#58ad7b}
.p15-status-grid strong{font-size:13px}.p15-status-grid span{margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#b7c5d3}

.p15-map{margin:24px auto 0;max-width:780px}
.p15-map img{display:block;width:100%;height:auto;object-fit:contain}
.p15-map figcaption{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin-top:10px;color:var(--slate-500);font-size:11px;line-height:1.5}
.p15-map figcaption span{display:flex;align-items:center;gap:8px}.p15-map figcaption i{width:10px;height:10px;border-radius:50%;background:#123d74}.p15-map figcaption i.next{background:#7fa6cf}.p15-map figcaption b{text-transform:uppercase;letter-spacing:.1em;font-size:9px;color:#566477;margin-right:2px}

.p15-compare{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}
.p15-compare article{padding:34px 36px;background:#fff;border:1px solid var(--line)}
.p15-compare article.primary{background:#19467e;border-color:#19467e;color:#fff}
.p15-compare h3{font-family:var(--display);font-size:clamp(27px,2.6vw,38px);line-height:1.03;letter-spacing:-.04em;margin:22px 0 30px;color:var(--navy-950)}
.p15-compare .primary h3{color:#fff}.p15-compare .primary .coord{color:#bdd2e9}
.p15-compare ul{list-style:none;padding:0;margin:0}.p15-compare li{position:relative;padding:15px 0 15px 24px;border-top:1px solid var(--line);font-size:14px;color:var(--slate-500)}.p15-compare li:before{content:'';position:absolute;left:0;top:22px;width:8px;height:8px;border-radius:50%;background:#a9bbcf}.p15-compare .primary li{color:#e3ebf4;border-color:rgba(255,255,255,.18)}.p15-compare .primary li:before{background:#82add8}

.p15-route{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:30px;position:relative}
.p15-route:before{content:'';position:absolute;left:18px;right:18px;top:19px;border-top:2px dashed #dce3ea}
.p15-route article{position:relative;z-index:1}.p15-route article>span{width:40px;height:40px;border-radius:50%;background:#1e639f;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.p15-route article>span.light{background:#afc2d8;color:#18304f}.p15-route article>span.green{background:#38875f}.p15-route h3{font-family:var(--display);font-size:18px;letter-spacing:-.025em;margin:18px 0 7px;color:var(--navy-950)}.p15-route p{font-size:14px;line-height:1.55;color:var(--slate-500);margin:0;max-width:260px}

.p15-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:30px;border-top:1px solid var(--line)}
.p15-steps article{padding:25px 22px 4px 0;border-bottom:1px solid var(--line)}.p15-steps article+article{padding-left:22px;border-left:1px solid var(--line)}.p15-steps h3{margin-top:18px}.p15-steps p{margin-top:10px}

@media(max-width:920px){
 .p15-hero{min-height:auto}.p15-hero-wrap{width:calc(100% - 48px);padding:128px 0 72px}.p15-hero-line{white-space:normal}.p15-hero-image{object-position:58% center}.p15-hero-overlay{background:linear-gradient(90deg,rgba(5,18,38,.88),rgba(5,18,38,.68) 70%,rgba(5,18,38,.40))}
 .p15-head{grid-template-columns:1fr;gap:22px}.p15-section,.p15-photo-section{padding:68px 0}.p15-feature-grid article{grid-template-columns:38px 170px 1fr}.p15-status-grid{grid-template-columns:1fr}.p15-compare{grid-template-columns:1fr}.p15-route{grid-template-columns:1fr 1fr}.p15-route:before{display:none}.p15-steps{grid-template-columns:1fr 1fr}.p15-steps article:nth-child(3){border-left:0}
 .p15-map{max-width:760px}
}
@media(max-width:600px){
 .p15-hero-wrap{width:calc(100% - 36px);padding:116px 0 62px}.p15-hero .display-xl{font-size:clamp(46px,12.5vw,58px)!important}.p15-hero-image{object-position:63% center}.p15-hero-overlay{background:linear-gradient(90deg,rgba(5,18,38,.91),rgba(5,18,38,.76) 72%,rgba(5,18,38,.50))}
 .p15-section,.p15-photo-section{padding:58px 0}.p15-title h2{font-size:clamp(36px,10.5vw,46px)}.p15-intro p{font-size:16px}.p15-feature-grid article{grid-template-columns:34px 1fr;padding-right:0}.p15-feature-grid article p{grid-column:2}.p15-status-grid>div{flex-wrap:wrap;padding:14px 16px}.p15-status-grid span{width:100%;margin-left:20px}.p15-map{margin-top:20px}.p15-map figcaption{justify-content:flex-start;gap:13px}.p15-map figcaption span{width:100%}.p15-compare article{padding:28px 22px}.p15-route{grid-template-columns:1fr}.p15-steps{grid-template-columns:1fr}.p15-steps article+article{padding-left:0;border-left:0}.p15-photo-section{min-height:650px}.p15-photo-bg{object-position:55% center}
}

/* P15 hero stacking reset */
.p15-hero::before,.p15-hero::after{content:none!important;display:none!important}
.p15-hero-image{z-index:1!important}
.p15-hero-overlay{z-index:2!important}
.p15-hero-wrap{z-index:3!important}


/* P15 mobile header repair */
@media(max-width:700px){
  .site-header .wrap{justify-content:space-between!important;align-items:center!important;padding:12px 18px!important;min-height:68px!important}
  .site-header .brand{display:flex!important;width:auto!important;height:auto!important}
  .site-header .brand > .brand-logo-stack{display:block!important;width:94px!important;height:auto!important;aspect-ratio:1.72/1!important}
  .site-header .header-actions{display:flex!important;margin-left:auto!important;gap:0!important}
  .site-header .nav-links{display:none!important}
  .site-header .header-actions > .btn-primary{display:inline-flex!important;min-height:44px!important;padding:0 14px!important;font-size:12px!important;white-space:nowrap!important}
}


/* ==============================================================
   PARTNERS V16 — REQUESTED CORRECTIONS ONLY
   1. Hero uses the same two-color hierarchy as Home.
   2. Intro copy is vertically centered beside every section title.
   3. White city markers removed from the map image.
   ============================================================== */

/* Hero color hierarchy */
.p15-hero .p15-hero-line{
  color:#ffffff !important;
}

.p15-hero .display-xl em{
  color:#cbd7e5 !important;
  font-style:italic;
  font-weight:400;
}

/* Vertically center the explanatory copy beside each numbered title */
.p15-head{
  align-items:center !important;
}

@media(max-width:900px){
  .p15-head{
    align-items:start !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;
  }
}


/* ==============================================================
   CAREERS — MATCHES THE APPROVED HOME / PARTNERS SYSTEM
   ============================================================== */

.careers-hero .p15-hero-image{
  object-position:center 48%;
}

.careers-hero-overlay{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.88) 0%,
      rgba(5,18,38,.80) 34%,
      rgba(5,18,38,.54) 55%,
      rgba(5,18,38,.20) 76%,
      rgba(5,18,38,.07) 100%
    ),
    linear-gradient(180deg,rgba(5,18,38,.04),rgba(5,18,38,.22));
}

.careers-hero .p15-hero-copy{
  max-width:850px;
}

.careers-hero .display-xl{
  max-width:820px;
  font-size:clamp(54px,4.65vw,76px);
}

.careers-hero .display-xl .careers-hero-line{
  display:block;
  color:#fff;
  font-style:normal;
  font-weight:800;
}

.careers-hero .display-xl em{
  display:block;
  margin-top:4px;
  color:#cbd7e5;
  font-style:italic;
  font-weight:400;
}

.careers-hero .hero-copy-text{
  max-width:720px;
}

.careers-fact-bar .stat-bar-grid{
  grid-template-columns:repeat(4,1fr);
}

.careers-fact-bar .stat-bar-item .num{
  font-size:clamp(28px,2.5vw,38px);
  text-transform:none;
}

.careers-section{
  padding-top:88px;
  padding-bottom:88px;
}

.careers-section .p15-head,
.careers-training-section .p15-head,
.careers-honest .p15-head{
  align-items:center;
}

.careers-role-grid,
.careers-pay-grid,
.careers-honest-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin-top:44px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.careers-role-grid article,
.careers-pay-grid article,
.careers-honest-grid article{
  padding:30px 30px 32px;
  min-height:210px;
}

.careers-role-grid article + article,
.careers-pay-grid article + article,
.careers-honest-grid article + article{
  border-left:1px solid var(--line);
}

.careers-role-grid span,
.careers-pay-grid span,
.careers-honest-grid span{
  display:block;
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.13em;
  color:var(--navy-700);
}

.careers-role-grid h3,
.careers-pay-grid h3,
.careers-honest-grid h3{
  margin-top:28px;
  font-family:var(--display);
  font-size:23px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.careers-role-grid p,
.careers-pay-grid p,
.careers-honest-grid p{
  margin-top:13px;
  color:var(--slate-500);
  font-size:14px;
  line-height:1.68;
}

.careers-pay-note{
  max-width:780px;
  margin:24px 0 0;
  color:var(--slate-500);
  font-size:12px;
  line-height:1.65;
}

.careers-training-section{
  min-height:570px;
}

.careers-training-section .p15-photo-bg{
  object-position:center 45%;
}

.careers-training-overlay{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.88) 0%,
      rgba(5,18,38,.70) 48%,
      rgba(5,18,38,.34) 100%
    ),
    linear-gradient(180deg,rgba(5,18,38,.12),rgba(5,18,38,.32));
}

.careers-support-grid{
  grid-template-columns:repeat(3,1fr);
}

.careers-expect-grid{
  margin-top:44px;
}

.careers-honest{
  padding:88px 0;
  background:var(--navy-950);
  color:#fff;
}

.careers-honest .p15-title h2{
  color:#fff;
}

.careers-honest .p15-intro p{
  color:#c5d1de;
}

.careers-honest-grid{
  border-color:rgba(255,255,255,.18);
}

.careers-honest-grid article + article{
  border-color:rgba(255,255,255,.18);
}

.careers-honest-grid span{
  color:#9fc0df;
}

.careers-honest-grid h3{
  color:#fff;
}

.careers-honest-grid p{
  color:#c5d1de;
}

.careers-route{
  margin-top:46px;
}

.careers-closing{
  position:relative;
  min-height:650px;
  overflow:hidden;
  display:flex;
  align-items:center;
}

.careers-closing-image,
.careers-closing-overlay{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.careers-closing-image{
  object-fit:cover;
  object-position:center 48%;
}

.careers-closing-overlay{
  background:
    linear-gradient(90deg,rgba(5,18,38,.67),rgba(5,18,38,.48) 50%,rgba(5,18,38,.66)),
    linear-gradient(180deg,rgba(5,18,38,.08),rgba(5,18,38,.27));
}

.careers-closing > .wrap{
  position:relative;
  z-index:2;
}

@media(hover:hover) and (pointer:fine){
  .careers-role-grid article,
  .careers-pay-grid article,
  .careers-honest-grid article{
    transition:
      transform .28s var(--fx-ease),
      background-color .28s ease;
  }

  .careers-role-grid article:hover,
  .careers-pay-grid article:hover{
    transform:translateY(-5px);
    background:rgba(18,61,116,.025);
  }

  .careers-honest-grid article:hover{
    transform:translateY(-5px);
    background:rgba(255,255,255,.035);
  }
}

@media(max-width:900px){
  .careers-hero .p15-hero-image{
    object-position:58% center;
  }

  .careers-hero-overlay{
    background:
      linear-gradient(90deg,rgba(5,18,38,.92),rgba(5,18,38,.73) 66%,rgba(5,18,38,.40)),
      linear-gradient(180deg,rgba(5,18,38,.05),rgba(5,18,38,.24));
  }

  .careers-fact-bar .stat-bar-grid{
    grid-template-columns:1fr 1fr;
  }

  .careers-section,
  .careers-honest{
    padding-top:74px;
    padding-bottom:74px;
  }

  .careers-section .p15-head,
  .careers-training-section .p15-head,
  .careers-honest .p15-head{
    align-items:start;
  }

  .careers-role-grid,
  .careers-pay-grid,
  .careers-honest-grid{
    grid-template-columns:1fr;
  }

  .careers-role-grid article + article,
  .careers-pay-grid article + article,
  .careers-honest-grid article + article{
    border-left:0;
    border-top:1px solid var(--line);
  }

  .careers-honest-grid article + article{
    border-color:rgba(255,255,255,.18);
  }

  .careers-support-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:600px){
  .careers-hero .p15-hero-image{
    object-position:63% center;
  }

  .careers-hero .display-xl{
    font-size:clamp(44px,12.5vw,58px);
  }

  .careers-fact-bar .stat-bar-grid{
    grid-template-columns:1fr 1fr;
  }

  .careers-role-grid article,
  .careers-pay-grid article,
  .careers-honest-grid article{
    min-height:0;
    padding:26px 20px 28px;
  }

  .careers-closing{
    min-height:650px;
  }

  .careers-closing-image{
    object-position:63% center;
  }
}


/* Final Careers contrast refinements */
.careers-hero .hero-pill{
  color:#b9cde2 !important;
}

section.careers-honest{
  background:var(--navy-950) !important;
  color:#fff;
}


/* ==============================================================
   CAREERS V5 — APPROVED NEW PHOTOGRAPHY
   ============================================================== */

/* Hero: family and rep remain on the right; copy stays readable on the left. */
.careers-hero .careers-hero-image{
  object-position:center 50% !important;
}

.careers-hero .careers-hero-overlay{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.91) 0%,
      rgba(5,18,38,.82) 34%,
      rgba(5,18,38,.58) 54%,
      rgba(5,18,38,.23) 74%,
      rgba(5,18,38,.07) 100%
    ),
    linear-gradient(
      180deg,
      rgba(5,18,38,.04) 0%,
      rgba(5,18,38,.10) 58%,
      rgba(5,18,38,.24) 100%
    ) !important;
}

/* Training: preserve the whiteboard and full team composition. */
.careers-training-section .p15-photo-bg{
  object-position:center 46% !important;
}

.careers-training-section .careers-training-overlay{
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.88) 0%,
      rgba(5,18,38,.72) 48%,
      rgba(5,18,38,.34) 100%
    ),
    linear-gradient(
      180deg,
      rgba(5,18,38,.10),
      rgba(5,18,38,.34)
    ) !important;
}

/* Honest-version photo background */
.careers-honest-photo{
  position:relative;
  overflow:hidden;
  background:var(--navy-950);
}

.careers-honest-image,
.careers-honest-overlay{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.careers-honest-image{
  object-fit:cover;
  object-position:center 42%;
  z-index:0;
}

.careers-honest-overlay{
  z-index:1;
  background:
    linear-gradient(
      90deg,
      rgba(5,18,38,.94) 0%,
      rgba(5,18,38,.81) 42%,
      rgba(5,18,38,.64) 68%,
      rgba(5,18,38,.48) 100%
    ),
    linear-gradient(
      180deg,
      rgba(5,18,38,.12),
      rgba(5,18,38,.43)
    );
}

.careers-honest-photo > .wrap{
  position:relative;
  z-index:2;
}

@media(max-width:900px){
  .careers-hero .careers-hero-image{
    object-position:58% center !important;
  }

  .careers-training-section .p15-photo-bg{
    object-position:54% center !important;
  }

  .careers-honest-image{
    object-position:52% center;
  }
}

@media(max-width:600px){
  .careers-hero .careers-hero-image{
    object-position:62% center !important;
  }

  .careers-training-section .p15-photo-bg{
    object-position:54% center !important;
  }

  .careers-honest-image{
    object-position:54% center;
  }

  .careers-honest-overlay{
    background:
      linear-gradient(
        90deg,
        rgba(5,18,38,.94) 0%,
        rgba(5,18,38,.84) 70%,
        rgba(5,18,38,.68) 100%
      ),
      linear-gradient(
        180deg,
        rgba(5,18,38,.16),
        rgba(5,18,38,.46)
      );
  }
}


/* Careers compensation disclaimer */
@media(min-width:921px){
  .careers-pay-note{
    max-width:none !important;
    white-space:nowrap;
  }
}


/* ==============================================================
   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;
  }
}


/* Keep all three team members' heads visible */
.careers-honest-image{
  object-position:center top !important;
}


/* ==============================================================
   TELIO ONBOARD 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 ONBOARD — 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;
  }
}

/* Careers photography preview. Direct hero background avoids local-file CSS variables. */
.careers-photo-hero{
  background-size:cover !important;
  background-position:center center !important;
}
.careers-photo-hero .careers-hero-overlay{
  background:linear-gradient(180deg,rgba(5,18,38,.03),rgba(5,18,38,.15)) !important;
}
.careers-training-photo{
  background-size:cover;
  background-position:center center;
}
.careers-training-photo .careers-training-overlay{
  background:linear-gradient(90deg,rgba(7,22,45,.82) 0%,rgba(7,22,45,.67) 48%,rgba(7,22,45,.28) 100%) !important;
}
.careers-training-photo .p15-status-grid > div{
  background:rgba(7,22,45,.68);
  border-color:rgba(203,215,229,.34);
  backdrop-filter:blur(8px);
}
.careers-apply-photo{
  background-size:cover;
  background-position:center center;
}
.careers-apply-photo .careers-honest-overlay{
  background:linear-gradient(90deg,rgba(7,22,45,.83),rgba(7,22,45,.68),rgba(7,22,45,.42)) !important;
}
.careers-apply-photo .p15-steps article{
  background:rgba(7,22,45,.60);
  backdrop-filter:blur(7px);
}
.careers-team-cta{
  background-size:cover;
  background-position:center center;
}
.careers-team-cta .careers-closing-overlay{
  background:linear-gradient(90deg,rgba(7,22,45,.72) 0%,rgba(7,22,45,.72) 55%,rgba(7,22,45,.43) 100%) !important;
}
@media(max-width:920px){
  .careers-photo-hero{background-position:64% center !important}
  .careers-training-photo{background-position:61% center}
  .careers-apply-photo{background-position:60% center}
  .careers-team-cta{background-position:64% center}
}
@media(max-width:600px){
  .careers-photo-hero{background-position:72% center !important}
  .careers-training-photo{background-position:68% center}
  .careers-apply-photo{background-position:66% center}
  .careers-team-cta{background-position:69% center}
  .careers-team-cta .careers-closing-overlay{background:rgba(7,22,45,.68) !important}
}

