/* Lodging-only refinement; root asset participates in content-hash versioning. */
.hotel-page { background: #fff; }
.hotel-page .site-header.is-scrolled,
.hotel-page .subnav { background: #fff; }
.hotel-page .section { padding-block: clamp(2rem, 4vw, 3.5rem); }
.hotel-page .soft-section { background: #fff; border: 0; }
.hotel-page .section-head { margin-bottom: 1.5rem; }
.hotel-page .listing-card { border: 0; background: #fff; box-shadow: none; }
.hotel-page .listing-copy { padding: 1rem 0; }
.hotel-page .listing-action { border: 0; padding-top: .75rem; }
.hotel-page .listing-action > span { display: none; }
.hotel-page .listing-tags { gap: .5rem 1rem; }
.hotel-page .listing-tags > span { padding: 0; border: 0; background: transparent; }
.hotel-page .listing-detail-link { min-height: 2.75rem; text-decoration: underline; text-underline-offset: .2em; }

.stays-page .page-hero { min-height: 0; padding-block: 9rem 2rem; }
.stays-page .page-hero h1 { max-width: 46rem; font-size: clamp(2rem, 4vw, 3.25rem); }
.stays-page .page-hero-aside { display: none; }
.stays-page .page-hero-grid { grid-template-columns: 1fr; }
.stays-page .page-hero-copy > p:last-child { max-width: 43rem; }
.stays-page #alle { padding-top: 1.25rem; }
.stays-page .stays-toolbar { gap: .25rem; padding: 0; margin: 0 0 1.25rem; border: 0; background: #fff; }
.stays-page .stays-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.stays-page .stays-search-field { grid-column: 1 / -1; }
.stays-page .stays-sort-label { min-width: 0; gap: .4rem; font-size: .75rem; }
.stays-page .stays-sort-label input,
.stays-page .stays-sort-label select {
  width: 100%; height: 3rem; min-width: 0; padding: .6rem .75rem;
  border: 1px solid var(--line); border-radius: .375rem;
  background: #fff; color: var(--ink); font: inherit; font-weight: 500; font-size: 1rem;
}
.stays-page .stays-sort-label input:focus-visible { outline: 2px solid var(--moss); outline-offset: 2px; }
.stays-filter-help { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 1rem; font-size: .75rem; color: var(--ink-soft); }
.stays-filter-help button { min-height: 2.75rem; padding: .5rem 0; border: 0; background: #fff; color: var(--ink); font: inherit; font-weight: 650; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.stays-filter-help button:focus-visible { outline: 2px solid var(--moss); outline-offset: 2px; }
.stays-filter-help button:disabled { opacity: .5; cursor: default; }
.stays-page .stays-status { font-size: .8125rem; margin-bottom: 1rem; }
.stays-page .stays-grid { gap: 2.5rem 1.5rem; align-items: start; }
.stays-page .stay-card { border: 0; background: #fff; overflow: visible; }
.stays-page .stay-gallery,
.stays-page .stay-static-image { overflow: hidden; border-radius: .5rem; }
.stays-page .stay-gallery-slide { min-width: 0; aspect-ratio: 3 / 2; }
.stays-page .stay-copy { gap: .75rem; padding: 1rem 0 0; }
.stays-page .stay-copy h2 { font-family: var(--sans); font-size: clamp(1.4rem, 2vw, 1.75rem); line-height: 1.2; font-weight: 700; letter-spacing: -.025em; }
.stays-page .stay-copy h2 a:hover { text-decoration: underline; text-underline-offset: .15em; }
.stays-page .listing-meta { font-size: .75rem; }
.stays-page .stay-summary { font-size: .9375rem; line-height: 1.65; }
.stays-page .stay-facilities { gap: .35rem .75rem; }
.stays-page .stay-facilities li { font-size: .8125rem; line-height: 1.5; }
.stays-page .stay-actions { padding-top: .25rem; border: 0; gap: .5rem; }
.stays-page .stay-expand-button { padding-inline: 0; border: 0; text-align: left; text-decoration: underline; text-underline-offset: .2em; font-weight: 600; }
.stays-page .stay-detail-link { justify-content: flex-start; font-weight: 600; }
.stays-page .stay-affiliate-action .button { border-radius: .375rem; min-height: 3rem; font-size: .8125rem; }
.stays-page .stay-details { border: 0; border-radius: .375rem; background: #f4f6f6; padding: 1rem; }
.stays-page .stay-map-link { display: inline-flex; align-items: center; min-height: 2.75rem; text-decoration: underline; text-underline-offset: .2em; font-size: .875rem; }
.stays-page .stay-practical-facts { display: grid; gap: .5rem; margin: 0; font-size: .875rem; }
.stays-page .stay-practical-facts > div { display: flex; justify-content: space-between; gap: 1rem; }
.stays-page .stay-practical-facts dd { margin: 0; text-align: right; }
.stays-page .stay-status-note { border: 0; border-radius: .375rem; background: #f1f4f4; font-size: .8125rem; }
.stays-page .stay-static-review { font-size: .75rem; color: var(--ink-soft); }
.stays-page .stay-static-review summary { min-height: 2.75rem; align-content: center; cursor: pointer; }
.stays-page .stays-empty { grid-column: 1 / -1; padding: 2rem 0; }
.stays-page .stays-empty h2 { font-size: 1.5rem; }
.stays-page .stays-empty p { margin-block: .75rem 1rem; }
.stays-page .lodging-camping-entry { margin-block: 1rem 2rem; border: 0; border-radius: .5rem; background: #f4f6f6; }
.stays-page .lodging-camping-entry h2 { font-size: 1.4rem; }
.stays-page .lodging-camping-entry p { font-size: .875rem; }

.lodging-detail-page .lodging-detail-hero { border: 0; }
.lodging-detail-page .lodging-gallery { gap: .5rem; border-radius: .5rem; background: #fff; }
.lodging-detail-page .lodging-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); border: 0; gap: 1rem; margin: 0 0 2rem; }
.lodging-detail-page .lodging-fact-grid > div { padding: 0; border: 0; }
.lodging-detail-page .lodging-fact-grid dt { font-size: .75rem; text-transform: none; letter-spacing: 0; }
.lodging-detail-page .lodging-fact-grid dd strong { font-size: 1rem; }
.lodging-detail-page .lodging-prose { margin-top: 2rem; }
.lodging-detail-page .lodging-prose h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); line-height: 1.2; }
.lodging-detail-page .lodging-prose h3 { margin: 1.5rem 0 .5rem; font-size: 1.125rem; }
.lodging-detail-page .lodging-prose p:not(.eyebrow) { margin-top: .5rem; font-size: 1rem; }
.lodging-detail-page .lodging-prose > .text-link { margin-top: 1rem; font-size: .875rem; }
.lodging-detail-page .lodging-booking-panel { padding: 1.5rem; border: 0; border-radius: .5rem; background: #f4f6f6; }
.lodging-detail-page .lodging-booking-panel h2 { font-size: 1.5rem; line-height: 1.3; }
.lodging-detail-page .lodging-booking-panel > p:not(.eyebrow) { font-size: .875rem; }
.lodging-detail-page .lodging-facility-grid { border: 0; gap: .35rem 1.5rem; }
.lodging-detail-page .lodging-facility-grid li { border: 0; min-height: 2.5rem; font-size: .875rem; }
.lodging-detail-page .lodging-room-card { border: 0; border-radius: .5rem; background: #f4f6f6; }
.lodging-detail-page .lodging-room-top { grid-template-columns: 1fr; gap: .5rem; }
.lodging-detail-page .lodging-room-top span { justify-self: start; padding: 0; font-size: .8125rem; }
.lodging-detail-page .lodging-room-card > p { font-size: .8125rem; }
.lodging-detail-page .lodging-practical-grid { border: 0; gap: 1rem; }
.lodging-detail-page .lodging-practical-grid > div { border: 0; padding: 1rem; border-radius: .375rem; background: #f4f6f6; }
.lodging-detail-page .lodging-practical-grid dt { text-transform: none; letter-spacing: 0; font-size: .75rem; }
.lodging-detail-page .lodging-source-section { border: 0; background: #fff; }
.lodging-detail-page .lodging-source-card h2 { font-size: 1.5rem; }
.lodging-detail-page .lodging-plan-around .guide-card { border: 0; background: #fff; padding: .75rem 0; }

@media (min-width: 48rem) {
  .stays-page .stays-controls { grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); }
  .stays-page .stays-search-field { grid-column: auto; }
  .stays-page .stay-actions { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (min-width: 72rem) {
  .stays-page .stays-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stays-page .stay-actions { grid-template-columns: 1fr; }
  .stays-page .stay-detail-actions { grid-template-columns: 1fr 1fr; align-items: center; }
  .stays-page .stay-detail-link { justify-content: flex-end; }
}
@media (max-width: 37.99rem) {
  .stays-page .stays-sort-label:last-child { grid-column: 1 / -1; }
  .stays-page .stay-actions { grid-template-columns: 1fr; }
  .stays-page .stay-detail-actions { grid-template-columns: 1fr 1fr; align-items: center; }
  .stays-page .stay-detail-link { justify-content: flex-end; }
  .lodging-detail-page .lodging-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lodging-detail-page .lodging-gallery-main { grid-column: 1 / -1; }
  .lodging-detail-page .lodging-gallery-tile img { aspect-ratio: 1; }
  .lodging-detail-page .lodging-gallery-main img { aspect-ratio: 3 / 2; }
  .lodging-detail-page .lodging-practical-grid { gap: .5rem; }
}
