.contacts-section { padding: clamp(76px, 9vw, 128px) 0; color: #f7f5ec; background: radial-gradient(circle at 83% 15%, rgba(135, 167, 115, .2), transparent 38%), #173b31; }
.contacts-layout { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); align-items: center; gap: clamp(36px, 5vw, 80px); }
.contacts-copy h2 { margin: 0; font: 400 clamp(2.35rem, 3.55vw, 4.15rem)/1.1 Prata, Georgia, serif; letter-spacing: -.055em; text-wrap: balance; }
.contacts-copy h2 em { color: #e6bd81; font-style: normal; }
.contacts-intro { max-width: 550px; margin: 24px 0 32px; color: #c5d2c7; font-size: clamp(.98rem, 1.35vw, 1.1rem); }
.contacts-details { display: grid; gap: 24px; }
.contacts-details > div { padding-top: 17px; border-top: 1px solid rgba(255, 255, 255, .27); }
.contacts-details span { display: block; margin-bottom: 10px; color: #d9b785; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contacts-details address { font-style: normal; font-size: clamp(1.03rem, 1.5vw, 1.35rem); font-weight: 700; line-height: 1.35; }
.contacts-phone { display: inline-block; color: #fff; font-size: clamp(1.6rem, 2vw, 2.1rem); font-weight: 800; letter-spacing: -.05em; line-height: 1.2; }
.contacts-phone:hover, .contacts-phone:focus-visible { color: #e6bd81; }
.contacts-details p { max-width: 390px; margin: 7px 0 0; color: #c5d2c7; font-size: .86rem; line-height: 1.55; }
.contacts-call { display: inline-flex; align-items: center; gap: 20px; margin-top: 28px; padding: 14px 18px 14px 25px; border-radius: 999px; color: #153a30; background: #e9c994; font-size: .88rem; font-weight: 800; transition: transform .2s ease, background .2s ease; }
.contacts-call span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: #fff; background: #173b31; }
.contacts-call:hover, .contacts-call:focus-visible { transform: translateY(-2px); background: #f5d9ab; }
.contacts-map-shell { position: relative; overflow: hidden; min-width: 0; padding: 9px; border: 1px solid rgba(255, 255, 255, .34); border-radius: 23px; background: #e8e9e1; box-shadow: 0 32px 55px rgba(0, 0, 0, .21); }
.contacts-map-head { display: flex; align-items: center; gap: 9px; min-height: 49px; padding: 0 15px; color: #1d4236; font-size: .8rem; font-weight: 800; }
.contacts-map-head__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #dc905b; }
.contacts-map-head__brand { margin-left: auto; color: #66796b; font-size: .69rem; font-weight: 700; }
.contacts-map-shell iframe { display: block; width: 100%; height: clamp(470px, 42vw, 580px); border: 0; border-radius: 15px; background: #dce5d9; }
.contacts-map-shell.is-map-loading iframe { opacity: 0; }
.contacts-map-loading { position: absolute; z-index: 1; top: 58px; right: 9px; left: 9px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; height: clamp(470px, 42vw, 580px); padding: clamp(24px, 4vw, 50px); border-radius: 15px; color: #173b31; background: radial-gradient(circle at 88% 13%, #d2e1ce, transparent 38%), linear-gradient(135deg, #e6ece4, #d7e1d5); }
.contacts-map-loading[hidden] { display: none; }
.contacts-map-loading > span { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 24px; border: 1px solid #7ca28a; border-radius: 50%; color: #1a4a3e; font-size: 1.8rem; }
.contacts-map-loading strong { max-width: 310px; font: 400 clamp(1.55rem, 2vw, 2.2rem)/1.16 Prata, Georgia, serif; }
.contacts-map-loading p { max-width: 350px; margin: 15px 0 25px; color: #486357; font-size: .88rem; }
.contacts-map-loading a { padding: 11px 15px; border: 1px solid #8ca494; border-radius: 999px; font-size: .78rem; font-weight: 800; }
.contacts-map-loading a:hover, .contacts-map-loading a:focus-visible { background: #f8faf5; }
.contacts-map-link { display: block; padding: 15px 14px 8px; color: #1a4a3e; font-size: .8rem; font-weight: 800; text-align: right; }
.contacts-map-link:hover, .contacts-map-link:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.legacy-sequence-anchor { display: block; height: 0; }
@media (max-width: 900px) { .contacts-layout { grid-template-columns: 1fr; gap: 36px; } .contacts-map-shell iframe { height: 470px; } }
@media (max-width: 640px) { .contacts-section { padding: 70px 0 !important; } .contacts-copy h2 { font-size: clamp(2.15rem, 9vw, 3rem); } .contacts-intro { margin: 20px 0 28px; } .contacts-map-shell iframe, .contacts-map-loading { height: 360px; } .contacts-map-head__brand { display: none; } }
