
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;
  }
}


/* ==============================================================
   FINAL NAVIGATION — HOME / PARTNERS / CAREERS / CONTACT
   ============================================================== */
.header-actions{
  gap:22px;
}

.nav-links{
  gap:24px;
}

.header-cta-group{
  gap:12px !important;
}

.site-header .header-secondary{
  min-height:46px;
  padding:0 18px;
}

@media(max-width:1100px){
  .header-actions{gap:16px}
  .nav-links{gap:17px}
  .site-header .btn{
    padding-left:16px;
    padding-right:16px;
    font-size:13px;
  }
}

@media(max-width:900px){
  .header-actions{
    margin-left:auto;
  }
}


/* ==============================================================
   TELIO INFRASTRUCTURE SOCIAL LINKS
   ============================================================== */
.social-links{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:22px;
}

.social-links a{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.24);
  color:#fff;
  text-decoration:none;
  transition:
    transform .24s var(--fx-ease, cubic-bezier(.16,1,.3,1)),
    background-color .24s ease,
    border-color .24s ease;
}

.social-links svg{
  width:20px;
  height:20px;
  fill:currentColor;
}

@media(hover:hover) and (pointer:fine){
  .social-links a:hover{
    transform:translateY(-3px);
    background:#fff;
    border-color:#fff;
    color:var(--navy-900);
  }
}

.contact-social-links{
  margin-top:26px;
}

.contact-social-links a{
  width:46px;
  height:46px;
  border-color:rgba(255,255,255,.34);
}

@media(prefers-reduced-motion:reduce){
  .social-links a{
    transition:none!important;
  }
}


/* ==============================================================
   TELIO INFRASTRUCTURE — LEGAL MODAL & COOKIE CONSENT
   ============================================================== */
.footer-legal-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin-top:28px;
  padding:19px 0;
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
}

.footer-legal-row button,
.legal-inline-button{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:var(--slate-300);
  font:700 10px/1.4 var(--body);
  letter-spacing:.09em;
  text-transform:uppercase;
  cursor:pointer;
  text-align:left;
  transition:color .2s ease;
}

.footer-legal-row button:hover,
.footer-legal-row button:focus-visible,
.legal-inline-button:hover,
.legal-inline-button:focus-visible{
  color:#fff;
  outline:none;
  text-decoration:underline;
  text-underline-offset:4px;
}

.form-legal-note{
  margin-top:16px;
  max-width:780px;
  color:var(--slate-500);
  font-size:11px;
  line-height:1.6;
}

.form-legal-note .legal-inline-button{
  color:var(--navy-700);
  font-size:inherit;
  letter-spacing:0;
  text-transform:none;
  font-weight:700;
}

.form-legal-note .legal-inline-button:hover,
.form-legal-note .legal-inline-button:focus-visible{
  color:var(--navy-950);
}

.telio-legal-modal{
  width:min(920px,calc(100vw - 34px));
  max-width:none;
  max-height:88vh;
  padding:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:10px;
  background:#fff;
  color:var(--navy-950);
  box-shadow:0 30px 90px rgba(2,12,27,.42);
  overflow:hidden;
}

.telio-legal-modal::backdrop{
  background:rgba(4,14,31,.76);
  backdrop-filter:blur(7px);
}

.telio-legal-modal[open]{
  animation:telioLegalIn .3s cubic-bezier(.16,1,.3,1) both;
}

@keyframes telioLegalIn{
  from{opacity:0;transform:translateY(14px) scale(.985)}
  to{opacity:1;transform:none}
}

.telio-legal-shell{
  display:flex;
  flex-direction:column;
  max-height:88vh;
  background:#fff;
}

.telio-legal-header{
  position:relative;
  z-index:2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:24px 28px 20px;
  border-bottom:1px solid var(--line);
  background:#fff;
}

.telio-legal-eyebrow{
  color:var(--navy-700);
  font-size:9px;
  font-weight:800;
  letter-spacing:.13em;
}

.telio-legal-header h2{
  margin-top:7px;
  font-family:var(--display);
  font-size:clamp(28px,3.2vw,42px);
  line-height:1;
  letter-spacing:-.04em;
}

.telio-legal-close{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--navy-950);
  font:400 30px/1 var(--body);
  cursor:pointer;
  transition:transform .2s ease,background-color .2s ease,color .2s ease;
}

.telio-legal-close:hover{
  transform:rotate(5deg);
  background:var(--navy-950);
  color:#fff;
}

.telio-legal-scroll{
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:30px 32px 44px;
  scroll-behavior:smooth;
}

.telio-legal-panel{
  max-width:790px;
  margin:0 auto;
  color:#435269;
  font-size:15px;
  line-height:1.72;
}

.telio-legal-panel[hidden]{
  display:none!important;
}

.telio-legal-panel p + p{
  margin-top:14px;
}

.telio-legal-panel h3{
  margin:31px 0 10px;
  font-family:var(--display);
  color:var(--navy-950);
  font-size:21px;
  line-height:1.15;
  letter-spacing:-.025em;
}

.telio-legal-panel ul{
  margin:12px 0 0;
  padding-left:22px;
}

.telio-legal-panel li + li{
  margin-top:8px;
}

.telio-legal-panel a{
  color:var(--navy-700);
  font-weight:700;
  text-underline-offset:3px;
}

.telio-legal-panel address{
  margin-top:12px;
  padding:18px 20px;
  border-left:3px solid var(--navy-700);
  background:var(--paper-dim);
  color:var(--navy-900);
  font-style:normal;
  line-height:1.65;
}

.telio-legal-updated{
  margin-bottom:22px;
  color:var(--navy-700);
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.telio-cookie-choice{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
  margin-top:18px;
  padding:22px 0;
  border-top:1px solid var(--line);
}

.telio-cookie-choice h3{
  margin:0 0 7px;
}

.telio-cookie-choice p{
  margin:0;
  font-size:13px;
}

.telio-switch{
  position:relative;
  width:52px;
  height:30px;
  cursor:pointer;
}

.telio-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.telio-switch span{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#cbd5e1;
  transition:background-color .2s ease;
}

.telio-switch span::after{
  content:"";
  position:absolute;
  width:24px;
  height:24px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 8px rgba(7,22,45,.22);
  transition:transform .2s ease;
}

.telio-switch input:checked + span{
  background:var(--navy-700);
}

.telio-switch input:checked + span::after{
  transform:translateX(22px);
}

.telio-switch input:focus-visible + span{
  outline:3px solid rgba(47,111,196,.28);
  outline-offset:3px;
}

.telio-switch input:disabled + span{
  background:#6e7f92;
  opacity:.65;
}

.telio-gpc-note{
  margin-top:20px!important;
  padding:14px 16px;
  border:1px solid #b9d6c7;
  background:#edf8f2;
  color:#225c41;
  font-size:12px;
}

.telio-cookie-settings-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  margin-top:30px;
  padding-top:22px;
  border-top:1px solid var(--line);
}

.telio-cookie-reject,
.telio-cookie-customize,
.telio-cookie-accept{
  border:1px solid var(--navy-800);
  background:#fff;
  color:var(--navy-900);
}

.telio-cookie-banner{
  position:fixed;
  z-index:10020;
  left:22px;
  right:22px;
  bottom:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  max-width:1180px;
  margin:0 auto;
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:rgba(7,22,45,.97);
  color:#fff;
  box-shadow:0 24px 70px rgba(2,12,27,.42);
  backdrop-filter:blur(16px);
}

.telio-cookie-banner[hidden]{
  display:none!important;
}

.telio-cookie-banner-copy{
  max-width:650px;
}

.telio-cookie-banner-copy strong{
  font-family:var(--display);
  font-size:17px;
}

.telio-cookie-banner-copy p{
  margin-top:5px;
  color:#c4d0dd;
  font-size:12px;
  line-height:1.55;
}

.telio-cookie-banner-copy button{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:#fff;
  font:700 inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}

.telio-cookie-banner-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px;
  flex:0 0 auto;
}

.telio-cookie-banner .btn{
  min-height:44px;
  padding:0 16px;
  white-space:nowrap;
  font-size:12px;
}

body.telio-legal-open{
  overflow:hidden;
}

@media(max-width:760px){
  .footer-legal-row{
    gap:11px 18px;
  }

  .telio-legal-modal{
    width:calc(100vw - 18px);
    max-height:94vh;
    border-radius:8px;
  }

  .telio-legal-shell{
    max-height:94vh;
  }

  .telio-legal-header{
    padding:19px 18px 16px;
  }

  .telio-legal-scroll{
    padding:24px 20px 34px;
  }

  .telio-legal-panel{
    font-size:14px;
  }

  .telio-cookie-settings-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .telio-cookie-settings-actions .btn{
    width:100%;
    justify-content:center;
  }

  .telio-cookie-banner{
    left:10px;
    right:10px;
    bottom:10px;
    align-items:stretch;
    flex-direction:column;
    gap:15px;
    padding:18px;
  }

  .telio-cookie-banner-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }

  .telio-cookie-banner-actions .btn{
    justify-content:center;
  }

  .telio-cookie-banner-actions .btn-primary{
    grid-column:1 / -1;
  }
}

@media(prefers-reduced-motion:reduce){
  .telio-legal-modal[open]{
    animation:none;
  }

  .telio-legal-close,
  .telio-switch span,
  .telio-switch span::after{
    transition:none!important;
  }
}


/* ==============================================================
   MOBILE NAVIGATION — ACCESSIBLE HAMBURGER DRAWER
   ============================================================== */
.mobile-nav-toggle,
.mobile-nav-backdrop,
.mobile-nav-drawer{
  display:none;
}

@media(max-width:900px){
  .site-header .wrap{
    justify-content:space-between !important;
  }

  .site-header .header-actions{
    display:none !important;
  }

  .mobile-nav-toggle{
    appearance:none;
    display:inline-flex;
    width:46px;
    height:46px;
    padding:0;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.48);
    border-radius:4px;
    background:rgba(5,18,38,.08);
    color:#fff;
    cursor:pointer;
    position:relative;
    z-index:2;
    transition:
      color .22s ease,
      border-color .22s ease,
      background-color .22s ease,
      transform .22s ease;
  }

  .mobile-nav-toggle:hover{
    background:rgba(255,255,255,.12);
  }

  .mobile-nav-toggle:active{
    transform:scale(.97);
  }

  .mobile-nav-toggle-lines,
  .mobile-nav-toggle-lines::before,
  .mobile-nav-toggle-lines::after{
    display:block;
    width:20px;
    height:2px;
    border-radius:999px;
    background:currentColor;
  }

  .mobile-nav-toggle-lines{
    position:relative;
  }

  .mobile-nav-toggle-lines::before,
  .mobile-nav-toggle-lines::after{
    content:"";
    position:absolute;
    left:0;
  }

  .mobile-nav-toggle-lines::before{top:-6px}
  .mobile-nav-toggle-lines::after{top:6px}

  .site-header.is-scrolled .mobile-nav-toggle{
    color:var(--navy-900);
    border-color:rgba(11,31,58,.28);
    background:#fff;
  }

  .mobile-nav-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:190;
    background:rgba(3,12,27,.64);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    backdrop-filter:blur(3px);
    transition:opacity .28s ease,visibility .28s ease;
  }

  .mobile-nav-drawer{
    display:flex;
    position:fixed;
    z-index:200;
    top:0;
    right:0;
    width:min(88vw,390px);
    height:100vh;
    height:100dvh;
    padding:0;
    flex-direction:column;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:#fff;
    color:var(--navy-950);
    box-shadow:-24px 0 70px rgba(3,12,27,.28);
    transform:translate3d(102%,0,0);
    visibility:hidden;
    transition:
      transform .34s cubic-bezier(.16,1,.3,1),
      visibility .34s ease;
  }

  body.mobile-nav-open{
    overflow:hidden;
  }

  body.mobile-nav-open .mobile-nav-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  body.mobile-nav-open .mobile-nav-drawer{
    transform:translate3d(0,0,0);
    visibility:visible;
  }

  .mobile-nav-head{
    display:flex;
    min-height:82px;
    padding:18px 22px;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--line);
  }

  .mobile-nav-label{
    font-family:var(--mono);
    font-size:11px;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--navy-700);
  }

  .mobile-nav-close{
    appearance:none;
    width:44px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:#fff;
    color:var(--navy-950);
    font:400 29px/1 var(--body);
    cursor:pointer;
  }

  .mobile-nav-links{
    display:flex;
    padding:18px 22px 10px;
    flex-direction:column;
  }

  .mobile-nav-links a{
    display:flex;
    min-height:58px;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    border-bottom:1px solid var(--line);
    color:var(--navy-950);
    font-family:var(--display);
    font-size:21px;
    font-weight:700;
    line-height:1.1;
    letter-spacing:-.025em;
    text-decoration:none;
  }

  .mobile-nav-links a::after{
    content:"";
    width:7px;
    height:7px;
    flex:0 0 auto;
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    transform:rotate(45deg);
    opacity:.46;
  }

  .mobile-nav-links a[aria-current="page"]{
    color:var(--navy-700);
  }

  .mobile-nav-links a[aria-current="page"]::before{
    content:"";
    width:7px;
    height:7px;
    flex:0 0 auto;
    margin-right:-6px;
    border-radius:50%;
    background:var(--navy-700);
  }

  .mobile-nav-ctas{
    display:grid;
    gap:11px;
    padding:24px 22px 20px;
  }

  .mobile-nav-ctas .btn{
    width:100%;
    min-height:52px;
    justify-content:center;
    text-align:center;
  }

  .mobile-nav-ctas .mobile-nav-secondary{
    border-color:var(--navy-800);
    background:#fff;
    color:var(--navy-900);
  }

  .mobile-nav-meta{
    margin-top:auto;
    padding:22px;
    border-top:1px solid var(--line);
    color:var(--slate-500);
    font-size:12px;
    line-height:1.6;
  }

  .mobile-nav-meta a{
    color:var(--navy-800);
    font-weight:700;
    text-decoration:none;
  }
}

@media(prefers-reduced-motion:reduce){
  .mobile-nav-toggle,
  .mobile-nav-backdrop,
  .mobile-nav-drawer{
    transition:none !important;
  }
}


/* ==============================================================
   MOBILE HEADER — FINAL LOGO VISIBILITY FIX
   The legacy mobile rule hid every span inside .brand; the actual
   supplied logo stack is also a span. Restore it explicitly.
   ============================================================== */
@media(max-width:900px){
  .site-header .brand{
    display:flex !important;
    width:auto !important;
    height:auto !important;
    min-width:96px;
    flex:0 0 auto;
    align-items:center;
    opacity:1 !important;
    visibility:visible !important;
    position:relative;
    z-index:3;
  }

  .site-header .brand > .brand-logo-stack{
    display:block !important;
    width:96px !important;
    height:56px !important;
    aspect-ratio:auto !important;
    flex:0 0 96px !important;
    opacity:1 !important;
    visibility:visible !important;
    overflow:visible !important;
  }

  .site-header .brand-logo{
    display:block !important;
    visibility:visible !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:contain !important;
    object-position:left center !important;
    transition:opacity .24s ease !important;
  }

  .site-header:not(.is-scrolled) .brand-logo-white{
    opacity:1 !important;
  }

  .site-header:not(.is-scrolled) .brand-logo-blue{
    opacity:0 !important;
  }

  .site-header.is-scrolled .brand > .brand-logo-stack{
    width:88px !important;
    height:51px !important;
    flex-basis:88px !important;
  }

  .site-header.is-scrolled .brand-logo-white{
    opacity:0 !important;
  }

  .site-header.is-scrolled .brand-logo-blue{
    opacity:1 !important;
  }
}

/* Services photography preview. Each section uses a distinct visual treatment. */
.services-photo-hero{
  background-image:
    linear-gradient(90deg,rgba(5,18,38,.90) 0%,rgba(5,18,38,.73) 40%,rgba(5,18,38,.26) 69%,rgba(5,18,38,.08) 100%),
    linear-gradient(180deg,rgba(5,18,38,.03),rgba(5,18,38,.16)),
    var(--services-hero) !important;
  background-size:cover !important;
  background-position:center center !important;
}
.services-photo-hero .p15-hero-overlay{
  background:linear-gradient(180deg,rgba(5,18,38,.04),rgba(5,18,38,.14)) !important;
}
.services-portal-photo{
  background-size:cover;
  background-position:center center;
}
.services-portal-photo .p15-photo-overlay{
  background:linear-gradient(90deg,rgba(7,22,45,.75),rgba(7,22,45,.62),rgba(7,22,45,.70)) !important;
}
.services-portal-photo .p15-status-grid > div{
  background:rgba(7,22,45,.68);
  border-color:rgba(203,215,229,.34);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  backdrop-filter:blur(8px);
}
.services-cta-photo{
  background-size:cover;
  background-position:center 55%;
}
.services-cta-photo .tint-a{
  background:linear-gradient(90deg,rgba(7,22,45,.68),rgba(7,22,45,.58),rgba(7,22,45,.68));
  mix-blend-mode:multiply;
}
.services-cta-photo .tint-b{opacity:.12}
@media(max-width:920px){
  .services-photo-hero{background-position:65% center !important}
  .services-portal-photo{background-position:58% center}
}
@media(max-width:600px){
  .services-photo-hero{background-position:72% center !important}
  .services-portal-photo{background-position:62% center}
  .services-cta-photo{background-position:58% center}
}

