/* Compact practical pages: all information remains visible without JavaScript. */
.practical-page .guest-main { max-width: 1000px; }
.practical-heading { padding-block: 1.25rem .5rem; }
.practical-page .practical-heading h1 { font-size: clamp(2.5rem, 5vw, 3.8rem); margin-bottom: .45em; }
.practical-heading > p, .practical-heading > div > p { max-width: 65ch; }
.practical-heading-photo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 350px); gap: 2rem; align-items: center; }
.practical-heading-photo img { display: block; width: 100%; height: 170px; object-fit: cover; }
.practical-page .guest-section { margin-block: 2rem; }
.practical-page h2 { font-size: clamp(1.65rem, 3vw, 2.2rem); }
.practical-page h3 { font-size: 1.35rem; }
.stay-summary { border-block: 1px solid #bec8b8; padding-block: 1.25rem; }
.stay-summary p:last-child { margin-bottom: 0; }
.airport-list { margin: 1rem 0 0; }
.airport-list > div { display: grid; grid-template-columns: 10rem minmax(0, 1fr); align-items: center; gap: 1rem; border-top: 1px solid #bec8b8; padding-block: .4rem; }
.airport-list dt { font-weight: 700; }
.airport-list dt span { margin-left: .35rem; font-weight: 400; color: #43768a; }
.airport-list dd { margin: 0; }
.airport-list a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .4rem; }
.practical-options { gap: 1rem 2.5rem; }
.practical-options article { border-top: 1px solid #bec8b8; padding-top: 1rem; min-width: 0; }
.practical-options .guest-link-list { margin-top: 0; }
.guide-note { border-left: 3px solid #43768a; padding: .35rem 0 .35rem 1rem; margin-block: 1.5rem; max-width: 76ch; }
.guide-note p:last-child { margin-bottom: 0; }
.access-note { margin-top: 1.25rem; }
.weekend-days { list-style: none; margin: 1rem 0; padding: 0; }
.weekend-days li { display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 1.5rem; border-top: 1px solid #bec8b8; padding-block: 1.25rem; }
.weekend-days time { font-weight: 700; }
.practical-page .weekend-days h2 { font-size: 1.65rem; margin-bottom: .25rem; }
.weekend-days p { margin-bottom: 0; }
.wedding-setting { border-top: 1px solid #bec8b8; padding-top: 1.5rem; }
.wedding-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.wedding-photos figure { margin: 0; min-width: 0; }
.wedding-photos img { display: block; width: 100%; height: auto; }
.wedding-photos figcaption { padding-top: .5rem; }
.venue-photo-credit { margin-top: .5rem; font-size: .9rem; }
.venue-photo-credit a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: .25rem; }
@media (max-width: 640px) {
  .practical-heading-photo { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .practical-heading-photo img { height: 140px; }
  .airport-list > div { grid-template-columns: 6.2rem minmax(0, 1fr); gap: .75rem; }
  .airport-list dt span { display: block; margin-left: 0; }
  .weekend-days li { grid-template-columns: minmax(0, 1fr); gap: .25rem; padding-block: 1rem; }
  .wedding-photos { grid-template-columns: minmax(0, 1fr); }
}
@media print {
  .practical-page .practical-heading { padding: 0; }
  .practical-heading-photo { display: block; }
  .practical-heading-photo img { display: none; }
  .wedding-setting { display: none; }
  .practical-page .practical-heading h1 { font-size: 26pt; }
  .practical-page h2, .practical-page .weekend-days h2 { font-size: 16pt; }
  .practical-page .guest-section { margin-block: 1rem; }
  .guide-note { margin-block: 1rem; }
  .weekend-days li { break-inside: avoid; padding-block: .5rem; }
  .practical-page .guest-footer > a { display: none; }
}
