.contact-hero{background:#ecf0eb;overflow:hidden}
.contact-hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:7vw;min-height:620px;padding-block:76px}
.contact-hero h1{font-size:clamp(3.5rem,6vw,6.4rem);font-weight:600;margin:18px 0 28px}
.contact-hero h1 em{font-style:normal;color:var(--navy)}
.contact-hero-grid>div:first-child>p:not(.eyebrow){max-width:500px;color:#5b686a;font-size:1.1rem;line-height:1.8;margin-bottom:35px}
.contact-hero-photo{height:490px;overflow:hidden;box-shadow:24px 24px 0 #d4ded4}
.contact-hero-photo img{width:100%;height:100%;object-fit:cover}
.contact-grid{padding-top:100px;padding-bottom:100px}
.contact-grid>div:first-child>p:last-child{color:#657174;line-height:1.8;margin-top:25px}
.contact-list a.map-text-link{font:700 .82rem Inter,Arial,sans-serif;border-bottom:1px solid currentColor;padding-bottom:6px}
.quote-section{background:#e8ece8;padding:105px 0}
.quote-section-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start}
.quote-intro{position:sticky;top:120px}
.quote-intro h2{font-size:clamp(2.8rem,4.5vw,5rem);font-weight:600;margin:15px 0 25px}
.quote-intro>p:not(.eyebrow){color:#5f6d70;line-height:1.85;max-width:440px}
.quote-steps{display:grid;gap:0;border-top:1px solid #cbd4ce;margin-top:35px}
.quote-steps span{padding:15px 0;border-bottom:1px solid #cbd4ce;font-size:.8rem;font-weight:700;color:#425051}
.quote-form-card{background:#fff;padding:clamp(25px,4vw,54px);box-shadow:0 22px 70px #2438580c}
.quote-card-heading>span{font-size:.68rem;letter-spacing:.18em;font-weight:800;color:var(--green)}
.quote-card-heading h3{font-size:2rem;font-weight:600;margin:10px 0}
.quote-card-heading p{color:#7a8584;font-size:.82rem;margin:0 0 30px}
.quote-form{display:grid;gap:21px}
.quote-form label{display:block;font-size:.8rem;font-weight:700;color:#344349}
.quote-form label>input:not([type=checkbox]),.quote-form label>select,.quote-form label>textarea{display:block;margin-top:8px}
.quote-form label>span:not(.consent span){color:var(--green)}
.quote-form input:not([type=checkbox]),.quote-form select,.quote-form textarea{width:100%;border:1px solid #d6ded8;border-radius:0;background:#f9faf8;color:#1d2629;padding:13px 14px;min-height:50px;font:400 .9rem Inter,Arial,sans-serif;outline-offset:3px}
.quote-form textarea{min-height:128px;resize:vertical}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--navy);outline:2px solid #344c7a24}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.consent{display:flex!important;grid-template-columns:none;align-items:start;gap:12px!important;line-height:1.65;font-weight:400!important;color:#5b676b!important}
.consent input{width:18px;height:18px;accent-color:var(--navy);flex:none;margin:3px 0 0}
.consent span{color:#5b676b!important}
.consent a{color:var(--navy);font-weight:700;text-decoration:underline}
.form-submit{border:0;cursor:pointer;width:max-content;margin-top:4px}
.form-footnote{font-size:.75rem;color:#758080;margin:0}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-alert,.form-success{padding:17px 20px;margin:0 0 25px;font-size:.85rem;line-height:1.65}
.form-alert{background:#fff0ee;color:#8a2c2c;border-left:3px solid #b64242}
.form-alert ul{margin:5px 0 0;padding-left:20px}
.form-success{background:#eaf3e8;color:#2a6039;border-left:3px solid #58a66a}
.form-success p{margin:5px 0 0}
.map-section{padding:110px 0 120px}
.map-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}
.map-heading h2{font-size:clamp(2.6rem,4.3vw,4.8rem);font-weight:600;margin:13px 0 0}
.map-heading>p{color:#657174;font-size:.85rem;line-height:1.7;margin:0;text-align:right}
.map-frame{height:460px;background:#e7ebe8}
.map-frame iframe{display:block;border:0;width:100%;height:100%}
.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:70;display:flex;align-items:center;gap:10px;padding:13px 17px;background:#1caa59;color:white;border-radius:999px;box-shadow:0 12px 35px #143e2770;font-size:.84rem;font-weight:800;transition:transform .2s ease,background .2s ease}
.whatsapp-float:hover{transform:translateY(-3px);background:#168949}
.whatsapp-float svg{width:25px;height:25px;flex:none}
.quote-dialog{width:min(92vw,680px);max-height:min(92vh,900px);border:0;padding:clamp(22px,4vw,42px);box-shadow:0 30px 90px #10192380;color:#1c272b;overflow:auto}
.quote-dialog::backdrop{background:#121b24b8;backdrop-filter:blur(4px)}
.quote-dialog-head{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:26px}
.quote-dialog-head h2{font-size:clamp(1.9rem,3vw,2.6rem);font-weight:600;margin:10px 0}
.quote-dialog-head p{color:#687577;margin:0}
.dialog-close{border:0;background:#edf0ed;color:#253856;font-size:1.8rem;line-height:1;width:40px;height:40px;flex:none;cursor:pointer}
.privacy-copy{max-width:790px}
.privacy-copy h2{font-size:1.8rem;margin:28px 0 12px}
.privacy-copy p{color:#59686a;line-height:1.85}
@media(max-width:900px){.contact-hero-grid,.quote-section-grid{grid-template-columns:1fr;gap:45px}.contact-hero-grid{padding-block:70px}.contact-hero-photo{height:430px}.quote-intro{position:static}.quote-section{padding:75px 0}.contact-grid{padding-block:80px}}
@media(max-width:800px){.form-row{grid-template-columns:1fr}}
@media(max-width:700px){.contact-hero h1{font-size:clamp(3rem,11vw,4.5rem)}.contact-hero-photo{height:290px;box-shadow:12px 12px 0 #d4ded4}.contact-hero-grid{gap:35px}.quote-form-card{padding:27px 20px}.map-heading{display:block}.map-heading>p{text-align:left;margin-top:18px}.map-frame{height:360px}.whatsapp-float{right:14px;bottom:14px;padding:12px}.whatsapp-float span{display:none}.quote-dialog{width:96vw;max-height:92vh;padding:22px 18px}.form-submit{width:100%}}
@media(prefers-reduced-motion:reduce){.whatsapp-float{transition:none}.quote-dialog::backdrop{backdrop-filter:none}}
.quote-inline-error[hidden]{display:none}.quote-inline-error{margin:0}.form-submit:disabled{opacity:.65;cursor:wait}.quote-success-dialog{width:min(92vw,440px);border:0;border-radius:14px;padding:38px;text-align:center;box-shadow:0 30px 90px #15243780;color:#263444}.quote-success-dialog::backdrop{background:#152235a8}.quote-success-dialog h2{font-size:1.8rem;margin:15px 0 10px}.quote-success-dialog p{line-height:1.7;color:#66737d}.quote-success-dialog button{border:0;margin:20px auto 0;cursor:pointer}.success-mark{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:#e4f5e8;color:#27834c;font-size:1.9rem;font-weight:800}
