.contact-hero { padding:clamp(5rem,10vw,9rem) 0; color:#fff; background:var(--green-deep); }
.contact-hero-grid { display:grid; grid-template-columns:1.12fr .88fr; align-items:center; gap:clamp(3rem,9vw,10rem); }
.contact-hero .eyebrow { color:var(--yellow); }
.contact-hero h1 { max-width:800px; margin-bottom:1.4rem; color:#fff; font-size:clamp(3.2rem,6.2vw,6.8rem); line-height:.91; }
.contact-hero > p, .contact-hero-grid > div > p:not(.eyebrow) { max-width:620px; color:#dce8e0; font-size:1.08rem; }
.button-yellow { margin-top:.75rem; color:var(--black); background:var(--yellow); }
.button-yellow:hover { background:var(--yellow-light); }
.phone-highlight { padding:clamp(2rem,4vw,3.5rem); color:var(--black); background:var(--yellow); }
.phone-highlight > span { display:block; margin-bottom:1.1rem; font-size:.74rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.phone-highlight > a:first-of-type { display:block; color:var(--black); font-size:clamp(1.55rem,2.6vw,2.6rem); font-weight:500; letter-spacing:-.06em; line-height:1.08; text-decoration:none; }
.phone-highlight strong { display:block; font-size:1.27em; }
.phone-highlight p { margin:1.6rem 0; font-size:.9rem; }
.phone-whatsapp { display:flex; width:100%; justify-content:space-between; gap:1rem; padding:1rem; border:0; color:#fff; background:var(--green-deep); font:inherit; font-size:.78rem; font-weight:900; letter-spacing:.045em; text-align:left; text-transform:uppercase; cursor:pointer; transition:background .2s ease,transform .2s ease; }
.phone-whatsapp:hover { background:var(--black); transform:translateY(-2px); }
.phone-whatsapp span { font-size:1.2rem; line-height:.9; }
.contact-details-section { background:var(--surface); }
.contact-details-grid { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:clamp(3rem,9vw,10rem); }
.contact-address { display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; padding:1.5rem 0; border-top:1px solid var(--green); font-size:1.1rem; font-style:normal; }
.contact-address strong { color:var(--green-deep); font-size:1.4rem; letter-spacing:-.04em; }
.contact-address a { margin-top:1rem; color:var(--green); font-size:.9rem; font-weight:800; }
.contact-modal { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:1rem; opacity:0; pointer-events:none; transition:opacity .2s ease; }
.contact-modal.is-open { opacity:1; pointer-events:auto; }
.contact-modal-backdrop { position:absolute; inset:0; background:rgba(0,30,18,.76); }
.contact-modal-dialog { position:relative; z-index:1; width:min(100%,650px); max-height:calc(100vh - 2rem); overflow:auto; padding:clamp(2rem,5vw,3.75rem); background:#fff; box-shadow:0 1.5rem 5rem rgba(0,0,0,.35); transform:translateY(1rem); transition:transform .2s ease; }
.contact-modal.is-open .contact-modal-dialog { transform:translateY(0); }
.contact-modal-dialog h2 { margin-bottom:1rem; }
.contact-modal-dialog > p:not(.eyebrow) { color:var(--muted); }
.modal-close { position:absolute; top:1rem; right:1.25rem; width:2.25rem; height:2.25rem; padding:0; border:0; color:var(--black); background:transparent; font-size:2rem; line-height:1; cursor:pointer; }
.service-options { display:grid; gap:.7rem; margin-top:1.7rem; }
.service-options button { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; padding:1rem 1.1rem; border:1px solid var(--line); color:var(--green-deep); background:#fff; font:inherit; font-size:.95rem; font-weight:800; text-align:left; cursor:pointer; transition:border-color .2s ease,background .2s ease,color .2s ease; }
.service-options button:hover { border-color:var(--green); color:#fff; background:var(--green); }
.service-options span { font-size:1.25rem; line-height:1; }
@media (max-width:760px) { .contact-hero-grid,.contact-details-grid { grid-template-columns:1fr; } .contact-hero h1 { font-size:clamp(3rem,15vw,4.7rem); } .phone-highlight { max-width:520px; } }
