  /* ============ TOKENS ============ */
  :root{
    --navy-900:#0F1C2C;
    --navy-800:#192A42;   /* logo navy */
    --navy-700:#25405F;
    --slate-500:#5B6672;
    --slate-300:#9AA3AC;
    --teal-500:#05A5B8;   /* logo teal */
    --teal-050:#E9F7F8;
    --paper:#FBFBFA;
    --mist:#F2F4F6;
    --line:#E4E7EA;
    --white:#FFFFFF;

    --font-display:'Source Serif 4', Georgia, 'Times New Roman', serif;
    --font-body:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --container: 1180px;
    --gutter: clamp(24px, 6vw, 64px);
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  }
  body{
    margin:0;
    background:var(--paper);
    color:var(--navy-800);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  .wrap{ max-width:var(--container); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }

  h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; margin:0; color:var(--navy-800); }

  .eyebrow{
    font-family:var(--font-body);
    font-size:12.5px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--teal-500);
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:9px; height:9px;
    background:var(--teal-500);
    clip-path:polygon(30% 0, 100% 0, 70% 100%, 0 100%);
    display:inline-block;
  }

  .section{ padding: clamp(64px,10vw,120px) 0; }
  .section--alt{ background:var(--mist); }
  .section-head{ max-width:640px; margin-bottom:clamp(36px,6vw,64px); }
  .section-head h2{ font-size:clamp(28px,3.6vw,40px); line-height:1.18; margin-top:14px; }
  .section-head p{ color:var(--slate-500); font-size:17px; margin-top:16px; max-width:56ch; }

  .hairline{ border:none; border-top:1px solid var(--line); margin:0; }

  /* reveal-on-scroll */
  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }

  /* ============ HEADER ============ */
  header{
    position:sticky; top:0; z-index:100;
    border-bottom:1px solid transparent;
    transition:border-color .3s ease, box-shadow .3s ease;
    isolation:isolate;
  }
  header::before{
    content:""; position:absolute; inset:0; z-index:-1;
    background:rgba(251,251,250,0.92);
    backdrop-filter:saturate(180%) blur(10px);
  }
  header{ position:sticky; }
  .nav{ position:relative; }
  header.scrolled{ border-color:var(--line); box-shadow:0 1px 24px rgba(15,28,44,0.05); }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:16px; padding-bottom:16px;
  }
  .brand{ display:flex; align-items:center; }
  .brand img{ height:32px; width:auto; }
  .nav-links{ display:flex; align-items:center; gap:clamp(18px,2.6vw,34px); list-style:none; margin:0; padding:0; }
  .nav-links a{
    font-size:14px; font-weight:500; color:var(--navy-700);
    position:relative; padding:4px 0;
  }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
    background:var(--teal-500); transition:width .25s ease;
  }
  .nav-links a:hover::after, .nav-links a:focus-visible::after{ width:100%; }
  .nav-links a:focus-visible{ outline:2px solid var(--teal-500); outline-offset:4px; }

  .menu-btn{
    display:none; background:none; border:none; cursor:pointer; padding:8px;
    flex-direction:column; gap:5px;
  }
  .menu-btn span{ width:22px; height:2px; background:var(--navy-800); display:block; transition:transform .25s ease, opacity .25s ease; }
  .menu-btn:focus-visible{ outline:2px solid var(--teal-500); outline-offset:4px; }

  @media (max-width:860px){
    .nav-links{
      position:fixed; inset:64px 0 0 0; background:var(--paper);
      flex-direction:column; align-items:flex-start; gap:0;
      padding: 8px var(--gutter) 32px;
      transform:translateY(-12px); opacity:0; pointer-events:none;
      transition:opacity .25s ease, transform .25s ease;
      overflow-y:auto;
    }
    .nav-links.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
    .nav-links li{ width:100%; border-bottom:1px solid var(--line); }
    .nav-links a{ display:block; padding:16px 0; font-size:16px; }
    .menu-btn{ display:flex; }
  }


  /* ============ HERO — FLOATING CONNECTED PARALLELOGRAMS ============ */
  .hero{ overflow:hidden; }
  .hero-network{
    position:absolute;
    right:0;
    top:50%;
    width:min(49vw,650px);
    height:min(38vw,430px);
    min-height:340px;
    transform:translateY(-50%);
    pointer-events:none;
    z-index:0;
  }
  .hero-network::before{
    content:"";
    position:absolute;
    inset:12% 8%;
    background:radial-gradient(circle, rgba(5,165,184,.10), transparent 62%);
    filter:blur(8px);
  }
  .hero-network-lines{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
  }
  .network-line{
    fill:none;
    stroke:#05A5B8;
    stroke-width:1.15;
    stroke-linecap:round;
    stroke-dasharray:5 9;
    opacity:.36;
    animation:networkPulse 4.8s ease-in-out infinite;
  }
  .network-line:nth-child(2){ animation-delay:.8s; }
  .network-line:nth-child(3){ animation-delay:1.6s; }
  .network-line:nth-child(4){ animation-delay:2.4s; }
  .network-node{
    fill:#05A5B8;
    opacity:.65;
    filter:drop-shadow(0 0 7px rgba(5,165,184,.65));
    animation:nodePulse 3.2s ease-in-out infinite;
  }
  .network-node:nth-of-type(2){ animation-delay:.6s; }
  .network-node:nth-of-type(3){ animation-delay:1.2s; }
  .network-node:nth-of-type(4){ animation-delay:1.8s; }
  .hero-parallelogram{
    position:absolute;
    width:clamp(150px,15vw,220px);
    min-height:142px;
    padding:24px 40px 24px 44px;
    box-sizing:border-box;
    clip-path:polygon(18% 0,100% 0,82% 100%,0 100%);
    color:#fff;
    border:1px solid rgba(255,255,255,.22);
    box-shadow:0 24px 55px rgba(9,35,62,.18);
    backdrop-filter:blur(7px);
    transform:translate3d(0,0,0) rotate(0deg);
    opacity:0;
    animation:
      parallelogramIn .9s cubic-bezier(.2,.75,.2,1) forwards,
      parallelogramFloat 6s ease-in-out 1s infinite;
  }
  .hero-parallelogram::after{
    content:"";
    position:absolute;
    inset:1px;
    clip-path:inherit;
    background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 48%);
    pointer-events:none;
  }
  .hero-parallelogram .network-label{
    position:relative;
    z-index:1;
    display:block;
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    opacity:.72;
    margin-bottom:11px;
  }
  .hero-parallelogram strong{
    position:relative;
    z-index:1;
    display:block;
    font-family:var(--font-display);
    font-size:20px;
    font-weight:500;
    line-height:1.15;
  }
  .hero-parallelogram small{
    position:relative;
    z-index:1;
    display:block;
    margin-top:9px;
    font-size:12px;
    line-height:1.45;
    opacity:.76;
  }
  .para-hospitals{
    left:8%;
    top:8%;
    background:linear-gradient(135deg,rgba(25,42,66,.95),rgba(15,28,44,.95));
    animation-delay:.05s,1.15s;
  }
  .para-digital{
    right:3%;
    top:4%;
    background:linear-gradient(135deg,rgba(5,165,184,.94),rgba(0,112,133,.88));
    animation-delay:.22s,1.5s;
  }
  .para-consumer{
    left:19%;
    bottom:2%;
    background:linear-gradient(135deg,rgba(37,64,95,.94),rgba(15,28,44,.94));
    animation-delay:.39s,1.85s;
  }
  .para-ai{
    right:12%;
    bottom:7%;
    background:linear-gradient(135deg,rgba(4,124,138,.94),rgba(15,28,44,.92));
    animation-delay:.56s,2.2s;
  }
  .hero > *:not(.hero-network){ position:relative; z-index:2; }
  .hero-network{ z-index:1; }
  @keyframes parallelogramIn{
    0%{ opacity:0; transform:translate3d(0,26px,0) scale(.86) rotate(-4deg); }
    100%{ opacity:1; transform:translate3d(0,0,0) scale(1) rotate(0deg); }
  }
  @keyframes parallelogramFloat{
    0%,100%{ margin-top:0; }
    50%{ margin-top:-10px; }
  }
  @keyframes networkPulse{
    0%,100%{ opacity:.22; stroke-dashoffset:0; }
    50%{ opacity:.58; stroke-dashoffset:-28; }
  }
  @keyframes nodePulse{
    0%,100%{ opacity:.35; transform:scale(.85); }
    50%{ opacity:.9; transform:scale(1.25); }
  }
  @media (max-width:1180px){
    .hero-network{ right:0; width:min(50vw,580px); }
  }
  @media (max-width:980px){
    .hero-network{ display:none; }
  }
  @media (prefers-reduced-motion:reduce){
    .network-line,.network-node,.hero-parallelogram{
      animation:none !important;
    }
    .hero-parallelogram{ opacity:1; }
  }

  /* ============ HERO ============ */
  .hero{ padding-top:clamp(72px,14vw,140px); padding-bottom:clamp(56px,9vw,96px); position:relative; }
  .hero-kicker{ font-family:var(--font-body); font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--slate-500); margin-bottom:22px; }
  .hero h1{ font-size:clamp(34px,5.2vw,58px); line-height:1.12; letter-spacing:-0.01em; }
  .hero h1 span{ display:block; opacity:0; transform:translateY(14px); animation:lineIn .8s ease forwards; }
  .hero h1 span:nth-child(1){ animation-delay:.05s; }
  .hero h1 span:nth-child(2){ animation-delay:.22s; color:var(--navy-700); }
  .hero h1 span:nth-child(3){ animation-delay:.39s; color:var(--slate-500); }
  @keyframes lineIn{ to{ opacity:1; transform:translateY(0); } }
  @media (prefers-reduced-motion: reduce){ .hero h1 span{ animation:none; opacity:1; transform:none; } }

  .hero-sub{ margin-top:28px; font-size:clamp(17px,2vw,20px); color:var(--navy-700); max-width:46ch; font-family:var(--font-display); }
  .hero-intro{ margin-top:22px; color:var(--slate-500); max-width:56ch; font-size:16.5px; }
  @media (min-width:981px){ .hero > .hero-kicker,.hero > h1,.hero > .hero-sub,.hero > .hero-intro,.hero > .scroll-cue{ max-width:50%; } }

  .scroll-cue{ margin-top:56px; display:flex; align-items:center; gap:12px; color:var(--slate-500); font-size:13px; }
  .scroll-cue .line{ width:1px; height:38px; background:linear-gradient(var(--teal-500), transparent); }

  /* ============ ABOUT ============ */
  .about-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .about-card{ background:var(--paper); padding:clamp(28px,4vw,44px); }
  .about-card h3{ font-size:19px; margin-bottom:12px; }
  .about-card p{ color:var(--slate-500); margin:0; font-size:15.5px; }
  @media (max-width:700px){ .about-grid{ grid-template-columns:1fr; } }

  /* ============ VERTICALS ============ */
  .verticals{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; position:relative; }
  .vertical{
    padding:clamp(28px,3vw,40px) clamp(20px,2.6vw,34px);
    border-left:1px solid var(--line);
    display:flex; flex-direction:column;
  }
  .subs-wrap{ margin-top:auto; margin-bottom:auto; display:flex; flex-direction:column; gap:2px; }
  .vertical:first-child{ border-left:none; }
  .vertical .num{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-500); font-weight:600; margin-bottom:18px; }
  .vertical h3{ font-size:22px; margin-bottom:6px; }
  .vertical .entity{ font-size:14px; color:var(--slate-500); font-style:italic; margin-bottom:14px; font-family:var(--font-display); }
  .vertical p{ color:var(--slate-500); font-size:15px; margin:0 0 18px; }
  .tag-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
  .tag{ font-size:12px; color:var(--navy-700); background:var(--teal-050); border:1px solid #D6EEF0; padding:5px 11px; border-radius:2px; }

  .vertical-sub{ margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
  .vertical-sub h4{ font-family:var(--font-body); font-weight:600; font-size:14.5px; margin-bottom:3px; }
  .vertical-sub p{ font-size:14px; margin-bottom:0; }

  .locations-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; font-size:14.5px; color:var(--navy-700); font-weight:500; margin-bottom:6px; }
  .locations-row .dot{ color:var(--teal-500); }
  .capacity-line{ font-size:13.5px; color:var(--slate-500); margin-bottom:16px; }

  @media (max-width:900px){
    .verticals{ grid-template-columns:1fr; }
    .vertical{ border-left:none; border-top:1px solid var(--line); }
    .vertical:first-child{ border-top:none; }
  }

  /* ============ ECC — PREMIUM COMMAND MAP ============ */
  .ecc{
    display:grid;
    grid-template-columns:minmax(300px,.92fr) minmax(480px,1.08fr);
    gap:clamp(34px,5vw,70px);
    align-items:center;
  }
  .ecc-copy p{ color:var(--slate-500); font-size:16.5px; max-width:57ch; }
  .ecc-copy ul{
    margin:28px 0 0;
    padding:0;
    list-style:none;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    max-width:560px;
  }
  .ecc-copy li{
    font-size:13.5px;
    color:var(--navy-700);
    display:flex;
    align-items:center;
    gap:9px;
    padding:9px 11px;
    border:1px solid rgba(25,42,66,.09);
    background:rgba(255,255,255,.48);
  }
  .ecc-copy li::before{
    content:"";
    width:6px;height:6px;
    background:var(--teal-500);
    clip-path:polygon(30% 0,100% 0,70% 100%,0 100%);
    flex:none;
  }

  .ecc-map{
    position:relative;
    min-height:500px;
    border:1px solid rgba(25,42,66,.10);
    background:
      radial-gradient(circle at 50% 48%, rgba(5,165,184,.08), transparent 31%),
      linear-gradient(145deg,rgba(255,255,255,.88),rgba(247,249,250,.68));
    overflow:hidden;
    box-shadow:0 24px 65px rgba(25,42,66,.07);
  }
  .ecc-map::before{
    content:"";
    position:absolute;
    inset:18px;
    border:1px solid rgba(25,42,66,.05);
    pointer-events:none;
  }
  .ecc-map-grid{
    position:absolute;
    inset:0;
    background-image:
      linear-gradient(rgba(25,42,66,.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(25,42,66,.035) 1px, transparent 1px);
    background-size:36px 36px;
    mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);
    pointer-events:none;
  }
  .ecc-map-title{
    position:absolute;
    left:24px;top:20px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--slate-300);
  }
  .ecc-hub{
    position:absolute;
    left:50%;top:50%;
    transform:translate(-50%,-50%);
    width:150px;height:150px;
    border-radius:50%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    background:var(--navy-900);
    color:#fff;
    box-shadow:0 22px 50px rgba(25,42,66,.25),0 0 0 12px rgba(5,165,184,.05);
    z-index:3;
  }
  .ecc-hub::after{
    content:"";
    position:absolute;
    inset:-9px;
    border-radius:50%;
    border:1px solid rgba(5,165,184,.25);
  }
  .ecc-hub-kicker{font-size:9px;letter-spacing:.17em;text-transform:uppercase;opacity:.57;margin-bottom:7px;}
  .ecc-hub strong{font-family:var(--font-display);font-size:29px;font-weight:500;letter-spacing:.04em;}
  .ecc-hub span{font-size:10px;opacity:.55;margin-top:7px;letter-spacing:.08em;}
  .ecc-link{
    position:absolute;
    height:1px;
    background:linear-gradient(90deg,rgba(5,165,184,.08),rgba(5,165,184,.42),rgba(5,165,184,.08));
    transform-origin:left center;
    z-index:1;
  }
  .ecc-link::after{
    content:"";
    position:absolute;
    right:-2px;top:-2px;
    width:5px;height:5px;
    border-radius:50%;
    background:var(--teal-500);
    box-shadow:0 0 8px rgba(5,165,184,.55);
  }
  .ecc-node{
    position:absolute;
    z-index:2;
    width:128px;
    min-height:58px;
    padding:12px 13px;
    box-sizing:border-box;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(25,42,66,.10);
    box-shadow:0 10px 28px rgba(25,42,66,.06);
    transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
  }
  .ecc-node:hover{
    transform:translateY(-3px);
    border-color:rgba(5,165,184,.35);
    box-shadow:0 16px 34px rgba(25,42,66,.10);
  }
  .ecc-node small{
    display:block;
    font-size:9px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--teal-500);
    margin-bottom:5px;
  }
  .ecc-node strong{
    display:block;
    font-size:12.5px;
    color:var(--navy-700);
    font-weight:600;
    line-height:1.25;
  }
  .ecc-node.n1{left:7%;top:17%;}
  .ecc-node.n2{left:39%;top:7%;}
  .ecc-node.n3{right:7%;top:17%;}
  .ecc-node.n4{right:4%;top:49%;transform:translateY(-50%);}
  .ecc-node.n5{right:7%;bottom:11%;}
  .ecc-node.n6{left:39%;bottom:6%;}
  .ecc-node.n7{left:7%;bottom:11%;}
  .ecc-node.n8{left:4%;top:49%;transform:translateY(-50%);}

  /* ============ WHAT WE DO — PREMIUM BOX SYSTEM ============ */
  .cap-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    margin-top:34px;
  }
  .cap-card{
    position:relative;
    padding:24px 22px 20px;
    min-height:230px;
    border:1px solid rgba(25,42,66,.10);
    background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(246,248,249,.72));
    box-shadow:0 12px 32px rgba(25,42,66,.045);
    overflow:hidden;
    transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
  }
  .cap-card::before{
    content:"";
    position:absolute;
    left:0;top:0;right:0;
    height:3px;
    background:linear-gradient(90deg,var(--teal-500),transparent);
    opacity:.85;
  }
  .cap-card:hover{
    transform:translateY(-4px);
    border-color:rgba(5,165,184,.26);
    box-shadow:0 18px 40px rgba(25,42,66,.08);
  }
  .cap-no{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:22px;
  }
  .cap-no span{
    font-size:10px;
    letter-spacing:.16em;
    color:var(--teal-500);
  }
  .cap-arrow{
    font-size:15px;
    color:rgba(25,42,66,.25);
  }
  .cap-card h3{
    margin:0 0 9px;
    font-family:var(--font-display);
    font-size:21px;
    line-height:1.15;
    font-weight:500;
    color:var(--navy-800);
  }
  .cap-card p{
    margin:0 0 17px;
    color:var(--slate-500);
    font-size:12.5px;
    line-height:1.55;
  }
  .cap-subgrid{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:auto;
  }
  .cap-sub{
    display:inline-flex;
    align-items:center;
    padding:7px 9px;
    font-size:10.5px;
    color:var(--navy-700);
    border:1px solid rgba(25,42,66,.085);
    background:rgba(255,255,255,.72);
  }
  .cap-sub::before{
    content:"";
    width:4px;height:4px;
    margin-right:7px;
    background:var(--teal-500);
    clip-path:polygon(25% 0,100% 0,75% 100%,0 100%);
  }
  .cap-card.is-featured{
    background:linear-gradient(150deg,rgba(236,248,249,.98),rgba(250,251,251,.82));
    border-color:rgba(5,165,184,.17);
  }
  .cap-card.is-featured::before{
    background:linear-gradient(90deg,var(--teal-500),rgba(5,165,184,.18),transparent);
  }
  .cap-span{
    grid-column:span 2;
    min-height:205px;
  }
  .cap-span .cap-subgrid{max-width:640px;}
  @media (max-width:1000px){
    .cap-grid{grid-template-columns:repeat(2,1fr);}
    .cap-span{grid-column:span 1;}
    .ecc{grid-template-columns:1fr;}
  }
  @media (max-width:860px){
    .ecc-map{min-height:460px;}
  }
  @media (max-width:720px){
    .cap-grid{grid-template-columns:1fr;}
    .ecc-copy ul{grid-template-columns:1fr;}
    .ecc-map{min-height:620px;}
    .ecc-node{width:118px;}
    .ecc-node.n1{left:4%;top:13%;}
    .ecc-node.n2{left:50%;top:4%;transform:translateX(-50%);}
    .ecc-node.n3{right:4%;top:13%;}
    .ecc-node.n4{right:2%;top:50%;}
    .ecc-node.n5{right:4%;bottom:10%;}
    .ecc-node.n6{left:50%;bottom:3%;transform:translateX(-50%);}
    .ecc-node.n7{left:4%;bottom:10%;}
    .ecc-node.n8{left:2%;top:50%;}
  }
  @media (max-width:560px){
    .ecc-map{min-height:700px;}
    .ecc-hub{width:130px;height:130px;}
    .ecc-node{width:105px;}
    .ecc-node strong{font-size:11.5px;}
  }

  /* ============ OUR APPROACH — STANDALONE ============ */
  .approach-section{position:relative;overflow:hidden;}
  .approach-section::before{
    content:"";position:absolute;width:520px;height:520px;right:-210px;top:-220px;
    border-radius:50%;background:radial-gradient(circle,rgba(5,165,184,.07),transparent 68%);
    pointer-events:none;
  }
  .approach-head{max-width:820px;}
  .approach-head h2{max-width:720px;}
  .approach-head p{max-width:66ch;}
  .approach-steps{
    position:relative;display:grid;grid-template-columns:repeat(3,1fr);
    margin-top:56px;border-top:1px solid rgba(25,42,66,.10);
  }
  .approach-step{position:relative;min-height:285px;padding:30px 34px 34px 0;}
  .approach-step + .approach-step{padding-left:34px;border-left:1px solid rgba(25,42,66,.10);}
  .approach-step:last-child{padding-right:0;}
  .approach-step-top{display:flex;align-items:center;gap:14px;min-height:18px;margin-bottom:42px;}
  .approach-no{font-size:10px;letter-spacing:.16em;color:var(--teal-500);font-weight:700;}
  .approach-line{height:1px;flex:1;background:linear-gradient(90deg,rgba(5,165,184,.45),rgba(25,42,66,.06));}
  .approach-step:nth-child(2) .approach-line{background:linear-gradient(90deg,rgba(5,165,184,.30),rgba(25,42,66,.06));}
  .approach-step:nth-child(3) .approach-line{background:linear-gradient(90deg,rgba(5,165,184,.22),rgba(25,42,66,.02));}
  .approach-step-body{max-width:350px;}
  .approach-step-body h3{
    margin:0 0 16px;font-family:var(--font-display);
    font-size:clamp(28px,3.2vw,38px);line-height:1.08;font-weight:500;color:var(--navy-800);
  }
  .approach-step-body h3 em{display:block;margin-top:5px;font-style:normal;color:var(--teal-500);}
  .approach-step-body p{margin:0;color:var(--slate-500);font-size:15px;line-height:1.7;max-width:34ch;}
  .approach-step::after{
    content:"";position:absolute;width:10px;height:10px;left:-5px;top:-5px;
    background:var(--paper);border:1.5px solid var(--teal-500);transform:rotate(45deg);
  }
  .approach-step:first-child::after{display:none;}
  @media (max-width:820px){
    .approach-steps{grid-template-columns:1fr;border-top:none;}
    .approach-step,.approach-step + .approach-step{
      padding:28px 0 32px;border-left:none;border-top:1px solid rgba(25,42,66,.10);min-height:0;
    }
    .approach-step:first-child{border-top:1px solid rgba(25,42,66,.10);}
    .approach-step::after{display:none;}
    .approach-step-top{margin-bottom:24px;}
    .approach-step-body{max-width:620px;}
    .approach-step-body p{max-width:54ch;}
  }

  /* ============ VISION / ECOSYSTEM ============ */
  .ecosystem{ display:flex; flex-direction:column; max-width:560px; margin:0 auto; }
  .eco-step{
    display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:18px;
    padding:18px 0; position:relative;
  }
  .eco-step:not(:last-child)::after{
    content:""; position:absolute; left:13px; top:44px; bottom:-4px; width:1px; background:var(--line);
  }
  .eco-node{ width:26px; height:26px; border-radius:50%; border:1.4px solid var(--teal-500); background:var(--paper); position:relative; z-index:1; }
  .eco-node.is-current{ background:var(--teal-500); }
  .eco-name{ font-family:var(--font-display); font-size:19px; }
  .eco-status{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate-300); font-weight:600; white-space:nowrap; }
  .eco-status.is-current{ color:var(--teal-500); }

  .eco-legend{ display:flex; gap:26px; margin-top:34px; font-size:13px; color:var(--slate-500); }
  .eco-legend span{ display:inline-flex; align-items:center; gap:8px; }
  .eco-legend .swatch{ width:10px; height:10px; border-radius:50%; border:1.4px solid var(--teal-500); }
  .eco-legend .swatch.filled{ background:var(--teal-500); }

  .vision-statement{
    margin-top:clamp(56px,9vw,100px); padding-top:clamp(48px,8vw,84px); border-top:1px solid var(--line);
    text-align:center;
  }
  .vision-statement p{
    font-family:var(--font-display); font-size:clamp(22px,3.2vw,32px); line-height:1.4;
    color:var(--navy-800); max-width:820px; margin:0 auto;
  }

  /* ============ CONTACT ============ */
  .contact-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap: 28px 60px; margin-top:40px; }
  .contact-item .label{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-300); font-weight:600; margin-bottom:8px; }
  .contact-item .value{ font-size:17px; color:var(--slate-300); font-style:italic; font-family:var(--font-display); }
  .contact-item .value.set{ color:var(--navy-800); font-style:normal; font-family:var(--font-body); }
  @media (max-width:640px){ .contact-grid{ grid-template-columns:1fr; } }

  /* ============ FOOTER ============ */
  footer{ background:var(--navy-900); color:#B9C2CC; padding:56px 0 32px; }
  .footer-top{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:28px; padding-bottom:32px; border-bottom:1px solid rgba(255,255,255,0.1); }
  .footer-brand img{ height:26px; margin-bottom:14px; filter:brightness(0) invert(1); }
  .footer-phil{ font-family:var(--font-display); font-size:15px; color:#DDE3E8; max-width:34ch; }
  .footer-nav{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:22px; }
  .footer-nav a{ font-size:14px; color:#B9C2CC; }
  .footer-nav a:hover{ color:var(--teal-500); }
  .footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:12.5px; color:#7C8896; }
.hospital-journey-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}
.journey-card{padding:28px 26px;border:1px solid rgba(25,42,66,.12);background:rgba(255,255,255,.55);min-height:190px;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.journey-card:hover{transform:translateY(-3px);border-color:rgba(5,165,184,.45);box-shadow:0 14px 34px rgba(25,42,66,.08)}
.journey-no{display:block;font-size:11px;letter-spacing:.14em;color:var(--teal-500);margin-bottom:20px}
.journey-card h3{margin:0 0 10px;font-size:20px}
.journey-card p{margin:0;line-height:1.65;opacity:.74;font-size:14px}
.hospital-journey-bottom{margin-top:18px;padding:24px 26px;background:var(--navy-900);color:white;display:flex;align-items:center;justify-content:space-between;gap:25px}
.hospital-journey-bottom strong{display:block;font-size:17px;margin-bottom:7px}
.hospital-journey-bottom span{display:block;font-size:12px;opacity:.68;letter-spacing:.03em}
.journey-cta{white-space:nowrap;color:white;border:1px solid rgba(255,255,255,.25);padding:12px 16px;text-decoration:none}
@media(max-width:900px){.hospital-journey-grid{grid-template-columns:repeat(2,1fr)}.hospital-journey-bottom{flex-direction:column;align-items:flex-start}}
@media(max-width:560px){.hospital-journey-grid{grid-template-columns:1fr}.hospital-journey-bottom span{line-height:1.8}}
/* ============ CONNECTED EXPERIENCE ============ */
:root{
  --ease: cubic-bezier(.2,.7,.2,1);
  --dur-1: .2s;   /* hovers, small state changes */
  --dur-2: .45s;  /* active states, panels */
  --dur-3: .7s;   /* entrances */
}
html{ scroll-padding-top:84px; }

/* one entrance, one easing everywhere */
.reveal{ transform:translateY(12px); transition:opacity var(--dur-3) var(--ease), transform var(--dur-3) var(--ease); }
.nav-links a::after{ transition:width var(--dur-2) var(--ease); }
.btn, .journey-cta, .cap-card, .ecc-node{ transition-timing-function:var(--ease); }

/* reading progress: the brand parallelogram tip rides the line */
.scroll-progress{
  position:absolute; left:0; right:0; bottom:-1px; height:2px; z-index:2;
  background:var(--teal-500); transform-origin:0 50%; transform:scaleX(var(--p,0));
  pointer-events:none;
}
@supports (animation-timeline: scroll()){
  .scroll-progress{ animation:kasProgress 1ms linear both; animation-timeline:scroll(root block); }
  @keyframes kasProgress{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
}

/* where am I: active menu item */
.nav-links a.is-active{ color:var(--navy-800); }
.nav-links a.is-active::after{ width:100%; }

/* softer section boundaries: light bands fade in and out */
.section--alt{
  background:linear-gradient(180deg, var(--paper) 0, var(--mist) 140px, var(--mist) calc(100% - 140px), var(--paper) 100%);
}
/* ECC as a floating dark panel rather than a hard colour cut */
#ecc.section--dark{ position:relative; background:var(--paper); margin-block:clamp(12px,2vw,28px); }
#ecc.section--dark::before{
  content:""; position:absolute; inset:0 clamp(8px,1.6vw,24px);
  background:var(--navy-900); border-radius:clamp(16px,2vw,28px); z-index:0;
}
#ecc.section--dark > .wrap{ position:relative; z-index:1; }
#ecc .bridge{ color:#B9C4CF; border-color:rgba(255,255,255,.12); }
#ecc .bridge-link{ color:var(--teal-500); }

/* bridges: the closing line of each section hands over to the next */
.bridge-wrap{ margin-top:clamp(48px,7vw,80px); }
.bridge{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding-top:22px; border-top:1px solid var(--line);
  color:var(--slate-500); font-size:15.5px;
}
.bridge-mark{ width:10px; height:10px; background:var(--teal-500); clip-path:polygon(30% 0,100% 0,70% 100%,0 100%); flex:none; }
.bridge-text{ font-family:var(--font-display); font-size:17px; color:inherit; }
.bridge-link{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; color:#047C8A; font-weight:600; font-size:14.5px; }
.bridge-link svg{ transition:transform var(--dur-2) var(--ease); }
.bridge:hover .bridge-link svg{ transform:translateY(3px); }
.bridge:focus-visible{ outline:2px solid var(--teal-500); outline-offset:6px; }

/* hospital journey: pinned story */
.journey-steps{ display:grid; grid-template-columns:1fr; gap:14px; margin-top:32px; }
.journey-card{ min-height:0; }
.journey-card:hover{ transform:none; }
.journey-no{ font-weight:600; }
.journey-index{ display:none; }
@media (min-width:560px) and (max-width:999px){ .journey-steps{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){
  .journey-layout{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(48px,6vw,88px); align-items:start; }
  .journey-aside{ position:sticky; top:112px; }
  .journey-aside .section-head{ margin-bottom:34px; }
  .journey-index{ display:flex; flex-direction:column; list-style:none; margin:0; padding:0; border-left:1px solid var(--line); }
  .journey-index a{ display:grid; grid-template-columns:14px 28px 1fr; align-items:center; gap:10px; padding:11px 0 11px 18px; margin-left:-1px; border-left:2px solid transparent; color:var(--slate-500); font-size:15px; transition:color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease); }
  .journey-index .jmark{ width:10px; height:10px; clip-path:polygon(30% 0,100% 0,70% 100%,0 100%); background:var(--line); transition:background var(--dur-2) var(--ease); }
  .journey-index .jnum{ font-size:12px; letter-spacing:.1em; color:var(--slate-300); }
  .journey-index a.is-active{ color:var(--navy-800); border-left-color:var(--teal-500); }
  .journey-index a.is-active .jmark{ background:var(--teal-500); }
  .journey-index a.is-active .jnum{ color:#047C8A; }
  .journey-index a:hover{ color:var(--navy-800); }
  .journey-steps{ margin-top:0; gap:18px; padding-bottom:8vh; }
  .journey-card{
    min-height:clamp(260px,34vh,340px); padding:40px 40px; display:flex; flex-direction:column; justify-content:center;
    opacity:.42; transform:scale(.985);
    transition:opacity var(--dur-2) var(--ease), transform var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);
  }
  .journey-card h3{ font-size:clamp(24px,2.2vw,30px); margin-bottom:14px; }
  .journey-card p{ font-size:16px; max-width:46ch; opacity:.85; }
  .journey-card.is-active{ opacity:1; transform:none; border-color:rgba(5,165,184,.45); background:#fff; box-shadow:0 18px 44px rgba(25,42,66,.08); }
}
.hospital-journey-bottom{ margin-top:28px; }

@media (prefers-reduced-motion: reduce){
  .scroll-progress{ animation:none; }
  .journey-card{ transform:none !important; }
}

/* ============ CONTACT ============ */
.contact-layout{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(40px,6vw,88px); align-items:start; }
.contact-intro h2{ font-size:clamp(28px,3.6vw,40px); line-height:1.18; margin-top:14px; }
.contact-intro > p{ color:var(--slate-500); font-size:16.5px; margin:16px 0 0; max-width:46ch; }
.contact-list{ margin:36px 0 0; padding-top:8px; border-top:1px solid var(--line); }
.contact-row{ display:grid; grid-template-columns:88px 1fr; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.contact-row dt{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-500); font-weight:600; padding-top:3px; }
.contact-row dd{ margin:0; font-size:16px; color:var(--navy-800); line-height:1.55; }
.contact-row address{ font-style:normal; }
.contact-row a{ color:var(--navy-800); border-bottom:1px solid rgba(5,165,184,.4); transition:border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease); }
.contact-row a:hover{ color:#047C8A; border-color:var(--teal-500); }
.contact-row .contact-map{ display:inline-block; margin-top:8px; font-size:14px; color:#047C8A; }

.enquiry{ background:#fff; border:1px solid var(--line); padding:clamp(24px,3.5vw,40px); box-shadow:0 18px 44px rgba(25,42,66,.06); }
.enquiry-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 18px; }
.enquiry label{ display:flex; flex-direction:column; gap:7px; font-size:13.5px; font-weight:600; color:var(--navy-800); }
.enquiry .span-2{ grid-column:1 / -1; }
.enquiry input, .enquiry select, .enquiry textarea{
  font:inherit; font-weight:400; font-size:15.5px; color:var(--navy-800); background:#fff;
  border:1px solid #CDD3D9; border-radius:3px; padding:0 13px; min-height:48px; width:100%; box-sizing:border-box;
  transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);
}
.enquiry textarea{ padding:12px 13px; resize:vertical; min-height:110px; }
.enquiry input:focus, .enquiry select:focus, .enquiry textarea:focus{ outline:none; border-color:var(--teal-500); box-shadow:0 0 0 3px rgba(5,165,184,.15); }
.enquiry input[aria-invalid="true"]{ border-color:#B42318; }
.enquiry-error{ margin:16px 0 0; font-size:14px; color:#B42318; }
.enquiry-submit{ margin-top:22px; border:none; cursor:pointer; width:100%; justify-content:center; font-size:16px; min-height:52px; }
.enquiry-note{ margin:12px 0 0; font-size:13px; color:var(--slate-500); text-align:center; }
.footer-bottom a{ color:inherit; }
.footer-bottom a:hover{ color:var(--teal-500); }
@media (max-width:900px){ .contact-layout{ grid-template-columns:1fr; } }
@media (max-width:560px){ .enquiry-grid{ grid-template-columns:1fr; } .contact-row{ grid-template-columns:1fr; gap:6px; } }

/* ============ REVIEW FIXES ============ */
.hero-actions{ margin-top:40px; display:flex; flex-wrap:wrap; gap:12px; }
.btn{ display:inline-flex; align-items:center; min-height:48px; padding:0 24px; font-size:15px; font-weight:600; border-radius:3px; transition:background .2s ease, color .2s ease, border-color .2s ease; }
.btn-primary{ background:var(--navy-800); color:#fff; }
.btn-primary:hover{ background:var(--teal-500); }
.btn-ghost{ border:1px solid rgba(25,42,66,.25); color:var(--navy-800); }
.btn-ghost:hover{ border-color:var(--teal-500); color:#047C8A; }
.btn:focus-visible{ outline:2px solid var(--teal-500); outline-offset:3px; }

.hospital-journey-bottom > div{ min-width:0; }
.hospital-journey-bottom span{ line-height:1.8; }

.cap-card:last-child{ grid-column:1 / -1; }
@media (max-width:1000px){ .cap-card:last-child{ grid-column:1 / -1; } }

.section--dark{ background:var(--navy-900); }
.section--dark h2{ color:#fff; }
.section--dark .ecc-copy p{ color:#B9C4CF; }
.section--dark .ecc-copy li{ color:#DDE3E8; border-color:rgba(255,255,255,.12); background:rgba(255,255,255,.04); }
.section--dark .ecc-map{ border-color:rgba(255,255,255,.08); background:#F4F6F7; }

.ecc-wires{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1; }
.ecc-wires line{ stroke:rgba(5,165,184,.45); stroke-width:1.2; stroke-dasharray:4 6; }
.ecc-hub, .ecc-node{ z-index:2; }
@media (max-width:720px){ .ecc-map{ display:none; } }
.footer-brand img{ width:auto; }

/* ============ SECTION IDENTITY: a quiet colour shift per section ============ */
:root{
  --tone-hero:#FBFBFA;      /* warm paper */
  --tone-about:#F1F5F8;     /* cool mist */
  --tone-verticals:#FFFFFF; /* clean white */
  --tone-hospital:#E9F4F6;  /* teal whisper: signature section */
  --tone-capab:#F7F4EE;     /* warm stone */
  --tone-approach:#F0F3F7;  /* soft blue-grey */
  --tone-vision:#FFFFFF;    /* white with a teal glow */
  --tone-contact:#E8EDF3;   /* deeper cool, leads into the navy footer */
  --fade:clamp(80px,10vw,140px);
}
main > section[id]{ position:relative; }
#about{ background:linear-gradient(180deg,var(--tone-hero) 0,var(--tone-about) var(--fade)); }
#verticals{ background:linear-gradient(180deg,var(--tone-about) 0,var(--tone-verticals) var(--fade)); }
#hospital-journey{ background:linear-gradient(180deg,var(--tone-verticals) 0,var(--tone-hospital) var(--fade)); }
#ecc.section--dark{ background:linear-gradient(180deg,var(--tone-hospital) 0,var(--tone-hospital) 50%,var(--tone-capab) 50%,var(--tone-capab) 100%); }
#capabilities{ background:var(--tone-capab); }
#approach{ background:linear-gradient(180deg,var(--tone-capab) 0,var(--tone-approach) var(--fade)); }
#vision{
  background:
    radial-gradient(ellipse 60% 45% at 50% 38%, rgba(5,165,184,.07), transparent 70%),
    linear-gradient(180deg,var(--tone-approach) 0,var(--tone-vision) var(--fade));
}
#contact{ background:linear-gradient(180deg,var(--tone-vision) 0,var(--tone-contact) var(--fade)); }

/* white cards lift a little more on tinted grounds */
#hospital-journey .journey-card{ background:rgba(255,255,255,.72); }
#hospital-journey .journey-card.is-active{ background:#fff; }
#capabilities .cap-card{ background:#fff; }
#verticals .vertical{ background:transparent; }

/* ============ PRESENTATION PASS (layout & hierarchy only; content unchanged) ============ */

/* Hero: calmer hierarchy */
.hero h1{ font-size:clamp(34px,4.4vw,52px); }
.hero h1 span{ text-wrap:balance; }
.hero-sub{ font-size:clamp(18px,2vw,21px); }
.hero-intro{ font-size:16.5px; }
.hero-intro + .hero-intro{
  margin-top:18px; padding-left:18px; border-left:2px solid var(--teal-500);
  font-size:15px; color:var(--slate-500);
}

/* About: heading beside the four statements; "Why we exist" as the anchor card */
@media (min-width:1000px){
  #about > .wrap:first-child{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:clamp(40px,5vw,72px); align-items:start; }
  #about .section-head{ margin-bottom:0; position:sticky; top:112px; }
}
#about .about-grid{ gap:16px; background:none; border:none; }
#about .about-card{
  background:#fff; border:1px solid var(--line); border-top:2px solid var(--teal-500);
  display:flex; flex-direction:column;
  transition:box-shadow var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);
}
#about .about-card:hover{ box-shadow:0 14px 34px rgba(25,42,66,.07); transform:translateY(-2px); }
#about .about-card h3{ font-size:21px; margin-bottom:14px; }
#about .about-card:last-child{ background:var(--navy-800); border-color:var(--navy-800); border-top-color:var(--teal-500); }
#about .about-card:last-child h3{ color:#fff; }
#about .about-card:last-child p{ color:#C9D2DB; font-family:var(--font-display); font-size:17.5px; line-height:1.5; }

/* Verticals: three distinct cards; Hospitals featured */
#verticals .verticals{ gap:18px; align-items:stretch; }
#verticals .vertical{
  background:#F6F8F9; border:1px solid var(--line); border-top:3px solid var(--teal-500);
  padding:clamp(28px,3vw,40px) clamp(24px,2.6vw,34px);
}
#verticals .vertical:nth-child(2){ border-top-color:var(--navy-700); }
#verticals .vertical h3{ font-size:clamp(22px,2vw,26px); margin-bottom:10px; }
#verticals .vertical .tag-row{ padding-top:8px; }
#verticals .vertical:nth-child(3){ background:var(--navy-800); border-color:var(--navy-800); border-top-color:var(--teal-500); }
#verticals .vertical:nth-child(3) .num{ color:var(--teal-500); }
#verticals .vertical:nth-child(3) h3{ color:#fff; }
#verticals .vertical:nth-child(3) p{ color:#B9C4CF; }
#verticals .vertical:nth-child(3) .locations-row{ color:#fff; font-size:15.5px; margin-top:4px; }
#verticals .vertical:nth-child(3) .capacity-line{ color:#fff; font-family:var(--font-display); font-size:19px; line-height:1.4; margin:4px 0 22px; padding-left:14px; border-left:2px solid var(--teal-500); }
#verticals .vertical:nth-child(3) .tag{ color:#DDE3E8; background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); }
@media (max-width:900px){ #verticals .vertical, #verticals .vertical:first-child{ border-left:1px solid var(--line); } #verticals .vertical:nth-child(3){ border-left-color:var(--navy-800); } }

/* ECC: the diagram already names every function on larger screens; the list takes over on phones */
@media (min-width:721px){ #ecc .ecc-copy ul{ display:none; } }
#ecc .ecc-copy p{ font-size:17px; }

/* Ecosystem: a horizontal track on desktop */
@media (min-width:1000px){
  .ecosystem{ flex-direction:row; max-width:none; position:relative; margin-top:12px; }
  .ecosystem::before{ content:""; position:absolute; left:calc(100%/14); right:calc(100%/14); top:13px; height:1px; background:linear-gradient(90deg,var(--teal-500),rgba(5,165,184,.25)); }
  .eco-step{ flex:1 1 0; display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; padding:0 8px; }
  .eco-step:not(:last-child)::after{ display:none; }
  .eco-node{ background:#fff; }
  .eco-node.is-current{ background:var(--teal-500); box-shadow:0 0 0 6px rgba(5,165,184,.12); }
  .eco-name{ font-size:18px; line-height:1.25; }
  .eco-legend{ margin-top:44px; }
}

/* Vision: a quiet pull-quote */
.vision-statement p{ position:relative; font-size:clamp(22px,2.8vw,30px); line-height:1.45; max-width:880px; }
.vision-statement p::before{
  content:"\201C"; display:block; font-family:var(--font-display); font-size:84px; line-height:.6; color:var(--teal-500); opacity:.55; margin-bottom:18px;
}

/* Consistent section headings */
.section-head h2{ letter-spacing:-0.005em; }

/* ============ PRESENCE MAP ============ */
:root{ --tone-presence:#F3F7F9; }
#presence{ background:linear-gradient(180deg,var(--tone-verticals) 0,var(--tone-presence) var(--fade)); }
#hospital-journey{ background:linear-gradient(180deg,var(--tone-presence) 0,var(--tone-hospital) var(--fade)); }

.presence{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(40px,6vw,88px); align-items:center; }
.presence-copy h2{ font-size:clamp(28px,3.6vw,40px); line-height:1.18; margin-top:14px; }
.presence-copy > p{ color:var(--slate-500); font-size:17px; margin:14px 0 0; }
.presence-list{ list-style:none; margin:32px 0 0; padding:0; }
.presence-group{ font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--slate-300); padding:22px 0 8px; }
.presence-group:first-child{ padding-top:0; }
.presence-city{
  width:100%; display:grid; grid-template-columns:14px minmax(0,1fr) auto; grid-template-areas:"dot name geo" "dot state geo";
  column-gap:14px; align-items:center; text-align:left; cursor:pointer;
  background:transparent; border:none; border-top:1px solid var(--line); padding:13px 10px 13px 4px; font:inherit; color:inherit;
  transition:background var(--dur-1) var(--ease);
}
.presence-city .pc-dot{ grid-area:dot; width:9px; height:9px; border-radius:50%; background:var(--teal-500); box-shadow:0 0 0 4px rgba(5,165,184,.14); }
.presence-city .pc-name{ grid-area:name; font-family:var(--font-display); font-size:19px; color:var(--navy-800); line-height:1.2; }
.presence-city .pc-state{ grid-area:state; font-size:13px; color:var(--slate-500); }
.presence-city .pc-geo{ grid-area:geo; font-size:12px; color:var(--slate-300); font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.presence-city:hover, .presence-city.is-active{ background:rgba(5,165,184,.07); }
.presence-city.is-active .pc-name{ color:#047C8A; }
.presence-city:focus-visible{ outline:2px solid var(--teal-500); outline-offset:2px; }

.presence-map{
  margin:0; background:var(--navy-900); border-radius:clamp(14px,1.6vw,22px); padding:22px 22px 16px;
  box-shadow:0 24px 60px rgba(15,28,44,.18); position:relative; overflow:hidden;
}
.pm-head{ display:flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:#8E9BA8; font-weight:600; }
.pm-count{ margin-left:auto; color:var(--teal-500); }
.pm-live{ width:8px; height:8px; border-radius:50%; background:#3FD39A; box-shadow:0 0 0 0 rgba(63,211,154,.6); animation:pmBeat 2s var(--ease) infinite; }
.pm-svg{ display:block; width:100%; height:auto; max-height:640px; margin-top:8px; }
.pm-land{ fill:#18304A; stroke:rgba(5,165,184,.45); stroke-width:1.1; stroke-linejoin:round; }
.route{ fill:none; stroke:rgba(5,165,184,.55); stroke-width:1.3; stroke-dasharray:3 7; animation:pmFlow 1.6s linear infinite; }
.pin{ cursor:pointer; }
.pin-dot{ fill:var(--teal-500); stroke:#fff; stroke-width:1.6; transition:r var(--dur-1) var(--ease); }
.pin-pulse{ fill:none; stroke:var(--teal-500); stroke-width:1.4; opacity:0; transform-box:fill-box; transform-origin:center; animation:pmPulse 2.8s var(--ease) infinite; animation-delay:var(--d); }
.pin-pulse.p2{ animation-delay:calc(var(--d) + 1.4s); }
.pin-label{ font-family:var(--font-body); font-size:13.5px; font-weight:600; fill:#E6ECF1; paint-order:stroke; stroke:var(--navy-900); stroke-width:4px; stroke-linejoin:round; transition:fill var(--dur-1) var(--ease); }
.pin.is-active .pin-dot{ r:7; fill:#fff; stroke:var(--teal-500); stroke-width:2.4; }
.pin.is-active .pin-label{ fill:var(--teal-500); }
.presence-map figcaption{ margin-top:6px; font-size:11.5px; color:#6F7D8B; text-align:right; }

@keyframes pmPulse{ 0%{ transform:scale(.8); opacity:.9; } 100%{ transform:scale(4.2); opacity:0; } }
@keyframes pmFlow{ to{ stroke-dashoffset:-20; } }
@keyframes pmBeat{ 0%{ box-shadow:0 0 0 0 rgba(63,211,154,.55); } 70%,100%{ box-shadow:0 0 0 8px rgba(63,211,154,0); } }
@media (prefers-reduced-motion: reduce){ .pin-pulse, .route, .pm-live{ animation:none; } }

@media (max-width:999px){ .presence{ grid-template-columns:1fr; } .presence-map{ order:-1; } }
@media (max-width:560px){
  .presence-city{ grid-template-columns:14px minmax(0,1fr); grid-template-areas:"dot name" "dot state" "dot geo"; }
  .pin-label{ font-size:17px; stroke-width:5px; }
}
.pm-head span{ white-space:nowrap; }
@media (max-width:560px){ .pm-head{ font-size:10.5px; letter-spacing:.08em; } .presence-map{ padding:18px 14px 12px; } }

/* Presence: chip layout for the city names */
.presence-copy > p{ max-width:48ch; line-height:1.6; }
.presence-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.presence-chip{
  display:inline-flex; align-items:center; width:auto; padding:9px 14px;
  font:inherit; font-size:13.5px; color:var(--navy-800); background:#fff;
  border:1px solid var(--line); border-radius:3px; cursor:pointer;
  transition:border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), background var(--dur-1) var(--ease);
}
.presence-chip:hover, .presence-chip.is-active{ border-color:var(--teal-500); color:#047C8A; background:rgba(5,165,184,.06); }
.presence-chip:focus-visible{ outline:2px solid var(--teal-500); outline-offset:2px; }

/* ============ ECC: organised background ============ */
/* one smooth hand-over from the teal section above to the stone section below (no hard split) */
#ecc.section--dark{ background:linear-gradient(180deg,var(--tone-hospital) 0%,var(--tone-hospital) 20%,var(--tone-capab) 80%,var(--tone-capab) 100%); }

/* the panel: deep navy with depth, a quiet control-room grid and a glow behind the diagram */
#ecc.section--dark::before{
  background:
    radial-gradient(ellipse 42% 58% at 71% 44%, rgba(5,165,184,.20), rgba(5,165,184,0) 70%),
    radial-gradient(ellipse 50% 40% at 12% 100%, rgba(37,64,95,.55), rgba(37,64,95,0) 70%),
    linear-gradient(155deg,#15293F 0%,#0F1C2C 52%,#0A1520 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06), 0 30px 80px rgba(15,28,44,.18);
}
#ecc.section--dark::after{
  content:""; position:absolute; inset:0 clamp(8px,1.6vw,24px); border-radius:clamp(16px,2vw,28px); z-index:0; pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px) 0 0/56px 56px,
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px) 0 0/56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 60% 70% at 70% 45%, #000 20%, transparent 75%);
          mask-image:radial-gradient(ellipse 60% 70% at 70% 45%, #000 20%, transparent 75%);
}
/* a thin teal highlight along the top edge of the panel */
#ecc > .wrap.ecc::before{
  content:""; position:absolute; left:50%; transform:translateX(-50%); top:calc(-1 * clamp(64px,10vw,120px));
  width:min(560px,60%); height:1px; background:linear-gradient(90deg,transparent,rgba(5,165,184,.8),transparent);
}
#ecc > .wrap.ecc{ position:relative; }

/* the diagram sits on the panel like a lit screen */
.section--dark .ecc-map{
  border-radius:14px; overflow:hidden; border:1px solid rgba(255,255,255,.10);
  box-shadow:0 30px 70px rgba(0,0,0,.38), 0 0 90px rgba(5,165,184,.16);
}
/* left column: align with the diagram and give the copy a clear edge */
@media (min-width:1001px){ #ecc .ecc{ align-items:center; } }
#ecc .ecc-copy .eyebrow{ color:var(--teal-500); }
#ecc .bridge{ border-top-color:rgba(255,255,255,.10); }


/* ============ 3D: HERO PRISM ============ */
.hero-3d{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:min(49vw,650px); height:min(42vw,520px); min-height:380px;
  z-index:1; opacity:0; transition:opacity 1s var(--ease); pointer-events:none;
}
.hero-3d canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.hero--3d .hero-3d{ opacity:1; }
.hero--3d .hero-network{ display:none; }
.p3-label{
  position:absolute; left:0; top:0; z-index:2; opacity:0; text-align:center; white-space:nowrap;
  font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#047C8A;
  transform:translate(-50%,-50%); will-change:transform,opacity; pointer-events:none;
}
.p3-label strong{ display:block; margin-top:4px; font-family:var(--font-display); font-weight:500; font-size:17px; letter-spacing:0; text-transform:none; color:var(--navy-800); }
@media (max-width:980px){
  .hero-3d{ display:none; position:relative; top:auto; right:auto; transform:none; width:100%; height:clamp(300px,82vw,400px); min-height:0; margin-top:28px; }
  .hero--3d .hero-3d{ display:block; }
  .p3-label{ font-size:9.5px; letter-spacing:.1em; }
  .p3-label strong{ font-size:14px; }
}

/* ============ 3D: SELF-BUILDING HOSPITAL ============ */
.journey-3d{
  display:none; position:relative; overflow:hidden; border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.4));
  border:1px solid rgba(5,165,184,.2); box-shadow:0 18px 44px rgba(25,42,66,.08);
}
.journey--3d .journey-3d{ display:block; }
.journey-3d canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.j3d-stage{ position:absolute; left:18px; bottom:14px; z-index:2; display:flex; flex-direction:column; gap:2px; pointer-events:none; }
.j3d-num{ font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#047C8A; }
.j3d-name{ font-family:var(--font-display); font-size:17px; color:var(--navy-800); }
@media (min-width:1000px){
  #hospital-journey > .wrap > .section-head{ margin-bottom:clamp(36px,5vw,56px); }
  .journey-aside .journey-3d{ height:clamp(240px,38vh,380px); margin-bottom:22px; }
  .journey-index a{ padding-top:8px; padding-bottom:8px; }
  .j3d-stage{ display:none; }
}
@media (max-width:999px){
  .journey-aside{ display:contents; }
  .journey-3d{
    position:sticky; top:74px; z-index:4; height:clamp(220px,62vw,300px); margin:0 0 16px;
    background:rgba(236,246,247,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  }
}
.hero > .hero-3d{ position:absolute; z-index:1; }
@media (max-width:980px){ .hero > .hero-3d{ position:relative; } }

/* ============ MOBILE POLISH FOR 3D + SMALL TEXT ============ */
@media (max-width:999px){
  .journey-3d{ height:clamp(180px, min(62vw, 36vh), 300px); }
}
/* phones held sideways: keep the building in the flow so the stage cards stay readable */
@media (max-width:999px) and (max-height:560px){
  .journey-3d{ position:relative; top:auto; height:200px; }
  .hero-3d{ height:280px; }
}
@media (max-width:560px){
  #capabilities .cap-card [class*="cap"]:not(.cap-subgrid):not(h3):not(p){ font-size:12px; }
  #capabilities .cap-sub{ font-size:12px; }
  .pm-head{ font-size:11px; }
  .p3-label{ font-size:10.5px; }
  .p3-label strong{ font-size:14.5px; }
}
@media (max-width:999px){
  #capabilities .cap-no span:first-child{ font-size:11.5px; }
  .approach-no{ font-size:12px; }
}
#capabilities .cap-sub{ font-size:12px; }
.ecc-node small{ font-size:10.5px; }
.ecc-hub-kicker, .ecc-hub span{ font-size:11px; }

/* ================= ROUND 2: FEEDBACK UPDATES ================= */

/* ---- Section colours: a little deeper, and distinct from one another ---- */
:root{
  --tone-hero:#F5F6F3;
  --tone-about:#E7EFF5;
  --tone-verticals:#EFF2F3;
  --tone-presence:#E4EDF3;
  --tone-hospital:#DCEEF0;
  --tone-capab:#F1EADF;
  --tone-approach:#E3EAF3;
  --tone-vision:#E6F1F2;
  --tone-contact:#DFE7EF;
}
body{ background:var(--tone-hero); }
#vision{
  background:
    radial-gradient(ellipse 60% 45% at 50% 38%, rgba(5,165,184,.09), transparent 70%),
    linear-gradient(180deg,var(--tone-approach) 0,var(--tone-vision) var(--fade)) !important;
}
#verticals .vertical{ background:#fff; }
#verticals .vertical:nth-child(3){ background:var(--navy-800); }

/* ---- Hero prism labels: placed beside the shapes by script ---- */
.p3-label{ transform:none; text-align:left; }
.p3-label strong{ white-space:nowrap; }
.p3-legend{ display:none; }
@media (max-width:559px){
  .hero--3d .p3-label{ display:none; }
  .hero--3d .p3-legend{
    display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; list-style:none; margin:10px 0 0; padding:14px 16px;
    background:rgba(255,255,255,.7); border:1px solid var(--line); border-radius:12px; position:relative; z-index:2;
  }
  .p3-legend li{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--navy-800); line-height:1.3; }
  .p3-legend li:last-child{ grid-column:1 / -1; }
  .p3-legend b{ font-weight:600; color:#047C8A; font-size:11.5px; }
  .p3-legend .sw{ width:12px; height:12px; flex:none; clip-path:polygon(30% 0,100% 0,70% 100%,0 100%); }
  .sw-teal{ background:#05A5B8; } .sw-leg{ background:#2E5579; } .sw-bar{ background:#192A42; }
  .sw-ring{ border-radius:50%; clip-path:none !important; border:2px solid #05A5B8; box-sizing:border-box; }
}

/* ---- Pop-out on hover: cards lift and grow slightly ---- */
@media (hover:hover) and (pointer:fine){
  .about-card, #verticals .vertical, .cap-card, .journey-card, .approach-step, .ecc-node, .presence-map, .enquiry, .vp, .eco-step{
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease), opacity .45s var(--ease);
    will-change:transform;
  }
  .about-card:hover, #verticals .vertical:hover, .cap-card:hover, .approach-step:hover, .vp:hover{
    transform:translateY(-6px) scale(1.03); box-shadow:0 26px 60px rgba(25,42,66,.14); position:relative; z-index:3;
  }
  .journey-card:hover{ transform:scale(1.03) !important; box-shadow:0 24px 56px rgba(25,42,66,.12); opacity:1; }
  .presence-map:hover, .enquiry:hover{ transform:scale(1.015); box-shadow:0 30px 70px rgba(15,28,44,.2); }
  .ecc-map.is-done .ecc-node:hover{ transform:scale(1.12); z-index:4; border-color:rgba(5,165,184,.55); box-shadow:0 18px 40px rgba(25,42,66,.18); }
  .eco-step:hover{ transform:translateY(-6px) scale(1.06); }
}

/* ---- ECC comes alive on arrival ---- */
.js-live .ecc-map .ecc-node, .js-live .ecc-map .ecc-hub{
  transition:transform .9s cubic-bezier(.2,.8,.2,1), opacity .7s ease, box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.js-live .ecc-map:not(.is-live) .ecc-node, .ecc-map.pre .ecc-node{ opacity:0; transform:translate(var(--fx,0),var(--fy,0)) scale(.35); transition:none; }
.js-live .ecc-map:not(.is-live) .ecc-hub, .ecc-map.pre .ecc-hub{ opacity:0; transform:translate(-50%,-50%) scale(.6); transition:none; }
.ecc-map.arriving .ecc-node{ transition-delay:calc(.35s + var(--i,0) * .1s); }
.ecc-map.arriving .ecc-hub{ transition-delay:0s; }
.js-live .ecc-map:not(.is-done) .ecc-wires{ opacity:0; }
.ecc-wires{ transition:opacity .8s ease 1.2s; }
.ecc-map.is-done .ecc-node{ animation:eccFloat 5.5s ease-in-out infinite; animation-delay:calc(var(--i,0) * -.7s); }
@keyframes eccFloat{ 0%,100%{ translate:0 0; } 50%{ translate:0 -5px; } }
.ecc-wires circle.pulse{ fill:var(--teal-500); filter:drop-shadow(0 0 4px rgba(5,165,184,.8)); }
.ecc-map.is-done .ecc-hub::after{
  content:""; position:absolute; inset:-10px; border-radius:50%; border:1.5px solid rgba(5,165,184,.5);
  animation:hubPulse 2.8s ease-out infinite; pointer-events:none;
}
@keyframes hubPulse{ 0%{ transform:scale(.9); opacity:.9; } 100%{ transform:scale(1.35); opacity:0; } }
/* phones: the list arrives item by item */
.js-live .ecc-copy li{ transition:opacity .6s var(--ease), transform .6s var(--ease); }
.js-live .ecc-copy:not(.is-live) li{ opacity:0; transform:translateX(-12px); }
.ecc-copy.is-live li:nth-child(2){ transition-delay:.08s } .ecc-copy.is-live li:nth-child(3){ transition-delay:.16s } .ecc-copy.is-live li:nth-child(4){ transition-delay:.24s }
.ecc-copy.is-live li:nth-child(5){ transition-delay:.32s } .ecc-copy.is-live li:nth-child(6){ transition-delay:.40s } .ecc-copy.is-live li:nth-child(7){ transition-delay:.48s } .ecc-copy.is-live li:nth-child(8){ transition-delay:.56s }

/* ---- Ecosystem: a live, progressing track ---- */
.eco-node{ position:relative; }
.eco-node.is-current::after{
  content:""; position:absolute; inset:-5px; border-radius:50%; border:1.5px solid rgba(5,165,184,.55);
  animation:ecoPulse 2.4s ease-out infinite;
}
@keyframes ecoPulse{ 0%{ transform:scale(.85); opacity:1; } 100%{ transform:scale(1.7); opacity:0; } }
.eco-node:not(.is-current)::after{
  content:""; position:absolute; inset:-6px; border-radius:50%; border:1.5px dashed rgba(5,165,184,.55);
  animation:ecoSpin 6s linear infinite;
}
@keyframes ecoSpin{ to{ transform:rotate(360deg); } }
.eco-status:not(.is-current)::after{ content:"…"; display:inline-block; width:1.2em; text-align:left; animation:ecoDots 1.6s steps(4) infinite; overflow:hidden; vertical-align:bottom; }
@keyframes ecoDots{ 0%{ width:0 } 100%{ width:1.2em } }
.js-live .ecosystem:not(.is-live) .eco-step{ opacity:0; transform:translateY(14px); }
.js-live .ecosystem .eco-step{ transition:opacity .6s var(--ease), transform .6s var(--ease); }
.ecosystem.is-live .eco-step:nth-child(2){ transition-delay:.12s } .ecosystem.is-live .eco-step:nth-child(3){ transition-delay:.24s }
.ecosystem.is-live .eco-step:nth-child(4){ transition-delay:.36s } .ecosystem.is-live .eco-step:nth-child(5){ transition-delay:.48s }
.ecosystem.is-live .eco-step:nth-child(6){ transition-delay:.60s } .ecosystem.is-live .eco-step:nth-child(7){ transition-delay:.72s }
.eco-runner{ display:none; }
@media (min-width:1000px){
  /* track: solid progress up to Hospitals, then moving dashes for what's being built */
  .ecosystem::before{
    background:repeating-linear-gradient(90deg, rgba(5,165,184,.55) 0 8px, transparent 8px 16px);
    background-size:32px 1px; animation:ecoDash 1.2s linear infinite; height:2px;
  }
  @keyframes ecoDash{ to{ background-position:32px 0; } }
  .ecosystem::after{
    content:""; position:absolute; top:12.5px; height:3px; left:calc(100%/14); width:calc(100% * 3.5/7 - 100%/14);
    background:linear-gradient(90deg,#05A5B8,#2BC1D2); border-radius:2px; transform-origin:0 50%;
    transform:scaleX(0); transition:transform 1.8s cubic-bezier(.3,.7,.2,1) .3s; z-index:0;
  }
  .ecosystem.is-live::after{ transform:scaleX(1); }
  .eco-step{ position:relative; z-index:1; }
  .eco-runner{
    display:block; position:absolute; top:10px; left:calc(100%/14); width:8px; height:8px; border-radius:50%;
    background:#fff; box-shadow:0 0 0 3px rgba(5,165,184,.45), 0 0 14px rgba(5,165,184,.9); z-index:2;
    animation:ecoRun 4.5s cubic-bezier(.45,0,.25,1) infinite 2.2s; opacity:0;
  }
  @keyframes ecoRun{
    0%{ left:calc(100%/14); opacity:0; } 8%{ opacity:1; }
    55%{ left:calc(100% * 3.5/7); opacity:1; }
    95%{ left:calc(100% - 100%/14); opacity:.15; } 100%{ left:calc(100% - 100%/14); opacity:0; }
  }
}

/* ---- Approach: connecting lines draw in ---- */
.approach-line{ transform-origin:0 50%; transition:transform 1.2s cubic-bezier(.3,.7,.2,1); }
.js-live .approach-steps:not(.is-live) .approach-line{ transform:scaleX(0); }
.approach-steps.is-live .approach-step:nth-child(2) .approach-line{ transition-delay:.25s }
.approach-steps.is-live .approach-step:nth-child(3) .approach-line{ transition-delay:.5s }

/* ---- Future Vision: a composed statement instead of a paragraph ---- */
.vision-statement{ text-align:center; max-width:1000px; margin-left:auto; margin-right:auto; }
.vision-statement p::before{ content:none !important; }
.vision-lead{
  font-family:var(--font-display); font-weight:500; color:var(--navy-800);
  font-size:clamp(26px,3.4vw,42px); line-height:1.22; letter-spacing:-.01em; margin:6px auto 0; max-width:900px; text-wrap:balance;
}
.vision-lead em{ font-style:normal; color:#047C8A; }
.vision-lead .vw{ opacity:.16; transition:opacity .5s ease; }
.vision-lead.words-on .vw{ opacity:1; }
.vision-link{ margin:26px 0 16px !important; font-size:12.5px !important; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--slate-500) !important; font-family:var(--font-body) !important; }
.vision-pillars{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.vp{
  background:#fff; border:1px solid var(--line); border-top:3px solid var(--teal-500); border-radius:10px;
  padding:20px 18px 22px; text-align:left; display:flex; flex-direction:column; gap:10px;
}
.vp-no{ font-size:12px; font-weight:600; letter-spacing:.12em; color:#047C8A; }
.vp-name{ font-family:var(--font-display); font-size:clamp(18px,1.7vw,21px); line-height:1.25; color:var(--navy-800); }
.vp-name::first-letter{ text-transform:uppercase; }
.vision-join{ position:relative; height:44px; width:75%; margin:0 auto; border:1.5px solid rgba(5,165,184,.5); border-top:none; border-radius:0 0 14px 14px; }
.vision-join::after{ content:""; position:absolute; left:50%; bottom:-24px; width:1.5px; height:24px; background:rgba(5,165,184,.5); }
.vision-join::before{ content:""; position:absolute; left:calc(50% - 4px); bottom:-28px; width:9px; height:9px; border-radius:50%; background:var(--teal-500); box-shadow:0 0 0 5px rgba(5,165,184,.15); z-index:1; }
.vision-join + .vision-link{ margin-top:38px !important; }
.vision-outcomes{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px; }
.vision-outcomes span{ font-family:var(--font-display); font-size:clamp(30px,4.4vw,56px); line-height:1.05; color:var(--navy-800); }
.vision-outcomes span:nth-child(2){ color:#047C8A; }
.vision-end{ margin:14px 0 0 !important; font-family:var(--font-display) !important; font-size:clamp(20px,2.2vw,26px) !important; color:var(--slate-500) !important; }
/* arrival */
.js-live .vision-statement .vp, .js-live .vision-statement .vision-outcomes span{ transition:opacity .7s var(--ease), transform .7s var(--ease); }
.js-live .vision-statement:not(.is-live) .vp{ opacity:0; transform:translateY(18px); }
.js-live .vision-statement:not(.is-live) .vision-outcomes span{ opacity:0; transform:translateY(22px) scale(.96); }
.js-live .vision-statement .vision-join{ transition:clip-path 1s var(--ease) 1.4s; clip-path:inset(0 0 0 0); }
.js-live .vision-statement:not(.is-live) .vision-join{ clip-path:inset(0 50% 0 50%); }
.vision-statement.is-live .vp:nth-child(1){ transition-delay:.9s } .vision-statement.is-live .vp:nth-child(2){ transition-delay:1.02s }
.vision-statement.is-live .vp:nth-child(3){ transition-delay:1.14s } .vision-statement.is-live .vp:nth-child(4){ transition-delay:1.26s }
.vision-statement.is-live .vision-outcomes span:nth-child(1){ transition-delay:2.1s } .vision-statement.is-live .vision-outcomes span:nth-child(2){ transition-delay:2.3s } .vision-statement.is-live .vision-outcomes span:nth-child(3){ transition-delay:2.5s }
@media (max-width:760px){
  .vision-pillars{ grid-template-columns:1fr 1fr; }
  .vision-join{ width:60%; }
}

@media (prefers-reduced-motion: reduce){
  .eco-node::after, .eco-runner, .ecosystem::before, .ecc-map .ecc-node, .ecc-hub::after, .eco-status::after{ animation:none !important; }
  .vision-lead .vw{ opacity:1; }
}

/* ECC function boxes 01–08: rounded corners */
.ecc-node{ border-radius:14px; }

