.contact-page { background:var(--forest); }
.contact-intro { padding:132px 0 72px; color:var(--paper); background:radial-gradient(ellipse at 0% 85%,#234b40 0,transparent 58%),var(--forest); }
.contact-heading { display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid #ffffff24; padding-bottom:24px; margin-bottom:38px; }
.contact-kicker { margin:0; color:var(--lime); font-size:14px; letter-spacing:.13em; text-transform:uppercase; font-weight:600; }
.contact-heading > span { color:#b4c7bd; font-size:14px; }
.contact-identity { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(32px,6vw,88px); align-items:center; }
.contact-portrait { margin:0; position:relative; border-radius:16px; overflow:hidden; background:#28473d; height:590px; }
.contact-portrait img { width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.contact-portrait figcaption { position:absolute; inset:auto 0 0; padding:75px 32px 28px; background:linear-gradient(transparent,#071f1ef0); color:white; font:32px/1.1 var(--serif); }
.contact-details { min-width:0; }
.contact-details h1 { font:500 clamp(58px,6vw,88px)/.96 var(--serif); letter-spacing:-.035em; margin:22px 0; max-width:420px; }
.contact-details h1 em { color:var(--sage); font-weight:400; }
.contact-lead { font-size:18px; color:#d3dfd7; line-height:1.6; margin-bottom:24px; }
.contact-recapiti { border-top:1px solid #ffffff28; }
.contact-recapiti a { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:17px 0; border-bottom:1px solid #ffffff28; }
.contact-recapiti small { display:block; color:#b4c7bd; font-size:14px; margin-bottom:3px; }
.contact-recapiti strong { font-size:clamp(17px,1.8vw,23px); font-weight:500; overflow-wrap:anywhere; }
.contact-recapiti a > span:last-child { font-size:24px; color:var(--lime); }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.contact-actions a { min-height:54px; padding:15px 20px; border-radius:12px; font-size:16px; font-weight:600; display:flex; align-items:center; justify-content:center; }
.contact-whatsapp { background:var(--lime); color:var(--forest); flex:1 1 240px; }
.contact-save { border:1px solid #91b4a6; flex:1 1 180px; }
.contact-social { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:22px; color:#c2d4c9; font-size:14px; }
.contact-social a { padding:8px 0; }
.contact-page a:focus-visible { outline:3px solid var(--lime); outline-offset:5px; }
.contact-recapiti a:hover,.contact-social a:hover { color:var(--lime); }
.contact-whatsapp:hover { background:#e9ff80; }
.contact-save:hover { background:#ffffff12; }
.contact-meet { background:var(--paper); padding:64px 0; }
.contact-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:28px; }
.contact-section-heading h2 { font:400 clamp(32px,3vw,44px)/1.15 var(--serif); margin:0; }
.contact-section-heading p { color:#536c61; margin:0; }
.contact-offices { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-offices a { padding:28px 32px; border:1px solid var(--line); border-radius:18px; background:#edf1e7; }
.contact-offices small { text-transform:uppercase; font-size:14px; letter-spacing:.08em; color:#45665f; }
.contact-offices h3 { font:400 30px/1.2 var(--serif); margin:14px 0 24px; }
.contact-offices span { color:#2c5b4d; }
.contact-offices a:hover { border-color:#45665f; }
.contact-callback { padding:72px 0; }
.contact-callback .lead-copy h2 { font-size:clamp(38px,4vw,56px); margin:18px 0; }
.contact-callback .lead-grid { gap:clamp(32px,6vw,80px); }
.contact-assessment { display:inline-block; color:var(--lime); margin-top:22px; }
@media(max-width:760px) {
 .contact-intro { padding-top:110px; }
 .contact-heading { display:block; margin-bottom:28px; }
 .contact-heading > span { display:block; margin-top:10px; }
 .contact-identity { grid-template-columns:1fr; gap:28px; }
 .contact-portrait { height:260px; border-radius:12px; width:100%; }
 .contact-portrait img { object-position:center 23%; }
 .contact-portrait figcaption { font-size:26px; }
 .contact-details h1 { font-size:clamp(46px,9vw,66px); max-width:none; }
 .contact-section-heading { display:block; }
 .contact-section-heading p { margin-top:14px; }
 .contact-offices { grid-template-columns:1fr; gap:16px; }
 .contact-offices a { padding:24px; }
 .contact-meet,.contact-callback { padding:44px 0; }
}
