﻿.contact-page { padding: 120px 24px 64px; color: #183f43; background: linear-gradient(135deg, #edf9f4, #fffaf4 45%, #fff); line-height: 1.7; }
.contact-heading { max-width: 700px; margin: 0 auto 40px; text-align: center; }
.contact-eyebrow { color: #087c70; font-size: 12px; font-weight: 700; letter-spacing: 2px; margin-bottom: 12px; }
.contact-heading h2 { font-size: clamp(30px, 4vw, 42px); line-height: 1.2; margin-bottom: 20px; letter-spacing: -1px; }
.contact-heading > p:last-child, .booking-card > p { color: #52696c; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 28px; max-width: 1200px; margin: auto; align-items: start; }
.booking-card, .contact-card { padding: clamp(24px, 3vw, 36px); background: #fff; border: 1px solid #dcece8; border-radius: 20px; box-shadow: 0 10px 30px rgb(24 63 67 / 6%); min-width: 0; }
.booking-card { border-top: 4px solid #029e90; scroll-margin-top: 100px; }
.contact-page h3 { font-size: 23px; line-height: 1.3; margin-bottom: 14px; }
.contact-details { display: grid; gap: 20px; min-width: 0; }
.contact-card address { font-style: normal; color: #52696c; }
.contact-card a { display: block; color: #087c70; text-decoration: none; overflow-wrap: anywhere; padding-block: 5px; }
.contact-card a:hover { text-decoration: underline; }
.emergency-note { margin-top: 16px; padding: 12px 16px; background: #fff3e6; border-radius: 10px; color: #813707; font-size: 14px; }
.contact-social { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.contact-social a { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.contact-social img { object-fit: contain; }
.booking-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; margin: 26px 0; }
.booking-fields > div { min-width: 0; }
.booking-fields label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; }
.booking-fields label span { font-size: 12px; color: #52696c; font-weight: 400; }
.booking-fields input, .booking-fields select { width: 100%; min-width: 0; min-height: 48px; padding: 12px; border: 1px solid #b9d2c9; border-radius: 9px; background: #fbfdfc; color: #183f43; font: inherit; font-size: 16px; }
.booking-note { color: #52696c; font-size: 13px; margin-bottom: 20px; }
.booking-submit { width: 100%; padding: 15px 20px; background: #087c70; color: #fff; border: 0; border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer; }
.booking-submit:hover { background: #065e55; }
.booking-status { margin-top: 14px; color: #52696c; font-size: 14px; }
.contact-page :is(a, button, input, select):focus-visible { outline: 3px solid #c25a0b; outline-offset: 3px; }
.contact-map { max-width: 1200px; margin: 40px auto 0; }
.contact-map iframe { display: block; width: 100%; height: 360px; border: 1px solid #dcece8; border-radius: 20px; background: #edf8f4; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .contact-page { padding: 108px 16px 40px; } .booking-fields { grid-template-columns: minmax(0, 1fr); } .contact-map iframe { height: 280px; } }
