
.fic-visit-page { background: var(--fic-surface); color: var(--fic-text-mid); }
.fic-visit-page h1,
.fic-visit-page h2,
.fic-visit-page h3,
.fic-visit-page p { margin: 0; }
.fic-visit-page h2,
.fic-visit-page h3 { color: var(--fic-teal-deep); }
.fic-visit-page .fic-type-section { margin-bottom: var(--fic-space-sm); }
.fic-visit-page .fic-type-lead { max-width: 600px; }
.fic-visit-page [id] { scroll-margin-top: calc(72px + env(safe-area-inset-top, 0px) + var(--fic-space-md)); }
.fic-visit-page .fic-container { position: relative; z-index: 1; }
.fic-visit-section { position: relative; padding-block: var(--fic-section-pad-y); }
.fic-visit-section__head { margin-bottom: var(--fic-space-lg); }
.fic-visit-light { background: var(--fic-surface-alt); }
.fic-visit-dark { background: var(--fic-teal-deep); color: var(--fic-text-on-dark-mid); }
.fic-visit-dark h1,
.fic-visit-dark h2,
.fic-visit-dark h3 { color: var(--fic-white); }
.fic-visit-dark h1 span,
.fic-visit-dark h2 span { color: var(--fic-gold); }
.fic-visit-dark :focus-visible { outline: 2px solid var(--fic-gold); outline-offset: 3px; }
.fic-visit-hero { position: relative; padding-block: calc(72px + var(--fic-hero-pad-y)) var(--fic-hero-pad-y); }
.fic-visit-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--fic-space-xl); align-items: end; }
.fic-visit-hero h1 { margin-bottom: var(--fic-space-sm); }

.fic-visit-crumbs { color: var(--fic-text-on-dark-muted); }
.fic-visit-crumbs ol { display: flex; flex-wrap: wrap; gap: var(--fic-space-xs); list-style: none; padding: 0; margin: 0 0 var(--fic-space-md); }
.fic-visit-crumbs a { color: inherit; text-decoration: none; }
.fic-visit-crumbs a:hover { color: var(--fic-gold-light); text-decoration: underline; }
.fic-visit-crumbs li + li::before { content: '/'; margin-right: var(--fic-space-xs); color: var(--fic-gold); }
.fic-visit-crumbs [aria-current] { color: var(--fic-white); }
/* Also used by the shared Group Visits panels. */
.fic-visit-plan,
.fic-visit-etiquette__card { border: 1px solid var(--fic-edge-gold); border-radius: var(--fic-radius-card); background: var(--fic-teal-mid); box-shadow: var(--fic-shadow-card-dark); -webkit-backdrop-filter: none; backdrop-filter: none; }

.fic-visit-form { border: 1px solid var(--fic-edge-gold); border-radius: var(--fic-radius-card); background: var(--fic-white); box-shadow: var(--fic-shadow-card-dark); color: var(--fic-text-mid); }
.fic-visit-dark .fic-visit-form :focus-visible { outline-color: var(--fic-teal-deep); }
.fic-visit-dark .fic-visit-form h3 { color: var(--fic-teal-deep); }
.fic-visit-hero .fic-type-lead { max-width: 560px; }
.fic-visit-plan { padding: var(--fic-space-md); min-width: 0; }
.fic-visit-plan h2 { color: var(--fic-gold); text-transform: uppercase; }
.fic-visit-plan dl { margin: var(--fic-space-sm) 0; }
.fic-visit-plan dl > div { display: flex; flex-wrap: wrap; gap: 4px 8px; padding-block: 8px; border-bottom: 1px solid var(--fic-line-on-dark); }
.fic-visit-plan dl > div:last-child { border: 0; }
.fic-visit-plan dt { color: var(--fic-white); font-weight: 700; }
.fic-visit-plan dd { margin: 0; overflow-wrap: anywhere; }
.fic-visit-plan .fic-button-primary { display: flex; width: 100%; }
.fic-visit-plan .fic-link { margin-top: var(--fic-space-sm); }
.fic-visit-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fic-space-xl); align-items: center; }
.fic-visit-welcome p + p { margin-top: var(--fic-space-sm); }
.fic-visit-badges { display: flex; flex-wrap: wrap; gap: var(--fic-space-xs); margin-top: var(--fic-space-md); }
.fic-visit-badges span { padding: 10px 12px; border-radius: var(--fic-radius-sm); background: var(--fic-gold-pale); color: var(--fic-gold-ink); }
.fic-visit-statement { border-radius: var(--fic-radius-card); padding: var(--fic-space-lg); box-shadow: var(--fic-shadow-deep); }
.fic-visit-statement em { color: var(--fic-gold); font-style: normal; }
.fic-visit-statement p:first-child { color: var(--fic-white); }
.fic-visit-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--fic-grid-gap); counter-reset: visit; }
.fic-visit-step { padding: var(--fic-space-md); border: 1px solid var(--fic-line-on-light); border-bottom: 3px solid transparent; border-radius: var(--fic-radius-card); background: var(--fic-white); box-shadow: var(--fic-shadow-rest); transition: transform 150ms ease-out, border-color 150ms ease-out, box-shadow 150ms ease-out; }
.fic-visit-step:hover { transform: translateY(-3px); border-bottom-color: var(--fic-gold); box-shadow: var(--fic-shadow-raised); }
.fic-visit-step::before { counter-increment: visit; content: '0' counter(visit); display: block; font-family: var(--fic-font-heading); font-size: 30px; font-weight: 800; line-height: 1; color: var(--fic-gold); margin-bottom: var(--fic-space-sm); }
.fic-visit-step h3 { margin-bottom: var(--fic-space-xs); }
.fic-visit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--fic-grid-gap); }
.fic-visit-etiquette { background: var(--fic-teal-deep); }
.fic-visit-etiquette__card { padding: var(--fic-space-lg); }
.fic-visit-etiquette__card h3 { margin-bottom: var(--fic-space-xs); }
.fic-visit-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: var(--fic-radius-sm); background: var(--fic-teal-deep); color: var(--fic-gold); }
.fic-visit-etiquette__card .fic-visit-icon { margin-bottom: var(--fic-space-sm); }
.fic-visit-facility { display: flex; gap: var(--fic-space-sm); padding: var(--fic-space-md); border: 1px solid var(--fic-line-on-light); border-radius: var(--fic-radius-card); box-shadow: var(--fic-shadow-rest); background: var(--fic-white); min-width: 0; }
.fic-visit-facility .fic-visit-icon { background: var(--fic-teal-deep); }
.fic-visit-facility h3 { margin-bottom: var(--fic-space-xs); }
.fic-visit-faq__inner { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: var(--fic-space-xl); align-items: start; }
.fic-visit-booking__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--fic-space-xl); align-items: start; }
.fic-visit-experiences { list-style: none; margin: var(--fic-space-md) 0; padding: 0; }
.fic-visit-experiences li { padding-block: var(--fic-space-sm); border-bottom: 1px solid var(--fic-line-on-dark); }
.fic-visit-experiences li:last-child { border: 0; }
.fic-visit-experiences strong { display: block; color: var(--fic-white); font-family: var(--fic-font-heading); font-size: var(--fic-type-fact-size); font-weight: var(--fic-type-fact-weight); line-height: var(--fic-type-fact-leading); letter-spacing: var(--fic-type-tracking); }
.fic-visit-direct { display: grid; gap: var(--fic-space-sm); margin-top: var(--fic-space-md); }
.fic-visit-direct a { display: inline-flex; align-items: center; gap: var(--fic-space-xs); color: var(--fic-gold-light); overflow-wrap: anywhere; }
.fic-visit-direct svg { flex-shrink: 0; }
.fic-visit-form { min-width: 0; padding: var(--fic-space-lg); gap: var(--fic-space-sm); }
.fic-visit-form .fic-contact-form__grid { gap: var(--fic-grid-gap); }
.fic-visit-form label { min-width: 0; }
.fic-visit-form__note { color: var(--fic-text-light); text-align: center; }
.fic-visit-form__note a { color: var(--fic-teal-deep); text-underline-offset: 3px; }
@media (max-width: 1024px) {
  .fic-visit-hero__inner,
  .fic-visit-split,
  .fic-visit-faq__inner,
  .fic-visit-booking__inner { grid-template-columns: minmax(0, 1fr); gap: var(--fic-grid-gap); }
  .fic-visit-steps,
  .fic-visit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .fic-visit-hero { padding-top: calc(72px + env(safe-area-inset-top, 0px) + var(--fic-hero-pad-y)); }
  .fic-visit-steps,
  .fic-visit-grid { grid-template-columns: minmax(0, 1fr); }
  .fic-visit-form,
  .fic-visit-statement,
  .fic-visit-etiquette__card { padding: var(--fic-space-md); }
}
@media (prefers-reduced-motion: reduce) {
  .fic-visit-step { transition: none; }
  .fic-visit-step:hover { transform: none; }
}
