/* Shared visual system for every Centre page. Layouts remain page-specific. */
@font-face { font-family: "Source Serif Soft"; src: url("/assets/source-serif-soft.woff2") format("woff2"); font-style: normal; font-weight: 200 900; font-display: swap; }
@font-face { font-family: "Harvey Sans"; src: url("/assets/harvey-sans-variable.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: swap; }
:root {
  --font-serif: "Source Serif Soft", Georgia, serif;
  --font-sans: "Harvey Sans", Arial, sans-serif;
  --bone: #f4f3f1;
  --ink: #22211f;
  --paper: #f9f8f6;
  --stone: #e4e3e1;
  --muted: #61605e;
  --rule: #24231f20;
  --yellow: #dcdbd9;
  --purple: #dcdbd9;
  --orange: #dcdbd9;
  --blue: #dcdbd9;
}
body { --slate: #000; --accent: #dcdbd9; color: var(--ink); background: var(--bone); font-family: var(--font-sans); }
body button, body input, body select, body textarea, body .appointment-result { font-family: var(--font-sans); }
body:not(.home) h1, body:not(.home) h2,
body .menu-panel > h2, body dialog h2,
body .statement blockquote, body .observe-quote, body .feedback-quote,
body .appointment-visual, body .sqe-fee {
  font-family: var(--font-serif);
  font-weight: 350;
  font-optical-sizing: none;
  font-variation-settings: "opsz" 28;
  letter-spacing: -.022em;
}
body:not(.home) h1 { line-height: 1.09; }
body:not(.home) h2 { line-height: 1.12; }
body:not(.home) h3 { font-family: var(--font-sans); font-weight: 400; }
body .brand-name { font-family: var(--font-serif); font-weight: 400; font-size: 24px; letter-spacing: -.025em; font-variation-settings: "opsz" 20; }
body .brand-name small { font-family: var(--font-sans); font-size: 7px; letter-spacing: .1em; }
body .brand-mark { color: var(--bone); background: #000; border-radius: 1px; }
body .site-header { background: #f4f3f1f5; border: .5px solid #24231f1a; border-radius: 3px; box-shadow: none; }
body .site-header.scrolled { background: #f4f3f1f5; border-radius: 0; }
body .button { background: #000; color: var(--bone); border-radius: 4px; padding: 15px 19px; font-size: 13px; }
body .button.yellow, body .dossier-aside .button, body .editorial-content .button { background: #000; color: var(--bone); }
body .outline-light { background: transparent; color: #f4f3f1; border: .5px solid #ffffff88; }
body .programme-hero-actions .yellow { background: var(--bone); color: var(--ink); }
body .eyebrow { color: #656462; font-size: 10px; letter-spacing: .12em; }
body .eyebrow i { background: currentColor; width: 18px; height: 1px; border-radius: 0; }
body .programme-hero .eyebrow { color: #e4e3e1; }
body .text-link { font-size: 13px; border-color: #949391; border-bottom-width: .5px; padding-bottom: 9px; }
body .menu-primary > button[aria-expanded=true], body .menu-panel a:hover { color: #555452; }
body dialog, body .access-controls button, body .search-result, body .popular-searches button { border-radius: 3px; }
body footer { background: #000; }
body .footer-image { background: none; }
body .footer-cta h2 { font-size: 58px; }
body .footer-cta .button { color: var(--ink); background: var(--bone); }
body .footer-panel { border-radius: 3px 3px 0 0; background: var(--bone); }
body .footer-top h3 { letter-spacing: .1em; }
/* The same restrained component surfaces as the landing page. */
body .finder-card, body .format-options > a, body .related-grid > a,
body .firm-card, body .cycle-card, body .people-grid > article,
body .faculty-role, body .practice-area-card, body .commitment-card,
body .selection-grid > a, body .room-card, body .lab-file, body .lab-feedback,
body .observation-board, body .scenario-board, body .appointment-visual,
body .pathway-feature, body .dossier-aside, body .sqe-day, body .firm-day,
body .sqe-steps > div, body .sqe-difference > div, body .sqe-review-details > div,
body .definition > div, body .firm-method-grid > div, body .sqe-booking,
body .firm-quote, body .filter-help, body .enquiry-context, body .enquiry-form-panel {
  border: .5px solid var(--rule); border-radius: 8px;
}
body .finder-image > span, body .sqe-sequence span { border-radius: 3px; border-width: .5px; }
body .category-tabs button { border-radius: 4px; border-width: .5px; }
body .category-tabs button[aria-pressed=true] { background: #000; border-color: #000; }
body .finder-search input, body .enquiry-form-panel textarea { border-color: #24231f35; border-width: .5px; }
body input, body select { border-bottom-width: .5px; border-color: #24231f55; }
body .contact-band, body .statement { background: #000 !important; color: #f4f3f1; }
body .contact-band h2, body .contact-band p,
body .statement h2, body .statement p, body .statement blockquote { color: #f4f3f1; }
body .statement .eyebrow { color: #bebdbb; }
body .contact-band .button, body .statement .button { color: var(--ink); background: var(--bone); }
body .enquiry-steps li.active { color: var(--ink); }
body .enquiry-steps li.active:before { background: #000; border-color: #000; color: #fff; }
body .dossier-nav a.active { border-color: #22211f; }
body .legal-content a { color: #454442; }
body .room-diagram span { border-color: #24231f35; border-width: .5px; }
body .finder-card, body .related-grid > a, body .format-options > a,
body .selection-grid > a, body .firm-card {
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
  body .finder-card:hover, body .related-grid > a:hover, body .format-options > a:hover,
  body .selection-grid > a:hover, body .firm-card:hover {
    transform: translateY(-4px); border-color: #24231f38; box-shadow: 0 14px 32px #2322200b;
  }
}
body .finder-card:focus-visible, body .related-grid > a:focus-visible,
body .format-options > a:focus-visible { outline: 2px solid #535250; outline-offset: 4px; }
body.contrast { --bone: #fff; --ink: #000; --muted: #000; --rule: #666; }
body.contrast .programme-hero { color: #fff; }
@media (max-width: 1050px) { body .site-header .brand-name { font-size: 21px; } }
@media (max-width: 760px) {
  body .site-header { border-radius: 2px; }
  body .footer-cta h2 { font-size: 43px; }
  body .editorial-content h2 br { display: initial; }
}
@media (prefers-reduced-motion: reduce) {
  body .finder-card:hover, body .related-grid > a:hover, body .format-options > a:hover,
  body .selection-grid > a:hover, body .firm-card:hover { transform: none; transition: none; }
}
body.reduce-motion .finder-card:hover, body.reduce-motion .related-grid > a:hover,
body.reduce-motion .format-options > a:hover, body.reduce-motion .selection-grid > a:hover,
body.reduce-motion .firm-card:hover { transform: none; transition: none; }
