.contact-page .contact-intro { display:grid; grid-template-columns: 1.4fr 1fr; gap:40px; align-items:center; }
.contact-page h1 { margin:0 0 24px; }
.contact-page .contact-intro img { width:100%; max-width:460px; margin:auto; }
.contact-page .contact-booking { display:grid; grid-template-columns:1fr 1.2fr; gap:48px; align-items:start; }
.contact-page a { color:#086174; overflow-wrap:anywhere; }
.contact-page .contact-form-panel { padding:30px; border-radius:16px; background:#f3f8fa; border:1px solid #d5e6eb; min-width:0; }
.contact-page .contact-form-panel h2 { font-size:27px; }
.contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.contact-field { min-width:0; }
.contact-wide { grid-column:1/-1; }
.contact-field label { display:block; font-weight:600; color:#164f60; margin-bottom:8px; }
.contact-page .contact-field input,.contact-page .contact-field select,.contact-page .contact-field textarea { display:block; width:100%; min-width:0; padding:12px; border:1px solid #aabec5; border-radius:6px; background:white; color:#213d48; font:inherit; height:auto; }
.contact-page .contact-field textarea { resize:vertical; }
.contact-page .contact-field :is(input,select,textarea):focus { outline:3px solid #9edce4; border-color:#086174; }
.contact-page .contact-field [aria-invalid="true"] { border-color:#b22626; }
.contact-error { display:block; color:#a42121; font-size:14px; margin-top:5px; }
.contact-error:empty { display:none; }
.contact-page button[type="submit"],.contact-page .contact-directions { display:inline-block; border:0; border-radius:7px; padding:13px 22px; background:#086174; color:white; font-weight:600; margin-top:20px; }
.contact-page button[type="submit"]:hover,.contact-page .contact-directions:hover { background:#064958; }
.contact-page #contact-status { margin-top:16px; font-size:15px; }
.contact-page #contact-status:empty { display:none; }
.contact-map { margin-top:26px; overflow:hidden; border-radius:12px; border:1px solid #d5e6eb; }
.contact-map iframe { display:block; width:100%; height:430px; border:0; }
@media(max-width:991px) { .contact-page .contact-booking { grid-template-columns:1fr; gap:28px; } }
@media(max-width:767px) { .contact-page .contact-intro { grid-template-columns:1fr; gap:24px; } .contact-page .contact-form-panel { padding:22px; } .contact-fields { grid-template-columns:1fr; } .contact-map iframe { height:340px; } }
