
/* =========================================================
   V17 FINAL SITE SYSTEM
   This file intentionally overrides legacy page-level typography and
   life-course styling so the site has one consistent visual language.
   ========================================================= */

:root {
  --font-editorial: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* One typography system everywhere. No legacy family is allowed through. */
html, body { font-family: var(--font-ui) !important; }
body * { font-family: var(--font-ui) !important; }

/* Editorial type is deliberately limited to headings and a small set of
   display elements. Everything else, on every page, is Inter. */
h1, h2, h3, h4, h5, h6,
.about-story-quote,
.large-contact-link,
.statement strong,
.statement-text span,
.pub-year,
.pub-entry em,
.publication-list em,
.fee-row > strong,
.about-big-number strong,
.about-inline-stat strong,
.life-stage-label,
.research-step-label,
.home-hero-copy-v6 > h1,
.page-intro-title > h1,
.section-heading-editorial > h2,
.training-grid h3,
.practice-card h3,
.contact-card h2,
.service-enquiry-cta h2,
.timeline-content h3,
.pub-year-group summary > span {
  font-family: var(--font-editorial) !important;
  font-optical-sizing: auto;
}

h1 { font-weight: 600 !important; line-height: 1.03 !important; letter-spacing: -0.032em !important; }
h2 { font-weight: 600 !important; line-height: 1.08 !important; letter-spacing: -0.022em !important; }
h3, h4, h5, h6 { font-weight: 600 !important; line-height: 1.15 !important; letter-spacing: -0.012em !important; }

/* Explicitly normalize all UI and reading text. */
p, li, a, button, input, select, textarea, label, small, summary,
.nav-links, .nav-support-toggle, .nav-submenu,
.kicker, .eyebrow, .btn, .page-lead, .page-intro-copy,
.about-affiliation, .about-story-copy, .plain-copy,
.engagement-hero-copy, .research-step-text, .life-stage-text,
.practice-card p, .fee-row p, .appointment-notes,
.contact-card p, .contact-route p, .pub-entry p,
.footer-policy-links, .profile-links, .service-enquiry-cta p {
  font-family: var(--font-ui) !important;
}

body { font-weight: 400 !important; line-height: 1.68 !important; letter-spacing: -0.006em !important; }
.nav-links a, .nav-support-toggle, .nav-submenu a, .btn, button { font-weight: 600 !important; }
.kicker, .eyebrow { font-weight: 700 !important; letter-spacing: .14em !important; }

/* Keep the About name fully visible on desktop. */
.no-wrap-desktop, .about-hero-copy .no-wrap-desktop { white-space: nowrap !important; text-wrap: nowrap !important; max-width: none !important; }

/* Research service cards: definitive 2 x 2 desktop geometry. */
.research-service-grid-clean {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  gap: 0 !important;
}
.research-service-grid-clean .research-service-card {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: clamp(2rem, 3vw, 3rem) !important;
}
.research-service-grid-clean .research-service-card > div,
.research-service-grid-clean .research-service-card h2,
.research-service-grid-clean .research-service-card p {
  width: 100% !important;
  max-width: none !important;
}
.research-service-grid-clean .row-number,
.research-service-grid-clean .stat-watermark { display: none !important; }

/* Nutrition life-course: human-development visual, not generic icon buttons. */
.life-course-human {
  padding: clamp(1.6rem, 2.7vw, 2.4rem) clamp(1rem, 2vw, 1.7rem) 1.55rem !important;
  border: 1px solid rgba(36,56,74,.10) !important;
  border-radius: 26px !important;
  background: #fff !important;
  box-shadow: 0 14px 32px rgba(26,43,58,.04) !important;
  overflow: hidden !important;
}
.life-course-human .life-course-stages-illustrated {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0,1fr)) !important;
  gap: clamp(.35rem, 1vw, .8rem) !important;
  min-width: 0 !important;
  align-items: end !important;
  position: relative !important;
}
.life-course-human .life-course-stages-illustrated::before {
  content: "" !important;
  position: absolute !important;
  left: 5% !important;
  right: 5% !important;
  bottom: 42px !important;
  top: auto !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, #d6ded9 7%, #d6ded9 93%, transparent) !important;
  z-index: 0 !important;
}
.life-course-human .life-stage-figure {
  display: grid !important;
  grid-template-rows: 132px auto !important;
  align-items: end !important;
  justify-items: center !important;
  gap: .75rem !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: .3rem .15rem !important;
  border: 0 !important;
  background: transparent !important;
  position: relative !important;
  z-index: 1 !important;
  color: #708077 !important;
}
.life-figure-wrap {
  width: 100% !important;
  height: 132px !important;
  display: grid !important;
  place-items: end center !important;
  border-radius: 18px !important;
  transition: background .35s ease, transform .35s ease, box-shadow .35s ease !important;
}
.life-figure-svg {
  width: min(108px, 100%) !important;
  height: 128px !important;
  overflow: visible !important;
}
.life-figure-svg .figure-lines { fill: none; stroke: currentColor; stroke-width: 2.7; stroke-linecap: round; stroke-linejoin: round; }
.life-figure-svg .soft-fill { fill: currentColor; fill-opacity: .07; }
.life-figure-svg .accent-fill { fill: currentColor; fill-opacity: .16; stroke: currentColor; }
.life-stage-figure strong {
  font-family: var(--font-ui) !important;
  color: var(--navy) !important;
  font-size: .88rem !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  min-height: 2.2em !important;
  display: grid !important;
  place-items: start center !important;
}
.life-stage-figure.active { color: #9a604c !important; }
.life-stage-figure.active .life-figure-wrap {
  background: linear-gradient(180deg, #fbf1ed 0%, rgba(251,241,237,.18) 100%) !important;
  transform: translateY(-4px) !important;
  box-shadow: inset 0 0 0 1px rgba(162,103,81,.10) !important;
}
.life-stage-figure.active strong { color: var(--rust) !important; }
.life-course-human .life-course-detail-split {
  display: block !important;
  margin-top: 1.65rem !important;
  min-height: 154px !important;
  padding: 1.55rem 1.7rem !important;
  border: 1px solid rgba(36,56,74,.08) !important;
  border-radius: 20px !important;
  background: #fbfaf7 !important;
}
.life-course-human .life-stage-label {
  margin: 0 0 .55rem !important;
  font-family: var(--font-editorial) !important;
  font-size: clamp(1.75rem,2.6vw,2.25rem) !important;
  font-weight: 600 !important;
}
.life-course-human .life-stage-text {
  margin: 0 !important;
  max-width: 920px !important;
  font-family: var(--font-ui) !important;
  font-size: .98rem !important;
  line-height: 1.72 !important;
  color: var(--muted) !important;
}

@media (max-width: 1080px) {
  .life-course-human .life-course-stages-illustrated { grid-template-columns: repeat(4,minmax(0,1fr)) !important; row-gap: 1.2rem !important; }
  .life-course-human .life-course-stages-illustrated::before { display: none !important; }
}
@media (max-width: 760px) {
  .research-service-grid-clean { grid-template-columns: 1fr !important; }
  .life-course-human .life-course-stages-illustrated { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .life-course-human .life-stage-figure { grid-template-rows: 116px auto !important; }
  .life-figure-wrap { height: 116px !important; }
  .life-figure-svg { height: 112px !important; }
  .no-wrap-desktop, .about-hero-copy .no-wrap-desktop { white-space: normal !important; text-wrap: balance !important; }
}
@media (prefers-reduced-motion: reduce) {
  .life-figure-wrap { transition: none !important; }
}

/* V18 FINAL OVERRIDES — Times New Roman sitewide */
:root {
  --font-editorial: "Times New Roman", Times, serif;
  --font-ui: "Times New Roman", Times, serif;
  --serif: "Times New Roman", Times, serif;
  --sans: "Times New Roman", Times, serif;
}
html, body, body * { font-family: "Times New Roman", Times, serif !important; }
body { font-size: 18px; }
h1,h2,h3,h4,h5,h6 { letter-spacing: 0 !important; }
.nav-links a, .nav-support-toggle { font-size: 1.05rem !important; font-weight: 700 !important; }
.nav-caret { display: none !important; }
.about-hero-copy .no-wrap-desktop, .home-hero-copy-v6 .no-wrap-desktop { white-space: nowrap !important; max-width: none !important; }
.about-hero-grid, .home-hero-grid-v6 { align-items: center !important; }
.about-hero-copy h1 { max-width: none !important; font-size: clamp(3rem, 5vw, 4.5rem) !important; }
.about-snapshot-stat strong { font-size: clamp(3.4rem, 6vw, 5rem) !important; }
.nav-support { position: relative; }
.nav-support-toggle { background: none !important; border: 0 !important; padding: 0 !important; color: var(--navy) !important; cursor: pointer; }
.nav-submenu { min-width: 260px !important; padding: .75rem 0 !important; border-radius: 0 0 16px 16px !important; border: 1px solid rgba(36,56,74,.14) !important; background: rgba(17,22,28,.96) !important; box-shadow: 0 18px 40px rgba(0,0,0,.18) !important; }
.nav-submenu a { color: #fff !important; display: block !important; padding: .8rem 1rem !important; font-weight: 600 !important; }
.nav-submenu a:hover, .nav-submenu a[aria-current="page"] { color: #fff !important; background: rgba(255,255,255,.08) !important; }
.home-hero-copy-v6 > h1 { font-size: clamp(3rem, 6vw, 5.2rem) !important; }
.hero-accent { margin: 1.3rem 0 0 !important; }
.service-pair-grid-v18 { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 1.4rem !important; }
.service-pair-grid-v18 .service-panel { padding: 2rem 1.8rem !important; border: 1px solid rgba(36,56,74,.1) !important; background: #fff !important; min-height: 210px !important; }
.service-pair-grid-v18 .service-panel h2 { font-size: 1.9rem !important; margin-bottom: .9rem !important; }
.home-close-links { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 1rem !important; }
.home-close-links a { text-decoration: none !important; }
.tab-list { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 1rem !important; margin: 2.2rem 0 2rem !important; }
.tab-button { border: 1px solid rgba(36,56,74,.14) !important; background: #fff !important; border-radius: 16px !important; padding: 1rem 1.2rem !important; font-size: 1.05rem !important; font-weight: 700 !important; }
.tab-button.active, .tab-button[aria-selected="true"] { background: #f4ede7 !important; color: var(--rust) !important; border-color: rgba(162,103,81,.22) !important; }
.research-pathway { padding: 1.7rem !important; border-radius: 24px !important; background: #fff !important; border: 1px solid rgba(36,56,74,.08) !important; }
.research-pathway-steps { display: grid !important; grid-template-columns: repeat(6,minmax(0,1fr)) !important; gap: 1rem !important; }
.research-step { min-height: 140px !important; padding: 1.1rem .9rem !important; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: center !important; text-align: center !important; border: 1px solid rgba(36,56,74,.08) !important; border-radius: 18px !important; background: #fff !important; }
.research-step.active { background: #f7f0ea !important; border-color: rgba(162,103,81,.18) !important; transform: translateY(-2px); }
.research-step strong { font-size: 1.15rem !important; }
.research-pathway-detail { margin-top: 1.25rem !important; padding: 1.4rem 1.5rem !important; border-radius: 18px !important; background: #fbfaf7 !important; }
.research-service-grid-clean { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 1.35rem !important; margin-top: 2rem !important; }
.clean-card { padding: 2rem !important; background: #fff !important; border: 1px solid rgba(36,56,74,.08) !important; border-radius: 22px !important; min-height: 220px !important; }
.clean-card h2 { margin-top: 0 !important; font-size: 2rem !important; line-height: 1.15 !important; }
.clean-card p { max-width: 34ch !important; margin-bottom: 0 !important; }
.publication-list-flat { list-style: none !important; padding: 0 !important; margin: 2rem 0 0 !important; border-top: 1px solid var(--line) !important; }
.publication-list-flat li { display: grid !important; grid-template-columns: 54px 1fr !important; gap: 1rem !important; padding: 1.15rem 0 !important; border-bottom: 1px solid var(--line) !important; }
.pub-order { color: var(--rust) !important; font-size: 1.05rem !important; font-weight: 700 !important; padding-top: .1rem !important; }
.publication-list-flat p { margin: 0 !important; }
.life-course-visual-photo { padding: 1.4rem !important; border-radius: 28px !important; background: #fff !important; border: 1px solid rgba(36,56,74,.08) !important; }
.life-course-reference-figure { margin: 0 !important; border-radius: 20px !important; overflow: hidden !important; background: #fff !important; }
.life-course-reference-figure img { width: 100% !important; height: auto !important; display: block !important; }
.life-course-chip-row { display: flex !important; flex-wrap: wrap !important; gap: .7rem !important; margin-top: 1.2rem !important; }
.life-stage-chip { appearance: none; border: 1px solid rgba(36,56,74,.12) !important; background: #fff !important; color: var(--navy) !important; padding: .65rem 1rem !important; border-radius: 999px !important; cursor: pointer !important; font-size: 1rem !important; }
.life-stage-chip.active { background: #f4ede7 !important; color: var(--rust) !important; border-color: rgba(162,103,81,.22) !important; }
.life-course-detail-card { margin-top: 1.15rem !important; padding: 1.45rem 1.55rem !important; border-radius: 20px !important; background: #fbfaf7 !important; min-height: 150px !important; }
.life-course-detail-card .life-stage-label { margin: 0 0 .55rem !important; font-size: 2rem !important; }
.life-course-detail-card .life-stage-text { margin: 0 !important; }
.service-form-wrap { margin-top: 2.2rem !important; }
.service-form-grid { display: grid !important; grid-template-columns: minmax(280px,.9fr) minmax(0,1.1fr) !important; gap: 2rem !important; align-items: start !important; }
.form-intro-copy h2 { margin-top: .35rem !important; font-size: 2.5rem !important; }
.enquiry-form { background: #fff !important; border: 1px solid rgba(36,56,74,.10) !important; border-radius: 24px !important; padding: 1.6rem !important; box-shadow: 0 12px 30px rgba(26,43,58,.04) !important; }
.form-grid-two { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 1rem 1.2rem !important; }
.field { margin-bottom: 1rem !important; }
.field-full { grid-column: 1 / -1 !important; }
.enquiry-form label { display: block !important; font-weight: 700 !important; margin-bottom: .4rem !important; color: var(--navy) !important; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { width: 100% !important; border: 1px solid rgba(36,56,74,.16) !important; border-radius: 14px !important; background: #fff !important; padding: .85rem 1rem !important; font-size: 1rem !important; }
.enquiry-form textarea { resize: vertical !important; }
.checkbox-field { display: flex !important; align-items: flex-start !important; gap: .7rem !important; margin: .4rem 0 1rem !important; font-weight: 400 !important; }
.checkbox-field input { width: auto !important; margin-top: .28rem !important; }
.contact-card-blue { background: #eef2f6 !important; }
.contact-card-green { background: #edf2ee !important; }
.contact-card-warm { background: #f6efe8 !important; }
.footer-policy-links a { text-decoration: none !important; }
@media (max-width: 1080px) { .service-pair-grid-v18, .home-close-links, .research-service-grid-clean, .tab-list { grid-template-columns: 1fr !important; } .research-pathway-steps { grid-template-columns: repeat(3,minmax(0,1fr)) !important; } .service-form-grid { grid-template-columns: 1fr !important; } }
@media (max-width: 760px) { body { font-size: 17px !important; } .research-pathway-steps { grid-template-columns: repeat(2,minmax(0,1fr)) !important; } .form-grid-two { grid-template-columns: 1fr !important; } .publication-list-flat li { grid-template-columns: 1fr !important; } .nav-support-toggle { padding: .8rem .9rem !important; } }


/* =========================================================
   V19 layout repair
   ========================================================= */

/* Give desktop content enough breathing room. */
:root { --max: 1340px !important; }

/* Keep Times New Roman absolutely everywhere. */
html, body, body *,
button, input, select, textarea, option {
  font-family: "Times New Roman", Times, serif !important;
}

/* Navigation: Support is visibly a menu without using an arrow/chevron. */
.nav-support-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  padding: .42rem .88rem !important;
  border: 1px solid rgba(36,56,74,.16) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.52) !important;
  color: var(--navy) !important;
  transition: background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease !important;
}
.nav-support-toggle:hover,
.nav-support:focus-within > .nav-support-toggle,
.nav-support.submenu-open > .nav-support-toggle {
  background: var(--navy-deep) !important;
  border-color: var(--navy-deep) !important;
  color: #fff !important;
  box-shadow: 0 5px 15px rgba(24,42,57,.13) !important;
}
.nav-support.active-support > .nav-support-toggle {
  background: #f4e8e1 !important;
  border-color: rgba(162,103,81,.28) !important;
  color: var(--rust) !important;
}
.nav-support.active-support:hover > .nav-support-toggle,
.nav-support.active-support:focus-within > .nav-support-toggle,
.nav-support.active-support.submenu-open > .nav-support-toggle {
  background: var(--rust) !important;
  border-color: var(--rust) !important;
  color: #fff !important;
}
.nav-submenu {
  top: calc(100% + 9px) !important;
  min-width: 265px !important;
  padding: .4rem !important;
  border-radius: 12px !important;
  background: rgba(24,30,37,.985) !important;
}
.nav-submenu a {
  padding: .78rem .9rem !important;
  border-radius: 8px !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
}
.nav-submenu a:hover,
.nav-submenu a[aria-current="page"] {
  background: rgba(255,255,255,.09) !important;
  color: #fff !important;
}

/* Home hero: no clipped name, balanced image/text proportions. */
.home-hero-v6 { overflow: visible !important; }
.home-hero-grid-v6 {
  grid-template-columns: minmax(0, 1.16fr) minmax(360px, .72fr) !important;
  gap: clamp(2.5rem, 4.2vw, 4.8rem) !important;
}
.home-hero-copy-v6 { min-width: 0 !important; }
.home-hero-copy-v6 h1 {
  font-size: clamp(3.15rem, 4.05vw, 4.2rem) !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  max-width: none !important;
  margin-bottom: 1.25rem !important;
}
.portrait-full { width: min(100%, 440px) !important; }

@media (min-width: 1200px) {
  .home-hero-copy-v6 h1,
  .about-hero-copy .no-wrap-desktop {
    white-space: nowrap !important;
  }
}
@media (max-width: 1199px) {
  .home-hero-copy-v6 h1,
  .about-hero-copy .no-wrap-desktop {
    white-space: normal !important;
  }
}

/* Home service cards: remove the old icon column that was squeezing text into 82px. */
.service-pair-grid-v18 {
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 1.25rem !important;
  padding-block: 2rem !important;
}
.service-pair-grid-v18 .service-panel-v6 {
  display: block !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  min-height: 280px !important;
  padding: 2rem 2rem 1.9rem !important;
  border: 1px solid rgba(36,56,74,.11) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.82) !important;
}
.service-pair-grid-v18 .service-panel-v6 + .service-panel-v6 {
  border-left: 1px solid rgba(36,56,74,.11) !important;
}
.service-pair-grid-v18 .service-panel-v6 > div {
  width: 100% !important;
  max-width: none !important;
}
.service-pair-grid-v18 .service-panel-v6 h2 {
  max-width: none !important;
  font-size: clamp(1.8rem,2vw,2.15rem) !important;
  line-height: 1.08 !important;
  margin: 0 0 1rem !important;
}
.service-pair-grid-v18 .service-panel-v6 p {
  max-width: none !important;
  font-size: 1.05rem !important;
  line-height: 1.58 !important;
  margin: 0 0 1.2rem !important;
}
.service-pair-grid-v18 .service-panel-v6 .arrow-link {
  display: inline-flex !important;
  gap: .45rem !important;
  align-items: center !important;
  padding-top: 0 !important;
  font-size: 1rem !important;
}

/* Get-in-touch: give the links space instead of forcing awkward wrapping. */
.home-close-grid {
  grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr) !important;
  gap: clamp(2.5rem,5vw,5rem) !important;
  align-items: center !important;
}
.home-close-links {
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 1rem !important;
  border-top: 0 !important;
}
.home-close-links a {
  min-height: 92px !important;
  padding: 1rem 1.15rem !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.68) !important;
  line-height: 1.25 !important;
}

/* Responsive repair. */
@media (max-width: 1100px) {
  .service-pair-grid-v18 {
    grid-template-columns: 1fr !important;
  }
  .service-pair-grid-v18 .service-panel-v6 {
    min-height: auto !important;
  }
  .home-close-grid {
    grid-template-columns: 1fr !important;
  }
  .home-close-links {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 900px) {
  .home-hero-grid-v6 {
    grid-template-columns: 1fr !important;
  }
  .portrait-full {
    justify-self: start !important;
    width: min(100%, 420px) !important;
  }
}
