/* LKI Education: shared type scale, text alignment and spacing. */
:root {
  --layout-width: 1500px;
  --gutter: clamp(20px, 4.5vw, 72px);
  --type-page-title: clamp(2.5rem, 1.8rem + 3.2vw, 4.75rem);
  --type-section-title: clamp(2rem, 1.5rem + 1.4vw, 2.75rem);
  --type-card-title: clamp(1.5rem, 1.3rem + .7vw, 1.875rem);
  --type-small-title: 1.25rem;
  --type-body: 1rem;
  --type-support: .875rem;
  --type-label: .75rem;
  --line-body: 1.75;
  --line-support: 1.6;
  --space-section: clamp(56px, 40px + 3.3vw, 96px);
  --space-hero: clamp(48px, 32px + 3.3vw, 88px);
  --space-band: clamp(32px, 24px + 1.4vw, 48px);
  --space-copy: 16px;
  --space-action: 24px;
  --space-heading: 16px;
  --gap-column: clamp(32px, 4vw, 64px);
  --gap-card: clamp(24px, 2.2vw, 32px);
  --padding-card: clamp(24px, 2.5vw, 36px);
}
body { font-size: var(--type-body); line-height: var(--line-body); }
.shell { max-width: var(--layout-width); }
#main p, #main li, #main dd, #main address {
  text-align: left;
  word-spacing: normal;
  letter-spacing: normal;
  text-wrap: pretty;
}
#main p { margin: var(--space-copy) 0 0; }
#main :is(.section, .cta, .section41-strip) p,
#main :is(.location-card, .contact-card, .pathway-card, .side-panel, .principle-copy, .steps) p,
#main .company-information-details dd, #main .authority-list li {
  font-size: var(--type-body);
  line-height: var(--line-body);
}
#main :is(.reading-content, .split-heading, .referral-teaser, .leadership, .pathway-overview-heading) p {
  max-width: 65ch;
}
#main .split-heading > div > p:first-child { margin-top: 0; }
#main :is(.lead, .hero-lead), #main .section p.large-copy {
  font-size: 1.125rem;
  line-height: var(--line-body);
}
#main :is(.lead, .hero-lead) { margin-top: var(--space-action); max-width: 65ch; }
#main .hero-lead { max-width: 56ch; }
#main p.small, #main .steps--large p.small, #main .leadership p.small,
#main .section41-note p, #main .company-information-note,
#main .hero-meta, #main .route-list small, #main .outreach-line,
#main .outreach-line p, #main .side-panel > a:not(.button) {
  font-size: var(--type-support);
  line-height: var(--line-support);
}
#main h1, #main h2, #main h3 {
  margin: 0;
  font-weight: 750;
  text-align: left;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}
#main h1 { font-size: var(--type-page-title); line-height: 1.1; letter-spacing: -.04em; }
#main h2 { font-size: var(--type-section-title); line-height: 1.18; letter-spacing: -.035em; }
#main h3 { font-size: var(--type-card-title); line-height: 1.25; letter-spacing: -.025em; }
#main .page-hero h1 { max-width: 1000px; }
#main .hero-copy h1 {
  font-size: clamp(2rem, 4.3vw, 4rem);
  line-height: 1.14;
  max-width: 100%;
  text-wrap: wrap;
}
#main .hero-copy .heading-break { display: initial; }
#main :is(.location-card, .contact-card, .pathway-card, .side-panel) h2,
#main .location-card h3, #main .steps--large h2, #main .section41-strip h2 {
  font-size: var(--type-card-title);
  line-height: 1.25;
  letter-spacing: -.025em;
}
#main .side-panel h3 { font-size: var(--type-small-title); line-height: 1.3; }
#main .panel-heading {
  font-size: var(--type-section-title);
  line-height: 1.18;
  letter-spacing: -.035em;
  margin: 0 0 var(--space-action);
}
#main .eyebrow, #main .card-overline, #main .panel-kicker,
#main .principle-slogan, #main .section-index > span {
  display: block;
  font-size: var(--type-label);
  line-height: 1.6;
  font-weight: 800;
  letter-spacing: .09em;
  margin-top: 0;
  margin-bottom: var(--space-heading);
}
#main > :is(.section, .cta) { padding-block: var(--space-section); }
#main > :is(.home-hero, .page-hero) { padding-block: var(--space-hero); }
#main > .section41-strip { padding-block: var(--space-band); }
#main :is(.split-heading, .hero-grid, .referral-teaser, .reading-grid, .referral-layout, .policy-layout, .leadership, .company-information-grid) {
  gap: var(--gap-column);
}
#main :is(.split-heading, .referral-teaser, .reading-grid, .referral-layout, .policy-layout, .company-information-grid) { align-items: start; }
#main :is(.location-grid, .contact-grid, .pathway-grid, .principles--photographic) { gap: var(--gap-card); }
#main :is(.split-heading, .hero-grid, .referral-teaser, .reading-grid, .referral-layout, .leadership, .company-information-grid, .section41-inner) > *,
#main :is(.location-grid, .contact-grid, .pathway-grid, .steps li) > * { min-width: 0; }
#main .section-heading { margin-bottom: var(--gap-column); gap: var(--gap-card); align-items: flex-end; }
#main .principles { margin-top: var(--gap-column); }
#main .principles--photographic .principle-photo { margin-bottom: var(--space-action); }
#main .principle-copy { width: 100%; }
#main .principle-copy p { max-width: none; grid-column: auto; }
#main .pathway-overview-heading { margin-bottom: var(--gap-column); }
#main :is(.location-card, .contact-card, .side-panel) { padding: var(--padding-card); }
#main :is(.location-card, .contact-card, .pathway-card) { display: flex; flex-direction: column; align-items: flex-start; }
#main :is(.location-card, .contact-card, .pathway-card) > :is(h2, h3, p) { width: 100%; }
#main :is(.location-card, .contact-card, .pathway-card) > p { max-width: 60ch; }
#main .pathway-card { padding-top: var(--padding-card); }
#main .pathway-card + .pathway-card { margin-top: 0; }
#main .contact-card > p { margin-bottom: 0; }
#main .location-card > .card-link { width: 100%; margin-top: auto; padding-top: var(--space-action); }
#main .pathway-card > .text-link { margin-top: var(--space-action); padding-top: 0; }
#main .reading-content { max-width: 800px; }
#main .reading-content section + section { margin-top: var(--gap-column); padding-top: var(--gap-column); }
#main .steps li { gap: 20px; padding-block: var(--space-action); align-items: flex-start; }
#main .steps li:first-child { padding-top: 0; }
#main .steps li:last-child { padding-bottom: 0; }
#main .steps li > span { flex-shrink: 0; width: 24px; padding-top: 5px; font-size: var(--type-label); line-height: 1.6; }
#main .steps li > div { flex: 1; }
#main .steps p { margin-top: var(--space-copy); }
#main .referral-layout .side-panel { margin-top: 0; }
#main .side-panel hr { margin-block: var(--space-action); }
#main .policy-request-panel { position: static; max-width: 760px; margin: 0; }
#main .policy-request-email { margin-top: var(--space-action); overflow-wrap: anywhere; }
#main .text-link { margin-top: var(--space-action); max-width: 100%; white-space: normal; line-height: var(--line-support); gap: 16px; font-size: var(--type-support); }
#main .section-heading .text-link { margin-top: 0; }
#main .button { min-height: 54px; padding: 16px 22px; font-size: var(--type-support); line-height: 1.5; gap: 20px; }
#main p + .button, #main :is(.side-panel, .steps--large) .button { margin-top: var(--space-action); }
#main .button > [aria-hidden="true"], #main .text-link > [aria-hidden="true"] { flex-shrink: 0; }
#main .hero-actions { margin-top: 32px; gap: var(--space-action); }
#main .hero-actions .text-link { margin-top: 0; }
#main .hero-meta { margin-top: 32px; padding-top: var(--space-action); gap: 16px 24px; }
#main .referral-teaser > div > p { margin-bottom: 0; }
#main .referral-teaser > div > .button { margin-top: var(--space-action); }
#main .cta-inner, #main .section41-inner { gap: var(--gap-column); }
#main .section41-note { margin-top: var(--space-action); padding: 20px; align-self: stretch; }
#main .section41-note p { margin: 0; max-width: none; }
#main .section41-source { margin-top: 12px; font-size: var(--type-support); line-height: var(--line-support); }
#main .company-information-details > div { padding-block: 20px; align-items: baseline; }
#main .company-information-details > div:first-child { padding-top: 0; }
#main .company-information-details dt { font-size: var(--type-support); line-height: var(--line-support); }
#main .company-information-details address { font-style: normal; }
#main .outreach-line { margin-top: var(--space-action); gap: var(--gap-card); }
#main .outreach-line p { margin: 0; }
#main .contact-value { font-size: 1.125rem; line-height: 1.6; margin-top: var(--space-copy); }
#main .side-panel > a { overflow-wrap: anywhere; }
#main .copy-subject { font-size: var(--type-support); line-height: var(--line-support); margin-top: var(--space-copy); }
#main .copy-subject > span { font-size: inherit; }
#main .copy-subject button { flex-shrink: 0; font-size: var(--type-support); }
.site-footer { padding-top: var(--space-band); font-size: var(--type-support); line-height: var(--line-support); }
.site-footer .footer-grid { gap: var(--gap-column); padding-bottom: var(--space-band); }
.site-footer h2 { font-size: var(--type-label); line-height: 1.6; letter-spacing: .09em; margin-bottom: var(--space-heading); }
.site-footer .footer-brand > p:not(.wordmark), .site-footer .footer-grid > div > a,
.site-footer .company-registration, .site-footer .footer-bottom { font-size: var(--type-support); line-height: var(--line-support); }
.site-footer .footer-brand > p:not(.wordmark) { margin-top: var(--space-copy); }
.site-footer .company-registration { padding-block: var(--space-action); }
.site-footer .company-registration p { margin: 0 0 8px; }
.site-footer .footer-bottom { min-height: 72px; padding-block: var(--space-action); gap: 12px 24px; }
/* Align the photographic card text by shared rows, without fixed text heights. */
@supports (grid-template-rows: subgrid) {
  #main .principles--photographic { row-gap: 0; }
  #main .principles--photographic .principle-card { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 4; }
  #main .principles--photographic .principle-copy { display: contents; }
  #main .principles--photographic .principle-photo { align-self: start; }
  #main .principles--photographic .principle-copy > * { align-self: start; }
}
@media (min-width: 781px) {
  #main .pathway-card > h2 { min-height: 2.5em; }
}
@media (max-width: 780px) {
  :root { --gutter: 24px; --gap-column: 32px; --gap-card: 24px; }
  #main .heading-break { display: none; }
  #main .hero-copy h1 { font-size: clamp(1.75rem, 7.5vw, 3.375rem); }
  #main .hero-copy .heading-break { display: initial; }
  #main .section-heading .text-link, #main .cta .button { margin-top: var(--space-action); }
  #main .principles--photographic { max-width: var(--layout-width); }
  #main .principles--photographic .principle-card + .principle-card { margin-top: 32px; }
  #main .section41-note { padding: 20px; }
  #main .outreach-line p { margin-top: 8px; }
  #main .company-information-details > div { align-items: start; }
  #main .panel-heading br { display: initial; }
  #main .pathway-card > .text-link { margin-top: var(--space-action); }
  .site-footer .footer-bottom { align-items: flex-start; }
}
@media (max-width: 420px) {
  :root { --gutter: 20px; --padding-card: 24px; }
  .site-header .header-inner { gap: 12px; }
  #main .section41-note { padding: 16px; }
  #main .section41-inner > .button { justify-self: stretch; }
  #main .steps li { gap: 12px; }
  #main .copy-subject { flex-wrap: wrap; gap: 12px; }
  #main .copy-subject > span { flex: 1 1 170px; }
  #main .hero-meta span { margin-top: 0; }
  #main .hero-meta span + span { margin-top: 8px; }
}
/* Preserve the approved contrasting gold X and the surrounding brand colours. */
body .home-hero .hero-copy h1 .slogan-x, body .site-footer .slogan-x {
  color: #f9df87;
  display: inline;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  vertical-align: baseline;
}
@media print {
  #main > :is(.section, .cta) { padding-block: 24px; }
  #main > :is(.home-hero, .page-hero) { padding-block: 20px; }
  #main h1, #main .hero-copy h1 { font-size: 32px; }
  #main h2 { font-size: 24px; }
  body .home-hero .hero-copy h1 .slogan-x, body .site-footer .slogan-x { color: inherit; }
}

/* Requested homepage emphasis and About-page referral direction. */
#main[data-page="index.html"] .home-hero .hero-copy > .hero-provision-label {
  font-size: clamp(1rem, .95rem + .2vw, 1.125rem);
  line-height: 1.65;
  letter-spacing: .07em;
  max-width: none;
  text-wrap: balance;
}
#main[data-page="index.html"] .route-list--unnumbered > a {
  gap: 16px;
}
#main[data-page="index.html"] .route-list--unnumbered > a > div {
  min-width: 0;
}
#main[data-page="whoarewe.html"] .cta--directional .cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: var(--gap-column, 32px);
  row-gap: 0;
  align-items: center;
}
#main[data-page="whoarewe.html"] .cta--directional .cta-copy {
  display: contents;
}
#main[data-page="whoarewe.html"] .cta--directional .cta-copy > .eyebrow {
  grid-column: 1;
  grid-row: 1;
}
#main[data-page="whoarewe.html"] .cta--directional h2 {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-width: 0;
}
#main[data-page="whoarewe.html"] .cta-heading-text {
  min-width: 0;
}
#main[data-page="whoarewe.html"] .cta-heading-arrow {
  display: inline-block;
  flex-shrink: 0;
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  font-weight: 500;
  line-height: 1;
  color: var(--accent-strong);
}
#main[data-page="whoarewe.html"] .cta--directional .cta-copy > p {
  grid-column: 1;
  grid-row: 3;
}
#main[data-page="whoarewe.html"] .cta--directional .cta-inner > .button {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  margin-top: 0;
}
@media (max-width: 780px) {
  #main[data-page="whoarewe.html"] .cta--directional .cta-inner {
    grid-template-columns: minmax(0, 1fr);
  }
  #main[data-page="whoarewe.html"] .cta--directional h2 {
    justify-content: flex-start;
    gap: 16px;
  }
  #main[data-page="whoarewe.html"] .cta-heading-arrow {
    transform: rotate(90deg);
  }
  #main[data-page="whoarewe.html"] .cta--directional .cta-inner > .button {
    grid-column: 1;
    grid-row: 4;
    justify-self: start;
    margin-top: var(--space-action, 24px);
  }
}
@media print {
  #main[data-page="whoarewe.html"] .cta-heading-arrow { display: none; }
}
