/* Arrival and group-photo guidance, extending the guide's navy and teal theme. */
.guide-logistics-menu { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.guide-card--logistics { text-decoration: none; }
.guide-card--logistics .guide-card__body { margin-top: 14px; }
.guide-card--logistics small { font-size: .875rem; }
.logistics-page { font-size: 1rem; line-height: 1.8; overflow-wrap: anywhere; }
.logistics-page h3 { margin: 0 0 12px; color: var(--navy); font-size: 1.3rem; line-height: 1.5; }
.logistics-page p { margin: 0 0 14px; }
.logistics-page p:last-child { margin-bottom: 0; }
.logistics-intro { margin-bottom: 20px; }
.logistics-intro h3 { margin-top: 8px; font-size: clamp(1.4rem, 4vw, 1.8rem); }
.logistics-tag { display: inline-block; padding: 4px 11px; border-radius: 6px; background: #dfedef; color: #0b6071; font-size: .9375rem; font-weight: 800; }
.reception-locations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 20px; }
.reception-location { position: relative; padding: 22px; border: 1px solid var(--line); border-top: 5px solid var(--teal); border-radius: 14px; background: #fff; }
.reception-location--guest { border-top-color: #a25028; }
.reception-location h3 { margin: 12px 0 5px; font-size: 1.25rem; }
.reception-location .reception-location__place { margin: 0 0 8px; font-size: clamp(1.15rem, 3vw, 1.6rem); font-weight: 850; color: var(--navy); }
.location-number { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; background: #087587; font-size: 1.15rem; font-weight: 850; }
.reception-location--guest .location-number { background: #a25028; }
.logistics-photo { margin: 0 0 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.logistics-photo img { display: block; width: 100%; height: auto; }
.logistics-photo figcaption { padding: 12px 16px; color: #4d626e; font-size: .875rem; line-height: 1.7; }
.logistics-photo figcaption strong { color: var(--navy); }
.reception-photo-map { position: relative; }
.reception-photo-marker { position: absolute; display: grid; place-items: center; width: clamp(52px, 12vw, 96px); height: clamp(52px, 12vw, 96px); transform: translate(-50%, -50%); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 2px 12px #0006; color: #fff; font-size: clamp(.875rem, 2.5vw, 1.25rem); font-weight: 850; }
.reception-photo-marker--guest { left: 28%; top: 56%; background: #a25028; }
.reception-photo-marker--employee { left: 56%; top: 39%; background: #087587; }
.reception-photo-caption { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.reception-photo-caption strong:first-child { color: #8b431f; }
.reception-photo-caption strong:last-child { color: #086476; }
.logistics-section { margin: 24px 0; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.logistics-steps { margin: 0 0 20px; padding: 0; list-style: none; counter-reset: reception-step; }
.logistics-steps li { position: relative; padding: 0 0 20px 47px; counter-increment: reception-step; }
.logistics-steps li::before { content: counter(reception-step); position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #e2eff1; color: #0b6071; font-weight: 850; }
.logistics-steps li:last-child { padding-bottom: 0; }
.logistics-steps strong { display: block; color: var(--navy); }
.logistics-steps p { margin: 4px 0 0; color: #4d626e; }
.logistics-button { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 50px; padding: 12px 16px; border-radius: 9px; background: var(--navy); color: #fff; font-size: 1rem; font-weight: 750; text-decoration: none; }
.logistics-button span { flex: 0 0 auto; }
.logistics-inline-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 7px 0; color: #096a7a; font-size: .9375rem; font-weight: 750; line-height: 1.6; text-underline-offset: 4px; }
.timeline .logistics-inline-link { margin-bottom: 14px; }
.logistics-departure { border-left: 5px solid #a25028; background: #fff7f0; }
.logistics-departure h3 { margin-top: 10px; }
.logistics-departure .logistics-tag { background: #f0ddcd; color: #7b3c1c; }
.departure-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-weight: 800; }
.departure-flow span:not([aria-hidden]) { padding: 8px 12px; border: 1px solid #e6cab5; border-radius: 7px; background: #fff; }
.logistics-details { margin: 16px 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.logistics-details summary { padding: 16px 18px; color: var(--navy); font-size: 1rem; font-weight: 800; cursor: pointer; }
.logistics-details[open] summary { border-bottom: 1px solid var(--line); }
.logistics-details__body { padding: 18px; }
.logistics-details__body .logistics-photo:last-child { margin-bottom: 0; }
.logistics-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 1rem; line-height: 1.65; }
.logistics-table caption { padding: 0 0 10px; color: #4d626e; text-align: left; font-size: .9375rem; }
.logistics-table th, .logistics-table td { padding: 14px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; overflow-wrap: anywhere; }
.logistics-table thead th { background: #e4eff2; color: var(--navy); font-size: .9375rem; }
.logistics-table th:first-child { width: 26%; }
.logistics-table thead th:last-child { width: 20%; }
.logistics-table td:last-child, .logistics-table thead th:last-child { text-align: right; }
.logistics-table td:last-child { color: var(--navy); font-weight: 850; white-space: nowrap; }
.logistics-table tbody th { color: var(--navy); }
.logistics-table tfoot { background: #f3f7f8; }
.logistics-table tfoot td { font-size: 1.25rem; }
.logistics-page .logistics-fineprint { margin-top: 14px; color: #4d626e; font-size: .875rem; }
.photo-move-order { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 20px 0 8px; padding: 0; list-style: none; }
.photo-move-order li { min-width: 0; padding: 14px 10px; border-top: 4px solid #138395; border-radius: 9px; background: #e9f3f5; text-align: center; }
.photo-move-order li > span { display: block; color: #44616e; font-size: .9375rem; }
.photo-move-order strong { display: block; color: var(--navy); font-size: clamp(1.1rem, 2.7vw, 1.6rem); font-weight: 850; line-height: 1.6; }
.photo-move-order small { margin-left: 4px; font-size: .875rem; }
.photo-lineup-table tbody th span { display: block; color: #526873; font-size: .875rem; font-weight: 500; }
.logistics-page .logistics-adjustment { margin: 16px 0; padding: 13px 16px; border-left: 4px solid #a25028; border-radius: 4px; background: #fff3e8; font-size: .9375rem; }
.logistics-adjustment strong { display: block; color: #79401d; }
.logistics-photo--floorplan { max-width: 560px; margin-inline: auto; }
.venue-floorplan-legend { display: grid; gap: 10px; margin: 0 0 16px; padding: 0; list-style: none; }
.venue-floorplan-legend li { display: flex; flex-wrap: wrap; gap: 0 12px; padding-left: 12px; border-left: 5px solid #c21e2b; }
.venue-floorplan-legend strong { color: #b91c1c; }
.venue-floorplan-legend li:last-child { border-color: #1d4ed8; }
.venue-floorplan-legend li:last-child strong { color: #1d4ed8; }
.photo-finish { border-top: 4px solid var(--teal); }
@media (max-width: 720px) {
  .photo-move-order { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .guide-logistics-menu { grid-template-columns: 1fr; gap: 9px; }
  .guide-card--logistics { min-height: 126px; padding: 20px 38px 20px 17px; flex-direction: row; align-items: center; gap: 14px; }
  .guide-card--logistics .guide-card__icon { flex: 0 0 39px; margin: 0; }
  .guide-card--logistics .guide-card__body { margin: 0; }
  .guide-card--logistics strong { font-size: 1.075rem; }
  .guide-card--logistics small { max-width: 100%; font-size: .875rem; }
  .reception-locations { grid-template-columns: 1fr; gap: 12px; }
  .reception-location { padding: 17px 16px 17px 66px; }
  .reception-location .location-number { position: absolute; top: 19px; left: 16px; width: 34px; height: 34px; }
  .reception-location h3 { margin-top: 0; }
  .logistics-section { padding: 19px 15px; }
  .logistics-details__body { padding: 15px 10px; }
  .logistics-table th, .logistics-table td { padding: 12px 7px; }
  .logistics-table th:first-child { width: 25%; }
  .logistics-table thead th:last-child { width: 22%; }
  .logistics-photo figcaption { padding: 12px; }
}

/* Seven-row guide menu, shared by phone and desktop. */
.guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.guide-grid > .guide-card { grid-column: auto; }
.guide-grid > .guide-card--full { grid-column: 1 / -1; }
.guide-grid > .guide-card--logistics {
  min-height: 126px;
  padding: 20px 38px 20px 20px;
  flex-direction: row;
  align-items: center;
  gap: 14px;
}
.guide-grid > .guide-card--logistics .guide-card__icon { flex-shrink: 0; margin: 0; }
.guide-grid > .guide-card--logistics .guide-card__body { margin: 0; }
.guide-grid .guide-card__body { min-width: 0; overflow-wrap: anywhere; }
.guide-grid .guide-card strong { font-size: max(1rem, 16px); }
.guide-grid .guide-card small { font-size: .875rem; }
.guide-grid .guide-card--song strong { max-width: 100%; }
@media (max-width: 480px) {
  .guide-grid > .guide-card--guests { padding-right: 98px; gap: 9px; }
  .guide-grid .guide-card--guests .guide-card__body { padding-right: 0; }
  .guide-grid .guide-card__portraits { right: 10px; }
  .guide-grid .guide-card__portraits img { width: 42px; height: 42px; }
  .guide-grid .guide-card__portraits img:last-child { width: 50px; height: 50px; }
}
