/* Contact Us | booking form | v5 */
.contact-hero{padding:60px 0 68px;background:linear-gradient(112deg,#e7f5ed,#f9fcfa 70%);border-bottom:1px solid #dcebe1}
.contact-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.contact-hero h1{font-family:var(--serif,Georgia,serif);font-weight:500;letter-spacing:-.045em;line-height:1.12;color:#1a513d;font-size:clamp(3rem,5vw,5.1rem);margin:19px 0 20px}
.contact-hero h1 em{color:#0a9289}
.contact-hero p{font-size:1.05rem;color:#455f56;line-height:1.8;max-width:600px}
.contact-pillrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}
.contact-pillrow span{background:#fff;padding:9px 15px;border:1px solid #cae7d8;border-radius:40px;color:#2a6853;font-weight:700;font-size:.75rem}
.contact-photo{height:360px;border-radius:24px;overflow:hidden;box-shadow:0 25px 65px #103c2b20}
.contact-photo img{width:100%;height:100%;object-fit:cover;object-position:center 43%}
.booking-section{background:#fff!important;padding-top:78px!important}.booking-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:65px;align-items:start}
.booking-main>h2{font-size:clamp(2.15rem,3.5vw,3.1rem);margin:10px 0 16px;color:#18533e}.booking-main>h2 em{color:#0b8b82}
.booking-intro{font-size:.99rem;line-height:1.85;color:#486457;margin-bottom:25px}
.booking-notice{padding:17px 22px;background:#f0f9f4;border:1px solid #cde9d9;border-left:4px solid #1b998c;border-radius:12px;margin-bottom:25px;color:#244f3f}
.booking-notice strong{display:block;margin:0 0 6px}.booking-notice p{font-size:.87rem;line-height:1.6;margin:0}
.booking-form{background:#fff;border:1px solid #dfebe4;box-shadow:0 16px 60px #1e634710;border-radius:22px;padding:35px}
.booking-form fieldset{border:none;padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid #dfebe4;min-width:0}
.booking-form fieldset.last-fieldset{padding-bottom:0;border-bottom:none;margin-bottom:0}
.booking-form legend{font-family:var(--serif,Georgia,serif);font-size:1.45rem;font-weight:700;color:#164e3d;margin-bottom:23px;display:flex;align-items:center;gap:11px}
.step-num{font-family:Arial,sans-serif;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#e1f4eb;color:#117464;font-size:.82rem;font-weight:800}
.booking-fields{display:grid;gap:19px}.booking-fields.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.booking-field{margin-bottom:19px;min-width:0}
.booking-field label{font-size:.88rem;font-weight:750;color:#214f3f;display:block;margin-bottom:9px}
.booking-field label span,.booking-consent span{color:#ac5029}
.booking-field input,.booking-field select{width:100%;min-width:0;min-height:49px;border:1.5px solid #cbdfd4;border-radius:10px;padding:12px 14px;background:#fbfdfb;color:#234e3e;font-size:1rem;line-height:1.3;font-family:inherit}
.booking-field select{padding-right:28px}.booking-field input:focus,.booking-field select:focus{outline:3px solid #b7e8da;outline-offset:1px;border-color:#148e80}
.booking-field input:disabled{background:#eaecea}.booking-field input::placeholder{color:#72837a}
.booking-hint{color:#677c70;font-size:.82rem;line-height:1.65;margin:3px 0 17px}
.booking-consent{padding:19px;border-radius:12px;background:#f3faf6;border:1px solid #d2e9dc;margin-bottom:15px}
.booking-consent label{display:flex;align-items:flex-start;gap:12px;color:#304e40;font-size:.86rem;line-height:1.65;cursor:pointer}
.booking-consent input{width:18px;height:18px;flex:0 0 18px;margin:4px 0 0;accent-color:#177a65}
.booking-consent[hidden]{display:none!important}
.booking-submit{min-height:54px;padding:15px 30px;width:100%;margin-top:13px;font-weight:800;display:flex;gap:13px;align-items:center;justify-content:center}
.booking-submit:disabled{opacity:.7;cursor:wait}
.booking-errors{border:1px solid #e0b5ad;border-left:5px solid #a83f2b;border-radius:12px;background:#fdf1ef;color:#6f3029;padding:18px 23px;margin:24px 0}.booking-errors ul{padding-left:20px;margin-bottom:0}
.booking-success{padding:37px;border-radius:22px;background:#ecf8f2;border:1px solid #b6e2ca;line-height:1.85}.booking-success h3{font-family:var(--serif,Georgia,serif);font-size:1.8rem;color:#195743}.booking-success p{color:#385d4a}.booking-success .btn{margin-top:15px}.success-symbol{background:#d7eee0;color:#145c43;border-radius:50%;width:55px;height:55px;display:grid;place-items:center;font-size:2rem}
.trap-input{position:absolute!important;left:-99999px!important;width:1px;height:1px;overflow:hidden}
.booking-aside{display:grid;gap:20px;position:sticky;top:110px}
.info-card,.help-card,.urgent-card{padding:31px;background:#f1f8f4;border:1px solid #d5e9dd;border-radius:19px}.info-card h3{font-family:var(--serif,Georgia,serif);font-size:1.8rem;color:#1e563e;margin:11px 0 20px}.info-card h4{margin:20px 0 8px;color:#1d4f3d;font-size:1rem}.info-card p{font-size:.87rem;line-height:1.75;color:#456453;margin-bottom:15px}.info-card a{color:#076e67;text-underline-offset:3px;overflow-wrap:anywhere}.contact-separator{height:1px;background:#d5e5dc;margin:24px 0 17px}.help-card{background:#1c614b;color:#fff}.help-card>span{font-size:1.5rem}.help-card h3{font-family:var(--serif,Georgia,serif);font-size:1.5rem;margin:8px 0}.help-card p{font-size:.9rem;line-height:1.8;color:#ecfff5}.urgent-card{background:#fff8ee;border-color:#f1dbb2;color:#665135}.urgent-card p{font-size:.84rem;line-height:1.7;margin-bottom:0}
@media(max-width:1050px){.booking-layout{grid-template-columns:minmax(0,1fr) 275px;gap:26px}.contact-hero-grid{gap:25px}.contact-photo{height:300px}}
@media(max-width:850px){.contact-hero-grid,.booking-layout{grid-template-columns:1fr}.contact-hero-grid{gap:24px}.contact-photo{height:300px;order:-1}.booking-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.info-card{grid-column:1/-1}.contact-hero{padding:25px 0 50px}}
@media(max-width:570px){.booking-fields.two-col,.booking-aside{grid-template-columns:1fr}.info-card{grid-column:auto}.contact-photo{height:230px}.contact-hero h1{font-size:2.7rem}.contact-hero p{font-size:.94rem}.booking-form{padding:23px 17px;border-radius:15px}.booking-section{padding-block:55px!important}.booking-form legend{font-size:1.25rem}.booking-layout{gap:24px}.contact-pillrow{gap:6px}.contact-pillrow span{font-size:.7rem;padding:7px 10px}.info-card,.help-card,.urgent-card{padding:24px}}
@media(prefers-reduced-motion:reduce){.booking-submit{transition:none}}
@media print{.booking-form,.contact-photo,.booking-aside{display:none}}
