/* ==========================================================================
   Contacts - инфо-блок (адрес/телефон/email/соцсети, всё кликабельно) +
   карта во всю ширину экрана, без отступов, вплотную к подвалу.
   ========================================================================== */
.contacts-page-info {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: calc(var(--header-height) + 4rem) var(--container-padding) 4rem;
}
.contacts-page-info h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); margin-bottom: 1rem; }
.contacts-page-intro { font-size: 1.05rem; max-width: 60ch; color: #555; margin: 0 0 2.5rem; line-height: 1.6; }

.contacts-page-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 2rem;
    margin-bottom: 2rem;
}
.contacts-page-info-item {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1.5rem;
    border: 1px solid var(--color-stone-line);
    border-radius: var(--radius);
    color: var(--color-text);
    text-decoration: none;
    transition: border-color var(--transition-base), transform var(--transition-base);
}
.contacts-page-info-item:hover {
    border-color: var(--color-teal);
    transform: translateY(-2px);
}
.contacts-page-info-label {
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-brown);
}
.contacts-page-info-value { font-size: 1.15rem; line-height: 1.4; }

.contacts-social { display: flex; gap: 0.8rem; }
.contacts-social-icon {
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 1px solid var(--color-stone-line);
    color: var(--color-text);
    transition: background var(--transition-base), color var(--transition-base), border-color var(--transition-base);
}
.contacts-social-icon svg { width: 20px; height: 20px; }
.contacts-social-icon:hover {
    background: var(--color-teal);
    border-color: var(--color-teal);
    color: #fff;
}

.contacts-map {
    position: relative;
    width: 100%;
    height: 70vh;
    /* Специально без отступа снизу - карта вплотную примыкает к подвалу,
       как и просили. */
}
#yandex-map { width: 100%; height: 100%; }
.contacts-map-no-key {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 2rem var(--container-padding);
    background: var(--color-stone);
    color: #666;
    text-align: center;
    font-size: 0.95rem;
}

@media (max-width: 700px) {
    .contacts-page-info { padding-top: calc(var(--header-height) + 2.5rem); }
    .contacts-map { height: 50vh; }
}
