.contact-page-section {background:linear-gradient(180deg,#f6f6f6 0%,#fff 100%);}
.booking-form-card {border:1px solid rgba(47,66,59,.09); border-radius:14px; background:#fff; box-shadow:0 18px 55px rgba(2,39,49,.09);}
.booking-form-card h1 {font-size:clamp(2.7rem,5vw,4.2rem); line-height:1;}
.contact-intro {max-width:620px;}
.booking-form-card .contact-control {min-height:54px; padding:13px 16px; border:1px solid #d8dfdc; border-radius:8px; background-color:#fbfcfb; color:var(--headline-color); font-family:var(--body-font); font-size:15px; box-shadow:none; transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;}
.booking-form-card .form-select.contact-control {padding-right:46px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232f423b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='m3 6 5 5 5-5'/%3E%3C/svg%3E"); background-position:right 16px center; background-size:16px 16px; background-repeat:no-repeat; cursor:pointer;}
.booking-form-card .contact-control::placeholder {color:#718078; opacity:1; transition:opacity .15s ease;}
.booking-form-card .contact-control:focus::placeholder {opacity:0;}
.booking-form-card textarea.contact-control {min-height:120px; resize:vertical;}
.booking-form-card .contact-control:hover {border-color:#aebbb6; background-color:#fff;}
.booking-form-card .contact-control:focus {border-color:var(--theme-color); background-color:#fff; box-shadow:0 0 0 4px rgba(226,80,47,.11);}
.contact-submit {min-height:54px; font-family:var(--heading-font); font-size:17px; font-weight:500;}
.contact-submit:disabled {cursor:wait; opacity:.7;}
.form-status.is-success {color:#267044;}
.form-status.is-error {color:#b52d1e;}
.contact-info-panel {position:relative; min-height:480px; overflow:hidden; border-radius:14px; color:#fff; box-shadow:0 18px 55px rgba(2,39,49,.14); isolation:isolate;}
.contact-info-image {position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover;}
.contact-info-overlay {position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(31,54,46,.69),rgba(31,54,46,.94));}
.contact-info-panel h2,.contact-info-panel p {color:#fff;}
.contact-info-panel h2 {font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.05;}
.contact-info-links {display:grid; gap:16px;}
.contact-info-links a {display:flex; gap:13px; align-items:center; padding:14px 16px; border:1px solid rgba(255,255,255,.24); border-radius:8px; background:rgba(255,255,255,.1); color:#fff; backdrop-filter:blur(6px);}
.contact-info-links a:hover {border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.17); color:#fff;}
.contact-info-links .site-icon {width:18px; height:18px; color:var(--theme-color);}
.map-frame {overflow:hidden; border-radius:14px; box-shadow:0 14px 40px rgba(2,39,49,.08);}
.map-frame iframe {display:block;}

@media (max-width:767px) {
    .booking-form-card,.contact-info-panel {border-radius:10px;}
    .contact-info-panel {min-height:440px;}
    .g-recaptcha {max-width:100%; transform-origin:left top;}
}

@media (max-width:359px) {
    .booking-form-card,.contact-info-panel {padding:1.25rem !important;}
    .booking-form-card h1 {font-size:2.25rem;}
    .booking-form-card .contact-control {min-height:50px; padding:11px 13px; font-size:14px;}
    .booking-form-card .form-select.contact-control {padding-right:40px; background-position:right 13px center;}
    .contact-submit {min-height:50px; font-size:15px;}
    .contact-info-panel {min-height:390px;}
    .contact-info-panel h2 {font-size:2rem;}
    .contact-info-links {gap:10px;}
    .contact-info-links a {gap:10px; padding:12px; font-size:13px; overflow-wrap:anywhere;}
    .g-recaptcha {width:125%; transform:scale(.8);}
}
