@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/montserrat-400.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/montserrat-500.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/montserrat-600.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/montserrat-700.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/montserrat-800.woff2) format('woff2')}
@font-face{font-family:'Aldrich';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/aldrich-400.woff2) format('woff2')}

/* ===================================================================
   1st Pillar — site-wide design system
   Calibrated to mockups: dark NAVY heroes · WHITE body · TEAL accents.
   =================================================================== */

:root{
  /* Colours */
  --navy:#0B1E31;            /* main hero NAVY — 1st Pillar V6 brand */
  --navy-elevated:#0F2440;   /* slightly lighter — for stats card / elevated surfaces */
  --teal:#2DD4A5;            /* V6 brand TEAL */
  --teal-hover:#1B9E7A;
  --teal-deep:#1B9E7A;       /* deck TEAL_DARK */
  --teal-light:#E4F7F0;      /* deck TEAL_LIGHT */
  --teal-pale:#F0FCF8;       /* deck TEAL_PALE */
  --pale-blue:#DCE3EE;       /* light blue — footer / soft sections */
  --pale-blue-2:#C9D3E0;     /* slightly darker variant for borders */
  --border:#E5E8EC;
  --muted:#5F6B7A;
  --subtle:#8E97A1;

  /* Layout */
  --radius:10px;
  --radius-lg:14px;
  --container:1340px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:16px;line-height:1.6;color:var(--navy);background:#fff;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}

/* ====== Typography ====== */
h1,h2,h3,h4,h5{
  font-family:'Montserrat',sans-serif;font-weight:700;
  letter-spacing:-0.015em;line-height:1.12;margin:0;color:var(--navy);
}
h1{font-size:45px;font-weight:700;letter-spacing:-0.02em;line-height:1.30}
h2{font-size:34px}
h3{font-size:22px}
h4{font-size:16px}
p{margin:0 0 1em}
a{color:inherit;text-decoration:none}
sup{font-size:0.7em;top:-0.3em;position:relative}

/* ====== Layout primitives ====== */
.container{max-width:var(--container);margin:0 auto;padding:0 20px}

/* ====== Hero — solid NAVY, fills full viewport height ====== */
.hero{
  position:relative;
  background:var(--navy);          /* solid V6 navy */
  color:#fff;
  overflow:hidden;
  min-height:100vh;                 /* fills the first laptop viewport */
  padding-bottom:140px;             /* space for stats bar */
}

/* ====== Top nav ====== */
.top-nav{
  position:relative;z-index:10;
  display:flex;align-items:center;
  max-width:var(--container);margin:0 auto;
  padding:20px 20px 0;
}
/* Logo — same shape as the login version (teal column with "1" bottom-left,
   "1ST" + rule + "PILLAR" beside) but scaled to nav-appropriate size. */
.logo{
  display:inline-flex;align-items:flex-end;gap:9px;
  text-decoration:none;color:inherit;
}
/* The logo is the home link, so it needs a quiet cue that it is clickable.
   A fade rather than a colour change, because the lockup sits on navy in the
   header and on white in the footer and one rule has to suit both. No
   transition — animating opacity on a text lockup promotes it to its own
   compositor layer and the type re-rasterises, which reads as a flicker. */
.logo:hover{opacity:.72}
.logo:focus-visible{opacity:.72;outline:2px solid var(--teal);outline-offset:5px}
.logo-box{
  width:31px;height:44px;
  background:var(--teal);
  position:relative;flex-shrink:0;
  display:flex;align-items:flex-end;justify-content:flex-start;
  padding:0 0 4px 6px;
  color:var(--navy);font-weight:700;font-size:22px;line-height:1;
}
.logo-type{
  display:flex;flex-direction:column;line-height:1.05;padding-bottom:2px;
  color:#fff;
}
.logo-type .t1{
  font-size:12px;font-weight:600;
  letter-spacing:0.16em;color:inherit;
}
/* Reset the superscript ST so 1ST reads flat like the login version */
.logo-type .t1 sup{
  font-size:1em;top:0;position:static;vertical-align:baseline;
}
/* Hidden — the rule is now provided by border-top on .t2 */
.logo-type .bar{display:none}
.logo-type .t2{
  font-size:21px;font-weight:600;letter-spacing:0.05em;color:inherit;
  border-top:1.5px solid #fff;
  margin-top:3px;padding-top:1px;
}

.nav-menu{
  display:flex;gap:44px;align-items:center;
  list-style:none;padding:0;
  margin:0 44px 0 auto;                  /* push right; equal 44px gap to Login */
  font-size:15px;font-weight:600;
}
.nav-menu a{
  color:#fff;                               /* full white, no opacity dimming */
  position:relative;padding:6px 2px;
  transition:color .15s;
}
/* Hover: colour shift to teal + animated underline */
.nav-menu a::after{
  content:'';
  position:absolute;left:50%;bottom:0;
  width:0;height:2px;background:var(--teal);
  transition:width .2s ease, left .2s ease;
}
.nav-menu a:hover,
.nav-menu a.active{color:var(--teal)}
.nav-menu a:hover::after,
.nav-menu a.active::after{width:100%;left:0}

/* ====== Buttons ====== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 26px;border-radius:8px;
  font-weight:600;font-size:14.5px;letter-spacing:0.01em;
  transition:all .15s;cursor:pointer;border:none;text-decoration:none;white-space:nowrap;
  font-family:inherit;
}
.btn-primary{background:var(--teal);color:#000}
.btn-primary:hover{background:var(--teal-hover)}
.btn-outline-teal{background:transparent;color:#fff;border:1.5px solid var(--teal)}
.btn-outline-teal:hover{background:rgba(45,212,165,0.12)}
.btn-outline-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.35)}
.btn-outline-light:hover{border-color:#fff}
.btn-outline-dark{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.btn-outline-dark:hover{background:var(--navy);color:#fff}
.btn-lg{padding:14px 30px;font-size:15px}

/* ====== Hero content ====== */
.hero-inner{
  position:relative;z-index:5;
  max-width:var(--container);margin:0 auto;
  padding:100px 20px 0;
}
.hero-content{max-width:780px}
.hero h1{color:#fff;margin-bottom:30px}
.hero h1 .accent{color:var(--teal);display:block;white-space:nowrap}
.hero h1 .w{color:#fff;display:block;white-space:nowrap}
.hero-lede{
  font-size:17px;line-height:1.65;
  color:rgba(255,255,255,0.78);
  font-weight:400;max-width:480px;margin-bottom:38px;
}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}

/* ====== Stats card overlapping hero bottom ====== */
.stats-card{
  position:absolute;
  left:0;right:0;bottom:32px;
  z-index:6;
}
.stats-card-inner{
  max-width:var(--container);margin:0 auto;padding:0 20px;
}
.stats-row{
  background:var(--navy-elevated);
  border-radius:14px;
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid rgba(255,255,255,0.06);
  overflow:hidden;
}
.stat-item{
  position:relative;
  display:flex;align-items:center;gap:18px;
  padding:36px 36px;
  font-size:15.5px;color:rgba(255,255,255,0.88);line-height:1.35;
  font-weight:500;
}
/* Short centered divider between cards (instead of full-height border) */
.stat-item::before{
  content:'';
  position:absolute;
  left:0;top:50%;transform:translateY(-50%);
  width:1px;height:48%;
  background:rgba(255,255,255,0.18);
}
.stat-item:first-child::before{display:none}
.stat-icon{
  width:44px;height:44px;flex-shrink:0;
  color:#fff;opacity:0.9;
}
.stat-icon svg{width:100%;height:100%}

/* ====== Section utilities ====== */
.section{padding:56px 0}
.section-sm{padding:40px 0}
.section-white{background:#fff}
.section-ivory{background:var(--pale-blue)}
.section-dark{background:var(--navy);color:#fff}
.section-dark h1,.section-dark h2,.section-dark h3,.section-dark h4{color:#fff}

.eyebrow{
  display:inline-block;font-size:12px;font-weight:700;
  color:var(--teal-deep);text-transform:uppercase;letter-spacing:0.14em;margin-bottom:14px;
}
.section-dark .eyebrow{color:var(--teal)}
.lede{font-size:18px;line-height:1.6;color:var(--muted);max-width:640px;margin-top:20px}
.section-dark .lede{color:rgba(255,255,255,0.78)}
.muted-lede{font-size:15px;color:var(--muted);margin-bottom:18px}
.cta-link{color:var(--teal-deep);font-weight:600;font-size:15px}
.cta-link:hover{color:var(--teal-hover)}
.cta-link-wrap{margin-top:26px}

/* ====== Two-col blocks ====== */
.two-col{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
}
.two-col.reverse > *:first-child{order:2}
.mockup-block{
  border-radius:var(--radius-lg);overflow:hidden;
  background:var(--pale-blue-2);aspect-ratio:16/11;
  background-size:cover;background-position:center;
  box-shadow:0 20px 50px rgba(0,0,0,0.15);
}
.why-image{
  border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:4/3;
  background-size:cover;background-position:center;
  filter:brightness(0.85) saturate(0.95);
}

/* ====== Advisory row ====== */
.advisory-wrap{
  display:grid;grid-template-columns:1fr 2.4fr;gap:56px;align-items:center;
}
.advisory-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.service-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:22px 14px;
  text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;
  min-height:130px;justify-content:center;
  transition:transform .15s, box-shadow .15s, border-color .15s;
  color:inherit;text-decoration:none;
}
.service-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(11,30,49,0.06);
  border-color:var(--teal-deep);
}
.icon-circle{
  width:42px;height:42px;
  background:rgba(27,158,122,0.1);color:var(--teal-deep);
  border-radius:10px;display:inline-flex;align-items:center;justify-content:center;
}
.icon-circle svg{width:22px;height:22px}
.service-card h4{font-size:14px;font-weight:600;line-height:1.25}

/* ====== Why it matters (dark) ====== */
.feature-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:28px 40px;margin-top:32px;
}
.feat{display:flex;flex-direction:column;gap:10px}
.feat .icon-circle{background:rgba(45,212,165,0.14);color:var(--teal)}
.feat h4{color:#fff;font-size:15px;margin:0}
.feat p{color:rgba(255,255,255,0.7);font-size:13.5px;margin:0}

/* ====== CTA splits ====== */
.cta-split{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:56px}
.cta-card{
  background:var(--navy-elevated);color:#fff;padding:34px;border-radius:var(--radius-lg);
  display:flex;gap:18px;align-items:flex-start;border:1px solid rgba(255,255,255,0.06);
}
.cta-card .icon-circle{background:rgba(45,212,165,0.15);color:var(--teal);flex-shrink:0}
.cta-card h4{color:#fff;margin-bottom:8px;font-size:17px}
.cta-card p{color:rgba(255,255,255,0.72);font-size:14px;margin-bottom:14px;line-height:1.5}
.cta-card a.link{color:var(--teal);font-weight:600;font-size:14px}

/* ====== Footer ====== */
.site-footer{background:var(--pale-blue);padding:72px 0 32px;color:var(--navy)}
.footer-grid{
  display:grid;
  /* Each track sizes to its content; free space distributed equally
     between them. Brand pins left, Company pins right, ORSIA/Advisory
     sit evenly spaced between — same visual gap between all four. */
  grid-template-columns:auto auto auto auto;
  justify-content:space-between;
  align-items:flex-start;
  gap:48px;                       /* minimum gap; space-between will widen */
  padding-bottom:48px;border-bottom:1px solid var(--pale-blue-2);
}
.footer-tagline{font-size:15px;color:var(--muted);margin:18px 0 22px;max-width:260px;line-height:1.6}
.footer-col h5{
  font-size:14px;text-transform:uppercase;letter-spacing:0.14em;
  margin:6px 0 18px;color:var(--navy);font-weight:700;
}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:11px;font-size:15.5px}
.footer-col a{color:var(--muted);transition:color .15s}
.footer-col a:hover{color:var(--navy)}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:26px;font-size:14px;color:var(--muted);
}
.footer-bottom a:hover{color:var(--navy)}
.social-row{display:flex;gap:8px}
.social-row a{
  width:32px;height:32px;border-radius:50%;
  background:var(--navy);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .15s;
}
.social-row a:hover{background:var(--teal-deep)}
.social-row svg{width:14px;height:14px}
.footer-logo{color:var(--navy) !important}
.footer-logo .logo-type{color:var(--navy)}
.footer-logo .t1,.footer-logo .t2{color:var(--navy)}
.footer-logo .t2{border-top-color:var(--navy);border-top-width:1.5px}
.footer-logo .bar{background:var(--navy)}

/* ====== Inner-page hero (NAVY, photo on right, fills viewport) ====== */
.page-hero{
  position:relative;
  background:var(--navy);
  color:#fff;
  overflow:hidden;
}
.page-hero-inner{
  position:relative;z-index:5;
  max-width:var(--container);margin:0 auto;
  padding:56px 20px 80px;
  display:grid;grid-template-columns:1.05fr 1fr;
  gap:64px;align-items:start;        /* top-anchor — h1 reads from the top */
  min-height:calc(100vh - 130px);
}
.hero-cta-row{
  display:flex;gap:14px;flex-wrap:wrap;
  margin-top:56px;             /* subtly connected to the lede above */
}
.page-hero-breadcrumb{
  position:relative;z-index:5;
  max-width:var(--container);margin:0 auto;
  padding:18px 20px 0;
}
.page-hero-copy{max-width:540px}
.page-hero-visual{position:relative;align-self:start}
.page-hero h1{font-size:45px;font-weight:700;line-height:1.30;letter-spacing:-0.02em;margin:0 0 26px;color:#fff}
.page-hero .hero-tagline{font-size:24px;font-weight:600;color:#fff;line-height:1.35;margin:0 0 22px}
.page-hero .hero-lede{
  font-size:16.5px;line-height:1.65;color:rgba(255,255,255,0.78);
  font-weight:400;max-width:520px;margin-bottom:32px;
}
.page-hero-photo{
  width:100%;aspect-ratio:5/4;
  border-radius:var(--radius-lg);overflow:hidden;
  background-size:cover;background-position:center;
  filter:brightness(0.85) saturate(0.95);
  box-shadow:0 24px 60px rgba(0,0,0,0.35);
}
.breadcrumb{font-size:13px;color:rgba(255,255,255,0.6);font-weight:500;letter-spacing:0.02em}
.breadcrumb a{color:rgba(255,255,255,0.6);transition:color .15s}
.breadcrumb a:hover{color:var(--teal)}
.breadcrumb .sep{margin:0 10px;color:rgba(255,255,255,0.35)}
.breadcrumb .current{color:rgba(255,255,255,0.85)}
.eyebrow-on-dark{color:var(--teal) !important;margin-bottom:18px}

/* CTA bar — absolutely positioned, sits directly above the feature strip
   and overlays the bottom of the diagram (home's stats-card pattern). */
.page-hero--with-strip .hero-cta-bar{
  position:absolute;
  left:0;right:0;
  bottom:118px;                /* sits on top of feature strip */
  z-index:7;
  background:transparent;       /* no mid-blue band — blend with NAVY */
}
.hero-cta-bar{position:relative;z-index:5}
.hero-cta-bar-inner{
  max-width:var(--container);margin:0 auto;
  padding:14px 20px;
  display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-start;
}

/* Hero feature strip — pinned to bottom of hero, overlays diagram below */
.page-hero--with-strip .hero-feature-strip{
  position:absolute;
  left:0;right:0;
  bottom:0;
  z-index:7;
  margin-top:0;
}
.hero-feature-strip{
  position:relative;z-index:5;
  background:transparent;        /* no mid-blue band — blend with NAVY */
  border-top:1px solid rgba(255,255,255,0.06);
  margin-top:12px;
}
.hero-feature-row{
  max-width:var(--container);margin:0 auto;
  padding:24px 20px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px;
}
.hero-feature{display:flex;align-items:flex-start;gap:14px;color:#fff}
.hero-feature-num{
  font-family:'Montserrat',sans-serif;
  font-size:13px;font-weight:700;color:var(--teal);
  letter-spacing:0.06em;padding-top:2px;flex-shrink:0;
}
.hero-feature strong{
  display:block;font-size:14.5px;font-weight:700;
  color:#fff;line-height:1.3;margin-bottom:4px;
}
.hero-feature span{
  display:block;font-size:13px;font-weight:500;
  color:rgba(255,255,255,0.65);line-height:1.45;
}

/* ORSIA page — pillar diagram in hero */
.pillar-diagram{
  width:100%;max-width:567px;display:block;
  margin:-75px auto 0;          /* shifted up 75px from centre */
  transform:translateX(-20px);  /* shifted 20px left */
  filter:drop-shadow(0 0 24px rgba(72,229,194,0.10));
}
/* Centre the diagram vertically in its column (text col stays top-anchored) */
.page-hero-inner > div:nth-child(2){
  align-self:center;
}
/* Right-column compact pillar list, sits at bottom under the diagram */
.hero-pillar-list{
  list-style:none;padding:24px 0 0;margin:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:14px 24px;
  border-top:1px solid rgba(255,255,255,0.10);
  max-width:480px;margin-left:auto;margin-right:auto;
  width:100%;
}
.hero-pillar-list li{
  display:flex;align-items:center;gap:10px;
  font-size:13.5px;font-weight:600;color:#fff;
}
.hero-pillar-list .pillar-num{
  font-size:12px;font-weight:700;
  color:var(--teal);letter-spacing:0.04em;flex-shrink:0;
}

/* Section header (centered) */
.section-head{text-align:center;max-width:680px;margin:0 auto 32px}
.section-head h2{margin-bottom:14px}
.section-head .lede{margin:0 auto;color:var(--muted)}

/* Expertise grid (advisory page — 6 large cards) */
.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.expertise-card{
  position:relative;
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:22px 22px 44px;
  display:flex;flex-direction:column;gap:10px;
  text-decoration:none;color:inherit;
  transition:transform .15s, box-shadow .15s, border-color .15s;
  min-height:150px;
}
.expertise-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(11,30,49,0.07);
  border-color:var(--pale-blue-2);
}
.expertise-card .icon-circle{
  margin-bottom:4px;
  background:var(--pale-blue);color:var(--navy);
}
.expertise-card h3{font-size:19px;font-weight:700}
.expertise-card p{font-size:14.5px;color:var(--muted);line-height:1.55;margin:0}
.expertise-card .arrow{
  position:absolute;right:24px;bottom:22px;
  width:24px;height:24px;color:var(--navy);
  transition:transform .15s;
}
.expertise-card:hover .arrow{transform:translateX(3px)}

/* Service detail blocks (advisory page) */
.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.service-detail.reverse > *:first-child{order:2}
.service-detail .lede{margin-top:18px}
.detail-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:24px;
}
.detail-card h4{
  font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.14em;
  color:var(--teal-deep);margin:0 0 14px;
}
.detail-card .who-row{
  display:block;
  font-size:14px;font-weight:600;color:var(--navy);
  line-height:1.55;margin-bottom:24px;
}
.who-tag{
  display:inline;padding:0;border:none;background:none;
}
.who-tag:not(:last-child)::after{
  content:' · ';
  color:var(--subtle);
  font-weight:500;margin:0 4px;
}
.outcome-list{list-style:none;padding:0;margin:0 0 22px}
.outcome-list li{
  position:relative;padding:9px 0 9px 26px;font-size:14.5px;color:var(--navy);
  border-bottom:1px solid var(--border);
}
.outcome-list li:last-child{border-bottom:none}
.outcome-list li::before{
  content:'';position:absolute;left:2px;top:16px;
  width:8px;height:4px;
  border-left:1.5px solid var(--navy);
  border-bottom:1.5px solid var(--navy);
  transform:rotate(-45deg);
}

/* Conversation strip (advisory page) */
.conversation-strip{
  background:var(--navy);color:#fff;
  padding:48px 20px;
}
.conversation-inner{
  max-width:var(--container);margin:0 auto;
  display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;
}
.conversation-inner .icon-circle{
  background:rgba(220,227,238,0.14);color:#fff;
  width:54px;height:54px;border-radius:14px;flex-shrink:0;
  border:1px solid rgba(255,255,255,0.18);
}
.conversation-inner .icon-circle svg{width:26px;height:26px}
.conversation-inner h3{color:#fff;font-size:22px;margin:0 0 4px}
.conversation-inner p{color:rgba(255,255,255,0.72);font-size:14.5px;margin:0}

/* ORSIA page — challenge cards (4-card grid) */
.challenge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.challenge-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:26px 22px 28px;
  display:flex;flex-direction:column;gap:12px;
}
.challenge-card .icon-circle{background:var(--pale-blue);color:var(--navy);width:38px;height:38px}
.challenge-card .icon-circle svg{width:20px;height:20px}
.challenge-card h4{font-size:15px;font-weight:700;line-height:1.3;margin:0}
.challenge-card p{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0}

/* ORSIA page — 'brings it all together' band (pale tint) */
.section-pale{background:var(--pale-blue)}

/* ORSIA page — bottom trust strip (5 mini features in NAVY) */
.trust-strip{
  background:var(--navy);color:#fff;
  padding:36px 0;
  border-top:1px solid rgba(255,255,255,0.06);
}
.trust-strip-inner{
  max-width:var(--container);margin:0 auto;padding:0 20px;
  display:grid;grid-template-columns:repeat(5,1fr);gap:24px;align-items:center;
}
.trust-item{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.trust-item .icon-circle{
  background:rgba(72,229,194,0.10);color:var(--teal);
  width:44px;height:44px;border-radius:12px;
}
.trust-item .icon-circle svg{width:22px;height:22px}
.trust-item span{
  font-size:12.5px;font-weight:600;color:rgba(255,255,255,0.85);line-height:1.35;
}

/* Responsive */
@media (max-width:1000px){
  h1{font-size:42px}h2{font-size:30px}
  .hero{min-height:auto;padding-bottom:0}
  .hero-photo{position:relative;width:100%;height:300px}
  .hero-fade{display:none}
  .hero-inner{padding-top:40px;padding-bottom:60px}
  .stats-card{position:static;padding:0 0 40px}
  .stats-card-inner{padding:0 24px}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .stat-item{border-bottom:1px solid rgba(255,255,255,0.08)}
  .two-col,.advisory-wrap,.cta-split,.footer-grid{grid-template-columns:1fr;gap:40px}
  .feature-grid{grid-template-columns:1fr}
  .advisory-row{grid-template-columns:repeat(2,1fr)}
  .nav-menu{display:none}
  .section{padding:64px 0}
  .page-hero-inner{grid-template-columns:1fr;gap:32px;padding:24px 20px 40px;min-height:auto}
  .page-hero h1{font-size:38px}
  .page-hero-photo{aspect-ratio:16/10;max-height:280px}
  .expertise-grid{grid-template-columns:1fr;gap:14px}
  .service-detail{grid-template-columns:1fr;gap:32px}
  .service-detail.reverse > *:first-child{order:0}
  .conversation-inner{grid-template-columns:auto 1fr;text-align:left}
  .conversation-inner .btn{grid-column:1 / -1;justify-self:start}
  .challenge-grid{grid-template-columns:1fr;gap:14px}
  .trust-strip-inner{grid-template-columns:repeat(2,1fr);gap:28px 16px}
  .hero-feature-row{grid-template-columns:repeat(2,1fr);gap:24px 20px}
}

/* ============================================================
   v2 patterns added for full-website build
   ============================================================ */

/* Photo placeholders — coloured blocks where real photos will sit */
.photo-placeholder{
  width:100%;
  background:var(--navy-elevated);
  border-radius:var(--radius-lg);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,0.4);
  font-size:13px;font-weight:500;
  text-align:center;padding:20px;
  position:relative;
  overflow:hidden;
}
.photo-placeholder::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(72,229,194,0.04) 0%,rgba(11,30,49,0) 70%);
  pointer-events:none;
}
.photo-placeholder--5x4{aspect-ratio:5/4}
.photo-placeholder--16x10{aspect-ratio:16/10}
.photo-placeholder--16x11{aspect-ratio:16/11}
.photo-placeholder--4x3{aspect-ratio:4/3}
.photo-placeholder--square{aspect-ratio:1/1}
.photo-placeholder--card{aspect-ratio:16/10;border-radius:14px 14px 0 0}
.photo-placeholder--light{
  background:var(--pale-blue);color:var(--muted);
}

/* Trust bar (design partners / pilot trusts) */
.partners-bar{
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:28px 0;
  background:#fff;
}
.partners-inner{
  max-width:var(--container);margin:0 auto;padding:0 20px;
  display:flex;align-items:center;justify-content:center;gap:48px;
  flex-wrap:wrap;
}
.partners-label{
  font-size:11px;font-weight:700;color:var(--subtle);
  letter-spacing:0.16em;text-transform:uppercase;
  padding-right:12px;border-right:1px solid var(--border);
}
.partner-name{
  font-size:14px;font-weight:700;color:var(--muted);
  opacity:0.75;
}

/* Testimonials grid */
.testimonial-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  margin-top:32px;
}
.testimonial-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:28px 26px;
  display:flex;flex-direction:column;gap:16px;
}
.testimonial-mark{
  font-family:Georgia,serif;font-size:40px;
  color:var(--teal);line-height:0.5;height:18px;
}
.testimonial-card p{
  font-size:14.5px;line-height:1.55;color:var(--navy);margin:0;
}
.testimonial-author{
  display:flex;align-items:center;gap:12px;
  margin-top:auto;padding-top:8px;
}
.testimonial-avatar{
  width:36px;height:36px;border-radius:50%;
  background:var(--pale-blue);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:var(--navy);
}
.testimonial-author strong{
  display:block;font-size:14px;color:var(--navy);font-weight:700;
}
.testimonial-author span{
  display:block;font-size:12.5px;color:var(--muted);
}

/* Pillar deep-dive (ORSIA page) */
.pillar-deep-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:18px;
}
.pillar-deep-card{
  background:var(--navy-elevated);
  border-radius:var(--radius-lg);
  padding:26px 22px;
  color:#fff;
  display:flex;flex-direction:column;gap:14px;
}
.pillar-deep-icon{
  width:42px;height:42px;
  background:rgba(72,229,194,0.14);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  color:var(--teal);
}
.pillar-deep-icon svg{width:22px;height:22px}
.pillar-deep-card h4{
  font-size:16px;font-weight:700;color:#fff;margin:0;line-height:1.3;
}
.pillar-deep-card p{
  font-size:13px;line-height:1.55;color:rgba(255,255,255,0.7);margin:0;
}
.pillar-deep-card .link{
  margin-top:auto;font-size:13px;font-weight:600;color:var(--teal);
}

/* FAQ list */
.faq-list{
  max-width:780px;margin:0 auto;
}
.faq-item{
  border-bottom:1px solid var(--border);
  padding:18px 0;
}
.faq-item h4{
  font-size:15.5px;font-weight:700;color:var(--navy);margin:0 0 8px;
  display:flex;align-items:flex-start;gap:10px;
}
.faq-item h4::before{
  content:'›';color:var(--teal-deep);font-weight:700;flex-shrink:0;
}
.faq-item p{
  font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 0 22px;
}

/* Closing CTA banner */
.cta-banner{
  background:var(--navy);color:#fff;
  padding:64px 0;
  text-align:center;
}
.cta-banner.cta-banner--teal{
  background:var(--teal);color:#000;
}
.cta-banner h2{
  font-size:28px;color:inherit;margin-bottom:14px;
}
.cta-banner.cta-banner--teal h2{color:#000}
.cta-banner p{
  font-size:15px;color:rgba(255,255,255,0.78);margin-bottom:28px;
}
.cta-banner.cta-banner--teal p{color:rgba(0,0,0,0.7)}
.cta-banner-buttons{
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;
}

/* Insights page — filter chips */
.filter-chips{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;
}
.filter-chip{
  padding:7px 16px;border-radius:999px;
  font-size:13px;font-weight:600;
  background:transparent;border:1px solid rgba(255,255,255,0.25);
  color:rgba(255,255,255,0.78);
  text-decoration:none;transition:all .15s;
}
.filter-chip:hover{
  border-color:rgba(255,255,255,0.5);color:#fff;
}
.filter-chip.active{
  background:var(--teal);color:#000;border-color:var(--teal);
}

/* Insights — featured article */
.featured-article{
  display:grid;grid-template-columns:1.2fr 1fr;gap:48px;
  align-items:center;
}
.featured-article h2{font-size:28px;margin-bottom:16px}

/* Insights — article grid */
.article-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.article-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
.article-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(11,30,49,0.07);
  border-color:var(--pale-blue-2);
}
.article-card .photo-placeholder{
  border-radius:0;aspect-ratio:16/10;
}
.article-card-body{
  padding:22px 22px 24px;
  display:flex;flex-direction:column;gap:8px;flex:1;
}
.article-card .label{
  font-size:11px;font-weight:700;color:var(--teal-deep);
  letter-spacing:0.14em;text-transform:uppercase;
}
.article-card h3{
  font-size:17px;font-weight:700;line-height:1.3;color:var(--navy);
  margin:0;
}
.article-card p{
  font-size:13.5px;color:var(--muted);line-height:1.5;margin:0;
}
.article-card .read-more{
  margin-top:auto;font-size:13.5px;font-weight:600;color:var(--teal-deep);
  padding-top:8px;
}

/* Insights — newsletter signup */
.newsletter-band{
  background:var(--pale-blue);padding:48px 0;
}
.newsletter-inner{
  max-width:var(--container);margin:0 auto;padding:0 20px;
  display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center;
}
.newsletter-form{
  display:flex;gap:10px;
}
.newsletter-form input{
  flex:1;padding:13px 16px;border-radius:6px;
  border:1px solid var(--pale-blue-2);
  background:#fff;font-family:inherit;font-size:14px;color:var(--navy);
}
.newsletter-form input:focus{
  outline:none;border-color:var(--teal-deep);
}
.newsletter-form button{
  padding:13px 24px;border-radius:6px;
  background:var(--navy);color:var(--teal);
  border:none;font-family:inherit;font-size:14px;font-weight:700;
  cursor:pointer;transition:background .15s;
}
.newsletter-form button:hover{background:var(--navy-elevated)}

/* Insights — resource library */
.resource-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
}
.resource-tile{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);padding:18px 20px;
  display:flex;align-items:center;gap:16px;
  text-decoration:none;color:inherit;
  transition:border-color .15s,background .15s;
}
.resource-tile:hover{border-color:var(--teal-deep);background:#fafbfc}
.resource-icon{
  width:38px;height:38px;border-radius:8px;
  background:var(--pale-blue);color:var(--navy);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.resource-tile strong{
  display:block;font-size:14px;font-weight:700;color:var(--navy);
}
.resource-tile span{
  display:block;font-size:12px;color:var(--muted);margin-top:2px;
}

/* Contact page */
.contact-layout{
  display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start;
}
.contact-methods{
  display:flex;flex-direction:column;gap:20px;
  margin-top:30px;
}
.contact-method{
  display:flex;align-items:flex-start;gap:14px;
}
.contact-method-icon{
  width:38px;height:38px;border-radius:10px;
  background:rgba(72,229,194,0.10);color:var(--teal);
  border:1px solid rgba(72,229,194,0.25);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.contact-method-icon svg{width:18px;height:18px}
.contact-method-label{
  font-size:11px;font-weight:600;color:rgba(255,255,255,0.55);
  letter-spacing:0.04em;
}
.contact-method-value{
  font-size:14.5px;font-weight:600;color:#fff;
}
.contact-form-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:24px 26px;
  transform:translateX(-50px);            /* shifted 50px left */
}
.contact-form-card h3{font-size:18px;margin-bottom:14px}
.contact-form{display:flex;flex-direction:column;gap:12px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-field label{
  display:block;font-size:12.5px;font-weight:600;color:var(--muted);
  margin-bottom:6px;
}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;padding:9px 12px;border-radius:6px;
  border:1px solid var(--border);background:#fff;
  font-family:inherit;font-size:14px;color:var(--navy);
  transition:border-color .15s;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:none;border-color:var(--teal-deep);
}
.form-field textarea{resize:vertical;min-height:80px}
.contact-form button{
  margin-top:8px;padding:14px 28px;border-radius:6px;
  background:var(--teal);color:#000;
  border:none;font-family:inherit;font-size:14.5px;font-weight:700;
  cursor:pointer;transition:background .15s;
}
.contact-form button:hover{background:var(--teal-hover)}
.prefer-talk{
  background:var(--teal-deep);color:#fff;
  padding:36px 0;
}
.prefer-talk-inner{
  max-width:var(--container);margin:0 auto;padding:0 20px;
  display:flex;align-items:center;gap:20px;
}
.prefer-talk-icon{
  width:50px;height:50px;border-radius:14px;
  background:rgba(255,255,255,0.12);color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.prefer-talk h3{color:#fff;font-size:18px;margin:0 0 4px}
.prefer-talk p{color:rgba(255,255,255,0.85);font-size:14px;margin:0}
.next-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px;
}
.next-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:28px 24px;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;gap:12px;
  transition:transform .15s,box-shadow .15s,border-color .15s;
  min-height:200px;
}
.next-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(11,30,49,0.07);
  border-color:var(--pale-blue-2);
}
.next-card .icon-circle{background:var(--pale-blue);color:var(--navy)}
.next-card h3{font-size:18px;margin:0}
.next-card p{font-size:13.5px;color:var(--muted);margin:0;line-height:1.5}
.next-card .link{margin-top:auto;font-size:13.5px;font-weight:600;color:var(--teal-deep)}

/* About page */
.team-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.team-card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;
}
.team-card .photo-placeholder{
  border-radius:0;aspect-ratio:1/1;
}
.team-card-body{padding:22px 22px 26px}
.team-card h3{font-size:17px;margin:0 0 4px}
.team-card .role{font-size:12.5px;font-weight:500;color:var(--muted);margin-bottom:10px}
.team-card p{font-size:13px;color:var(--navy);line-height:1.5;margin:0 0 12px}
.team-card .link{font-size:13px;font-weight:600;color:var(--teal-deep)}

.journey-timeline{
  position:relative;padding:8px 0 0 32px;
  border-left:none;
}
.journey-step{
  position:relative;padding:0 0 28px 32px;
}
.journey-step:not(:last-child){
  border-left:1.5px solid var(--border);
}
.journey-step::before{
  content:'';position:absolute;
  left:-9px;top:6px;
  width:16px;height:16px;border-radius:50%;
  background:var(--teal);
  border:3px solid #fff;box-shadow:0 0 0 1.5px var(--teal);
}
.journey-step.upcoming::before{background:#fff;box-shadow:0 0 0 1.5px var(--teal-deep)}
.journey-step h4{
  font-size:16px;font-weight:700;color:var(--navy);margin:0 0 4px;
}
.journey-step.upcoming h4{color:var(--teal-deep)}
.journey-step p{font-size:14px;color:var(--muted);line-height:1.5;margin:0}

.values-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px;
}
.value-item h4{
  font-size:17px;font-weight:700;color:var(--navy);margin:0 0 8px;
}
.value-item p{
  font-size:13.5px;color:var(--muted);line-height:1.55;margin:0;
}

/* Insights / Contact / About — page hero with shorter min-height (no big photo) */
.page-hero--compact .page-hero-inner{
  min-height:auto;padding:48px 20px 64px;
  display:block;
}

/* Responsive */
@media (max-width:1000px){
  .testimonial-grid,
  .pillar-deep-grid,
  .article-grid,
  .resource-grid,
  .next-cards,
  .team-grid,
  .values-grid{grid-template-columns:1fr;gap:18px}
  .featured-article,
  .contact-layout,
  .newsletter-inner{grid-template-columns:1fr;gap:32px}
  .partners-inner{gap:20px;justify-content:flex-start;overflow-x:auto}
  .partners-label{border-right:none;padding-right:0}
  .filter-chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .prefer-talk-inner{flex-direction:column;align-items:flex-start}
  .pillar-deep-grid{grid-template-columns:1fr}
  .article-grid,
  .resource-grid,
  .next-cards,
  .team-grid{grid-template-columns:1fr}
  .values-grid{grid-template-columns:repeat(2,1fr)}
}

/* ORSIA wordmark — Aldrich brand face */
.wm{font-family:'Aldrich','Montserrat',sans-serif;letter-spacing:0.03em}

/* =====================================================================================
   Phase build additions — photo slots, hero photo panel, ORSIA preview components.
   ===================================================================================== */
.photo{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--navy-elevated);width:100%}
.photo img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(0.9) saturate(0.95)}
.photo figcaption{display:none;position:absolute;inset:0;align-items:center;justify-content:center;text-align:center;padding:20px;color:rgba(255,255,255,0.45);font-size:13px;font-weight:500;background:linear-gradient(135deg,rgba(45,212,165,0.06),rgba(11,30,49,0) 70%)}
.photo.missing figcaption{display:flex}
.photo--16x10{aspect-ratio:16/10}.photo--4x3{aspect-ratio:4/3}.photo--5x4{aspect-ratio:5/4}.photo--square{aspect-ratio:1}.photo--card{aspect-ratio:16/10;border-radius:0}
.photo--team{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.photo--hero{aspect-ratio:auto;height:100%;border-radius:0}

/* Home hero with a photograph on the right, fading into the navy (the montage layout) */
.hero--photo{min-height:100vh;padding-bottom:30px;display:flex;flex-direction:column}   /* fills the screen top to bottom on any display */
.hero--photo .top-nav{width:100%;box-sizing:border-box}
.hero--photo .hero-inner{flex:1;display:flex;align-items:flex-start;width:100%;padding-top:9vh}   /* proportional placement, not centred */
.hero--photo .stats-card{margin-top:auto;padding-top:48px}
/* the stats card flows under the hero text (not absolutely positioned) so text and card can never collide, and the hero fits a laptop */
.hero--photo .stats-card{position:relative;bottom:auto;margin-top:48px}
.hero--photo .hero-lede{margin-bottom:34px}
@media (max-height:820px){.hero--photo h1{font-size:36px;margin-bottom:20px}.hero--photo .hero-inner{padding-top:36px}.hero--photo .hero-lede{margin-bottom:26px;font-size:15.5px}.hero--photo .stats-card{margin-top:auto;padding-top:22px}.hero--photo{padding-bottom:18px}.hero--photo .hero-inner{padding-top:4vh}.stats-row .stat-item{padding:20px 24px}}
.hero--photo .hero-photo{position:absolute;top:0;right:0;bottom:0;width:68%;z-index:1}   /* the photo sits to the right; the copy sits on solid navy that fades into it */
.hero--photo .hero-photo .photo img{object-position:62% center}
.hero--photo .hero-photo .photo{height:100%;border-radius:0;background:transparent}
.hero--photo .hero-photo .photo img{filter:brightness(0.82) saturate(0.95)}
.hero--photo .hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,rgba(11,30,49,0.92) 14%,rgba(11,30,49,0.55) 32%,rgba(11,30,49,0.12) 52%,rgba(11,30,49,0) 70%),linear-gradient(0deg,var(--navy) 0%,rgba(11,30,49,0) 32%),linear-gradient(180deg,var(--navy) 0%,var(--navy) 10%,rgba(11,30,49,0.75) 18%,rgba(11,30,49,0) 34%)}   /* solid navy behind the header, then fading down into the photo */
.hero--photo .hero-inner{padding-top:72px}
.hero--photo .hero-content{max-width:640px}
.hero--photo h1{font-size:42px}
.hero--photo h1 .w,.hero--photo h1 .accent{white-space:normal}
.hero--photo .hero-lede{max-width:440px}
.stats-row .stat-item span:last-child{font-size:14.5px;line-height:1.35}
.stats-row:has(.stat-item--card){grid-template-columns:repeat(3,1fr)}
.stat-item--card span:last-child b{display:block;font-weight:700;color:#fff;margin-bottom:3px}
.stat-item--card span:last-child{color:rgba(255,255,255,.72);font-size:14px}
.hero--photo h1 .accent{white-space:normal}

/* Announcement strip (phase 2) */
.announce{background:var(--teal-light);border-bottom:1px solid #C9EFE3}
.announce-inner{display:flex;align-items:center;gap:16px;padding:12px 20px;font-size:14.5px;color:var(--navy)}
.announce-tag{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--navy);color:var(--teal);padding:4px 9px;border-radius:6px;white-space:nowrap}
.announce-text{flex:1}
.announce-link{font-weight:700;color:var(--teal-deep);white-space:nowrap}

/* ORSIA teaser stack (navy cards) */
.orsia-teaser{display:grid;gap:14px;background:linear-gradient(135deg,#0F2440,#00101F);border-radius:var(--radius-lg);padding:22px;box-shadow:0 24px 60px rgba(11,30,49,0.25)}
.orsia-teaser-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.orsia-teaser-card{border-radius:14px;padding:18px 20px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.07);color:#fff}
.orsia-teaser-card .orsia-label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,0.6);margin-bottom:8px;font-weight:700}
.orsia-teaser-card b{display:block;font-size:16px;line-height:1.35;font-weight:700}
.orsia-teaser-card p{margin:8px 0 0;font-size:14px;line-height:1.55;color:rgba(255,255,255,0.72)}

/* ORSIA page hero orbit (four nodes around the core) */
.page-hero--orsia .page-hero-inner{min-height:0;padding-bottom:64px;align-items:center}
.pillar-orbit{position:relative;width:100%;aspect-ratio:1;max-width:480px;margin:0 auto}
.pillar-orbit::before{content:'';position:absolute;inset:8%;border-radius:50%;border:1px dashed rgba(45,212,165,0.35)}
.pillar-orbit::after{content:'';position:absolute;inset:26%;border-radius:50%;border:1px solid rgba(255,255,255,0.08)}
.orbit-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34%;aspect-ratio:1;border-radius:50%;background:var(--navy-elevated);border:2px solid var(--teal);display:flex;align-items:center;justify-content:center;font-size:22px;letter-spacing:4px;color:#fff;box-shadow:0 0 60px rgba(45,212,165,0.25)}
.orbit-node{position:absolute;width:26%;aspect-ratio:1;border-radius:50%;background:var(--navy-elevated);border:1px solid rgba(45,212,165,0.4);display:flex;align-items:center;justify-content:center;text-align:center;font-size:12.5px;font-weight:700;color:#fff;padding:8px;line-height:1.25}
.orbit-node.n1{left:37%;top:-2%}.orbit-node.n2{right:-2%;top:37%}.orbit-node.n3{left:37%;bottom:-2%}.orbit-node.n4{left:-2%;top:37%}

/* grids */
.challenge-grid--4{grid-template-columns:repeat(4,1fr)}.challenge-grid--3{grid-template-columns:repeat(3,1fr)}
.pillar-deep-grid--3{grid-template-columns:repeat(3,1fr);gap:18px}
.pillar-deep-grid--3 .pillar-deep-card{padding:24px 26px;gap:12px}
.pillar-deep-grid--3 .pillar-deep-card .pillar-deep-icon{width:38px;height:38px;flex:none}
.pillar-deep-grid--3 .pillar-deep-card h3{display:flex;align-items:center;gap:12px;font-size:19px;margin:0}
.pillar-deep-grid--3 .pillar-deep-card h3 .pillar-deep-icon{display:inline-flex}
#how.section{padding:44px 0}
#how .section-head{margin-bottom:22px}
#how .reports-strip{margin-top:18px;padding:24px 28px}
.advisory-row--6{grid-template-columns:repeat(6,1fr)}
.team-grid--5{grid-template-columns:repeat(5,1fr);gap:20px}
.team-grid--5 .team-card-body{padding:18px 18px 20px}.team-grid--5 .team-card h3{font-size:17px}.team-grid--5 .team-card p{font-size:13.5px;line-height:1.5}
.pillar-deep-card h3{color:#fff}.pillar-deep-card p{color:rgba(255,255,255,0.78)}
/* advisory page rhythm: alternating grounds, numbered eyebrows, an icon on each card, a dark credentials band */
.service-section{border-top:1px solid var(--border)}
.service-section.section-pale .detail-card{background:#fff}
.eyebrow--num{display:inline-flex;align-items:center;gap:10px}
.eyebrow--num .num{font-size:11px;font-weight:800;color:var(--navy);background:var(--teal-light);border-radius:6px;padding:3px 7px;letter-spacing:.04em}
.detail-card{position:relative}
.detail-icon{position:absolute;top:22px;right:22px;width:44px;height:44px}
.credentials-band{padding:34px 0}
.credentials-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cred{display:flex;flex-direction:column;gap:4px;padding-left:16px;border-left:2px solid var(--teal)}
.cred b{font-size:24px;font-weight:800;color:#fff;letter-spacing:-0.01em}
.cred span{font-size:13.5px;color:rgba(255,255,255,0.72);line-height:1.4}
.feature-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
.feature-card{background:var(--pale-blue);border-radius:14px;padding:22px 22px 20px}
.feature-card h3{font-size:17px;margin:0 0 8px;color:var(--navy)}
.feature-card p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.why-list{display:grid;gap:10px;margin-top:8px}
.why-item{border-radius:12px;padding:14px 18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-size:15px;font-weight:600;color:#fff}
.cta-banner .eyebrow-on-dark{display:block;margin-bottom:14px}
.cta-banner h2{max-width:820px;margin-left:auto;margin-right:auto}
.cta-banner p{max-width:680px;margin-left:auto;margin-right:auto}
.advisory-wrap h2{font-size:26px;line-height:1.2}.advisory-wrap .muted-lede{margin-top:12px}
/* the page never scrolls sideways, and every full-bleed band spans the whole viewport whatever the screen */
html{overflow-x:hidden}body{overflow-x:clip;min-width:0}
.hero,.page-hero,.section-dark,.cta-banner,.site-footer,.announce,.prefer-talk{width:100%}
.section-head{max-width:780px}.section-head .lede{max-width:780px}.section-head .lede,.section-head h2{text-wrap:balance}
.reports-strip{display:flex;gap:18px;align-items:flex-start;margin-top:18px;background:var(--navy);color:#fff;border-radius:var(--radius-lg);padding:26px 28px}
.reports-strip .icon-circle{flex:none}
.reports-strip h3{font-size:19px;margin:2px 0 8px;color:#fff}
.reports-strip p{margin:0;font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.78)}
.team-role{display:block;font-size:12.5px;color:var(--teal-deep);font-weight:700;margin:2px 0 10px}
.footer-grid--3{grid-template-columns:1.6fr 1fr 1fr}
.footer-contact{font-size:14px;color:var(--muted);margin:16px 0 0;line-height:1.6}.footer-contact a{color:var(--muted);text-decoration:none}.footer-contact a:hover{color:var(--navy)}
.cohort-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cohort-col{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:22px}
.cohort-col h4{color:var(--teal);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px}
.outcome-list--dark li{color:rgba(255,255,255,0.85);border-color:rgba(255,255,255,0.1)}
.outcome-list--dark li::before{color:var(--teal)}
.two-col--form{align-items:start}
.interest-card{background:#fff}
.form-intro{font-size:14px;color:var(--muted);margin:-6px 0 14px}
.form-note{font-size:12.5px;color:var(--subtle);margin:6px 0 0}
.section-dark--tight{padding:40px 0}
.lede-on-dark{color:rgba(255,255,255,0.78)}
.section-head:not(.center){display:flex;justify-content:space-between;align-items:flex-end;gap:24px;text-align:left;max-width:none;margin:0 0 28px}
.section-head:not(.center) h2{margin-bottom:0}
.section-head:not(.center) .btn{flex:none}
.section-head.center{text-align:center;display:block;margin-bottom:36px}
.section-head.center .lede.center{margin:14px auto 0}
.section-head .eyebrow{display:block}
.icon-circle--dark{background:rgba(45,212,165,0.14);color:var(--teal)}
.service-card .service-name{font-size:13.5px;font-weight:700;line-height:1.3}
.expertise-card .arrow{display:block;margin-top:14px;font-size:18px;color:var(--navy)}
.article-card .article-type{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep);font-weight:700}
.testimonial-role{font-size:13px;color:var(--muted);font-weight:600}
.mockup-block img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.newsletter-actions{display:flex;gap:12px;flex-wrap:wrap}
.newsletter-inner h3{font-size:22px;margin:8px 0 8px}.newsletter-inner p{color:var(--muted);margin:0}
.page-hero-inner--single{grid-template-columns:1fr;min-height:0;padding-bottom:56px}
tspan.wm{font-style:normal;letter-spacing:.12em}
.wm--mark{display:inline-flex;align-items:center;gap:.38em;white-space:nowrap}
.orsia-mark{width:1.05em;height:1.05em;flex:none;color:currentColor}
.nav-menu .orsia-mark{width:17px;height:17px}
.orbit-core .orsia-mark{width:26px;height:26px;margin-right:2px}
h1 .orsia-mark,h2 .orsia-mark{width:.9em;height:.9em;position:relative;top:.02em}
.footer-col h4 .orsia-mark{width:15px;height:15px}
/* footer column titles: the base sheet styled h5, the markup uses h4, so titles had no space
   beneath them. Title keeps its weight; list is tightened so it reads as a group under it. */
.footer-col h4{margin:0 0 14px;line-height:1.3}
/* advisory: credentials strip on white directly under the navy hero */
.credentials-band--light{background:#fff;border-bottom:1px solid var(--border);padding:30px 0}
.credentials-band--light .cred b{color:var(--navy)}
.credentials-band--light .cred span{color:var(--muted)}
/* home hero: the copy block sits centred between the header and the strip, so the space above the
   headline and below the buttons match, instead of the copy hugging the top */
.hero--photo .hero-inner{align-items:center;padding-top:2vh}
/* hero strip: a lift of the brand navy itself (white at low opacity), not a second, bluer navy */
.stats-row{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
/* who it's for: pale canvas, white cards */
#who .challenge-card{background:#fff;border-color:var(--border)}
/* CTA headings balance their lines */
.cta-banner h2{text-wrap:balance}
/* advisory: how we work */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:34px}
.how-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px 24px 24px}
.how-n{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--teal);color:var(--navy);font-weight:800;font-size:14px;margin-bottom:14px}
.how-card h3{font-size:18px;margin:0 0 8px}
.how-card p{font-size:14.5px;line-height:1.55;color:var(--muted);margin:0}
@media (max-width:900px){.how-grid{grid-template-columns:1fr}}
.service-section .muted-lede{margin-bottom:0}
/* about: hero sized to its content, not the viewport */
.page-hero.page-hero--fit{min-height:0}
.page-hero--photo.page-hero--fit .page-hero-inner{min-height:0;padding:8vh 20px 8vh;align-items:center}
/* page heroes with a photo: the same treatment as the home page. The photo is a full-height
   background on the right; solid navy under the copy fades across into it, and the header
   and the foot of the hero fade to navy too. No feathered rectangle. */
.page-hero--photo .hero-photo--page{position:absolute;top:0;right:0;bottom:0;width:80%;z-index:1;pointer-events:none}
.page-hero--photo .hero-photo--page .photo{position:relative;height:100%;margin:0;border-radius:0;background:transparent;aspect-ratio:auto;overflow:hidden}
.page-hero--photo .hero-photo--page .photo img{position:absolute;right:-14%;bottom:0;height:88%;width:auto;max-width:none;object-fit:cover;display:block;filter:brightness(0.88) saturate(0.95);-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 18%,#000 40%),linear-gradient(180deg,transparent 0,#000 26%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 18%,#000 40%),linear-gradient(180deg,transparent 0,#000 26%);mask-composite:intersect}   /* the photo's own left and top edges fades out too, so on a wide monitor, where the picture does not reach the gradient's solid zone, there is still no seam */   /* a little smaller than the hero, anchored bottom-right: the header band above it is solid navy and the left overflow sits under the fade */
.page-hero--photo .hero-photo--page::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,var(--navy) 24%,rgba(11,30,49,0.9) 31%,rgba(11,30,49,0.72) 40%,rgba(11,30,49,0.46) 52%,rgba(11,30,49,0.2) 64%,rgba(11,30,49,0.05) 75%,rgba(11,30,49,0) 85%),linear-gradient(0deg,var(--navy) 0%,rgba(11,30,49,0.6) 12%,rgba(11,30,49,0) 30%),linear-gradient(180deg,var(--navy) 0%,var(--navy) 13%,rgba(11,30,49,0.8) 20%,rgba(11,30,49,0.45) 29%,rgba(11,30,49,0.15) 37%,rgba(11,30,49,0) 46%)}   /* solid navy past the picture's top and left edges, then a long fade: no straight edge shows */
.page-hero--photo:has(.hero-photo--page){background:var(--navy)}
.page-hero--photo:has(.hero-photo--page) .page-hero-inner{align-items:start;padding-top:clamp(62px,7.5vh,92px)}
@media (max-width:900px){.page-hero--photo .hero-photo--page{position:relative;width:100%;height:320px;order:2}}
/* portrait variant (About): the picture keeps its full height on the right, its own left edge
   dissolved with a mask so only the navy overlay's long fade is ever seen */
.page-hero--photo .hero-photo--portrait{width:64%}
.page-hero--photo .hero-photo--portrait .photo img{right:0;top:-5%;bottom:auto;height:122%;width:auto;-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.75) 16%,#000 34%);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.75) 16%,#000 34%)}
.page-hero--photo .hero-photo--portrait::after{background:linear-gradient(90deg,var(--navy) 0%,var(--navy) 16%,rgba(11,30,49,0.78) 26%,rgba(11,30,49,0.45) 38%,rgba(11,30,49,0.18) 52%,rgba(11,30,49,0.04) 64%,rgba(11,30,49,0) 74%),linear-gradient(0deg,var(--navy) 0%,rgba(11,30,49,0.6) 12%,rgba(11,30,49,0) 30%),linear-gradient(180deg,var(--navy) 0%,var(--navy) 9%,rgba(11,30,49,0.75) 16%,rgba(11,30,49,0.3) 26%,rgba(11,30,49,0) 36%)}
/* advisory sections: a photo beneath the copy where one exists */
.service-detail--side{grid-template-columns:.78fr 1.22fr;gap:40px;align-items:stretch}
.service-detail--side .service-copy{display:flex;flex-direction:column;justify-content:center}
.service-detail--side .detail-col{margin-top:24px}
.service-detail--side .service-side{margin:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--pale-blue);min-height:520px}
.service-detail--side .service-side img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
/* side layout: tall image on one side, copy over card stacked on the other; sides alternate via img-left / img-right */
.service-detail--side > *{order:0}
.service-detail--side > .service-side{grid-row:1 / -1}
.service-detail--side.img-left{grid-template-columns:.78fr 1.22fr}
.service-detail--side.img-left > .service-side{grid-column:1}
.service-detail--side.img-left > .service-copy{grid-column:2;grid-row:1}
.service-detail--side.img-left > .detail-col{grid-column:2;grid-row:2}
.service-detail--side.img-right{grid-template-columns:1.22fr .78fr}
.service-detail--side.img-right > .service-side{grid-column:2}
.service-detail--side.img-right > .service-copy{grid-column:1;grid-row:1}
.service-detail--side.img-right > .detail-col{grid-column:1;grid-row:2}
@media (max-width:900px){.service-detail--side.img-left,.service-detail--side.img-right{grid-template-columns:1fr}.service-detail--side.img-left > .service-side,.service-detail--side.img-right > .service-side{grid-row:auto;grid-column:1;min-height:0;aspect-ratio:16/10}.service-detail--side.img-left > .service-copy,.service-detail--side.img-left > .detail-col,.service-detail--side.img-right > .service-copy,.service-detail--side.img-right > .detail-col{grid-column:1;grid-row:auto}}
.service-band{margin:0 0 32px;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:9/2;background:var(--pale-blue)}   /* a flat strip, so the section still sits on a laptop screen */
.service-band img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
#finance .service-band img{object-position:center 18%}
@media (max-width:700px){.service-band{aspect-ratio:16/10}}
.service-photo img{width:100%;height:100%;object-fit:cover;display:block}
/* service sections: less air above the photo or the columns */
.service-section{padding:52px 0}
.service-band{margin-bottom:26px}
/* the card always contrasts with its canvas: white on the pale sections, pale blue on the white ones */
.service-section.section-white .detail-card{background:var(--pale-blue);border-color:transparent}
.service-section.section-white .detail-card .icon-circle{background:#fff}
.service-section.section-white .outcome-list li{border-bottom-color:rgba(11,30,49,.1)}
/* Service sections: consistently tight spacing so a section, tall ones included, sits within a screen. */
.service-section{padding:32px 0}
.service-section:has(.service-band,.service-side){min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}   /* a service with a photo fills one screen, content centred; sections still waiting for a photo stay at their natural height */
.service-section > .container{width:100%}
/* use the whole screen: the band grows to take the spare height; in side sections the copy sits at the top,
   the card at the bottom and the photo runs the full height between them */
.service-section:has(.service-band,.service-side) > .container{display:flex;flex-direction:column;flex:1;min-height:0}
.service-section:has(.service-band) .service-band{flex:1 1 0;aspect-ratio:auto;min-height:220px;position:relative}
.service-section:has(.service-band) .service-band img{position:absolute;inset:0;width:100%;height:100%}   /* absolute, so the picture's own height never drives the layout: the strip takes exactly the spare screen height */
.service-section:has(.service-band) .service-detail{flex:none}
.service-detail--side{flex:1;grid-template-rows:1fr auto 1fr auto 1fr;align-content:stretch}   /* spacer rows share the spare height above, between and below the copy and card */
.service-detail--side > .service-side{grid-row:1 / -1}
.service-detail--side.img-left > .service-copy,.service-detail--side.img-right > .service-copy{grid-row:2}
.service-detail--side.img-left > .detail-col,.service-detail--side.img-right > .detail-col{grid-row:4;align-self:start;margin-top:0}
/* type grows gently with the screen height, so the copy does not sit small in a big space */
.service-section:has(.service-band,.service-side) h2{font-size:clamp(25px,2.4vh + 6px,32px)}
.service-section:has(.service-band,.service-side) .lede{font-size:clamp(14.5px,1.1vh + 5px,17px);line-height:1.55}
.service-section:has(.service-band,.service-side) .muted-lede{font-size:clamp(13px,0.9vh + 5px,15px)}
.service-section:has(.service-band,.service-side) .outcome-list li{font-size:clamp(13.5px,1vh + 5px,15px);padding-top:clamp(6px,0.9vh,10px);padding-bottom:clamp(6px,0.9vh,10px)}
.service-section:has(.service-band,.service-side) .detail-card{padding:clamp(18px,2.4vh,28px) clamp(20px,2.4vh,28px)}
.service-detail--side > .service-side{max-height:none;height:100%}
.service-section h2{font-size:25px;line-height:1.2;margin-bottom:6px}
.service-section .lede{font-size:14.5px;line-height:1.5;margin-top:8px;margin-bottom:8px}
.service-section .muted-lede{font-size:13px;line-height:1.5;margin-bottom:0}
.service-section .eyebrow{margin-bottom:6px}
.service-detail{gap:32px}
.service-detail--side{gap:28px}
.service-detail--side .detail-col{margin-top:12px}
.service-detail--side .service-side{min-height:0}
.service-detail--side .service-side img{height:100%}
.service-section .detail-card{padding:18px 20px 16px}
.service-section .detail-card h4{margin:0 0 6px}
.service-section .who-row{margin-bottom:10px;padding-right:56px}
.service-section .outcome-list li{padding-top:6px;padding-bottom:6px;font-size:13.5px}
.service-section .outcome-list li::before{top:12px}
.service-section .detail-card .btn{margin-top:10px;padding:9px 18px;font-size:13.5px}
.service-band{margin-bottom:18px;aspect-ratio:5/1}
/* advisory hero: compact jump links under the copy, blended photo on the right */
.area-links{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12)}
.area-links-title{display:block;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:12px}
.area-links-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
.area-link{display:flex;align-items:center;gap:10px;padding:6px 0;color:#fff;text-decoration:none;font-size:14.5px;font-weight:600;transition:color .15s}
.area-link .icon-circle{width:32px;height:32px;flex:none}.area-link .icon-circle svg{width:15px;height:15px}
.area-link:hover{color:var(--teal)}
.page-hero-visual--blend{align-self:center;padding-top:0}
/* the photo starts just right of the copy and runs off the right edge of the window */
.page-hero-visual--blend img{display:block;width:calc(100% + 240px + max(20px, 50vw - 620px));max-width:none;height:auto;margin:0 calc(-1 * max(20px, 50vw - 620px)) 0 -240px}   /* reaches under the gutter so the long fade has room */
.page-hero--photo .page-hero-inner:has(.page-hero-visual--blend) .page-hero-copy{position:relative;z-index:2}
.page-hero--photo .page-hero-inner:has(.page-hero-visual--blend){grid-template-columns:1fr 1fr;gap:40px}
@media (max-width:900px){.page-hero-visual--blend img{width:100%;margin:0}}
/* about hero: portrait photo kept whole, right-aligned and bleeding off the edge; copy centred beside it */
.page-hero-visual--portrait{display:flex;justify-content:flex-end}
.page-hero-visual--portrait img{width:auto;height:min(78vh,760px);max-width:none;margin:0 calc(-1 * max(20px, 50vw - 620px)) 0 0}
.page-hero--photo .page-hero-inner:has(.page-hero-visual--portrait){align-items:center;padding-top:6vh;padding-bottom:6vh}
@media (max-width:900px){.page-hero-visual--portrait{justify-content:center}.page-hero-visual--portrait img{height:auto;width:80%;margin:0}}
/* about hero: credentials list under the copy */
.area-links--cred{width:calc(100% + 70px)}
.area-links-grid--cred{gap:4px 18px}
.area-link--static{font-size:14px;cursor:default}.area-link--static:hover{color:#fff}
@media (max-width:1000px){.area-links--cred{width:100%}.area-links-grid--cred{grid-template-columns:1fr}}
.cred-list--hero li{font-size:13.5px;line-height:1.4;color:rgba(255,255,255,.82)}
.area-links--cred{margin-top:24px;padding-top:16px}
.cred-list--hero li::before{top:6px;width:8px;height:8px}
.cred-list--hero b{color:#fff;font-weight:700}
/* about: mission on navy with the pupils photo blended in */
.mission-section{padding:0}
.mission-inner{display:grid;grid-template-columns:.42fr .58fr;gap:48px;align-items:center}
.mission-photo img{display:block;width:100%;height:auto}
.mission-copy{padding:56px 0}
.mission-copy h2{color:#fff;font-size:34px;line-height:1.2;margin:10px 0 14px;text-wrap:balance}
.mission-copy .lede{color:rgba(255,255,255,.78);max-width:560px}
.values-grid--dark{grid-template-columns:1fr 1fr;gap:22px 28px;margin-top:34px}
.values-grid--dark .value-item h3{color:#fff;margin-top:12px}
.values-grid--dark .value-item p{color:rgba(255,255,255,.68)}
.values-grid--dark .icon-circle{background:rgba(45,212,165,.14);color:var(--teal)}
@media (max-width:900px){.mission-inner{grid-template-columns:1fr;gap:0}.mission-copy{padding:32px 0 48px}.values-grid--dark{grid-template-columns:1fr}}
/* about: values as four iconed items */
.values-grid{gap:28px;margin-top:40px}
.value-item h3{font-size:17px;font-weight:700;color:var(--navy);margin:14px 0 8px}
.value-item p{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0}
/* orsia: how it was built */
.build-steps{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:0;counter-reset:bs}
.build-steps li{position:relative;padding:26px 16px 0 0}
.build-steps li::before{content:'';position:absolute;left:0;right:0;top:6px;height:2px;background:var(--pale-blue-2)}
.build-steps li::after{content:'';position:absolute;left:0;top:0;width:14px;height:14px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 3px #fff}
.build-steps li:last-child::after{background:var(--navy)}
.bs-date{display:block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:6px}
.build-steps h3{font-size:15px;margin:0 0 6px;line-height:1.25}
.build-steps p{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0}
.build-who{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.bw-card{background:var(--pale-blue);border-radius:var(--radius-lg);padding:26px 24px;display:flex;flex-direction:column}
.bw-card h3{font-size:17px;margin:14px 0 8px}
.bw-card p{font-size:14px;line-height:1.55;color:var(--muted);margin:0;flex:1}
.bw-card .cta-link{margin-top:14px;font-size:14px}
.build-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:36px;padding-top:28px;border-top:1px solid var(--border)}
.bs-fact{display:flex;flex-direction:column;gap:4px;padding-left:16px;border-left:2px solid var(--teal)}
.bs-fact b{font-size:26px;font-weight:800;color:var(--navy);letter-spacing:-.01em;line-height:1.1}
.bs-fact span{font-size:13.5px;color:var(--muted);line-height:1.4}
@media (max-width:1000px){.build-steps{grid-template-columns:1fr 1fr 1fr}.build-steps li{padding-bottom:18px}.build-who{grid-template-columns:1fr}.build-facts{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.build-steps{grid-template-columns:1fr}}
/* orsia: the team behind it */
.build-team{display:grid;grid-template-columns:.9fr 1.6fr;gap:44px;margin-top:44px;align-items:start}
#team-behind .build-team{margin-top:0}
.team-band{margin:0 0 40px;aspect-ratio:9/2;width:100vw;margin-left:calc(50% - 50vw);border-radius:0;position:relative;top:-56px;margin-bottom:-16px}   /* edge to edge, flush with the top of the section */
.team-band img{object-position:center 38%}
.section-outcomes{padding-top:0}
.pupils-band{width:100vw;margin:0 0 48px calc(50% - 50vw);border-radius:0;aspect-ratio:21/5;position:relative;overflow:hidden}
.pupils-band img{object-position:center 12%}
.pupils-band::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,30,49,0) 58%,rgba(11,30,49,.55) 82%,var(--navy) 100%)}
@media (max-width:700px){.pupils-band{aspect-ratio:16/10}}
#team-behind{padding-top:56px}
/* the divide into 'a different way of working': the board pack beside the platform, edge to edge */
.wow-band{width:100vw;margin:44px 0 0 calc(50% - 50vw);border-radius:0;aspect-ratio:21/5}
.wow-band img{object-position:center 30%}
.build-team--about{margin:8px 0 36px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 36px;gap:36px}
.build-team--about .bt-grid > div{background:var(--pale-blue)}
@media (max-width:900px){.build-team--about{padding:24px}}
.bt-intro h3{font-size:24px;line-height:1.25;margin:10px 0 12px;text-wrap:balance}
.bt-intro p{font-size:15px;line-height:1.6;color:var(--muted);margin:0 0 16px}
.bt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bt-grid > div{background:var(--pale-blue);border-radius:var(--radius-lg);padding:20px 18px}
.bt-grid h4{font-size:15px;margin:12px 0 6px}
.bt-grid p{font-size:13px;line-height:1.5;color:var(--muted);margin:0}
@media (max-width:1000px){.build-team{grid-template-columns:1fr}.bt-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.bt-grid{grid-template-columns:1fr}}
/* headline highlight: teal on dark, deep teal on light */
.hl{color:var(--teal-deep)}
.page-hero .hl,.section-dark .hl{color:var(--teal)}
/* forms: inline validation message */
.form-error{margin:6px 0 0;font-size:12.5px;line-height:1.45;color:var(--hi-ink,#8A2A3D);font-weight:600}
.form-field:has(.form-error) input{border-color:#B3261E}
/* contact: in-page jumps to the form land with the page heading still in view */
#message,#demo{scroll-margin-top:160px}
/* about: work with us */
.careers-band{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:start}
.careers-band h2{font-size:30px;line-height:1.2;margin:10px 0 14px;text-wrap:balance}
.careers-band .lede{margin:0}
.careers-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.careers-cols > div{background:var(--pale-blue);border-radius:var(--radius-lg);padding:24px 22px}
.careers-cols h3{font-size:17px;margin:14px 0 8px}
.careers-cols p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.careers-note{grid-column:1/-1;margin:6px 0 0;font-size:14.5px;line-height:1.6;color:var(--muted)}
.careers-note a{color:var(--teal-deep);font-weight:600}
@media (max-width:900px){.careers-band,.careers-cols{grid-template-columns:1fr}}
/* about: associates as a network, not named individuals */
.assoc-band{display:grid;grid-template-columns:1fr 1.1fr;gap:44px;align-items:start;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:34px 38px}
.assoc-band h4{font-size:21px;line-height:1.3;margin:6px 0 12px;color:var(--navy);text-wrap:balance}
.assoc-intro p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0}
.assoc-groups{display:grid;grid-template-columns:1fr 1fr;gap:0}
.assoc-groups > div{padding:16px 18px 18px;border-top:1px solid var(--border)}
.assoc-groups > div:nth-child(-n+2){border-top:0}
.assoc-groups > div:nth-child(odd){border-right:1px solid var(--border);padding-left:0}
.assoc-groups h5{font-size:14px;font-weight:700;color:var(--navy);margin:0 0 6px;padding-left:12px;border-left:3px solid var(--teal);line-height:1.2}
.assoc-groups p{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0}
@media (max-width:900px){.assoc-band{grid-template-columns:1fr;padding:24px}.assoc-groups{grid-template-columns:1fr}.assoc-groups > div{border-right:0;padding-left:0}.assoc-groups > div:nth-child(2){border-top:1px solid var(--border)}}
/* about: associates without a portrait slot */
.team-card--mono .team-card-body{padding:24px 22px 26px}
.mono{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--navy);color:var(--teal);font-weight:800;font-size:17px;letter-spacing:.04em;margin-bottom:16px}
.footer-col li{margin-bottom:8px;line-height:1.5}
.nav-menu a::after{display:none}
.nav-menu a:hover,.nav-menu a.active{color:var(--teal)}
.top-nav .btn{margin-left:0;padding:9px 18px;font-size:14px;border-radius:7px;min-width:142px;text-align:center;justify-content:center}   /* fixed width so the bar reads the same on every page, whichever label it carries */
/* ORSIA page: the mark and the name, large, before the headline */
.orsia-brand{display:inline-flex;align-items:center;gap:14px;margin:0 0 9vh;color:#fff}   /* room under the name before the headline, in proportion to the screen */
.orsia-brand .orsia-mark{width:40px;height:40px}
.orsia-brand .wm{font-size:40px;letter-spacing:6px;line-height:1}
.orsia-brand .reg{font-family:"Montserrat",sans-serif;font-size:13px;letter-spacing:0;vertical-align:top;position:relative;top:2px;margin-left:2px;opacity:.85}

/* insights */
.page-hero--insights .page-hero-inner{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;padding:40px 20px 56px}
.channels{display:flex;flex-direction:column;gap:10px}
.channel{display:flex;gap:16px;align-items:center;padding:16px 18px;border-radius:var(--radius-lg);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none;transition:background .2s,border-color .2s}
.channel:hover{background:rgba(255,255,255,.09);border-color:rgba(45,212,165,.5)}
.channel h3{font-size:16px;margin:0 0 3px;color:#fff}
.channel p{margin:0;font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.7)}
.channel .icon-circle{flex:none}
.post-feature{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;padding:40px 44px;border-radius:var(--radius-lg);background:var(--pale-blue);text-decoration:none;color:var(--navy);transition:box-shadow .2s}
.post-feature:hover{box-shadow:0 14px 34px rgba(11,30,49,.12)}
.post-feature h2{font-size:32px;margin:12px 0 14px}
.post-feature-copy>p{font-size:17px;line-height:1.6;color:var(--muted);margin:0 0 18px}
.post-feature-quote{border-left:3px solid var(--teal);padding:6px 0 6px 26px;position:relative}
.post-feature-quote p{font-size:22px;font-weight:600;line-height:1.4;margin:0;color:var(--navy);text-wrap:balance}
.post-feature-mark{position:absolute;left:22px;top:-26px;font-size:64px;line-height:1;color:var(--teal);font-weight:800;opacity:.6}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 24px 20px;text-decoration:none;color:var(--navy);transition:transform .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(11,30,49,.1)}
.post-meta{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:10px}
.post-card h3{font-size:19px;line-height:1.3;margin:0 0 10px}
.post-card p{font-size:14.5px;line-height:1.55;color:var(--muted);margin:0 0 16px;flex:1}
.post-by{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--navy)}
.post-arrow{color:var(--teal-deep);font-weight:700;transition:transform .2s}
.post-card:hover .post-arrow,.post-feature:hover .post-arrow{transform:translateX(4px)}
.series-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.series-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.series-list a{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;color:var(--navy);font-weight:600;font-size:15px;text-decoration:none;transition:border-color .2s,background .2s}
.series-list a:hover{border-color:var(--teal);background:var(--teal-pale)}
.series-n{width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
@media (max-width:1000px){.page-hero--insights .page-hero-inner,.post-feature,.series-inner{grid-template-columns:1fr;gap:28px}.post-grid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.post-grid,.series-list{grid-template-columns:1fr}}

/* hero right-hand panels (advisory, about) and the product shot (ORSIA) */
.hero-panel{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:var(--radius-lg);padding:22px 22px 18px}
.hero-panel-title{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin:0 0 10px 6px}
.hero-panel-item{display:flex;align-items:center;gap:14px;padding:11px 8px;border-radius:10px;color:#fff;text-decoration:none;transition:background .2s}
.hero-panel-item:hover{background:rgba(255,255,255,.07)}
.hero-panel-item .icon-circle{flex:none;width:40px;height:40px}
.hero-panel-item h3{font-size:15.5px;margin:0 0 2px;color:#fff}
.hero-panel-item p{margin:0;font-size:13px;line-height:1.4;color:rgba(255,255,255,.66)}
.hero-panel-arrow{margin-left:auto;color:var(--teal);font-weight:700;opacity:0;transition:opacity .2s,transform .2s}
.hero-panel-item:hover .hero-panel-arrow{opacity:1;transform:translateX(3px)}
.hero-panel--team{padding:24px}
.founders{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.founder{display:flex;flex-direction:column;gap:12px;color:#fff;text-decoration:none}
.founder img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;filter:saturate(.92)}
.founder h3{font-size:16px;margin:0 0 2px;color:#fff}
.founder p{margin:0;font-size:13px;color:rgba(255,255,255,.66)}
.cred-list{list-style:none;margin:0;padding:14px 0 0;border-top:1px solid rgba(255,255,255,.1);display:grid;gap:8px}
.cred-list--lg{border-top:0;padding:4px 6px 0;gap:14px}
.cred-list--lg li{font-size:15px;line-height:1.5;padding-left:26px}
.cred-list--lg li::before{top:8px}
.cred-list--lg b{color:#fff;font-weight:700}
.cred-list li{position:relative;padding-left:22px;font-size:13.5px;line-height:1.4;color:rgba(255,255,255,.8)}
.cred-list li::before{content:'';position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:50%;background:var(--teal)}
.product-shot{position:relative;width:calc(50vw + 40px);max-width:none;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 40px 80px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.1);aspect-ratio:16/10;max-height:60vh}
.product-shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:left top}
/* one rhythm for the photo-style heroes: fill the screen, copy proportionally placed */
.page-hero--photo{min-height:100vh;display:flex;flex-direction:column}
.page-hero--photo .top-nav{width:100%;box-sizing:border-box}
.page-hero--photo .page-hero-inner{flex:1;min-height:0;padding:12vh 20px 8vh;align-items:start;grid-template-columns:1.1fr .9fr;gap:64px;width:100%}
.page-hero--photo .page-hero-visual{padding-top:1vh;align-self:start}
@media (max-height:720px){.page-hero--photo .page-hero-inner{padding:6vh 20px 5vh}.page-hero--photo .page-hero-visual{padding-top:0}}
@media (max-width:1000px){.product-shot{width:100%}.page-hero--photo .page-hero-inner{grid-template-columns:1fr}}

/* founders */
.founder-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:36px}
.founder-card{display:grid;grid-template-columns:150px 1fr;gap:24px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px}
.founder-card img{width:150px;height:150px;object-fit:cover;border-radius:12px}
.founder-body h3{font-size:20px;margin:0 0 4px}
.founder-body .team-role{display:block;margin-bottom:10px}
.founder-body>p{font-size:14.5px;line-height:1.55;color:var(--navy);margin:0 0 12px}
.founder-pts{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--border);display:grid;gap:7px}
.founder-pts li{position:relative;padding-left:16px;font-size:13.5px;line-height:1.45;color:var(--muted)}
.founder-pts li::before{content:'';position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--teal-deep)}
.assoc-title{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep);margin:0 0 14px}
.team-grid--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1000px){.founder-grid{grid-template-columns:1fr}.founder-card{grid-template-columns:120px 1fr}.founder-card img{width:120px;height:120px}}
@media (max-width:700px){.founder-card{grid-template-columns:1fr}.team-grid--3{grid-template-columns:1fr}}

/* laptop device frame (home page "Meet ORSIA"), running off the right edge of the page */
.two-col--laptop{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.laptop-wrap{position:relative;min-width:0}
.laptop-img{display:block;width:calc(100% + 90px);max-width:none;height:auto;margin:0 -40px 0 -50px}   /* angled laptop, whole device in view, turned towards the copy */
.section--laptop{overflow:hidden}
.mockup-block--shot{aspect-ratio:auto;background:#fff;box-shadow:0 24px 60px rgba(11,30,49,.18);border:1px solid var(--border)}
.mockup-block--shot img{height:auto;object-fit:contain}
@media (max-width:1000px){.laptop-img{width:100%}}

/* "Why 1st Pillar": the science photo runs from the page edge and dissolves into the navy */
.why-image{aspect-ratio:auto;border-radius:0;background:transparent;filter:none;box-shadow:none;align-self:center;margin-left:calc(-1 * max(20px, 50vw - 620px));width:calc(100% + max(20px, 50vw - 620px));max-width:none}
.why-image{align-self:stretch;position:relative;min-height:520px}
.why-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:brightness(.9) saturate(.95);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(180deg,transparent 0,#000 12%,#000 86%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(180deg,transparent 0,#000 12%,#000 86%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}   /* fills the column; every edge dissolves into the navy via a mask, so it sits on the gradient without a seam */
.why-image.missing{aspect-ratio:4/3;background:var(--navy-elevated);border-radius:var(--radius-lg);margin-left:0;width:auto}

/* stakeholder outcomes */
.why-list--who .why-item{font-weight:500;font-size:14px;line-height:1.5;color:rgba(255,255,255,.82)}
.why-list--who .why-item b{display:block;font-size:15px;font-weight:700;color:#fff;margin-bottom:2px}
#outcomes .section-head{max-width:820px}
#outcomes .section-head .lede{max-width:820px;color:rgba(255,255,255,.78)}
.outcome-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:8px}
.outcome-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:20px 18px}
.outcome-card .icon-circle{margin-bottom:12px}
.outcome-card h3{font-size:15.5px;color:#fff;margin:0 0 8px;line-height:1.3}
.outcome-card p{margin:0;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.7)}
.outcome-note{text-align:center;margin:22px auto 0;font-size:14px;color:rgba(255,255,255,.6);max-width:640px}
@media (max-width:1100px){.outcome-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.outcome-grid{grid-template-columns:1fr}}

/* "ORSIA brings it all together": four views fanned behind one another */
.screen-stack{position:relative;aspect-ratio:1/0.92;min-width:0}
.screen-stack .ss{position:absolute;width:78%;aspect-ratio:16/10;object-fit:cover;object-position:left top;border-radius:10px;background:#fff;box-shadow:0 24px 50px rgba(11,30,49,.22),0 0 0 1px rgba(11,30,49,.08)}
.screen-stack .ss-1{left:22%;top:0;transform:scale(.9);transform-origin:right top;opacity:.85;filter:blur(1.6px)}
.screen-stack .ss-2{left:14%;top:12%;transform:scale(.94);transform-origin:right top;opacity:.92;filter:blur(1.2px)}
.screen-stack .ss-3{left:7%;top:24%;transform:scale(.97);transform-origin:right top;filter:blur(.7px)}
.screen-stack .ss-4{left:0;top:37%;width:78%;filter:blur(.9px);box-shadow:0 34px 70px rgba(11,30,49,.32),0 0 0 1px rgba(11,30,49,.1)}

/* contact page */
.next-steps{list-style:none;margin:36px 0 36px;padding:0;display:grid;gap:16px}
.next-steps li{display:flex;gap:14px;align-items:flex-start}
.ns-n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--teal);color:var(--navy);font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.next-steps b{display:block;color:#fff;font-size:15px;margin-bottom:2px}
.next-steps span:not(.ns-n){font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.68)}
.contact-method-sub{display:inline-block;margin-top:4px;font-size:13px;font-weight:600;color:var(--teal);text-decoration:none}
.convo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.convo-card{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px 24px;text-decoration:none;color:var(--navy);transition:transform .2s,box-shadow .2s}
.convo-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(11,30,49,.1)}
.convo-card h3{font-size:18px;margin:6px 0 0}
.convo-card p{font-size:14.5px;line-height:1.55;color:var(--muted);margin:0;flex:1}
.visit-band{background:var(--navy);color:#fff;padding:36px 0}
.visit-inner{display:flex;align-items:center;gap:22px}
.visit-inner .icon-circle{flex:none}
.visit-inner h3{color:#fff;font-size:20px;margin:0 0 6px}
.visit-inner p{margin:0;font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.75);max-width:820px}
.visit-inner .btn{margin-left:auto;flex:none}
@media (max-width:1000px){.convo-grid{grid-template-columns:1fr}.visit-inner{flex-wrap:wrap}.visit-inner .btn{margin-left:0}}

/* contact hero: fit a laptop screen */
#demo.page-hero--photo{min-height:0}
#demo .page-hero-inner{padding:5vh 20px 6vh;min-height:0}
#demo .page-hero-copy h1{margin-bottom:14px}
#demo .hero-tagline{margin-bottom:12px}
#demo .hero-lede{margin-bottom:6px;font-size:15px}
#demo .contact-methods{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-top:6px}
#demo .contact-method--wide{grid-column:1/-1}   /* the address runs the full width beneath the short items; the phone, when it comes, fills the slot beside email */
#demo .contact-form-card{padding:20px 24px}
#demo .contact-form{gap:10px}
#demo .form-field textarea{min-height:64px}
@media (max-height:760px) and (min-width:701px){
  #demo .page-hero-inner{padding:3vh 20px 4vh}
  #demo .page-hero-copy h1{font-size:36px;margin-bottom:10px}
  #demo .hero-tagline{font-size:19px;margin-bottom:8px}
  #demo .hero-lede{font-size:14px;margin-bottom:4px}
  #demo .next-steps{margin:16px 0 18px;gap:8px}
  #demo .next-steps span:not(.ns-n){display:none}
  #demo .contact-form-card h3{margin-bottom:10px;font-size:16px}
  #demo .contact-form{gap:8px}
  #demo .form-field input,#demo .form-field select{padding:8px 12px;font-size:14px}
  #demo .form-field label{margin-bottom:3px;font-size:12px}
  #demo .form-field textarea{min-height:56px}
  #demo .form-note{margin-top:2px}
}

.nav-signin{color:#fff;font-weight:600;font-size:15px;text-decoration:none;margin-right:18px;padding:9px 4px;border-bottom:2px solid transparent;transition:color .2s}
.nav-signin:hover{color:var(--teal)}

/* the honest bit: a different way of working */
.gs-change{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start;margin-top:48px}
.gs-change-copy h3{font-size:24px;line-height:1.25;margin:10px 0 14px;text-wrap:balance}
.gs-change-copy p{font-size:15.5px;line-height:1.65;color:var(--muted);margin:0}
.gs-change-copy em{font-style:italic;color:var(--navy)}
.gs-change-tbl{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45}
.gs-change-tbl th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;border-bottom:2px solid var(--pale-blue-2)}
.gs-change-tbl th:first-child{color:var(--muted)}.gs-change-tbl th:last-child{color:var(--teal-deep)}
.gs-change-tbl td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:top}
.gs-change-tbl td:first-child{color:var(--muted);width:44%}.gs-change-tbl td:last-child{color:var(--navy);font-weight:500}
/* the ORSIA column sits on a light teal wash so the two sides read as before and after */
.gs-change-tbl th:last-child,.gs-change-tbl td:last-child{background:rgba(45,212,165,.08)}
.gs-change-tbl th:last-child{border-bottom-color:rgba(45,212,165,.45)}
.gs-change-tbl td:last-child{border-bottom-color:rgba(45,212,165,.22)}

@media (max-width:1000px){.gs-change{grid-template-columns:1fr;gap:20px}}

.gs-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:12px}
.gs-tab{font-family:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;transition:all .15s}
.gs-tab:hover{border-color:var(--teal);color:var(--navy)}
.gs-tab.on{background:var(--navy);border-color:var(--navy);color:#fff}
.gs-tab{text-align:center;white-space:nowrap;padding:8px 8px;font-size:12.5px}
.gs-panel{display:none}.gs-panel.on{display:table}
.gs-change-more{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0 0;font-size:14px;color:var(--muted);line-height:1.5}
.gs-change-more .btn{flex:none}
@media (max-width:700px){.gs-change-more{flex-direction:column;align-items:flex-start}}

.page-hero--calm{position:relative}
.page-hero--calm canvas.lattice{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 82%,transparent 100%),linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 82%,transparent 100%),linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
.page-hero--calm .top-nav,.page-hero--calm .page-hero-inner{position:relative;z-index:2}
.page-hero--calm .page-hero-visual--lattice{min-height:0}
@media (max-width:1000px){.page-hero--calm{display:flex;flex-direction:column}.page-hero--calm canvas.lattice{position:relative;inset:auto;order:3;width:100%;height:min(64vw,360px);margin:-8px 0 8px;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 90%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 90%,transparent 100%)}.page-hero--calm .page-hero-inner{padding-bottom:0;gap:0}.page-hero--calm .page-hero-visual--lattice{display:none}}

/* a little depth in the navy: the same colour, lifting towards the bottom right */
.page-hero,.hero--photo,.section-dark,.cta-banner,.visit-band{background:linear-gradient(135deg,#0B1E31 0%,#0B1E31 38%,#10293F 72%,#153650 100%)}
.hero--photo{background:var(--navy)}   /* home hero: flat navy so the photo's fade meets it without a seam */
.hero--photo{background-color:#0B1E31}
.footer-legal{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.footer-legal a{color:inherit}
.footer-bottom sup{font-size:.6em;vertical-align:top;position:relative;top:.15em}
.page-hero--calm .page-hero-inner{padding-top:56px}

/* legal pages */
.legal-updated{margin:14px 0 0;font-size:14px;color:rgba(255,255,255,.62)}
.legal .legal-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:56px;align-items:start}
.legal-toc{position:sticky;top:24px;font-size:14px}
.legal-toc-title{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:12px}
.legal-toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--border)}
.legal-toc li a{display:block;padding:6px 0 6px 14px;margin-left:-2px;border-left:2px solid transparent;color:var(--muted);text-decoration:none;font-weight:500;line-height:1.35}
.legal-toc li a:hover{color:var(--navy);border-left-color:var(--teal)}
.legal-body{max-width:760px;font-size:16px;line-height:1.65;color:var(--navy)}
.legal-body h2{font-size:24px;margin:44px 0 12px;scroll-margin-top:24px}
.legal-body h2:first-of-type{margin-top:0}
.legal-body h3{font-size:16px;font-weight:700;margin:22px 0 6px}
.legal-body p{margin:0 0 14px;color:var(--muted)}
.legal-body p a,.legal-body li a{color:var(--teal-deep);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(27,158,122,.35)}
.legal-body p a:hover,.legal-body li a:hover{border-bottom-color:var(--teal-deep)}
.legal-summary{background:var(--teal-pale);border:1px solid var(--teal-light);border-radius:var(--radius-lg);padding:24px 28px;margin:0 0 40px}
.legal-summary h2{font-size:18px;margin:0 0 10px}
.legal-summary ul{margin:0;padding-left:20px}
.legal-summary li{margin:0 0 8px;color:var(--navy)}
.legal-callout{background:var(--pale-blue);border-radius:var(--radius-lg);padding:20px 24px;margin:8px 0 20px}
.legal-callout h3{margin:0 0 6px}
.legal-callout p{margin:0}
.legal-table-wrap{overflow-x:auto;margin:6px 0 16px}
.legal-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45}
.legal-table th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:var(--pale-blue);padding:10px 12px;border-bottom:2px solid var(--pale-blue-2)}
.legal-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--muted)}
.legal-table td:first-child{color:var(--navy);font-weight:600}
.legal-table--2 td:first-child{width:42%}
.legal-contacts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:16px 0 8px}
.legal-contact-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px}
.legal-contact-card h3{margin:0 0 8px}
.legal-contact-card p{margin:0;font-size:15px}
@media (max-width:900px){.legal .legal-grid{grid-template-columns:1fr;gap:28px}.legal-toc{position:static}.legal-contacts{grid-template-columns:1fr}}
/* ORSIA landing graphic */
.page-hero--orsia .page-hero-inner{grid-template-columns:.9fr 1.1fr;gap:40px}
.page-hero-visual--graphic{align-self:center}
.orsia-graphic{width:100%;height:auto;display:block;font-family:'Montserrat',sans-serif;overflow:visible}
.orsia-graphic .og-label{fill:#fff;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-anchor:middle}
.orsia-graphic .og-label--c{fill:rgba(255,255,255,.7)}
.orsia-graphic .og-sub{fill:rgba(255,255,255,.55);font-size:9.5px;text-anchor:middle}
.orsia-graphic .og-src rect{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.22)}
.orsia-graphic .og-src text{fill:#fff;font-size:11px;font-weight:600;text-anchor:middle}
.orsia-graphic .og-flow{fill:none;stroke:#2DD4A5;stroke-width:1.6;stroke-dasharray:6 8;opacity:.75;animation:og-dash 2.4s linear infinite}
.orsia-graphic .og-flow--out{stroke:#fff;opacity:.5}
@keyframes og-dash{to{stroke-dashoffset:-28}}
.orsia-graphic .og-orbit{fill:none;stroke:rgba(45,212,165,.45);stroke-width:1;stroke-dasharray:3 6;transform-origin:335px 232px;animation:og-spin 60s linear infinite}
@keyframes og-spin{to{transform:rotate(360deg)}}
.orsia-graphic .og-spoke{stroke:rgba(255,255,255,.14);stroke-width:1}
.orsia-graphic .og-node circle{fill:#0F2440;stroke:rgba(45,212,165,.6);stroke-width:1.2}
.orsia-graphic .og-node text{fill:#fff;font-size:10.5px;font-weight:700;text-anchor:middle}
.orsia-graphic .og-node{animation:og-pulse 4s ease-in-out infinite}
@keyframes og-pulse{0%,100%{opacity:.85}50%{opacity:1}}
.orsia-graphic .og-corebg{stroke:#2DD4A5;stroke-width:2}
.orsia-graphic .og-glowc{animation:og-breathe 5s ease-in-out infinite;transform-origin:335px 232px}
@keyframes og-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.orsia-graphic .og-wm{fill:#fff;font-family:'Aldrich',sans-serif;font-size:19px;letter-spacing:3px}
.orsia-graphic .og-coresub{fill:rgba(255,255,255,.6);font-size:9px;text-anchor:middle;letter-spacing:.06em}
.orsia-graphic .og-out rect{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.2)}
.orsia-graphic .og-out .og-doc{fill:#2DD4A5;stroke:none;opacity:.85}
.orsia-graphic .og-out text{fill:#fff;font-size:10.5px;font-weight:600}
.orsia-graphic .og-thread circle{fill:#2DD4A5}
.orsia-graphic .og-thread text{fill:rgba(255,255,255,.85);font-size:11px;font-weight:600;text-anchor:middle}
.orsia-graphic .og-thread{animation:og-pulse 3s ease-in-out infinite}
.orsia-graphic .og-thread-line{stroke:rgba(45,212,165,.5);stroke-width:1.4;stroke-dasharray:4 5;animation:og-dash 2s linear infinite}
@media (prefers-reduced-motion:reduce){.orsia-graphic *{animation:none !important}}

/* Today / With ORSIA — the before-and-after */
.ba-wrap{display:grid;grid-template-columns:1fr 44px 1fr;gap:14px;align-items:center;margin-top:34px}
.ba-panel{border-radius:12px;overflow:hidden;box-shadow:0 14px 40px rgba(11,30,49,.10)}
.ba-arrow{display:flex;align-items:center;justify-content:center;color:var(--teal-deep)}
.ba-arrow svg{width:40px;height:40px}
.ba-svg{display:block;width:100%;height:auto;font-family:'Montserrat',sans-serif}
.ba-before .ba-bg{fill:#F4F6F8}.ba-after .ba-bg{fill:#F0FBF7}
.ba-before .ba-head{fill:#5B6773}.ba-after .ba-head{fill:var(--navy)}
.ba-title{fill:#fff;font-size:11px;font-weight:800;letter-spacing:.16em}
.ba-after .ba-title{fill:var(--teal)}
.ba-wm{font-family:'Aldrich','Montserrat',sans-serif;font-weight:400;letter-spacing:.14em;font-size:11.5px;stroke:currentColor;stroke:var(--teal);stroke-width:.45px;paint-order:stroke}
.ba-tag{fill:rgba(255,255,255,.85);font-size:9.5px;font-style:italic;text-anchor:end}
.ba-level{font-size:8.5px;font-weight:800;letter-spacing:.16em;fill:#5B6773}.ba-after .ba-level{fill:var(--teal-deep)}
.ba-lbl{font-size:7.6px;font-weight:700;fill:var(--navy);text-anchor:middle}.ba-lbl--r{text-anchor:end;font-weight:600;fill:#8E97A1;font-style:italic}
.ba-person circle,.ba-person path{fill:var(--navy)}.ba-after .ba-person circle,.ba-after .ba-person path{fill:var(--teal-deep)}
.ba-school path,.ba-school rect,.ba-school circle{fill:var(--navy)}.ba-school rect{fill:#F4F6F8}.ba-after .ba-school path,.ba-after .ba-school circle{fill:var(--teal-deep)}.ba-after .ba-school rect{fill:#F0FBF7}
.ba-chip{fill:#fff;stroke:#C9D3E0}.ba-chip-t{font-size:7.4px;font-weight:600;fill:#5B6773;text-anchor:middle}
.ba-tangle{stroke:#B7C2CC;stroke-width:.8;fill:none;opacity:.8}
.ba-x circle{fill:#D75064}.ba-x path{stroke:#fff;stroke-width:1.4}
.ba-link{stroke:var(--teal);stroke-width:1.1;opacity:.75}
.ba-core{fill:var(--navy);stroke:var(--teal);stroke-width:3}
.ba-core-wm{fill:#fff;font-family:'Aldrich',sans-serif;font-size:17px;letter-spacing:3px;text-anchor:middle}
.ba-core-sub{fill:var(--teal);font-size:7.5px;font-style:italic;text-anchor:middle}
.ba-note{font-size:7.2px;fill:#8E97A1;font-style:italic;text-anchor:middle}
.ba-pill{fill:#FADCE1;stroke:#E6A9B4}.ba-after .ba-pill{fill:#E4F7F0;stroke:#9AD9C6}
.ba-pill-n{font-size:6.6px;font-weight:800;letter-spacing:.14em;fill:#8F2838;text-anchor:middle}.ba-after .ba-pill-n{fill:#0E7A70}
.ba-pill-v{font-size:8px;font-weight:700;fill:#8F2838;text-anchor:middle}.ba-after .ba-pill-v{fill:#0E7A70}
.ba-hinge{margin:26px auto 0;max-width:none;text-align:center;font-size:19px;color:var(--navy);line-height:1.5}
.ba-hinge b{font-weight:800}
@media (max-width:1100px){.ba-hinge{font-size:18px}}
.orsia-expansion{display:inline-flex;flex-wrap:wrap;gap:6px 0;margin:0 0 18px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.orsia-expansion i{font-style:normal;opacity:.45;margin:0 8px}

/* Getting started — four stages, three promises */
.gs-steps{list-style:none;padding:0;margin:0 0 36px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative}
.gs-step::before{content:'';position:absolute;left:19px;right:-8px;top:18px;height:2px;background:var(--teal-light)}
.gs-step:last-child::before{right:0}
.gs-step{position:relative;display:flex;flex-direction:column;gap:12px}
.gs-n{width:38px;height:38px;border-radius:50%;background:var(--navy);color:var(--teal);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 0 0 2px var(--teal-light);position:relative;z-index:1}
.gs-when{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:6px}
.gs-step h4{font-size:16px;margin:0 0 8px;color:var(--navy)}
.gs-step p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.gs-promises{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gs-promise{display:flex;gap:14px;align-items:flex-start;background:var(--pale-blue);border-radius:12px;padding:20px}
.gs-promise .icon-circle{flex:none}
.gs-promise h4{font-size:15px;margin:2px 0 6px;color:var(--navy)}
.gs-promise p{font-size:13.5px;line-height:1.5;color:var(--muted);margin:0}
.gs-ask{margin:26px auto 0;max-width:760px;text-align:center;font-size:15.5px;color:var(--navy);line-height:1.6}

/* Capability & data readiness — the cycle and the time contrast */
.two-col--mt{align-items:center}
.mt-visual{display:flex;justify-content:center}
.mt-cycle{width:100%;max-width:480px;height:auto;font-family:'Montserrat',sans-serif}
.mt-ring{fill:none;stroke:var(--teal-deep);stroke-width:3;stroke-dasharray:9 7;opacity:1}
.mt-arrow{fill:none;stroke:var(--teal-deep);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.mt-node circle{fill:#fff;stroke:var(--teal-deep);stroke-width:2}
.mt-node text{fill:var(--navy);font-size:12.5px;font-weight:700;text-anchor:middle}
.mt-node--start circle{fill:var(--navy);stroke:var(--teal);stroke-width:2.5}
.mt-node--start text{fill:#fff}
.mt-core{fill:var(--navy);font-size:14px;font-weight:800;text-anchor:middle}
.mt-core-sub{fill:var(--muted);font-size:9.5px;text-anchor:middle;font-style:italic}
.mt-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:40px;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.mt-table th,.mt-table td{padding:16px 20px;text-align:left;font-size:14.5px;line-height:1.5;border-bottom:1px solid var(--border);vertical-align:top}
.mt-table tbody tr:last-child th,.mt-table tbody tr:last-child td{border-bottom:none}
.mt-table thead th{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--pale-blue);padding:12px 20px}
.mt-table thead th:last-child{color:var(--teal-deep)}
.mt-table tbody th{font-weight:700;color:var(--navy);width:22%}
.mt-table td.mt-today{color:var(--muted);width:39%}
.mt-table td.mt-with{color:var(--navy);font-weight:600;background:var(--teal-pale)}

/* quiet ORSIA hero — copy beside a photograph */
.page-hero--calm{min-height:100vh;display:flex;flex-direction:column}
.page-hero--calm .top-nav{width:100%;box-sizing:border-box}   /* the navy fills the screen, whatever its size */
.page-hero--calm .page-hero-inner{flex:1;grid-template-columns:1.45fr .75fr;grid-template-rows:1fr;min-height:0;padding:14vh 20px 7vh;align-items:start;gap:56px;width:100%}   /* the name and mark sit well clear of the navigation */
.page-hero--calm .page-hero-copy{display:flex;flex-direction:column;align-self:stretch}
.page-hero--calm .page-hero-visual{align-self:start;padding-top:10vh}   /* proportional: sits 9% down whatever the screen, the space below grows with it */
.page-hero--calm .page-hero-copy{max-width:720px}
.page-hero--calm .page-hero-photo{aspect-ratio:4/5}
.page-hero--calm h1{font-size:46px;line-height:1.16;margin-bottom:20px}
.page-hero--calm .hero-lede{max-width:640px;font-size:16.5px;margin-bottom:34px}
.page-hero--calm .hero-tagline{font-weight:500;color:rgba(255,255,255,.85);font-size:20px;max-width:600px;margin-bottom:36px}
.page-hero--calm .orsia-expansion{margin-bottom:22px;opacity:.9}
.page-hero--calm .hero-cta-row{margin-top:0;padding-top:calc(5vh + 50px);align-items:center;gap:22px}   /* a measured gap under the copy, not pinned to the foot */
.page-hero--calm .hero-link{color:rgba(255,255,255,.8);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px}
.page-hero--calm .hero-link:hover{color:var(--teal);border-color:var(--teal)}
@media (max-height:720px){.page-hero--calm .page-hero-inner{padding:7vh 20px 4vh}.page-hero--calm .page-hero-visual{padding-top:6vh}.page-hero--calm .hero-cta-row{padding-top:calc(3vh + 50px)}.page-hero--calm h1{font-size:40px;margin-bottom:16px}.page-hero--calm .hero-tagline{font-size:17px;margin-bottom:24px}.orsia-brand{margin:0 0 5vh}.orsia-brand .wm{font-size:32px}.orsia-brand .orsia-mark{width:32px;height:32px}.page-hero--calm .page-hero-photo{max-height:52vh;aspect-ratio:auto;height:52vh}}

/* ORSIA Connect and the engine — in, transform, out */
.engine{display:grid;grid-template-columns:1fr 44px 1.15fr 44px 1fr;gap:14px;align-items:stretch;margin-top:36px}
.engine-step{background:#fff;border:1px solid var(--border);border-radius:14px;padding:26px 24px}
.engine-step--core{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 18px 44px rgba(11,30,49,.18)}
.engine-n{display:inline-flex;width:30px;height:30px;border-radius:50%;background:var(--teal-light);color:var(--navy);font-weight:800;font-size:13px;align-items:center;justify-content:center;margin-bottom:14px}
.engine-step--core .engine-n{background:var(--teal);color:var(--navy)}
.engine-step h3{font-size:19px;margin:0 0 10px;color:var(--navy)}.engine-step--core h3{color:#fff}
.engine-step p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0 0 14px}.engine-step--core p{color:rgba(255,255,255,.8)}
.engine-list{list-style:none;padding:0;margin:0}
.engine-list li{position:relative;padding-left:18px;font-size:13.5px;line-height:1.5;color:var(--navy);margin-bottom:6px}
.engine-list li::before{content:'';position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--teal-deep)}
.engine-step--core .engine-list li{color:#fff}.engine-step--core .engine-list li::before{background:var(--teal)}
.engine-arrow{display:flex;align-items:center;justify-content:center;color:var(--teal-deep)}
.engine-arrow svg{width:36px;height:36px}
.engine-note{text-align:center;margin:26px 0 0;font-size:16px;font-weight:600;color:var(--navy)}

.ps-small{font-size:8px;font-weight:600;color:var(--muted)}
.ps-spark{display:flex;align-items:flex-end;gap:4px;height:34px;margin-top:6px}
.ps-spark i{flex:1;background:#CBD5E1;border-radius:2px 2px 0 0}
.ps-spark i.ps-spark--hot{background:#D75064}
.ps-trail{background:#fff;border:1px solid #E5E8EC;border-radius:9px;padding:10px;margin-bottom:8px}
.ps-step{display:flex;gap:8px;align-items:flex-start;position:relative;padding-bottom:10px}
.ps-step:last-child{padding-bottom:0}
.ps-step span{width:10px;height:10px;border-radius:50%;border:2px solid #CBD5E1;background:#fff;flex:none;margin-top:2px}
.ps-step--done span{background:var(--teal-deep);border-color:var(--teal-deep)}
.ps-step--now span{background:#fff;border-color:#D75064;box-shadow:0 0 0 3px rgba(215,80,100,.18)}
.ps-step:not(:last-child)::before{content:'';position:absolute;left:4px;top:12px;bottom:0;width:2px;background:#E5E8EC}
.ps-step b{display:block;font-size:9.5px}
.ps-step i{display:block;font-style:normal;font-size:8px;color:var(--muted)}
.ps-inline{font-size:9px;color:var(--navy)}
.ps-small{font-size:8px;font-weight:600;color:var(--muted)}
.ps-spark{display:flex;align-items:flex-end;gap:4px;height:34px;margin-top:6px}
.ps-spark i{flex:1;background:#CBD5E1;border-radius:2px 2px 0 0}
.ps-spark i.ps-spark--hot{background:#D75064}
.ps-trail{background:#fff;border:1px solid #E5E8EC;border-radius:9px;padding:10px;margin-bottom:8px}
.ps-step{display:flex;gap:8px;align-items:flex-start;position:relative;padding-bottom:10px}
.ps-step:last-child{padding-bottom:0}
.ps-step span{width:10px;height:10px;border-radius:50%;border:2px solid #CBD5E1;background:#fff;flex:none;margin-top:2px}
.ps-step--done span{background:var(--teal-deep);border-color:var(--teal-deep)}
.ps-step--now span{background:#fff;border-color:#D75064;box-shadow:0 0 0 3px rgba(215,80,100,.18)}
.ps-step:not(:last-child)::before{content:'';position:absolute;left:4px;top:12px;bottom:0;width:2px;background:#E5E8EC}
.ps-step b{display:block;font-size:9.5px}
.ps-step i{display:block;font-style:normal;font-size:8px;color:var(--muted)}
.ps-inline{font-size:9px;color:var(--navy)}

/* product shot on the ORSIA hero: an even split, the shot allowed to run off the right edge */
.page-hero--calm{overflow:hidden}
.page-hero--calm .page-hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}
.page-hero--calm .page-hero-visual{min-width:0}
.page-hero--calm .page-hero-visual{padding-top:13vh}
@media (max-height:720px){.page-hero--calm .page-hero-visual{padding-top:7vh}}

/* ===== ORSIA escalated-risk mobile journey (from orsia-mobile-journey-A4_5.html), namespaced ===== */
.mj{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;--coral:#D75064;--hi-bg:#FADCE1;--hi-ink:#8A2A3D;--md-bg:#FBEFD3;--md-ink:#8A5A1F;--lo-bg:#E3F5F2;--lo-ink:#0E7A70;--ink:#0B1E31;--mut:#5F6B7A;--sub:#98A1AC;--ln:#E9E9E9;--pg:#F1EDF4;margin-top:36px}
.mj .flow{ display:flex; align-items:flex-start; justify-content:center; gap:2px; }
.mj .slot{ display:flex; flex-direction:column; align-items:center; gap:8px; width:206px; }
.mj .slot .cap{ text-align:center; font-size:11px; color:var(--mut); line-height:1.4; }
.mj .slot .cap .n{ display:inline-flex; width:17px; height:17px; border-radius:50%; background:var(--navy); color:#fff; align-items:center; justify-content:center; font-size:10px; font-weight:700; margin-right:4px; vertical-align:middle; }
.mj .slot .cap b{ color:var(--ink); }
.mj .arrowc{ align-self:flex-start; margin-top:202px; color:var(--teal-deep); flex:none; display:flex; align-items:center; justify-content:center; }
.mj .arrowc svg{ width:36px; height:36px; }
.mj /* ---------- phone (zoomed to fit 4 across A4) ---------- */
  .phone{ zoom:.635; position:relative; width:344px; height:706px; border-radius:50px; background:#0a0a0c; padding:12px;
    box-shadow:inset 0 0 0 2px #2a2c30, 0 0 0 2px #3a3d42, 0 0 0 5px #17181b, 0 20px 44px rgba(0,0,0,.34); }
.mj .screen{ position:relative; width:320px; height:682px; border-radius:40px; overflow:hidden; background:#000; }
.mj .island{ position:absolute; top:11px; left:50%; transform:translateX(-50%); width:110px; height:31px; background:#000; border-radius:18px; z-index:20; }
.mj .sbar{ position:absolute; top:0; left:0; right:0; height:50px; z-index:15; display:flex; justify-content:space-between; align-items:flex-end; padding:0 26px 6px; font-size:13.5px; font-weight:600; }
.mj .sbar.dk{ color:#fff; }
.mj .sbar.lt{ color:var(--ink); }
.mj .sbar .rt{ display:flex; align-items:center; gap:5px; }
.mj .lock{ display:inline-flex; align-items:center; }
.mj .lock svg{ width:20px; height:20px; margin-right:0; margin-top:-1px; }
.mj .lock .wm{ margin-left:.28em; }
.mj .shead .brand .wm{ margin-left:.28em; }
.mj .lock .wm{ font-family:'Aldrich',sans-serif; font-weight:400; letter-spacing:.20em; font-size:14px; }
.mj /* ===== S1 lock screen + push ===== */
  .s-lock{ position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(6,12,20,.12), rgba(6,12,20,.55) 60%, rgba(4,8,14,.86)),
      radial-gradient(560px 380px at 28% 6%, rgba(45,212,165,.26), transparent 60%),
      radial-gradient(560px 440px at 90% 80%, rgba(27,60,90,.6), transparent 62%),
      linear-gradient(160deg,#0e2438 0%,#0a1a2a 48%,#071220 100%); }
.mj .lk-top{ position:absolute; top:80px; left:0; right:0; text-align:center; color:#fff; }
.mj .lk-date{ font-size:15px; font-weight:600; opacity:.9; }
.mj .lk-time{ font-size:74px; font-weight:600; letter-spacing:-.01em; line-height:1.02; text-shadow:0 2px 22px rgba(0,0,0,.22); }
.mj .notifs{ position:absolute; left:12px; right:12px; bottom:100px; display:flex; flex-direction:column; gap:9px; }
.mj .note{ background:rgba(28,36,46,.62); backdrop-filter:blur(22px) saturate(150%); -webkit-backdrop-filter:blur(22px) saturate(150%);
    border:1px solid var(--teal); border-radius:21px; padding:12px 13px; color:#fff;
    box-shadow:0 8px 24px rgba(0,0,0,.28), 0 0 0 .5px rgba(45,212,165,.35), 0 6px 20px rgba(45,212,165,.2); }
.mj .note.stack{ margin:0 9px -1px; opacity:.9; border:.5px solid rgba(255,255,255,.10); box-shadow:0 8px 22px rgba(0,0,0,.26); }
.mj .note.stack2{ margin:0 19px -3px; height:18px; padding:0; border-radius:21px; opacity:.5; background:rgba(28,36,46,.5); border:.5px solid rgba(255,255,255,.08); }
.mj .n-head{ display:flex; align-items:center; gap:4px; margin-bottom:5px; }
.mj .n-icon{ width:36px; height:36px; border-radius:9px; background:var(--navy); display:flex; align-items:center; justify-content:center; box-shadow:inset 0 0 0 .5px rgba(255,255,255,.09); flex:none; }
.mj .n-app{ font-family:'Aldrich',-apple-system,sans-serif; font-size:13px; letter-spacing:.22em; color:#fff; text-transform:uppercase; display:inline-flex; align-items:center; }
.mj .n-app .omark{ width:18px; height:18px; margin-right:.28em; margin-top:-1px; }
.mj .n-time{ margin-left:auto; font-size:12.5px; color:rgba(255,255,255,.5); }
.mj .n-title{ font-size:15px; font-weight:600; line-height:1.28; margin:0 0 2px; }
.mj .n-body{ font-size:14px; line-height:1.34; color:rgba(255,255,255,.9); margin:0; }
.mj .n-title, .mj .esc-banner .t{ text-wrap:balance; }
.mj .rtitle, .mj .n-body, .mj .whatbox, .mj .s-auth p, .mj .s-ack p, .mj .subline, .mj .esc-banner .t small{ text-wrap:pretty; }
.mj .n-pill{ display:inline-flex; align-items:center; gap:5px; margin-top:9px; background:rgba(215,80,100,.22); color:#ffb9c4; border:.5px solid rgba(215,80,100,.4); font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:3px 8px; border-radius:7px; }
.mj .n-dot{ width:6px; height:6px; border-radius:50%; background:#ff6478; box-shadow:0 0 8px #ff6478; }
.mj .homebar{ position:absolute; bottom:9px; left:50%; transform:translateX(-50%); width:126px; height:5px; border-radius:3px; background:rgba(255,255,255,.82); }
.mj /* ===== S2 Face ID ===== */
  .s-auth{ position:absolute; inset:0; background:linear-gradient(165deg,#0e2438,#0a1a2a 55%,#071220); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 34px; color:#fff; }
.mj .s-auth .bw{ position:absolute; top:118px; left:0; right:0; display:flex; justify-content:center; }
.mj .s-auth .bw .wm{ font-size:22px; letter-spacing:.24em; }
.mj .s-auth .bw svg{ width:31px; height:31px; margin-right:0; }
.mj .faceid{ width:70px; height:70px; border-radius:18px; border:2px solid var(--teal); display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 6px rgba(45,212,165,.10), 0 0 34px rgba(45,212,165,.28); }
.mj .s-auth h2{ font-size:18px; font-weight:600; margin:26px 0 6px; }
.mj .s-auth p{ font-size:13.5px; color:rgba(255,255,255,.62); line-height:1.5; margin:0; max-width:230px; }
.mj .s-auth .ctx{ position:absolute; bottom:58px; left:26px; right:26px; background:rgba(255,255,255,.06); border:.5px solid rgba(255,255,255,.12); border-radius:14px; padding:12px 14px; text-align:left; }
.mj .s-auth .ctx .t{ font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--teal); }
.mj .s-auth .ctx .b{ font-size:13px; color:rgba(255,255,255,.85); margin-top:3px; line-height:1.4; }
.mj /* ===== S3 brief ===== */
  .app{ position:absolute; inset:0; }
.mj .appbar{ position:absolute; top:0; left:0; right:0; height:92px; background:var(--navy); display:flex; align-items:flex-end; justify-content:space-between; padding:0 18px 12px; z-index:10; }
.mj .appbar .lock .wm{ color:#fff; }
.mj .appbar .x{ width:28px; height:28px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; }
.mj .abody{ position:absolute; top:92px; bottom:0; left:0; right:0; overflow-y:auto; overflow-x:hidden; background:var(--pg); scrollbar-width:none; -ms-overflow-style:none; }
.mj .abody::-webkit-scrollbar{ display:none; }
.mj .ackblock{ padding:14px 18px 18px; }
.mj .esc-banner{ background:#D75064; color:#fff; padding:11px 18px; display:flex; align-items:center; gap:9px; }
.mj .esc-banner .dot{ width:8px; height:8px; border-radius:50%; background:#fff; box-shadow:0 0 8px rgba(255,255,255,.6); flex:none; }
.mj .esc-banner .t{ font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; }
.mj .esc-banner .t small{ display:block; font-weight:500; letter-spacing:.01em; text-transform:none; font-size:10.5px; color:#fff; opacity:.85; margin-top:1px; }
.mj .pad{ padding:14px 18px 0; }
.mj .rtitle{ font-size:17px; font-weight:700; color:var(--ink); line-height:1.3; letter-spacing:-.01em; margin:0 0 8px; }
.mj .meta{ display:flex; flex-wrap:wrap; gap:6px 8px; align-items:center; font-size:12px; color:var(--mut); }
.mj .meta .id{ font-weight:700; color:var(--navy); }
.mj .meta .sep{ color:var(--sub); }
.mj .chip{ display:inline-flex; align-items:center; font-size:11px; font-weight:700; padding:3px 9px; border-radius:20px; }
.mj .chip.school{ background:rgba(42,111,142,.12); color:#215C77; }
.mj .rate{ display:flex; gap:9px; margin:13px 0 2px; }
.mj .rate .card{ flex:1; background:#fff; border:1px solid var(--ln); border-radius:12px; padding:10px 12px; }
.mj .rate .card .k{ font-size:9.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--sub); }
.mj .rate .card .v{ display:flex; align-items:baseline; gap:7px; margin-top:5px; }
.mj .rate .card .v b{ font-size:21px; color:var(--ink); line-height:1; }
.mj .band{ font-size:10px; font-weight:700; padding:2px 7px; border-radius:6px; }
.mj .band.md{ background:var(--md-bg); color:var(--md-ink); }
.mj .band.lo{ background:var(--lo-bg); color:var(--lo-ink); }
.mj .arrow{ align-self:center; color:var(--teal-deep); font-weight:800; font-size:15px; }
.mj .sect{ margin-top:11px; }
.mj .sect h3{ font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--mut); margin:0 0 7px; }
.mj .whatbox{ background:#fff; border:1px solid var(--ln); border-radius:10px; padding:10px 13px; font-size:13px; color:#37424e; line-height:1.48; }
.mj .whatbox b{ color:var(--ink); }
.mj .ctrls{ background:#fff; border:1px solid var(--ln); border-radius:12px; overflow:hidden; }
.mj .ctrl{ display:flex; align-items:center; gap:10px; padding:7px 13px; border-bottom:1px solid #F0F2F5; font-size:12.5px; color:#37424e; }
.mj .ctrl .cn{ flex:1; min-width:0; }
.mj .ctrl:last-child{ border-bottom:0; }
.mj .ctrl .tick{ width:18px; height:18px; border-radius:50%; background:var(--lo-bg); color:var(--lo-ink); display:flex; align-items:center; justify-content:center; flex:none; font-size:11px; }
.mj .ctrl .tick.plan{ background:#EEF1F4; color:#8A95A1; }
.mj .ctrl .g{ margin-left:auto; font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--sub); }
.mj .people{ background:#fff; border:1px solid var(--ln); border-radius:12px; overflow:hidden; }
.mj .prow{ display:flex; align-items:center; gap:11px; padding:9px 13px; border-bottom:1px solid #F0F2F5; }
.mj .prow:last-child{ border-bottom:0; }
.mj .av{ width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; color:#fff; flex:none; }
.mj .prow .r{ font-size:9.5px; color:var(--sub); font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.mj .prow .n{ font-size:13px; color:var(--ink); font-weight:600; }
.mj .prow>div{ min-width:0; }
.mj .prow .st{ margin-left:auto; padding-left:10px; font-size:11px; font-weight:700; color:var(--lo-ink); white-space:nowrap; flex-shrink:0; }
.mj .actions{ padding:14px 18px 20px; }
.mj .btn{ display:flex; align-items:center; justify-content:center; width:100%; height:48px; border-radius:14px; font-size:14.5px; font-weight:700; border:0; }
.mj .btn.pri{ background:var(--teal-deep); color:#fff; box-shadow:0 6px 18px rgba(27,158,123,.32); }
.mj .btn.sec{ background:transparent; color:var(--mut); font-weight:600; height:40px; font-size:13px; }
.mj .secure{ text-align:center; font-size:11px; color:var(--sub); margin-top:2px; display:flex; align-items:center; justify-content:center; gap:5px; }
.mj /* ===== S4 acknowledged ===== */
  .s-ack{ position:absolute; inset:0; background:linear-gradient(170deg,#0e2438,#0a1a2a 60%,#071220); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 32px; color:#fff; }
.mj .ackmark{ width:92px; height:92px; border-radius:50%; background:rgba(45,212,165,.14); border:2px solid var(--teal); display:flex; align-items:center; justify-content:center; box-shadow:0 0 40px rgba(45,212,165,.3); }
.mj .s-ack h2{ font-size:22px; font-weight:700; margin:24px 0 8px; }
.mj .s-ack p{ font-size:14px; color:rgba(255,255,255,.72); line-height:1.55; margin:0; max-width:250px; }
.mj .s-ack .logged{ margin-top:42px; background:rgba(255,255,255,.06); border:.5px solid rgba(255,255,255,.12); border-radius:14px; padding:13px 16px; width:100%; text-align:left; }
.mj .s-ack .logged .k{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--teal); }
.mj .s-ack .logged .v{ font-size:13px; color:rgba(255,255,255,.9); margin-top:3px; line-height:1.45; }
.mj .s-ack .done{ position:absolute; bottom:50px; left:32px; right:32px; height:46px; border-radius:14px; background:rgba(255,255,255,.1); color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:600; }

/* resets against the site stylesheet */
.mj .phone{text-align:left;margin:0}
.mj h2{font-family:inherit;letter-spacing:0}
.mj .s-auth h2,.mj .s-ack h2{color:#fff}
.mj .flow{justify-content:center}
/* room between the phones on the web page (the A4 sheet had to pack them) */
.mj .flow{gap:34px}
.mj .arrowc{margin-left:6px;margin-right:6px}
/* device presentation: a soft drop shadow and a faint floor reflection, caption below it */
.mj .phone{position:relative;box-shadow:0 30px 60px rgba(11,30,49,.28),0 8px 18px rgba(11,30,49,.14)}
.mj .phone::after{content:'';position:absolute;left:8%;right:8%;bottom:-38px;height:32px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(11,30,49,.22),rgba(11,30,49,0) 70%);pointer-events:none}
.mj .slot{gap:0}
.mj .slot .cap{margin-top:44px;font-size:13px}
.mj .slot .cap .n{width:20px;height:20px;line-height:20px;font-size:11px}
/* caption: number centred on its own line, text on one line beneath */
.mj .slot .cap{display:block;text-align:center;white-space:nowrap;width:100%}
.mj .slot .cap .n{display:flex;margin:0 auto 8px}
.mj .slot{width:262px}
.mj .flow{gap:20px}
.mj-head{max-width:800px}
.mj-head .lede{max-width:800px}

/* ---- ported articles ---- */
.page-hero--article .page-hero-inner{padding:28px 20px 44px}
.article-head{max-width:760px}
.article-crumb{display:block;width:max-content;font-size:13px;font-weight:600;color:rgba(255,255,255,.7);text-decoration:none;margin-bottom:18px}.article-crumb:hover{color:var(--teal)}
.page-hero--article h1{font-size:40px;line-height:1.15;margin:10px 0 14px;text-wrap:balance}
.article-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:14px;color:rgba(255,255,255,.72);margin:0}
.article-wrap{max-width:760px}
.article{font-size:17.5px;line-height:1.7;color:var(--navy)}
.article p{margin:0 0 20px}
.article h2{font-size:24px;margin:36px 0 12px;line-height:1.25}
.article h3{font-size:19px;margin:28px 0 10px}
.article ul,.article ol{margin:0 0 22px;padding-left:24px}.article li{margin-bottom:8px}
.article blockquote{margin:26px 0;padding:6px 0 6px 22px;border-left:3px solid var(--teal);font-size:20px;font-weight:600;line-height:1.45;color:var(--navy)}
.article blockquote p{margin:0}
.article a{color:var(--teal-deep);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.article em{color:var(--muted)}
.article-sign{font-weight:700;color:var(--navy)}
.article-figure--wide{margin:34px 0}.article-figure--wide svg{width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:12px}
.article blockquote p{margin:0}.article blockquote cite{display:block;margin-top:8px;font-style:normal;font-size:15px;font-weight:600;color:var(--muted)}
.article-file{display:inline-block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.86em;background:var(--teal-light);color:var(--navy);padding:4px 10px;border-radius:6px}
.article-source{max-width:720px;margin:28px auto 0;padding:14px 18px;border:1px solid var(--border);border-radius:10px;font-size:14.5px;color:var(--muted);background:#fff}.article-source a{color:var(--teal-deep);font-weight:600}
.article-figure{margin:26px 0;padding:22px 18px 12px;background:var(--pale-blue);border-radius:14px}
.article-figure svg{width:100%;height:auto;display:block;max-width:520px;margin:0 auto}
.article-figure img{width:100%;height:auto;display:block;border-radius:8px;border:1px solid var(--border)}
.article-figure figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:10px}
.article-author{display:flex;gap:18px;align-items:flex-start;margin:44px 0 0;padding:22px 24px;border:1px solid var(--border);border-radius:14px;background:#fff}
.article-author img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.article-author b{display:block;font-size:16px;margin-bottom:4px}.article-author span{font-size:14px;line-height:1.55;color:var(--muted)}
.article-author a{color:var(--teal-deep);font-weight:600}
.article-adjacent{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.article-adj{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--navy);background:#fff}
.article-adj:hover{border-color:var(--teal)}
.article-adj span{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep)}
.article-adj b{font-size:15px;line-height:1.35}
.article-adj--next{text-align:right;grid-column:2}
.post-count{font-size:14px;color:var(--muted);font-weight:600}
@media (max-width:700px){.page-hero--article h1{font-size:30px}.article{font-size:16.5px}.article-adjacent{grid-template-columns:1fr}.article-adj--next{grid-column:auto;text-align:left}}

.mobile-only{display:none}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:#163A5C}
/* hover: a teal tint, so the outline buttons respond without becoming the teal action */
.btn-outline-light:hover{background:rgba(45,212,165,.16);border-color:var(--teal);color:#fff}
.btn-outline-dark:hover{background:var(--teal-light);border-color:var(--teal-deep);color:var(--navy)}
.btn{transition:background .18s,border-color .18s,color .18s}
.btn-soft{background:var(--teal-light);color:var(--navy)}.btn-soft:hover{background:#CDEFE3}
.section-dark .btn-navy,.cta-banner .btn-navy{background:#fff;color:var(--navy)}
/* a pair of buttons that belong together take the same width */
.btn-pair{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:14px}
.btn-pair .btn{text-align:center;justify-content:center;white-space:nowrap}
.hero-cta-row .btn-pair{margin-right:8px}
@media (max-width:700px){.mobile-only{display:block}}
/* Phone and tablet menu: the nav links become a panel under the bar, opened by the button */
.nav-toggle{display:none;flex-shrink:0;width:44px;height:44px;margin-left:12px;padding:10px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:transparent;cursor:pointer;flex-direction:column;justify-content:center;gap:5px}
.nav-toggle span{display:block;height:2px;border-radius:2px;background:#fff;transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:900px){
  .page-hero--photo .hero-photo--page,.page-hero--photo .hero-photo--portrait{position:relative;width:100%;height:auto;order:2;margin-top:8px;pointer-events:none}
  .page-hero--photo .hero-photo--page .photo{position:relative;height:auto;aspect-ratio:4/3;margin:0;border-radius:0}
  .page-hero--photo .hero-photo--page .photo img,.page-hero--photo .hero-photo--portrait .photo img{position:absolute;inset:0;right:auto;top:auto;bottom:auto;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 35%;-webkit-mask-image:none;mask-image:none;filter:brightness(0.92) saturate(0.95)}
  .page-hero--photo .hero-photo--page::after,.page-hero--photo .hero-photo--portrait::after{background:linear-gradient(180deg,var(--navy) 0%,rgba(11,30,49,0) 26%)}
}
@media (max-width:1000px){
  .top-nav,.page-hero--calm .top-nav{gap:12px;flex-wrap:nowrap;position:relative;z-index:40}
  .top-nav .logo{flex-shrink:0;margin-right:auto}
  .top-nav .btn{margin-left:0;white-space:nowrap}
  .nav-toggle{display:flex}
  .nav-menu{display:none;position:absolute;left:0;right:0;top:100%;margin:8px 0 0;padding:10px 20px 18px;background:var(--navy);border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);flex-direction:column;gap:0;z-index:30;box-shadow:0 18px 40px rgba(0,0,0,.35)}
  .nav-menu.open{display:flex}
  .nav-menu li{border-bottom:1px solid rgba(255,255,255,.08)}.nav-menu li:last-child{border-bottom:0}
  .nav-menu a{display:block;padding:14px 0;font-size:17px;font-weight:600;color:#fff}
  .nav-menu a.active{color:var(--teal)}
}
@media (max-width:1000px){
  .feature-cards,.pillar-deep-grid,.gs-promises,.challenge-grid,.credentials-band .container,.stats-row{grid-template-columns:1fr 1fr !important}
  .advisory-row{grid-template-columns:repeat(3,1fr) !important}
  .gs-steps{grid-template-columns:1fr 1fr !important}.gs-step:nth-child(2)::before{display:none}
  .engine{grid-template-columns:1fr !important;gap:10px}.engine-arrow,.arrowc{transform:rotate(90deg);justify-self:center;margin:0 auto}.mj .arrowc{margin:22px auto 6px;align-self:center}
  .mj .flow{flex-wrap:wrap;justify-content:center}
}
@media (max-width:700px){
  html,body{overflow-x:hidden}
  .container{min-width:0}
  .container > *,[class*="grid"] > *,[class*="row"] > *,.gs-steps > *,.engine > *,.feature-cards > *,.legal-grid > *{min-width:0}
  .feature-cards,.pillar-deep-grid,.gs-promises,.challenge-grid,.credentials-band .container,.stats-row,.advisory-row,.gs-steps,.outcome-grid,.legal .legal-grid,.page-hero-inner,.how-grid,.assoc-groups,.area-links-grid,.contact-methods,.founder-grid,.who-grid,.team-grid--3,.bt-grid,.two-col,.cta-split,.advisory-wrap,.footer-grid,.meet-grid{grid-template-columns:1fr !important}
  .page-hero-copy{max-width:100%}
  .gs-steps{gap:26px}.gs-step{flex-direction:row;align-items:flex-start;gap:16px}.gs-n{flex:none}.gs-step > div{min-width:0;padding-top:6px}.gs-step::before{display:block;left:18px;right:auto;top:19px;bottom:-16px;width:2px;height:auto}.gs-step:last-child::before{bottom:0}.gs-step:nth-child(2)::before{display:block}
  .gs-tabs{grid-template-columns:1fr 1fr}.gs-tab{white-space:nowrap;font-size:12.5px;padding:9px 6px}
  .mj .flow{flex-direction:column;align-items:center;gap:0}.mj .arrowc{transform:rotate(90deg);margin:22px auto 6px;align-self:center}.mj .slot .cap{margin-top:30px;white-space:normal}
  .service-side img,.service-band img,.why-image img,.laptop-img{max-width:100%;width:100%;margin:0}
  .legal-body table{display:block;overflow-x:auto}
  .top-nav .btn{padding:8px 12px;font-size:13px;min-width:120px}
  .area-links--cred,.area-links{width:100%}
  .section-head{display:block !important}.section-head > *{max-width:100%}.section-head:not(.center) h2{margin-bottom:20px}
  .ba-wrap{grid-template-columns:1fr !important}.ba-arrow{transform:rotate(90deg);justify-self:center}
  .values-grid{grid-template-columns:1fr !important}
  .conversation-inner{grid-template-columns:1fr !important;text-align:left}
  .contact-form-card{transform:none !important}
  .desktop-only{display:none !important}
  .footer-note{font-size:12.5px;color:rgba(11,30,49,.62);line-height:1.5;max-width:300px}
  .hero-cta-row,.page-hero--calm .hero-cta-row{margin-top:28px;padding-top:0;gap:10px 22px}
  .btn-pair{grid-auto-flow:row;width:100%}.btn-pair .btn{width:100%}
  .footer-col li{margin-bottom:2px}.footer-col li a,.cta-link,.hero-link{display:inline-block;padding:8px 0}
  h1{font-size:34px}h2{font-size:26px}
}

/* ORSIA, the six question cards: the discipline name sits under the question */
.pillar-deep-card .cat{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--teal);margin:-6px 0 0}

/* ORSIA hero: the six questions, then the disciplines on their own line */
.page-hero--orsia .hero-tagline{color:#fff}
.hero-tagline .tl2{display:block;margin-top:11px;color:rgba(255,255,255,.72);font-weight:500}

.faq-item p + p{margin-top:10px}

/* a short line under a section heading that ties it back to one of the six questions */
.section-head .section-sub{font-size:15.5px;font-weight:600;color:var(--teal-deep);margin:-4px 0 12px;line-height:1.4}

/* gs-tabs: between 1000 and 1320px the four equal columns are too narrow for the longest label */
@media (min-width:1001px) and (max-width:1320px){.gs-tab{font-size:11.5px;padding:8px 3px;letter-spacing:-.005em}} /* gs-tab overflow guard */

/* ---- phones and small tablets: service sections take their natural height ----
   The full-screen treatment above (min-height:100dvh, flex centring and the
   1fr spacer rows) is for laptops, where one service is meant to fill one screen.
   Those rules sit at top level, so on a phone they also applied and left large
   empty bands between the copy and the card, and again after the card. This block
   is last in the file, so it wins. */
@media (max-width:900px){
  .service-section:has(.service-band,.service-side){min-height:0;display:block}
  .service-section:has(.service-band,.service-side) > .container{display:block;flex:none}
  .service-section:has(.service-band) .service-band{flex:none;aspect-ratio:16/10;min-height:0;position:static}
  .service-section:has(.service-band) .service-band img{position:static}
  .service-detail--side{flex:none;grid-template-rows:none;align-content:start}
  .service-detail--side > .service-side,
  .service-detail--side.img-left > .service-copy,
  .service-detail--side.img-right > .service-copy,
  .service-detail--side.img-left > .detail-col,
  .service-detail--side.img-right > .detail-col{grid-row:auto;grid-column:1}
  .service-detail--side > .service-side{height:auto;max-height:none;aspect-ratio:16/10;min-height:0}
  .service-detail--side > .service-side img{height:100%}
  .service-detail--side .detail-col{margin-top:0}
}

/* ---- two last formatting fixes ----
   1. Below 700px the section head stops being a flex row and the button falls
      straight under the paragraph with no space at all. Give it some.
   2. Buttons sitting together should share a width, stacked or side by side. */
@media (max-width:700px){
  .section-head:not(.center) > .btn{margin-top:20px}
}
@media (max-width:480px){
  /* once they stack, they are boxes above one another: same width, or the pair looks unbalanced */
  .newsletter-actions > .btn{flex:1 1 100%;justify-content:center;text-align:center}
}

/* ---- the ORSIA wordmark sits level with the words around it ----
   Aldrich has a taller cap height than Montserrat at the same size, so the wordmark
   read as sitting high next to ordinary text. Two things fix it, measured rather than
   eyeballed: match the cap height (0.94em), and inside a button align on the baseline
   rather than centring the boxes, because a .btn is a flex container and the wordmark
   is a flex item in it. Explicit sizes on the big hero lockups override the em and are
   untouched. No button on the site contains both the wordmark and an icon. */
.wm{font-size:0.94em}
.btn:has(> .wm){align-items:baseline}

/* ---- ORSIA is a desktop platform ----
   Hide sign-in on any touch device, whatever the window is. The width rule alone was
   not enough: a phone held sideways is wider than 700px, so the link reappeared. */
/* A phone is a touch device with a short side: portrait 390 wide, landscape 390 tall.
   A tablet has both sides comfortably over 700px, and the footer note says a tablet can
   sign in, so it keeps the link. The width rule alone was letting a sideways phone through. */
@media (pointer:coarse) and (max-width:699px), (pointer:coarse) and (max-height:699px){
  .desktop-only{display:none !important}
  .mobile-only{display:block}
}
/* A footer column heading that leads somewhere still reads as a heading: no teal
   anywhere in the footer, and no reflow on hover — the weight is reserved up front
   so the heading cannot shift when it thickens. */
.footer-col h4 a{color:inherit;text-decoration:none;transition:font-weight .12s}
.footer-col h4 a::after{content:attr(data-t);font-weight:800;height:0;overflow:hidden;visibility:hidden;display:block;pointer-events:none}
.footer-col h4 a:hover,.footer-col h4 a:focus-visible{font-weight:800}

/* External links carry a cue on desktop, where they open in a new tab. On phones the script above
   strips target, so pointer:fine keeps the arrow off the view where it would be a lie. */
@media (pointer:fine){
  a[target="_blank"]:not(.btn):not(.channel):not(.contact-method-sub):not(.contact-method-value):not([aria-label])::after{
    content:"\2197";
    font-family:"Segoe UI Symbol","Apple Symbols",system-ui,sans-serif;
    font-size:.85em;line-height:1;margin-left:.3em;opacity:.55;
  }
}

/* The contact form posts to the host rather than opening a mail client, so the page confirms it itself */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-sent{background:var(--teal-pale,#EAF9F4);border:1px solid var(--teal,#2DD4A5);border-radius:12px;padding:26px 28px}
.form-sent h3{margin:0 0 10px;font-size:20px;line-height:1.25}
.form-sent p{margin:0;color:var(--muted,#5B6773);line-height:1.55}
.form-sent-out{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:22px}
.form-sent-out .btn{justify-content:center;text-align:center}

/* iOS Safari zooms the page in when a focused field is under 16px, which shifts the card sideways and
   leaves the layout wider than the screen. 16px on touch screens stops the zoom happening at all. */
@media (max-width:900px){
  .form-field input,.form-field select,.form-field textarea,
  #demo .form-field input,#demo .form-field select,#demo .form-field textarea,
  .newsletter-form input{font-size:16px}
}

/* Clicking an email address on a desktop hands you to whatever mail program Windows decided on years ago.
   Copying it is what most people actually want. Phones keep the mail link, where tapping to write is right. */
.copy-note{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;color:var(--teal);opacity:0;transition:opacity .15s}
.copy-note.on{opacity:1}

/* Estates: the raised arm is near the top of a portrait photo, so the 16:10 mobile crop must sit higher */
@media (max-width:900px){
  #estates .service-side img{object-position:center 10%}
}
/* A phone footer is a set of accordions, not four stacked lists */
@media (max-width:700px){
  .site-footer .footer-grid{gap:0;padding-bottom:26px}
  .footer-col.is-collapsible{border-top:1px solid var(--pale-blue-2)}
  .footer-col.is-collapsible h4{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:15px 0;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .footer-col.is-collapsible h4::after{content:'';flex:none;width:9px;height:9px;margin-right:4px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px);transition:transform .18s ease}
  .footer-col.is-collapsible h4[aria-expanded="true"]::after{transform:rotate(-135deg) translateY(1px)}
  .footer-col.is-collapsible ul{padding-bottom:12px}
  .footer-col.is-collapsible ul[hidden]{display:none}
  .footer-col.footer-brand{padding-bottom:20px}
}

/* 404 — a branded dead end that offers a way on, rather than Netlify's default
   page. Compact hero, single column, links laid out as a wrapping row. */
[data-page="404"] .page-hero-inner{min-height:48vh}
[data-page="404"] .page-hero-copy{max-width:660px}
.err-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
@media (max-width:600px){
  .err-links{flex-direction:column;align-items:stretch}
  .err-links .btn{width:100%;text-align:center;justify-content:center}
}

/* The Academy Trust Handbook note under the six questions. It lands after the
   cards, not before them, so the reader meets the six first and learns four are
   duties second. Quiet by design — a rule and muted text, not a callout. */
.ath-note{max-width:820px;margin:34px auto 0;padding:20px 26px;border-top:1px solid var(--pale-blue-2)}
.ath-note p{margin:0;font-size:14.5px;line-height:1.7;color:var(--muted);text-align:center}
.ath-note b{color:var(--navy);font-weight:600}
@media (max-width:700px){
  .ath-note{margin-top:26px;padding:18px 4px 0;text-align:left}
  .ath-note p{text-align:left;font-size:14px}
}
