/* Visitor guides use the same typography, palette and spacing as the public site. */
.page-guide .page-heading { padding-block: 52px; gap: clamp(28px, 5vw, 76px); }
.page-guide .page-heading h1 { font-size: clamp(40px, 4.7vw, 68px); line-height: 1.06; max-width: 20ch; }
.page-guide .heading-photo { position: relative; height: 440px; }
.page-guide .heading-photo img { object-position: center 25%; }
.guide-photo-caption { position: absolute; inset: auto 18px 18px; display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 12px 16px; background: #171815eb; color: var(--ink); font-size: 12px; }
.public-content > .visit-article { display: grid; grid-template-columns: minmax(180px, .65fr) minmax(0, 1.7fr); gap: clamp(30px, 6vw, 88px); align-items: start; }
.visit-contents { position: sticky; top: 125px; }
.visit-contents ol { list-style: decimal-leading-zero; padding-left: 28px; font-size: 13px; }
.visit-contents li { padding-left: 6px; margin-bottom: 8px; }
.visit-contents li a { display: block; padding-block: 9px; color: var(--muted) !important; }
.visit-contents li a:hover { color: var(--gold) !important; }
.visit-boundaries { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 12px; }
.visit-prose { max-width: 76ch; min-width: 0; }
.visit-prose > section { scroll-margin-top: 125px; padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.visit-prose > section:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.visit-prose h2 { font-size: clamp(30px, 3vw, 42px); line-height: 1.15; }
.visit-prose p { font-size: 15px; }
.visit-context-links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.visit-context-links li { margin: 0; }
.visit-context-links a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 12px; text-decoration: underline; text-underline-offset: 5px; }
.visit-faq details { border-top: 1px solid var(--line); }
.visit-faq summary { cursor: pointer; padding: 20px 4px; font-size: 14px; color: var(--ink); }
.visit-faq details p { padding: 0 4px 8px; }
.visit-guides-heading { max-width: 740px; margin-bottom: 32px; }
.visit-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 30px; }
.visit-guide-card { border: 1px solid var(--line); background: var(--surface); padding: clamp(22px, 3vw, 36px); display: flex; align-items: flex-start; flex-direction: column; }
.visit-guide-card h3 { margin-bottom: 16px; font-size: clamp(28px, 2.8vw, 36px); }
.visit-guide-card p { font-size: 13px; }
.visit-guide-card .text-link { margin-top: auto; font-size: 12px; }
.visit-services .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.visit-services .catalog-card { min-width: 0; }
.visit-people .people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.visit-booking { display: flex; align-items: center; gap: 36px; justify-content: space-between; background: var(--surface); }
.visit-booking > div { max-width: 680px; }
.visit-booking .button { flex-shrink: 0; }
.footer-boundaries { font-size: 12px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.page-profile .profile-summary .page-lead + .page-lead { margin-top: -8px; }
.page-profile .profile-primary { align-self: start; }
@media (max-width: 1000px) {
  .visit-services .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visit-booking { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 850px) {
  .public-content > .visit-article { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .visit-contents { position: static; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
  .visit-contents ol { columns: 2; column-gap: 32px; }
  .visit-contents li { break-inside: avoid; }
  .page-guide .page-heading.has-photo { grid-template-columns: minmax(0, 1fr); }
  .page-guide .heading-photo { height: 420px; width: 100%; }
  .visit-people .people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .page-guide .page-heading { padding-block: 32px; }
  .page-guide .page-heading h1 { font-size: 39px; }
  .page-guide .heading-photo { height: 380px; }
  .visit-guide-grid, .visit-services .catalog-grid, .visit-people .people-grid { grid-template-columns: minmax(0, 1fr); }
  .visit-contents ol { columns: 1; }
  .visit-prose p { font-size: 14px; }
  .visit-booking .button { width: 100%; }
}
