.accommodation-gallery{background:var(--color-muted);border-radius:var(--radius-image);position:relative;overflow:hidden}.accommodation-gallery[data-photo-count="1"]{--gallery-visible:1}.gallery-track{gap:var(--gallery-gap);aspect-ratio:var(--gallery-mosaic-ratio);grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.gallery-slide:first-child{grid-area:span 2/span 2}.gallery-slide:nth-child(n+6),.accommodation-gallery>.gallery-arrow{display:none}.accommodation-gallery[data-photo-count="1"] .gallery-track{grid-template-rows:1fr;grid-template-columns:1fr}.accommodation-gallery[data-photo-count="1"] .gallery-slide:first-child{grid-area:auto}.accommodation-gallery[data-photo-count="2"] .gallery-track{grid-template-rows:1fr;grid-template-columns:repeat(2,minmax(0,1fr))}.accommodation-gallery[data-photo-count="2"] .gallery-slide:first-child{grid-area:auto}.accommodation-gallery[data-photo-count="3"] .gallery-slide:not(:first-child),.accommodation-gallery[data-photo-count="4"] .gallery-slide:last-child{grid-column:span 2}.gallery-track::-webkit-scrollbar{display:none}.gallery-slide{background:var(--color-muted);cursor:zoom-in;border:0;min-width:0;height:100%;min-height:0;padding:0}.gallery-slide img{object-fit:cover;width:100%;height:100%;transition:filter var(--duration)}.gallery-slide:hover img{filter:brightness(var(--hover-image-brightness))}.gallery-slide:focus-visible{outline-color:var(--stay-gallery-outline);outline-offset:var(--stay-focus-inset)}.gallery-arrow{width:var(--icon-target);height:var(--icon-target);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-heading);box-shadow:var(--shadow-soft);padding:var(--space-sm);transition:color var(--duration),background var(--duration);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gallery-arrow:hover{color:var(--color-brand);background:var(--color-muted)}.gallery-arrow--prev{left:var(--space-lg)}.gallery-arrow--next{right:var(--space-lg)}.gallery-count{bottom:var(--space-lg);right:var(--space-lg);align-items:center;gap:var(--space-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-button);min-height:var(--icon-target);padding:var(--space-sm) var(--space-lg);background:var(--color-surface);color:var(--color-heading);font-size:var(--font-small);box-shadow:var(--shadow-soft);transition:background var(--duration),color var(--duration);display:flex;position:absolute}.gallery-count:hover{color:var(--color-brand);background:var(--color-muted)}.photo-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;padding:var(--page-gutter);background:var(--color-gallery-dialog);color:var(--color-surface);border:0;margin:0}.photo-dialog::backdrop{background:var(--color-gallery-dialog)}.photo-dialog :focus-visible{outline-color:var(--stay-gallery-outline)}.photo-dialog-toolbar{height:var(--icon-target);font-size:var(--font-small);justify-content:space-between;align-items:center;display:flex}.photo-dialog-stage{height:calc(100% - var(--icon-target) - var(--space-lg));margin-top:var(--space-lg);justify-content:center;align-items:center;display:flex;position:relative}.photo-dialog-stage>img{object-fit:contain;width:100%;height:100%}.photo-dialog-stage .gallery-arrow{background:var(--color-surface);color:var(--color-heading)}.accommodation-overview{padding-block:var(--space-2xl)}.breadcrumbs{align-items:center;gap:var(--space-sm);font-size:var(--font-caption);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs span{color:var(--color-caption)}.accommodation-heading .page-title{max-width:var(--stay-title-width);text-wrap:balance}.stay-overview-meta{align-items:center;gap:var(--space-md) var(--space-xl);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.stay-rating{color:var(--color-brand);gap:var(--stay-rating-gap);flex-shrink:0;display:flex}.stay-location{align-items:center;gap:var(--space-sm);font-size:var(--font-small);display:flex}.accommodation-content{padding-top:var(--space-xl)}.stay-facts{gap:var(--space-lg) var(--space-2xl);padding:var(--stay-facts-padding);border-radius:var(--radius-field);background:var(--color-muted);flex-wrap:wrap;grid-area:1/1;margin:0;list-style:none;display:flex}.stay-facts li{align-items:center;gap:var(--space-md);font-size:var(--font-small);color:var(--color-heading);min-width:0;display:flex}.stay-facts svg{color:var(--color-brand)}.stay-facts span{overflow-wrap:anywhere}.accommodation-layout{grid-template-columns:minmax(0,1fr) var(--stay-sidebar-width);gap:var(--space-2xl) var(--stay-content-gap);align-items:start;display:grid}.accommodation-description{min-width:0;max-width:var(--stay-main-width);grid-area:2/1}.stay-description .section-title{margin-bottom:var(--space-xl)}.stay-prose{line-height:var(--stay-prose-line);overflow-wrap:anywhere}.stay-prose p+p{margin-top:var(--space-xl)}.stay-prose p:first-child{margin-top:0}.stay-prose ul,.stay-prose ol{padding-left:var(--space-xl)}.stay-facilities{margin-top:var(--stay-section-gap);padding-top:var(--stay-section-gap);border-top:var(--border-width) solid var(--color-border)}.stay-facilities .section-title{margin-bottom:var(--space-xl)}.stay-facilities ul{grid-template-columns:repeat(var(--stay-facility-columns),minmax(0,1fr));gap:var(--space-lg) var(--space-xl);margin:0;padding:0;list-style:none;display:grid}.stay-facilities li{align-items:center;gap:var(--space-sm);font-size:var(--font-small);display:flex}.stay-facilities svg{color:var(--color-brand)}.booking-panel{top:var(--space-xl);padding:var(--space-2xl);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-image);background:var(--color-warm);grid-area:1/2/span 2;position:sticky}.booking-title{font-size:var(--font-card);font-weight:var(--weight-card);line-height:var(--line-card);color:var(--color-heading);margin-bottom:var(--space-xl)}.booking-price{margin-bottom:var(--space-xl);color:var(--color-heading)}.booking-from{font-size:var(--font-caption);color:var(--color-text);margin-bottom:var(--space-xs);display:block}.booking-price-line{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.booking-price-line>span{font-size:var(--font-small);color:var(--color-text)}.booking-price strong{font-size:var(--stay-price-size);line-height:var(--stay-price-line);font-weight:var(--weight-emphasis);letter-spacing:var(--tracking-heading)}.booking-price .booking-on-request{font-size:var(--font-section)}.booking-panel .button{gap:var(--space-sm);text-align:center;width:100%}.booking-note{margin-top:var(--space-lg);font-size:var(--font-caption);line-height:var(--line-body);color:var(--color-text)}.stay-map-section{padding-block:var(--section-padding);margin-top:var(--section-padding);background:var(--color-muted)}.stay-map-section .section-title{margin-bottom:var(--space-xl)}.stay-map{width:100%;height:var(--map-height);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-image);background:var(--color-surface);display:block}.related-section .section-title{margin-bottom:var(--space-2xl)}.related-grid{grid-template-columns:repeat(var(--related-columns),minmax(0,1fr));gap:var(--space-2xl) var(--grid-gap);display:grid}.related-grid>div{min-width:0;display:flex}.related-grid .content-card{flex:1}@media (width<=1024px){.accommodation-layout{gap:var(--stay-section-gap);grid-template-columns:1fr}.accommodation-description{max-width:var(--stay-main-width);grid-area:3/1}.booking-panel{align-items:center;gap:var(--space-lg) var(--space-xl);padding:var(--space-xl);grid-area:2/1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid;position:static}.booking-title{grid-column:1/-1;margin:0}.booking-price{margin:0}.booking-note{grid-column:1/-1;margin:0}}@media (width<=767px){.gallery-track{aspect-ratio:auto;scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.gallery-slide,.gallery-slide:nth-child(n+6){height:var(--gallery-height);scroll-snap-align:start;flex:0 0 100%;display:block}.accommodation-gallery>.gallery-arrow{display:flex}.accommodation-overview{padding-block:var(--space-xl)}.breadcrumbs span{display:none}.stay-overview-meta{gap:var(--space-md) var(--space-lg)}.stay-gallery-wrap{width:100%}.accommodation-gallery{border-radius:0}.accommodation-content{padding-top:var(--space-lg)}.accommodation-layout{row-gap:var(--space-xl)}.stay-facts{gap:var(--space-md) var(--space-xl)}.booking-panel{display:block}.booking-title{margin-bottom:var(--space-lg)}.booking-price{margin-bottom:var(--space-xl)}.booking-note{margin-top:var(--space-lg)}.gallery-arrow--prev{left:var(--space-sm)}.gallery-arrow--next{right:var(--space-sm)}.gallery-count{bottom:var(--space-md);right:var(--space-md);font-size:var(--font-caption)}.photo-dialog-stage .gallery-arrow{top:auto;bottom:var(--space-sm);transform:none}.photo-dialog-stage>img{padding-bottom:var(--space-5xl)}}
