:root {
  --teal: #46c7c7;
  --teal-dark: #069eb1;
  --teal-deep: #007e91;
  --ink: #07182f;
  --navy: #07182f;
  --muted: #526176;
  --mist: #eaf9f9;
  --line: rgba(7, 24, 47, 0.13);
  --white: #ffffff;
  --shadow: 0 22px 70px rgba(7, 24, 47, 0.12);
  --radius: 28px;
  --header-h: 88px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
section, footer { scroll-margin-top: var(--header-h); }
.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;
}
.skip-link {
  position: fixed;
  left: 16px;
  top: -100px;
  z-index: 1000;
  padding: 10px 14px;
  border-radius: 8px;
  color: var(--white);
  background: var(--ink);
}
.skip-link:focus { top: 12px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header-h);
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid rgba(7, 24, 47, 0.07);
  backdrop-filter: blur(16px);
}
.header-inner {
  width: min(1440px, 100%);
  height: 100%;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 64px);
  display: flex;
  align-items: center;
  gap: clamp(22px, 3vw, 50px);
}
.brand { flex: 0 0 auto; }
.brand img { width: clamp(210px, 17vw, 264px); height: auto; }
.site-nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: clamp(20px, 2.4vw, 38px);
}
.site-nav a {
  position: relative;
  font-size: 0.9rem;
  font-weight: 650;
  text-decoration: none;
}
.site-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 2px;
  background: var(--teal-dark);
  transition: right 180ms ease;
}
.site-nav a:hover::after, .site-nav a:focus-visible::after { right: 0; }
.site-nav a.is-current::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.social-link {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  text-decoration: none;
  transition: background 180ms ease;
}
.social-link:hover, .social-link:focus-visible { background: var(--mist); }
.social-link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.social-link:nth-child(2) svg { fill: currentColor; stroke: none; }
.menu-toggle { display: none; }

.button {
  min-height: 54px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #032d36;
  background: var(--teal);
  box-shadow: 0 12px 30px rgba(70, 199, 199, 0.25);
  font-weight: 760;
  text-decoration: none;
  transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}
.button:hover, .button:focus-visible {
  transform: translateY(-2px);
  background: #65d5d5;
  box-shadow: 0 16px 34px rgba(70, 199, 199, 0.32);
}
.button-small { min-height: 46px; padding: 0 19px; font-size: 0.88rem; }

.hero {
  position: relative;
  min-height: min(780px, calc(100vh - var(--header-h)));
  overflow: hidden;
  isolation: isolate;
  background: #e8f8fb;
}
.hero-image {
  position: absolute;
  inset: 0;
  z-index: -3;
  background: url("assets/hero-coastal-walk.webp") center center / cover no-repeat;
}
.hero-wash {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.95) 32%, rgba(255,255,255,.32) 56%, rgba(255,255,255,0) 72%);
}
.hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -17vw;
  bottom: -24%;
  width: 67vw;
  height: 62%;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 45px -30px 70px rgba(231, 250, 251, .62);
}
.hero-inner {
  width: min(1440px, 100%);
  min-height: min(650px, calc(100vh - var(--header-h) - 100px));
  margin: 0 auto;
  padding: clamp(74px, 9vw, 130px) clamp(20px, 5vw, 74px) 150px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.hero-copy { width: min(710px, 52%); }
.eyebrow {
  margin: 0 0 18px;
  color: var(--teal-deep);
  font-size: 0.78rem;
  font-weight: 820;
  line-height: 1.2;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
h1, h2, h3, h4 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}
p { overflow-wrap: break-word; }
h1, h2, h3, h4 { margin-top: 0; color: var(--ink); letter-spacing: -0.045em; }
h1 {
  margin-bottom: 24px;
  max-width: 690px;
  font-size: clamp(3.25rem, 5.6vw, 6.4rem);
  font-weight: 860;
  line-height: 0.92;
  text-transform: uppercase;
}
.dot { color: var(--teal-dark); }
.hero-lede {
  margin: 0 0 32px;
  max-width: 500px;
  color: #1f2b3d;
  font-size: clamp(1.15rem, 1.6vw, 1.52rem);
  line-height: 1.4;
}
.hand-note {
  margin: 0;
  color: #063351;
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-weight: 600;
  line-height: 1.35;
  transform: rotate(-6deg);
}
.hero-note {
  align-self: flex-start;
  margin-top: 22px;
  margin-right: 1vw;
  padding: 20px 26px 17px;
  border: 1px solid rgba(255, 255, 255, .64);
  border-radius: 22px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 16px 44px rgba(7, 24, 47, .16);
  backdrop-filter: blur(10px);
  font-size: clamp(1.7rem, 2.5vw, 2.7rem);
  text-align: center;
}
.hero-note::after, .footer-note::after {
  content: "";
  display: block;
  width: 80%;
  height: 4px;
  margin: 14px auto 0;
  border-radius: 99px;
  background: var(--teal-dark);
  transform: rotate(-6deg);
}
.hero-proof {
  position: absolute;
  left: clamp(20px, 5vw, 74px);
  bottom: 40px;
  display: flex;
  align-items: stretch;
  gap: 0;
}
.proof-item {
  width: 184px;
  padding: 0 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-right: 1px solid var(--teal-dark);
  text-align: center;
  line-height: 1.05;
}
.proof-item:first-child { padding-left: 0; }
.proof-item:last-child { border-right: 0; }
.proof-icon { width: 45px; height: 45px; color: var(--teal-dark); }
.proof-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }

.section-inner { width: min(1440px, 100%); margin: 0 auto; padding: clamp(72px, 8vw, 130px) clamp(20px, 5vw, 74px); }
.solutions { background: linear-gradient(135deg, #edfafa 0%, #fff 47%, #f4fcfc 100%); }
.solutions-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 72px); }
.system-panel, .product-panel {
  min-width: 0;
  border: 1px solid rgba(70, 199, 199, 0.26);
  border-radius: var(--radius);
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.system-heading, .product-copy { padding: clamp(30px, 4vw, 58px); }
.section-heading h2, .product-copy h2 {
  margin-bottom: 22px;
  font-size: clamp(2.3rem, 4vw, 4.6rem);
  font-weight: 830;
  line-height: 0.98;
}
.section-heading > p:last-child, .product-copy > p {
  margin: 0;
  color: var(--muted);
  font-size: 1.08rem;
}
.product-link { margin-top: 4px; }
.body-chain-anatomy {
  position: relative;
  margin: 0 20px 20px;
  border-radius: 22px;
  background: linear-gradient(145deg, #f5fcfc, #e5f7f7);
  overflow: hidden;
}
.body-chain-anatomy img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: contain;
}
.anatomy-connectors {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.anatomy-connectors path {
  fill: none;
  stroke: var(--teal-dark);
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.anatomy-connectors circle {
  fill: var(--teal-dark);
  stroke: var(--white);
  stroke-width: 8;
  paint-order: stroke;
}
.anatomy-labels {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}
.anatomy-labels li {
  position: absolute;
  left: 63%;
  right: 3.5%;
  transform: translateY(-50%);
  color: var(--ink);
}
.anatomy-labels strong {
  display: block;
  font-size: clamp(.94rem, 1.35vw, 1.25rem);
  font-weight: 850;
  line-height: 1;
  letter-spacing: -.02em;
  text-transform: uppercase;
}
.anatomy-labels span {
  display: block;
  margin-top: 6px;
  color: #42536a;
  font-size: clamp(.72rem, 1vw, .92rem);
  font-weight: 560;
  line-height: 1.25;
}
.anatomy-spine { top: 25.1%; }
.anatomy-pelvis { top: 42.4%; }
.anatomy-knee { top: 62.6%; }
.anatomy-ankle { top: 80.1%; }
.anatomy-foot { top: 91.9%; }
.product-panel { display: flex; flex-direction: column; }
.product-copy { padding-bottom: 34px; }
.tick-list { margin: 28px 0 0; padding: 0; list-style: none; display: grid; gap: 13px; }
.tick-list li { position: relative; padding-left: 34px; font-weight: 650; }
.tick-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: -1px;
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border: 2px solid var(--teal-dark);
  border-radius: 50%;
  color: var(--teal-deep);
  font-size: .75rem;
}
.product-visual { position: relative; min-height: 430px; margin-top: auto; overflow: hidden; }
.product-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.07), transparent 48%, rgba(2,70,86,.08)); pointer-events: none; }
.product-visual img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; }
.product-note { position: absolute; z-index: 2; padding: 10px 14px; border-radius: 14px; background: rgba(255,255,255,.85); font-size: 1.2rem; }
.product-note-one { left: 6%; bottom: 11%; }
.product-note-two { right: 4%; top: 7%; transform: rotate(5deg); }

.assessment { background: var(--white); }
.assessment > .section-inner { display: grid; gap: clamp(74px, 9vw, 140px); }
.assessment-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(34px, 7vw, 110px); align-items: center; }
.assessment-copy h2 {
  margin-bottom: 26px;
  font-size: clamp(2.8rem, 5.4vw, 6rem);
  font-weight: 850;
  line-height: .95;
}
.assessment-copy h2 span { color: var(--teal-dark); }
.assessment-copy > p:not(.eyebrow) { max-width: 540px; margin: 0 0 28px; color: var(--muted); font-size: 1.13rem; }
.text-link { display: inline-flex; gap: 12px; color: var(--teal-deep); font-weight: 800; text-decoration: none; border-bottom: 2px solid var(--teal); }
.assessment-gallery {
  min-width: 0;
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
}
.assessment-gallery figure { position: relative; margin: 0; min-height: 220px; border-radius: 20px; overflow: hidden; background: var(--mist); }
.assessment-gallery .gallery-main { grid-row: 1 / 3; min-height: 520px; border-top-left-radius: 180px; }
.assessment-gallery img { width: 100%; height: 100%; object-fit: cover; }
.assessment-gallery .gallery-main img { object-position: 56% center; }
.assessment-gallery figure:nth-child(2) img { object-position: 56% center; }
.assessment-gallery figure:nth-child(3) img { object-position: 58% center; }
.assessment-steps { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(32px, 6vw, 92px); align-items: start; }
.steps-heading h3, .people-heading h3, .final-cta h3 { margin-bottom: 22px; font-size: clamp(2.35rem, 4.5vw, 5rem); font-weight: 840; line-height: .98; }
.steps-heading > p:last-child, .people-heading > p { margin: 0; color: var(--muted); font-size: 1.05rem; }
.steps-grid { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; }
.steps-grid li { min-height: 215px; padding: 26px 30px 30px; border-left: 1px solid var(--teal); border-bottom: 1px solid var(--teal); }
.steps-grid li:nth-child(3), .steps-grid li:nth-child(4) { border-bottom: 0; }
.steps-grid li > span { width: 42px; height: 42px; display: grid; place-items: center; border: 2px solid var(--teal); border-radius: 50%; color: var(--teal-deep); font-size: .78rem; font-weight: 800; }
.steps-grid h4 { margin: 17px 0 8px; font-size: 1.45rem; letter-spacing: -.02em; }
.steps-grid p { margin: 0; color: var(--muted); }
.people { scroll-margin-top: calc(var(--header-h) + 20px); }
.people-heading { display: grid; grid-template-columns: 1fr .75fr; gap: 50px; align-items: end; margin-bottom: 38px; }
.people-heading h3 { margin: 0; }
.people-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.people-card {
  position: relative;
  min-height: 420px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: var(--white);
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  background-position: center;
  background-size: cover;
}
.people-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 33%, rgba(5,21,39,.88) 100%); }
.people-card span { margin-bottom: 7px; color: var(--teal); font-size: .78rem; font-weight: 820; letter-spacing: .16em; text-transform: uppercase; }
.people-card strong { max-width: 240px; font-size: 1.35rem; line-height: 1.15; }
.children-card { background-image: url("assets/assessment-child.webp"); background-position: 56% center; }
.adults-card { background-image: url("assets/assessment-walk.webp"); background-position: 57% center; }
.active-card { background-image: url("assets/hero-coastal-walk.webp"); background-position: 68% center; }
.scoliosis-card { background-image: url("assets/bespoke-insoles-scoliosis-brace.webp"); background-position: 72% center; }
.final-cta {
  padding: clamp(42px, 6vw, 80px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
  border-radius: var(--radius);
  color: var(--white);
  background: var(--ink);
  overflow: hidden;
}
.final-cta > div { max-width: 800px; }
.final-cta .eyebrow { color: var(--teal); }
.final-cta h3 { margin-bottom: 18px; color: var(--white); }
.final-cta p:last-child { margin: 0; color: #c7d2df; font-size: 1.05rem; }
.button-light { flex: 0 0 auto; background: var(--white); color: var(--ink); box-shadow: none; }
.button-light:hover, .button-light:focus-visible { background: var(--teal); }

.site-footer { padding: 64px clamp(20px, 5vw, 74px) 24px; background: #f4fbfb; }
.footer-inner { width: min(1380px, 100%); margin: 0 auto; display: grid; grid-template-columns: .72fr 1.8fr .58fr; gap: 48px; align-items: start; }
.footer-brand img { width: 260px; }
.footer-brand p { margin: 20px 0 0; color: var(--muted); }
.footer-links { display: grid; grid-template-columns: .9fr 1.05fr 1.2fr; gap: 34px; }
.footer-links strong { display: block; margin-bottom: 12px; font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-links p, .footer-links a { color: var(--muted); font-size: .9rem; }
.footer-links p { margin: 0; }
.footer-links a { display: block; margin-bottom: 9px; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.footer-hours dl { margin: 0; color: var(--muted); font-size: .9rem; }
.footer-hours dl div { display: grid; grid-template-columns: minmax(86px, 1fr) auto; gap: 14px; padding: 3px 0; }
.footer-hours dt, .footer-hours dd { margin: 0; }
.footer-hours dd { white-space: nowrap; font-variant-numeric: tabular-nums; }
.footer-note { justify-self: end; font-size: 1.45rem; }
.footer-bottom { width: min(1380px, 100%); margin: 54px auto 0; padding-top: 22px; display: flex; justify-content: space-between; gap: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.footer-bottom p { margin: 0; }
.footer-bottom a { flex: 0 0 auto; font-weight: 720; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 22px; }

.legal-page { background: #f8fcfc; }
.legal-main { padding: clamp(68px, 8vw, 112px) clamp(20px, 5vw, 74px) 96px; }
.legal-shell { width: min(980px, 100%); margin: 0 auto; }
.legal-hero { margin-bottom: 58px; padding-bottom: 42px; border-bottom: 1px solid var(--line); }
.legal-hero h1 { max-width: 850px; margin: 0 0 22px; font-size: clamp(3.5rem, 7vw, 6.4rem); }
.legal-hero p:last-child { max-width: 760px; margin: 0; color: var(--muted); font-size: 1.08rem; }
.legal-content { display: grid; gap: 38px; }
.legal-section { display: grid; grid-template-columns: minmax(150px, .35fr) minmax(0, 1fr); gap: 38px; padding-bottom: 38px; border-bottom: 1px solid var(--line); }
.legal-section:last-child { border-bottom: 0; }
.legal-section h2 { margin: 0; font-size: 1.35rem; line-height: 1.15; }
.legal-copy p, .legal-copy li { color: var(--muted); }
.legal-copy p { margin: 0 0 14px; }
.legal-copy ul { margin: 0; padding-left: 1.2em; }
.legal-copy li + li { margin-top: 9px; }
.legal-copy a { color: var(--teal-dark); font-weight: 720; text-underline-offset: 3px; }

.solutions-page { background: #f8fcfc; }
.solutions-page .site-header { background: rgba(255, 255, 255, .97); }
.solutions-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, #e9f9f9 0%, #fff 52%, #f1fbfb 100%); }
.solutions-hero::after { content: ""; position: absolute; width: 52vw; height: 52vw; right: -20vw; top: -30vw; border: 1px solid rgba(70, 199, 199, .35); border-radius: 50%; pointer-events: none; }
.solutions-hero-inner { width: min(1380px, 100%); min-height: min(680px, calc(100vh - var(--header-h))); margin: 0 auto; padding: clamp(78px, 9vw, 132px) clamp(20px, 5vw, 74px); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); gap: clamp(40px, 7vw, 110px); align-items: center; }
.solutions-hero-copy { position: relative; z-index: 1; }
.solutions-hero-copy h1 { max-width: 780px; margin: 0 0 26px; font-size: clamp(4.2rem, 6.4vw, 7.1rem); }
.solutions-hero-lede { max-width: 640px; margin: 0; color: var(--muted); font-size: clamp(1.1rem, 1.7vw, 1.4rem); line-height: 1.55; }
.solutions-hero-actions { margin-top: 34px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.solutions-hero-visual { position: relative; min-height: 540px; }
.solutions-hero-visual figure { position: absolute; margin: 0; overflow: hidden; background: var(--mist); box-shadow: var(--shadow); }
.solutions-hero-main { inset: 0 48px 42px 0; border-radius: 210px 26px 26px 26px; }
.solutions-hero-main img { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
.solutions-hero-inset { right: 0; bottom: 0; width: 48%; aspect-ratio: 1 / 1.05; border: 7px solid var(--white); border-radius: 26px; }
.solutions-hero-inset img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }
.solutions-hero-note { position: absolute; z-index: 2; top: 30px; right: -6px; max-width: 230px; margin: 0; padding: 17px 20px; border-radius: 16px; background: var(--white); box-shadow: var(--shadow); font-size: 1.05rem; }
.solutions-hero-note strong { color: var(--teal-deep); }
.solutions-list { padding: clamp(76px, 9vw, 138px) clamp(20px, 5vw, 74px); background: var(--white); }
.solutions-list-inner { width: min(1292px, 100%); margin: 0 auto; }
.solutions-list-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 7vw, 110px); align-items: end; margin-bottom: 58px; }
.solutions-list-intro h2 { max-width: 620px; margin: 0; font-size: clamp(3.2rem, 5.5vw, 6rem); }
.solutions-list-intro > p { max-width: 560px; margin: 0; color: var(--muted); font-size: 1.15rem; line-height: 1.65; }
.solution-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.solution-card { min-height: 290px; padding: clamp(26px, 3vw, 42px); display: flex; flex-direction: column; border: 1px solid rgba(70, 199, 199, .38); border-radius: 22px; background: #f5fbfb; }
.solution-card:nth-child(3n) { background: #edf8f8; }
.solution-card-with-photo { padding: 0 clamp(18px, 2vw, 28px) clamp(26px, 3vw, 42px); overflow: hidden; }
.solution-card-image { width: calc(100% + clamp(36px, 4vw, 56px)); height: 250px; margin: 0 clamp(-28px, -2vw, -18px) 26px; object-fit: cover; object-position: center; }
.solution-card-with-photo:nth-child(2) .solution-card-image { object-position: center 34%; }
.solution-card-with-photo:nth-child(3) .solution-card-image { object-position: center 60%; }
.solution-card-number { color: var(--teal-deep); font-size: .78rem; font-weight: 840; letter-spacing: .16em; }
.solution-card h3 { max-width: 470px; margin: 22px 0 14px; font-size: clamp(1.8rem, 2.4vw, 2.65rem); line-height: 1.03; }
.solution-card p { max-width: 520px; margin: auto 0 0; color: var(--muted); font-size: 1.02rem; line-height: 1.55; }

.booking-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: clamp(40px, 8vw, 120px); align-items: end; padding: clamp(82px, 11vw, 150px) clamp(20px, 7vw, 110px) clamp(70px, 9vw, 120px); background: linear-gradient(135deg, #f1fbfb 0%, #fff 68%); }
.booking-hero-copy { max-width: 760px; }
.booking-hero h1 { max-width: 780px; margin: 0 0 28px; font-size: clamp(4.2rem, 6.4vw, 7rem); line-height: .9; letter-spacing: -.065em; }
.booking-hero-copy > p:not(.eyebrow) { max-width: 650px; margin: 0 0 32px; color: var(--muted); font-size: clamp(1.12rem, 1.8vw, 1.42rem); line-height: 1.55; }
.booking-fee-card { padding: clamp(28px, 4vw, 48px); border-radius: 28px; background: #07182f !important; color: #ffffff !important; box-shadow: var(--shadow); }
.booking-fee-card > span { display: block; color: var(--teal); font-size: .78rem; font-weight: 840; letter-spacing: .14em; text-transform: uppercase; }
.booking-fee-card strong { display: block; margin: 18px 0 12px; font-size: clamp(4rem, 7vw, 6.5rem); line-height: .9; letter-spacing: -.06em; }
.booking-fee-card p { max-width: 330px; margin: 0; color: rgba(255,255,255,.72); line-height: 1.55; }
.booking-fee-link { margin-top:22px; display:inline-flex; align-items:center; gap:10px; color:var(--teal); font-size:.92rem; font-weight:760; text-underline-offset:4px; }
.booking-photo-strip { grid-column: 1 / -1; display: grid; grid-template-columns: 1.35fr .8fr .8fr; gap: 14px; margin-top: 6px; }
.booking-photo-strip figure { height: clamp(180px, 22vw, 300px); margin: 0; overflow: hidden; border-radius: 22px; background: var(--mist); }
.booking-photo-strip figure:first-child { border-radius: 120px 22px 22px 22px; }
.booking-photo-strip img { width: 100%; height: 100%; object-fit: cover; }
.booking-photo-strip figure:nth-child(2) img { object-position: center 54%; }
.booking-photo-strip figure:nth-child(3) img { object-position: center 48%; }
.booking-details { padding: clamp(76px, 10vw, 140px) clamp(20px, 7vw, 110px); }
.booking-details-intro { max-width: 740px; margin-bottom: 54px; }
.booking-details h2, .booking-contact h2, .booking-final h2 { margin: 0; font-size: clamp(3rem, 5.5vw, 6rem); line-height: .94; letter-spacing: -.055em; }
.booking-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.booking-detail-grid article { min-height: 250px; padding: 28px; border: 1px solid rgba(70,199,199,.42); border-radius: 22px; background: #f5fbfb; }
.booking-detail-grid article:nth-child(2) { background: #edf8f8; }
.booking-detail-grid span { color: var(--teal-deep); font-weight: 840; letter-spacing: .13em; }
.booking-detail-grid h3 { margin: 42px 0 14px; font-size: clamp(1.5rem, 2.2vw, 2.3rem); line-height: 1; }
.booking-detail-grid p, .booking-contact p:not(.eyebrow), .booking-final p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.booking-contact { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(40px, 9vw, 150px); padding: clamp(70px, 9vw, 120px) clamp(20px, 7vw, 110px); background: #eaf8f8; }
.booking-contact > div:first-child { max-width: 650px; }
.booking-contact p:not(.eyebrow) { margin: 28px 0; font-size: 1.15rem; }
.map-links { display: flex; flex-wrap: wrap; gap: 12px; }
.button-outline { border: 1px solid var(--teal-deep); background: transparent; color: var(--teal-deep); }
.booking-hours { padding-top: 10px; }
.booking-hours dl { margin: 22px 0 0; color: var(--muted); }
.booking-hours dl div { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 7px 0; border-bottom: 1px solid rgba(7,24,47,.12); }
.booking-hours dt, .booking-hours dd { margin: 0; }
.booking-final { padding: clamp(76px, 10vw, 140px) clamp(20px, 7vw, 110px); background: var(--teal); }
.booking-final h2 { max-width: 720px; color: var(--navy); }
.booking-final p:not(.eyebrow) { max-width: 560px; margin: 24px 0 30px; color: rgba(7,24,47,.72); font-size: 1.14rem; }
.faq-page { background:#f8fcfc; }
.faq-hero { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); gap:clamp(44px,8vw,120px); align-items:center; padding:clamp(76px,9vw,132px) clamp(20px,7vw,110px); background:linear-gradient(135deg,#edfafa 0%,#fff 68%); }
.faq-hero-copy { max-width:760px; }
.faq-hero h1 { max-width:760px; margin:0 0 26px; font-size:clamp(4.2rem,6.3vw,7rem); line-height:.91; letter-spacing:-.065em; }
.faq-hero-copy > p:not(.eyebrow) { max-width:620px; margin:0 0 32px; color:var(--muted); font-size:clamp(1.1rem,1.7vw,1.35rem); line-height:1.6; }
.faq-hero-side { min-width:0; }
.faq-price-card { position:relative; z-index:2; width:min(420px,88%); margin:0 0 -54px auto; padding:clamp(28px,3vw,42px); border-radius:28px; color:var(--white); background:var(--navy); box-shadow:var(--shadow); }
.faq-price-card span { display:block; color:var(--teal); font-size:.78rem; font-weight:840; letter-spacing:.15em; text-transform:uppercase; }
.faq-price-card strong { display:block; margin:16px 0 10px; font-size:clamp(4rem,6vw,6rem); line-height:.9; letter-spacing:-.065em; }
.faq-price-card p { max-width:330px; margin:0; color:rgba(255,255,255,.72); line-height:1.55; }
.faq-hero-images { display:grid; grid-template-columns:1.18fr .82fr; gap:12px; padding-right:34px; }
.faq-hero-images figure { height:clamp(250px,30vw,420px); margin:0; overflow:hidden; border-radius:140px 22px 22px 22px; background:var(--mist); }
.faq-hero-images figure:last-child { margin-top:76px; border-radius:22px 100px 22px 22px; }
.faq-hero-images img { width:100%; height:100%; object-fit:cover; }
.faq-content { padding:clamp(80px,10vw,144px) clamp(20px,7vw,110px); background:var(--white); }
.faq-content-intro { width:min(820px,100%); margin-bottom:clamp(54px,7vw,90px); }
.faq-content-intro h2, .faq-final h2 { margin:0; font-size:clamp(3.2rem,5.7vw,6.2rem); line-height:.94; letter-spacing:-.06em; }
.faq-content-intro > p:last-child { max-width:650px; margin:24px 0 0; color:var(--muted); font-size:1.12rem; }
.faq-groups { width:min(1180px,100%); display:grid; gap:70px; }
.faq-group { display:grid; grid-template-columns:minmax(220px,.42fr) minmax(0,1fr); gap:clamp(32px,7vw,100px); align-items:start; }
.faq-group-heading { position:sticky; top:calc(var(--header-h) + 32px); }
.faq-group-heading span { display:block; margin-bottom:18px; color:var(--teal-deep); font-size:.78rem; font-weight:840; letter-spacing:.16em; }
.faq-group-heading h3 { max-width:260px; margin:0; font-size:clamp(1.7rem,2.5vw,2.6rem); line-height:1.02; }
.faq-accordion { border-top:1px solid var(--line); }
.faq-accordion details { border-bottom:1px solid var(--line); }
.faq-accordion summary { position:relative; padding:24px 56px 24px 0; color:var(--ink); font-size:clamp(1.08rem,1.55vw,1.28rem); font-weight:760; line-height:1.35; cursor:pointer; list-style:none; }
.faq-accordion summary::-webkit-details-marker { display:none; }
.faq-accordion summary::after { content:"+"; position:absolute; top:18px; right:0; width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:var(--teal-deep); background:var(--mist); font-size:1.35rem; font-weight:500; transition:transform 180ms ease,background 180ms ease; }
.faq-accordion details[open] summary::after { content:"−"; background:var(--teal); transform:rotate(180deg); }
.faq-accordion details > div { padding:0 56px 24px 0; }
.faq-accordion p { max-width:720px; margin:0; color:var(--muted); line-height:1.65; }
.faq-final { padding:clamp(62px,8vw,108px) clamp(20px,7vw,110px); display:flex; align-items:center; justify-content:space-between; gap:50px; color:var(--white); background:var(--navy); }
.faq-final > div { max-width:820px; }
.faq-final .eyebrow { color:var(--teal); }
.faq-final h2 { color:var(--white); }
.faq-final p:not(.eyebrow) { max-width:650px; margin:24px 0 0; color:rgba(255,255,255,.72); font-size:1.1rem; line-height:1.6; }
.people-hero { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,8vw,120px); align-items:center; padding:clamp(70px,10vw,140px) clamp(20px,7vw,110px); background:linear-gradient(135deg,#f1fbfb 0%,#fff 70%); }
.people-hero h1 { max-width:760px; margin:0 0 26px; font-size:clamp(4rem,5.8vw,6.35rem); line-height:.92; letter-spacing:-.06em; }
.people-hero > div > p:not(.eyebrow) { max-width:620px; margin:0 0 30px; color:var(--muted); font-size:1.25rem; line-height:1.55; }
.people-hero figure { height:clamp(420px,48vw,680px); margin:0; overflow:hidden; border-radius:180px 24px 24px 24px; background:var(--mist); }
.people-hero figure img { width:100%; height:100%; object-fit:cover; object-position:55% center; }
.people-list { padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); }
.people-list-intro { max-width:760px; margin-bottom:54px; }
.people-list h2, .people-final h2 { margin:0; font-size:clamp(3.2rem,5.8vw,6.5rem); line-height:.94; letter-spacing:-.06em; }
.people-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.people-cards article { overflow:hidden; border:1px solid rgba(70,199,199,.42); border-radius:24px; background:#f5fbfb; }
.people-cards article:nth-child(2n) { background:#edf8f8; }
.people-cards img { display:block; width:100%; height:260px; object-fit:cover; }
.people-cards article > div { padding:26px 28px 30px; }
.people-cards span { color:var(--teal-deep); font-size:.78rem; font-weight:840; letter-spacing:.14em; }
.people-cards h3 { margin:20px 0 12px; font-size:clamp(1.65rem,2.5vw,2.5rem); line-height:1; }
.people-cards p { min-height:76px; margin:0 0 22px; color:var(--muted); line-height:1.55; }
.people-cards a { color:var(--teal-deep); font-weight:800; text-decoration-thickness:1px; text-underline-offset:4px; }
.people-final { padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); background:var(--teal); }
.people-final p:not(.eyebrow) { max-width:580px; margin:24px 0 30px; color:rgba(7,24,47,.72); font-size:1.15rem; line-height:1.55; }
.professional-hero { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(40px,8vw,120px); align-items:center; padding:clamp(70px,10vw,140px) clamp(20px,7vw,110px); background:linear-gradient(135deg,#f1fbfb 0%,#fff 70%); }
.professional-hero h1 { max-width:800px; margin:0 0 28px; font-size:clamp(4rem,5.8vw,6.5rem); line-height:.91; letter-spacing:-.065em; }
.professional-hero-copy > p:not(.eyebrow) { max-width:680px; margin:0 0 30px; color:var(--muted); font-size:1.22rem; line-height:1.6; }
.professional-hero-image { height:clamp(420px,46vw,650px); margin:0; overflow:hidden; border-radius:180px 24px 24px 24px; background:var(--mist); }
.professional-hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.professional-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.professional-principle { padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); background:var(--navy); color:var(--white); }
.professional-principle h2, .professional-section-heading h2, .professional-offer h2, .professional-after h2, .professional-final h2 { max-width:900px; margin:0 0 24px; font-size:clamp(3rem,5.7vw,6.2rem); line-height:.94; letter-spacing:-.06em; }
.professional-principle h2 { color:var(--white); }
.professional-principle > p:not(.eyebrow) { max-width:760px; margin:0; color:rgba(255,255,255,.72); font-size:1.15rem; line-height:1.6; }
.professional-grid-section { padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); }
.professional-section-heading { max-width:900px; margin-bottom:54px; }
.professional-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.professional-cards article { min-height:250px; padding:28px; border:1px solid rgba(70,199,199,.42); border-radius:24px; background:#f5fbfb; }
.professional-cards article:nth-child(2n) { background:#edf8f8; }
.professional-cards span { color:var(--teal-deep); font-weight:840; letter-spacing:.12em; }
.professional-cards h3 { margin:42px 0 14px; font-size:clamp(1.7rem,2.6vw,2.5rem); line-height:1; }
.professional-cards p { margin:0; color:var(--muted); line-height:1.55; }
.professional-offer { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px,8vw,120px); padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); background:#eaf8f8; }
.professional-offer ul { margin:0; padding:0; list-style:none; }
.professional-offer li { padding:18px 0 18px 32px; border-bottom:1px solid rgba(7,24,47,.14); color:var(--muted); font-size:1.08rem; line-height:1.5; position:relative; }
.professional-offer li::before { content:""; position:absolute; left:0; top:26px; width:12px; height:12px; border-radius:50%; background:var(--teal); }
.professional-after { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px,8vw,120px); align-items:center; padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); }
.professional-after-image { height:clamp(380px,42vw,580px); margin:0; overflow:hidden; border-radius:24px 160px 24px 24px; background:var(--mist); }
.professional-after-image img { width:100%; height:100%; object-fit:cover; }
.professional-after ol { display:grid; gap:20px; margin:0; padding:0; list-style:none; counter-reset:step; }
.professional-after li { padding-left:54px; color:var(--muted); line-height:1.55; counter-increment:step; position:relative; }
.professional-after li::before { content:counter(step, decimal-leading-zero); position:absolute; left:0; top:0; color:var(--teal-deep); font-weight:840; letter-spacing:.1em; }
.professional-after strong { color:var(--ink); }
.professional-final { padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); background:var(--teal); }
.professional-final p:not(.eyebrow) { max-width:650px; margin:24px 0 30px; color:rgba(7,24,47,.72); font-size:1.15rem; line-height:1.55; }

/* Partner programme */
.partner-hero { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(42px,7vw,110px); align-items:center; padding:clamp(70px,9vw,132px) clamp(20px,7vw,110px); background:linear-gradient(135deg,#f1fbfb 0%,#fff 72%); }
.partner-hero h1 { max-width:760px; margin:0 0 28px; font-size:clamp(4rem,5.8vw,6.35rem); line-height:.91; letter-spacing:-.065em; }
.partner-hero-copy > p:not(.eyebrow) { max-width:650px; margin:0 0 32px; color:var(--muted); font-size:1.22rem; line-height:1.6; }
.partner-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.partner-hero-image { height:clamp(430px,46vw,650px); margin:0; overflow:hidden; border-radius:24px 190px 24px 24px; background:var(--mist); box-shadow:var(--shadow); }
.partner-hero-image img { width:100%; height:100%; object-fit:cover; object-position:57% center; }
.partner-model { padding:clamp(78px,10vw,140px) clamp(20px,7vw,110px); }
.partner-section-heading { max-width:900px; margin-bottom:56px; }
.partner-section-heading h2, .partner-includes h2, .partner-fit h2, .partner-final h2 { max-width:940px; margin:0 0 24px; font-size:clamp(3rem,5.7vw,6.2rem); line-height:.94; letter-spacing:-.06em; }
.partner-section-heading > p:not(.eyebrow), .partner-includes > div > p:not(.eyebrow), .partner-fit-copy > p { max-width:700px; color:var(--muted); font-size:1.12rem; line-height:1.6; }
.partner-pillars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.partner-pillars article { min-height:310px; padding:30px; border:1px solid rgba(70,199,199,.42); border-radius:24px; background:#f5fbfb; }
.partner-pillars article:nth-child(2), .partner-pillars article:nth-child(3) { background:#eaf8f8; }
.partner-pillars span, .partner-steps span { color:var(--teal-deep); font-weight:840; letter-spacing:.13em; }
.partner-pillars h3 { margin:58px 0 14px; font-size:clamp(1.8rem,2.8vw,2.8rem); line-height:1; }
.partner-pillars p { margin:0; color:var(--muted); line-height:1.58; }
.partner-includes { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(42px,8vw,120px); padding:clamp(78px,10vw,140px) clamp(20px,7vw,110px); background:var(--ink); color:var(--white); }
.partner-includes h2 { color:var(--white); }
.partner-includes > div > p:not(.eyebrow) { color:rgba(255,255,255,.72); }
.partner-includes ul { margin:0; padding:0; list-style:none; }
.partner-includes li { position:relative; padding:19px 0 19px 34px; border-bottom:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.78); font-size:1.08rem; line-height:1.5; }
.partner-includes li::before { content:""; position:absolute; left:0; top:27px; width:12px; height:12px; border-radius:50%; background:var(--teal); }
.partner-fit { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(42px,8vw,120px); align-items:start; padding:clamp(78px,10vw,140px) clamp(20px,7vw,110px); background:#f5fbfb; }
.partner-fit-copy > p { margin:0 0 18px; }
.partner-steps { display:grid; gap:14px; }
.partner-steps > div { display:grid; grid-template-columns:54px 1fr; gap:4px 18px; padding:24px; border:1px solid rgba(70,199,199,.36); border-radius:20px; background:var(--white); }
.partner-steps span { grid-row:1 / 3; }
.partner-steps strong { font-size:1.25rem; line-height:1.2; }
.partner-steps p { margin:5px 0 0; color:var(--muted); line-height:1.5; }
.partner-final { padding:clamp(78px,10vw,140px) clamp(20px,7vw,110px); background:var(--teal); }
.partner-final > p:not(.eyebrow) { max-width:680px; margin:24px 0 32px; color:rgba(7,24,47,.74); font-size:1.15rem; line-height:1.6; }
.partner-final .partner-note { max-width:820px; margin:30px 0 0; padding-top:24px; border-top:1px solid rgba(7,24,47,.2); font-size:.9rem; }
.solutions-note { margin-top: 16px; padding: 26px 30px; border-radius: 20px; background: var(--mist); }
.solutions-note p { max-width: 800px; margin: 0; color: var(--muted); }
.solutions-cta { padding: clamp(72px, 8vw, 120px) clamp(20px, 5vw, 74px); background: var(--ink); color: var(--white); }
.solutions-cta-inner { width: min(1292px, 100%); margin: 0 auto; display: flex; align-items: end; justify-content: space-between; gap: 48px; }
.solutions-cta h2 { max-width: 760px; margin: 0 0 18px; color: var(--white); font-size: clamp(3rem, 5vw, 5.6rem); }
.solutions-cta p { max-width: 700px; margin: 0; color: #c7d2df; font-size: 1.08rem; }
.whatsapp-float {
  position: fixed;
  z-index: 90;
  right: 24px;
  bottom: 24px;
  min-height: 54px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 9px;
  border-radius: 999px;
  color: #053d2c;
  background: #4ade80;
  box-shadow: 0 16px 38px rgba(7, 24, 47, .24);
  font-weight: 800;
  text-decoration: none;
}
.whatsapp-float svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Assessment page */
.assessment-page { background: #f8fcfc; }
.assessment-page .site-header { background: rgba(255, 255, 255, .97); }
.assessment-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 5% 94%, rgba(70, 199, 199, .18) 0, rgba(70, 199, 199, 0) 34%),
    linear-gradient(135deg, #f7fdfd 0%, #fff 58%, #eaf9f9 100%);
}
.assessment-hero::after {
  content: "";
  position: absolute;
  right: -10vw;
  bottom: -32vw;
  width: 56vw;
  height: 56vw;
  border: 1px solid rgba(70, 199, 199, .36);
  border-radius: 50%;
  pointer-events: none;
}
.assessment-hero-inner {
  position: relative;
  z-index: 1;
  width: min(1440px, 100%);
  min-height: 720px;
  margin: 0 auto;
  padding: clamp(64px, 7vw, 106px) clamp(20px, 5vw, 74px) clamp(76px, 8vw, 120px);
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(470px, .8fr);
  gap: clamp(54px, 7vw, 112px);
  align-items: center;
}
.assessment-hero-copy h1 {
  max-width: 760px;
  margin-bottom: 30px;
  font-size: clamp(3.35rem, 5vw, 5.55rem);
  line-height: .92;
}
.assessment-hero-copy h1 > span { display: block; }
.assessment-hero-lede {
  max-width: 690px;
  margin: 0;
  color: var(--muted);
  font-size: clamp(1.12rem, 1.5vw, 1.4rem);
  line-height: 1.55;
}
.assessment-hero-actions { margin-top: 34px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.assessment-jump {
  color: var(--teal-deep);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 2px solid var(--teal);
}
.assessment-hero-visual { position: relative; min-height: 560px; }
.assessment-hero-visual figure { margin: 0; overflow: hidden; background: var(--mist); box-shadow: var(--shadow); }
.assessment-hero-main { position: absolute; inset: 0 56px 0 0; border-radius: 240px 28px 28px 28px; }
.assessment-hero-main img { width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }
.assessment-hero-inset {
  position: absolute;
  right: 0;
  bottom: 38px;
  width: 44%;
  aspect-ratio: 1 / 1.08;
  border: 8px solid var(--white);
  border-radius: 24px;
}
.assessment-hero-inset img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }

.assessment-process {
  width: min(1440px, 100%);
  margin: 0 auto;
  padding: clamp(80px, 9vw, 140px) clamp(20px, 5vw, 74px);
}
.assessment-process-intro {
  margin-bottom: clamp(48px, 6vw, 84px);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr);
  gap: clamp(42px, 7vw, 110px);
  align-items: end;
}
.assessment-process-intro h2,
.assessment-outcome-copy h2,
.assessment-booking h2 {
  margin: 0;
  font-size: clamp(2.75rem, 5.2vw, 5.7rem);
  font-weight: 850;
  line-height: .94;
}
.assessment-process-intro > p {
  margin: 0 0 4px;
  color: var(--muted);
  font-size: 1.08rem;
}
.clinical-steps { margin: 0; padding: 0; display: grid; gap: 14px; list-style: none; }
.clinical-step {
  position: relative;
  min-height: 250px;
  padding: clamp(28px, 4vw, 54px);
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) minmax(300px, .58fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  border: 1px solid rgba(7, 24, 47, .1);
  border-radius: 26px;
  background: var(--white);
  box-shadow: 0 16px 50px rgba(7, 24, 47, .06);
  overflow: hidden;
}
.clinical-step-number {
  align-self: start;
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border: 2px solid var(--teal);
  border-radius: 50%;
  color: var(--teal-deep);
  font-size: .88rem;
  font-weight: 850;
  letter-spacing: .1em;
}
.clinical-step-label {
  margin: 0 0 9px;
  color: var(--teal-deep);
  font-size: .75rem;
  font-weight: 840;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.clinical-step h3 { margin: 0 0 14px; font-size: clamp(2rem, 3.2vw, 3.65rem); font-weight: 840; line-height: .98; }
.clinical-step-copy > p:last-child { max-width: 760px; margin: 0; color: var(--muted); font-size: 1.05rem; }
.clinical-step-featured {
  min-height: 360px;
  grid-template-columns: 84px minmax(0, .9fr) minmax(340px, .72fr);
  color: var(--white);
  background: var(--ink);
}
.clinical-step-featured .clinical-step-number { color: var(--teal); }
.clinical-step-featured .clinical-step-label { color: var(--teal); }
.clinical-step-featured h3 { color: var(--white); }
.clinical-step-featured .clinical-step-copy > p:last-child { color: #c7d2df; }
.clinical-step-image { align-self: stretch; min-height: 260px; margin: -28px -28px -28px 0; border-radius: 190px 22px 22px 22px; overflow: hidden; }
.clinical-step-image img { width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }
.clinical-step-featured-reverse { background: linear-gradient(135deg, #063351, #07182f); }
.clinical-step-featured-reverse .clinical-step-image { border-radius: 22px 190px 22px 22px; }

.assessment-outcome {
  display: grid;
  grid-template-columns: minmax(420px, .92fr) minmax(0, 1.08fr);
  background: var(--white);
}
.assessment-outcome-image { min-height: 650px; overflow: hidden; }
.assessment-outcome-image img { width: 100%; height: 100%; object-fit: cover; object-position: 56% center; }
.assessment-outcome-copy {
  padding: clamp(64px, 8vw, 130px) clamp(32px, 7vw, 112px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.assessment-outcome-copy > p:not(.eyebrow) { margin: 28px 0 0; color: var(--muted); font-size: 1.1rem; }
.assessment-outcome-copy blockquote {
  margin: 42px 0 0;
  padding: 22px 0 22px 28px;
  border-left: 4px solid var(--teal);
  color: var(--ink);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  font-weight: 760;
  line-height: 1.25;
}

.assessment-booking { padding: clamp(80px, 9vw, 140px) clamp(20px, 5vw, 74px); background: linear-gradient(135deg, #e9f9f9, #f9fdfd); }
.assessment-booking-inner { width: min(1292px, 100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(340px, .55fr); gap: clamp(48px, 8vw, 130px); align-items: center; }
.assessment-booking h2 { max-width: 800px; }
.assessment-booking-inner > div:first-child > p:last-child { max-width: 700px; margin: 28px 0 0; color: var(--muted); font-size: 1.08rem; }
.assessment-fee-card { padding: 36px; border: 1px solid rgba(70, 199, 199, .4); border-radius: 26px; background: var(--white); box-shadow: var(--shadow); }
.assessment-fee-card > span { color: var(--teal-deep); font-size: .76rem; font-weight: 840; letter-spacing: .18em; text-transform: uppercase; }
.assessment-fee-card > strong { display: block; margin: 8px 0 10px; font-size: 3.5rem; line-height: 1; letter-spacing: -.06em; }
.assessment-fee-card > p { margin: 0 0 26px; color: var(--muted); }
.assessment-fee-card .button { width: 100%; }

@media (max-width: 1180px) {
  .menu-toggle {
    width: 44px;
    height: 44px;
    margin-left: 10px;
    padding: 10px;
    display: grid;
    flex: 0 0 44px;
    order: 3;
    align-content: center;
    gap: 5px;
    border: 0;
    border-radius: 50%;
    background: var(--mist);
    cursor: pointer;
  }
  .menu-toggle span:not(.sr-only) { width: 23px; height: 2px; display: block; margin: 0 auto; background: var(--ink); transition: transform 180ms ease, opacity 180ms ease; }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(4) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav {
    position: absolute;
    top: var(--header-h);
    left: 12px;
    right: 12px;
    margin: 0;
    padding: 14px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    border: 1px solid rgba(7, 24, 47, .1);
    border-radius: 18px;
    background: var(--white);
    box-shadow: var(--shadow);
  }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: 14px; border-bottom: 1px solid var(--line); }
  .site-nav a:last-child { border-bottom: 0; }
  .site-nav a::after { display: none; }
  .header-actions { margin-left: auto; order: 2; }
  .hero-copy { width: min(650px, 58%); }
  .hero-note { display: none; }
  .people-grid { grid-template-columns: repeat(2, 1fr); }
  .people-card { min-height: 360px; }
  .assessment-hero-inner { grid-template-columns: minmax(0, 1fr) minmax(390px, .75fr); gap: 48px; }
  .assessment-hero-visual { min-height: 500px; }
}

@media (max-width: 1080px) {
  .header-actions { display: none; }
  .menu-toggle { margin-left: auto; }
}

@media (max-width: 860px) {
  :root { --header-h: 74px; }
  .site-header { height: var(--header-h); }
  .header-inner { padding-inline: 18px; gap: 12px; }
  .brand img { width: 194px; }
  .header-actions { display: none; }
  .menu-toggle {
    width: 44px;
    height: 44px;
    margin-left: auto;
    padding: 10px;
    display: grid;
    align-content: center;
    gap: 5px;
    border: 0;
    border-radius: 50%;
    background: var(--mist);
    cursor: pointer;
  }
  .menu-toggle span:not(.sr-only) { width: 23px; height: 2px; display: block; margin: 0 auto; background: var(--ink); transition: transform 180ms ease, opacity 180ms ease; }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(4) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav {
    position: absolute;
    top: var(--header-h);
    left: 12px;
    right: 12px;
    margin: 0;
    padding: 14px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    border: 1px solid rgba(7, 24, 47, .1);
    border-radius: 18px;
    background: var(--white);
    box-shadow: var(--shadow);
  }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: 14px; border-bottom: 1px solid var(--line); }
  .site-nav a:last-child { border-bottom: 0; }
  .site-nav a::after { display: none; }

  .hero { min-height: auto; padding-bottom: 0; }
  .hero-image { position: relative; height: clamp(310px, 56vw, 500px); background-position: 64% center; }
  .hero-wash { display: none; }
  .hero::after { display: none; }
  .hero-inner { min-height: 0; padding: 56px 24px 42px; display: block; background: linear-gradient(135deg, #fff 0%, #effafa 100%); }
  .hero-copy { width: 100%; max-width: 680px; }
  h1 { font-size: clamp(3rem, 10.5vw, 5.3rem); }
  .hero-proof { position: static; padding: 28px 20px; background: var(--white); justify-content: space-around; }
  .proof-item { width: 33.33%; padding: 0 18px; }

  .solutions-grid { grid-template-columns: 1fr; }
  .assessment-intro, .assessment-steps { grid-template-columns: 1fr; }
  .assessment-gallery { order: -1; }
  .assessment-gallery .gallery-main { min-height: 470px; }
  .people-heading { grid-template-columns: 1fr; gap: 22px; }
  .final-cta { align-items: flex-start; flex-direction: column; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .footer-hours { grid-column: 1 / -1; max-width: 360px; }
  .footer-note { justify-self: start; }

  .assessment-hero-inner { min-height: 0; grid-template-columns: 1fr; }
  .assessment-hero-copy h1 { max-width: 780px; }
  .assessment-hero-visual { width: min(660px, 100%); min-height: 560px; }
  .assessment-process-intro { grid-template-columns: 1fr; gap: 24px; }
  .clinical-step,
  .clinical-step-featured { grid-template-columns: 72px minmax(0, 1fr); }
  .clinical-step-image { grid-column: 2; min-height: 300px; margin: 12px 0 0; }
  .assessment-outcome { grid-template-columns: 1fr; }
  .assessment-outcome-image { min-height: 520px; }
  .assessment-booking-inner { grid-template-columns: 1fr; }
  .solutions-hero-inner { grid-template-columns: 1fr; }
  .solutions-hero-visual { width: min(660px, 100%); min-height: 560px; }
  .solutions-list-intro { grid-template-columns: 1fr; gap: 24px; }
  .solutions-cta-inner { align-items: flex-start; flex-direction: column; }
  .booking-hero { grid-template-columns: 1fr; padding: 64px 18px 72px; gap: 42px; }
  .booking-hero h1 { font-size: clamp(3.5rem, 14vw, 5.5rem); }
  .booking-detail-grid, .booking-contact { grid-template-columns: 1fr; }
  .booking-photo-strip { grid-template-columns: 1.2fr .8fr; }
  .booking-photo-strip figure:first-child { grid-row: span 2; height: 360px; }
  .booking-photo-strip figure:not(:first-child) { height: 173px; }
  .booking-details, .booking-contact, .booking-final { padding-left: 18px; padding-right: 18px; }
  .booking-detail-grid h3 { margin-top: 32px; }
  .faq-hero { grid-template-columns:1fr; padding:64px 18px 76px; gap:48px; }
  .faq-hero h1 { font-size:clamp(3.5rem,14vw,5.5rem); }
  .faq-hero-side { width:min(680px,100%); }
  .faq-price-card { width:min(420px,86%); }
  .faq-content { padding:76px 18px; }
  .faq-group { grid-template-columns:1fr; gap:24px; }
  .faq-group-heading { position:static; display:flex; align-items:baseline; gap:18px; }
  .faq-group-heading span { margin:0; }
  .faq-group-heading h3 { max-width:none; }
  .faq-final { align-items:flex-start; flex-direction:column; padding:72px 18px; }
  .people-hero { grid-template-columns:1fr; padding:62px 18px 72px; gap:42px; }
  .people-hero h1 { font-size:clamp(3.4rem,14vw,5.4rem); }
  .people-hero > div > p:not(.eyebrow) { font-size:1.08rem; }
  .people-hero figure { height:420px; border-radius:140px 20px 20px 20px; }
  .people-list { padding:72px 18px; }
  .people-cards { grid-template-columns:1fr; }
  .people-cards img { height:240px; }
  .people-cards p { min-height:0; }
  .people-final { padding:72px 18px; }
  .professional-hero, .professional-offer, .professional-after { grid-template-columns:1fr; padding-left:18px; padding-right:18px; }
  .professional-hero { padding-top:62px; padding-bottom:72px; gap:42px; }
  .professional-hero h1 { font-size:clamp(3.4rem,14vw,5.4rem); }
  .professional-hero-copy > p:not(.eyebrow) { font-size:1.08rem; }
  .professional-hero-image { height:420px; border-radius:140px 20px 20px 20px; }
  .professional-principle, .professional-grid-section, .professional-final { padding-left:18px; padding-right:18px; }
  .professional-cards { grid-template-columns:1fr; }
  .professional-after-image { height:380px; }
  .partner-hero, .partner-includes, .partner-fit { grid-template-columns:1fr; padding-left:18px; padding-right:18px; }
  .partner-hero { padding-top:62px; padding-bottom:72px; gap:42px; }
  .partner-hero h1 { font-size:clamp(3.35rem,14vw,5.3rem); }
  .partner-hero-copy > p:not(.eyebrow) { font-size:1.08rem; }
  .partner-hero-image { height:420px; border-radius:20px 140px 20px 20px; }
  .partner-model, .partner-final { padding-left:18px; padding-right:18px; }
  .partner-pillars { grid-template-columns:1fr; }
}

@media (max-width: 620px) {
  body { font-size: 16px; }
  .brand img { width: 180px; }
  .hero-image { height: 300px; }
  .hero-inner { padding: 44px 20px 34px; }
  .eyebrow { margin-bottom: 14px; font-size: .72rem; }
  h1 { font-size: clamp(2.75rem, 13.5vw, 4rem); line-height: .94; }
  .hero-lede { font-size: 1.06rem; }
  .hero-proof { padding: 24px 8px; }
  .proof-item { padding: 0 8px; font-size: .78rem; }
  .proof-icon { width: 34px; height: 34px; }
  .section-inner { padding: 68px 18px; }
  .system-heading, .product-copy { padding: 28px 24px; }
  .section-heading h2, .product-copy h2 { font-size: 2.6rem; }
  .body-chain-anatomy { margin: 0 10px 10px; }
  .anatomy-labels li { left: 62.5%; right: 2.5%; }
  .anatomy-labels strong { font-size: .8rem; }
  .anatomy-labels span { margin-top: 3px; font-size: .61rem; }
  .product-visual, .product-visual img { min-height: 330px; }
  .product-note { display: none; }
  .assessment > .section-inner { gap: 76px; }
  .assessment-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 270px 150px; }
  .assessment-gallery .gallery-main { grid-column: 1 / 3; grid-row: 1; min-height: 0; border-radius: 100px 20px 20px 20px; }
  .assessment-gallery figure { min-height: 0; }
  .assessment-copy h2 { font-size: 3.2rem; }
  .steps-grid { grid-template-columns: 1fr; }
  .steps-grid li { min-height: 0; padding: 24px 22px; border-left: 1px solid var(--teal); border-bottom: 1px solid var(--teal) !important; }
  .steps-grid li:last-child { border-bottom: 0 !important; }
  .steps-heading h3, .people-heading h3, .final-cta h3 { font-size: 2.8rem; }
  .people-grid { grid-template-columns: 1fr; }
  .people-card { min-height: 310px; }
  .final-cta { padding: 36px 24px; gap: 28px; }
  .button-light { width: 100%; }
  .site-footer { padding: 52px 20px 22px; }
  .footer-inner { grid-template-columns: 1fr; gap: 40px; }
  .footer-links { grid-template-columns: 1fr; }
  .footer-note { display: none; }
  .footer-bottom { margin-top: 42px; flex-direction: column; }
  .footer-legal { justify-content: flex-start; flex-direction: column; align-items: flex-start; }
  .legal-main { padding: 56px 18px 72px; }
  .legal-hero { margin-bottom: 42px; padding-bottom: 32px; }
  .legal-hero h1 { font-size: clamp(3rem, 15vw, 4.3rem); }
  .legal-section { grid-template-columns: 1fr; gap: 16px; }
  .whatsapp-float { right: 14px; bottom: 14px; width: 54px; padding: 0; justify-content: center; }
  .whatsapp-float span { display: none; }

  .assessment-hero-inner { padding: 54px 18px 72px; gap: 46px; }
  .assessment-hero-copy h1 { font-size: clamp(2.85rem, 11.5vw, 3.7rem); }
  .assessment-hero-lede { font-size: 1.04rem; }
  .assessment-hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; }
  .assessment-hero-visual { min-height: 440px; }
  .assessment-hero-main { right: 30px; border-radius: 150px 22px 22px 22px; }
  .assessment-hero-inset { bottom: 22px; width: 46%; border-width: 5px; }
  .assessment-process { padding: 72px 18px; }
  .solutions-hero-inner { padding: 56px 18px 72px; gap: 46px; }
  .solutions-hero-copy h1 { font-size: clamp(3.2rem, 14vw, 4.9rem); }
  .solutions-hero-lede { font-size: 1.05rem; }
  .solutions-hero-actions { align-items: flex-start; flex-direction: column; }
  .solutions-hero-visual { min-height: 440px; }
  .solutions-hero-main { right: 0; bottom: 0; border-radius: 150px 22px 22px 22px; }
  .solutions-hero-inset { display: none; }
  .solutions-hero-note { top: 18px; right: 0; padding: 13px 15px; font-size: .85rem; }
  .solutions-list { padding: 72px 18px; }
  .solutions-list-intro h2 { font-size: 3.1rem; }
  .solution-cards { grid-template-columns: 1fr; }
  .solution-card { min-height: 250px; }
  .solutions-cta { padding: 72px 18px; }
  .solutions-cta h2 { font-size: 3.1rem; }
  .assessment-process-intro h2,
  .assessment-outcome-copy h2,
  .assessment-booking h2 { font-size: 3rem; }
  .clinical-step,
  .clinical-step-featured { min-height: 0; padding: 26px 22px; grid-template-columns: 46px minmax(0, 1fr); gap: 16px; border-radius: 20px; }
  .clinical-step-number { width: 44px; height: 44px; font-size: .72rem; }
  .clinical-step h3 { font-size: 2rem; }
  .clinical-step-copy > p:last-child { font-size: .98rem; }
  .clinical-step-image { grid-column: 1 / -1; }
  .clinical-step-image { min-height: 250px; border-radius: 120px 18px 18px 18px; }
  .clinical-step-featured-reverse .clinical-step-image { border-radius: 18px 120px 18px 18px; }
  .assessment-outcome-image { min-height: 380px; }
  .assessment-outcome-copy { padding: 68px 20px; }
  .assessment-booking { padding: 72px 18px; }
  .assessment-booking-inner { gap: 42px; }
  .assessment-fee-card { padding: 28px 24px; }
  .faq-hero { padding:54px 18px 68px; gap:42px; }
  .faq-hero h1 { font-size:clamp(3.1rem,14vw,4.3rem); }
  .faq-hero-copy > p:not(.eyebrow) { font-size:1.04rem; }
  .faq-price-card { width:92%; margin-bottom:-34px; padding:28px 24px; border-radius:22px; }
  .faq-price-card strong { font-size:4rem; }
  .faq-hero-images { padding-right:0; gap:8px; }
  .faq-hero-images figure { height:260px; border-radius:100px 18px 18px 18px; }
  .faq-hero-images figure:last-child { height:210px; margin-top:58px; border-radius:18px 70px 18px 18px; }
  .faq-content { padding:70px 18px; }
  .faq-content-intro h2, .faq-final h2 { font-size:3rem; }
  .faq-groups { gap:58px; }
  .faq-group-heading h3 { font-size:1.75rem; }
  .faq-accordion summary { padding:21px 48px 21px 0; font-size:1.05rem; }
  .faq-accordion summary::after { top:15px; width:34px; height:34px; }
  .faq-accordion details > div { padding:0 40px 22px 0; }
  .faq-final .button { width:100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
.professional-case { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(40px,8vw,120px); align-items:center; padding:clamp(76px,10vw,140px) clamp(20px,7vw,110px); background:var(--mist); }
.professional-case-image { height:clamp(320px,38vw,520px); margin:0; overflow:hidden; border-radius:24px 150px 24px 24px; }
.professional-case-image img { width:100%; height:100%; object-fit:cover; }
.professional-case h2 { max-width:780px; margin:0 0 24px; font-size:clamp(3rem,5.7vw,6.2rem); line-height:.94; letter-spacing:-.06em; }
.professional-case p:not(.eyebrow) { max-width:700px; margin:0; color:var(--muted); font-size:1.15rem; line-height:1.6; }
@media (max-width: 620px) { .professional-case { grid-template-columns:1fr; padding-left:18px; padding-right:18px; gap:34px; } .professional-case-image { height:340px; border-radius:20px 100px 20px 20px; } }

@media (max-width: 620px) {
  .professional-principle {
    min-height: 0 !important;
    padding: 52px 18px 56px !important;
    background: #07182f !important;
    color: #ffffff !important;
  }
  .professional-principle h2 {
    margin: 0 0 18px !important;
    color: #ffffff !important;
    font-size: clamp(2.7rem, 12vw, 4rem) !important;
    line-height: .96 !important;
  }
  .professional-principle > p:not(.eyebrow) {
    display: block !important;
    margin: 0 !important;
    color: rgba(255,255,255,.78) !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }
}


/* Actionable audience cards */
a.people-card { text-decoration: none; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
a.people-card:hover, a.people-card:focus-visible { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(5,21,39,.18); }
a.people-card:focus-visible { outline: 3px solid #46c7c7; outline-offset: 4px; }

/* Hero proof: keep all three principles cleanly inside the white panel */
.hero-proof { align-items: stretch; }
.hero-proof .proof-item { min-width: 0; text-align: center; justify-content: center; padding-inline: 28px; }
.hero-proof .proof-item:last-child { padding-right: 44px; }
.hero-proof .proof-icon { flex: 0 0 auto; }
.hero-proof strong { max-width: 190px; margin-inline: auto; }

/* Hero proof desktop: compact, balanced cluster inside the white sweep */
@media (min-width: 861px) {
  .hero-proof {
    left: clamp(48px, 5vw, 86px);
    bottom: 34px;
    width: min(620px, 47vw);
    justify-content: flex-start;
  }
  .hero-proof .proof-item {
    box-sizing: border-box;
    width: 33.333%;
    min-width: 0;
    padding: 0 24px;
    gap: 9px;
  }
  .hero-proof .proof-item:first-child { padding-left: 8px; }
  .hero-proof .proof-item:last-child { padding-right: 8px; }
  .hero-proof .proof-icon { width: 38px; height: 38px; }
  .hero-proof strong { max-width: 150px; font-size: .95rem; line-height: 1.08; }
}

/* Condition / SEO landing pages */
.condition-page { background:#fff; }
.condition-page .site-header { background:rgba(255,255,255,.98); }
.condition-hero { display:grid; grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr); gap:clamp(42px,7vw,100px); align-items:center; padding:clamp(72px,8vw,120px) clamp(20px,7vw,110px); background:linear-gradient(135deg,#f1fbfb 0%,#fff 72%); }
.condition-hero-copy { max-width:720px; }
.condition-hero h1 { margin:0 0 24px; font-size:clamp(4rem,6vw,6.7rem); line-height:.91; letter-spacing:-.06em; text-transform:uppercase; }
.condition-hero-copy > p:not(.eyebrow) { margin:0 0 28px; color:var(--muted); font-size:1.18rem; line-height:1.6; }
.condition-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.condition-hero-image { height:clamp(430px,46vw,650px); margin:0; overflow:hidden; border-radius:160px 24px 24px 24px; background:var(--mist); }
.condition-hero-image img { width:100%; height:100%; object-fit:cover; }
.condition-statement { padding:clamp(54px,6vw,86px) clamp(20px,7vw,110px); background:var(--navy); }
.condition-statement p { width:min(1050px,100%); margin:0; color:#fff; font-size:clamp(2.4rem,4.5vw,5rem); font-weight:800; line-height:1; letter-spacing:-.045em; }
.condition-content { display:grid; grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr); gap:clamp(42px,7vw,100px); align-items:center; padding:clamp(76px,9vw,130px) clamp(20px,7vw,110px); }
.condition-signs h2,.condition-process h2,.condition-faq h2,.condition-related h2,.condition-cta h2 { margin:0 0 24px; font-size:clamp(2.5rem,4vw,4.6rem); line-height:.96; letter-spacing:-.045em; }
.condition-signs ul { margin:28px 0 0; padding-left:22px; color:var(--muted); font-size:1.08rem; line-height:1.75; }
.condition-content figure { height:clamp(400px,43vw,600px); margin:0; overflow:hidden; border-radius:24px 140px 24px 24px; background:var(--mist); }
.condition-content figure img { width:100%; height:100%; object-fit:cover; }
.condition-process { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding:clamp(76px,9vw,130px) clamp(20px,7vw,110px); background:#f4fbfb; }
.condition-process article { min-height:300px; padding:clamp(28px,4vw,48px); border:1px solid rgba(70,199,199,.35); border-radius:24px; background:#fff; }
.condition-process article > span { color:var(--teal-deep); font-weight:840; letter-spacing:.14em; }
.condition-process article p:last-child { color:var(--muted); font-size:1.06rem; line-height:1.65; }
.condition-faq { display:grid; grid-template-columns:minmax(240px,.42fr) minmax(0,1fr); gap:clamp(42px,7vw,100px); padding:clamp(76px,9vw,130px) clamp(20px,7vw,110px); }
.condition-faq-heading { position:sticky; top:calc(var(--header-h) + 28px); align-self:start; }
.condition-related { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(42px,7vw,100px); padding:clamp(66px,8vw,110px) clamp(20px,7vw,110px); background:#edf8f8; }
.condition-related-links { display:grid; align-content:start; }
.condition-related-links a { display:flex; justify-content:space-between; gap:20px; padding:22px 0; border-bottom:1px solid rgba(7,24,47,.14); color:var(--ink); font-size:1.12rem; font-weight:760; text-decoration:none; }
.condition-related-links a:hover { color:var(--teal-deep); }
.condition-cta { padding:clamp(70px,9vw,125px) clamp(20px,7vw,110px); background:var(--teal); }
.condition-cta > p:not(.eyebrow) { max-width:700px; color:rgba(7,24,47,.72); font-size:1.12rem; line-height:1.6; }
.condition-cta .button { margin-top:14px; }
@media(max-width:860px){
 .condition-hero,.condition-content,.condition-faq,.condition-related { grid-template-columns:1fr; }
 .condition-hero-image,.condition-content figure { height:min(110vw,520px); }
 .condition-process { grid-template-columns:1fr; }
 .condition-faq-heading { position:static; }
}

/* People cards: preserve image composition across browser zoom and viewport widths */
.people-cards article { min-width:0; display:flex; flex-direction:column; }
.people-cards img {
  width:100%;
  height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  object-position:center;
  flex:0 0 auto;
}
.people-cards article:nth-child(1) img { object-position:center 45%; }
.people-cards article:nth-child(2) img { object-position:center 48%; }
.people-cards article:nth-child(3) img { object-position:center 52%; }
.people-cards article:nth-child(4) img { object-position:center 50%; }
.people-cards article:nth-child(5) img { object-position:center 36%; }
.people-cards article:nth-child(6) img { object-position:center 54%; }
.people-cards article:nth-child(7) img { object-position:center 46%; }
.people-cards article:nth-child(8) img { object-position:center 42%; }

@media (max-width: 980px) {
  .people-cards { grid-template-columns:1fr; }
  .people-cards img { aspect-ratio:3 / 2; }
}

/* Header CTA: never wrap the label outside the pill */
.header-actions .button-small {
  white-space: nowrap;
  flex: 0 0 auto;
  line-height: 1;
  padding-inline: 22px;
}

/* Homepage audience cards are cards, not 1997 hyperlinks */
a.people-card,
a.people-card:hover,
a.people-card:focus,
a.people-card:visited {
  color: var(--white);
  text-decoration: none;
}
a.people-card span,
a.people-card strong {
  text-decoration: none;
}
a.people-card:hover strong,
a.people-card:focus-visible strong {
  text-decoration: none;
}

/* Hero cleanup after removing proof strip */
.hero-inner { padding-bottom: clamp(72px, 8vw, 120px); }
.hero::after {
  left: -12vw;
  bottom: -18%;
  width: 60vw;
  height: 48%;
}

/* Hero cleanup: remove obsolete white oval after proof strip removal */
.hero::after { display:none !important; }

/* Compact floating WhatsApp control */
.whatsapp-float {
  right: 16px;
  bottom: 16px;
  min-height: 42px;
  padding: 0 13px;
  gap: 7px;
  font-size: .78rem;
  line-height: 1;
  box-shadow: 0 8px 22px rgba(7,24,47,.18);
}
.whatsapp-float svg { width: 18px; height: 18px; }
@media (max-width: 860px) {
  .whatsapp-float { width: 44px; min-height: 44px; height: 44px; right: 12px; bottom: 12px; padding: 0; }
  .whatsapp-float svg { width: 19px; height: 19px; }
}

/* Solutions intro: tighten oversized heading and reduce dead space */
.solutions-list-intro {
  grid-template-columns:minmax(0,.82fr) minmax(0,.9fr);
  gap:clamp(36px,5vw,70px);
  align-items:end;
}
.solutions-list-intro h2 {
  max-width:720px;
  font-size:clamp(3.2rem,4.8vw,5.2rem);
  line-height:.96;
  letter-spacing:-.055em;
}
.solutions-list-intro > p {
  max-width:620px;
  margin:0 0 .4rem;
  font-size:1.08rem;
  line-height:1.55;
}

/* Footer contact icons */
.footer-social-icons {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:16px;
}
.footer-social-icons a {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(7,24,47,.16);
  border-radius:50%;
  color:var(--ink);
  background:#fff;
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.footer-social-icons a:hover,
.footer-social-icons a:focus-visible {
  transform:translateY(-2px);
  border-color:var(--teal-deep);
  background:var(--mist);
}
.footer-social-icons svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.footer-social-icons a:last-child svg { fill:currentColor; stroke:none; }

/* Floating WhatsApp: icon-only on all screen sizes */
.whatsapp-float {
  width:44px;
  height:44px;
  min-height:44px;
  padding:0;
  justify-content:center;
  border-radius:50%;
}
.whatsapp-float span { display:none !important; }
.whatsapp-float svg { width:20px; height:20px; }

.footer-map-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}
.footer-map-links a{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:0 14px;
  border:1px solid rgba(7,24,47,.16);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-size:.82rem;
  font-weight:700;
  text-decoration:none;
}
.footer-map-links a:hover,
.footer-map-links a:focus-visible{
  border-color:var(--teal-deep);
  background:var(--mist);
}

/* Footer map links: make them read as clear actions, not body copy */
.footer-map-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.footer-map-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 14px;
  border:1px solid rgba(7,24,47,.18);
  border-radius:12px;
  background:rgba(255,255,255,.78);
  color:var(--ink);
  font-size:.82rem;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  box-shadow:0 4px 12px rgba(7,24,47,.06);
}
.footer-map-links a:hover,
.footer-map-links a:focus-visible{
  background:#fff;
  border-color:var(--teal-deep);
  transform:translateY(-1px);
}
