/* Larger branding and clearer text on the light Integra backgrounds. */
:root { --muted: #000; }
html { scroll-padding-top: 132px; }

.header { height: 116px; }
.header .brand-name {
  width: 252px;
  height: auto;
  aspect-ratio: 1060 / 357;
}
.header .logo-frame { width: 44px; height: 84px; }
.header .logo-frame img { width: 84px; height: 84px; }
.header .brand-discipline { font-size: 1.3rem; }

.footer-main .brand-link { gap: 12px; max-width: 100%; }
.footer-main .brand-name {
  width: min(252px, calc(86vw - 56px));
  height: auto;
  aspect-ratio: 1060 / 357;
}
.footer-main .logo-frame { width: 44px; height: 84px; }
.footer-main .logo-frame img { width: 84px; height: 84px; }

/* Muted paragraphs, captions and small labels are black on light panels. */
main p,
.policy-main :is(li, address),
.home-professional-title,
.home-registration,
.home-returning a,
.team-professional-title,
.team-qualification,
.team-registration,
.journal-body p,
.journal-byline a,
.journal-strip strong,
.journal-contents a,
.journal-endnotes :is(h2, a),
.journal-edition,
.newsletter-document-label,
.newsletter-document-action,
.news-feature-edition,
.page-next-actions .text-link,
.care-item .text-link,
.visit-practical .text-link,
.fees-page-content .text-link,
.home-intro-actions .text-link,
.team-intro-copy .text-link,
.arrival .text-link,
.news-content .text-link,
.journey-panel :is(label, small, .back-button, .booking-label, .result-kicker),
.journey-progress li,
.journey-progress li[aria-current="step"],
.testimonials-page .testimonial:not(.testimonial-featured) figcaption,
footer :is(.footer-hours, .footer-hours-label, .footer-pages, .footer-policies, .footer-bottom, .social-caption),
.footer-social a,
.desktop-nav,
.menu-toggle,
.mobile-nav-policies :is(p, a),
.mobile-directions { color: #000; }

main .section .eyebrow,
.care .number,
.arrival .number,
.visit-layout .steps article > span,
.concern-number,
.journal-hero .journal-kicker,
.news-content .news-meta { color: #000; }

/* Light type continues to provide contrast within the dark green sections. */
.journey-intro > p:not(.eyebrow),
.home-visit p,
.contact p,
.journal-offer :is(.journal-offer-terms, .journal-offer-label > p:last-child) { color: #fff; }
.journey-intro .journey-aside p,
.home-visit-heading > p { color: #fff; }
main :is(.contact, .home-contact, .home-visit, .journey) .eyebrow { color: #fff; }
.testimonials-page .testimonial-featured blockquote p { color: inherit; }
.journal-photo figcaption { color: #fff; }

/* Emerald outlines define the darker beige panels and booking areas. */
.visit-practical,
.fees-information,
.booking-status,
.newsletter-document,
.news-feature,
.page-next,
.care,
.arrival,
.home-feedback,
.principles { border: 1.5px solid var(--green); }
.visit-practical,
.fees-information { border-top-width: 2px; }
.newsletter-document:hover,
.choice:hover { border-color: var(--green); }
.visit-practical > section + section { border-color: var(--green); }

@media (max-width: 650px) {
  html { scroll-padding-top: 116px; }
  .header { height: 100px; padding-inline: 4%; gap: 12px; }
  .header .brand-link { gap: 10px; }
  .header .brand-name { width: min(220px, calc(92vw - 136px)); }
  .header .logo-frame { width: 38px; height: 72px; }
  .header .logo-frame img { width: 72px; height: 72px; }
  .header .brand-discipline {
    font-size: clamp(1rem, 4.8vw, 1.25rem);
    letter-spacing: .08em;
    padding-left: .08em;
  }
  .header .menu-toggle { flex-basis: 76px; width: 76px; }
}

/* Jewel colours create distinct destinations within each page. */
:root {
  --emerald-accent: #052f25;
  --green: #052f25;
  --green-dark: #03231c;
  --navy-accent: #142b4a;
  --blue: #142b4a;
  --gold-accent: #dec283;
  --emerald-wash: #e5f1ec;
  --navy-wash: #edf0f5;
}
.announcement.opening-news {
  background: var(--navy-accent);
  color: #fff;
  border-bottom: 3px solid var(--gold-accent);
}
.header { border-bottom: 2px solid var(--emerald-accent); }
.button { background: var(--emerald-accent); border-color: var(--emerald-accent); }
.button:hover { background: #03231c; }
.text-link { border-bottom-color: #9b742d; }

/* Strong filled panels separate arrival and fee details from the main content. */
.visit-practical,
.fees-information {
  background: var(--emerald-accent);
  border: 2px solid var(--emerald-accent);
  border-top: 5px solid var(--gold-accent);
  color: #fff;
}
.visit-practical :is(h2, p, .text-link),
.fees-page-content .fees-information :is(h2, h3, p, .text-link) { color: #fff; }
.visit-practical .text-link,
.fees-information .text-link { border-bottom-color: var(--gold-accent); }
.visit-practical > section + section { border-color: var(--gold-accent); }

/* Dark navy booking bands, with a clear gold action. */
.page-next {
  background: var(--navy-accent);
  border: 0;
  border-top: 4px solid var(--gold-accent);
  color: #fff;
}
main .page-next :is(h2, p, .eyebrow),
.page-next .page-next-actions .text-link { color: #fff; }
.page-next .text-link { border-bottom-color: var(--gold-accent); }
.page-next .button {
  background: var(--gold-accent);
  border-color: var(--gold-accent);
  color: #122c24;
}
.page-next .button:hover { background: #efd9a8; }

/* Colour and spacing distinguish the care and travel cards. */
.care, .arrival {
  background: var(--emerald-wash);
  border: 0;
  border-top: 4px solid var(--emerald-accent);
}
.care > .section-heading h2,
.arrival > .section-heading h2 { color: var(--navy-accent); }
.care-grid, .arrival-grid { gap: 24px; border: 0; }
.care .care-item,
.arrival .arrival-grid article {
  min-width: 0;
  padding: 28px 24px;
  background: #fff;
  border: 1px solid var(--emerald-accent);
  border-top: 5px solid var(--emerald-accent);
}
.care .care-item:nth-child(2),
.arrival .arrival-grid article:nth-child(2) {
  background: var(--navy-wash);
  border-color: var(--navy-accent);
}
.care .care-item h3,
.arrival .arrival-grid h3 { color: var(--navy-accent); }
.care .care-note, .arrival .arrival-note {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 2px solid var(--emerald-accent);
}

.home-visit {
  background: var(--emerald-accent);
  border-top: 5px solid var(--gold-accent);
}
.home-visit-hours {
  padding: clamp(24px, 3vw, 36px);
  background: var(--navy-accent);
  border: 1px solid var(--gold-accent);
}
.home-page .home-visit-hours h3 { color: #fff; }
.home-visit-hours dl, .home-visit-hours dl > div { border-color: var(--gold-accent); }
.home-visit-grid { align-items: start; }
.team-biography { background: var(--emerald-wash); border-top: 4px solid var(--emerald-accent); }
.team-bio-row h2 { color: var(--navy-accent); }
.team-bio-row + .team-bio-row { border-top: 2px solid var(--emerald-accent); }

.fees-page-content .fee-grid { border: 0; gap: 16px; }
.fees-page-content .fee-card {
  padding: 28px 24px;
  background: var(--emerald-wash);
  border: 1px solid var(--emerald-accent);
  border-left: 5px solid var(--emerald-accent);
}
.fees-page-content .fee-card:nth-child(even) {
  background: var(--navy-wash);
  border-color: var(--navy-accent);
}
.fees-page-content .fee-price { color: var(--navy-accent); }
.testimonials-page .testimonial:not(.testimonial-featured) {
  padding: 28px 24px;
  background: var(--navy-wash);
  border: 1px solid var(--navy-accent);
  border-top: 4px solid var(--navy-accent);
}
.testimonials-page .testimonial-featured { background: var(--emerald-accent); }
.newsletter-document, .news-feature {
  background: var(--paper);
  border: 1px solid var(--navy-accent);
  border-top: 4px solid var(--navy-accent);
}
footer { border-top: 4px solid var(--gold-accent); }
.footer-hours { padding-left: 20px; border-left: 3px solid var(--navy-accent); }

@media (max-width: 650px) {
  .care-grid, .arrival-grid { gap: 20px; }
  .fees-page-content .fee-card { padding: 24px 18px; }
  .home-visit-hours { padding: 24px 20px; }
}

.care-page .page-intro { border-bottom-color: var(--navy-accent); }

/* Clear, bold navy navigation, using the matching serif's real bold face. */
@font-face {
  font-family: 'Latin Modern Roman Menu';
  src: url('fonts/lmroman12-bold.otf') format('opentype');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
.header .desktop-nav a,
.header .mobile-nav a,
.header .mobile-nav-policies p,
.header .menu-toggle {
  color: var(--navy-accent);
  font-weight: 700;
}
.header .mobile-nav-primary a {
  font-family: 'Latin Modern Roman Menu', var(--serif);
}
.header .mobile-nav-policies a { font-size: 1rem; }
.header .mobile-nav a:hover,
.header .mobile-nav a[aria-current="page"] {
  color: var(--navy-accent);
  font-weight: 700;
}

/* Only the two icon strokes rotate when the menu opens. */
.header .menu-toggle[aria-expanded] > .menu-toggle-label {
  width: auto;
  height: auto;
  background: none;
  transform: none;
  font: 700 1rem/1 var(--sans);
}
.header .menu-toggle[aria-expanded] > .menu-toggle-icon {
  height: auto;
  background: none;
  transform: none;
  gap: 6px;
}
.menu-toggle .menu-toggle-icon > span {
  height: 2px;
  background: currentColor;
}

/* Clear review provenance. */
.testimonials-page .feedback-context{margin:0 0 30px;font-size:14px;line-height:1.75;color:#42536a}
