/* Institutional pages: About (and its sections) and Contact.

   Loaded per page through `extra_styles`, alongside site.css. Uses the tokens the
   design system already defines; adds none of its own beyond local spacing.
*/

/* ============================================================
   Shared editorial page header
   ============================================================ */

.page-header {
  max-width: 900px;
  padding: 8px 0 30px;
  margin-bottom: clamp(32px, 4vw, 52px);
  border-bottom: 1px solid var(--line);
}

.page-header__crumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 26px;
  font-size: 12px;
  color: var(--muted);
}

.page-header__crumbs a {
  color: var(--muted);
  text-decoration: none;
}

.page-header__crumbs a:hover { color: var(--gold) }
.page-header__crumbs [aria-current] { color: var(--navy) }
.page-header__crumbs span[aria-hidden] { color: #c3c7c2 }

.page-header .eyebrow {
  position: relative;
  margin-bottom: 16px;
  padding-top: 18px;
}

/* Short gold rule above the eyebrow, the same mark the hero uses. */
.page-header .eyebrow::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 46px;
  height: 2px;
  background: var(--gold);
}

.page-header h1 {
  margin: 0;
  font-size: clamp(34px, 4.4vw, 54px);
  line-height: 1.12;
  letter-spacing: -.03em;
}

.page-header__lead {
  max-width: 660px;
  margin: 22px 0 0;
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.65;
  color: var(--muted);
}

/* ============================================================
   About: body beside a section rail
   ============================================================ */

.institutional-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 286px;
  gap: clamp(36px, 5vw, 76px);
  align-items: start;
  padding-bottom: 20px;
}

.institutional-layout--full { grid-template-columns: minmax(0, 1fr) }

.institutional-body {
  max-width: 68ch;
  min-width: 0;
  font-size: 17px;
  line-height: 1.85;
  color: var(--ink);
  overflow-wrap: anywhere;
}

.institutional-body > p { margin: 0 0 26px }

/* The opening paragraph carries the page, so it is set a little larger. */
.institutional-body > p:first-of-type {
  font-size: 19px;
  line-height: 1.75;
  color: #2c3742;
}

.institutional-body h2 {
  margin: 44px 0 16px;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.3;
}

.institutional-body h3 {
  margin: 34px 0 12px;
  font-size: 20px;
}

.institutional-body ul,
.institutional-body ol { margin: 0 0 26px; padding-left: 22px }
.institutional-body li { margin-bottom: 10px }

.institutional-body blockquote {
  margin: 32px 0;
  padding: 4px 0 4px 26px;
  border-left: 3px solid var(--gold);
  color: var(--muted);
  font-size: 18px;
}

.institutional-body a { text-underline-offset: 4px }

/* ============================================================
   Section rail
   ============================================================ */

.section-rail {
  position: sticky;
  top: 108px;
  min-width: 0;
}

.section-rail__title,
.contact-aside__title,
.section-rail__card-title {
  margin: 0 0 14px;
  font: 600 11px/1.5 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold);
}

.section-rail__nav {
  display: grid;
  border-top: 1px solid var(--navy);
}

.section-rail__nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 52px;
  padding: 13px 4px;
  border-bottom: 1px solid var(--line);
  color: var(--navy);
  font-size: 15px;
  font-weight: 550;
  text-decoration: none;
  transition: padding var(--duration) var(--ease), background var(--duration), color var(--duration);
}

.section-rail__arrow {
  color: #c3b285;
  transition: transform var(--duration) var(--ease);
}

.section-rail__nav a[aria-current] {
  color: var(--gold);
  font-weight: 650;
}

.section-rail__nav a[aria-current] .section-rail__arrow { color: var(--gold) }

.section-rail__card {
  margin-top: 30px;
  padding: 24px 22px;
  border: 1px solid var(--hairline);
  border-radius: 14px;
  background: var(--paper);
  box-shadow: var(--shadow-sm);
}

.section-rail__card p:not(.section-rail__card-title) {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--muted);
}

/* A comfortable touch target, with the rule hugging the words rather than the box. */
.section-rail__card a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}

.section-rail__card a > span { color: var(--gold) }

/* ============================================================
   Contact
   ============================================================ */

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  gap: clamp(28px, 3.4vw, 52px);
  align-items: start;
}

.contact-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.contact-card {
  position: relative;
  min-width: 0;
  padding: 26px 24px 28px;
  border: 1px solid var(--hairline);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}

.contact-card__icon {
  display: grid;
  place-content: center;
  width: 44px;
  height: 44px;
  margin-bottom: 20px;
  border-radius: 12px;
  background: #eef2f5;
  color: var(--navy);
}

.contact-card:nth-child(3n+2) .contact-card__icon { background: #edf2ec; color: var(--forest) }
.contact-card:nth-child(3n+3) .contact-card__icon { background: #f6efe2; color: #7d5a1d }

.contact-card__icon svg { width: 21px; height: 21px }

.contact-card__label {
  margin: 0 0 8px;
  font: 600 11px/1.5 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

.contact-card__value {
  margin: 0;
  font-size: 17px;
  line-height: 1.6;
  color: var(--navy);
  overflow-wrap: anywhere;
}

.contact-card__value a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
}

.contact-aside {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.contact-aside__panel {
  padding: 26px 24px;
  border-radius: 16px;
  border: 1px solid transparent;
  background: linear-gradient(150deg, #0d2740, var(--navy) 55%, #1a3f5a);
  color: #dbe4ec;
  box-shadow: var(--shadow-md);
}

.contact-aside__panel + .contact-aside__panel {
  background: var(--paper);
  border-color: var(--hairline);
  color: var(--muted);
  box-shadow: var(--shadow-sm);
}

.contact-aside__panel .contact-aside__title { color: var(--gold-light) }
.contact-aside__panel + .contact-aside__panel .contact-aside__title { color: var(--gold) }

.contact-aside__panel p:not(.contact-aside__title) {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.7;
}

.contact-aside__action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--gold-light);
  color: var(--deep);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background var(--duration), transform var(--duration);
}

.contact-aside__action:hover { background: #f0dcb2; color: var(--deep) }

.contact-aside__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
}

.contact-aside__links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
}

/* ============================================================
   Service links below the contact details
   ============================================================ */

.contact-services {
  margin-top: clamp(44px, 5vw, 76px);
  padding-top: clamp(32px, 3.4vw, 46px);
  border-top: 1px solid var(--line);
}

.contact-services h2 {
  margin: 0 0 10px;
  font-size: clamp(22px, 2.2vw, 30px);
}

.contact-services__lead {
  max-width: 560px;
  margin: 0 0 28px;
  color: var(--muted);
  font-size: 16px;
}

.contact-services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 12px;
}

.contact-services__grid a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 62px;
  padding: 16px 20px;
  border: 1px solid var(--hairline);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--shadow-sm);
  color: var(--navy);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}

.contact-services__grid a > span[aria-hidden] { color: var(--gold) }

/* ============================================================
   Shared empty state — deliberate, not broken
   ============================================================ */

.page-empty {
  display: grid;
  justify-items: center;
  gap: 20px;
  max-width: 620px;
  margin: 10px auto;
  padding: clamp(40px, 6vw, 68px) clamp(24px, 4vw, 48px);
  border: 1px solid var(--hairline);
  border-radius: 18px;
  background: var(--paper);
  text-align: center;
}

.page-empty__mark {
  display: grid;
  place-content: center;
  width: 66px;
  height: 74px;
  background: var(--navy);
  color: var(--gold-light);
  font: 600 17px/1 var(--sans);
  letter-spacing: .18em;
  border: 1px solid #b59452;
  outline: 1px solid #b59452;
  outline-offset: 4px;
}

.page-empty p {
  margin: 0;
  max-width: 44ch;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
}

/* ============================================================
   Motion
   ============================================================ */

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .contact-card:hover,
  .contact-services__grid a:hover {
    transform: translateY(-4px);
    border-color: #ddd0af;
    box-shadow: var(--shadow-md);
  }

  .section-rail__nav a:hover {
    background: #faf8f2;
    padding-inline: 10px 4px;
    color: var(--gold);
  }

  .section-rail__nav a:hover .section-rail__arrow { transform: translateX(3px) }
  .contact-aside__action:hover { transform: translateY(-2px) }
}

@media (prefers-reduced-motion: reduce) {
  .contact-card,
  .contact-services__grid a,
  .section-rail__nav a,
  .section-rail__arrow,
  .contact-aside__action { transition: none }
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 1000px) {
  .institutional-layout,
  .contact-layout { grid-template-columns: minmax(0, 1fr) }

  .section-rail {
    position: static;
    padding-top: 36px;
    border-top: 1px solid var(--line);
  }

  .section-rail__nav { max-width: 520px }
  .section-rail__card { max-width: 520px }
  .contact-aside { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) }
}

@media (max-width: 700px) {
  .page-header {
    padding-bottom: 24px;
    margin-bottom: 30px;
  }

  .page-header__crumbs { margin-bottom: 20px; font-size: 11px }
  .page-header h1 { font-size: clamp(27px, 7.6vw, 36px) }
  .page-header__lead { font-size: 16px; margin-top: 16px }

  .institutional-body { font-size: 16px; line-height: 1.8 }
  .institutional-body > p:first-of-type { font-size: 17px }

  .contact-cards { grid-template-columns: minmax(0, 1fr) }
  .contact-card { padding: 22px 20px 24px }
  .contact-card__icon { width: 40px; height: 40px; margin-bottom: 16px }
  .contact-card__value { font-size: 16px }
  .contact-aside { grid-template-columns: minmax(0, 1fr) }
  .contact-aside__panel { padding: 22px 20px }
  .contact-services__grid { grid-template-columns: minmax(0, 1fr) }
  .page-empty { padding: 34px 22px; gap: 16px }
}

@media print {
  .section-rail,
  .contact-services,
  .page-header__crumbs { display: none }

  .contact-card,
  .contact-aside__panel,
  .page-empty {
    box-shadow: none;
    border: 1px solid #ccc;
    background: #fff;
    color: #000;
    break-inside: avoid;
  }

  .institutional-layout,
  .contact-layout { display: block }
}

/* ============================================================
   About landing page
   ============================================================ */

.about-opening {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: clamp(32px, 4.5vw, 68px);
  align-items: start;
  padding-bottom: clamp(40px, 5vw, 68px);
}

.about-opening__body {
  max-width: 68ch;
  min-width: 0;
  font-size: 17px;
  line-height: 1.85;
  color: var(--ink);
  overflow-wrap: anywhere;
}

.about-opening__body > p { margin: 0 0 26px }

.about-opening__body > p:first-of-type {
  font-size: 19px;
  line-height: 1.75;
  color: #2c3742;
}

.about-opening__body h2 { margin: 42px 0 15px; font-size: clamp(22px, 2vw, 27px) }
.about-opening__body h3 { margin: 32px 0 12px; font-size: 20px }
.about-opening__body ul,
.about-opening__body ol { margin: 0 0 26px; padding-left: 22px }
.about-opening__body li { margin-bottom: 10px }

.page-empty--inline { margin: 0; max-width: none }

/* Register figures */
.about-figures {
  position: sticky;
  top: 108px;
  min-width: 0;
  padding: 26px 24px 22px;
  border: 1px solid var(--hairline);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--shadow-sm);
}

.about-figures__title {
  margin: 0 0 18px;
  font: 600 11px/1.5 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold);
}

.about-figures dl { margin: 0; display: grid }

.about-figure {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid #e4ded0;
}

.about-figure dt {
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
}

.about-figure dd {
  margin: 0;
  font: 600 27px/1 var(--sans);
  letter-spacing: -.03em;
  color: var(--navy);
  font-variant-numeric: tabular-nums;
}

.about-figures__note {
  margin: 16px 0 0;
  font-size: 11px;
  line-height: 1.5;
  color: #9a917f;
}

/* Section cards */
.about-sections,
.about-leadership {
  padding-top: clamp(40px, 5vw, 68px);
  border-top: 1px solid var(--line);
}

.about-sections__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
}

.about-section-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  min-height: 78px;
  padding: 20px 22px;
  border: 1px solid var(--hairline);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}

.about-section-card__index {
  font: 600 12px/1 var(--sans);
  letter-spacing: .08em;
  color: var(--gold);
}

.about-section-card__label {
  font-size: 16px;
  font-weight: 600;
  color: var(--navy);
  line-height: 1.35;
}

.about-section-card__arrow {
  color: #c3b285;
  transition: transform var(--duration) var(--ease);
}

/* Leadership */
.about-leadership__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: clamp(18px, 2.4vw, 28px);
}

.about-leader {
  display: flex;
  gap: 22px;
  min-width: 0;
  padding: 26px 24px;
  border: 1px solid var(--hairline);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}

.about-leader img,
.about-leader__monogram {
  flex: 0 0 96px;
  width: 96px;
  height: 118px;
  border-radius: 10px;
  object-fit: cover;
  object-position: center 18%;
  border-bottom: 3px solid var(--gold);
}

.about-leader__monogram {
  display: grid;
  place-content: center;
  background: #e8edf0;
  color: var(--navy);
  font: 600 40px/1 var(--sans);
}

.about-leader__body { min-width: 0 }

.about-leader__role {
  margin: 0 0 6px;
  font: 600 11px/1.5 var(--sans);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--gold);
}

.about-leader h3 {
  margin: 0 0 12px;
  font-size: 20px;
  line-height: 1.3;
}

.about-leader__quote {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.75;
  color: var(--muted);
}

.about-leader__body > a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: 6px;
}

.about-leader__body > a span { color: var(--gold) }

/* Closing call to action */
.about-cta {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(26px, 3.4vw, 52px);
  margin-top: clamp(44px, 5vw, 76px);
  padding: clamp(32px, 3.8vw, 54px);
  border-radius: 20px;
  background: linear-gradient(135deg, #0a2236 0%, var(--navy) 46%, #17384f 100%);
  box-shadow: var(--shadow-lg);
}

.about-cta .eyebrow { color: var(--gold-light) }

.about-cta__copy h2 {
  margin: 0 0 14px;
  color: #f6f2e8;
  font-size: clamp(24px, 2.6vw, 34px);
}

.about-cta__copy p {
  margin: 0;
  max-width: 52ch;
  color: #c3d0da;
  font-size: 15px;
  line-height: 1.75;
}

.about-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.about-cta__primary,
.about-cta__secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 24px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background var(--duration), transform var(--duration), border-color var(--duration), color var(--duration);
}

.about-cta__primary {
  background: var(--gold-light);
  color: var(--deep);
}

.about-cta__primary:hover { background: #f0dcb2; color: var(--deep) }

.about-cta__secondary {
  border: 1px solid rgba(255, 255, 255, .28);
  color: #e7eef4;
}

.about-cta__secondary:hover {
  border-color: var(--gold-light);
  color: var(--gold-light);
}

/* ============================================================
   Contact form
   ============================================================ */

.contact-form-section {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  gap: clamp(28px, 3.6vw, 56px);
  align-items: start;
  margin-top: clamp(44px, 5vw, 76px);
  padding-top: clamp(32px, 3.4vw, 46px);
  border-top: 1px solid var(--line);
}

.contact-form-intro h2 {
  margin: 0 0 14px;
  font-size: clamp(24px, 2.4vw, 32px);
}

.contact-form-intro p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}

.contact-form {
  padding: clamp(26px, 3vw, 38px);
  border: 1px solid var(--hairline);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-md);
}

.contact-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.form-row { display: grid; min-width: 0; grid-column: 1 / -1 }
.form-row--half { grid-column: auto }

.form-row label {
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
}

.form-row__required { color: var(--gold) }

.contact-form input,
.contact-form textarea {
  width: 100%;
  min-height: 52px;
  padding: 13px 16px;
  border: 1px solid #cfd5d8;
  border-radius: 10px;
  background: #fcfcfa;
  color: var(--ink);
  font: inherit;
  font-size: 15px;
  transition: border-color var(--duration), box-shadow var(--duration), background var(--duration);
}

.contact-form textarea { min-height: 150px; resize: vertical; line-height: 1.7 }

.contact-form input:focus,
.contact-form textarea:focus {
  outline: none;
  background: #fff;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(16, 43, 70, .1);
}

.form-row.is-invalid input,
.form-row.is-invalid textarea {
  border-color: #b5645c;
  background: #fdf7f6;
}

.form-row__error {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #9c4a43;
}

/* The honeypot leaves the reading and tab order entirely, never merely tinted. */
.contact-form__trap {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.form-notice {
  margin: 0 0 22px;
  padding: 14px 18px;
  border-radius: 10px;
  border-left: 3px solid #9c4a43;
  background: #fbf0ef;
  color: #7d3a34;
  font-size: 14px;
  line-height: 1.6;
}

.form-notice p { margin: 0 }
.form-notice p + p { margin-top: 6px }

.contact-form__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 22px;
  margin-top: 26px;
  padding-top: 24px;
  border-top: 1px solid #f0ece3;
}

.contact-form button {
  min-height: 52px;
  padding: 14px 32px;
  border: 0;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--duration), transform var(--duration);
}

.contact-form button:hover { background: var(--forest) }

.contact-form__note {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
}

/* ============================================================
   Motion and responsive for the sections above
   ============================================================ */

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .about-section-card:hover,
  .about-leader:hover {
    transform: translateY(-4px);
    border-color: #ddd0af;
    box-shadow: var(--shadow-md);
  }

  .about-section-card:hover .about-section-card__arrow { transform: translateX(4px) }

  .about-cta__primary:hover,
  .contact-form button:hover { transform: translateY(-2px) }
}

@media (prefers-reduced-motion: reduce) {
  .about-section-card,
  .about-leader,
  .about-cta__primary,
  .about-cta__secondary,
  .contact-form button,
  .contact-form input,
  .contact-form textarea { transition: none }
}

@media (max-width: 1000px) {
  .about-opening,
  .contact-form-section { grid-template-columns: minmax(0, 1fr) }

  .about-figures { position: static; max-width: 520px }
  .about-cta { grid-template-columns: minmax(0, 1fr) }
}

@media (max-width: 700px) {
  .about-opening { padding-bottom: 32px; gap: 28px }
  .about-opening__body { font-size: 16px }
  .about-opening__body > p:first-of-type { font-size: 17px }
  .about-figure dd { font-size: 23px }
  .about-sections__grid { grid-template-columns: minmax(0, 1fr) }
  .about-leadership__grid { grid-template-columns: minmax(0, 1fr) }
  .about-leader { flex-direction: column; gap: 18px; padding: 22px 20px }
  .about-leader img,
  .about-leader__monogram { flex: 0 0 auto; width: 84px; height: 104px }
  .about-cta { padding: 28px 22px; border-radius: 16px }
  .about-cta__actions > a { width: 100% }
  .contact-form { padding: 22px 18px; border-radius: 14px }
  .contact-form__grid { grid-template-columns: minmax(0, 1fr); gap: 16px }
  .form-row--half { grid-column: 1 / -1 }
  .contact-form button { width: 100% }
  .contact-form__actions { margin-top: 20px; padding-top: 20px }
}

@media print {
  .contact-form-section,
  .about-cta { display: none }

  .about-figures,
  .about-section-card,
  .about-leader { box-shadow: none; border: 1px solid #ccc }
}

/* Final institutional finish; retains the existing page components and form. */
.view-about main,.view-contact main{padding-top:28px;padding-bottom:44px}
.view-about .page-header,.view-contact .page-header{max-width:none;padding:24px 30px 28px;margin-bottom:30px;background:#f3f0e8;border:1px solid #e4ddcf;border-left:3px solid var(--gold);border-radius:4px}
.page-header__crumbs{margin-bottom:18px}.page-header h1{font-size:clamp(32px,3.4vw,46px)}.page-header__lead{font-size:17px;margin-top:16px}
.about-opening{gap:32px;padding-bottom:30px;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr)}
.about-opening__body{padding:28px;background:#fff;border:1px solid var(--line);border-radius:4px;max-width:none}
.about-opening__body .about-intro-title{margin:0 0 18px;font-size:30px;line-height:1.25}
.about-opening__body p{font-size:16px;line-height:1.85;margin-bottom:18px}.about-opening__body .eyebrow{font-size:11px}
.about-intro-link{display:inline-flex;align-items:center;gap:18px;min-height:44px;font-size:13px;text-underline-offset:5px}
.about-figures{position:static;max-width:none;border-radius:4px;box-shadow:none;background:#102f40;border-color:#102f40;color:#fff}
.about-figures__title{color:#dfc58e}.about-figure{border-color:#ffffff25}.about-figure dt,.about-figures__note{color:#ccdade}.about-figure dd{color:#fff}
.about-sections,.about-leadership{margin-top:0;padding-top:24px;padding-bottom:8px}.about-sections .section-heading,.about-leadership .section-heading{margin-bottom:20px}.about-sections h2,.about-leadership h2{font-size:28px;margin-bottom:0}
.about-section-card{padding:20px;border-radius:4px;box-shadow:none}.about-sections__grid{gap:14px}.about-section-card:hover{transform:none;box-shadow:none;background:#f8f5ee}
.about-leadership{margin-top:24px}.about-leader{padding:22px;border-radius:4px;box-shadow:none;gap:20px}.about-leader:hover{transform:none;box-shadow:none}.about-leader img,.about-leader__monogram{border-radius:2px}.about-leader h3{font-size:22px}.about-leader__quote{font-size:14px}
.about-cta{margin-top:30px;padding:28px;border-radius:4px;box-shadow:none}.about-cta h2{font-size:28px}.about-cta__primary,.about-cta__secondary{border-radius:4px}
.contact-layout{grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:24px}.contact-cards{gap:14px}.contact-card:first-child{grid-column:1/-1}.contact-card{padding:20px 22px;border-radius:4px;box-shadow:none}.contact-card:hover{transform:none;box-shadow:none}.contact-card__icon{width:36px;height:36px;border-radius:4px;margin-bottom:12px}.contact-card__value{font-size:16px}.contact-aside__panel{border-radius:4px;padding:24px;box-shadow:none}
.contact-form-section{margin-top:32px;padding-top:30px;gap:36px;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)}
.contact-form{border-radius:4px;padding:26px;box-shadow:none}.contact-form-intro h2{font-size:30px}.contact-form-intro p{font-size:15px;line-height:1.85}.contact-form input,.contact-form textarea{border-radius:4px;font-size:16px}.contact-form button{border-radius:4px}.contact-form__actions{margin-top:20px;padding-top:18px}.contact-services{margin-top:32px;padding-top:26px}.contact-services__grid a{border-radius:4px;box-shadow:none}
@media(max-width:900px){.about-opening,.contact-layout,.contact-form-section{grid-template-columns:1fr}.about-figures dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.contact-aside{grid-template-columns:1fr}.contact-form-section{gap:20px}.about-opening__body{padding:24px}}
@media(max-width:600px){.view-about main,.view-contact main{padding-top:20px;padding-bottom:30px}.view-about .page-header,.view-contact .page-header{padding:20px;margin-bottom:22px}.page-header h1{font-size:30px}.about-opening{gap:18px;padding-bottom:20px}.about-opening__body{padding:20px}.about-opening__body .about-intro-title{font-size:26px}.about-leader{flex-direction:row;gap:14px;padding:18px}.about-leader img,.about-leader__monogram{width:64px;height:80px;flex-shrink:0}.about-leader__body{min-width:0}.about-leader h3{font-size:19px}.about-cta{padding:22px}.contact-card{padding:18px}.contact-form{padding:20px 16px}.contact-form-section{margin-top:24px}.contact-aside__panel{padding:22px}.about-figure dt{font-size:12px}}
