/* ============================================================
   UBUNTU — self-hosted, latin subset.
   Replaces the Google Fonts stylesheet the static build linked.
   font-display:swap so text paints immediately in the fallback
   and reflows once, rather than holding the first paint.
   ============================================================ */
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:300;font-display:swap;
  src:url(../fonts/ubuntu-300.woff2) format('woff2')}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/ubuntu-400.woff2) format('woff2')}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:500;font-display:swap;
  src:url(../fonts/ubuntu-500.woff2) format('woff2')}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/ubuntu-700.woff2) format('woff2')}

/* ============================================================
   VISTA TRAVEL — B2B HOMEPAGE · vista-travel.com
   Inherits the Vista B2C theme verbatim (tokens, Ubuntu, flat
   buttons, radii, logo). Delta = density, evidence surfaces,
   data typography. NO PRICES ANYWHERE.
   ============================================================ */
:root{
  --navy:#222342; --navy-deep:#1B2142; --royal:#3B65B1; --orange:#F24F2C;
  --orange-dark:#D6431F; --wa:#25D366; --wa-dark:#1EBB59;
  --white:#FFFFFF; --paper:#F7F6F2; --sand:#EFEDE6; --border:#E5E2D9;
  --muted:#6E7188; --muted-2:#9DA0B5;
  --ok:#1E8E5A; --stop:#C0392B;
  --r-lg:20px; --r-md:14px; --r-sm:10px;
  --sh:0 10px 30px rgba(27,33,66,.10); --sh-h:0 18px 44px rgba(27,33,66,.16);
  --container:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Ubuntu',sans-serif;color:var(--navy);background:#fff;line-height:1.6;font-size:16px}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
.wrap{max-width:var(--container);margin:0 auto;padding:0 24px}
h1,h2,h3,h4{line-height:1.14;font-weight:700}
section{padding:78px 0;position:relative}          /* B2B: denser than B2C's 92px */
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--orange)}
.eyebrow.blue{color:var(--royal)}
.sec-title{font-size:clamp(27px,3.6vw,40px);margin:12px 0 12px;letter-spacing:-.015em}
.sec-title em{font-style:normal;color:var(--orange);position:relative;white-space:nowrap}
.sec-title em svg{position:absolute;left:0;bottom:-8px;width:100%;height:10px}
.sec-sub{color:var(--muted);font-weight:300;font-size:16.5px;max-width:66ch}
.dark .sec-sub{color:rgba(255,255,255,.78)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}

/* data line — the B2B signature stamp */
.dataline{font-size:13px;font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}
.dataline .code{color:var(--navy);font-weight:700;letter-spacing:.03em}
.dataline .sep{color:var(--muted-2);padding:0 7px}
.num{font-variant-numeric:tabular-nums}

/* Buttons — FLAT (inherited) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:'Ubuntu',sans-serif;font-weight:500;
  font-size:15px;padding:14px 26px;border-radius:var(--r-sm);border:none;cursor:pointer;line-height:1;
  transition:background .18s, transform .18s;box-shadow:none !important}
.btn:hover{transform:translateY(-1px)}
.btn:focus-visible{outline:3px solid rgba(59,101,177,.45);outline-offset:2px}
.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-dark);color:#fff}
.btn-royal{background:var(--royal);color:#fff}.btn-royal:hover{background:#33589B;color:#fff}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:#15193A;color:#fff}
.btn-wa{background:var(--wa);color:#fff}.btn-wa:hover{background:var(--wa-dark);color:#fff}
.btn-line{background:transparent;color:var(--royal);border:1.5px solid var(--royal)}.btn-line:hover{background:var(--royal);color:#fff}
.btn-line-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45)}.btn-line-light:hover{background:rgba(255,255,255,.1);color:#fff}
.btn-ic{width:46px;height:46px;padding:0;border-radius:var(--r-sm)}
.btn-sm{padding:11px 18px;font-size:14px}

/* ---------- TOP BAR ---------- */
.utility{background:var(--navy-deep);color:#C9CDE3;font-size:12.5px;font-weight:300}
.utility .wrap{display:flex;align-items:center;gap:22px;min-height:38px}
.utility span,.utility a{display:inline-flex;align-items:center;gap:7px}
.utility a:hover{color:#fff}
.utility .right{margin-left:auto;display:flex;gap:22px;align-items:center}
.utility b{font-weight:500;color:#fff}
.utility .b2c-link{border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:4px 13px}
.utility .b2c-link:hover{border-color:var(--orange);color:#fff}
@media(max-width:900px){.utility .hide-m{display:none}}

/* ---------- HEADER ---------- */
.header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--border)}
.header .wrap{display:flex;align-items:center;gap:26px;min-height:74px}
nav.main{display:flex;gap:2px;margin-left:auto}
nav.main a{color:var(--navy);font-size:14.5px;padding:9px 12px;border-radius:8px;transition:background .15s,color .15s}
nav.main a:hover{background:var(--paper);color:var(--royal)}
.header .btn{padding:12px 20px;font-size:14px}
.burger{display:none;margin-left:auto;background:none;border:none;cursor:pointer;padding:8px}
@media(max-width:1180px){nav.main{display:none}.burger{display:block}.header .btn{display:none}}
.logo-svg{display:block}
.vlW{fill:var(--vl-word,#fff)}.vlO{fill:#ff4c1f}.vlB{fill:#005cf2}
.logo-lockup{display:flex;align-items:center;gap:12px}
.logo-lockup .tradetag{border-left:1px solid var(--border);padding-left:12px;font-size:10.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--royal);line-height:1.35;max-width:88px}
@media(max-width:520px){.logo-lockup .tradetag{display:none}}

/* Nav dropdowns (inherited) */
.nvi{position:relative;display:flex}
.nvi>a{display:inline-flex;align-items:center;gap:7px}
.nvi .chev{transition:transform .2s}
.nvi:hover>a .chev,.nvi:focus-within>a .chev{transform:rotate(180deg)}
.dd{position:absolute;top:100%;left:50%;transform:translate(-50%,10px);padding-top:14px;opacity:0;visibility:hidden;
  pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:80;min-width:290px}
.nvi:hover .dd,.nvi:focus-within .dd{opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto}
.dd-box{position:relative;background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;box-shadow:0 22px 50px rgba(27,33,66,.20)}
.dd-box::before{content:"";position:absolute;top:-6px;left:50%;width:12px;height:12px;background:#fff;
  border-left:1px solid var(--border);border-top:1px solid var(--border);transform:translateX(-50%) rotate(45deg)}
.dd-box a{display:flex;flex-direction:column;gap:1px;padding:9px 14px;border-radius:9px;transition:background .13s}
.dd-box a:hover{background:var(--paper)}
.dd-box a b{font-size:14px;font-weight:500;color:var(--navy)}
.dd-box a:hover b{color:var(--royal)}
.dd-box a span{font-size:12px;font-weight:300;color:var(--muted)}
.dd-box .dd-all{flex-direction:row;align-items:center;gap:8px;margin-top:6px;padding:12px 14px;border-top:1px solid var(--border);
  border-radius:0 0 9px 9px;font-size:13px;font-weight:500;color:var(--orange)}
.dd-box .dd-all:hover{background:rgba(242,79,44,.06);color:var(--orange)}
.dd-wide{min-width:540px}
.dd-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:6px}
.dd-cols .dd-all{grid-column:1/-1}
.dd-group{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);padding:8px 14px 4px}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:640px;display:flex;align-items:center;background:var(--navy-deep);padding:0}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(27,33,66,.92) 0%,rgba(27,33,66,.66) 48%,rgba(27,33,66,.24) 100%)}
.hero-inner{position:relative;z-index:2;color:#fff;width:100%;padding:80px 0 120px}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.hbadge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(4px);border-radius:999px;padding:8px 16px;font-size:12.5px;font-weight:400;letter-spacing:.04em}
.hero h1{font-size:clamp(34px,4.9vw,58px);max-width:17ch;letter-spacing:-.02em}
.hero h1 .u{position:relative;color:#fff;white-space:nowrap}
.hero h1 .u svg{position:absolute;left:0;bottom:-6px;width:100%;height:12px}
.hero p.lede{font-weight:300;font-size:clamp(15px,1.5vw,18.5px);color:rgba(255,255,255,.88);max-width:80ch;margin:18px 0 0}
.hero-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
/* rate dock — the B2B answer to the B2C trip search */
.rate-dock{position:absolute;left:0;right:0;bottom:-46px;z-index:10}
.rate-card{max-width:1100px;margin:0 auto;background:#fff;border-radius:var(--r-lg);padding:12px;display:grid;
  grid-template-columns:1.5fr 1fr 1fr auto;gap:10px;box-shadow:var(--sh-h)}
.field{background:var(--paper);border:1.5px solid var(--border);border-radius:var(--r-sm);padding:9px 14px;display:flex;flex-direction:column;gap:1px;transition:border-color .15s}
.field:focus-within{border-color:var(--royal)}
.field label{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.field select,.field input{border:none;background:transparent;font-family:'Ubuntu',sans-serif;font-size:15px;color:var(--navy);font-weight:500;outline:none;width:100%}
.field select{appearance:none;cursor:pointer;padding-right:22px;
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%233B65B1' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center}
.rate-card .btn{height:100%;min-height:56px;padding:0 26px;font-size:15.5px}
@media(max-width:1000px){.rate-card{grid-template-columns:1fr 1fr;margin:0 18px}.rate-card .btn{grid-column:1/-1}}
@media(max-width:560px){.rate-card{grid-template-columns:1fr}.hero{min-height:0}.hero-inner{padding:64px 0 110px}}

/* ---------- CREDENTIAL FACT STRIP ---------- */
.facts{background:#fff;padding:112px 0 0}
.facts-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.fact{padding:22px 20px;border-right:1px solid var(--border);background:#fff}
.fact:last-child{border-right:0}
.fact b{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:7px}
.fact span{font-size:17px;font-weight:500;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.3;display:block}
.fact i{font-style:normal;color:var(--orange)}
@media(max-width:980px){.facts-grid{grid-template-columns:1fr 1fr 1fr}.fact{border-bottom:1px solid var(--border)}}
@media(max-width:560px){.facts-grid{grid-template-columns:1fr 1fr}}

/* ---------- USP BAND ---------- */
.usp{background:#fff;padding:56px 0 30px}
.usp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.usp-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);
  padding:26px 22px 24px;overflow:hidden;box-shadow:0 4px 14px rgba(27,33,66,.05);
  transition:transform .2s,border-color .2s,box-shadow .2s}
.usp-card:hover{transform:translateY(-5px);border-color:var(--orange);box-shadow:var(--sh)}
.usp-card .num{position:absolute;top:8px;right:16px;font-size:52px;font-weight:700;color:rgba(34,35,66,.06);line-height:1;letter-spacing:-.02em}
.usp-card .ic{width:48px;height:48px;border-radius:12px;background:var(--orange);display:grid;place-items:center;margin-bottom:18px}
.usp-card:nth-child(even) .ic{background:var(--royal)}
.usp-card h3{font-size:17px;color:var(--navy);margin-bottom:7px;letter-spacing:-.01em}
.usp-card h3 i{font-style:normal;color:var(--orange)}
.usp-card p{font-size:13px;font-weight:300;color:var(--muted);line-height:1.6}
@media(max-width:980px){.usp-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.usp-grid{grid-template-columns:1fr}}

/* ---------- SERVICES — BENTO ---------- */
.services{background:var(--paper)}
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:126px;gap:18px;margin-top:42px}
.b-card{position:relative;border-radius:var(--r-md);overflow:hidden;display:flex;align-items:flex-end;color:#fff;background:var(--navy);
  box-shadow:var(--sh);transition:transform .25s, box-shadow .25s}
.b-card:hover{transform:translateY(-6px);box-shadow:var(--sh-h)}
.b-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .55s}
.b-card:hover img{transform:scale(1.05)}
.b-card::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg,rgba(27,33,66,.05) 30%,rgba(27,33,66,.92) 100%)}
.b-body{position:relative;z-index:2;padding:24px;width:100%}
.b-tag{display:inline-block;background:var(--orange);color:#fff;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 11px;border-radius:6px;margin-bottom:10px}
.b-card.royal .b-tag{background:var(--royal)}
.b-body h3{font-size:clamp(19px,1.9vw,25px);letter-spacing:-.01em}
.b-body p{font-size:13.5px;font-weight:300;color:rgba(255,255,255,.85);max-width:46ch;margin-top:6px}
.b-go{position:absolute;top:18px;right:18px;z-index:3;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;transition:background .2s, transform .2s}
.b-card:hover .b-go{background:var(--orange);border-color:var(--orange);transform:rotate(45deg)}
.b1{grid-column:span 7;grid-row:span 3}
.b2{grid-column:span 5;grid-row:span 3}
.b3{grid-column:span 5;grid-row:span 2}
.b4{grid-column:span 7;grid-row:span 2}
@media(max-width:900px){.b1,.b2,.b3,.b4{grid-column:span 12;grid-row:span 2}}
/* full service index under the bento */
.svc-index{margin-top:20px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:22px 24px}
.svc-index .lbl{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);display:block;margin-bottom:14px}
.svc-list{display:grid;grid-template-columns:repeat(4,1fr);gap:6px 18px}
.svc-list a{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:300;color:var(--navy);padding:7px 0;transition:color .15s,transform .15s}
.svc-list a:hover{color:var(--royal);transform:translateX(3px)}
.svc-list a svg{flex:none}
@media(max-width:900px){.svc-list{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.svc-list{grid-template-columns:1fr}}

/* ---------- PROGRAMS — SPEC CARDS (no price) ---------- */
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:42px}
.p-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 4px 14px rgba(27,33,66,.06);transition:transform .25s, box-shadow .25s}
.p-card:hover{transform:translateY(-6px);box-shadow:var(--sh-h)}
.p-media{position:relative;aspect-ratio:16/10;overflow:hidden}
.p-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.p-card:hover .p-media img{transform:scale(1.06)}
.p-code{position:absolute;top:0;left:22px;background:var(--navy);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.1em;
  padding:10px 12px 12px;border-radius:0 0 8px 8px;font-variant-numeric:tabular-nums}
.p-dur{position:absolute;right:14px;bottom:14px;background:rgba(27,33,66,.85);backdrop-filter:blur(3px);color:#fff;font-size:12.5px;
  font-weight:500;padding:8px 13px;border-radius:999px;display:inline-flex;gap:7px;align-items:center;font-variant-numeric:tabular-nums}
.p-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:12px;flex:1}
.p-tags{display:flex;flex-wrap:wrap;gap:7px}
.tag{font-size:11.5px;font-weight:500;padding:6px 11px;border-radius:999px;background:var(--sand);color:var(--navy);border:1px solid var(--border)}
.tag.blue{background:rgba(59,101,177,.1);color:var(--royal);border-color:rgba(59,101,177,.25)}
.tag.hot{background:rgba(242,79,44,.1);color:var(--orange-dark);border-color:rgba(242,79,44,.28)}
.tag.ok{background:rgba(30,142,90,.1);color:var(--ok);border-color:rgba(30,142,90,.28)}
.p-body h3{font-size:19.5px;letter-spacing:-.012em}
.p-route{font-size:12.5px;color:var(--muted);font-weight:400;display:flex;align-items:flex-start;gap:7px;line-height:1.5}
.p-route svg{flex:none;margin-top:3px}
.p-spec{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding:14px 0;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border)}
.p-spec span{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:300;color:var(--muted)}
.p-spec svg{flex:none}
.p-foot{margin-top:auto;display:flex;align-items:center;gap:10px}
.rate-note{margin-right:auto;font-size:12px;line-height:1.35}
.rate-note b{display:block;font-size:13.5px;font-weight:500;color:var(--navy)}
.rate-note small{color:var(--muted);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}
.p-foot .btn{height:46px;padding:0 18px;font-size:14px}
@media(max-width:1000px){.prog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:660px){.prog-grid{grid-template-columns:1fr}}

/* ---------- COVERAGE MATRIX ---------- */
.matrix{background:var(--navy-deep);color:#fff}
.matrix .sec-title{color:#fff}
.mx-wrap{margin-top:40px;border:1px solid rgba(255,255,255,.18);border-radius:var(--r-md);overflow-x:auto;background:rgba(255,255,255,.03)}
.mx{width:100%;border-collapse:collapse;font-size:14.5px;min-width:760px}
.mx th,.mx td{text-align:left;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.12)}
.mx thead th{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8FA4D6;background:rgba(255,255,255,.05);white-space:nowrap}
.mx tbody tr:last-child td{border-bottom:0}
.mx tbody tr:hover{background:rgba(255,255,255,.04)}
.mx td:first-child{font-weight:500;color:#fff}
.mx td{color:rgba(255,255,255,.82);font-weight:300}
.mx .dash{color:rgba(255,255,255,.32)}
.mx .yes{color:#8FE3B4;font-weight:400}
.mx-note{margin-top:16px;font-size:12.5px;font-weight:300;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:9px}

/* ---------- PARTNER TYPES ---------- */
.partners{background:#fff}
.pt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}
.pt-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:26px 24px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:9px;transition:transform .2s, box-shadow .2s,border-color .2s}
.pt-card:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--royal)}
.pt-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--royal)}
.pt-card:nth-child(2)::before{background:var(--orange)}
.pt-card:nth-child(3)::before{background:var(--navy)}
.pt-card:nth-child(4)::before{background:var(--orange)}
.pt-card:nth-child(5)::before{background:var(--navy)}
.pt-card:nth-child(6)::before{background:var(--royal)}
.pt-card .ic{width:46px;height:46px;border-radius:12px;background:var(--paper);border:1px solid var(--border);display:grid;place-items:center;margin-bottom:6px}
.pt-card h3{font-size:16.5px}
.pt-card p{font-size:13.5px;font-weight:300;color:var(--muted)}
.pt-card .go{margin-top:auto;padding-top:10px;font-size:13.5px;font-weight:500;color:var(--royal);display:inline-flex;align-items:center;gap:8px}
.pt-card:hover .go{color:var(--orange)}
@media(max-width:980px){.pt-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pt-grid{grid-template-columns:1fr}}

/* ---------- FAILURE MODES ---------- */
.fixes{background:var(--paper)}
.fm-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:42px}
.fm{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.fm-top{padding:24px 26px}
.fm-tag{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--stop);margin-bottom:9px}
.fm-top h3{font-size:17.5px;margin-bottom:7px}
.fm-top p{font-size:13.5px;font-weight:300;color:var(--muted);line-height:1.65}
.fm-bot{padding:20px 26px;background:rgba(30,142,90,.07);border-top:1px solid var(--border)}
.fm-bot .lbl{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ok);margin-bottom:8px}
.fm-bot p{font-size:13.5px;font-weight:300;color:#1D3B2E;line-height:1.65}
@media(max-width:860px){.fm-grid{grid-template-columns:1fr}}

/* ---------- HOW WE WORK ---------- */
.how{background:#fff}
.tl{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px;position:relative}
.tl::before{content:"";position:absolute;top:23px;left:12%;right:12%;height:2px;
  background:repeating-linear-gradient(90deg,var(--royal) 0 10px,transparent 10px 18px);opacity:.5}
.tl-step{text-align:center;padding:0 18px;position:relative}
.tl-step .dot{width:48px;height:48px;border-radius:50%;background:var(--orange);color:#fff;font-weight:700;font-size:16px;
  display:grid;place-items:center;margin:0 auto 18px;position:relative;z-index:2;border:5px solid #fff;font-variant-numeric:tabular-nums}
.tl-step:nth-child(2) .dot{background:var(--royal)}
.tl-step:nth-child(3) .dot{background:var(--navy)}
.tl-step:nth-child(4) .dot{background:var(--ok)}
.tl-step h3{font-size:16.5px;margin-bottom:6px}
.tl-step p{font-size:13.5px;font-weight:300;color:var(--muted)}
@media(max-width:900px){.tl{grid-template-columns:1fr 1fr;gap:34px 0}.tl::before{display:none}}
@media(max-width:560px){.tl{grid-template-columns:1fr}}

/* ---------- PARTNER BOOK ---------- */
.book{background:var(--paper)}
.book-table{margin-top:40px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.book-row{display:grid;grid-template-columns:1.2fr .7fr 1.5fr;gap:20px;padding:18px 26px;border-bottom:1px solid var(--border);align-items:center}
.book-row:last-child{border-bottom:0}
.book-row:hover{background:var(--paper)}
.book-who{font-size:15px;font-weight:500}
.book-ten{font-size:13px;font-weight:500;color:var(--royal);font-variant-numeric:tabular-nums}
.book-scope{font-size:13.5px;font-weight:300;color:var(--muted)}
.book-note{margin-top:18px;font-size:12.5px;font-weight:300;color:var(--muted);display:flex;align-items:center;gap:9px}
@media(max-width:760px){.book-row{grid-template-columns:1fr;gap:5px}}

/* ---------- INSIGHTS ---------- */
.insights{background:#fff}
.ins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:42px}
.ins{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:26px 24px;display:flex;flex-direction:column;gap:10px;
  transition:transform .2s,box-shadow .2s,border-color .2s}
.ins:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--orange)}
.ins h3{font-size:17px;line-height:1.35}
.ins p{font-size:13.5px;font-weight:300;color:var(--muted)}
.ins .dataline{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}
@media(max-width:900px){.ins-grid{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq{background:var(--paper)}
.faq-cols{display:grid;gap:12px;margin-top:40px;max-width:900px;margin-left:auto;margin-right:auto}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;height:fit-content}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 22px;font-weight:500;font-size:15.5px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary svg{flex:none;transition:transform .25s}
.faq-item[open] summary svg{transform:rotate(45deg)}
.faq-item[open] summary{color:var(--royal)}
.faq-body{padding:0 22px 20px;font-size:14px;font-weight:300;color:var(--muted);line-height:1.75}

/* ---------- RATE REQUEST ---------- */
.rr{background:var(--navy-deep);color:#fff;overflow:hidden}
.rr-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:center;position:relative;z-index:2}
.rr .sec-title{color:#fff}
.rr-points{display:grid;gap:14px;margin-top:26px}
.rr-points span{display:flex;align-items:flex-start;gap:12px;font-size:14.5px;font-weight:300;color:rgba(255,255,255,.9);line-height:1.6}
.rr-points svg{flex:none;margin-top:4px}
.rr-or{display:flex;align-items:center;gap:14px;margin-top:26px;color:rgba(255,255,255,.55);font-size:13px}
.rr-or::before,.rr-or::after{content:"";height:1px;flex:1;background:rgba(255,255,255,.2)}
.form-card{background:#fff;border-radius:var(--r-lg);padding:32px;color:var(--navy);box-shadow:var(--sh)}
.form-card h2,.form-card h3{font-size:20px;margin-bottom:4px}
.form-card>p{font-size:13.5px;color:var(--muted);font-weight:300;margin-bottom:20px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.f-full{margin-bottom:12px}
.f-lab{display:block;font-size:12px;font-weight:500;color:var(--navy);margin-bottom:5px}
.f-lab i{font-style:normal;color:var(--orange)}
.inp{width:100%;background:var(--paper);border:1.5px solid var(--border);border-radius:var(--r-sm);padding:12px 15px;font-family:'Ubuntu',sans-serif;font-size:14.5px;color:var(--navy);outline:none;transition:border-color .15s}
.inp:focus{border-color:var(--royal)}
textarea.inp{resize:vertical;min-height:92px}
.form-card .btn{width:100%;margin-top:6px}
.form-note{font-size:12px;color:var(--muted);font-weight:300;text-align:center;margin-top:12px}
@media(max-width:980px){.rr-grid{grid-template-columns:1fr}}
@media(max-width:560px){.f-row{grid-template-columns:1fr}}

/* ---------- FOOTER ---------- */
footer.vfoot{background:var(--navy);color:#B9BDD6;padding:0;position:relative;overflow:hidden}
.vf-wave{display:block;width:100%;height:54px;background:var(--navy-deep)}
.vf-wave svg{display:block;width:100%;height:100%}
.vf-main{padding:60px 0 42px}
.vf-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.35fr;gap:44px}
.vf-brand p{font-size:14px;font-weight:300;line-height:1.75;margin:18px 0 20px;max-width:38ch;color:#B9BDD6}
.vf-social{display:flex;gap:10px}
.vf-social a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;transition:background .2s,border-color .2s,transform .2s}
.vf-social a:hover{background:var(--orange);border-color:var(--orange);transform:translateY(-3px)}
.vf-col h3{color:#fff;font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:20px;position:relative;padding-bottom:12px}
.vf-col h3::after{content:"";position:absolute;left:0;bottom:0;width:28px;height:3px;border-radius:2px;background:var(--orange)}
.vf-col a{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:300;padding:6px 0;color:#B9BDD6;transition:color .15s,transform .15s}
.vf-col a svg{flex:none;opacity:0;transform:translateX(-4px);transition:opacity .15s,transform .15s}
.vf-col a:hover{color:#fff;transform:translateX(3px)}
.vf-col a:hover svg{opacity:1;transform:none}
.vf-contact .vf-item{display:flex;gap:13px;align-items:flex-start;padding:9px 0;font-size:14px;font-weight:300}
.vf-contact .vf-item svg{flex:none;margin-top:2px}
.vf-contact .vf-item b{display:block;font-weight:500;color:#fff;font-size:14px}
.vf-contact .vf-item span{font-size:12.5px;color:#8F93AF}
.vf-contact .btn{margin-top:12px}
.vf-trust{border-top:1px solid rgba(255,255,255,.12);padding:22px 0}
.vf-trust .wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.vf-license{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:300;color:#C9CDE3}
.vf-license .shield{width:40px;height:40px;border-radius:10px;background:rgba(242,79,44,.14);border:1px solid rgba(242,79,44,.4);display:grid;place-items:center;flex:none}
.vf-license b{display:block;color:#fff;font-weight:500;font-size:13.5px}
.vf-creds{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vf-creds .lbl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8F93AF;margin-right:4px}
.cred{height:32px;padding:0 12px;border:1px solid rgba(255,255,255,.28);border-radius:6px;display:inline-flex;align-items:center;gap:7px;
  font-size:11.5px;font-weight:500;color:#C9CDE3}
.vf-bottom{border-top:1px solid rgba(255,255,255,.12);padding:18px 0}
.vf-bottom .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12.5px;font-weight:300;color:#8F93AF}
.vf-bottom .links{margin-left:auto;display:flex;gap:20px}
.vf-bottom .links a{color:#8F93AF;transition:color .15s}
.vf-bottom .links a:hover{color:var(--orange)}
.vf-pattern{position:absolute;left:-50px;bottom:-56px;width:360px;height:414px;opacity:.07;pointer-events:none;user-select:none}
.vf-main,.vf-trust,.vf-bottom{position:relative;z-index:2}
@media(max-width:1020px){.vf-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.vf-grid{grid-template-columns:1fr}.vf-creds{margin-left:0}}

.wa-float{position:fixed;right:22px;bottom:22px;z-index:70;width:58px;height:58px;border-radius:50%;background:var(--wa);display:grid;place-items:center;transition:transform .2s, background .2s}
.wa-float:hover{transform:scale(1.08);background:var(--wa-dark)}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s, transform .7s}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important}.rv{opacity:1;transform:none}}

/* ---------- shared page chrome added for inner pages ---------- */
nav.main a[aria-current="page"]{color:var(--royal);background:var(--paper)}
.pagehead{background:var(--navy-deep);color:#fff;padding:54px 0 62px;position:relative;overflow:hidden}
.pagehead::after{content:"";position:absolute;right:-90px;top:-70px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,rgba(59,101,177,.30),transparent 68%)}
.pagehead .wrap{position:relative;z-index:2}
.crumb{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:300;color:#9AA3C4;margin-bottom:22px;flex-wrap:wrap}
.crumb a:hover{color:#fff}
.crumb span{color:#fff}
.crumb svg{opacity:.5}
.pagehead h1{font-size:clamp(30px,4.2vw,48px);letter-spacing:-.02em;max-width:20ch}
.pagehead h1 em{font-style:normal;color:var(--orange)}
.pagehead .lede{font-weight:300;font-size:clamp(15px,1.5vw,18px);color:rgba(255,255,255,.86);max-width:62ch;margin-top:16px}
.pagehead .ph-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.pagehead .ph-meta{display:flex;gap:28px;flex-wrap:wrap;margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16)}
.pagehead .ph-meta div b{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8FA4D6;margin-bottom:6px}
.pagehead .ph-meta div span{font-size:15px;font-weight:400;color:#fff;font-variant-numeric:tabular-nums}
.cta-band{background:var(--navy);border-radius:var(--r-lg);padding:44px;display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center;color:#fff}
.cta-band h2,.cta-band h3{font-size:clamp(21px,2.4vw,29px);letter-spacing:-.015em;margin-bottom:8px}
.cta-band p{font-size:15px;font-weight:300;color:rgba(255,255,255,.8);max-width:58ch}
.cta-band .acts{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:820px){.cta-band{grid-template-columns:1fr;padding:32px}}

/* ---------- shared blocks promoted from page modules ---------- */
.incl-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px}
.incl{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:26px 24px}
.incl h3{display:flex;align-items:center;gap:10px;font-size:16px;padding-bottom:15px;border-bottom:1px solid var(--border)}
.line-items{list-style:none}
.line-items li{padding:11px 0;border-bottom:1px solid var(--border);font-size:14px;font-weight:300;color:var(--navy)}
.line-items li:last-child{border-bottom:0}
.line-items.out li{color:var(--muted)}
.fine{margin-top:18px;font-size:13px;font-weight:300;color:var(--muted);max-width:78ch;line-height:1.7}
@media(max-width:820px){.incl-grid{grid-template-columns:1fr}}

.mx.light-mx thead th{background:var(--navy);color:#fff}
.mx.light-mx th,.mx.light-mx td{border-bottom-color:var(--border)}
.mx.light-mx td{color:var(--muted);font-weight:300}
.mx.light-mx td:first-child{color:var(--navy);font-weight:500}
.mx.light-mx .yes{color:#166E46}
.mx.light-mx tbody tr:hover{background:var(--paper)}

.code-badge{display:inline-block;background:var(--orange);color:#fff;font-size:12px;font-weight:700;letter-spacing:.14em;
  padding:7px 12px;border-radius:4px;margin-bottom:16px;font-variant-numeric:tabular-nums}

.svc-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:24px 22px;display:flex;flex-direction:column;gap:10px;
  transition:transform .2s,box-shadow .2s,border-color .2s}
.svc-card:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--royal)}
.svc-card .ic{width:44px;height:44px;border-radius:11px;background:var(--paper);border:1px solid var(--border);display:grid;place-items:center}
.svc-card h3,.svc-card h4{font-size:16.5px;letter-spacing:-.01em}
.svc-card p{font-size:13.5px;font-weight:300;color:var(--muted);line-height:1.6}
.svc-card .go{margin-top:auto;padding-top:8px;font-size:13px;font-weight:500;color:var(--royal);display:inline-flex;align-items:center;gap:8px}
.svc-card:hover .go{color:var(--orange)}

.ticks{list-style:none;display:grid;gap:8px;margin-top:6px;padding-top:14px;border-top:1px dashed var(--border)}
.ticks li{position:relative;padding-left:22px;font-size:13.5px;font-weight:300;color:var(--navy)}
.ticks li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--ok)}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr}}


/* ============================================================
   PAGE MODULES
   Ported verbatim from the static build in /site. The base above
   is untouched. Rules two pages share appear once; genuine
   page-level differences are scoped by the WordPress body class
   rather than allowed to override each other.
   ============================================================ */

/* ---------- POLICY DOCUMENTS  ·  terms-of-trade, booking-terms, privacy-policy ---------- */
.doc-layout{display:grid;grid-template-columns:1fr 280px;gap:52px;align-items:start}
.doc-aside{position:sticky;top:96px}
@media(max-width:980px){.doc-layout{grid-template-columns:1fr;gap:32px}.doc-aside{position:static}}
.doc{max-width:76ch}
.doc-intro{font-size:16.5px;font-weight:300;color:var(--navy);line-height:1.8;padding-bottom:24px;border-bottom:1px solid var(--border)}
.doc-sec{padding:30px 0;border-bottom:1px solid var(--border)}
.doc-sec:last-child{border-bottom:0}
.doc-sec h2{font-size:20px;font-weight:700;letter-spacing:-.012em;margin-bottom:14px;display:flex;gap:14px;align-items:baseline}
.doc-sec h2 span{font-size:12px;font-weight:700;color:var(--orange);font-variant-numeric:tabular-nums;letter-spacing:.08em;flex:none}
.doc-sec p{font-size:15px;font-weight:300;color:var(--muted);line-height:1.8;margin-bottom:14px;max-width:72ch}
.doc-sec p:last-child{margin-bottom:0}
.doc-sec b{font-weight:500;color:var(--navy)}
.doc-sec ul{list-style:none;margin:4px 0 14px}
.doc-sec ul li{position:relative;padding:9px 0 9px 22px;font-size:14.5px;font-weight:300;color:var(--muted);line-height:1.7;
  border-bottom:1px solid var(--border)}
.doc-sec ul li:last-child{border-bottom:0}
.doc-sec ul li::before{content:"";position:absolute;left:0;top:17px;width:7px;height:7px;border-radius:50%;background:var(--royal)}
.doc-toc{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:22px 20px}
.doc-toc span.t{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--royal);margin-bottom:14px}
.doc-toc a{display:block;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;font-weight:300;color:var(--navy);
  transition:color .15s,padding-left .15s}
.doc-toc a:last-child{border-bottom:0}
.doc-toc a:hover{color:var(--royal);padding-left:5px}
.doc-flag{margin-top:16px;background:rgba(242,79,44,.07);border:1px solid rgba(242,79,44,.3);border-radius:var(--r-md);padding:18px 20px}
.doc-flag b{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.doc-flag p{font-size:12.5px;font-weight:300;color:var(--muted);line-height:1.65;margin:0}

/* ---------- TRADE FORMS  ·  request-net-rates, become-a-partner ---------- */
.rq-layout{display:grid;grid-template-columns:1fr 344px;gap:40px;align-items:start}
.rq-aside{position:sticky;top:96px;display:grid;gap:16px}
@media(max-width:1040px){.rq-layout{grid-template-columns:1fr}.rq-aside{position:static}}
.form-card{padding:36px 34px}
.form-card>p{margin-bottom:6px}
.fs{margin-top:26px;padding-top:22px;border-top:1px solid var(--border)}
.fs-t{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:16px;
  font-variant-numeric:tabular-nums}
.f-help{display:block;font-size:12px;font-weight:300;color:var(--muted);margin-top:6px;line-height:1.55}
.form-card .btn{margin-top:24px}
@media(max-width:560px){.form-card{padding:26px 22px}.f-row{grid-template-columns:1fr}}
.rq-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:24px 22px}
.rq-card.alt{background:var(--paper)}
.rq-t{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--royal);margin-bottom:16px}
.rq-card.alt p{font-size:13.5px;font-weight:300;color:var(--muted);line-height:1.65;margin-bottom:16px}
.rq-steps{list-style:none;counter-reset:s}
.rq-steps li{counter-increment:s;position:relative;padding:0 0 16px 34px;border-left:1px solid var(--border);margin-left:11px}
.rq-steps li:last-child{border-left:0;padding-bottom:0}
.rq-steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:-11px;top:0;width:22px;height:22px;border-radius:50%;
  background:var(--navy);color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.rq-steps b{display:block;font-size:14px;font-weight:500;margin-bottom:3px;line-height:1.35}
.rq-steps span{font-size:12.5px;font-weight:300;color:var(--muted);line-height:1.55}
.rq-rows{margin-top:18px;border-top:1px solid var(--border)}
.rq-rows div{padding:10px 0;border-bottom:1px solid var(--border)}
.rq-rows b{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:3px}
.rq-rows span{font-size:13.5px;font-weight:400;color:var(--navy)}
.rq-note{margin-top:14px;font-size:12px;font-weight:300;color:var(--muted);line-height:1.6}

/* ---------- BRIEFING LIBRARY  ·  archive-vista_briefing ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);
  overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.feature:hover{transform:translateY(-5px);box-shadow:var(--sh-h);border-color:var(--royal)}
.feature-media{position:relative;min-height:320px}
.feature-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature-body{padding:40px 38px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.feature-body h2{font-size:clamp(23px,2.6vw,31px);letter-spacing:-.015em;line-height:1.2}
.feature-body p{font-size:15px;font-weight:300;color:var(--muted);line-height:1.7;max-width:52ch}
.feature-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12.5px;font-weight:300;color:var(--muted-2);
  padding-top:14px;border-top:1px solid var(--border)}
.feature-meta .dot{color:var(--border)}
.feature-go{font-size:14px;font-weight:500;color:var(--orange);display:inline-flex;align-items:center;gap:9px;margin-top:4px}
@media(max-width:900px){.feature{grid-template-columns:1fr}.feature-media{min-height:220px}.feature-body{padding:28px 24px}}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.fchip{background:#fff;border:1px solid var(--border);color:var(--navy);font-family:'Ubuntu',sans-serif;font-size:13.5px;font-weight:400;
  padding:10px 16px;border-radius:999px;cursor:pointer;transition:all .18s}
.fchip:hover{border-color:var(--royal);color:var(--royal)}
.fchip.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:500}
.ins[hidden]{display:none}
.ins-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px){.ins-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.ins-grid{grid-template-columns:1fr}}
.more-note{margin-top:28px;background:#fff;border:1px solid var(--border);border-left:3px solid var(--royal);border-radius:var(--r-md);
  padding:20px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.more-note svg{flex:none}
.more-note div{font-size:14px;font-weight:300;color:var(--muted);max-width:70ch}
.more-note b{font-weight:500;color:var(--navy)}
.more-note .btn{margin-left:auto}
@media(max-width:760px){.more-note .btn{margin-left:0}}
.lever-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.lever{border:1px solid rgba(255,255,255,.18);border-radius:var(--r-md);padding:20px 22px;background:rgba(255,255,255,.04)}
.lever b{display:block;font-size:15px;font-weight:500;color:#fff;margin-bottom:6px}
.lever span{font-size:13.5px;font-weight:300;color:rgba(255,255,255,.75);line-height:1.6}
@media(max-width:900px){.lever-grid{grid-template-columns:1fr}}

/* ---------- PROGRAMME CATALOGUE  ·  archive-vista_programme ---------- */
.spec-key{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:30px 32px}
.sk-head{max-width:60ch}
.sk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:22px;padding-top:22px;border-top:1px solid var(--border)}
.sk-grid b{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:7px}
.sk-grid span{font-size:13.5px;font-weight:300;color:var(--muted);line-height:1.6}
@media(max-width:900px){.sk-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.sk-grid{grid-template-columns:1fr}.spec-key{padding:24px 22px}}
.fcount{margin-top:16px;font-size:12.5px;font-weight:300;color:var(--muted);letter-spacing:.02em}
.fcount span{font-weight:500;color:var(--navy);font-variant-numeric:tabular-nums}
#catalogue{margin-top:26px}
.p-card[hidden]{display:none}
.post-type-archive-vista_programme .p-dur{font-weight:500}
.post-type-archive-vista_programme .lever-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:38px}
.post-type-archive-vista_programme .lever{border:1px solid rgba(255,255,255,.18);border-radius:var(--r-md);padding:20px 22px;background:rgba(255,255,255,.04);
  transition:border-color .2s,background .2s}
.post-type-archive-vista_programme .lever:hover{border-color:rgba(255,255,255,.36);background:rgba(255,255,255,.07)}
@media(max-width:900px){
  .post-type-archive-vista_programme .lever-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){.lever-grid{grid-template-columns:1fr}}

/* ---------- BRIEFING ARTICLE  ·  single-vista_briefing ---------- */
.art-layout{display:grid;grid-template-columns:1fr 320px;gap:52px;align-items:start}
.art-aside{position:sticky;top:96px;display:grid;gap:16px}
@media(max-width:1000px){.art-layout{grid-template-columns:1fr;gap:36px}.art-aside{position:static}}
.art{max-width:74ch}
.art p{font-size:16px;font-weight:300;color:var(--navy);line-height:1.85;margin-bottom:20px}
.art-lead{font-size:19px!important;font-weight:300;color:var(--navy);line-height:1.7!important;padding-bottom:24px;
  border-bottom:1px solid var(--border);margin-bottom:28px}
.art h2{font-size:23px;font-weight:700;letter-spacing:-.015em;margin:38px 0 14px}
.art b{font-weight:500}
.art-list{margin:0 0 22px;padding-left:0;list-style:none;counter-reset:al}
.art-list li{counter-increment:al;position:relative;padding:14px 0 14px 44px;border-bottom:1px solid var(--border);
  font-size:15px;font-weight:300;color:var(--navy);line-height:1.75}
.art-list li::before{content:counter(al,decimal-leading-zero);position:absolute;left:0;top:16px;font-size:12px;font-weight:700;
  color:var(--orange);font-variant-numeric:tabular-nums;letter-spacing:.06em}
.callout{background:var(--paper);border-left:3px solid var(--orange);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:22px 24px;margin:28px 0}
.co-t{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:9px}
.callout p{margin:0;font-size:15px}
.art-close{padding:22px 0 0;border-top:1px solid var(--border);font-size:16.5px!important;color:var(--navy)}
.art-foot{margin-top:34px;padding:24px 26px;background:var(--navy-deep);color:#fff;border-radius:var(--r-md)}
.af-t{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8FA4D6;margin-bottom:10px}
.art-foot p{color:rgba(255,255,255,.82)!important;font-size:14px!important;margin:0;line-height:1.75}
.toc a{display:block;padding:9px 0;border-bottom:1px solid var(--border);font-size:13.5px;font-weight:300;color:var(--navy);transition:color .15s,padding-left .15s}
.toc a:last-child{border-bottom:0}
.toc a:hover{color:var(--royal);padding-left:5px}

/* ---------- PROGRAMME SPEC  ·  single-vista_programme ---------- */
.spec-layout{display:grid;grid-template-columns:1fr 348px;gap:56px;align-items:start}
.spec-aside{position:sticky;top:96px}
@media(max-width:1040px){.spec-layout{grid-template-columns:1fr;gap:40px}.spec-aside{position:static}}
.fit-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.fit{font-size:12.5px;font-weight:400;padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:#fff}
.fit.yes{border-color:rgba(30,142,90,.32);background:rgba(30,142,90,.07);color:#166E46}
.fit.no{border-color:rgba(158,160,181,.4);background:var(--paper);color:var(--muted)}
.days{margin-top:30px;border-top:1px solid var(--border)}
.day{border-bottom:1px solid var(--border);background:#fff}
.day summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:16px;padding:18px 18px 18px 4px}
.day summary::-webkit-details-marker{display:none}
.day summary:hover{background:var(--paper)}
.day .dn{font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--orange);font-variant-numeric:tabular-nums}
.day .dt{font-size:16.5px;font-weight:500;color:var(--navy)}
.day .dpl{width:26px;height:26px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;transition:transform .25s,background .2s,border-color .2s}
.day[open] .dpl{transform:rotate(45deg);background:var(--orange);border-color:var(--orange)}
.day[open] .dpl path{stroke:#fff}
.dbody{padding:0 18px 22px 82px}
.dbody p{font-size:14.5px;font-weight:300;color:var(--muted);line-height:1.75;max-width:70ch}
.dmeta{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.dmeta li{font-size:11.5px;font-weight:500;padding:5px 11px;border-radius:999px;background:var(--sand);color:var(--navy);border:1px solid var(--border)}
@media(max-width:640px){.day summary{grid-template-columns:60px 1fr auto;gap:10px}.dbody{padding-left:4px}}
.levers-light{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.lv{background:#fff;border:1px solid var(--border);border-left:3px solid var(--royal);border-radius:var(--r-md);padding:18px 20px}
.lv b{display:block;font-size:15px;font-weight:500;margin-bottom:5px}
.lv span{font-size:13.5px;font-weight:300;color:var(--muted);line-height:1.6}
@media(max-width:760px){.levers-light,.incl-grid{grid-template-columns:1fr}}
.ops-notes{margin-top:48px;background:var(--navy-deep);color:#fff;border-radius:var(--r-lg);padding:32px 34px}
.ops-notes h3{display:flex;align-items:center;gap:11px;font-size:18px;margin-bottom:18px}
.ops-notes ul{list-style:none}
.ops-notes li{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.13);font-size:14.5px;font-weight:300;color:rgba(255,255,255,.84);line-height:1.7}
.ops-notes li:last-child{border-bottom:0}
.ops-notes b{color:#fff;font-weight:500}
.spec-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 24px;box-shadow:var(--sh)}
.sc-code{display:inline-block;background:var(--navy);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.12em;
  padding:6px 10px;border-radius:4px;font-variant-numeric:tabular-nums}
.spec-card h3{font-size:19px;letter-spacing:-.01em;margin:14px 0 16px;line-height:1.3}
.sc-rows{border-top:1px solid var(--border)}
.sc-rows div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--border)}
.sc-rows b{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.sc-rows span{font-size:13.5px;font-weight:400;color:var(--navy);text-align:right;font-variant-numeric:tabular-nums}
.sc-rate{margin:18px 0;padding:16px 18px;background:var(--paper);border:1px solid var(--border);border-radius:var(--r-sm);text-align:center}
.sc-rate small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
.sc-rate b{display:block;font-size:17px;font-weight:500;margin:5px 0 4px}
.sc-rate span{font-size:12px;font-weight:300;color:var(--muted)}
.spec-card .btn{width:100%;margin-bottom:9px}
.sc-note{font-size:12px;font-weight:300;color:var(--muted);text-align:center;line-height:1.55;margin-top:6px}

/* ---------- SERVICES ARCHIVE  ·  archive-vista_service ---------- */
.svc-group{margin-top:44px}
.svc-group-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:20px}
.svc-group-head .g-n{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);
  border:1px solid rgba(242,79,44,.35);border-radius:4px;padding:5px 10px;background:rgba(242,79,44,.07)}
.svc-group-head h2,.svc-group-head h3{font-size:21px;letter-spacing:-.01em}
.svc-group-head p{font-size:14px;font-weight:300;color:var(--muted);margin-left:auto}
.svc-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.svc-card.feat{border-color:rgba(59,101,177,.45);background:linear-gradient(180deg,rgba(59,101,177,.05),#fff 60%)}
@media(max-width:1040px){.svc-cards{grid-template-columns:1fr 1fr}.svc-group-head p{margin-left:0;width:100%}}
@media(max-width:560px){.svc-cards{grid-template-columns:1fr}}

/* ---------- SERVICE DETAIL  ·  single-vista_service ---------- */
.basis{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:26px 24px;display:flex;flex-direction:column;gap:11px;
  transition:transform .2s,box-shadow .2s,border-color .2s}
.basis:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--royal)}
.basis .tag{align-self:flex-start}
.basis h3{font-size:19px;letter-spacing:-.01em}
.basis p{font-size:14px;font-weight:300;color:var(--muted);line-height:1.65}
@media(max-width:900px){section .grid-3{grid-template-columns:1fr!important}}
.single-vista_service .incl-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:38px}
.single-vista_service .incl{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:28px 26px}
.single-vista_service .incl h3{display:flex;align-items:center;gap:10px;font-size:16px;letter-spacing:.01em;padding-bottom:16px;border-bottom:1px solid var(--border)}
.single-vista_service .line-items{list-style:none;margin-top:6px}
.single-vista_service .line-items li{padding:12px 0;border-bottom:1px solid var(--border);font-size:14.5px;font-weight:300;color:var(--navy)}
.single-vista_service .fine{margin-top:20px;font-size:13px;font-weight:300;color:var(--muted);max-width:80ch;line-height:1.7}
.mx-wrap.rv .mx.light-mx thead th{background:var(--navy);color:#fff}

/* ---------- COVERAGE  ·  archive-vista_destination, single-vista_destination ---------- */
.reg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.reg{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:26px 24px;display:flex;flex-direction:column;
  transition:transform .2s,box-shadow .2s,border-color .2s}
.reg:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--royal)}
.reg.on-request{background:linear-gradient(180deg,var(--paper),#fff 55%)}
.reg-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.reg-top h3{font-size:19px;letter-spacing:-.01em}
.reg-tag{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:5px 9px;border-radius:4px;white-space:nowrap}
.reg-tag.core{background:rgba(30,142,90,.1);color:#166E46;border:1px solid rgba(30,142,90,.3)}
.reg-tag.req{background:rgba(59,101,177,.1);color:var(--royal);border:1px solid rgba(59,101,177,.3)}
.reg-sub{font-size:12.5px;color:var(--muted-2);margin-top:6px;letter-spacing:.02em}
.reg .ticks{margin-top:16px}
.reg .ticks.part li::before{background:transparent;border:1.5px solid var(--royal)}
.reg-note{margin-top:auto;padding-top:16px;font-size:13px;font-weight:300;color:var(--muted);line-height:1.65;border-top:1px dashed var(--border);margin-top:18px}
@media(max-width:1000px){.reg-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.reg-grid{grid-template-columns:1fr}}

/* ---------- WHY VISTA  ·  page-why-vista ---------- */
.company-grid{display:grid;grid-template-columns:1fr 340px;gap:52px;align-items:start}
@media(max-width:980px){.company-grid{grid-template-columns:1fr;gap:36px}}
.who{display:flex;align-items:center;gap:16px;margin-top:28px;padding:20px 22px;background:var(--paper);border:1px solid var(--border);border-radius:var(--r-md)}
.who-av{width:54px;height:54px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px;flex:none}
.who b{display:block;font-size:16px;font-weight:500}
.who span{font-size:13.5px;font-weight:300;color:var(--muted)}
.cred-card{background:var(--navy-deep);color:#fff;border-radius:var(--r-lg);padding:28px 26px}
.cc-t{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#8FA4D6;margin-bottom:18px}
.cc-rows div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.13)}
.cc-rows div:last-child{border-bottom:0}
.cc-rows b{font-size:11.5px;font-weight:400;color:#9AA3C4;letter-spacing:.02em}
.cc-rows span{font-size:13.5px;font-weight:400;color:#fff;text-align:right}
.cc-note{margin-top:18px;font-size:12px;font-weight:300;color:#9AA3C4;line-height:1.6}

/* ---------- THANK YOU  ·  page-thank-you ---------- */
.ty-mark{width:58px;height:58px;border-radius:50%;background:rgba(37,211,102,.14);border:1px solid rgba(37,211,102,.45);
  display:grid;place-items:center;margin-bottom:22px}

/* ============================================================
   PRE-LAUNCH HOLDING PAGE
   No counterpart in the static build — this page exists only
   while the trade property is being built. Tokens, type scale
   and button rules are inherited; nothing new is invented.
   ============================================================ */
.vp-body{background:var(--navy-deep);color:#fff}
.vp{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:56px 24px}
.vp-inner{max-width:64ch;text-align:center;display:flex;flex-direction:column;align-items:center}
.vp-logo{--vl-word:#fff;margin-bottom:34px}
.vp-eyebrow{color:var(--orange)}
.vp-title{font-size:clamp(28px,4.4vw,44px);letter-spacing:-.02em;margin:16px 0 18px}
.vp-lede{font-size:16.5px;font-weight:300;color:rgba(255,255,255,.78);line-height:1.75;max-width:60ch}
.vp-note{margin-top:18px;font-size:14.5px;font-weight:300;color:#8FA4D6;line-height:1.7;max-width:58ch}
.vp-acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:34px}
.vp-facts{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;margin-top:40px;padding-top:26px;
  border-top:1px solid rgba(255,255,255,.13);width:100%;font-size:12.5px;font-weight:300;color:#9AA3C4}
.vp-facts span{display:inline-flex;align-items:center;gap:7px}
.vp-b2c{margin-top:26px;display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:400;color:#C9CDE3;
  border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:9px 18px;transition:border-color .18s,color .18s}
.vp-b2c:hover{border-color:var(--orange);color:#fff}
@media(max-width:560px){.vp-acts .btn{width:100%}}

/* ============================================================
   GLOBAL CHROME — Phase 1
   The static build styles the burger but never opens anything:
   below 1180px it hides the nav and the CTA and stops there.
   The panel below is the only new design in this file. It adds
   no colour, no typeface and no radius that the base does not
   already define.
   ============================================================ */

/* logo wordmark colour — the static carried this as an inline style */
.vista-logo--ink{--vl-word:#00175a}
.vista-logo--light{--vl-word:#fff}

/* skip link */
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:12px;left:12px;z-index:100;width:auto;height:auto;margin:0;clip:auto;
  background:var(--navy);color:#fff;padding:12px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:500}

/* search form */
.vsearch{display:flex;gap:10px;margin-top:26px;max-width:560px}
.vsearch input[type=search]{flex:1;font-family:'Ubuntu',sans-serif;font-size:14.5px;font-weight:300;color:var(--navy);
  background:#fff;border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 16px}
.vsearch input[type=search]:focus{outline:none;border-color:var(--royal)}
.vsearch input[type=search]::placeholder{color:var(--muted-2)}

/* the mobile panel's own footer — desktop never shows it */
.nav-m-foot{display:none}

@media(max-width:1180px){
  /* the panel hangs off the sticky header, so it follows it on scroll */
  nav.main{display:block;position:absolute;top:100%;left:0;right:0;margin:0;gap:0;
    background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
    max-height:calc(100vh - 74px);max-height:calc(100dvh - 74px);overflow-y:auto;
    padding:10px 0 22px;z-index:59;
    opacity:0;visibility:hidden;transform:translateY(-6px);pointer-events:none;
    transition:opacity .18s ease,transform .18s ease,visibility .18s}
  nav.main.is-open{opacity:1;visibility:visible;transform:none;pointer-events:auto}

  /* top-level rows */
  nav.main>a,.nvi>a{display:flex;align-items:center;width:100%;padding:14px 24px;border-radius:0;
    font-size:16px;font-weight:500;color:var(--navy)}
  nav.main>a:hover,.nvi>a:hover{background:var(--paper)}
  .nvi{display:block;position:static}
  .nvi>a .chev{display:none}

  /* panels are already open — no second tap to reach a service line */
  .dd{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;padding:0;min-width:0}
  .dd-box{border:0;border-radius:0;box-shadow:none;padding:0 24px 8px;background:transparent}
  .dd-box::before{display:none}
  .dd-cols{display:block}
  .dd-box a{padding:10px 0;border-radius:0}
  .dd-box a:hover{background:transparent}
  .dd-box a b{font-weight:400;color:var(--muted)}
  .dd-box a:hover b{color:var(--royal)}
  .dd-box a span{display:none}
  .dd-group{padding:14px 0 2px}
  .dd-box .dd-all{margin-top:4px;padding:12px 0;color:var(--royal)}

  /* the CTA the header drops at this width */
  .nav-m-foot{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding:18px 24px 0;
    border-top:1px solid var(--border)}
  .nav-m-foot .btn{display:inline-flex;width:100%}

  .burger[aria-expanded="true"]{background:var(--paper);border-radius:8px}
  body.vista-nav-open{overflow:hidden}
}

/* ============================================================
   SHARED BLOCK CLASSES — Phase 2
   The static build carried these as one-off inline styles. Once
   a partial is used on more than two pages the override becomes
   a class, per CLAUDE.md §4. Values are unchanged.
   ============================================================ */
.sec-title--sm{font-size:clamp(23px,2.7vw,32px)}
.sec-sub--wide{max-width:none}
.vista-narrow{max-width:70ch}
.vista-cta-section{padding-bottom:88px}
.vista-key-section{padding-bottom:26px}
.vista-catalogue-section{padding-top:34px}

/* ============================================================
   SERVICE AND COVERAGE — Phase 3
   Classes replacing the static build's repeated inline styles.
   Values unchanged; nothing new is designed here.
   ============================================================ */
.vista-paper{background:var(--paper)}
.vista-centred{text-align:center;max-width:70ch;margin:0 auto}
.mx-wrap--light{background:#fff;border-color:var(--border)}
.vista-prose{margin-top:20px;font-size:15.5px;font-weight:300;color:var(--muted);line-height:1.8}
.vista-prose p+p{margin-top:14px}

/* the static build carried these two as inline margins */
.vista-ways{margin-top:40px}
.vista-bases{margin-top:30px}

/* ============================================================
   PARTNERS AND CONVERSION — Phase 4
   Classes replacing the static build's repeated inline styles.
   ============================================================ */
.vista-pt-grid{margin-top:40px}
.vista-form-section{padding-bottom:40px}
.form-card>p i{font-style:normal;color:var(--orange)}

/* the honeypot is a real field that must never be seen or focused */
.vista-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ============================================================
   BRIEFINGS, COMPANY AND POLICY — Phase 5
   Classes replacing the static build's repeated inline styles.
   ============================================================ */
.vista-doc-section{padding-bottom:80px}
.vista-article-section{padding-bottom:40px}
.vista-block{width:100%}
.vista-block + .vista-block{margin-top:9px}
.ins-cat{font-size:11px}

/* ---------- TRADE HOME — Phase 6b ---------- */
.vista-matrix-acts{margin-top:34px}
.vista-rr-acts{margin-top:18px}

/* ---------- OWNER-REQUESTED OVERRIDES ---------- */
/* Hero headline widened from the static build's 17ch so it breaks over
   two lines rather than three at desktop widths. Requested 2026-08-22. */
.hero h1{max-width:22ch}

/* ---------- HERO BACKGROUND VIDEO ---------- */
/* Same box as .hero-media img, which the base already covers. The poster
   attribute paints first; the frame only replaces it once playback starts. */
.hero-video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
@media (prefers-reduced-motion: reduce){.hero-video{display:none}}

/* ---------- BUTTON VARIANTS THE STATIC BUILD USES BUT NEVER DEFINED ---------- */
/* .btn-dark and .btn-outline appear in the markup of three static pages with no
   rule behind them, so those buttons render transparent and unreadable. Mapped
   to the two variants the design already has rather than invented: dark = the
   navy fill, outline = the royal line button. */
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:#15193A;color:#fff}
.btn-outline{background:transparent;color:var(--royal);border:1.5px solid var(--royal)}
.btn-outline:hover{background:var(--royal);color:#fff}

/* ---------- YOUTUBE HERO BACKGROUND ---------- */
/* The hero box is not 16:9, so the frame is oversized in whichever direction
   is short and centred — the same result object-fit:cover gives a video. */
.hero-yt{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .6s ease}
.hero-yt.is-playing{opacity:1}
.hero-yt iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:0;
  width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;pointer-events:none}
@media (prefers-reduced-motion: reduce){.hero-yt{display:none}}

/* ---------- REVEAL-ON-SCROLL SAFETY NET ---------- */
/* .rv starts at opacity:0 and is revealed by the observer in vista-b2b.js, so
   a script that never runs takes most of the page with it. The hidden state is
   therefore conditional on the class the head bootstrap writes: no script, or a
   script that failed to load, and every .rv block is simply visible from the
   start. See vista_reveal_bootstrap() in inc/enqueue.php. */
html:not(.vista-js) .rv{opacity:1;transform:none}

/* ---------- PAGE HEAD PHOTOGRAPHY ---------- */
/* The navy band was built to sit over something: it is already relative and
   already clips. An image drops in behind the text with a scrim over it heavy
   enough that white type stays at full contrast — the band reads the same
   whether or not a photo has been chosen, which is why nothing else moves. */
.pagehead .ph-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.pagehead .ph-media img{width:100%;height:100%;object-fit:cover;display:block}
.pagehead .ph-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(27,33,66,.96) 0%,rgba(27,33,66,.9) 48%,rgba(27,33,66,.6) 100%)}
@media(max-width:820px){
  .pagehead .ph-media::after{background:linear-gradient(180deg,rgba(27,33,66,.88) 0%,rgba(27,33,66,.95) 60%)}
}
/* The decorative circle is doing the same job as the photograph, so it steps
   back rather than sitting on top of it. */
.pagehead.has-media::after{opacity:.35}

/* ---------- CARD PHOTOGRAPHY ---------- */
/* Region and service cards carry no image in the static build. One is shown
   only when the entry has a featured image, so a set without pictures looks
   exactly as the design drew it. */
.reg-media,.svc-media{display:block;height:150px;overflow:hidden;
  border-radius:var(--r-md) var(--r-md) 0 0;background:var(--sand)}
/* Pulled out to the card edge, so the padding is cancelled per card rather
   than assumed — the two cards are padded differently. */
.reg-media{margin:-26px -24px 18px}
.svc-media{margin:-24px -22px 16px}
.reg-media img,.svc-media img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .45s ease}
.reg:hover .reg-media img,.svc-card:hover .svc-media img{transform:scale(1.04)}

/* ---------- THREE-UP CARD ROW ---------- */
/* The six operating standards on the company page. The default grid is four
   across, which leaves the last row half empty with six cards; three across
   fills both rows. The breakpoints are the ones .usp-grid already uses. */
.usp-grid.vista-ways--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.usp-grid.vista-ways--3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.usp-grid.vista-ways--3{grid-template-columns:1fr}}

/* ---------- HEADINGS A SCREEN READER NEEDS AND THE DESIGN DOES NOT ----------
   The trust band under the hero has no visible heading — the design is right,
   it does not need one. But that left an h1 followed directly by h3s, which is
   a broken outline for anyone navigating by heading. The heading is supplied
   and hidden rather than the card markup being changed, so the shared component
   stays identical everywhere it is used.
   Clip rather than display:none — a hidden element is not announced at all. */
.vista-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ---------- LET THE WIDE TABLE SCROLL INSTEAD OF THE PAGE ----------
   .mx-wrap already has overflow-x:auto so the service matrix scrolls inside
   itself. It could not: a grid item defaults to min-width:auto, so the table's
   own minimum width pushed the column wider than the screen and the whole
   programme page scrolled sideways on a phone — 786px of layout inside a 375px
   viewport. min-width:0 is what lets the overflow container do its job. */
.spec-layout > .spec-main,
.spec-layout > .spec-aside{min-width:0}

/* ---------- BUILD CREDIT ----------
   Last thing in the bottom bar, quieter than the legal links beside it. The
   heart takes currentColor so it dims and brightens with the line it sits on
   instead of being a fixed red the palette never chose. */
.vf-build{display:inline-flex;align-items:center;gap:5px;color:#6E7291}
.vf-build svg{flex:none;display:block}
.vf-build a{color:#8F93AF;transition:color .15s}
.vf-build a:hover,.vf-build a:focus-visible{color:var(--orange)}

/* The legal links stop claiming the right edge so the credit can have it. */
.vf-bottom .links{margin-left:auto}
.vf-bottom .vf-build{margin-left:0}
@media(max-width:640px){
	/* Stacked at this width, so the credit starts its own line rather than
	   trailing the legal links on a half-empty row. */
	.vf-bottom .links{margin-left:0}
	.vf-bottom .vf-build{width:100%}
}
