/* ============================================================
   IMPACT THINKING — SITE STYLESHEET v2.0
   Palette: disciplined blue-teal monochrome.
   Deep petrol = every button + every accentuated word. No gold.
   Type: Fraunces (display) · Hanken Grotesk (body/UI) · IBM Plex Mono (labels)
   ============================================================ */
:root{
  --ink:#092833;
  --ink-2:#0C313D;
  --line-dark:#1C4956;
  --petrol:#0F5663;
  --petrol-bright:#1E8294;
  --teal:#2E8A98;
  --paper:#F4F4F0;
  --mist:#E7ECEC;
  --cloud:#D9E4E6;
  --cloud-dim:#9BB2B8;
  --ink-dim:#46606A;
  --rule:#D5D9D5;
  --maxw:1180px;
  --maxw-prose:760px;
  --gutter:clamp(20px,5vw,64px);
  --r:2px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Hanken Grotesk",system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.display{font-family:"Fraunces",Georgia,serif;font-weight:500;line-height:1.04;letter-spacing:-0.01em}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:var(--petrol);font-weight:500}
.eyebrow.on-dark{color:var(--petrol-bright)}
.accent{color:var(--petrol)}
.accent-d{color:var(--petrol-bright)}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(60px,8vw,118px)}
.lead{font-size:clamp(19px,2.2vw,22px);color:var(--ink-dim);max-width:62ch}
.tick{display:flex;align-items:center;gap:14px;margin-bottom:30px}
.tick::before{content:"";width:26px;height:2px;background:var(--petrol)}
.tick.on-dark::before{background:var(--petrol-bright)}
.tick .eyebrow{margin:0}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:"Hanken Grotesk",sans-serif;font-weight:600;font-size:15px;padding:14px 26px;border-radius:var(--r);border:1.5px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn-primary{background:var(--petrol);color:#fff;border-color:var(--petrol)}
.btn-primary:hover{background:var(--petrol-bright);border-color:var(--petrol-bright);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--cloud);border-color:var(--line-dark)}
.btn-ghost:hover{border-color:var(--petrol-bright);color:#fff}
.btn-ghost.on-light{color:var(--petrol);border-color:var(--rule)}
.btn-ghost.on-light:hover{border-color:var(--petrol);background:rgba(15,86,99,.05)}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(3px)}

/* header */
header.site{position:sticky;top:0;z-index:50;background:var(--ink)}
.nav{display:flex;align-items:center;justify-content:space-between;padding-block:18px}
.brandmark{font-family:"Fraunces",serif;font-weight:600;font-size:21px;color:var(--cloud);letter-spacing:-0.01em;display:flex;align-items:center;gap:9px}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{font-size:14.5px;color:var(--cloud-dim);font-weight:500;transition:color .18s}
.nav-links a:hover,.nav-links a.is-active{color:#fff}
.nav-cta{font-size:14px!important;color:var(--cloud)!important;border:1.5px solid var(--line-dark);padding:9px 16px;border-radius:var(--r);transition:border-color .18s}
.nav-cta:hover{border-color:var(--petrol-bright)}
.menu-btn{display:none;background:none;border:none;color:var(--cloud);font-size:24px;cursor:pointer}

/* contour svg */
.contours{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

/* HERO (home) */
.hero{position:relative;background:var(--ink);color:var(--cloud);overflow:hidden}
.hero .contours{opacity:.6}
.hero-inner{position:relative;z-index:2;padding-block:clamp(76px,12vw,148px) clamp(92px,13vw,160px)}
.hero h1{font-size:clamp(38px,6.4vw,82px);color:#fff;max-width:16ch;margin-top:26px}
.hero h1 em{font-style:italic;color:var(--petrol-bright);font-weight:400}
.hero .lead{color:var(--cloud-dim);margin-top:28px;max-width:54ch;font-size:clamp(18px,2vw,21px)}
.hero-cta{display:flex;gap:14px;margin-top:42px;flex-wrap:wrap}

/* PAGE HERO (inner pages) */
.phero{position:relative;background:var(--ink);color:var(--cloud);overflow:hidden}
.phero .contours{opacity:.42}
.phero-inner{position:relative;z-index:2;padding-block:clamp(60px,9vw,104px) clamp(50px,7vw,78px)}
.crumb{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.12em;color:var(--cloud-dim);text-transform:uppercase;margin-bottom:22px}
.crumb a{color:var(--petrol-bright)}
.phero h1{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(34px,5.4vw,66px);color:#fff;max-width:18ch;line-height:1.05;letter-spacing:-0.01em}
.phero h1 em{font-style:italic;color:var(--petrol-bright);font-weight:400}
.phero .lead{color:var(--cloud-dim);margin-top:24px;max-width:58ch}

/* prose */
.prose{max-width:var(--maxw-prose)}
.prose p{margin-bottom:20px;color:var(--ink-dim);font-size:17.5px}
.prose p.first{font-size:20px;color:var(--ink)}
.prose h2{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(24px,3.2vw,34px);color:var(--ink);margin:46px 0 16px;line-height:1.14}
.prose h3{font-family:"Fraunces",serif;font-weight:500;font-size:21px;color:var(--ink);margin:30px 0 10px}
.prose strong{color:var(--ink);font-weight:600}
.prose .accent{color:var(--petrol);font-weight:500}

/* two-col split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--rule)}
.split .col{padding:34px 0}
.split .col:first-child{border-right:1px solid var(--rule);padding-right:42px}
.split .col:last-child{padding-left:42px}
.split .label{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}
.split h3{font-family:"Fraunces",serif;font-weight:500;font-size:23px;margin:12px 0 10px;color:var(--ink)}
.split p{color:var(--ink-dim);font-size:16px}

/* pillars (dark) */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}
.pillar{background:var(--ink-2);padding:36px 30px}
.pillar .num{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--petrol-bright);letter-spacing:.1em}
.pillar h3{font-family:"Fraunces",serif;font-weight:500;font-size:22px;color:#fff;margin:18px 0 12px;line-height:1.18}
.pillar p{color:var(--cloud-dim);font-size:15.5px}

/* lineage list */
.lineage-list{margin-top:44px;border-top:1px solid var(--rule)}
.lineage-row{display:grid;grid-template-columns:230px 1fr;gap:30px;padding:26px 0;border-bottom:1px solid var(--rule)}
.lineage-row .name{font-family:"Fraunces",serif;font-weight:500;font-size:21px;color:var(--ink)}
.lineage-row .name span{display:block;font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:6px;font-weight:400}
.lineage-row p{color:var(--ink-dim);font-size:16px}

/* programme list (home + workshops) */
.wlist{margin-top:50px;border-top:1px solid var(--rule)}
.witem{display:grid;grid-template-columns:64px 1fr auto;gap:28px;align-items:center;padding:28px 0;border-bottom:1px solid var(--rule);transition:background .18s}
.witem:hover{background:rgba(15,86,99,.05)}
.witem .wn{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--petrol);align-self:start;padding-top:6px}
.witem h3{font-family:"Fraunces",serif;font-weight:500;font-size:22px;color:var(--ink);margin-bottom:7px}
.witem p{color:var(--ink-dim);font-size:15.5px;max-width:64ch}
.witem .go{color:var(--petrol);font-size:14px;font-weight:600;white-space:nowrap}

/* day / module blocks (programme pages) */
.days{margin-top:46px;display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.day{background:var(--paper);padding:30px clamp(20px,3vw,36px)}
.day .dtag{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--petrol)}
.day h3{font-family:"Fraunces",serif;font-weight:500;font-size:23px;color:var(--ink);margin:8px 0 16px}
.sess{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:14px 0;border-top:1px solid var(--rule)}
.sess .when{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);padding-top:3px}
.sess .what strong{display:block;color:var(--ink);font-weight:600;margin-bottom:4px;font-size:16.5px}
.sess .what p{color:var(--ink-dim);font-size:15px}

/* meta facts row */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);margin-top:8px}
.fact{background:var(--ink-2);padding:26px 24px}
.fact .k{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--petrol-bright)}
.fact .v{color:#fff;font-family:"Fraunces",serif;font-size:20px;margin-top:8px}

/* outcomes */
.outcomes{list-style:none;margin-top:24px}
.outcomes li{position:relative;padding-left:26px;margin-bottom:14px;color:var(--ink-dim);font-size:16.5px}
.outcomes li::before{content:"";position:absolute;left:0;top:11px;width:12px;height:2px;background:var(--petrol)}

/* card grid (research + insights) */
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px}
.card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:28px 26px;display:flex;flex-direction:column;gap:12px;transition:border-color .18s,transform .18s}
.card:hover{border-color:var(--petrol);transform:translateY(-2px)}
.card .ctag{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--petrol)}
.card h3{font-family:"Fraunces",serif;font-weight:500;font-size:20px;color:var(--ink);line-height:1.16}
.card p{color:var(--ink-dim);font-size:15px;flex:1}
.card .status{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:6px}
.card.flagship{grid-column:1 / -1;background:var(--ink-2);border-color:var(--ink-2);color:var(--cloud)}
.card.flagship .ctag{color:var(--petrol-bright)}
.card.flagship h3{color:#fff;font-size:26px;max-width:24ch}
.card.flagship p{color:var(--cloud-dim);max-width:60ch}
.card.flagship .status{color:var(--cloud-dim)}

/* research marks (dark) */
.research-marks{display:flex;gap:44px;flex-wrap:wrap;margin-top:6px}
.rmark{max-width:24ch}
.rmark .b{font-family:"Fraunces",serif;font-size:28px;color:var(--petrol-bright)}
.rmark .t{font-size:14.5px;color:var(--cloud-dim);margin-top:6px}

/* positioning */
.pgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,6vw,80px);align-items:start}
.statement{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(28px,4.2vw,48px);line-height:1.1;letter-spacing:-0.01em;color:var(--ink)}
.statement em{font-style:italic;color:var(--petrol)}
.support{color:var(--ink-dim);font-size:17px}
.support p+p{margin-top:18px}

/* contact form */
.cgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,72px);align-items:start}
.cinfo .row{padding:20px 0;border-top:1px solid var(--rule)}
.cinfo .row .k{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}
.cinfo .row .v{font-size:17px;color:var(--ink);margin-top:6px}
.cinfo .row .v a{color:var(--petrol);font-weight:600}
form.enquiry{display:flex;flex-direction:column;gap:18px}
form.enquiry label{font-size:13px;font-family:"IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px;display:block}
form.enquiry input,form.enquiry select,form.enquiry textarea{width:100%;font-family:"Hanken Grotesk",sans-serif;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:13px 14px;transition:border-color .18s}
form.enquiry input:focus,form.enquiry select:focus,form.enquiry textarea:focus{outline:none;border-color:var(--petrol)}
form.enquiry textarea{min-height:140px;resize:vertical}
form.enquiry .btn{align-self:flex-start;margin-top:4px}

/* generic dark/light section bgs */
.bg-paper{background:var(--paper)}
.bg-mist{background:var(--mist)}
.bg-ink{background:var(--ink);color:var(--cloud)}
.bg-ink-2{background:var(--ink-2);color:var(--cloud)}
.bg-ink .lead,.bg-ink-2 .lead{color:var(--cloud-dim)}
.bg-ink h2,.bg-ink-2 h2{color:#fff}

/* cta */
.cta{background:var(--ink-2);color:var(--cloud);text-align:center}
.cta h2{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(28px,4.6vw,52px);color:#fff;max-width:18ch;margin:0 auto;line-height:1.08}
.cta .lead{color:var(--cloud-dim);margin:22px auto 0;text-align:center}
.cta .btn{margin-top:38px}

/* section heading helper */
.shead h2{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(26px,4vw,44px);color:var(--ink);max-width:18ch;line-height:1.08}
.bg-ink .shead h2,.bg-ink-2 .shead h2{color:#fff}
.whead{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:6px}

/* footer */
footer.site{background:var(--ink);color:var(--cloud-dim);padding-block:54px 40px}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}
footer .brandmark{margin-bottom:14px}
footer p.fdesc{font-size:14px;max-width:34ch;color:var(--cloud-dim)}
.fcol h4{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--petrol-bright);margin-bottom:16px}
.fcol a{display:block;font-size:14.5px;color:var(--cloud-dim);padding:5px 0;transition:color .15s}
.fcol a:hover{color:#fff}
.fbottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:46px;padding-top:24px;border-top:1px solid var(--line-dark);font-size:13px;color:var(--cloud-dim)}

/* responsive */
@media(max-width:880px){
  .nav-links{display:none}
  .menu-btn{display:block}
  .split{grid-template-columns:1fr}
  .split .col:first-child{border-right:none;border-bottom:1px solid var(--rule);padding-right:0}
  .split .col:last-child{padding-left:0}
  .pillars{grid-template-columns:1fr}
  .pgrid,.cgrid{grid-template-columns:1fr;gap:34px}
  .cardgrid{grid-template-columns:1fr 1fr}
  .facts{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr}
  .witem{grid-template-columns:40px 1fr;gap:18px}
  .witem .go{grid-column:2}
  .lineage-row{grid-template-columns:1fr;gap:8px}
  .sess{grid-template-columns:1fr;gap:6px}
}
@media(max-width:520px){
  .cardgrid{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .hero-cta .btn{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
:focus-visible{outline:2px solid var(--petrol-bright);outline-offset:3px}

/* ============ HOME PAGE SECTIONS ============ */
.distinction{background:var(--paper)}
.distinction .big{font-family:"Fraunces",serif;font-weight:500;line-height:1.12;font-size:clamp(26px,4vw,46px);max-width:21ch;letter-spacing:-0.01em;color:var(--ink)}
.dgrid{display:grid;grid-template-columns:1fr 1fr;margin-top:56px;border-top:1px solid var(--rule)}
.dcol{padding:34px 0}
.dcol:first-child{border-right:1px solid var(--rule);padding-right:42px}
.dcol:last-child{padding-left:42px}
.dcol .label{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}
.dcol h3{font-family:"Fraunces",serif;font-weight:500;font-size:23px;margin:12px 0 10px;color:var(--ink)}
.dcol p{color:var(--ink-dim);font-size:16px}
.approach{background:var(--ink-2);color:var(--cloud)}
.approach .lead{color:var(--cloud-dim)}
.approach .pillars{margin-top:54px}
.workshops{background:var(--mist)}
.workshops .whead h2{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(28px,4vw,44px);max-width:14ch;color:var(--ink);line-height:1.08}
.research{background:var(--ink);color:var(--cloud);position:relative;overflow:hidden}
.research .contours{opacity:.4}
.research .inner{position:relative;z-index:2}
.research h2{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(28px,4.4vw,50px);color:#fff;max-width:16ch;line-height:1.08;margin-top:22px}
.research h2 em{font-style:italic;color:var(--petrol-bright);font-weight:400}
.research .lead{color:var(--cloud-dim);margin-top:24px}
.research .research-marks{margin-top:46px}
.research .btn-ghost{margin-top:44px}
.position{background:var(--paper)}
.position .statement em{font-style:italic;color:var(--petrol)}
@media(max-width:880px){
  .dgrid{grid-template-columns:1fr}
  .dcol:first-child{border-right:none;border-bottom:1px solid var(--rule);padding-right:0}
  .dcol:last-child{padding-left:0}
}
