/* Keep the spam trap within the form: off-screen positioning expands RTL
   mobile layout viewports even when the document clips horizontal overflow. */
.booking-form { position: relative; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.booking-form .booking-honeypot {
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    opacity: 0;
    pointer-events: none;
}
.booking-page, .booking-page > .container, .booking-card,
.booking-form .form-group, .booking-form .form-row,
.manage-booking, .manage-booking-search { min-width: 0; }
.booking-page > .container { max-width: 1000px; }
.booking-form input, .booking-form select, .booking-form textarea,
.booking-form .time-picker-display { min-width: 0; max-width: 100%; }
.booking-card { overflow-wrap: anywhere; }
.manage-booking-search { display: flex; gap: 8px; }
.manage-booking-search input { min-width: 0; width: 100%; }
.manage-booking-search .btn, .booking-form > .btn { white-space: normal; }
.booking-page-view .site-footer .footer-col { min-width: 0; overflow-wrap: anywhere; }
.booking-page-view .site-footer .contact-line { flex-wrap: wrap; }
.booking-page-view .footer-bottom, .booking-page-view .footer-links { display: flex; flex-wrap: wrap; gap: 12px; }
.booking-page-view .brand > span { min-width: 0; }
@media (max-width: 1100px) {
    .booking-page-view .site-header { height: 75px; padding: 0 5%; gap: 12px; }
    .booking-page-view .site-header .brand { gap: 8px; min-width: 0; }
    .booking-page-view .site-header .brand-logo { height: 52px; max-width: 64px; }
    .booking-page-view .site-header .brand strong { font-size: 15px; letter-spacing: 1px; }
    .booking-page-view .site-header .brand small { font-size: 11px; }
    .booking-page-view .header-actions { display: none; }
    .booking-page-view .site-header .menu-toggle { display: block; margin-left: auto; flex-shrink: 0; min-width: 44px; min-height: 44px; }
    .booking-page-view .site-header .nav-links { display: none; position: absolute; top: 75px; left: 0; right: 0; height: auto; max-height: calc(100dvh - 75px); overflow-y: auto; padding: 16px 5%; background: #fff; flex-direction: column; align-items: stretch; gap: 0; box-shadow: 0 10px 20px #0001; }
    .booking-page-view .site-header .nav-links.open { display: flex; }
    .booking-page-view .site-header .nav-links a { height: auto; min-height: 44px; width: 100%; }
    .booking-page-view .site-header .nav-links .mobile-actions { display: flex; flex-direction: column; gap: 12px; padding-top: 12px; margin-top: 8px; border-top: 1px solid #eee; width: 100%; }
    .booking-page-view .site-header .mobile-actions .lang-switcher { display: flex; flex-wrap: wrap; gap: 8px; }
    .booking-page-view .site-header .mobile-actions .lang-switcher a { width: auto; padding: 8px 12px; }
    .booking-page-view .site-header .mobile-actions .button { margin: 0; color: #fff; }
    .booking-page-view .site-header .mobile-actions .button.outline { color: #7b5c3a; }
}
@media (max-width: 768px) {
    .booking-form { grid-template-columns: minmax(0, 1fr); }
    .booking-page-view .site-footer .footer-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .booking-page > .container { padding: 0; }
    .manage-booking-search { flex-direction: column; }
    .manage-booking-search input, .manage-booking-search .btn { width: 100%; }
    .booking-page-view .site-footer .footer-contact { grid-template-columns: minmax(0, 1fr); }
    .booking-page-view .cookie-banner { max-height: 70dvh; overflow-y: auto; }
    .booking-page-view .cookie-banner-buttons { flex-wrap: wrap; }
    .booking-page-view .cookie-banner-buttons .button { white-space: normal; max-width: 100%; }
    .booking-page-view .cookie-modal-content { max-height: 85dvh; overflow-y: auto; }
    .booking-page-view .tp-dialog { max-height: calc(100dvh - 2rem); }
}
