
  :root{
    /* impact brand palette (from logo) */
    --navy:#213B82;
    --blue:#3BABE1;
    --purple:#941E80;
    --green:#00983B;
    --red:#E5332B;
    --yellow:#FFD500;
    --grey:#6F6F6E;
    /* roles */
    --ink:var(--navy);
    --ink-2:#2E4FA3;
    --deep:#172A5E;       /* darker navy for footer */
    --paper:#F1F5FB;      /* pale blue tint */
    --white:#FFFFFF;
    --brass:var(--yellow);
    --text:#1F2433;
    --muted:#5C5C5B;      /* logo grey, darkened for contrast */
    --line:#DCE3EE;
    --radius-lg:28px;
    --radius-sm:12px;
    --wrap:1180px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
  body{font-family:"Figtree",system-ui,sans-serif;color:var(--text);background:var(--white);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
  img{display:block;max-width:100%}
  a{color:inherit}
  :focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
  h1,h2,h3{font-family:"Bricolage Grotesque",sans-serif;line-height:1.05;letter-spacing:-.02em;color:var(--ink)}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
  @media (max-width:600px){.wrap{padding:0 16px}}

  /* Top strip */
  .strip{background:var(--ink);color:#C9D4EE;font-size:14px}
  .strip .wrap{display:flex;gap:24px;justify-content:space-between;align-items:center;padding-top:9px;padding-bottom:9px;flex-wrap:wrap}
  .strip a{text-decoration:none;color:#fff;font-weight:600}
  .strip .hours{opacity:.85}
  @media (max-width:700px){.strip .hours{display:none}}

  /* Header */
  header.site{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);backdrop-filter:blur(10px)}
  header.site::after{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--blue) 0 16.66%,var(--purple) 16.66% 33.33%,var(--green) 33.33% 50%,var(--red) 50% 66.66%,var(--yellow) 66.66% 83.33%,var(--navy) 83.33% 100%)}
  header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
  .logo{display:flex;align-items:center;text-decoration:none}
  .logo-svg{height:52px;width:auto;display:block}
  .logo .fallback{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:26px;color:var(--ink)}
  nav.main ul{display:flex;gap:30px;list-style:none;align-items:center}
  nav.main a{text-decoration:none;font-weight:500;font-size:16px;color:var(--text)}
  nav.main a:hover{color:var(--ink-2);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
  .btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:16px;text-decoration:none;padding:14px 24px;border-radius:999px;transition:background .2s,color .2s,transform .2s;border:2px solid transparent;cursor:pointer}
  .btn-primary{background:var(--yellow);color:var(--navy)}
  .btn-primary:hover{background:#F2C200}
  .btn-ghost{border-color:currentColor;color:var(--ink)}
  .btn-ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
  .btn-light{border-color:rgba(255,255,255,.6);color:#fff}
  .btn-light:hover{background:#fff;color:var(--ink)}
  nav.main .btn{padding:11px 20px;color:var(--navy)}
  nav.main .btn:hover{text-decoration:none}
  .menu-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;color:var(--ink)}
  @media (max-width:960px){
    .menu-toggle{display:grid;place-items:center}
    nav.main{position:absolute;top:80px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);display:none}
    nav.main.open{display:block}
    nav.main ul{flex-direction:column;align-items:flex-start;gap:0;padding:8px 16px 20px}
    nav.main li{width:100%}
    nav.main a{display:block;padding:12px 0;font-size:18px}
    nav.main .btn{display:inline-flex;margin-top:10px;padding:13px 22px}
  }

  /* Hero */
  .hero{background:var(--paper);position:relative;overflow:hidden}
  .hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding-top:80px;padding-bottom:96px}
  .hero h1{font-size:clamp(44px,6.4vw,84px);font-weight:800;margin-bottom:26px}
  .hero p.lead{font-size:20px;color:var(--muted);max-width:30em;margin-bottom:36px}
  .hero .actions{display:flex;gap:14px;flex-wrap:wrap}
  .award{background:var(--ink);color:#fff;border-radius:var(--radius-lg);padding:40px 36px;position:relative}
  .award .medal{width:76px;height:76px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;margin-bottom:26px;box-shadow:0 0 0 8px rgba(255,213,0,.2)}
  .award .medal span{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:32px;color:var(--navy)}
  .award h2{color:#fff;font-size:30px;margin-bottom:12px}
  .award p{color:#C9D4EE;font-size:16px}
  .award .years{display:flex;gap:8px;margin-top:26px;flex-wrap:wrap}
  .award .years span{border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:5px 14px;font-size:14px;font-weight:600}
  .award .years span:last-child{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}
  @media (max-width:900px){.hero .wrap{grid-template-columns:1fr;padding-top:56px;padding-bottom:64px;gap:40px}}

  /* Proof bar */
  .proof{border-bottom:1px solid var(--line)}
  .proof .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
  .proof .wrap>div{padding:30px 20px 30px 0;border-right:1px solid var(--line)}
  .proof .wrap>div+div{padding-left:28px}
  .proof .wrap>div:last-child{border-right:0}
  .proof .wrap>div::before{content:"";display:block;width:28px;height:4px;border-radius:2px;margin-bottom:14px;background:var(--c)}
  .proof .wrap>div:nth-child(1){--c:var(--blue)}.proof .wrap>div:nth-child(2){--c:var(--purple)}.proof .wrap>div:nth-child(3){--c:var(--green)}.proof .wrap>div:nth-child(4){--c:var(--red)}
  .proof strong{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:22px;color:var(--ink);line-height:1.2}
  .proof span{color:var(--muted);font-size:15px}
  @media (max-width:800px){.proof .wrap{grid-template-columns:1fr 1fr}.proof .wrap>div{border-right:0;padding-left:0!important;border-bottom:1px solid var(--line)}.proof .wrap>div:nth-last-child(-n+2){border-bottom:0}}

  section{padding:96px 0}
  @media (max-width:700px){section{padding:64px 0}}
  .section-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:48px;flex-wrap:wrap}
  .section-head h2{font-size:clamp(34px,4.2vw,54px);font-weight:800;max-width:14em}
  .section-head p{color:var(--muted);max-width:28em}

  /* Services */
  .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .service{display:flex;flex-direction:column;text-decoration:none;color:inherit}
  .service .img{aspect-ratio:4/3;border-radius:var(--radius-sm);overflow:hidden;background:var(--paper);margin-bottom:20px}
  .service img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
  .service:hover img{transform:scale(1.04)}
  .service h3{font-size:25px;margin-bottom:8px;padding-left:14px;border-left:4px solid var(--c)}
  .service:nth-child(1){--c:var(--blue)}.service:nth-child(2){--c:var(--purple)}.service:nth-child(3){--c:var(--green)}.service:nth-child(4){--c:var(--red)}.service:nth-child(5){--c:var(--yellow)}.service:nth-child(6){--c:var(--navy)}
  .service p{color:var(--muted);font-size:16px;margin-bottom:14px}
  .service .more{margin-top:auto;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1.5px}
  @media (max-width:900px){.services-grid{grid-template-columns:1fr 1fr}}
  @media (max-width:600px){.services-grid{grid-template-columns:1fr}}

  /* Declined */
  .declined{background:var(--ink);color:#fff}
  .declined .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
  .declined h2{color:#fff;font-size:clamp(36px,4.6vw,60px);font-weight:800;margin-bottom:24px}
  .declined p{color:#C9D4EE;font-size:18px;margin-bottom:16px;max-width:32em}
  .declined .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
  .declined .reasons{list-style:none;display:grid;gap:0;border-top:1px solid rgba(255,255,255,.18)}
  .declined .reasons li{padding:20px 0;border-bottom:1px solid rgba(255,255,255,.18);display:flex;gap:18px;align-items:baseline;font-size:18px}
  .declined .reasons svg{flex:none;color:var(--yellow);transform:translateY(3px)}
  @media (max-width:900px){.declined .wrap{grid-template-columns:1fr;gap:40px}}

  /* Partners */
  .partners-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .partner{border:1px solid var(--line);border-top:5px solid var(--c);border-radius:var(--radius-lg);padding:34px 30px;display:flex;flex-direction:column}
  .partner:nth-child(1){--c:var(--purple)}.partner:nth-child(2){--c:var(--green)}.partner:nth-child(3){--c:var(--blue)}
  .partner h3{font-size:26px;margin-bottom:12px}
  .partner p{color:var(--muted);margin-bottom:24px}
  .partner .btn{margin-top:auto;align-self:flex-start}
  .partner small{display:block;color:var(--muted);font-size:13px;margin-top:12px}
  .partner.feature{background:var(--paper);border-left-color:var(--paper);border-right-color:var(--paper);border-bottom-color:var(--paper)}
  @media (max-width:900px){.partners-grid{grid-template-columns:1fr}}

  /* Story */
  .story{background:var(--paper)}
  .story .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:center}
  .story .photo{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1/1;background:#DCE3EE}
  .story .photo img{width:100%;height:100%;object-fit:cover}
  .story .big{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:clamp(90px,13vw,170px);line-height:.85;color:var(--ink);letter-spacing:-.04em}
  .story .big small{display:block;font-size:22px;letter-spacing:0;font-weight:700;color:var(--purple);margin-top:12px}
  .story h2{font-size:clamp(30px,3.6vw,44px);margin:36px 0 16px}
  .story p{color:var(--muted);font-size:18px;margin-bottom:28px;max-width:30em}
  @media (max-width:900px){.story .wrap{grid-template-columns:1fr;gap:40px}.story .photo{aspect-ratio:4/3}}

  /* Reviews */
  .rating{display:flex;align-items:center;gap:14px;color:var(--muted)}
  .stars{display:flex;gap:3px;color:#F2B600}
  .reviews-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 56px)/3);gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:18px;scrollbar-width:thin}
  .review{scroll-snap-align:start;border-top:4px solid var(--c,var(--ink));padding-top:24px;display:flex;flex-direction:column}
  .review blockquote{font-size:18px;line-height:1.55;margin-bottom:22px}
  .review cite{font-style:normal;margin-top:auto;font-weight:600;color:var(--ink)}
  .review cite span{display:block;font-weight:400;color:var(--muted);font-size:14px}
  .review:nth-child(6n+1){--c:var(--blue)}.review:nth-child(6n+2){--c:var(--purple)}.review:nth-child(6n+3){--c:var(--green)}.review:nth-child(6n+4){--c:var(--red)}.review:nth-child(6n+5){--c:var(--yellow)}.review:nth-child(6n+6){--c:var(--navy)}
  .reviews-nav{display:flex;gap:10px}
  .reviews-nav button{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;display:grid;place-items:center}
  .reviews-nav button:hover{background:var(--ink);color:#fff}
  .reviews-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;flex-wrap:wrap}
  @media (max-width:900px){.reviews-track{grid-auto-columns:calc((100% - 28px)/2)}}
  @media (max-width:600px){.reviews-track{grid-auto-columns:88%}}

  /* Enquiry band */
  .enquire{padding:0}
  .enquire .card{background:var(--yellow);border-radius:var(--radius-lg);padding:64px 56px;display:grid;grid-template-columns:1.3fr auto;gap:40px;align-items:center}
  .enquire h2{font-size:clamp(32px,4vw,50px);font-weight:800;color:var(--navy);margin-bottom:12px}
  .enquire p{color:#2A2F45;font-size:18px;max-width:32em}
  .enquire .btn{background:var(--ink);color:#fff}
  .enquire .btn:hover{background:var(--ink-2)}
  @media (max-width:800px){.enquire .card{grid-template-columns:1fr;padding:40px 24px}}

  /* Contact */
  .contact .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
  .contact h3{font-size:22px;margin-bottom:16px}
  .contact p,.contact dd{color:var(--muted)}
  .contact a{color:var(--ink);font-weight:600}
  .contact dl{display:grid;grid-template-columns:auto 1fr;gap:8px 24px}
  .contact dt{font-weight:600;color:var(--text)}
  .social{display:flex;gap:12px;margin-top:18px}
  .social a{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--ink)}
  .social a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
  @media (max-width:900px){.contact .wrap{grid-template-columns:1fr;gap:36px}}

  /* Footer */
  footer{background:var(--deep);color:#B8C4E2;font-size:14px}
  footer .wrap{padding-top:56px;padding-bottom:40px}
  .foot-links{display:flex;flex-wrap:wrap;gap:10px 28px;margin-bottom:36px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.14)}
  .foot-links a{color:#fff;text-decoration:none;font-size:15px}
  .foot-links a:hover{text-decoration:underline}
  .warning{font-family:"Bricolage Grotesque",sans-serif;color:#fff;font-weight:700;font-size:18px;margin-bottom:18px;letter-spacing:0}
  footer p{max-width:60em;margin-bottom:8px}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
