.contacts-main { padding-top: 24px; padding-bottom: 0; }
.contacts-main h1,.contacts-main h2 { font-size: clamp(28px,3vw,42px); line-height: 1.2; margin: 0 0 40px; }
.contacts-main .contact-top { display: grid; grid-template-columns: minmax(0,1fr) 440px; gap: 64px; align-items: start; margin-bottom: 64px; }
.contacts-main .contact-top p { font-size: 21px; line-height: 1.4; max-width: 360px; margin-bottom: 24px; }
.contacts-main .contact-top p:last-child { margin-bottom: 0; font-size: 24px; line-height: 1.6; font-weight: 600; color: var(--navy); }
.contacts-main .contact-top a { overflow-wrap: anywhere; }
.contacts-main .contact-brand { display: grid; gap: 40px; }
.contacts-main .contact-logo { display: flex; align-items: center; justify-content: center; min-height: 116px; padding: 24px; border-radius: 20px; background: #1b2844; }
.contacts-main .contact-logo img { display: block; width: 192px; height: auto; }
.contacts-main .social-links { display: flex; justify-content: flex-end; gap: 24px; }
.contacts-main .ml-social-icon { display: inline-flex; justify-content: center; align-items: center; width: 48px; height: 48px; color: var(--navy); border: 1px solid var(--navy); border-radius: 50%; transition: background-color .2s,color .2s; }
.contacts-main a.ml-social-icon:hover { color: white; background: var(--navy); }
.contacts-main .contact-map { display: block; position: relative; overflow: hidden; border-radius: 32px; margin-bottom: 96px; background: var(--navy); }
.contacts-main .contact-map-action { position: absolute; bottom: 24px; right: 24px; background: white; color: var(--navy); padding: 12px 24px; border-radius: 8px; font-size: 16px; font-weight: 600; transition: background-color .2s; }
.contacts-main .contact-map:hover .contact-map-action { background: #deebf4; }
.contacts-main .instagram-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.contacts-main .instagram-grid img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 20px; }
.contacts-main .instagram-grid a { border-radius: 20px; transition: opacity .2s; }
.contacts-main .instagram-grid a:hover { opacity: .85; }
.contacts-main > section:last-child { margin-bottom: 96px; }
@media(max-width:1100px) { .contacts-main .contact-top { grid-template-columns: minmax(0,1fr) 300px; gap: 40px; } }
@media(max-width:700px) {
 .contacts-main { padding-top: 8px; }
 .contacts-main h1,.contacts-main h2 { font-size: 28px; margin-bottom: 32px; }
 .contacts-main .contact-top { grid-template-columns: 1fr; gap: 32px; margin-bottom: 40px; }
 .contacts-main .contact-top p { font-size: 18px; }
 .contacts-main .contact-top p:last-child { font-size: 20px; }
 .contacts-main .contact-brand { gap: 24px; }
 .contacts-main .social-links { justify-content: flex-start; }
 .contacts-main .contact-map { border-radius: 24px; margin-bottom: 64px; }
 .contacts-main .contact-map-action { bottom: 16px; right: 16px; left: 16px; text-align: center; padding: 12px; font-size: 14px; }
 .contacts-main .instagram-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
 .contacts-main .instagram-grid img { border-radius: 12px; }
 .contacts-main > section:last-child { margin-bottom: 64px; }
}

.contacts-main .ml-social-icon { background: var(--navy); color: white; }
.contacts-main a.ml-social-icon:hover { background: #245881; border-color: #245881; color: white; }
@media(max-width:700px) {
 .contacts-main .contact-map-action { position: static; display: block; margin: 16px; }
}
.contacts-main .contact-map { isolation: isolate; }
.contacts-main .contact-map-canvas { display:block; width:100%; height:clamp(360px,37vw,537px); border:0; background:#e6edf0; color:var(--navy); }
.contacts-main .contact-map-action { position:relative; display:block; width:fit-content; margin:16px 16px 16px auto; bottom:auto; right:auto; left:auto; }
.contacts-main .contact-map-action:hover { background:#deebf4; }
.contacts-main .contact-map-fallback { padding:24px; }
.contacts-main .leaflet-container img.leaflet-marker-icon { max-width:none; }
.contacts-main .leaflet-control-zoom a { color:var(--navy); transition:background-color .2s; }
.contacts-main .leaflet-control-zoom a:hover { background:#deebf4; }
.contacts-main .leaflet-control-attribution a { font-size:11px; }
@media(max-width:700px) { .contacts-main .contact-map-action { width:auto; margin:16px; } }

/* Apply the navy palette only to map tiles; the supplied SVG keeps its original colors. */
.contacts-main .contact-map-canvas.leaflet-container { background:#142b45; font-family:inherit; }
.contacts-main .ml-map-tiles { filter:grayscale(1) invert(1) sepia(1) saturate(2.4) hue-rotate(165deg) brightness(.8) contrast(.9); }
.contacts-main .leaflet-marker-icon { filter:drop-shadow(0 4px 8px #0006); }
.contacts-main .leaflet-bar { border:1px solid #829bb4; border-radius:12px; overflow:hidden; box-shadow:0 4px 16px #071b3333; }
.contacts-main .leaflet-bar a { width:40px; height:40px; line-height:40px; background:#1b2844; color:#fff; border-color:#829bb4; }
.contacts-main .leaflet-bar a:hover,.contacts-main .leaflet-bar a:focus-visible { background:#315171; color:white; }
.contacts-main .leaflet-bar a.leaflet-disabled { background:#23364f; color:#8da2b8; }
.contacts-main .leaflet-popup-content-wrapper,.contacts-main .leaflet-popup-tip { background:#1b2844; color:white; }
.contacts-main .leaflet-popup-content-wrapper { border-radius:16px; }
.contacts-main .leaflet-popup-content { margin:20px 24px; font-size:14px; line-height:1.5; }
.contacts-main .leaflet-popup-content strong { font-size:18px; }
.contacts-main .leaflet-popup-content p { margin:8px 0 0; }
.contacts-main .leaflet-container a.leaflet-popup-close-button { color:white; }
.contacts-main .leaflet-control-attribution { background:#fffE; color:#1b2844; }
.contacts-main .contact-map-action { border:1px solid #dce7f1; }

.contacts-main .leaflet-bar a,.contacts-main .leaflet-control-attribution a,.contacts-main .contact-map-action { text-decoration:none; }

.contacts-main .leaflet-popup-content a.contact-map-directions { display:inline-flex; align-items:center; min-height:44px; margin-top:16px; padding:10px 16px; border:1px solid #dce7f1; border-radius:8px; color:#073057; background:#deebf4; font-size:14px; font-weight:600; text-decoration:none; transition:background-color .2s,border-color .2s; }
.contacts-main .leaflet-popup-content a.contact-map-directions:hover { background:#fff; border-color:#fff; }
.contacts-main .leaflet-popup-content a.contact-map-directions:focus-visible { outline:2px solid white; outline-offset:3px; }
