/* ---------- общие сбросы и типографика ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
    font-family: 'Circe', Arial, sans-serif;
    color: #000;
    background: #fff;
    font-size: 16px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
button { font: inherit; cursor: pointer; }

.af-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ---------- шапка ---------- */
.af-header {
    position: fixed;
    top: 0; left: 0;
    width: 100%;
    background: #fff;
    z-index: 1000;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.af-header__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.af-header__logo img {
    height: 50px;
    display: block;
}

/* ---------- гамбургер ---------- */
.af-burger {
    position: relative;
    width: 30px;
    height: 22px;
    background: none;
    border: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    z-index: 1200;
}
.af-burger span {
    display: block;
    width: 100%;
    height: 3px;
    background: #000;
    transition: transform .3s, opacity .3s;
}
.af-burger.open span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.af-burger.open span:nth-child(2) { opacity: 0; }
.af-burger.open span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* ---------- меню, раскрывающееся СВЕРХУ ВНИЗ ---------- */
.af-menu {
    position: absolute;
    top: 100%;              /* сразу под шапкой */
    left: 0;
    width: 100%;
    background: #fff;
    overflow: hidden;
    max-height: 0;
    transition: max-height .4s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}
.af-menu.open {
    max-height: 500px;      /* достаточно для 4 пунктов */
}
.af-menu ul {
    list-style: none;
    margin: 0;
    padding: 20px 0 30px;
    text-align: center;
}
.af-menu li {
    padding: 12px 0;
}
.af-menu a {
    font: 600 30px/1.2 'Circe', Arial, sans-serif;
    text-decoration: none;
    text-transform: uppercase;
    color: #000;
    transition: opacity .2s;
}
.af-menu a:hover { opacity: .5; }

/* ---------- подвал ---------- */
.af-footer__form {
    text-align: center;
    padding: 45px 0;
}
.af-footer__title {
    font: 600 48px/1.23 'Circe', Arial, sans-serif;
    margin: 0 0 12px;
}
.af-footer__descr {
    font: 400 24px/1.5 'Circe', Arial, sans-serif;
    margin: 0 0 30px;
}
.af-form {
    display: flex;
    justify-content: center;
    gap: 20px;
    max-width: 800px;
    margin: 0 auto;
}
.af-input {
    font: 400 20px/1.55 'Circe', Arial, sans-serif;
    padding: 20px 25px;
    border: 1px solid #000;
    background: #fff;
    outline: none;
    flex: 1;
    max-width: 400px;
}
.af-submit {
    font: 600 16px/1.4 'Circe', Arial, sans-serif;
    padding: 20px 60px;
    border: 0;
    background: #000;
    color: #fff;
    white-space: nowrap;
}
.af-note {
    font: 400 15px/1.55 'Circe', Arial, sans-serif;
    margin-top: 24px;
}
.af-note a {
    color: #666;
    text-decoration: none;
    border-bottom: 1px solid #666;
}
.af-footer__map { height: 355px; }
.af-footer__map iframe { display: block; width: 100%; height: 100%; }
.af-footer__logos {
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.af-footer__logos img {
    width: 1010px;
    max-width: 100%;
    display: block;
}

/* ---------- адаптив ---------- */
@media (max-width: 1200px) {
    .af-footer__title { font-size: 40px; }
}
@media (max-width: 960px) {
    .af-menu a { font-size: 24px; }
}
@media (max-width: 640px) {
    .af-menu a { font-size: 20px; }
    .af-menu li { padding: 10px 0; }
    .af-footer__title { font-size: 30px; }
    .af-footer__descr { font-size: 20px; }
    .af-form { flex-direction: column; align-items: center; }
    .af-input { width: 100%; max-width: none; }
    .af-footer__logos { height: 40px; }
}


.af-footer__map {
    height: 355px;
    position: relative;
}
.af-map {
    width: 100%;
    height: 100%;
    background: #1a1a1a;   /* пока карта грузится — тёмный фон */
}


.af-form__status {
    max-width: 800px;
    margin: 16px auto 0;
    font: 400 15px/1.5 'Circe', Arial, sans-serif;
    min-height: 22px;
}
.af-form__status--ok  { color: #2c7a3c; }
.af-form__status--err { color: #a92842; }

.af-input:disabled,
.af-submit:disabled { opacity: 0.6; cursor: not-allowed; }

.af-map {
    width: 100%;
    height: 100%;
    background: #1a1a1a;
}
.af-footer__map {
    height: 355px;
    position: relative;
}

/* ---------- иконка соцсети в меню ---------- */
.af-menu__social {
    /* Центрируем иконку и добавляем отступы */
    display: flex;
    justify-content: center;
    margin-top: 10px; /* Отступ от последнего пункта меню */
    padding-bottom: 30px; /* Нижний отступ, как у всего меню */
}

.af-menu__social a {
    /* Стили для самой ссылки-иконки */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%; /* Делаем её круглой */
    color: #000; /* Цвет иконки */
    background-color: #f5f5f5; /* Светло-серый фон */
    transition: opacity 0.2s ease-in-out, background-color 0.2s ease-in-out;
    text-decoration: none; /* Убираем подчеркивание, если оно есть */
}

.af-menu__social a:hover {
    /* Эффект при наведении */
    opacity: 0.9;
    background-color: #e0e0e0;
}