.tours-heading { display: grid; grid-template-columns: 1fr .65fr; align-items: end; gap: 3rem; }
.tour-hero-section { color: var(--white); background: var(--navy); }
.tour-hero-grid { min-height: 25rem; display: grid; grid-template-columns: 1fr .8fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); padding-block: 3.5rem; }
.tour-hero-copy .eyebrow { color: var(--yellow); }
.tour-hero-copy h1 { max-width: 12ch; margin-bottom: 1rem; color: var(--white); font-family: var(--sans); font-size: clamp(3rem, 6vw, 5.4rem); font-weight: 850; letter-spacing: -.05em; text-transform: uppercase; }
.tour-hero-copy .lead { max-width: 40rem; margin-bottom: 1.5rem; color: #d4e0e7; }
.tour-hero-image { --photo-fallback: var(--teal); min-height: 19rem; border: .55rem solid var(--white); background-color: var(--teal); transform: rotate(1deg); }
.tour-hero-foot { display: flex; justify-content: space-between; gap: 1rem; padding-block: 1rem; border-top: 1px solid rgb(255 255 255 / 19%); color: #d4e0e7; font-size: .73rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.tour-intro { padding-top: 2rem; }
.tours-heading h1 { margin-bottom: 0; }
.tour-list { display: grid; gap: 1rem; }
.tour-row[hidden] { display: none !important; }
.tour-row { display: grid; grid-template-columns: 5rem 1fr minmax(12rem, .7fr) auto; align-items: center; gap: 1.5rem; padding: 1.25rem; border: 1px solid var(--line); background: var(--white); }
.tour-row .photo-frame { width: 5rem; min-height: 5rem; }
.tour-row h2 { margin: 0 0 .35rem; font-size: 1.55rem; }
.tour-row p { margin: 0; font-size: .87rem; }
.tour-kind { color: var(--muted); font-size: .78rem; }
.tour-disclaimer { padding: 1rem 1.2rem; border-left: 4px solid var(--yellow); background: #f0eee6; }
.tour-disclaimer p { margin: 0; font-size: .9rem; }
@media (max-width: 820px) {
  .tour-hero-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .tours-heading { grid-template-columns: 1fr; gap: 1rem; }
  .tour-row { grid-template-columns: 4rem 1fr auto; gap: 1rem; }
  .tour-row .photo-frame { width: 4rem; min-height: 4rem; }
  .tour-kind { grid-column: 2 / -1; }
}
@media (max-width: 540px) {
  .tour-hero-grid { grid-template-columns: 1fr; padding-block: 2.5rem; }
  .tour-hero-image { min-height: 14rem; }
  .tour-hero-foot { flex-direction: column; }
  .tour-row { grid-template-columns: 3.5rem 1fr; }
  .tour-row .photo-frame { width: 3.5rem; min-height: 3.5rem; }
  .tour-row .text-link { grid-column: 2; }
  .tour-kind { grid-column: 2; }
}
body[data-page="tours"] .tour-hero-image { transition: transform .3s ease; }
body[data-page="tours"] .tour-hero-image:hover { transform: rotate(0deg) translateY(-3px); }
body[data-page="tours"] .tour-row { border-left: 3px solid transparent; transition: transform .2s ease, border-color .2s ease, background-color .2s ease; }
body[data-page="tours"] .tour-row:hover,
body[data-page="tours"] .tour-row:focus-within { transform: translateX(4px); border-left-color: var(--yellow); background: #fffefa; }
body[data-page="tours"] .tour-row h2 { width: fit-content; }
body[data-page="tours"] .tour-row h2::after { display: block; width: 0; height: 1px; margin-top: .12rem; background: var(--teal); content: ""; transition: width .22s ease; }
body[data-page="tours"] .tour-row:hover h2::after,
body[data-page="tours"] .tour-row:focus-within h2::after { width: 100%; }
body[data-page="tours"] .tour-row .text-link:active { transform: translateY(1px) scale(.98); }
body[data-page="tours"] .filter-button { transition: transform .15s ease, color .18s ease, background-color .18s ease, border-color .18s ease; }
body[data-page="tours"] .filter-button:active { transform: scale(.96); }
body[data-page="tours"] .filter-status { transition: color .2s ease; }
body[data-page="tours"] .filter-row:focus-within + .filter-status { color: var(--green-dark); }
@media (prefers-reduced-motion: reduce) { body[data-page="tours"] .tour-row:hover, body[data-page="tours"] .tour-row:focus-within { transform: none; } }

/* Native image ratios keep subjects readable at every screen width. */
.tour-hero-image { width: 100%; min-width: 0; min-height: 0; aspect-ratio: 4 / 3; }
.tour-row .photo-frame { min-height: 0; aspect-ratio: 1; }
