.house-detail{max-width:var(--content-narrow);margin:0 auto}.house-detail h2{font-family:var(--font-heading);font-size:var(--text-xl);margin:var(--space-5) 0 var(--space-3)}.house-cover,.house-hero-grid{border-radius:var(--radius-lg);background:var(--color-surface-muted);width:100%;margin-bottom:var(--space-4);overflow:hidden}.house-cover{aspect-ratio:21/9}.house-cover img{object-fit:cover;width:100%;height:100%;display:block}.house-hero-placeholder{object-fit:cover;background:var(--color-surface-muted);width:100%;height:100%;display:block}.house-hero-grid{gap:var(--space-1);aspect-ratio:21/9;background:var(--color-border);grid-template-rows:repeat(3,1fr);grid-template-columns:2fr 1fr;display:grid}.house-hero-grid[data-count="3"]{grid-template-rows:repeat(2,1fr)}.house-hero-slot{background:var(--color-surface-muted);overflow:hidden}.house-hero-slot img{object-fit:cover;width:100%;height:100%;display:block}.house-hero-slot-1{grid-area:1/1/-1}.house-hero-slot-2{grid-area:1/2}.house-hero-slot-3{grid-area:2/2}.house-hero-slot-4{grid-area:3/2}.empty-house-hero{aspect-ratio:21/9;border-radius:var(--radius-lg);width:100%;margin-bottom:var(--space-4);background:var(--color-surface-muted);position:relative;overflow:hidden}.empty-house-hero-bg{filter:grayscale()sepia(.6)hue-rotate(345deg)saturate(.8)brightness(.85);opacity:.7;background-position:50%;background-size:cover;position:absolute;inset:0}.empty-house-hero-overlay{z-index:1;height:100%;padding:var(--space-4);text-align:center;color:var(--color-surface);text-shadow:0 1px 4px #0006;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.empty-house-hero-plate{aspect-ratio:4/3;object-fit:cover;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(60%,546px);box-shadow:var(--shadow-lg);margin:0 0 var(--space-3);display:block}.empty-house-hero-caption{font-size:var(--text-sm);opacity:.92;max-width:36ch;margin:0}.house-detail-header h1{font-family:var(--font-heading);font-size:var(--text-3xl);margin:var(--space-2) 0 var(--space-3);text-wrap:balance}.house-detail-header .eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-ink-muted);margin:0}.house-detail-header-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tag{padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--color-accent-soft);color:var(--color-accent-hover);border-radius:var(--radius-pill);align-items:center;display:inline-flex}.key-facts{gap:var(--space-3);margin:var(--space-4) 0;padding:var(--space-3) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.key-facts-row{gap:var(--space-1);flex-direction:column;display:flex}.key-facts-row dt{font-size:var(--text-xs);color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.06em}.key-facts-row dd{font-size:var(--text-sm);margin:0}.house-detail-narrative{background:var(--color-surface);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);--inline-picture-max-height:12rem}.house-detail-narrative p{font-size:var(--text-md);line-height:var(--leading-relaxed);text-wrap:pretty;margin:0}.house-detail-map-frame{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-muted);width:100%;height:320px;overflow:hidden}.house-detail-map-frame .leaflet-container{width:100%;height:100%}.gallery-strip{gap:var(--space-2);padding-bottom:var(--space-2);scroll-snap-type:x mandatory;scrollbar-width:thin;display:flex;overflow-x:auto}.gallery-strip .gallery-thumb{aspect-ratio:4/3;scroll-snap-align:start;flex:none;width:240px}.house-facilities-summary{cursor:pointer;list-style:none}.house-facilities-summary::-webkit-details-marker{display:none}.house-facilities-summary h2{align-items:baseline;gap:var(--space-2);display:flex}.house-facilities-summary h2:before{content:"▸";color:var(--color-ink-muted);font-size:var(--text-md)}.house-facilities-disclosure[open] .house-facilities-summary h2:before{content:"▾"}.house-facilities-count{font-size:var(--text-sm);color:var(--color-ink-muted);font-weight:400}.house-facilities-grid{gap:var(--space-3) var(--space-4);padding:0 0 var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.house-facilities-group h3{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-muted);margin:0 0 var(--space-1);font-weight:600}.house-facilities-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.house-facilities-list li{font-size:var(--text-sm);color:var(--color-ink);line-height:1.5}.house-access-list{gap:var(--space-1) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0;padding:0;list-style:none;display:grid}.house-access-list li{align-items:center;gap:var(--space-2);font-size:var(--text-sm);line-height:1.6;display:flex}.house-access-mark{font-size:var(--text-xs);text-align:center;flex:none;width:1.1em}.house-access-list .is-available{color:var(--color-ink)}.house-access-list .is-available .house-access-mark{color:var(--color-success)}.house-access-list .is-unavailable,.house-access-list .is-unavailable .house-access-mark{color:var(--color-ink-muted)}.gallery-thumb{aspect-ratio:1;border-radius:var(--radius-md);background:var(--color-surface-muted);cursor:pointer;border:0;width:100%;padding:0;display:block;overflow:hidden}.gallery-thumb img{object-fit:cover;width:100%;height:100%;transition:transform var(--motion-base) var(--easing-out);display:block}.gallery-thumb:hover img{transform:scale(1.05)}.gallery-thumb-missing{border:1px dashed var(--color-danger);width:100%;height:100%;color:var(--color-danger);background:0 0;justify-content:center;align-items:center;font-size:.75rem;font-style:italic;display:flex}.house-detail-events-cards{gap:var(--space-3);display:grid}.house-detail-event-card{border-radius:var(--radius-md);scroll-margin-top:var(--space-6)}.house-detail-events-calendar{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);scroll-margin-top:var(--space-4)}.house-detail-event-card:target{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 30%, transparent)}.house-bookables-list{margin:var(--space-3) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.house-bookable-row{align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;display:flex}.house-bookable-info{flex:240px;min-width:0}.house-bookable-title{margin:0}.house-bookable-meta{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--color-ink-muted)}.house-bookable-thumbs{gap:var(--space-1);flex:none;text-decoration:none;display:flex}.house-bookable-thumbs:hover{text-decoration:none}.house-bookable-thumb{width:var(--space-5);height:var(--space-5);object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border);transition:border-color var(--motion-fast) var(--easing-out);display:block}.house-bookable-thumbs:hover .house-bookable-thumb{border-color:var(--color-border-strong)}.house-bookable-tags{gap:var(--space-1);margin:var(--space-2) 0 0;flex-wrap:wrap;display:flex}.house-bookable-tag-chip{font-size:var(--text-xs);color:var(--color-ink-muted);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:2px var(--space-2)}.house-detail-events,.house-detail-book{margin-top:var(--space-5)}.house-detail-contact{margin-top:var(--space-5);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.house-detail-book-copy{color:var(--color-ink-muted);margin:0 0 var(--space-3)}.house-detail-contact p{margin:var(--space-1) 0}.house-detail-message-cta{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.favourite-toggle.is-favourited{color:var(--color-accent);border-color:var(--color-accent)}.favourite-toggle.is-favourited span{color:var(--color-danger)}.favourite-hint{font-size:var(--text-sm);color:var(--color-ink-muted);flex-basis:100%;order:1;margin:0}.house-detail-skeleton{max-width:var(--content-narrow);gap:var(--space-3);margin:0 auto;display:grid}.skeleton-block{background:linear-gradient(90deg, var(--color-surface-muted) 0%, var(--color-border) 50%, var(--color-surface-muted) 100%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.6s ease-in-out infinite skeleton-pulse}.skeleton-hero{aspect-ratio:21/9}.skeleton-line{height:16px}.skeleton-line-lg{width:60%;height:32px}.skeleton-line-short{width:40%}@keyframes skeleton-pulse{0%,to{background-position:0 0}50%{background-position:100% 0}}.empty-state{text-align:center;padding:var(--space-6) var(--space-4)}
