:root {
  --ink: #122733;
  --ink-deep: #0b1b23;
  --muted: #607078;
  --paper: #f6f3ec;
  --paper-warm: #eee9de;
  --white: #fffefb;
  --teal: #83c8d1;
  --teal-dark: #4ca7b4;
  --yellow: #f5bb18;
  --line: rgba(18,39,51,.14);
  --shadow: 0 25px 70px rgba(13, 37, 47, .12);
  --radius: 26px;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Manrope', 'DM Sans', system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
button { color: inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.scroll-progress { position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 100; pointer-events:none; }
.scroll-progress span { display:block; width:0; height:100%; background:var(--yellow); }

.site-header {
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(22px, 4vw, 68px);
  position: fixed;
  inset: 0 0 auto;
  z-index: 90;
  transition: background .3s ease, box-shadow .3s ease, height .3s ease;
}
.site-header.is-scrolled {
  height: 68px;
  background: rgba(246, 243, 236, .88);
  backdrop-filter: blur(18px);
  box-shadow: 0 1px 0 rgba(18,39,51,.08);
}
.brand { display:flex; align-items:center; gap:11px; font-weight:700; letter-spacing:.14em; font-size:.87rem; z-index:2; }
.brand-mark { width:34px; height:34px; position:relative; display:inline-block; }
.brand-mark i { position:absolute; border:4px solid var(--teal-dark); border-radius:50%; inset:3px; }
.brand-mark i:nth-child(1) { clip-path: polygon(0 0, 100% 0, 100% 38%, 0 38%); }
.brand-mark i:nth-child(2) { clip-path: polygon(0 32%, 100% 32%, 100% 68%, 0 68%); transform: rotate(120deg); }
.brand-mark i:nth-child(3) { clip-path: polygon(0 62%, 100% 62%, 100% 100%, 0 100%); transform: rotate(240deg); border-color:var(--yellow); }
.main-nav { display:flex; align-items:center; gap:clamp(18px,2vw,34px); font-size:.79rem; font-weight:600; }
.main-nav > a:not(.nav-cta) { position:relative; padding: 10px 0; }
.main-nav > a:not(.nav-cta)::after { content:''; position:absolute; left:0; bottom:4px; width:0; height:1px; background:var(--ink); transition:width .25s ease; }
.main-nav > a:hover::after, .main-nav > a.is-active::after { width:100%; }
.nav-cta { padding:12px 16px; border:1px solid var(--ink); border-radius:100px; transition:.25s ease; }
.nav-cta:hover { background:var(--ink); color:var(--white); }
.menu-toggle { display:none; background:none; border:0; width:42px; height:42px; position:relative; z-index:3; }
.menu-toggle span:not(.sr-only) { position:absolute; width:23px; height:1.5px; background:var(--ink); left:9px; transition:.25s ease; }
.menu-toggle span:nth-child(1) { top:17px; }
.menu-toggle span:nth-child(2) { top:24px; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:rotate(45deg); top:21px; }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { transform:rotate(-45deg); top:21px; }

.hero {
  min-height: 100svh;
  padding: 126px clamp(22px,6vw,100px) 70px;
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(390px,.94fr);
  align-items:center;
  gap:clamp(34px,5vw,90px);
  position:relative;
  overflow:hidden;
}
.hero-grid { position:absolute; inset:0; opacity:.28; pointer-events:none; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(to bottom,transparent,black 22%,black 72%,transparent); }
.hero-ambient { position:absolute; border-radius:50%; filter:blur(2px); opacity:.68; pointer-events:none; }
.ambient-one { width:460px; height:460px; background:rgba(131,200,209,.25); right:-130px; top:9%; }
.ambient-two { width:300px; height:300px; background:rgba(245,187,24,.14); left:28%; bottom:-120px; }
.hero-copy, .hero-visual { position:relative; z-index:1; }
.eyebrow { text-transform:uppercase; letter-spacing:.2em; font-size:.69rem; font-weight:700; margin:0 0 26px; display:flex; align-items:center; gap:12px; }
.eyebrow::before { content:''; width:38px; height:1px; background:currentColor; opacity:.6; }
.hero h1, .section-heading h2, .about-copy h2, .manifesto h2, .focus-content h2, .testimonial-head h2, .contact-copy h2 {
  font-size:clamp(3.45rem,6vw,7rem);
  line-height:.94;
  letter-spacing:-.06em;
  margin:0;
  font-weight:500;
}
.hero h1 em, .section-heading h2 em, .about-copy h2 em, .manifesto h2 em, .focus-content h2 em, .testimonial-head h2 em, .contact-copy h2 em { font-family:var(--serif); font-weight:500; color:var(--teal-dark); }
.hero-lede { max-width:650px; font-size:clamp(1rem,1.3vw,1.2rem); line-height:1.75; color:var(--muted); margin:30px 0 32px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.button { min-height:51px; padding:0 22px; border-radius:100px; display:inline-flex; align-items:center; justify-content:center; gap:22px; font-size:.8rem; font-weight:700; border:1px solid transparent; cursor:pointer; transition:transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--ink); color:var(--white); }
.button-primary:hover { background:var(--teal-dark); }
.button-ghost { border-color:var(--line); background:rgba(255,255,255,.25); }
.button-ghost:hover { background:var(--white); }
.button-light { background:var(--white); color:var(--ink); }
.button-dark { background:var(--ink); color:var(--white); border:0; }
.hero-proof { display:grid; grid-template-columns:repeat(3,1fr); margin-top:54px; padding-top:22px; border-top:1px solid var(--line); max-width:760px; gap:18px; }
.hero-proof div { display:flex; flex-direction:column; gap:7px; }
.hero-proof strong { font-size:.92rem; }
.hero-proof span { font-size:.68rem; line-height:1.45; color:var(--muted); max-width:150px; }

.hero-visual { min-height:650px; display:flex; align-items:center; justify-content:center; }
.hero-photo-wrap { width:min(87%,480px); aspect-ratio:.79; border-radius:240px 240px 30px 30px; overflow:hidden; position:relative; box-shadow:var(--shadow); }
.hero-photo-wrap img { width:100%; height:100%; object-fit:cover; object-position:center 25%; transform:scale(1.02); }
.photo-shade { position:absolute; inset:0; background:linear-gradient(to top,rgba(10,26,33,.62),transparent 42%); }
.photo-tag { position:absolute; bottom:24px; left:24px; right:24px; color:white; display:flex; gap:12px; align-items:center; font-size:.8rem; font-weight:600; }
.photo-tag small { font-weight:400; opacity:.75; }
.pulse-dot { width:9px; height:9px; border-radius:50%; background:var(--yellow); box-shadow:0 0 0 7px rgba(245,187,24,.18); flex:0 0 auto; }
.orbit-card { position:absolute; padding:11px 15px; border:1px solid rgba(18,39,51,.12); background:rgba(255,254,251,.85); backdrop-filter:blur(12px); border-radius:100px; font-size:.7rem; font-weight:700; box-shadow:0 10px 35px rgba(18,39,51,.08); animation:float 5s ease-in-out infinite; }
.orbit-card span { color:var(--teal-dark); margin-right:8px; }
.orbit-a { top:16%; left:0; }
.orbit-b { top:36%; right:-1%; animation-delay:-1.6s; }
.orbit-c { bottom:18%; left:3%; animation-delay:-3s; }
@keyframes float { 50%{transform:translateY(-10px)} }
.scroll-cue { position:absolute; left:clamp(22px,4vw,68px); bottom:28px; display:flex; align-items:center; gap:11px; font-size:.68rem; font-weight:600; z-index:2; }
.scroll-cue span { width:22px; height:34px; border:1px solid var(--line); border-radius:20px; position:relative; }
.scroll-cue span::after { content:''; width:3px; height:6px; background:var(--ink); border-radius:10px; position:absolute; top:8px; left:8px; animation:scrollCue 1.7s ease infinite; }
@keyframes scrollCue { 0%{opacity:0;transform:translateY(0)} 35%{opacity:1} 100%{opacity:0;transform:translateY(10px)} }

.section { padding:clamp(90px,11vw,160px) clamp(22px,6vw,100px); }
.section-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:8vw; align-items:end; margin-bottom:70px; }
.section-heading .eyebrow { grid-column:1/-1; margin-bottom:8px; }
.section-heading h2 { font-size:clamp(2.7rem,4.6vw,5.4rem); }
.section-heading > p:not(.eyebrow) { color:var(--muted); line-height:1.8; font-size:1rem; max-width:520px; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:rgba(255,255,255,.2); }
.service-card { min-height:415px; padding:28px; border-right:1px solid var(--line); display:flex; flex-direction:column; position:relative; transition:background .3s ease, color .3s ease, transform .3s ease; overflow:hidden; }
.service-card:last-child { border-right:0; }
.service-card::before { content:''; position:absolute; width:220px; height:220px; border-radius:50%; background:var(--teal); right:-110px; bottom:-140px; opacity:0; transition:.35s ease; }
.service-card:nth-child(3)::before { background:var(--yellow); }
.service-card:hover { background:var(--ink); color:var(--white); transform:translateY(-8px); z-index:2; box-shadow:var(--shadow); }
.service-card:hover::before { opacity:.16; bottom:-95px; }
.service-top { display:flex; justify-content:space-between; font-size:.7rem; font-weight:700; opacity:.7; }
.service-arrow { width:31px; height:31px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; opacity:.7; transition:transform .3s ease; }
.service-card:hover .service-arrow { transform:rotate(45deg); }
.line-icon { width:58px; height:58px; margin:70px 0 30px; position:relative; }
.line-icon::before, .line-icon::after { content:''; position:absolute; border:1.5px solid currentColor; opacity:.8; }
.icon-scan::before { width:42px; height:42px; border-radius:50%; left:1px; top:1px; }
.icon-scan::after { width:21px; height:1px; transform:rotate(45deg); right:0; bottom:9px; border-width:1.5px 0 0; }
.icon-academy::before { width:48px; height:31px; transform:rotate(45deg); top:8px; left:4px; border-radius:5px; }
.icon-academy::after { width:18px; height:18px; border-radius:50%; bottom:0; right:1px; background:var(--paper); }
.service-card:hover .icon-academy::after { background:var(--ink); }
.icon-coaching::before { width:46px; height:34px; border-radius:50% 50% 45% 45%; top:4px; left:4px; }
.icon-coaching::after { width:16px; height:22px; border-width:0 0 1.5px 1.5px; transform:rotate(-35deg); bottom:1px; left:22px; }
.icon-wellbeing::before { width:48px; height:48px; border-radius:50%; left:4px; top:4px; border-style:dashed; }
.icon-wellbeing::after { width:12px; height:12px; border-radius:50%; left:22px; top:22px; background:currentColor; }
.service-card h3 { font-size:1.22rem; margin:0 0 14px; }
.service-card p { margin:0; font-size:.79rem; line-height:1.75; color:var(--muted); transition:color .3s ease; }
.service-card:hover p { color:rgba(255,255,255,.68); }
.service-link { margin-top:auto; font-size:.71rem; font-weight:700; text-decoration:underline; text-underline-offset:5px; }

.about { background:var(--ink); color:var(--white); display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:clamp(50px,8vw,130px); align-items:center; }
.about-media { min-height:710px; position:relative; }
.image-frame { overflow:hidden; position:absolute; box-shadow:0 30px 80px rgba(0,0,0,.25); }
.image-frame img { width:100%; height:100%; object-fit:cover; }
.image-primary { width:78%; height:64%; right:0; top:3%; border-radius:24px 24px 180px 24px; }
.image-secondary { width:51%; height:47%; left:0; bottom:0; border-radius:150px 24px 24px 24px; border:9px solid var(--ink); }
.about-stamp { width:150px; height:150px; border-radius:50%; background:var(--yellow); color:var(--ink); position:absolute; right:-22px; bottom:7%; display:grid; place-items:center; z-index:2; }
.about-stamp svg { position:absolute; inset:7px; animation:spin 18s linear infinite; }
.about-stamp text { font-size:10px; letter-spacing:2.2px; font-weight:700; }
.about-stamp > span { font-size:1.8rem; }
@keyframes spin { to { transform:rotate(360deg); } }
.about-copy .eyebrow { color:var(--teal); }
.about-copy h2 { font-size:clamp(3rem,4.8vw,5.6rem); margin-bottom:40px; }
.about-copy p { color:rgba(255,255,255,.7); line-height:1.85; font-size:.94rem; margin:0 0 20px; max-width:700px; }
.about-copy strong { color:white; font-weight:600; }
.signature-line { display:flex; align-items:center; gap:18px; margin-top:38px; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; }
.signature-line span { width:48px; height:1px; background:var(--yellow); }

.manifesto { display:grid; grid-template-columns:.88fr 1.12fr; gap:9vw; padding:clamp(100px,12vw,170px) clamp(22px,6vw,100px); background:var(--white); }
.manifesto-panel { align-self:start; position:sticky; top:120px; }
.manifesto h2 { font-size:clamp(3rem,4.4vw,5rem); }
.manifesto-intro { max-width:500px; color:var(--muted); line-height:1.8; margin:30px 0 0; }
.principle { border-top:1px solid var(--line); }
.principle:last-child { border-bottom:1px solid var(--line); }
.principle button { width:100%; border:0; background:transparent; padding:30px 0; display:grid; grid-template-columns:60px 1fr 40px; align-items:center; text-align:left; cursor:pointer; }
.principle-number { font-size:.68rem; opacity:.55; }
.principle-title { font-size:1.4rem; font-weight:600; }
.principle-toggle { width:36px; height:36px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; font-size:1.1rem; }
.principle-body { max-height:0; overflow:hidden; opacity:0; transition:max-height .5s ease, opacity .35s ease, padding .35s ease; }
.principle-body p { color:var(--muted); line-height:1.9; margin:0; padding:0 0 30px 60px; max-width:780px; }
.principle.active .principle-body { max-height:430px; opacity:1; }
.principle.active .principle-title { color:var(--teal-dark); }

.focus-banner { min-height:740px; position:relative; display:flex; align-items:flex-end; overflow:hidden; }
.focus-media, .focus-overlay { position:absolute; inset:0; }
.focus-media img { width:100%; height:100%; object-fit:cover; object-position:center 32%; transform:scale(1.02); }
.focus-overlay { background:linear-gradient(90deg,rgba(5,19,25,.84) 0%,rgba(5,19,25,.58) 42%,rgba(5,19,25,.14) 78%), linear-gradient(to top,rgba(5,19,25,.55),transparent 55%); }
.focus-content { position:relative; z-index:2; color:white; padding:clamp(55px,7vw,105px) clamp(22px,6vw,100px); max-width:1100px; }
.eyebrow.light { color:rgba(255,255,255,.72); }
.focus-content h2 { font-size:clamp(3rem,5.3vw,6.3rem); margin-bottom:42px; }
.focus-content h2 em { color:var(--yellow); }

.testimonials { background:var(--paper-warm); }
.testimonial-head { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:60px; }
.testimonial-head h2 { font-size:clamp(3rem,4.6vw,5.4rem); }
.slider-controls { display:flex; align-items:center; gap:14px; }
.slider-controls button { width:46px; height:46px; border:1px solid var(--line); background:transparent; border-radius:50%; cursor:pointer; transition:.2s ease; }
.slider-controls button:hover { background:var(--ink); color:white; }
.slider-status { font-size:.68rem; min-width:50px; text-align:center; }
.testimonial-stage { min-height:420px; background:var(--white); border-radius:var(--radius); padding:clamp(36px,5vw,70px); position:relative; overflow:hidden; }
.quote-mark { font-family:Georgia,serif; font-size:10rem; line-height:.7; color:var(--teal); opacity:.35; position:absolute; right:5%; top:18px; }
.testimonial-track { position:relative; min-height:290px; }
.testimonial-slide { position:absolute; inset:0; opacity:0; transform:translateX(35px); pointer-events:none; transition:opacity .45s ease, transform .45s ease; display:flex; flex-direction:column; justify-content:space-between; }
.testimonial-slide.is-active { opacity:1; transform:translateX(0); pointer-events:auto; }
.testimonial-slide blockquote { font-size:clamp(1.35rem,2.1vw,2.2rem); line-height:1.45; letter-spacing:-.03em; max-width:1050px; margin:0 0 44px; font-weight:500; }
.quote-person { display:flex; flex-direction:column; gap:5px; font-size:.74rem; }
.quote-person span { color:var(--muted); }

.newsletter { padding-top:0; background:var(--paper-warm); }
.newsletter-shell { background:var(--teal); border-radius:var(--radius); padding:clamp(35px,5vw,70px); display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; position:relative; overflow:hidden; }
.newsletter-shell::after { content:''; position:absolute; width:340px; height:340px; border:70px solid rgba(255,255,255,.16); border-radius:50%; left:-180px; bottom:-220px; }
.newsletter-copy, .newsletter-form { position:relative; z-index:1; }
.newsletter-copy h2 { font-size:clamp(2.1rem,3vw,3.6rem); line-height:1.12; letter-spacing:-.045em; margin:0 0 18px; }
.newsletter-copy p:not(.eyebrow) { color:rgba(18,39,51,.7); line-height:1.7; }
.newsletter-form, .contact-form { display:grid; gap:16px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
label { display:grid; gap:7px; font-size:.66rem; font-weight:700; }
input, textarea { width:100%; border:1px solid rgba(18,39,51,.17); background:rgba(255,255,255,.7); padding:14px 15px; border-radius:12px; outline:none; color:var(--ink); transition:border .2s ease, box-shadow .2s ease, background .2s ease; }
textarea { resize:vertical; }
input:focus, textarea:focus { border-color:var(--ink); box-shadow:0 0 0 3px rgba(18,39,51,.08); background:white; }
.newsletter-form .button { justify-self:start; margin-top:3px; }
.form-message { font-size:.73rem; margin:0; min-height:1em; font-weight:600; }

.contact { display:grid; grid-template-columns:.9fr 1.1fr; gap:8vw; align-items:start; background:var(--white); }
.contact-copy { position:sticky; top:120px; }
.contact-copy h2 { font-size:clamp(3rem,4.5vw,5.2rem); }
.contact-copy > p:not(.eyebrow) { color:var(--muted); line-height:1.8; max-width:540px; margin:30px 0 40px; }
.contact-details { display:grid; border-top:1px solid var(--line); }
.contact-details a { display:grid; grid-template-columns:100px 1fr 30px; align-items:center; padding:19px 0; border-bottom:1px solid var(--line); font-size:.74rem; }
.contact-details a span { color:var(--muted); }
.contact-details a strong { font-weight:600; }
.contact-details a b { transition:transform .2s ease; }
.contact-details a:hover b { transform:translate(3px,-3px); }
.contact-form { border:1px solid var(--line); padding:clamp(28px,4vw,52px); border-radius:var(--radius); background:var(--paper); }
.contact-form input, .contact-form textarea { background:var(--white); }
.contact-form .button { justify-self:start; margin-top:6px; }
.form-note { font-size:.66rem; color:var(--muted); margin:0; }

.site-footer { background:var(--ink-deep); color:white; padding:58px clamp(22px,6vw,100px) 28px; }
.footer-main { display:grid; grid-template-columns:1fr 1fr 1fr; gap:30px; align-items:start; padding-bottom:54px; }
.footer-brand .brand-mark i { border-color:var(--teal); }
.footer-brand .brand-mark i:nth-child(3) { border-color:var(--yellow); }
.footer-main p { margin:4px 0; color:rgba(255,255,255,.58); font-size:.8rem; }
.footer-links { display:flex; justify-content:flex-end; gap:20px; font-size:.7rem; }
.footer-links a:hover { color:var(--yellow); }
.footer-meta { padding-top:22px; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; gap:20px; color:rgba(255,255,255,.45); font-size:.62rem; }
.footer-meta div { display:flex; gap:18px; }
.footer-meta a:hover { color:white; }
.back-top { position:fixed; right:24px; bottom:24px; width:44px; height:44px; border-radius:50%; border:0; background:var(--ink); color:white; box-shadow:0 10px 30px rgba(18,39,51,.18); cursor:pointer; opacity:0; pointer-events:none; transform:translateY(12px); transition:.25s ease; z-index:70; }
.back-top.show { opacity:1; pointer-events:auto; transform:none; }

.reveal { opacity:0; transform:translateY(25px); transition:opacity .75s cubic-bezier(.2,.65,.2,1), transform .75s cubic-bezier(.2,.65,.2,1); transition-delay:var(--delay,0ms); }
.reveal.in-view { opacity:1; transform:none; }

@media (max-width: 1050px) {
  .main-nav { gap:16px; }
  .main-nav > a:not(.nav-cta):nth-child(3), .main-nav > a:not(.nav-cta):nth-child(4) { display:none; }
  .hero { grid-template-columns:1fr .9fr; gap:30px; padding-left:38px; padding-right:38px; }
  .hero-proof { grid-template-columns:1fr 1fr; }
  .hero-proof div:last-child { display:none; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .service-card { border-bottom:1px solid var(--line); }
  .service-card:nth-child(2) { border-right:0; }
  .service-card:nth-child(3), .service-card:nth-child(4) { border-bottom:0; }
  .about { grid-template-columns:1fr; }
  .about-media { max-width:720px; width:100%; margin:auto; }
  .manifesto { gap:5vw; }
}

@media (max-width: 760px) {
  .site-header { height:70px; padding:0 20px; }
  .menu-toggle { display:block; }
  .main-nav { position:fixed; inset:0; background:var(--paper); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:80px 28px; gap:0; transform:translateX(100%); transition:transform .36s cubic-bezier(.2,.7,.2,1); font-size:1.5rem; }
  .main-nav.open { transform:none; }
  .main-nav > a:not(.nav-cta), .main-nav > a:not(.nav-cta):nth-child(3), .main-nav > a:not(.nav-cta):nth-child(4) { display:block; width:100%; padding:17px 0; border-bottom:1px solid var(--line); }
  .main-nav > a:not(.nav-cta)::after { display:none; }
  .nav-cta { margin-top:30px; font-size:.9rem; }
  .hero { min-height:auto; grid-template-columns:1fr; padding:110px 20px 80px; }
  .hero h1 { font-size:clamp(3.15rem,15vw,5.2rem); }
  .hero-lede { font-size:.95rem; }
  .hero-proof { margin-top:38px; }
  .hero-visual { min-height:520px; margin-top:10px; }
  .hero-photo-wrap { width:83%; max-width:390px; }
  .orbit-a { left:1%; top:14%; }
  .orbit-b { right:0; top:38%; }
  .orbit-c { left:5%; bottom:12%; }
  .scroll-cue { display:none; }
  .section { padding:82px 20px; }
  .section-heading { grid-template-columns:1fr; gap:24px; margin-bottom:45px; }
  .section-heading h2 { font-size:clamp(2.7rem,12vw,4.2rem); }
  .service-grid { grid-template-columns:1fr; border-radius:20px; }
  .service-card { min-height:340px; border-right:0; border-bottom:1px solid var(--line)!important; }
  .service-card:last-child { border-bottom:0!important; }
  .line-icon { margin-top:45px; }
  .about { padding:82px 20px; }
  .about-media { min-height:560px; }
  .image-primary { width:84%; height:61%; }
  .image-secondary { width:55%; height:43%; }
  .about-stamp { width:118px; height:118px; right:-5px; }
  .about-copy h2 { font-size:clamp(3rem,12vw,4.5rem); }
  .manifesto { grid-template-columns:1fr; padding:82px 20px; }
  .manifesto-panel { position:static; }
  .principle button { grid-template-columns:42px 1fr 40px; }
  .principle-title { font-size:1.15rem; }
  .principle-body p { padding-left:42px; }
  .focus-banner { min-height:650px; }
  .focus-overlay { background:linear-gradient(to top,rgba(5,19,25,.9),rgba(5,19,25,.28) 85%); }
  .focus-content { padding:50px 20px; }
  .focus-content h2 { font-size:clamp(3rem,12vw,4.7rem); }
  .testimonial-head { align-items:flex-start; flex-direction:column; }
  .testimonial-stage { min-height:570px; padding:35px 25px; }
  .testimonial-track { min-height:480px; }
  .testimonial-slide blockquote { font-size:1.25rem; }
  .newsletter { padding-top:0; }
  .newsletter-shell { grid-template-columns:1fr; gap:35px; border-radius:20px; padding:34px 22px; }
  .form-row { grid-template-columns:1fr; }
  .contact { grid-template-columns:1fr; }
  .contact-copy { position:static; }
  .contact-copy h2 { font-size:clamp(3rem,12vw,4.4rem); }
  .footer-main { grid-template-columns:1fr; }
  .footer-links { justify-content:flex-start; flex-wrap:wrap; }
  .footer-meta { flex-direction:column; }
  .footer-meta div { flex-wrap:wrap; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}

/* ===== V2 refinement: calmer opening + original-brand accent treatment ===== */
:root {
  /* Insightful's familiar aqua + warm yellow accent family */
  --brand-aqua: #63b9c6;
  --brand-aqua-deep: #319aaa;
  --brand-yellow: #f2c44a;
  --teal: var(--brand-aqua);
  --teal-dark: var(--brand-aqua-deep);
  --yellow: var(--brand-yellow);
}

.brand { gap: 10px; letter-spacing: 0; }
.brand-logo {
  width: 38px;
  height: 38px;
  object-fit: contain;
  display: block;
}
.brand-word {
  font-size: 1.08rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .02em;
}

/* Hero: deliberately static and legible; no floating ornaments. */
.hero.hero-clean {
  min-height: min(860px, 100svh);
  padding-top: 126px;
  padding-bottom: 72px;
  grid-template-columns: minmax(0, 1.02fr) minmax(380px, .78fr);
  gap: clamp(44px, 7vw, 112px);
  max-width: 1600px;
  margin: 0 auto;
  overflow: visible;
}
.hero-clean::before {
  content: '';
  position: absolute;
  left: clamp(22px,6vw,100px);
  right: clamp(22px,6vw,100px);
  bottom: 0;
  height: 1px;
  background: var(--line);
}
.hero-clean .hero-copy { max-width: 790px; }
.hero-clean .eyebrow { margin-bottom: 22px; }
.hero-clean h1 {
  font-size: clamp(3.9rem, 6.1vw, 7.2rem);
  max-width: 900px;
  line-height: .96;
}
.hero-clean h1 em { color: var(--brand-aqua-deep); }
.hero-clean .hero-lede {
  max-width: 625px;
  margin: 28px 0 30px;
  font-size: clamp(1.02rem,1.3vw,1.18rem);
}
.hero-clean .button-primary { background: var(--ink); }
.hero-clean .button-primary:hover { background: var(--brand-aqua-deep); }
.hero-principles {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  padding-top: 34px;
  margin-top: 34px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .74rem;
  font-weight: 600;
}
.hero-principles span { display: inline-flex; align-items: center; gap: 9px; }
.hero-principles span::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--brand-yellow);
  flex: 0 0 auto;
}
.hero-clean .hero-visual {
  min-height: 0;
  display: block;
}
.hero-clean .hero-photo-wrap {
  width: 100%;
  max-width: 550px;
  margin-left: auto;
  aspect-ratio: .82;
  border-radius: 34px;
  overflow: hidden;
  box-shadow: 0 28px 70px rgba(13,37,47,.14);
  position: relative;
  background: var(--paper-warm);
}
.hero-clean .hero-photo-wrap::before {
  content: '';
  position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  width: 74px;
  height: 8px;
  background: var(--brand-yellow);
}
.hero-clean .hero-photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
  transform: none;
}
.hero-clean .hero-photo-wrap figcaption {
  position: absolute;
  z-index: 3;
  left: 24px;
  right: 24px;
  bottom: 22px;
  padding: 17px 18px;
  border-radius: 14px;
  background: rgba(255,254,251,.93);
  backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  gap: 3px;
  box-shadow: 0 12px 35px rgba(18,39,51,.1);
}
.hero-clean .hero-photo-wrap figcaption strong { font-size: .9rem; }
.hero-clean .hero-photo-wrap figcaption span { font-size: .72rem; color: var(--muted); }

/* Second section: one clear intro + stable service rows. */
.service-clean {
  display: grid;
  grid-template-columns: minmax(280px,.72fr) minmax(520px,1.28fr);
  gap: clamp(55px,8vw,140px);
  align-items: start;
  background: var(--white);
}
.service-intro-copy { position: sticky; top: 120px; }
.service-intro-copy h2 {
  font-size: clamp(2.75rem,4.5vw,5.15rem);
  line-height: .98;
  letter-spacing: -.055em;
  margin: 0 0 28px;
  font-weight: 500;
}
.service-intro-copy h2 em {
  font-family: var(--serif);
  font-weight: 500;
  color: var(--brand-aqua-deep);
}
.service-intro-copy > p:not(.eyebrow) {
  margin: 0;
  color: var(--muted);
  max-width: 500px;
  line-height: 1.8;
}
.service-list {
  border-top: 1px solid var(--line);
}
.service-row {
  min-height: 156px;
  display: grid;
  grid-template-columns: 54px minmax(0,1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  transition: background .25s ease, padding .25s ease;
  position: relative;
}
.service-row::before {
  content: '';
  position: absolute;
  left: 0;
  top: -1px;
  bottom: -1px;
  width: 4px;
  background: transparent;
  transition: background .25s ease;
}
.service-row:hover {
  padding-left: 22px;
  padding-right: 18px;
  background: #f9f8f3;
}
.service-row:hover::before { background: var(--brand-aqua); }
.service-row:nth-child(3):hover::before { background: var(--brand-yellow); }
.service-number {
  font-size: .7rem;
  letter-spacing: .12em;
  color: var(--brand-aqua-deep);
  font-weight: 700;
}
.service-row:nth-child(3) .service-number { color: #b48712; }
.service-row-copy h3 {
  font-size: clamp(1.25rem,1.7vw,1.65rem);
  margin: 0 0 7px;
  letter-spacing: -.025em;
}
.service-row-copy p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
  max-width: 670px;
  font-size: .88rem;
}
.service-row-action {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}
.service-row-action b {
  width: 35px;
  height: 35px;
  border-radius: 50%;
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  font-weight: 500;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.service-row:hover .service-row-action b {
  background: var(--ink);
  border-color: var(--ink);
  color: white;
}

@media (max-width: 1050px) {
  .hero.hero-clean { grid-template-columns: 1fr .82fr; padding-left: 38px; padding-right: 38px; }
  .service-clean { grid-template-columns: 1fr; gap: 50px; }
  .service-intro-copy { position: static; max-width: 780px; }
}

@media (max-width: 760px) {
  .brand-logo { width: 34px; height: 34px; }
  .brand-word { font-size: 1rem; }
  .hero.hero-clean {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 108px 20px 66px;
    gap: 42px;
  }
  .hero-clean::before { left: 20px; right: 20px; }
  .hero-clean h1 { font-size: clamp(3.05rem,14vw,5rem); }
  .hero-principles { gap: 11px 18px; margin-top: 30px; padding-top: 26px; }
  .hero-clean .hero-photo-wrap { max-width: 100%; border-radius: 24px; aspect-ratio: .92; }
  .service-clean { padding-top: 78px; padding-bottom: 80px; }
  .service-intro-copy h2 { font-size: clamp(2.7rem,12vw,4.2rem); }
  .service-row {
    grid-template-columns: 38px minmax(0,1fr) 38px;
    gap: 12px;
    min-height: 0;
    padding: 24px 0;
  }
  .service-row:hover { padding-left: 10px; padding-right: 8px; }
  .service-row-copy p { font-size: .82rem; }
  .service-row-action { font-size: 0; }
  .service-row-action b { font-size: .8rem; width: 34px; height: 34px; }
}


/* ===== V3: editorial proof section, language control + secondary pages ===== */
.site-header { gap: 22px; }
.main-nav { margin-left:auto; }
.lang-switch { position:relative; }
.lang-toggle { border:0; background:transparent; min-width:46px; padding:10px 5px; cursor:pointer; display:flex; align-items:center; gap:5px; font-size:.72rem; font-weight:800; letter-spacing:.08em; }
.lang-toggle span { font-size:.7rem; transition:transform .2s ease; }
.lang-switch.open .lang-toggle span { transform:rotate(180deg); }
.lang-menu { position:absolute; top:calc(100% + 8px); right:0; width:176px; padding:7px; border:1px solid var(--line); border-radius:15px; background:rgba(255,254,251,.98); box-shadow:0 18px 50px rgba(13,37,47,.13); opacity:0; visibility:hidden; transform:translateY(-5px); transition:.2s ease; }
.lang-switch.open .lang-menu { opacity:1; visibility:visible; transform:none; }
.lang-menu a { display:flex; justify-content:space-between; align-items:center; gap:18px; border-radius:10px; padding:10px 11px; font-size:.7rem; }
.lang-menu a:hover { background:var(--paper); }
.lang-menu a.is-current { color:var(--brand-aqua-deep); }
.lang-menu b { font-size:.62rem; letter-spacing:.08em; }

.testimonials-v3 { background:var(--paper-warm); }
.testimonial-kicker { display:grid; grid-template-columns:.55fr 1fr; gap:8vw; align-items:start; margin-bottom:48px; }
.testimonial-kicker .eyebrow { margin:5px 0 0; }
.testimonial-intro { margin:0 0 0 auto; max-width:680px; color:var(--muted); line-height:1.8; font-size:clamp(.96rem,1.25vw,1.08rem); }
.testimonial-editorial { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr); min-height:640px; border:1px solid var(--line); border-radius:30px; overflow:hidden; background:var(--white); box-shadow:0 24px 70px rgba(13,37,47,.07); }
.testimonial-feature { padding:clamp(38px,5.5vw,82px); display:flex; flex-direction:column; min-height:640px; background:var(--ink); color:var(--white); position:relative; overflow:hidden; }
.testimonial-feature::after { content:''; position:absolute; width:390px; height:390px; border-radius:50%; border:85px solid rgba(99,185,198,.10); right:-190px; bottom:-215px; }
.testimonial-feature-top { display:flex; align-items:start; justify-content:space-between; position:relative; z-index:1; }
.quote-label { text-transform:uppercase; letter-spacing:.18em; font-size:.64rem; color:rgba(255,255,255,.52); font-weight:700; }
.quote-symbol { color:var(--brand-yellow); font-family:Georgia,serif; font-size:6.8rem; line-height:.58; }
.testimonial-feature blockquote { margin:clamp(50px,7vh,82px) 0 65px; font-size:clamp(1.55rem,2.35vw,2.75rem); line-height:1.4; letter-spacing:-.035em; font-weight:500; max-width:920px; position:relative; z-index:1; transition:opacity .18s ease, transform .18s ease; }
.testimonial-feature.is-switching blockquote, .testimonial-feature.is-switching .quote-person-feature { opacity:0; transform:translateY(7px); }
.quote-person-feature { margin-top:auto; display:flex; align-items:center; gap:15px; position:relative; z-index:1; transition:opacity .18s ease, transform .18s ease; }
.person-monogram { width:48px; height:48px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; background:var(--brand-aqua); color:var(--ink); font-size:.72rem; font-weight:800; }
.quote-person-feature div { display:flex; flex-direction:column; gap:4px; }
.quote-person-feature strong { font-size:.84rem; }
.quote-person-feature span:not(.person-monogram) { color:rgba(255,255,255,.55); font-size:.69rem; }
.testimonial-side { display:flex; flex-direction:column; padding:clamp(34px,4vw,60px); }
.testimonial-heading-block { padding-bottom:32px; border-bottom:1px solid var(--line); }
.testimonial-heading-block h2 { font-size:clamp(2.7rem,4vw,4.8rem); line-height:.96; letter-spacing:-.055em; margin:0 0 18px; font-weight:500; }
.testimonial-heading-block h2 em { font-family:var(--serif); color:var(--brand-aqua-deep); font-weight:500; }
.testimonial-heading-block p { margin:0; color:var(--muted); font-size:.76rem; }
.testimonial-people { display:grid; }
.testimonial-person { border:0; border-bottom:1px solid var(--line); background:none; padding:21px 0; display:grid; grid-template-columns:34px 1fr 26px; gap:11px; align-items:center; text-align:left; cursor:pointer; color:var(--ink); transition:padding .2s ease; }
.testimonial-person:hover { padding-left:7px; }
.testimonial-person.is-active { color:var(--brand-aqua-deep); }
.testimonial-person .person-number { font-size:.62rem; color:var(--muted); }
.testimonial-person > span:nth-child(2) { display:flex; flex-direction:column; gap:3px; }
.testimonial-person strong { font-size:.78rem; color:var(--ink); }
.testimonial-person small { color:var(--muted); font-size:.63rem; }
.testimonial-person b { font-weight:500; transition:transform .2s ease; }
.testimonial-person:hover b, .testimonial-person.is-active b { transform:translate(3px,-3px); }
.testimonial-note { margin-top:auto; padding-top:30px; color:var(--muted); font-size:.62rem; line-height:1.6; display:flex; gap:9px; align-items:flex-start; }
.testimonial-note span { width:8px; height:8px; border-radius:50%; background:var(--brand-yellow); flex:0 0 auto; margin-top:2px; }

/* Interior pages */
body.inner-page { background:var(--white); }
.inner-page .site-header:not(.is-scrolled) { background:rgba(255,254,251,.82); backdrop-filter:blur(14px); }
.page-hero { padding:145px clamp(22px,6vw,100px) 78px; min-height:700px; display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.78fr); gap:7vw; align-items:center; background:var(--paper); }
.page-hero-copy { max-width:800px; }
.page-hero h1 { margin:0; font-size:clamp(3.7rem,6.2vw,7.2rem); line-height:.94; letter-spacing:-.06em; font-weight:500; }
.page-hero h1 em { font-family:var(--serif); color:var(--brand-aqua-deep); font-weight:500; }
.page-hero .lede { max-width:680px; margin:28px 0 34px; color:var(--muted); font-size:clamp(1rem,1.25vw,1.15rem); line-height:1.8; }
.page-hero-media { border-radius:30px; overflow:hidden; height:min(62vw,570px); min-height:450px; position:relative; box-shadow:var(--shadow); }
.page-hero-media img { width:100%; height:100%; object-fit:cover; }
.page-hero-media::after { content:''; position:absolute; inset:auto 0 0; height:7px; background:linear-gradient(90deg,var(--brand-aqua) 0 68%,var(--brand-yellow) 68%); }
.page-strip { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); border-top:1px solid var(--line); background:var(--white); }
.page-strip > div { padding:23px clamp(22px,4vw,60px); border-right:1px solid var(--line); }
.page-strip > div:last-child { border-right:0; }
.page-strip span { display:block; color:var(--muted); font-size:.62rem; text-transform:uppercase; letter-spacing:.15em; margin-bottom:5px; }
.page-strip strong { font-size:.84rem; }
.content-intro { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; align-items:start; }
.content-intro h2, .content-section h2, .programme-grid h2 { font-size:clamp(2.8rem,4.5vw,5rem); line-height:1; letter-spacing:-.055em; margin:0; font-weight:500; }
.content-intro h2 em, .content-section h2 em, .programme-grid h2 em { font-family:var(--serif); color:var(--brand-aqua-deep); font-weight:500; }
.rich-copy { max-width:760px; color:var(--muted); line-height:1.85; }
.rich-copy p:first-child { margin-top:0; }
.rich-copy strong { color:var(--ink); }
.programme-grid { background:var(--paper); }
.programme-head { display:grid; grid-template-columns:.7fr 1.3fr; gap:7vw; align-items:end; margin-bottom:55px; }
.programme-head p { color:var(--muted); line-height:1.8; max-width:620px; margin:0; }
.programme-cards { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.programme-card { min-height:320px; padding:38px 36px; border-bottom:1px solid var(--line); border-right:1px solid var(--line); display:flex; flex-direction:column; gap:17px; }
.programme-card:nth-child(2n) { border-right:0; }
.programme-card .num { color:var(--brand-aqua-deep); font-size:.65rem; font-weight:800; letter-spacing:.15em; }
.programme-card h3 { font-size:1.65rem; margin:20px 0 0; letter-spacing:-.03em; }
.programme-card p { color:var(--muted); line-height:1.7; margin:0; font-size:.88rem; }
.programme-card .meta { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); display:flex; gap:10px 26px; flex-wrap:wrap; font-size:.67rem; font-weight:700; }
.expect-list { display:grid; border-top:1px solid var(--line); }
.expect-item { display:grid; grid-template-columns:48px 1fr; gap:20px; padding:23px 0; border-bottom:1px solid var(--line); }
.expect-item b { width:30px; height:30px; border-radius:50%; background:var(--brand-aqua); display:grid; place-items:center; font-size:.7rem; }
.expect-item h3 { margin:0 0 6px; font-size:1.05rem; }
.expect-item p { margin:0; color:var(--muted); line-height:1.7; font-size:.84rem; }
.content-split { display:grid; grid-template-columns:1fr 1fr; gap:7vw; align-items:center; }
.content-image { min-height:560px; border-radius:28px; overflow:hidden; }
.content-image img { width:100%; height:100%; object-fit:cover; }
.format-list { display:grid; gap:12px; margin-top:35px; }
.format-row { padding:19px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:100px 1fr; gap:20px; }
.format-row strong { font-size:.78rem; }
.format-row span { color:var(--muted); line-height:1.65; font-size:.84rem; }
.page-cta { margin:0 clamp(22px,6vw,100px) clamp(70px,8vw,120px); border-radius:30px; padding:clamp(40px,6vw,82px); background:var(--ink); color:white; display:grid; grid-template-columns:1.2fr .8fr; gap:6vw; align-items:end; }
.page-cta h2 { margin:0; font-size:clamp(2.6rem,4.5vw,5rem); line-height:.98; letter-spacing:-.055em; font-weight:500; }
.page-cta h2 em { color:var(--brand-aqua); font-family:var(--serif); font-weight:500; }
.page-cta p { color:rgba(255,255,255,.6); line-height:1.7; }
.page-cta .button { margin-top:10px; }

@media (max-width:1120px) {
  .main-nav > a:nth-child(3), .main-nav > a:nth-child(4) { display:none; }
  .testimonial-editorial { grid-template-columns:1fr; }
  .testimonial-feature { min-height:520px; }
  .testimonial-side { min-height:480px; }
  .testimonial-kicker { grid-template-columns:1fr; gap:14px; }
  .testimonial-intro { margin:0; }
}
@media (max-width:760px) {
  .lang-switch { width:100%; border-bottom:1px solid var(--line); }
  .lang-toggle { padding:17px 0; width:100%; justify-content:space-between; font-size:.88rem; }
  .lang-menu { position:static; width:100%; box-shadow:none; border:0; background:transparent; padding:0 0 12px; display:none; opacity:1; visibility:visible; transform:none; }
  .lang-switch.open .lang-menu { display:block; }
  .lang-menu a { padding:9px 0; }
  .testimonial-editorial { border-radius:22px; }
  .testimonial-feature { min-height:560px; padding:32px 25px; }
  .testimonial-feature blockquote { font-size:1.45rem; margin-top:48px; }
  .testimonial-side { padding:32px 24px; }
  .testimonial-heading-block h2 { font-size:3rem; }
  .testimonial-kicker { margin-bottom:30px; }
  .page-hero { grid-template-columns:1fr; padding:112px 20px 60px; min-height:0; }
  .page-hero h1 { font-size:clamp(3.1rem,14vw,5.1rem); }
  .page-hero-media { height:440px; min-height:0; }
  .page-strip { grid-template-columns:1fr; }
  .page-strip > div { border-right:0; border-bottom:1px solid var(--line); }
  .page-strip > div:last-child { border-bottom:0; }
  .content-intro, .programme-head, .content-split, .page-cta { grid-template-columns:1fr; gap:35px; }
  .programme-cards { grid-template-columns:1fr; }
  .programme-card { border-right:0; min-height:280px; padding:30px 0; }
  .content-image { min-height:440px; }
  .page-cta { margin-left:20px; margin-right:20px; border-radius:22px; }
}

.main-nav > a.is-current-page:not(.nav-cta)::after { width:100%; background:var(--brand-aqua-deep); }


/* ============================================================
   V4 — larger scale + distinct image-led interior page heroes
   ============================================================ */
:root {
  --display-max: 8.8rem;
}
body { font-size: 17px; }
.site-header { height: 98px; padding-inline: clamp(28px,4.2vw,78px); }
.site-header.is-scrolled { height: 78px; }
.brand { gap: 13px; font-size: 1rem; letter-spacing: .13em; }
.brand-logo { width: 42px; height: 42px; }
.main-nav { gap: clamp(22px,2.25vw,40px); font-size: .94rem; }
.main-nav > a:not(.nav-cta) { padding: 13px 0; }
.nav-cta { padding: 14px 20px; }
.lang-toggle { font-size: .91rem; }

.section { padding: clamp(110px,12vw,185px) clamp(28px,6.3vw,112px); }
.eyebrow { font-size: .76rem; margin-bottom: 28px; }
.button { min-height: 57px; padding-inline: 26px; font-size: .88rem; }
.hero.hero-clean { padding-top: 150px; padding-bottom: 92px; gap: clamp(50px,6vw,110px); }
.hero-clean h1 { font-size: clamp(4.5rem,6.65vw,8rem); }
.hero-clean .hero-lede { font-size: clamp(1.08rem,1.45vw,1.35rem); max-width: 720px; }
.hero-principles { font-size: .84rem; gap: 13px 32px; padding-top: 39px; margin-top: 39px; }
.hero-clean .hero-photo-wrap { max-width: 620px; }
.service-intro-copy h2 { font-size: clamp(3.5rem,5.5vw,6.6rem); }
.service-intro-copy > p:last-child { font-size: 1.06rem; line-height: 1.85; }
.service-row { min-height: 132px; }
.service-row h3 { font-size: clamp(1.35rem,1.8vw,1.85rem); }
.service-row p { font-size: .94rem; max-width: 660px; }
.service-number, .service-row-action { font-size: .78rem; }
.about-copy p { font-size: 1.02rem; line-height: 1.9; }
.about-copy h2, .manifesto h2, .focus-content h2, .contact-copy h2 { font-size: clamp(3.7rem,5.4vw,6.5rem); }
.principle-title { font-size: clamp(1.25rem,1.6vw,1.55rem); }
.principle-body p { font-size: .98rem; line-height: 1.9; }
.focus-content p { font-size: 1.12rem; }
.testimonial-heading-block h2 { font-size: clamp(3.3rem,4.5vw,5.5rem); }
.testimonial-feature blockquote { font-size: clamp(1.8rem,2.75vw,3.25rem); max-width: 1060px; }
.testimonial-person strong { font-size: .9rem; }
.testimonial-person small { font-size: .72rem; }
.newsletter-shell h2 { font-size: clamp(2.7rem,4vw,4.5rem); }
.contact-copy > p { font-size: 1.03rem; }

/* Interior page canvas: remove the grey-template feeling. */
body.inner-page { background: var(--white); }
.inner-page main { overflow: hidden; }
.inner-page .section { position: relative; }
.inner-page .page-strip { position: relative; z-index: 5; }
.page-strip > div { padding: 30px clamp(28px,4vw,68px); }
.page-strip span { font-size: .7rem; }
.page-strip strong { font-size: 1rem; }
.content-intro { gap: 10vw; }
.content-intro h2, .content-section h2, .programme-grid h2 { font-size: clamp(3.45rem,5.2vw,6.15rem); }
.rich-copy { font-size: 1.04rem; max-width: 800px; }
.programme-grid {
  background:
    radial-gradient(circle at 88% 9%, rgba(131,200,209,.18), transparent 27%),
    linear-gradient(180deg, #fffefb 0%, #f6f3ec 100%);
}
.programme-head { margin-bottom: 70px; }
.programme-head p { font-size: 1.04rem; }
.programme-cards { gap: 18px; border-top: 0; }
.programme-card {
  min-height: 390px;
  padding: 46px 44px;
  border: 1px solid var(--line) !important;
  border-radius: 26px;
  background: rgba(255,254,251,.82);
  box-shadow: 0 16px 50px rgba(18,39,51,.055);
  transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
  overflow: hidden;
  position: relative;
}
.programme-card::after {
  content:''; position:absolute; width:150px; height:150px; border-radius:50%;
  right:-72px; top:-70px; background:rgba(131,200,209,.22); transition:.28s ease;
}
.programme-card:nth-child(3n+2)::after { background: rgba(245,187,24,.22); }
.programme-card:hover { transform: translateY(-7px); box-shadow: 0 28px 65px rgba(18,39,51,.11); background:#fff; }
.programme-card:hover::after { transform:scale(1.18); }
.programme-card .num { font-size:.73rem; }
.programme-card h3 { font-size: clamp(1.7rem,2.2vw,2.2rem); margin-top: 27px; }
.programme-card p { font-size: .98rem; line-height: 1.78; }
.programme-card .meta { font-size: .74rem; }
.expect-item { padding: 29px 0; }
.expect-item h3 { font-size: 1.2rem; }
.expect-item p { font-size: .94rem; }
.content-image { min-height: 650px; box-shadow: var(--shadow); }
.format-row { padding: 25px 0; grid-template-columns: 125px 1fr; }
.format-row strong { font-size: .9rem; }
.format-row span { font-size: .96rem; }
.page-cta { padding: clamp(58px,6vw,94px); }
.page-cta h2 { font-size: clamp(3.25rem,5vw,5.9rem); }
.page-cta p { font-size: 1.02rem; }

/* Shared hero anatomy */
.visual-hero { position:relative; min-height: 900px; padding-top: 98px; overflow:hidden; }
.visual-hero h1 { margin:0; font-weight:500; letter-spacing:-.065em; line-height:.9; }
.visual-hero h1 em { font-family:var(--serif); font-weight:500; }
.visual-hero .lede { font-size:clamp(1.08rem,1.42vw,1.33rem); line-height:1.75; }
.hero-ghost-word { position:absolute; z-index:2; font-size:clamp(7rem,16vw,18rem); font-weight:700; letter-spacing:-.075em; line-height:.75; pointer-events:none; white-space:nowrap; user-select:none; }
.button-glass { border:1px solid rgba(255,255,255,.42); background:rgba(255,255,255,.08); color:#fff; backdrop-filter:blur(14px); }
.button-glass:hover { background:rgba(255,255,255,.18); }

/* Academy — cinematic full-bleed image */
.academy-hero { min-height: 940px; display:flex; align-items:flex-end; color:#fff; padding: 155px clamp(28px,6.3vw,112px) 105px; background:#0b1b23; }
.visual-hero-media, .visual-hero-shade { position:absolute; inset:0; }
.visual-hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 42%; transform:scale(1.015); }
.academy-hero .visual-hero-shade {
  background:
    linear-gradient(90deg, rgba(7,24,31,.88) 0%, rgba(7,24,31,.64) 44%, rgba(7,24,31,.12) 76%),
    linear-gradient(0deg, rgba(7,24,31,.58) 0%, rgba(7,24,31,0) 55%);
  z-index:1;
}
.academy-hero .visual-hero-copy { position:relative; z-index:4; max-width:1000px; }
.academy-hero .eyebrow { color:var(--brand-yellow); }
.academy-hero h1 { font-size:clamp(5rem,8.2vw,10rem); max-width:1050px; }
.academy-hero h1 em { color:var(--brand-aqua); }
.academy-hero .lede { max-width:700px; color:rgba(255,255,255,.83); margin:34px 0 36px; }
.academy-hero .hero-overlap-note {
  position:absolute; z-index:5; right:clamp(30px,6.3vw,112px); bottom:88px;
  width:min(31vw,370px); padding:25px 26px; background:var(--brand-yellow); color:var(--ink);
  border-radius:18px; box-shadow:0 24px 60px rgba(0,0,0,.22); transform:rotate(-2deg);
}
.hero-overlap-note span { display:block; text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; margin-bottom:6px; }
.hero-overlap-note strong { font-size:1.08rem; }
.academy-hero .hero-ghost-word { color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.12); right:-2vw; top:150px; }

/* Scan — editorial image stage + overlapping card */
.scan-hero { min-height: 980px; padding: 150px clamp(28px,6.3vw,112px) 110px; background:#eef8f8; }
.scan-stage { width:75%; height:700px; margin-left:auto; position:relative; overflow:hidden; border-radius:34px; box-shadow:0 30px 80px rgba(13,37,47,.16); }
.scan-stage-image { width:100%; height:100%; object-fit:cover; object-position:center; }
.scan-gradient { position:absolute; inset:0; background:linear-gradient(110deg,rgba(11,27,35,.05),rgba(11,27,35,.38)); }
.scan-index { position:absolute; top:26px; right:28px; padding:12px 15px; border-radius:100px; background:rgba(255,255,255,.9); color:var(--ink); font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.scan-copy-card {
  position:absolute; z-index:5; left:clamp(28px,6.3vw,112px); bottom:70px;
  width:min(59vw,860px); padding:clamp(42px,5.2vw,76px); background:rgba(255,254,251,.97);
  border-radius:28px; box-shadow:0 32px 90px rgba(13,37,47,.18); border-left:8px solid var(--brand-yellow);
}
.scan-copy-card h1 { font-size:clamp(4.4rem,6.7vw,8rem); }
.scan-copy-card h1 em { color:var(--brand-aqua-deep); }
.scan-copy-card .lede { max-width:720px; color:var(--muted); margin:28px 0 34px; }
.scan-hero .scan-word { left:-2vw; top:125px; color:rgba(76,167,180,.12); z-index:0; }
.scan-page .page-strip { border-top:0; }

/* Coaching — aqua editorial split, with headline crossing the portrait */
.coaching-hero {
  min-height: 920px; padding: 160px clamp(28px,6.3vw,112px) 100px;
  display:grid; grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr); gap:clamp(20px,3vw,50px); align-items:center;
  background:linear-gradient(120deg,#d9f0f1 0%,#eef7f4 52%,#f9e6a8 150%);
}
.coaching-copy { position:relative; z-index:5; padding-right:0; }
.coaching-copy h1 { font-size:clamp(4.7rem,7.4vw,9rem); width:118%; position:relative; z-index:3; }
.coaching-copy h1 em { color:var(--brand-aqua-deep); }
.coaching-copy .lede { max-width:680px; color:#435b65; margin:32px 0 36px; }
.coaching-photo { height:690px; border-radius:340px 340px 28px 28px; overflow:hidden; position:relative; box-shadow:0 30px 80px rgba(13,37,47,.16); z-index:2; }
.coaching-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,24,31,.47),transparent 44%); }
.coaching-photo img { width:100%; height:100%; object-fit:cover; object-position:center 24%; }
.coaching-photo-caption { position:absolute; z-index:3; left:25px; right:25px; bottom:23px; display:grid; grid-template-columns:auto 1fr auto 1fr auto 1fr; align-items:center; gap:8px 12px; color:#fff; font-size:.72rem; }
.coaching-photo-caption span { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--brand-yellow); color:var(--ink); font-weight:800; }
.coaching-photo-caption strong { font-size:.78rem; }
.coaching-ribbon { position:absolute; left:-3vw; bottom:52px; z-index:1; white-space:nowrap; font-size:clamp(5.5rem,10vw,11rem); font-weight:700; letter-spacing:-.06em; color:rgba(18,39,51,.055); transform:rotate(-3deg); }

/* Give secondary sections a little more identity page-by-page. */
.academy-page .content-intro { background:linear-gradient(120deg,#fff 60%,rgba(245,187,24,.10)); }
.academy-page .programme-card:nth-child(odd) .num { color:#d29400; }
.scan-page .content-intro { background:linear-gradient(120deg,rgba(131,200,209,.12),#fff 56%); }
.scan-page .programme-card:nth-child(1), .scan-page .programme-card:nth-child(4) { background:#eaf7f8; }
.scan-page .programme-card:nth-child(2) { background:#fff6d8; }
.coaching-page .content-intro { background:linear-gradient(135deg,#fff 55%,rgba(131,200,209,.11)); }
.coaching-page .programme-grid { background:linear-gradient(150deg,#e9f7f7,#fff7df); }

@media (max-width: 1180px) {
  .main-nav { gap:18px; font-size:.86rem; }
  .visual-hero { min-height:820px; }
  .scan-stage { width:81%; }
  .scan-copy-card { width:67vw; }
  .coaching-hero { grid-template-columns:1fr .8fr; }
  .coaching-copy h1 { width:122%; }
}
@media (max-width: 900px) {
  .site-header { height:82px; }
  .brand-logo { width:36px; height:36px; }
  .visual-hero { padding-top:82px; }
  .academy-hero { min-height:820px; padding-inline:28px; padding-bottom:70px; }
  .academy-hero .hero-overlap-note { right:28px; bottom:48px; width:300px; }
  .scan-hero { min-height:920px; padding:115px 24px 70px; }
  .scan-stage { width:92%; height:590px; }
  .scan-copy-card { left:24px; right:24px; bottom:45px; width:auto; }
  .coaching-hero { grid-template-columns:1fr; padding:125px 24px 70px; min-height:0; gap:50px; }
  .coaching-copy h1 { width:100%; }
  .coaching-photo { width:min(82vw,560px); height:650px; justify-self:end; }
  .coaching-ribbon { bottom:30px; }
}
@media (max-width:760px) {
  body { font-size:16px; }
  .site-header { padding-inline:20px; }
  .hero.hero-clean { padding-top:112px; }
  .hero-clean h1 { font-size:clamp(3.35rem,15vw,5.3rem); }
  .section { padding:90px 20px; }
  .service-row { min-height:0; padding:28px 0; }
  .main-nav { font-size:1.6rem; }
  .academy-hero { min-height:760px; padding:120px 20px 56px; }
  .academy-hero h1 { font-size:clamp(4rem,17vw,6.2rem); }
  .academy-hero .visual-hero-shade { background:linear-gradient(90deg,rgba(7,24,31,.88),rgba(7,24,31,.38)),linear-gradient(0deg,rgba(7,24,31,.55),transparent); }
  .academy-hero .hero-overlap-note { display:none; }
  .academy-hero .hero-ghost-word { top:120px; }
  .scan-hero { min-height:850px; padding:105px 20px 50px; }
  .scan-stage { width:100%; height:470px; border-radius:24px; }
  .scan-copy-card { left:20px; right:20px; bottom:36px; padding:34px 25px; border-radius:22px; border-left-width:5px; }
  .scan-copy-card h1 { font-size:clamp(3.3rem,14vw,5rem); }
  .scan-copy-card .lede { font-size:.95rem; margin:21px 0 25px; }
  .scan-word { display:none; }
  .coaching-hero { padding:115px 20px 65px; }
  .coaching-copy h1 { font-size:clamp(3.6rem,15vw,5.7rem); }
  .coaching-photo { width:100%; height:520px; border-radius:240px 240px 24px 24px; }
  .coaching-photo-caption { grid-template-columns:auto 1fr; }
  .coaching-ribbon { display:none; }
  .page-strip > div { padding:22px 20px; }
  .programme-cards { gap:14px; }
  .programme-card { min-height:320px; padding:32px 27px; }
  .content-image { min-height:480px; }
}


/* ===== V5: image-led full-bleed homepage + richer page photography ===== */
:root { --hero-dark: #071820; }

/* Larger, more confident navigation. */
.site-header { height: 104px; }
.site-header.is-scrolled { height: 80px; }
.main-nav { gap: clamp(16px,1.55vw,29px); font-size: 1rem; font-weight: 650; }
.brand-word { font-size: 1.08rem; }
.nav-login {
  display:inline-flex; align-items:center; gap:7px; padding:9px 12px !important;
  border:1px solid rgba(18,39,51,.22); border-radius:100px;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.main-nav > a.nav-login::after { display:none; }
.nav-login b { font-weight:500; font-size:.82em; }
.nav-login:hover { background:var(--brand-aqua); border-color:var(--brand-aqua); color:var(--ink); }

/* Transparent white header over the home hero until the user scrolls. */
.home-page .site-header:not(.is-scrolled) { color:#fff; }
.home-page .site-header:not(.is-scrolled) .brand-logo { filter: brightness(0) invert(1); }
.home-page .site-header:not(.is-scrolled) .main-nav > a:not(.nav-cta)::after { background:#fff; }
.home-page .site-header:not(.is-scrolled) .nav-login { border-color:rgba(255,255,255,.45); }
.home-page .site-header:not(.is-scrolled) .nav-login:hover { color:var(--ink); border-color:var(--brand-aqua); }
.home-page .site-header:not(.is-scrolled) .nav-cta { border-color:rgba(255,255,255,.72); }
.home-page .site-header:not(.is-scrolled) .nav-cta:hover { background:#fff; color:var(--ink); }
.home-page .site-header:not(.is-scrolled) .lang-toggle { color:#fff; }

/* Home: one strong, full-bleed photographic statement. */
.home-hero { min-height:100svh; position:relative; overflow:hidden; background:var(--hero-dark); color:#fff; display:flex; align-items:center; justify-content:flex-end; padding:150px clamp(28px,6vw,105px) 175px; }
.home-hero-media, .home-hero-overlay { position:absolute; inset:0; }
.home-hero-media img { width:100%; height:100%; object-fit:cover; object-position:center center; transform:scale(1.012); }
.home-hero-overlay { background:
  linear-gradient(270deg,rgba(5,20,27,.92) 0%,rgba(5,20,27,.78) 30%,rgba(5,20,27,.45) 54%,rgba(5,20,27,.08) 78%),
  linear-gradient(0deg,rgba(5,20,27,.64) 0%,rgba(5,20,27,0) 46%); }
.home-hero-copy { position:relative; z-index:3; width:min(58vw,920px); margin-left:auto; }
.home-hero-copy .eyebrow { color:var(--brand-yellow); font-size:.78rem; margin-bottom:28px; }
.home-hero h1 { margin:0; font-size:clamp(4.9rem,7.4vw,9rem); line-height:.88; letter-spacing:-.068em; font-weight:500; }
.home-hero h1 em { color:var(--brand-aqua); font-family:var(--serif); font-weight:500; }
.home-hero-lede { max-width:720px; margin:34px 0 38px; color:rgba(255,255,255,.82); font-size:clamp(1.12rem,1.45vw,1.4rem); line-height:1.7; }
.home-hero-ghost { position:absolute; z-index:1; left:-2vw; top:16%; font-size:clamp(8rem,17vw,19rem); line-height:.75; font-weight:800; letter-spacing:-.085em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.14); user-select:none; pointer-events:none; }
.home-hero-foot { position:absolute; z-index:4; left:clamp(28px,6vw,105px); right:clamp(28px,6vw,105px); bottom:30px; display:grid; grid-template-columns:repeat(3,1fr); background:rgba(7,24,32,.62); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(16px); border-radius:20px; overflow:hidden; }
.home-hero-foot > div { padding:19px 22px; display:grid; grid-template-columns:34px 1fr; grid-template-rows:auto auto; column-gap:10px; border-right:1px solid rgba(255,255,255,.14); }
.home-hero-foot > div:last-child { border-right:0; }
.home-hero-foot span { grid-row:1/3; width:29px; height:29px; border-radius:50%; display:grid; place-items:center; background:var(--brand-yellow); color:var(--ink); font-size:.65rem; font-weight:800; }
.home-hero-foot strong { font-size:.86rem; }
.home-hero-foot small { color:rgba(255,255,255,.58); line-height:1.45; font-size:.67rem; margin-top:3px; }

/* Add photographic rhythm between content-heavy homepage sections. */
.visual-story { min-height:850px; padding:clamp(95px,10vw,150px) clamp(28px,6vw,105px); display:grid; grid-template-columns:.72fr 1.28fr; gap:7vw; align-items:center; background:#dfeff0; overflow:hidden; }
.visual-story-copy h2 { margin:0; max-width:650px; font-size:clamp(3.4rem,5.4vw,6.3rem); line-height:.93; letter-spacing:-.06em; font-weight:500; }
.visual-story-copy h2 em { font-family:var(--serif); font-weight:500; color:var(--brand-aqua-deep); }
.visual-story-copy > p:not(.eyebrow) { max-width:590px; margin:30px 0 28px; color:#49616b; font-size:1.05rem; line-height:1.8; }
.text-link { display:inline-flex; align-items:center; gap:14px; font-size:.84rem; font-weight:750; border-bottom:1px solid currentColor; padding-bottom:6px; }
.visual-story-gallery { min-height:630px; position:relative; }
.story-image { margin:0; position:absolute; overflow:hidden; box-shadow:0 30px 80px rgba(18,39,51,.16); }
.story-image img { width:100%; height:100%; object-fit:cover; }
.story-image-main { width:72%; height:590px; right:0; top:0; border-radius:32px; }
.story-image-main img { object-position:center 36%; }
.story-image-small { width:43%; height:340px; left:0; bottom:-18px; border:11px solid #dfeff0; border-radius:26px; }
.story-image-small img { object-position:center 30%; }
.story-image figcaption { position:absolute; left:18px; bottom:17px; background:rgba(255,254,251,.92); backdrop-filter:blur(10px); padding:10px 13px; border-radius:100px; font-size:.68rem; font-weight:750; display:flex; gap:9px; align-items:center; }
.story-image figcaption span { color:var(--brand-aqua-deep); }

/* Academy: keep the cinematic hero, then use a second original-site image as a bold editorial divider. */
.academy-editorial-image { margin:0 clamp(28px,6vw,105px) clamp(90px,10vw,145px); min-height:690px; position:relative; overflow:hidden; border-radius:34px; background:var(--ink); }
.academy-editorial-media { position:absolute; inset:0; }
.academy-editorial-media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.academy-editorial-media::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,27,35,.08) 25%,rgba(8,27,35,.78) 72%,rgba(8,27,35,.9)); }
.academy-editorial-card { position:absolute; right:clamp(35px,5vw,80px); top:50%; transform:translateY(-50%); z-index:2; width:min(42%,590px); color:#fff; }
.academy-editorial-card > span { color:var(--brand-yellow); text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; font-weight:800; }
.academy-editorial-card h2 { margin:17px 0 25px; font-size:clamp(3.1rem,4.4vw,5.2rem); line-height:.94; letter-spacing:-.058em; font-weight:500; }
.academy-editorial-card h2 em { font-family:var(--serif); color:var(--brand-aqua); font-weight:500; }
.academy-editorial-card p { color:rgba(255,255,255,.75); line-height:1.8; font-size:1.02rem; }

/* Scan: use an original portrait for the hero and a full-width image punctuation below. */
.scan-stage-image { object-position:center 35%; }
.scan-image-break { margin:0 clamp(28px,6vw,105px) clamp(95px,10vw,150px); height:min(68vw,720px); min-height:520px; position:relative; overflow:hidden; border-radius:34px; background:var(--ink); }
.scan-image-break img { width:100%; height:100%; object-fit:cover; object-position:center; }
.scan-image-break::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,24,31,.78),rgba(7,24,31,.02) 62%); }
.scan-image-break-copy { position:absolute; z-index:2; left:clamp(28px,4.5vw,70px); right:clamp(28px,4.5vw,70px); bottom:clamp(28px,4.5vw,65px); color:#fff; display:flex; justify-content:space-between; gap:40px; align-items:end; }
.scan-image-break-copy span { color:var(--brand-yellow); text-transform:uppercase; letter-spacing:.17em; font-size:.73rem; font-weight:800; }
.scan-image-break-copy strong { max-width:680px; font-size:clamp(2.7rem,4.2vw,5.2rem); line-height:.96; letter-spacing:-.055em; font-weight:500; }

/* Coaching gets the third image from its source page as a true full-bleed pause. */
.coaching-image-break { height:min(70vw,780px); min-height:560px; position:relative; overflow:hidden; background:var(--ink); }
.coaching-image-break img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.coaching-image-break-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,24,31,.8),rgba(7,24,31,.08) 68%),linear-gradient(0deg,rgba(7,24,31,.34),transparent 50%); }
.coaching-image-break-copy { position:absolute; z-index:2; left:clamp(28px,6vw,105px); bottom:clamp(45px,7vw,100px); color:#fff; max-width:900px; }
.coaching-image-break-copy span { display:block; color:var(--brand-yellow); text-transform:uppercase; letter-spacing:.17em; font-size:.72rem; font-weight:800; margin-bottom:17px; }
.coaching-image-break-copy h2 { margin:0; font-size:clamp(3.6rem,6vw,7.4rem); line-height:.9; letter-spacing:-.065em; font-weight:500; }
.coaching-image-break-copy h2 em { font-family:var(--serif); color:var(--brand-aqua); font-weight:500; }

/* Academy login visual prototype. */
.academy-login-shell { min-height:100svh; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(440px,.85fr); padding-top:0; background:#fff; }
.academy-login-visual { min-height:100svh; position:relative; overflow:hidden; background:var(--ink); }
.academy-login-visual > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 38%; }
.academy-login-shade { position:absolute; inset:0; background:linear-gradient(0deg,rgba(6,22,29,.86),rgba(6,22,29,.12) 68%),linear-gradient(90deg,rgba(6,22,29,.25),transparent); }
.academy-login-message { position:absolute; z-index:2; left:clamp(35px,6vw,95px); right:clamp(35px,6vw,95px); bottom:clamp(45px,7vw,100px); color:#fff; }
.academy-login-message .eyebrow { color:var(--brand-yellow); }
.academy-login-message h1 { margin:0; font-size:clamp(4.2rem,6.5vw,8rem); line-height:.9; letter-spacing:-.065em; font-weight:500; }
.academy-login-message h1 em { font-family:var(--serif); color:var(--brand-aqua); font-weight:500; }
.academy-login-message p { max-width:680px; color:rgba(255,255,255,.76); font-size:1.05rem; line-height:1.75; }
.academy-login-message > a { display:inline-flex; gap:12px; color:#fff; font-size:.82rem; font-weight:750; border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:5px; }
.academy-login-panel { padding:150px clamp(38px,6vw,90px) 70px; display:flex; justify-content:center; flex-direction:column; max-width:760px; width:100%; margin:auto; }
.academy-login-panel h2 { margin:0; font-size:clamp(3rem,4.3vw,5.2rem); line-height:1; letter-spacing:-.055em; font-weight:500; }
.login-intro { color:var(--muted); line-height:1.7; margin:19px 0 35px; }
.academy-login-form { display:grid; gap:20px; }
.academy-login-form label { display:grid; gap:9px; font-size:.72rem; font-weight:750; }
.academy-login-form input[type="email"], .academy-login-form input[type="password"] { width:100%; border:1px solid var(--line); border-radius:14px; background:var(--paper); padding:17px 16px; outline:none; }
.login-options { display:flex; justify-content:space-between; gap:20px; color:var(--muted); font-size:.7rem; }
.login-options label { display:flex; grid-template-columns:auto 1fr; align-items:center; gap:8px; font-weight:500; }
.login-options input { width:auto; }
.login-options a { text-decoration:underline; text-underline-offset:3px; }
.academy-login-form .button { margin-top:5px; width:100%; }
.login-message { min-height:1.2em; margin:0; font-size:.72rem; font-weight:650; color:var(--brand-aqua-deep); }
.login-help { margin:34px 0 0; padding-top:24px; border-top:1px solid var(--line); color:var(--muted); line-height:1.65; font-size:.74rem; }
.academy-login-page .site-header:not(.is-scrolled) { background:rgba(255,254,251,.92); backdrop-filter:blur(18px); }

@media (max-width: 1350px) {
  .main-nav { font-size:.9rem; gap:15px; }
  .nav-login { padding:8px 10px !important; }
  .home-hero-copy { width:min(62vw,850px); }
}
@media (max-width: 1120px) {
  .home-hero { justify-content:flex-start; }
  .home-hero-overlay { background:linear-gradient(90deg,rgba(5,20,27,.82),rgba(5,20,27,.5) 65%,rgba(5,20,27,.22)),linear-gradient(0deg,rgba(5,20,27,.68),transparent 45%); }
  .home-hero-copy { width:min(86%,850px); margin-left:0; }
  .visual-story { grid-template-columns:1fr; }
  .visual-story-copy { max-width:850px; }
  .academy-login-shell { grid-template-columns:1fr 480px; }
}
@media (max-width: 900px) {
  .home-page .site-header:not(.is-scrolled) .menu-toggle span:not(.sr-only) { background:#fff; }
  .home-page.menu-open .site-header:not(.is-scrolled) .menu-toggle span:not(.sr-only) { background:var(--ink); }
  .home-page .main-nav.open { color:var(--ink); }
  .home-page .main-nav.open .lang-toggle { color:var(--ink); }
  .home-hero { min-height:920px; padding:140px 28px 220px; align-items:flex-end; }
  .home-hero-media img { object-position:35% center; }
  .home-hero-overlay { background:linear-gradient(0deg,rgba(5,20,27,.92) 0%,rgba(5,20,27,.66) 46%,rgba(5,20,27,.12) 80%); }
  .home-hero-copy { width:100%; }
  .home-hero-foot { left:28px; right:28px; grid-template-columns:1fr; bottom:25px; }
  .home-hero-foot > div { border-right:0; border-bottom:1px solid rgba(255,255,255,.14); padding:12px 16px; }
  .home-hero-foot > div:last-child { border-bottom:0; }
  .home-hero-foot small { display:none; }
  .visual-story-gallery { min-height:580px; }
  .academy-editorial-card { width:55%; }
  .academy-login-shell { grid-template-columns:1fr; }
  .academy-login-visual { min-height:700px; }
  .academy-login-panel { padding-top:90px; padding-bottom:90px; }
}
@media (max-width:760px) {
  .main-nav { font-size:1.65rem; }
  .nav-login { border:0; padding:17px 0 !important; border-radius:0; width:100%; justify-content:space-between; }
  .home-hero { min-height:850px; padding:125px 20px 205px; }
  .home-hero-media img { object-position:32% center; }
  .home-hero h1 { font-size:clamp(3.7rem,16vw,5.8rem); }
  .home-hero-lede { font-size:1rem; margin:25px 0 29px; }
  .home-hero-ghost { display:none; }
  .home-hero-foot { left:20px; right:20px; bottom:18px; }
  .visual-story { min-height:0; padding:90px 20px 110px; }
  .visual-story-copy h2 { font-size:clamp(3rem,13vw,4.6rem); }
  .visual-story-gallery { min-height:490px; }
  .story-image-main { width:84%; height:470px; }
  .story-image-small { width:48%; height:260px; border-width:8px; }
  .academy-editorial-image, .scan-image-break { margin-left:20px; margin-right:20px; border-radius:24px; }
  .academy-editorial-image { min-height:650px; }
  .academy-editorial-media::after { background:linear-gradient(0deg,rgba(8,27,35,.92) 0%,rgba(8,27,35,.32) 72%); }
  .academy-editorial-card { left:25px; right:25px; width:auto; top:auto; bottom:30px; transform:none; }
  .academy-editorial-card h2 { font-size:clamp(2.8rem,13vw,4.4rem); }
  .scan-image-break { height:600px; }
  .scan-image-break-copy { flex-direction:column; align-items:flex-start; }
  .coaching-image-break { min-height:620px; }
  .coaching-image-break img { object-position:60% center; }
  .academy-login-visual { min-height:620px; }
  .academy-login-message { left:20px; right:20px; bottom:45px; }
  .academy-login-message h1 { font-size:clamp(3.4rem,15vw,5rem); }
  .academy-login-panel { padding:85px 20px; }
}


/* ===== V6: aligned to Insightful Academy Essential Brand Brief =====
   Palette: deep teal #227790, warm charcoal #303A3E, warm cream #F7F5E8,
   muted gold #D7A52A, white #FFFFFF.
   Typography: Lora headings, Inter body/UI.
   Intent: calm, credible, warm, contemporary, quietly premium.
*/
:root {
  --ink: #303A3E;
  --ink-deep: #263236;
  --muted: #687377;
  --paper: #F7F5E8;
  --paper-warm: #F1EFE4;
  --white: #FFFFFF;
  --brand-aqua: #227790;
  --brand-aqua-deep: #227790;
  --brand-yellow: #D7A52A;
  --teal: #227790;
  --teal-dark: #227790;
  --yellow: #D7A52A;
  --line: rgba(48,58,62,.17);
  --shadow: none;
  --radius: 2px;
  --serif: 'Lora', Georgia, serif;
  --sans: 'Inter', Arial, sans-serif;
  --hero-dark: #303A3E;
}

body { background:var(--paper); color:var(--ink); font-family:var(--sans); }
h1,h2,h3,h4,h5,h6 { font-family:var(--serif); font-weight:500; }
p, a, button, input, textarea, label, span, small, strong { font-family:var(--sans); }
em { font-family:var(--serif); }

/* Brand wordmarks */
.brand { gap:0; letter-spacing:0; }
.brand-main-word {
  display:inline-block;
  font-family:var(--serif);
  font-size:1.35rem;
  font-weight:500;
  letter-spacing:.22em;
  line-height:1;
  color:var(--brand-aqua);
  position:relative;
}
.brand-main-word::after {
  content:'';
  position:absolute;
  left:0;
  bottom:-9px;
  width:34px;
  height:1px;
  background:var(--brand-yellow);
}
.academy-brand-logo {
  width:210px;
  height:auto;
  display:block;
  object-fit:contain;
}
.academy-brand {
  background:rgba(247,245,232,.94);
  padding:5px 9px 4px;
}
.footer-brand.academy-brand { background:var(--paper); padding:6px 9px; width:max-content; }
.footer-brand .academy-brand-logo { filter:none; opacity:1; }
.academy-seal { display:block; width:250px; height:auto; object-fit:contain; }
.academy-seal-hero {
  position:absolute;
  z-index:4;
  right:clamp(34px,6vw,110px);
  top:150px;
  width:clamp(175px,17vw,275px);
}
.academy-login-logo { width:min(360px,85%); height:auto; margin:0 0 48px; }

/* Header — larger but restrained */
.site-header {
  height:98px;
  padding:0 clamp(24px,4.5vw,74px);
  gap:28px;
}
.site-header.is-scrolled {
  height:76px;
  background:rgba(247,245,232,.97);
  backdrop-filter:blur(10px);
  box-shadow:none;
  border-bottom:1px solid var(--line);
}
.main-nav {
  gap:clamp(18px,1.65vw,30px);
  font-size:1rem;
  font-weight:600;
}
.main-nav > a:not(.nav-cta)::after { background:var(--brand-yellow); height:1px; }
.nav-cta, .nav-login {
  border-radius:2px !important;
}
.nav-cta {
  border:1px solid var(--brand-aqua);
  background:var(--brand-aqua);
  color:#fff;
  padding:13px 17px;
}
.nav-cta:hover { background:var(--ink); border-color:var(--ink); color:#fff; }
.nav-login {
  border:1px solid rgba(48,58,62,.22) !important;
  background:transparent !important;
  color:inherit !important;
}
.nav-login:hover { border-color:var(--brand-aqua) !important; color:var(--brand-aqua) !important; }
.lang-menu {
  border-radius:2px;
  background:#fff;
  box-shadow:none;
  border:1px solid var(--line);
}
.lang-menu a { border-radius:0; }
.lang-menu a.is-current { color:var(--brand-aqua); }

.home-page .site-header:not(.is-scrolled) .brand-main-word,
.home-page .site-header:not(.is-scrolled) .main-nav,
.home-page .site-header:not(.is-scrolled) .lang-toggle { color:#fff; }
.home-page .site-header:not(.is-scrolled) .brand-main-word::after { background:var(--brand-yellow); }
.home-page .site-header:not(.is-scrolled) .nav-login {
  border-color:rgba(255,255,255,.5) !important;
  color:#fff !important;
}
.home-page .site-header:not(.is-scrolled) .nav-cta {
  background:var(--brand-aqua);
  border-color:var(--brand-aqua);
}

/* Typography */
.eyebrow {
  font-size:.72rem;
  letter-spacing:.17em;
  font-weight:700;
}
.eyebrow::before { background:var(--brand-yellow); opacity:1; }
.hero h1, .home-hero h1, .visual-hero h1,
.section-heading h2, .service-intro-copy h2, .about-copy h2,
.manifesto h2, .focus-content h2, .testimonial-heading-block h2,
.contact-copy h2, .programme-head h2, .content-intro h2,
.content-section h2, .page-cta h2, .coaching-image-break-copy h2 {
  font-family:var(--serif);
  letter-spacing:-.035em;
}

/* Buttons: teal primary, subtle secondary, no pill-heavy treatment */
.button {
  border-radius:2px;
  min-height:52px;
  padding:0 22px;
}
.button-primary, .button-dark, .button-light {
  background:var(--brand-aqua);
  border-color:var(--brand-aqua);
  color:#fff;
}
.button-primary:hover, .button-dark:hover, .button-light:hover {
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
}
.button-ghost {
  border-color:rgba(48,58,62,.36);
  background:transparent;
}
.button-glass {
  border:1px solid rgba(255,255,255,.64);
  background:transparent;
  color:#fff;
  backdrop-filter:none;
}
.button-glass:hover { background:#fff; color:var(--ink); }

/* Homepage: retain the full-bleed image, remove watermark and gradient gimmicks. */
.home-hero {
  min-height:100svh;
  background:var(--ink);
  padding-top:140px;
  padding-bottom:175px;
}
.home-hero-media img {
  object-position:center center;
  transform:none;
}
.home-hero-overlay {
  inset:0 0 0 auto;
  width:55%;
  background:rgba(48,58,62,.80);
}
.home-hero-ghost { display:none !important; }
.home-hero-copy {
  width:min(50vw,790px);
  position:relative;
  z-index:3;
}
.home-hero-copy .eyebrow { color:#fff; }
.home-hero h1 {
  font-size:clamp(4.8rem,7vw,8.2rem);
  line-height:.94;
  letter-spacing:-.04em;
}
.home-hero h1 em { color:#fff; font-style:italic; }
.home-hero-lede {
  color:rgba(255,255,255,.88);
  font-size:clamp(1.08rem,1.35vw,1.28rem);
}
.home-hero-foot {
  left:clamp(28px,6vw,105px);
  right:clamp(28px,6vw,105px);
  bottom:28px;
  color:var(--ink);
  background:rgba(247,245,232,.97);
  border:0;
  border-top:3px solid var(--brand-yellow);
  border-radius:0;
  backdrop-filter:none;
  box-shadow:none;
}
.home-hero-foot > div { border-right:1px solid var(--line); padding:20px 24px; }
.home-hero-foot span {
  background:transparent;
  color:var(--brand-yellow);
  width:auto;
  height:auto;
  border-radius:0;
  font-weight:700;
  align-self:start;
}
.home-hero-foot small { color:var(--muted); }

/* Homepage content — more editorial, less decorative. */
.service-clean { background:#fff; }
.service-intro-copy h2 em,
.visual-story-copy h2 em,
.about-copy h2 em,
.manifesto h2 em,
.testimonial-heading-block h2 em,
.contact-copy h2 em { color:var(--brand-aqua); }
.service-row { transition:background .2s ease, padding .2s ease; }
.service-row:hover { background:var(--paper); }
.service-row:hover::before { background:var(--brand-yellow); }
.service-row-action b { border-radius:2px; }
.service-row:hover .service-row-action b { background:var(--brand-aqua); border-color:var(--brand-aqua); }

.visual-story {
  background:var(--paper);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.story-image {
  box-shadow:none;
  border-radius:0 !important;
}
.story-image-small {
  border:10px solid var(--paper);
}
.story-image figcaption {
  border-radius:0;
  background:#fff;
  backdrop-filter:none;
  border-left:3px solid var(--brand-yellow);
}
.about-stamp { display:none; }
.image-frame { border-radius:0 !important; box-shadow:none !important; }
.image-primary::before {
  content:'';
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:var(--brand-yellow);
  z-index:2;
}
.signature-line span { background:var(--brand-yellow); }

.focus-overlay {
  inset:0 auto 0 0;
  width:60%;
  background:rgba(48,58,62,.80);
}
.focus-content h2 em { color:#fff; }
.focus-content .eyebrow::before { background:var(--brand-yellow); }

/* Testimonials — editorial proof without decorative circles, shadows or rounded cards. */
.testimonials-v3 { background:#fff; }
.testimonial-editorial {
  border-radius:0;
  box-shadow:none;
  border:1px solid var(--line);
}
.testimonial-feature {
  background:var(--brand-aqua);
  border-radius:0;
}
.testimonial-feature::after { display:none; }
.quote-symbol { color:rgba(255,255,255,.7); }
.testimonial-person { border-radius:0 !important; }
.testimonial-person.is-active {
  background:var(--paper);
  color:var(--ink);
  border-left:3px solid var(--brand-yellow);
}
.person-monogram { border-radius:0 !important; }

/* Forms/newsletter */
.newsletter { background:var(--paper); }
.newsletter-shell {
  background:#fff;
  border-radius:0;
  border-top:3px solid var(--brand-yellow);
  box-shadow:none;
}
.newsletter-shell::after { display:none; }
.newsletter-copy h2 { font-family:var(--serif); }
input, textarea {
  border-radius:2px;
  background:#fff;
}
.contact { background:#fff; }
.contact-form {
  border-radius:0;
  background:var(--paper);
  box-shadow:none;
}

/* Generic inner-page conventions */
.page-strip { background:#fff; }
.page-strip strong { font-family:var(--serif); font-weight:500; font-size:1.08rem; }
.page-cta {
  border-radius:0;
  background:var(--brand-aqua);
  box-shadow:none;
}
.page-cta h2 em { color:#fff; }
.programme-cards {
  gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.programme-card {
  border-radius:0;
  box-shadow:none !important;
  background:#fff !important;
  border-right:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important;
  min-height:340px;
}
.programme-card::after { display:none; }
.programme-card:hover { transform:none; background:var(--paper) !important; }
.programme-card .num { color:var(--brand-aqua) !important; }
.programme-card h3 { font-family:var(--serif); font-weight:500; }
.programme-card .meta { color:var(--muted); }

/* Academy — authentic image + flat charcoal veil; logo concepts used as identity. */
.academy-hero {
  background:var(--ink);
  min-height:930px;
}
.academy-hero .visual-hero-media img { transform:none; }
.academy-hero .visual-hero-shade {
  inset:0 auto 0 0;
  width:59%;
  background:rgba(48,58,62,.82);
}
.academy-hero .visual-hero-copy { max-width:860px; }
.academy-hero .eyebrow { color:#fff; }
.academy-hero h1 { font-size:clamp(4.7rem,7.4vw,8.6rem); }
.academy-hero h1 em { color:#fff; }
.academy-hero .hero-overlap-note {
  right:clamp(34px,6vw,110px);
  bottom:72px;
  width:min(30vw,390px);
  padding:22px 24px;
  background:var(--paper);
  color:var(--ink);
  border-radius:0;
  box-shadow:none;
  border-top:3px solid var(--brand-yellow);
  transform:none;
}
.hero-ghost-word { display:none !important; }
.academy-editorial-image {
  border-radius:0;
  box-shadow:none;
}
.academy-editorial-media::after {
  inset:0 0 0 auto;
  width:48%;
  background:rgba(48,58,62,.82);
}
.academy-editorial-card { width:min(40%,560px); }
.academy-editorial-card > span { color:#fff; }
.academy-editorial-card h2 em { color:#fff; }
.academy-page .content-intro,
.scan-page .content-intro,
.coaching-page .content-intro,
.coaching-page .programme-grid { background:#fff; background-image:none; }

/* Scan — squared image stage, flat light panel, no watermark/gradient. */
.scan-hero {
  background:var(--paper);
  min-height:940px;
}
.scan-stage {
  width:72%;
  height:690px;
  border-radius:0;
  box-shadow:none;
  border-left:3px solid var(--brand-yellow);
}
.scan-gradient { background:rgba(48,58,62,.12); }
.scan-index {
  border-radius:0;
  background:var(--paper);
  border-bottom:2px solid var(--brand-yellow);
}
.scan-copy-card {
  width:min(58vw,850px);
  background:#fff;
  border-radius:0;
  box-shadow:none;
  border-left:3px solid var(--brand-yellow);
}
.scan-copy-card h1 em { color:var(--brand-aqua); }
.scan-image-break {
  border-radius:0;
  box-shadow:none;
}
.scan-image-break::after {
  inset:0 auto 0 0;
  width:58%;
  background:rgba(48,58,62,.76);
}
.scan-image-break-copy {
  right:auto;
  width:min(52%,760px);
  display:block;
}
.scan-image-break-copy span { color:#fff; }
.scan-image-break-copy strong {
  display:block;
  margin-top:14px;
  font-family:var(--serif);
}

/* Coaching — strong teal/cream split, no gradient, no decorative ribbon. */
.coaching-hero {
  background:var(--paper);
  background-image:none;
  border-bottom:1px solid var(--line);
}
.coaching-copy h1 em { color:var(--brand-aqua); }
.coaching-copy .lede { color:var(--muted); }
.coaching-photo {
  border-radius:0;
  box-shadow:none;
  border-top:3px solid var(--brand-yellow);
}
.coaching-photo::after { display:none; }
.coaching-photo-caption {
  left:0; right:0; bottom:0;
  padding:18px 20px;
  background:rgba(48,58,62,.88);
}
.coaching-photo-caption span {
  border-radius:0;
  background:transparent;
  color:var(--brand-yellow);
  width:auto; height:auto;
}
.coaching-ribbon { display:none; }
.coaching-image-break-shade {
  inset:0 auto 0 0;
  width:60%;
  background:rgba(48,58,62,.78);
}
.coaching-image-break-copy { max-width:760px; }
.coaching-image-break-copy span { color:#fff; }
.coaching-image-break-copy h2 em { color:#fff; }

/* Academy login */
.academy-login-shell { background:#fff; }
.academy-login-shade {
  inset:0 auto 0 0;
  width:72%;
  background:rgba(48,58,62,.80);
}
.academy-login-seal {
  position:absolute;
  z-index:2;
  right:45px;
  top:125px;
  width:190px;
  opacity:.94;
}
.academy-login-message .eyebrow { color:#fff; }
.academy-login-message h1 em { color:#fff; }
.academy-login-panel { background:#fff; }
.academy-login-form input[type="email"],
.academy-login-form input[type="password"] {
  border-radius:2px;
  background:var(--paper);
}
.academy-login-page .site-header:not(.is-scrolled) {
  background:rgba(247,245,232,.97);
  backdrop-filter:none;
  border-bottom:1px solid var(--line);
}

/* Footer */
.site-footer { background:var(--ink); }
.footer-brand .brand-main-word { color:#fff; }
.footer-brand .brand-main-word::after { background:var(--brand-yellow); }

/* Remove the remaining visual effects the brand brief explicitly warns against. */
.hero-grid, .hero-ambient, .orbit-card { display:none !important; }
.lang-menu, .back-top, .testimonial-editorial, .story-image,
.scan-stage, .scan-copy-card, .coaching-photo, .academy-editorial-image,
.programme-card, .page-cta, .newsletter-shell, .contact-form { box-shadow:none !important; }

/* Responsive */
@media (max-width:1120px) {
  .home-hero-overlay { width:64%; }
  .home-hero-copy { width:min(60vw,760px); }
  .academy-seal-hero { top:135px; right:28px; width:190px; }
  .academy-hero .visual-hero-shade { width:68%; }
  .academy-editorial-media::after { width:58%; }
}
@media (max-width:900px) {
  .academy-brand-logo { width:185px; }
  .home-page .site-header:not(.is-scrolled) .menu-toggle span:not(.sr-only) { background:#fff; }
  .home-hero {
    min-height:930px;
    padding:130px 26px 230px;
    align-items:flex-end;
  }
  .home-hero-overlay { inset:0; width:100%; background:rgba(48,58,62,.68); }
  .home-hero-copy { width:100%; }
  .home-hero-foot { left:26px; right:26px; }
  .academy-hero .visual-hero-shade { inset:0; width:100%; background:rgba(48,58,62,.65); }
  .academy-seal-hero { top:115px; right:25px; width:150px; }
  .academy-hero .hero-overlap-note { display:none; }
  .academy-editorial-media::after { inset:0; width:100%; background:rgba(48,58,62,.55); }
  .academy-editorial-card { width:auto; left:32px; right:32px; }
  .scan-stage { width:90%; }
  .scan-copy-card { width:auto; }
  .scan-image-break::after { inset:0; width:100%; background:rgba(48,58,62,.56); }
  .scan-image-break-copy { width:auto; right:32px; }
  .coaching-image-break-shade { inset:0; width:100%; background:rgba(48,58,62,.58); }
  .academy-login-shade { inset:0; width:100%; background:rgba(48,58,62,.58); }
  .academy-login-seal { right:28px; top:110px; width:145px; }
}
@media (max-width:760px) {
  .site-header { height:78px; padding-inline:18px; }
  .site-header.is-scrolled { height:70px; }
  .brand-main-word { font-size:1.05rem; letter-spacing:.18em; }
  .academy-brand { padding:3px 6px; }
  .academy-brand-logo { width:150px; }
  .main-nav { font-size:1.55rem; }
  .home-hero { padding:115px 20px 218px; min-height:900px; }
  .home-hero h1 { font-size:clamp(3.5rem,15vw,5.5rem); }
  .home-hero-foot { left:20px; right:20px; }
  .home-hero-foot > div { padding:12px 14px; }
  .visual-story { padding-inline:20px; }
  .story-image-small { border-width:7px; }
  .academy-hero { padding:112px 20px 60px; }
  .academy-seal-hero { display:none; }
  .academy-editorial-image,
  .scan-image-break { margin-left:20px; margin-right:20px; }
  .academy-editorial-card { left:24px; right:24px; }
  .scan-stage { width:100%; }
  .scan-copy-card { left:20px; right:20px; border-left-width:3px; }
  .coaching-photo { border-radius:0; }
  .academy-login-logo { width:min(320px,92%); margin-bottom:38px; }
  .academy-login-seal { display:none; }
}

/* ===== V7 — middle ground: Macaly restraint + photographic V6 personality ===== */
:root {
  --content-max: 1320px;
  --content-pad: clamp(24px, 5vw, 72px);
  --section-gap: clamp(72px, 8vw, 116px);
}

/* Overall rhythm: most content lives in a deliberate centred frame. */
body { background:#fff; }
main { background:#fff; }
.section {
  width:min(calc(100% - 48px), var(--content-max));
  margin-inline:auto;
  padding:clamp(76px,8vw,112px) var(--content-pad);
}
.section + .section { margin-top:0; }

/* Header takes the calmer, structured quality from the owner's concept. */
.site-header {
  padding-inline:max(24px, calc((100vw - 1440px) / 2));
}
.main-nav { gap:clamp(18px,1.45vw,27px); }
.brand-main-word { letter-spacing:.22em; }

/* Hero stays intentionally full bleed — this is the strong V6 element. */
.home-hero { margin-bottom:var(--section-gap); }
.home-hero-copy { right:clamp(28px,6vw,105px); }
.home-hero-foot {
  width:min(calc(100% - 56px), 1180px);
  left:50%; right:auto; transform:translateX(-50%);
}

/* Home service chooser: contained and structured, with the simpler Macaly rhythm. */
.service-clean {
  grid-template-columns:minmax(280px,.72fr) minmax(480px,1.28fr);
  gap:clamp(48px,7vw,104px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.service-intro-copy { top:108px; }
.service-intro-copy h2 { font-size:clamp(2.8rem,4vw,4.7rem); }
.service-row { padding:26px 0; }
.service-row-copy h3 { font-family:var(--serif); font-weight:500; font-size:clamp(1.45rem,2vw,2rem); }
.service-row-copy p { font-size:.94rem; max-width:620px; }

/* Visual story is no longer edge-to-edge: an editorial panel with room around it. */
.visual-story {
  width:min(calc(100% - 48px), 1400px);
  min-height:760px;
  margin:var(--section-gap) auto;
  padding:clamp(65px,7vw,100px) var(--content-pad);
  grid-template-columns:.78fr 1.22fr;
  gap:clamp(44px,6vw,90px);
  background:var(--paper);
  border:1px solid var(--line);
}
.visual-story-copy h2 { font-size:clamp(3rem,4.4vw,5.3rem); }
.visual-story-gallery { min-height:560px; }
.story-image-main { height:520px; width:74%; }
.story-image-small { height:285px; width:42%; border-width:8px; border-color:var(--paper); }

/* About keeps the deep brand contrast, but now behaves like a contained feature. */
.about.section {
  margin-top:var(--section-gap);
  margin-bottom:var(--section-gap);
  padding-top:clamp(68px,7vw,102px);
  padding-bottom:clamp(68px,7vw,102px);
  gap:clamp(48px,7vw,96px);
}
.about-media { min-height:610px; }
.about-copy h2 { font-size:clamp(2.9rem,4.1vw,4.8rem); margin-bottom:30px; }
.about-copy p { font-size:.98rem; }

/* Mission / vision / values becomes a clean contained white chapter. */
.manifesto {
  width:min(calc(100% - 48px), var(--content-max));
  margin:0 auto var(--section-gap);
  padding:clamp(70px,8vw,108px) var(--content-pad);
  gap:clamp(55px,7vw,105px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.manifesto h2 { font-size:clamp(2.9rem,4vw,4.6rem); }
.principle-title { font-family:var(--serif); font-weight:500; }
.principle-toggle { border-radius:2px; }

/* Keep exactly one major full-width image punctuation on the homepage. */
.focus-banner {
  min-height:680px;
  margin:0 0 var(--section-gap);
}
.focus-content {
  width:min(100%, 1320px);
  padding-left:max(28px, calc((100vw - 1320px) / 2 + 72px));
  padding-right:var(--content-pad);
}
.focus-content h2 { font-size:clamp(3rem,4.8vw,5.8rem); max-width:1000px; }

/* Testimonials and newsletter are contained; this mirrors the owner's quieter content framing. */
.testimonials.section {
  margin-bottom:var(--section-gap);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.testimonial-editorial { min-height:600px; }
.testimonial-feature { min-height:600px; }
.testimonial-heading-block h2 { font-size:clamp(2.8rem,3.7vw,4.3rem); }
.newsletter.section {
  background:#fff;
  padding-top:0;
  padding-bottom:var(--section-gap);
}
.newsletter-shell {
  background:var(--paper);
  border:1px solid var(--line);
  border-top:3px solid var(--brand-yellow);
  padding:clamp(38px,5vw,62px);
}
.newsletter-copy h2 { font-size:clamp(2rem,2.8vw,3rem); }

/* Contact becomes a defined final content block rather than another full canvas. */
.contact.section {
  margin-bottom:var(--section-gap);
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.contact-copy h2 { font-size:clamp(2.8rem,4vw,4.6rem); }

/* Footer content aligns with the same page frame. */
.site-footer { padding-left:max(24px, calc((100vw - 1320px) / 2 + 48px)); padding-right:max(24px, calc((100vw - 1320px) / 2 + 48px)); }

/* Inner pages: image-led heroes remain distinctive, while body chapters are framed. */
.inner-page main { padding-bottom:1px; }
.inner-page .section {
  margin-top:var(--section-gap);
  margin-bottom:var(--section-gap);
}
.inner-page .page-strip {
  width:min(calc(100% - 48px), 1180px);
  margin:36px auto var(--section-gap);
  border:1px solid var(--line);
  border-top:2px solid var(--brand-yellow);
}

/* Academy: hero stays cinematic, the follow-on image becomes a contained editorial feature. */
.academy-hero { min-height:820px; }
.academy-hero .visual-hero-copy { max-width:760px; }
.academy-hero h1 { font-size:clamp(4.2rem,6.5vw,7.4rem); }
.academy-seal-hero { width:clamp(155px,14vw,225px); }
.academy-editorial-image {
  width:min(calc(100% - 48px), 1320px);
  margin:0 auto var(--section-gap);
  min-height:590px;
  border:1px solid var(--line);
}
.academy-editorial-card { width:min(43%,520px); }

/* Scan: reduce the giant stage and let the page breathe like the owner's redesign. */
.scan-hero {
  width:min(calc(100% - 48px), 1440px);
  min-height:800px;
  margin:120px auto 0;
  background:var(--paper);
  border:1px solid var(--line);
}
.scan-stage { width:68%; height:590px; }
.scan-copy-card { width:min(56vw,760px); padding:clamp(34px,5vw,62px); }
.scan-copy-card h1 { font-size:clamp(3.8rem,5.8vw,6.8rem); }
.scan-image-break {
  width:min(calc(100% - 48px), 1320px);
  height:min(58vw,650px);
  min-height:500px;
  margin:0 auto var(--section-gap);
  border:1px solid var(--line);
}

/* Coaching: keep the asymmetrical hero, contain the later photographic punctuation. */
.coaching-hero {
  width:min(calc(100% - 48px), 1440px);
  min-height:790px;
  margin:120px auto 0;
  border:1px solid var(--line);
}
.coaching-copy h1 { font-size:clamp(4rem,6vw,7rem); }
.coaching-photo { right:clamp(30px,5vw,70px); width:min(43%,590px); }
.coaching-image-break {
  width:min(calc(100% - 48px), 1320px);
  height:min(58vw,650px);
  min-height:500px;
  margin:0 auto var(--section-gap);
  border:1px solid var(--line);
}
.coaching-image-break-copy h2 { font-size:clamp(3.2rem,5vw,5.8rem); }

/* Programme/card groups: simple flat grids, slightly more generous than Macaly, far calmer than V4/V5. */
.programme-grid.section { background:var(--paper); }
.programme-cards { border:1px solid var(--line); border-right:0; border-bottom:0; }
.programme-card { min-height:300px; padding:34px 32px; }
.programme-card h3 { font-size:1.55rem; }
.content-image { border-radius:0; min-height:500px; border-left:3px solid var(--brand-yellow); }
.expect-item b { border-radius:2px; color:#fff; }

/* CTAs are now contained slabs rather than another full-width band. */
.page-cta {
  width:min(calc(100% - 48px), 1320px);
  margin:0 auto var(--section-gap);
  padding:clamp(48px,6vw,76px) var(--content-pad);
  border:1px solid rgba(255,255,255,.1);
}

/* Login remains a purpose-built application surface, so it keeps its split layout. */
.academy-login-shell { background:#fff; }

@media (max-width: 1120px) {
  .home-hero-copy { width:min(58vw,700px); }
  .service-clean { grid-template-columns:1fr; }
  .service-intro-copy { position:static; }
  .visual-story { grid-template-columns:1fr; min-height:0; }
  .visual-story-gallery { max-width:780px; width:100%; margin:auto; }
  .scan-hero, .coaching-hero { margin-top:96px; }
}

@media (max-width: 760px) {
  :root { --section-gap:64px; }
  .section,
  .visual-story,
  .manifesto,
  .inner-page .page-strip,
  .academy-editorial-image,
  .scan-image-break,
  .coaching-image-break,
  .page-cta,
  .scan-hero,
  .coaching-hero {
    width:calc(100% - 28px);
  }
  .section { padding:64px 20px; }
  .home-hero { margin-bottom:64px; }
  .home-hero-copy { width:auto; right:auto; }
  .home-hero-foot { width:calc(100% - 28px); }
  .visual-story { margin:64px auto; padding:58px 20px; }
  .visual-story-gallery { min-height:510px; }
  .story-image-main { width:86%; height:420px; }
  .story-image-small { width:48%; height:230px; }
  .about.section { margin-top:64px; margin-bottom:64px; }
  .manifesto { margin-bottom:64px; padding:64px 20px; }
  .focus-banner { margin-bottom:64px; min-height:610px; }
  .focus-content { padding-left:20px; padding-right:20px; }
  .testimonials.section { margin-bottom:64px; }
  .inner-page .section { margin-top:64px; margin-bottom:64px; }
  .inner-page .page-strip { margin:24px auto 64px; }
  .academy-hero { min-height:760px; }
  .academy-editorial-image { min-height:610px; }
  .academy-editorial-card { width:auto; left:24px; right:24px; }
  .scan-hero, .coaching-hero { margin-top:84px; min-height:760px; }
  .scan-stage { width:100%; height:52%; }
  .scan-copy-card { width:auto; left:20px; right:20px; bottom:20px; }
  .coaching-photo { width:100%; right:0; }
  .scan-image-break, .coaching-image-break { min-height:540px; height:72vh; }
  .page-cta { margin-bottom:64px; padding:48px 22px; }
}


/* ============================================================
   V8 — circle service system + three-up testimonial depth
   Middle ground: Macaly restraint, photographic personality,
   Academy brand palette used as the shared visual system.
   ============================================================ */
:root {
  --brand-teal:#227790;
  --brand-charcoal:#303A3E;
  --brand-cream:#F7F5E8;
  --brand-gold:#D7A52A;
  --brand-teal-tint:#EAF3F4;
  --brand-teal-soft:#93C4CE;
}

/* Menu: Academy login belongs with the utility/CTA end of the nav. */
.nav-login-end {
  margin-left:2px;
  padding:10px 13px !important;
  border:1px solid rgba(215,165,42,.65) !important;
  color:inherit;
  display:inline-flex;
  gap:8px;
  align-items:center;
}
.nav-login-end::after { display:none !important; }
.nav-login-end b { color:var(--brand-gold); font-weight:500; }
.nav-login-end:hover { border-color:var(--brand-gold) !important; background:var(--brand-cream) !important; color:var(--brand-charcoal) !important; }
.home-page .site-header:not(.is-scrolled) .nav-login-end:hover { color:var(--brand-charcoal) !important; }

/* Owner/Macaly-inspired two-column value chapter. */
.value-band.section {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) 118px;
  gap:clamp(38px,6vw,88px);
  align-items:start;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding-top:clamp(70px,7vw,96px);
  padding-bottom:clamp(70px,7vw,96px);
  margin-bottom:var(--section-gap);
}
.value-band-heading h2 {
  margin:0;
  font-size:clamp(2.55rem,3.7vw,4.3rem);
  line-height:1.05;
  letter-spacing:-.045em;
}
.value-band-heading h2 em { color:var(--brand-teal); font-weight:500; }
.value-band-copy { color:var(--muted); font-size:1rem; line-height:1.85; padding-top:3px; }
.value-band-copy > p:first-child { margin-top:0; }
.value-quote {
  margin:30px 0 0;
  padding:2px 0 2px 24px;
  border-left:2px solid var(--brand-gold);
  font-family:var(--serif);
  font-style:italic;
  color:var(--brand-charcoal);
  font-size:1.08rem;
  line-height:1.75;
}
.value-circle-mark { width:112px; height:112px; margin-left:auto; }

/* Final Layered Halo split-panel service chapter (integrated into V9). */
.service-orbit.service-split {
  --service-active:var(--brand-gold);
  --service-soft:rgba(215,165,42,.10);
  width:min(calc(100% - 48px), 1400px);
  min-height:900px;
  margin-bottom:var(--section-gap);
  padding:0;
  display:grid;
  grid-template-columns:minmax(0,1.58fr) minmax(430px,.92fr);
  background:var(--brand-cream);
  border:1px solid var(--line);
  overflow:hidden;
}
.service-split-left {
  min-width:0;
  padding:clamp(52px,5vw,82px) clamp(38px,5.3vw,82px) 38px;
  display:grid;
  grid-template-rows:auto 1fr;
}
.service-split-intro { max-width:740px; padding-bottom:16px; }
.service-split-intro .eyebrow { margin-bottom:16px; color:var(--brand-teal); }
.service-split-intro h2 {
  margin:0;
  font-family:var(--serif);
  font-size:clamp(3.25rem,4.9vw,5.65rem);
  font-weight:400;
  line-height:.99;
  letter-spacing:-.055em;
  color:var(--brand-charcoal);
}
.service-split-intro h2 em { color:var(--brand-teal); font-style:normal; font-weight:500; }
.service-split-intro > p:last-child {
  max-width:650px;
  margin:24px 0 0;
  color:var(--muted);
  line-height:1.75;
  font-size:.88rem;
}
.service-split-wheel-wrap {
  position:relative;
  width:100%;
  height:610px;
  min-height:610px;
  align-self:end;
  isolation:isolate;
  overflow:hidden;
}
.service-split-wheel {
  position:absolute;
  left:50%;
  top:50%;
  width:500px;
  height:500px;
  transform:translate(-50%,-50%);
  overflow:visible;
  z-index:2;
}
.service-split-guide { fill:none; stroke:rgba(48,58,62,.07); stroke-width:1; stroke-dasharray:1 5; }
.service-split-ring { fill:none; stroke:rgba(48,58,62,.07); stroke-width:1; }
.service-split-segment {
  fill:none;
  stroke-linecap:round;
  stroke-width:10;
  opacity:.60;
  cursor:pointer;
  outline:none;
  transition:opacity .18s ease, stroke-width .18s ease;
}
.service-split-segment:hover,
.service-split-segment:focus,
.service-split-segment.is-active { opacity:1; }
.service-split-segment.is-active { stroke-width:12; }
.service-split-segment.academy { stroke:var(--brand-gold); }
.service-split-segment.scan { stroke:var(--brand-teal); }
.service-split-segment.coaching { stroke:#5e9cac; }
.service-split-segment.wellbeing { stroke:#96bcc1; }
.service-split-hit {
  fill:none;
  stroke:rgba(0,0,0,.001);
  stroke-width:142;
  stroke-linecap:butt;
  cursor:pointer;
  pointer-events:stroke;
  outline:none;
}
.service-split-echo {
  fill:none;
  stroke-linecap:round;
  opacity:0;
  pointer-events:none;
  transform-origin:300px 300px;
  transition:opacity .20s ease, transform .30s cubic-bezier(.2,.8,.2,1);
}
.service-split-echo-outer { stroke-width:2; }
.service-split-echo-far { stroke-width:1; }
.service-split-echo.academy { stroke:var(--brand-gold); }
.service-split-echo.scan { stroke:var(--brand-teal); }
.service-split-echo.coaching { stroke:#5e9cac; }
.service-split-echo.wellbeing { stroke:#96bcc1; }
.service-split-echo-outer.is-active { opacity:1; transform:scale(1.055); }
.service-split-echo-far.is-active { opacity:.34; transform:scale(1.09); }
.service-split-centre {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:310px;
  height:310px;
  border-radius:50%;
  background:#fff;
  border:1px solid rgba(48,58,62,.12);
  display:grid;
  place-items:center;
  text-align:center;
  z-index:4;
  pointer-events:none;
}
.service-split-centre strong {
  display:block;
  font-family:var(--serif);
  font-size:1.62rem;
  font-weight:400;
  letter-spacing:.18em;
  line-height:1;
  color:var(--brand-teal);
}
.service-split-centre span {
  display:block;
  margin-top:12px;
  color:#788184;
  font-size:.48rem;
  letter-spacing:.19em;
  text-transform:uppercase;
}
.service-split-label {
  position:absolute;
  z-index:5;
  width:174px;
  height:92px;
  padding:10px 0;
  border:0;
  background:transparent;
  color:var(--brand-charcoal);
  text-align:left;
  cursor:pointer;
  transition:color .16s ease;
}
.service-split-label strong {
  display:block;
  font-family:var(--serif);
  font-size:1.08rem;
  font-weight:500;
  line-height:1.08;
}
.service-split-label small {
  display:block;
  margin-top:5px;
  color:#7b8587;
  font-size:.47rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.service-split-label i {
  display:block;
  margin-top:10px;
  width:105px;
  height:1px;
  background:var(--line);
  transition:width .18s ease, background .18s ease, height .18s ease;
}
.service-split-label span {
  display:block;
  height:18px;
  margin-top:7px;
  opacity:0;
  overflow:hidden;
  color:currentColor;
  font-size:.46rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:opacity .15s ease;
}
.service-split-label.is-active i { width:122px; height:2px; background:currentColor; }
.service-split-label.is-active span { opacity:1; }
.service-split-label.academy.is-active { color:#a77912; }
.service-split-label.scan.is-active { color:var(--brand-teal); }
.service-split-label.coaching.is-active { color:#4d8c9a; }
.service-split-label.wellbeing.is-active { color:#709da2; }
.service-split-label.academy { left:0; top:16%; }
.service-split-label.scan { right:0; top:16%; text-align:right; }
.service-split-label.coaching { right:0; bottom:13%; text-align:right; }
.service-split-label.wellbeing { left:0; bottom:13%; }
.service-split-label.scan i,
.service-split-label.coaching i { margin-left:auto; }
.service-split-hint {
  position:absolute;
  left:50%;
  bottom:2%;
  transform:translateX(-50%);
  z-index:6;
  margin:0;
  white-space:nowrap;
  color:#899192;
  font-size:.48rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  pointer-events:none;
}
.service-split-detail {
  position:relative;
  min-width:0;
  height:100%;
  min-height:900px;
  padding:52px clamp(38px,3.5vw,58px) 42px;
  background:#fff;
  border-left:1px solid rgba(48,58,62,.12);
  border-top:3px solid var(--service-active);
  display:flex;
  flex-direction:column;
  transition:border-color .16s ease;
}
.service-split-detail::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--service-active);
  opacity:.10;
  transition:background .16s ease;
}
.service-split-detail > * { position:relative; z-index:1; }
.service-split-selection {
  min-height:52px;
  padding:0 15px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  border-left:2px solid var(--service-active);
  background:var(--service-soft);
  transition:background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.service-split-selection-left {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--service-active);
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.service-split-selection-left i { width:8px; height:8px; background:currentColor; }
.service-split-selection-right {
  color:#92999a;
  font-size:.46rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.service-split-detail.selection-flash .service-split-selection { animation:serviceSelectionFlash .48s ease-out; }
@keyframes serviceSelectionFlash {
  0% { box-shadow:inset 0 0 0 0 var(--service-active); }
  45% { box-shadow:inset 0 0 0 2px var(--service-active); }
  100% { box-shadow:inset 0 0 0 0 var(--service-active); }
}
.service-split-detail h3 {
  margin:28px 0 0;
  font-family:var(--serif);
  font-size:clamp(2.75rem,3.35vw,3.55rem);
  font-weight:400;
  line-height:1.055;
  letter-spacing:-.045em;
  color:var(--brand-charcoal);
}
.service-split-detail > p {
  max-width:95%;
  margin:22px 0 0;
  padding:0;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.78;
}
.service-split-detail-link {
  display:inline-flex;
  width:max-content;
  gap:10px;
  margin-top:26px;
  padding-bottom:10px;
  border-bottom:1px solid currentColor;
  font-size:.8rem;
  font-weight:700;
}
.service-split-choices {
  width:100%;
  margin-top:38px;
  border-top:1px solid var(--line);
}
.service-split-choices > p {
  margin:16px 0 7px;
  color:#98a0a1;
  font-size:.46rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.service-split-choice {
  width:100%;
  height:54px;
  padding:0 10px;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  display:grid;
  grid-template-columns:13px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  text-align:left;
  cursor:pointer;
}
.service-split-choice i {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#c8cecf;
  transition:background .14s ease;
}
.service-split-choice span {
  min-width:0;
  font-family:var(--serif);
  font-size:.96rem;
  white-space:nowrap;
  color:var(--brand-charcoal);
}
.service-split-choice small {
  color:#7c8688;
  font-size:.46rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  white-space:nowrap;
}
.service-split-choice.is-active { background:var(--service-soft); }
.service-split-choice.is-active i { background:var(--service-active); }
.service-split-choice.is-active span { color:var(--service-active); }

@media(max-width:1180px) {
  .service-orbit.service-split { grid-template-columns:1fr; min-height:0; }
  .service-split-left { padding-bottom:26px; }
  .service-split-wheel-wrap { height:590px; min-height:590px; }
  .service-split-detail {
    min-height:720px;
    height:720px;
    border-left:0;
    border-top:3px solid var(--service-active);
    padding-top:42px;
  }
}
@media(max-width:760px) {
  .service-orbit.service-split { width:calc(100% - 28px); }
  .service-split-left { padding:34px 18px 22px; }
  .service-split-intro h2 { font-size:clamp(2.65rem,12vw,4rem); }
  .service-split-wheel-wrap { height:540px; min-height:540px; }
  .service-split-wheel { width:360px; height:360px; }
  .service-split-centre { width:226px; height:226px; }
  .service-split-centre strong { font-size:1.08rem; }
  .service-split-centre span { margin-top:8px; font-size:.36rem; }
  .service-split-label { width:120px; height:80px; }
  .service-split-label strong { font-size:.83rem; }
  .service-split-label small { font-size:.40rem; }
  .service-split-label i { width:70px; }
  .service-split-label.is-active i { width:82px; }
  .service-split-hint { font-size:.36rem; }
  .service-split-detail {
    height:680px;
    min-height:680px;
    padding:28px 20px;
  }
  .service-split-detail h3 { margin-top:20px; font-size:2.25rem; }
  .service-split-detail > p { margin-top:18px; font-size:.86rem; }
  .service-split-detail-link { margin-top:20px; }
  .service-split-choices { margin-top:28px; }
  .service-split-selection-right,
  .service-split-choice small { display:none; }
}


/* Push the core brand colours through the rest of the homepage. */
.visual-story { background:var(--brand-teal-tint); }
.about.section { background:var(--brand-teal); }
.about-copy .eyebrow { color:var(--brand-cream); }
.about-copy h2 em { color:var(--brand-cream); }
.about-copy p { color:rgba(255,255,255,.84); }
.signature-line span { background:var(--brand-gold); }
.manifesto { background:var(--brand-cream); }
.principle.active .principle-title { color:var(--brand-teal); }
.principle-toggle { border-color:rgba(34,119,144,.35); color:var(--brand-teal); }
.newsletter-shell { background:var(--brand-teal-tint); border-top-color:var(--brand-gold); }
.newsletter-form input { background:#fff; }
.page-cta { background:var(--brand-teal); }
.programme-grid.section { background:var(--brand-cream); }
.inner-page .page-strip { background:var(--brand-teal-tint); }

/* Three testimonials remain visible. The active voice is crisp and central. */
.testimonials-v4 { background:var(--brand-cream); overflow:hidden; }
.testimonial-v4-head {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(320px,.7fr);
  gap:clamp(42px,8vw,120px);
  align-items:end;
  margin-bottom:clamp(46px,5vw,70px);
}
.testimonial-v4-head h2 { margin:0; font-size:clamp(3rem,4.4vw,5.15rem); line-height:1; letter-spacing:-.055em; }
.testimonial-v4-head h2 em { color:var(--brand-teal); font-weight:500; }
.testimonial-v4-head > p { margin:0; max-width:600px; color:var(--muted); line-height:1.8; }
.testimonial-carousel { position:relative; }
.testimonial-depth-stage { position:relative; height:clamp(520px,43vw,620px); overflow:visible; perspective:1300px; }
.testimonial-depth-card {
  position:absolute;
  left:50%; top:0;
  width:min(58%,760px);
  height:100%;
  padding:clamp(34px,4.4vw,62px);
  background:#fff;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  cursor:pointer;
  transition:transform .7s cubic-bezier(.2,.72,.2,1), opacity .55s ease, filter .55s ease, background .55s ease;
  transform-origin:center;
}
.testimonial-depth-card::before { content:''; position:absolute; left:0; top:0; right:0; height:3px; background:var(--brand-teal); }
.testimonial-depth-card.is-active { z-index:3; transform:translateX(-50%) scale(1); opacity:1; filter:none; cursor:default; }
.testimonial-depth-card.is-prev { z-index:1; transform:translateX(-117%) scale(.88) rotateY(5deg); opacity:.43; filter:blur(2.1px); background:#fff; }
.testimonial-depth-card.is-next { z-index:2; transform:translateX(17%) scale(.88) rotateY(-5deg); opacity:.43; filter:blur(2.1px); background:#fff; }
.testimonial-depth-card:hover:not(.is-active) { opacity:.58; filter:blur(1.2px); }
.testimonial-card-mark { color:var(--brand-gold); font-family:var(--serif); font-size:5.8rem; line-height:.6; }
.testimonial-depth-card blockquote {
  margin:clamp(35px,4vh,55px) 0 40px;
  font-family:var(--serif);
  font-size:clamp(1.18rem,1.65vw,1.6rem);
  line-height:1.58;
  letter-spacing:-.018em;
  color:var(--brand-charcoal);
  overflow:hidden;
}
.testimonial-depth-card:not(.is-active) blockquote {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:8;
}
.testimonial-depth-card footer { margin-top:auto; padding-top:24px; border-top:1px solid var(--line); display:flex; gap:14px; align-items:center; }
.testimonial-monogram { width:46px; height:46px; flex:0 0 auto; display:grid; place-items:center; background:var(--brand-teal); color:#fff; font-size:.7rem; font-weight:700; }
.testimonial-depth-card footer div { display:flex; flex-direction:column; gap:4px; }
.testimonial-depth-card footer strong { font-size:.92rem; }
.testimonial-depth-card footer small { color:var(--muted); font-size:.7rem; }
.testimonial-carousel-controls { display:flex; justify-content:center; align-items:center; gap:30px; margin-top:30px; }
.testimonial-dots { display:flex; gap:9px; }
.testimonial-dots button { width:26px; height:3px; border:0; padding:0; background:rgba(48,58,62,.2); cursor:pointer; transition:width .3s ease, background .3s ease; }
.testimonial-dots button.is-active { width:46px; background:var(--brand-gold); }
.testimonial-arrows { display:flex; gap:8px; }
.testimonial-arrows button { width:43px; height:43px; border:1px solid var(--line); background:#fff; cursor:pointer; color:var(--brand-teal); transition:.2s ease; }
.testimonial-arrows button:hover { border-color:var(--brand-teal); }

@media (max-width:1180px) {
  .main-nav { gap:14px; font-size:.86rem; }
  .service-orbit-layout { grid-template-columns:1fr; }
  .service-wheel-wrap { max-width:650px; }
  .service-detail { min-height:0; }
  .value-band.section { grid-template-columns:.9fr 1.1fr; }
  .value-circle-mark { display:none; }
}

@media (max-width:900px) {
  .value-band.section, .service-orbit-head, .testimonial-v4-head { grid-template-columns:1fr; gap:30px; }
  .service-wheel-wrap { max-width:580px; }
  .testimonial-depth-card { width:72%; }
  .testimonial-depth-card.is-prev { transform:translateX(-106%) scale(.88); }
  .testimonial-depth-card.is-next { transform:translateX(6%) scale(.88); }
}

@media (max-width:760px) {
  .nav-login-end { margin:16px 0 0; justify-content:space-between; width:100%; padding:15px 0 !important; border-width:1px 0 0 !important; }
  .value-band.section, .service-orbit.section { width:calc(100% - 28px); }
  .service-orbit.section { padding-inline:20px; }
  .service-orbit-head h2 { font-size:clamp(2.8rem,12vw,4.1rem); }
  .service-wheel-wrap { width:100%; max-width:500px; margin-bottom:30px; }
  .service-node { width:128px; min-height:58px; padding:9px 10px 8px; }
  .service-node strong { font-size:.82rem; }
  .service-node span { margin-top:5px; font-size:.47rem; letter-spacing:.08em; }
  .service-node span b { display:none; }
  .service-node-scan { left:8%; top:16%; }
  .service-node-academy { right:7%; top:16%; }
  .service-node-coaching { right:6%; bottom:15%; }
  .service-node-wellbeing { left:6%; bottom:15%; }
  .service-wheel-hint { bottom:-1.5%; font-size:.48rem; letter-spacing:.08em; }
  .wheel-center-copy { width:38%; }
  .wheel-center-copy span { font-size:.9rem; letter-spacing:.13em; }
  .wheel-center-copy small { display:none; }
  .service-detail { padding:32px 22px; }
  .service-detail h3 { font-size:2.4rem; }
  .service-choice { align-items:flex-start; flex-direction:column; gap:4px; }
  .testimonial-depth-stage { height:590px; }
  .testimonial-depth-card { width:82%; padding:30px 24px; }
  .testimonial-depth-card.is-prev { transform:translateX(-102%) scale(.88); opacity:.3; }
  .testimonial-depth-card.is-next { transform:translateX(2%) scale(.88); opacity:.3; }
  .testimonial-depth-card blockquote { font-size:1.05rem; line-height:1.55; }
  .testimonial-card-mark { font-size:4.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  .service-wheel-guide { animation:none !important; }
}


/* ============================================================
   V10 QA / consistency pass
   Final alignment after integrating Layered Halo split panel.
   Goals: one content frame, non-overlapping inner-page heroes,
   stable service interaction, clean Academy login, gold TL icon.
   ============================================================ */
:root {
  --final-frame:1320px;
  --final-gutter:clamp(24px,4vw,48px);
}

/* ---- ONE CONSISTENT CONTAINED PAGE FRAME ---- */
.home-page .section,
.home-page .visual-story,
.home-page .manifesto,
.home-page .testimonials.section,
.home-page .newsletter.section,
.home-page .contact.section,
.home-page .service-orbit.service-split,
.inner-page .section,
.inner-page .page-strip,
.academy-editorial-image,
.scan-hero,
.coaching-hero,
.scan-image-break,
.coaching-image-break,
.page-cta {
  width:min(calc(100% - 48px), var(--final-frame));
  margin-left:auto;
  margin-right:auto;
}

/* Full-bleed moments remain intentional: home hero, academy hero, focus banner. */
.home-hero,
.academy-hero,
.focus-banner { width:100%; }

/* ---- HOMEPAGE HERO: KEEP THE PROOF STRIP INSIDE THE VIEWPORT ---- */
.home-hero { min-height:max(760px,100svh); }
.home-hero-foot {
  left:50% !important;
  right:auto !important;
  width:min(1120px, calc(100vw - 64px)) !important;
  max-width:calc(100vw - 64px);
  transform:translateX(-50%) !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  overflow:hidden;
}
.home-hero-foot > div {
  min-width:0;
  padding:18px 20px;
  grid-template-columns:30px minmax(0,1fr);
}
.home-hero-foot strong,
.home-hero-foot small { min-width:0; overflow-wrap:anywhere; }

/* ---- LAYERED HALO: CENTRED AND ALIGNED TO THE SAME FRAME ---- */
.service-orbit.service-split {
  margin-top:0;
  margin-bottom:var(--section-gap);
  min-height:860px;
  grid-template-columns:minmax(0,1.48fr) minmax(430px,.92fr);
  align-items:stretch;
}
.service-split-left {
  padding:clamp(54px,5vw,72px) clamp(44px,5vw,68px) 32px;
}
.service-split-intro { max-width:700px; }
.service-split-wheel-wrap { height:570px; min-height:570px; }
.service-split-wheel { width:470px; height:470px; }
.service-split-centre { width:292px; height:292px; }
.service-split-detail {
  height:auto;
  min-height:860px;
  padding:48px clamp(36px,3vw,48px) 38px;
}
.service-split-detail h3 { font-size:clamp(2.55rem,3vw,3.35rem); }
.service-split-detail > p { font-size:.9rem; }
.service-split-choices { margin-top:32px; }

/* ---- BUSINESS SCAN: REAL TWO-COLUMN HERO, IMAGE NEVER COVERED ---- */
.scan-hero {
  position:relative;
  min-height:680px;
  margin-top:118px;
  padding:0;
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(420px,.96fr);
  align-items:stretch;
  gap:0;
  overflow:hidden;
  background:var(--brand-cream);
  border:1px solid var(--line);
}
.scan-stage {
  grid-column:2;
  grid-row:1;
  position:relative;
  width:100%;
  height:auto;
  min-height:680px;
  margin:0;
  border:0;
  border-left:1px solid var(--line);
  overflow:hidden;
}
.scan-stage-image {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:left center;
  transform:none;
}
.scan-gradient { background:rgba(48,58,62,.04); }
.scan-index { top:24px; right:24px; }
.scan-copy-card {
  grid-column:1;
  grid-row:1;
  position:relative;
  inset:auto;
  width:auto;
  max-width:none;
  min-height:680px;
  padding:clamp(58px,5vw,78px) clamp(44px,4.8vw,68px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  background:#fff;
  border:0;
  border-left:3px solid var(--brand-gold);
}
.scan-copy-card h1 {
  margin:0;
  max-width:680px;
  font-size:clamp(3.65rem,5.2vw,6.25rem);
  line-height:.94;
}
.scan-copy-card .lede { max-width:590px; }
.scan-page .page-strip { margin-top:28px; }

/* ---- COACHING: CLEAN GRID, HEADLINE NEVER CROSSES THE PHOTO ---- */
.coaching-hero {
  position:relative;
  min-height:680px;
  margin-top:118px;
  padding:0;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  gap:0;
  align-items:stretch;
  overflow:hidden;
  background:var(--brand-cream);
  border:1px solid var(--line);
}
.coaching-copy {
  position:relative;
  z-index:2;
  min-width:0;
  padding:clamp(58px,5vw,80px) clamp(44px,4.8vw,68px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.coaching-copy h1 {
  width:auto;
  max-width:720px;
  margin:0;
  font-size:clamp(3.8rem,5.35vw,6.5rem);
  line-height:.93;
  letter-spacing:-.055em;
}
.coaching-copy .lede { max-width:590px; margin:28px 0 32px; }
.coaching-photo {
  position:relative !important;
  inset:auto !important;
  right:auto !important;
  width:auto !important;
  height:auto;
  min-height:680px;
  margin:0;
  border:0;
  border-left:1px solid var(--line);
  border-top:0;
  overflow:hidden;
}
.coaching-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 24%;
}
.coaching-photo-caption {
  left:0; right:0; bottom:0;
  padding:17px 18px;
  background:rgba(48,58,62,.90);
}
.coaching-ribbon { display:none !important; }
.coaching-page .page-strip { margin-top:28px; }

/* ---- INNER PAGE BODY RHYTHM ---- */
.inner-page .section { margin-top:var(--section-gap); margin-bottom:var(--section-gap); }
.inner-page .content-intro,
.inner-page .content-split { gap:clamp(48px,6vw,82px); }
.scan-image-break,
.coaching-image-break,
.academy-editorial-image { margin-bottom:var(--section-gap); }

/* ---- ACADEMY LOGIN: QUIET, BALANCED SPLIT; NO GIANT SEAL OVER PHOTO ---- */
.academy-login-shell {
  min-height:100svh;
  padding-top:98px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(480px,.92fr);
  background:#fff;
}
.academy-login-visual {
  min-height:calc(100svh - 98px);
  position:relative;
  overflow:hidden;
}
.academy-login-visual > img {
  object-position:center 34%;
}
.academy-login-shade {
  inset:0 !important;
  width:100% !important;
  background:rgba(48,58,62,.56) !important;
}
.academy-login-seal { display:none !important; }
.academy-login-message {
  left:clamp(34px,5vw,78px);
  right:clamp(34px,5vw,78px);
  bottom:clamp(48px,6vw,78px);
  max-width:680px;
}
.academy-login-message h1 {
  max-width:650px;
  font-size:clamp(3.8rem,5.8vw,6.8rem);
  line-height:.92;
}
.academy-login-message p { max-width:610px; }
.academy-login-panel {
  max-width:650px;
  width:100%;
  margin:auto;
  padding:70px clamp(42px,5vw,72px) 64px;
}
.academy-login-logo { width:min(315px,82%); margin-bottom:38px; }
.academy-login-panel h2 { font-size:clamp(3rem,4vw,4.6rem); }
.academy-login-form { gap:17px; }

/* ---- CIRCLE MARK RULE: ACADEMY / GOLD IS ALWAYS TOP-LEFT ---- */
.value-circle-mark { display:block; }

/* ---- RESPONSIVE QA ---- */
@media (max-width:1180px) {
  .service-orbit.service-split { grid-template-columns:1fr; min-height:0; }
  .service-split-wheel-wrap { height:590px; min-height:590px; }
  .service-split-detail { min-height:700px; }

  .scan-hero,
  .coaching-hero {
    grid-template-columns:1fr;
    min-height:0;
  }
  .scan-copy-card,
  .coaching-copy { grid-column:1; grid-row:1; min-height:0; }
  .scan-stage,
  .coaching-photo { grid-column:1; grid-row:2; min-height:540px; border-left:0; border-top:1px solid var(--line); }

  .academy-login-shell { grid-template-columns:1fr 500px; }
}

@media (max-width:900px) {
  .home-hero-foot {
    width:calc(100vw - 40px) !important;
    max-width:calc(100vw - 40px);
  }
  .home-hero-foot > div { padding:14px 13px; }
  .home-hero-foot small { font-size:.61rem; }

  .academy-login-shell { grid-template-columns:1fr; padding-top:78px; }
  .academy-login-visual { min-height:650px; }
  .academy-login-panel { max-width:720px; padding-top:70px; padding-bottom:70px; }
}

@media (max-width:760px) {
  .home-page .section,
  .home-page .visual-story,
  .home-page .manifesto,
  .home-page .testimonials.section,
  .home-page .newsletter.section,
  .home-page .contact.section,
  .home-page .service-orbit.service-split,
  .inner-page .section,
  .inner-page .page-strip,
  .academy-editorial-image,
  .scan-hero,
  .coaching-hero,
  .scan-image-break,
  .coaching-image-break,
  .page-cta { width:calc(100% - 28px); }

  .home-hero { padding-bottom:250px; }
  .home-hero-foot {
    width:calc(100vw - 28px) !important;
    grid-template-columns:1fr;
    bottom:14px;
  }
  .home-hero-foot > div {
    grid-template-columns:28px minmax(0,1fr);
    padding:9px 12px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .home-hero-foot > div:last-child { border-bottom:0; }

  .service-split-wheel { width:350px; height:350px; }
  .service-split-centre { width:218px; height:218px; }
  .service-split-detail { min-height:660px; }

  .scan-hero,
  .coaching-hero { margin-top:84px; }
  .scan-copy-card,
  .coaching-copy { padding:48px 24px; }
  .scan-copy-card h1,
  .coaching-copy h1 { font-size:clamp(3.1rem,13vw,4.6rem); }
  .scan-stage,
  .coaching-photo { min-height:470px; }

  .academy-login-shell { padding-top:78px; }
  .academy-login-visual { min-height:590px; }
  .academy-login-message { left:22px; right:22px; bottom:38px; }
  .academy-login-message h1 { font-size:clamp(3.2rem,14vw,4.8rem); }
  .academy-login-panel { padding:58px 22px; }
}


/* ================================================================
   V11 focused refinement: hero shade lock, snap Halo, Academy access
   ================================================================ */

/* Keep the homepage copy entirely inside the shaded half at desktop widths. */
@media (min-width:1181px) {
  .home-hero-overlay {
    left:auto;
    right:0;
    width:58%;
    background:rgba(48,58,62,.82);
  }
  .home-hero-copy {
    position:absolute;
    left:50%;
    right:clamp(34px,5.6vw,96px);
    width:auto;
    max-width:760px;
    margin:0;
  }
  .home-hero h1 {
    font-size:clamp(4.45rem,6.45vw,7.7rem);
  }
}
@media (min-width:901px) and (max-width:1180px) {
  .home-hero-overlay {
    left:auto;
    right:0;
    width:68%;
    background:rgba(48,58,62,.84);
  }
  .home-hero-copy {
    position:absolute;
    left:39%;
    right:34px;
    width:auto;
    max-width:none;
    margin:0;
  }
  .home-hero h1 { font-size:clamp(4rem,7vw,6.4rem); }
}

/* Layered Halo is a presentation chapter, not demo documentation. */
.service-split-intro > p:last-child { display:none !important; }
.testimonial-v4-head > p { display:none !important; }
.testimonial-v4-head { grid-template-columns:1fr !important; }

/* On large screens the Halo chapter fits almost exactly into one viewport.
   The one-time JS alignment then gives it a gentle slide/snap into view. */
.service-snap-chapter {
  scroll-margin-top:78px;
  scroll-snap-align:start;
}
@media (min-width:1181px) and (min-height:760px) {
  .service-orbit.service-split {
    min-height:0;
    height:calc(100svh - 92px);
    max-height:960px;
    margin-top:0;
    margin-bottom:var(--section-gap);
  }
  .service-split-left {
    min-height:0;
    padding-top:clamp(28px,3.7vh,48px);
    padding-bottom:22px;
  }
  .service-split-intro { padding-bottom:4px; }
  .service-split-intro .eyebrow { margin-bottom:12px; }
  .service-split-intro h2 {
    font-size:clamp(3rem,5.1vh,4.9rem);
    line-height:1;
  }
  .service-split-wheel-wrap {
    height:auto;
    min-height:0;
    align-self:stretch;
  }
  .service-split-wheel {
    width:min(49vh,500px);
    height:min(49vh,500px);
  }
  .service-split-centre {
    width:min(30vh,310px);
    height:min(30vh,310px);
  }
  .service-split-detail {
    min-height:0;
    height:100%;
    padding-top:clamp(30px,4vh,52px);
    padding-bottom:30px;
  }
  .service-split-detail h3 {
    font-size:clamp(2.45rem,4.35vh,3.45rem);
  }
  .service-split-detail > p {
    margin-top:18px;
    font-size:.88rem;
  }
  .service-split-choices { margin-top:28px; }
}

/* Same primary INSIGHTFUL wordmark across every site's chrome. */
.academy-page .site-header .brand-main,
.academy-login-page .site-header .brand-main { display:flex; }

/* Academy access: clear sign-in / invitation-registration modes. */
.academy-login-shell {
  grid-template-columns:minmax(0,1.05fr) minmax(520px,.95fr);
}
.academy-login-panel {
  max-width:820px;
  padding-top:125px;
  justify-content:flex-start;
}
.academy-access-heading h2 {
  margin:0;
  font-size:clamp(3.15rem,4.25vw,5rem);
  line-height:1;
  letter-spacing:-.055em;
  font-weight:500;
}
.academy-access-heading .login-intro {
  max-width:620px;
  margin-bottom:28px;
}
.academy-access-tabs {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  border:1px solid var(--line);
  margin-bottom:30px;
}
.academy-access-tab {
  min-height:54px;
  padding:0 18px;
  border:0;
  background:var(--paper);
  color:var(--muted);
  font-weight:700;
  text-align:left;
  cursor:pointer;
  transition:background .16s ease,color .16s ease,border-color .16s ease;
}
.academy-access-tab + .academy-access-tab { border-left:1px solid var(--line); }
.academy-access-tab.is-active {
  background:var(--brand-aqua);
  color:#fff;
}
.academy-access-panel[hidden] { display:none !important; }
.academy-access-panel { min-height:420px; }
.academy-register-form .form-row { gap:14px; }
.academy-login-form input[type="text"],
.academy-login-form input[type="email"],
.academy-login-form input[type="password"] {
  width:100%;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--paper);
  padding:16px;
  outline:none;
}
.academy-login-form input:focus {
  border-color:var(--brand-aqua);
  box-shadow:0 0 0 2px rgba(34,119,144,.10);
}
.invitation-code-field input {
  border-top:2px solid var(--brand-gold) !important;
}
.register-message {
  min-height:1.2em;
  margin:0;
  color:var(--brand-aqua-deep);
  font-size:.72rem;
  font-weight:650;
}
.invitation-help {
  margin:22px 0 0;
  padding-top:18px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.75rem;
  line-height:1.65;
}
.academy-login-seal,
.academy-login-logo { display:none !important; }

@media (max-width:1180px) {
  .academy-login-shell { grid-template-columns:1fr; }
  .academy-login-panel { max-width:none; padding-top:80px; }
}
@media (max-width:680px) {
  .academy-access-tabs { grid-template-columns:1fr; }
  .academy-access-tab + .academy-access-tab { border-left:0; border-top:1px solid var(--line); }
  .academy-register-form .form-row { grid-template-columns:1fr; }
}


/* ============================================================
   V12 — anchor-safe Halo snap + compact Academy learning story
   ============================================================ */

/* Academy: remove the older floating seal/note and make the hero feel intentional. */
.academy-hero-v12 {
  min-height:720px;
  padding-bottom:78px;
}
.academy-hero-v12 .visual-hero-media img { object-position:center 42%; }
.academy-hero-v12 .visual-hero-shade {
  width:64%;
  background:rgba(48,58,62,.77);
}
.academy-hero-v12 .visual-hero-copy { max-width:760px; }
.academy-hero-v12 h1 {
  font-size:clamp(4.3rem,6.5vw,7.4rem);
  line-height:.94;
}
.academy-hero-v12 h1 em { display:block; color:#fff; font-style:italic; }
.academy-strip { margin-bottom:56px !important; }

.academy-experience {
  width:min(calc(100% - 48px),1320px);
  margin:0 auto 72px;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(44px,6vw,84px);
  align-items:start;
  padding:72px clamp(34px,5vw,70px);
  background:#fff;
  border:1px solid var(--line);
}
.academy-experience-intro { position:sticky; top:118px; }
.academy-experience h2,
.academy-flow h2 {
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(3rem,4.7vw,5.2rem);
  line-height:.98;
  letter-spacing:-.045em;
}
.academy-experience h2 em, .academy-flow h2 em { color:var(--brand-aqua); }
.academy-experience-intro > p:last-child {
  margin:25px 0 0;
  color:var(--muted);
  line-height:1.78;
  max-width:520px;
}
.academy-feature-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.academy-feature {
  min-height:245px;
  padding:28px 28px 30px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.academy-feature > span {
  display:block;
  color:var(--brand-yellow);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.14em;
}
.academy-feature h3 {
  margin:34px 0 12px;
  font-size:1.5rem;
  line-height:1.12;
}
.academy-feature p { margin:0; color:var(--muted); line-height:1.7; font-size:.9rem; }

.academy-flow {
  width:min(calc(100% - 48px),1320px);
  margin:0 auto 72px;
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:610px;
  border:1px solid var(--line);
  background:#fff;
}
.academy-flow-media { min-height:610px; overflow:hidden; border-right:1px solid var(--line); }
.academy-flow-media img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.academy-flow-copy { padding:58px clamp(36px,5vw,70px); }
.academy-flow-copy > h2 { margin-bottom:34px; }
.academy-flow-step {
  display:grid;
  grid-template-columns:42px 1fr;
  gap:18px;
  padding:19px 0;
  border-top:1px solid var(--line);
}
.academy-flow-step b { color:var(--brand-yellow); font-size:.68rem; letter-spacing:.12em; }
.academy-flow-step h3 { margin:0 0 7px; font-size:1.15rem; }
.academy-flow-step p { margin:0; color:var(--muted); line-height:1.65; font-size:.86rem; }

.academy-programmes.section {
  margin-top:0 !important;
  margin-bottom:72px !important;
  padding-top:70px;
  padding-bottom:70px;
}
.academy-programmes .programme-head { margin-bottom:42px; }
.academy-programmes .programme-cards { grid-template-columns:repeat(3,1fr); }
.academy-programmes .programme-card { min-height:270px; }
.academy-cta { margin-bottom:72px; }
.academy-cta-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }

@media (max-width:1050px) {
  .academy-hero-v12 .visual-hero-shade { width:100%; background:rgba(48,58,62,.66); }
  .academy-experience { grid-template-columns:1fr; }
  .academy-experience-intro { position:static; }
  .academy-flow { grid-template-columns:1fr; }
  .academy-flow-media { min-height:440px; border-right:0; border-bottom:1px solid var(--line); }
  .academy-programmes .programme-cards { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:700px) {
  .academy-hero-v12 { min-height:700px; padding-bottom:52px; }
  .academy-experience, .academy-flow { width:calc(100% - 28px); margin-bottom:56px; }
  .academy-experience { padding:48px 20px; }
  .academy-feature-grid { grid-template-columns:1fr; }
  .academy-feature { min-height:0; }
  .academy-flow-copy { padding:44px 22px; }
  .academy-programmes .programme-cards { grid-template-columns:1fr; }
  .academy-cta-actions { display:grid; }
}

/* ============================================================
   V13 — Academy access form scale / balance
   ============================================================ */
.academy-login-panel {
  max-width:860px;
}
.academy-access-heading .login-intro {
  max-width:650px;
  font-size:1.04rem;
  line-height:1.72;
  margin-top:18px;
  margin-bottom:32px;
}
.academy-access-tabs {
  margin-bottom:34px;
}
.academy-access-tab {
  min-height:62px;
  padding:0 22px;
  font-size:.95rem;
  line-height:1.25;
}
.academy-access-panel {
  min-height:440px;
}
.academy-login-form {
  gap:24px;
}
.academy-login-form label {
  gap:10px;
  font-size:.92rem;
  line-height:1.3;
  font-weight:700;
}
.academy-login-form input[type="text"],
.academy-login-form input[type="email"],
.academy-login-form input[type="password"] {
  min-height:58px;
  padding:18px 18px;
  font-size:1rem;
  line-height:1.35;
}
.academy-login-form input::placeholder {
  font-size:.96rem;
}
.login-options {
  font-size:.86rem;
  line-height:1.4;
  align-items:center;
}
.login-options label {
  font-size:.86rem;
  font-weight:500;
}
.login-options input[type="checkbox"] {
  width:18px;
  height:18px;
}
.academy-login-form .button {
  min-height:58px;
  margin-top:2px;
  font-size:.96rem;
}
.register-message,
.login-message {
  min-height:1.4em;
  font-size:.86rem;
  line-height:1.5;
}
.invitation-help {
  margin-top:26px;
  padding-top:20px;
  font-size:.9rem;
  line-height:1.7;
}
.academy-register-form .form-row {
  gap:18px;
}

@media (max-width:680px) {
  .academy-access-tab {
    min-height:58px;
    font-size:.9rem;
  }
  .academy-login-form label {
    font-size:.88rem;
  }
  .academy-login-form input[type="text"],
  .academy-login-form input[type="email"],
  .academy-login-form input[type="password"] {
    min-height:56px;
    font-size:1rem;
  }
  .login-options,
  .login-options label,
  .invitation-help {
    font-size:.84rem;
  }
}


/* ============================================================
   V14 — Circle identity system
   The circular mark is Insightful's recurring secondary brand device.
   Gold / Academy is always the top-left quadrant in the shared SVG.
   ============================================================ */
.brand-main {
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.brand-circle-mini {
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:block;
}
.home-page .site-header:not(.is-scrolled) .brand-circle-mini {
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.12));
}
.footer-brand .brand-circle-mini {
  width:38px;
  height:38px;
  flex-basis:38px;
  margin-left:4px;
}

.section-circle-mark {
  width:74px;
  height:74px;
  display:block;
  margin:0 0 24px;
}
.section-circle-mark-large {
  width:96px;
  height:96px;
  margin-bottom:30px;
}
.circle-intro .section-circle-mark {
  width:68px;
  height:68px;
  margin-bottom:28px;
}

.testimonial-heading-with-mark {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:36px;
  width:100%;
}
.testimonial-heading-with-mark .section-circle-mark {
  width:86px;
  height:86px;
  margin:3px 0 0 auto;
  flex:0 0 auto;
}

.page-cta,
.contact-section {
  position:relative;
  overflow:hidden;
}
.cta-circle-mark {
  position:absolute;
  right:44px;
  top:38px;
  width:94px;
  height:94px;
  opacity:.92;
  pointer-events:none;
}
.contact-circle-mark {
  position:absolute;
  right:clamp(28px,5vw,72px);
  top:clamp(28px,5vw,66px);
  width:112px;
  height:112px;
  opacity:.9;
  pointer-events:none;
}

.academy-access-circle {
  width:86px;
  height:86px;
  display:block;
  margin:0 0 28px;
}
.academy-access-heading {
  position:relative;
}

/* Give recurring circle marks enough air. They are identity stamps, not icons. */
.academy-experience-intro .eyebrow,
.circle-intro .eyebrow {
  margin-top:0;
}

@media (max-width: 1050px) {
  .brand-circle-mini { width:24px; height:24px; flex-basis:24px; }
  .cta-circle-mark { width:72px; height:72px; right:28px; top:28px; opacity:.72; }
  .contact-circle-mark { width:82px; height:82px; opacity:.72; }
  .testimonial-heading-with-mark .section-circle-mark { width:70px; height:70px; }
}
@media (max-width: 700px) {
  .brand-main { gap:8px; }
  .brand-circle-mini { width:20px; height:20px; flex-basis:20px; }
  .footer-brand .brand-circle-mini { width:30px; height:30px; flex-basis:30px; }
  .section-circle-mark, .circle-intro .section-circle-mark { width:58px; height:58px; margin-bottom:20px; }
  .section-circle-mark-large { width:68px; height:68px; }
  .testimonial-heading-with-mark .section-circle-mark { width:56px; height:56px; }
  .cta-circle-mark { width:58px; height:58px; right:18px; top:18px; opacity:.55; }
  .contact-circle-mark { width:64px; height:64px; right:18px; top:18px; opacity:.55; }
  .academy-access-circle { width:68px; height:68px; margin-bottom:20px; }
}

/* ============================================================
   V15 — transparent scroll-linked header circle
   Header mark has no centre fill; rotation follows scroll distance.
   ============================================================ */
.site-header .brand-circle-scroll {
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  transform:rotate(var(--brand-circle-rotation, 0deg));
  transform-origin:50% 50%;
  will-change:transform;
}

@media (prefers-reduced-motion: reduce) {
  .site-header .brand-circle-scroll {
    transform:none !important;
    will-change:auto;
  }
}

/* ================================================================
   V17 — soft blended homepage hero shade
   Keep copy locked to the right, but remove the visible hard split.
   ================================================================ */
@media (min-width:1181px) {
  .home-hero-overlay {
    inset:0;
    width:100%;
    background:
      linear-gradient(90deg,
        rgba(5,20,27,0) 0%,
        rgba(5,20,27,.015) 24%,
        rgba(5,20,27,.08) 34%,
        rgba(5,20,27,.24) 43%,
        rgba(5,20,27,.49) 53%,
        rgba(5,20,27,.70) 64%,
        rgba(5,20,27,.84) 78%,
        rgba(5,20,27,.92) 100%),
      linear-gradient(0deg,
        rgba(5,20,27,.38) 0%,
        rgba(5,20,27,.12) 30%,
        rgba(5,20,27,0) 58%);
  }
}
@media (min-width:901px) and (max-width:1180px) {
  .home-hero-overlay {
    inset:0;
    width:100%;
    background:
      linear-gradient(90deg,
        rgba(5,20,27,.02) 0%,
        rgba(5,20,27,.06) 18%,
        rgba(5,20,27,.18) 30%,
        rgba(5,20,27,.42) 43%,
        rgba(5,20,27,.66) 57%,
        rgba(5,20,27,.84) 76%,
        rgba(5,20,27,.92) 100%),
      linear-gradient(0deg,
        rgba(5,20,27,.40) 0%,
        rgba(5,20,27,.12) 32%,
        rgba(5,20,27,0) 60%);
  }
}

/* ================================================================
   V18 — soft hero seams across inner pages
   Keep image-led compositions structured, but remove ruler-straight
   visual stops. Academy copy is pulled inward toward the composition.
   ================================================================ */

/* Academy: preserve the full-width photograph, feather the dark field
   into the bright image and pull the copy away from the far-left edge. */
@media (min-width:1181px) {
  .academy-hero-v12 .visual-hero-shade {
    inset:0;
    width:100%;
    background:
      linear-gradient(90deg,
        rgba(7,24,31,.88) 0%,
        rgba(7,24,31,.86) 24%,
        rgba(7,24,31,.78) 39%,
        rgba(7,24,31,.62) 53%,
        rgba(7,24,31,.38) 65%,
        rgba(7,24,31,.17) 75%,
        rgba(7,24,31,.05) 84%,
        rgba(7,24,31,0) 92%),
      linear-gradient(0deg,
        rgba(7,24,31,.48) 0%,
        rgba(7,24,31,.14) 31%,
        rgba(7,24,31,0) 57%);
  }
  .academy-hero-v12 .visual-hero-copy {
    max-width:680px;
    margin-left:clamp(86px,10vw,185px);
  }
  .academy-hero-v12 h1 {
    font-size:clamp(4.15rem,6vw,7rem);
    max-width:670px;
  }
  .academy-hero-v12 .lede { max-width:610px; }
}

@media (min-width:901px) and (max-width:1180px) {
  .academy-hero-v12 .visual-hero-shade {
    inset:0;
    width:100%;
    background:
      linear-gradient(90deg,
        rgba(7,24,31,.88) 0%,
        rgba(7,24,31,.83) 30%,
        rgba(7,24,31,.67) 48%,
        rgba(7,24,31,.40) 66%,
        rgba(7,24,31,.16) 80%,
        rgba(7,24,31,.03) 92%),
      linear-gradient(0deg,rgba(7,24,31,.46),rgba(7,24,31,0) 58%);
  }
  .academy-hero-v12 .visual-hero-copy {
    max-width:650px;
    margin-left:clamp(32px,5vw,64px);
  }
}

@media (max-width:900px) {
  .academy-hero-v12 .visual-hero-shade {
    inset:0;
    width:100%;
    background:
      linear-gradient(90deg,rgba(7,24,31,.84),rgba(7,24,31,.58) 72%,rgba(7,24,31,.36)),
      linear-gradient(0deg,rgba(7,24,31,.52),rgba(7,24,31,0) 60%);
  }
  .academy-hero-v12 .visual-hero-copy { margin-left:0; }
}

/* Business Scan: retain the two-column architecture but blend the first
   part of the photograph back into the cream/white content plane. */
@media (min-width:1181px) {
  .scan-stage::after {
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:2;
    background:linear-gradient(90deg,
      rgba(247,245,232,.98) 0%,
      rgba(247,245,232,.72) 7%,
      rgba(247,245,232,.34) 15%,
      rgba(247,245,232,.10) 23%,
      rgba(247,245,232,0) 32%);
  }
  .scan-stage { border-left:0; }
}

/* Coaching: the portrait similarly feathers into the copy column. */
@media (min-width:1181px) {
  .coaching-photo::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:linear-gradient(90deg,
      rgba(247,245,232,.98) 0%,
      rgba(247,245,232,.70) 8%,
      rgba(247,245,232,.30) 17%,
      rgba(247,245,232,.08) 25%,
      rgba(247,245,232,0) 34%);
  }
  .coaching-photo { border-left:0; }
  .coaching-photo-caption { z-index:3; }
}

/* Academy access: soften the image-to-form seam without reducing the
   form's clarity. The white panel still reads as a separate destination. */
@media (min-width:1181px) {
  .academy-login-visual::after {
    content:'';
    position:absolute;
    top:0;
    right:-1px;
    bottom:0;
    width:26%;
    z-index:3;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.34) 58%,#fff 100%);
  }
  .academy-login-message { z-index:4; }
}


/* ============================================================
   V19 — Academy content + restrained circle identity
   ============================================================ */

/* Academy hero: a training-material photograph avoids awkwardly cropped
   faces while keeping the Academy visually connected to Insightful. */
.academy-hero-v12 .visual-hero-media img {
  object-position:center 53%;
}
@media (min-width:1181px) {
  .academy-hero-v12 .visual-hero-copy {
    margin-left:clamp(78px,8.5vw,150px);
  }
}

/* The circle is now a small signature attached to labels, rather than a
   freestanding badge scattered through the page. */
.eyebrow-with-mark {
  display:flex;
  align-items:center;
  gap:11px;
  min-height:30px;
  margin:0 0 16px;
}
.eyebrow-with-mark .eyebrow { margin:0; }
.eyebrow-circle-mark {
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:block;
  opacity:.48;
}
.academy-access-eyebrow { margin-bottom:20px; }
.academy-access-eyebrow .eyebrow-circle-mark { opacity:.42; }

/* Disable the previous large floating identity stamps. Header/footer mini
   marks and the Layered Halo remain as the primary recurring circle uses. */
.section-circle-mark,
.section-circle-mark-large,
.cta-circle-mark,
.contact-circle-mark,
.value-circle-mark,
.academy-access-circle { display:none !important; }

/* Programme catalogue now mirrors the full live Academy offering. */
.academy-programmes .programme-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
.academy-programmes .programme-card { min-height:292px; }
.academy-programmes .programme-card .meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.academy-programmes .programme-card .meta a {
  color:var(--brand-aqua-deep);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
.academy-programmes .programme-card .meta a:hover { text-decoration:underline; }

/* Latest Insightful articles: editorial links, not another card-heavy block. */
.academy-insights.section {
  width:min(calc(100% - 48px),1320px);
  margin:0 auto 72px;
  padding:70px clamp(34px,5vw,70px);
  background:var(--paper);
  border:1px solid var(--line);
}
.academy-insights-head {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(300px,.75fr);
  column-gap:clamp(44px,7vw,100px);
  align-items:end;
  margin-bottom:44px;
}
.academy-insights-head .eyebrow-with-mark { grid-column:1 / -1; }
.academy-insights-head h2 {
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(3rem,4.6vw,5.2rem);
  line-height:.98;
  letter-spacing:-.045em;
}
.academy-insights-head h2 em { color:var(--brand-aqua); }
.academy-insights-head > p {
  margin:0 0 7px;
  color:var(--muted);
  line-height:1.75;
}
.academy-insights-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.academy-insight-card {
  min-height:245px;
  padding:26px 28px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
  color:inherit;
  text-decoration:none;
  display:flex;
  flex-direction:column;
  transition:background .2s ease;
}
.academy-insight-card:hover { background:var(--brand-cream); }
.academy-insight-card > span {
  color:var(--brand-yellow);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.academy-insight-card h3 {
  margin:38px 0 28px;
  font-family:var(--serif);
  font-size:1.55rem;
  line-height:1.18;
  font-weight:500;
}
.academy-insight-card b {
  margin-top:auto;
  color:var(--brand-aqua-deep);
  font-size:.72rem;
}

@media (max-width:1050px) {
  .academy-programmes .programme-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .academy-insights-grid { grid-template-columns:1fr; }
  .academy-insight-card { min-height:190px; }
}
@media (max-width:700px) {
  .eyebrow-circle-mark { width:23px; height:23px; flex-basis:23px; }
  .academy-programmes .programme-cards { grid-template-columns:1fr; }
  .academy-insights.section { width:calc(100% - 28px); padding:48px 20px; margin-bottom:56px; }
  .academy-insights-head { grid-template-columns:1fr; gap:20px; }
  .academy-insights-head .eyebrow-with-mark { grid-column:auto; }
}

/* Laravel auth feedback on the V19 Academy login panel */
.login-alert {
  margin: 0 0 18px;
  padding: 14px 16px;
  border-radius: 14px;
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.45;
}
.login-alert-danger {
  background: rgba(176, 42, 55, .08);
  color: #8f1f2c;
  border: 1px solid rgba(176, 42, 55, .22);
}
.login-alert-success {
  background: rgba(15, 118, 110, .08);
  color: #0f766e;
  border: 1px solid rgba(15, 118, 110, .22);
}
.login-alert-warning {
  background: rgba(180, 120, 20, .08);
  color: #8a5a12;
  border: 1px solid rgba(180, 120, 20, .22);
}
.login-alert a {
  display: inline-block;
  margin-top: 8px;
  color: inherit;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.academy-login-form input.is-invalid {
  border-color: rgba(176, 42, 55, .55) !important;
}
.academy-login-form input.is-readonly {
  background: rgba(6, 22, 29, .04);
  color: rgba(6, 22, 29, .72);
  cursor: default;
}
.login-field-error {
  margin: -8px 0 0;
  font-size: .72rem;
  font-weight: 650;
  color: #8f1f2c;
}
.invitation-context {
  margin: 0 0 22px;
  padding: 18px 18px 16px;
  border-radius: 16px;
  border: 1px solid rgba(34, 119, 144, .18);
  background: linear-gradient(180deg, rgba(34, 119, 144, .07), rgba(34, 119, 144, .03));
}
.invitation-context-label {
  margin: 0;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(6, 22, 29, .55);
}
.invitation-context-title {
  margin: 8px 0 0;
  font-family: var(--serif);
  font-size: 1.35rem;
  line-height: 1.25;
  letter-spacing: -.02em;
  color: var(--ink);
}
.invitation-context-courses {
  margin-top: 14px;
}
.invitation-context-courses ul {
  margin: 8px 0 0;
  padding: 0 0 0 18px;
  display: grid;
  gap: 4px;
  color: rgba(6, 22, 29, .78);
  font-size: .9rem;
  line-height: 1.45;
}
.invitation-email-note {
  margin: -10px 0 0 !important;
  padding-top: 0 !important;
  font-size: .78rem !important;
  color: rgba(6, 22, 29, .55);
}

/* Keep white home header legible over the light left-side hero photo */
.home-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(48, 58, 62, .72) 0%, rgba(48, 58, 62, .35) 110px, transparent 200px),
    linear-gradient(90deg, rgba(48, 58, 62, .22) 0%, transparent 48%);
}

/* A backdrop-filter on the header becomes the containing block for the
   fixed mobile menu, so the open panel collapses into the bar and its
   links cover the Academy login hero. Desktop blur stays intact. */
@media (max-width: 760px) {
  .site-header.is-scrolled,
  .inner-page .site-header:not(.is-scrolled),
  .academy-login-page .site-header:not(.is-scrolled),
  .home-page .site-header:not(.is-scrolled) {
    backdrop-filter: none;
  }
}
