/* Mobile/tablet refinement. Loaded last; no horizontal-overflow masking. */
.detail-calendar-first { grid-template-areas:"photos booking" "description booking"; grid-template-rows:min-content 1fr; row-gap:0; }
.detail-calendar-first>.detail-media { grid-area:photos; }
.detail-calendar-first>.booking-card { grid-area:booking; }
.detail-calendar-first>.detail-description { grid-area:description; }
@media(max-width:960px) {
 .detail-calendar-first { grid-template-areas:"photos" "booking" "description"; grid-template-rows:auto auto auto; row-gap:24px; }
 .detail-calendar-first>.booking-card { grid-row:2; }
}
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { overflow-wrap:break-word; }
.hero-grid>*, .about-grid>*, .faq-grid>*, .steps>*, .local-columns>*, .detail-grid>*, .date-fields>* { min-width:0; }
.language-switch a { min-width:44px; min-height:44px; }
.calendar-toolbar button, .gallery-arrow { min-width:44px; min-height:44px; }
.rules-toc a { min-height:44px; display:inline-flex; align-items:center; }
.rules-consent { min-height:44px; cursor:pointer; padding:8px 0; }
.inquiry-form .rules-consent input { flex-basis:24px; width:24px; height:24px; min-height:24px; }
.inquiry-form input:not([type="checkbox"]), .inquiry-form select, .inquiry-form textarea { font-size:16px; max-width:100%; min-height:48px; }
.inquiry-form input[type="date"] { width:100%; min-width:0; -webkit-appearance:none; appearance:none; }
.inquiry-form input::-webkit-date-and-time-value { text-align:left; min-height:1.25em; }
.inquiry-form input::-webkit-datetime-edit { padding:0; }
.message-preview .button { width:100%; white-space:normal; }
.calendar-help, .document-reminder, .quiet-note { overflow-wrap:anywhere; }
.gallery-caption, .gallery-dialog-bottom { flex-wrap:wrap; }
.gallery-close { flex-shrink:0; min-width:44px; }
.gallery-dialog-top>span, .gallery-dialog-bottom>span { min-width:0; overflow-wrap:anywhere; }
.gallery-dialog { height:95vh; max-height:95vh; height:95dvh; max-height:95dvh; }
.gallery-dialog-top { padding-top:max(14px,env(safe-area-inset-top,0px)); padding-left:max(14px,env(safe-area-inset-left,0px)); padding-right:max(14px,env(safe-area-inset-right,0px)); }
.gallery-dialog-bottom { padding-bottom:max(14px,env(safe-area-inset-bottom,0px)); padding-left:max(14px,env(safe-area-inset-left,0px)); padding-right:max(14px,env(safe-area-inset-right,0px)); }
.gallery-dialog-stage { overflow:hidden; }
.gallery-dialog .gallery-prev { left:max(12px,env(safe-area-inset-left,0px)); }
.gallery-dialog .gallery-next { right:max(12px,env(safe-area-inset-right,0px)); }
.gallery-arrow, .calendar-toolbar button, .menu-toggle { touch-action:manipulation; }
.mobile-booking-link { display:none; }
#booking { scroll-margin-top:20px; }
.date-fallback-hint { font-size:12px; margin-top:8px; color:var(--muted); }
@media(max-width:1100px) { .language-switch { margin-left:auto; }.location-label { display:none; } }
@media(max-width:960px) {
 .detail-grid { grid-template-columns:minmax(0,1fr); }
 .booking-card { max-width:none; position:static; grid-row:2; }
 .detail-heading { display:block; }
 .detail-location { max-width:none; margin-top:18px; }
 .mobile-booking-link { display:inline-flex; margin:0 0 24px; }
 .gallery-stage { height:clamp(340px,75vw,610px); }
}
@media(max-width:900px) {
 .desktop-nav, .header-button { display:none; }
 .menu-toggle { display:block; flex-shrink:0; }
 .header-inner { gap:12px; min-height:82px; }
 .mobile-nav { max-height:70vh; max-height:70dvh; overflow:auto; padding:0 24px 18px; }
 .mobile-nav a { min-height:48px; display:flex; align-items:center; }
 .footer-top { flex-wrap:wrap; }
 .three-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .detail-heading h1 { overflow-wrap:break-word; }
 .gallery-expand { font-size:12px; }
 .calendar-help, .inquiry-form .document-reminder, .inquiry-form>.quiet-note { font-size:12px; line-height:1.65; }
 .calendar-legend, html[lang="en"] .calendar-legend { font-size:11px; }
 .rules-consent, .stay-summary p { font-size:13px; }
 .gallery-dialog { width:100%; max-width:100%; height:100vh; max-height:100vh; height:100dvh; max-height:100dvh; border:0; border-radius:0; }
}
@media(max-width:560px) {
 .container { width:calc(100% - 32px); }
 .header-inner { gap:8px; }
 .language-switch a { min-width:44px; min-height:44px; }
 .section { padding-top:48px; padding-bottom:48px; }
 .apartments-section { padding-top:96px; }
 .hero h1, html[lang="en"] .hero h1 { font-size:clamp(39px,10.7vw,60px); }
 .hero .seo-heading-label { font-size:17px; }
 .gallery-stage { height:clamp(330px,125vw,520px); }
 .gallery-arrow { width:44px; height:44px; top:calc(50% - 22px); }
 .gallery-expand { left:10px; bottom:12px; font-size:11px; padding:8px; }
 .gallery-counter { right:10px; }
 .gallery-caption { gap:6px 12px; line-height:1.5; }
 .gallery-caption>span:last-child { font-size:11px; }
 .booking-card { padding:24px 18px; }
 .calendar-day { min-height:36px; }
 .calendar-days,.calendar-weekdays { gap:3px; }
 .three-columns { grid-template-columns:minmax(0,1fr); }
 .card-photo,.three-columns .card-photo { height:clamp(300px,92vw,410px); }
 .rules-deposit { padding:22px 16px 12px; }
 .document-section h1 { font-size:clamp(29px,8.5vw,37px); }
 .footer-contact a,.footer-bottom a { display:inline-flex; align-items:center; min-height:44px; }
 .footer-bottom>div { display:flex; flex-wrap:wrap; gap:8px 16px; }
 .footer-bottom>div>a { margin:0; }
 .footer-top h2 { font-size:clamp(27px,8vw,33px); }
}
@media(max-width:440px) {
 .date-fields { grid-template-columns:minmax(0,1fr); gap:14px; }
 .price-line { flex-wrap:wrap; }
 .rules-toc { gap:8px; }.rules-toc a { padding:10px 12px; }
}
@media(orientation:landscape) and (max-height:520px) {
 .gallery-dialog-top,.gallery-dialog-bottom { padding-top:8px; padding-bottom:8px; }
 .gallery-dialog-bottom>span:last-child { display:none; }
 .gallery-dialog .gallery-arrow { width:44px; height:44px; top:calc(50% - 22px); }
 .mobile-nav { max-height:60vh; }
}
@supports(padding:max(0px)) {
 body { padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px); }
 footer { padding-bottom:env(safe-area-inset-bottom,0px); }
}
@media(hover:none) { .button:hover,.apartment-card:hover { transform:none; }.hero-photo:hover img,.apartment-card:hover img { transform:none; } }
@media(forced-colors:active) { .language-switch a[aria-current], .gallery-thumb[aria-current] { outline:2px solid Highlight; }.calendar-day { border:1px solid CanvasText; }.night-blocked { text-decoration:line-through; } }
