.studio-detail {
    row-gap: 30px;
    /* Поправка на закреплённую шапку: 44 px верхней полосы + 54 px основной
       части + 1 px её нижней границы в прокрученном состоянии. Одна переменная
       на липкость ленты и на scroll-margin разделов — два числа в разных
       местах разъезжаются молча. */
    --anchor-offset: 99px;
}
.studio-detail__info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}
.studio-detail__img-wrapper {
    display: block;
    width: 100px;
    height: 100px;
    background: var(--color-dark);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-white-20);
    overflow: hidden;
    position: relative;
}
.studio-detail__img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-position: center center;
    object-fit: contain;
}
/* Имя студии — это h1 страницы. Отступ снимаем: колонка выстроена flex-gap,
   и штатный margin заголовка добавлял бы к нему ещё один. */
.studio-detail__name {
    font-family: var(--font-secondary);
    font-weight: 700;
    font-size: 30px;
    line-height: 1.1;
    color: var(--color-white);
    margin: 0;
}
.studio-detail__helper {
    font-weight: 500;
    font-size: 14px;
    line-height: 1.3;
    color: var(--color-white-50);
}
.studio-detail__cert {
    display: flex;
    align-items: center;
    gap: 20px;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.25;
    color: var(--color-white);
}
.studio-detail__cert:before {
    content: "";
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url("../images/icons/cert-color.svg");
}
.studio-detail__features {
    align-self: stretch;
}
.studio-detail__reviews {
    
}
.studio-detail__contacts {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 24px;
}
.studio-detail__contacts-item {
    font-weight: 400;
    font-size: 14px;
    line-height: 1.4;
    color: var(--color-white);
    position: relative;
}
.studio-detail__contacts-item a:not([class]) {
    color: var(--color-white);
    text-decoration: none;
}
.studio-detail__contacts-item a:not([class]):hover {
    color: var(--color-primary);
}
.studio-detail__contacts-item_icon_marker,
.studio-detail__contacts-item_icon_time,
.studio-detail__contacts-item_icon_phone {
    padding-left: 34px;
}
.studio-detail__contacts-item_icon_marker:before,
.studio-detail__contacts-item_icon_time:before,
.studio-detail__contacts-item_icon_phone:before {
    position: absolute;
    top: 0.1em;
    left: 0;
    font-family: var(--icons);
    font-size: 18px;
    line-height: 1;
    font-style: normal;
    font-weight: normal;
    color: var(--color-grey-light);
}
.studio-detail__contacts-item_icon_marker:before {
    content: "\e905";
}
.studio-detail__contacts-item_icon_time:before {
    content: "\e908";
}
.studio-detail__contacts-item_icon_phone:before {
    content: "\e906";
}
.studio-detail__contacts-item_icon_phone {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}
/* Сайт и почта. В иконочном шрифте шаблона их значков нет — там 13 глифов, ни
   глобуса, ни конверта, — поэтому рисуем вставленной картинкой. Красим её
   маской, а не заливкой внутри самой картинки: цвет остаётся на токене и
   совпадает со значками адреса, режима работы и телефона. */
.studio-detail__contacts-item_icon_site,
.studio-detail__contacts-item_icon_mail {
    padding-left: 34px;
}
.studio-detail__contacts-item_icon_site:before,
.studio-detail__contacts-item_icon_mail:before {
    content: "";
    position: absolute;
    top: 0.1em;
    left: 0;
    width: 18px;
    height: 18px;
    background-color: var(--color-grey-light);
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
}
.studio-detail__contacts-item_icon_site:before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M12 3c2.4 2.7 3.6 5.7 3.6 9s-1.2 6.3-3.6 9c-2.4-2.7-3.6-5.7-3.6-9S9.6 5.7 12 3z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M12 3c2.4 2.7 3.6 5.7 3.6 9s-1.2 6.3-3.6 9c-2.4-2.7-3.6-5.7-3.6-9S9.6 5.7 12 3z'/%3E%3C/svg%3E");
}
.studio-detail__contacts-item_icon_mail:before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.6 7.2 8.4 5.9 8.4-5.9'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.6 7.2 8.4 5.9 8.4-5.9'/%3E%3C/svg%3E");
}
/* Примечание к режиму работы: уточнение под расписанием, а не отдельный
   контакт, поэтому мельче и приглушённее. */
.studio-detail__contacts-note {
    margin-top: 4px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--color-white-70);
}
/* Кнопки соцсетей идут следом за блоком контактов — и в левой колонке, и во
   вкладке «Контакты». Своего отступа у них не было, и значки прилипали к
   последнему телефону. Шаг тот же, что между строками контактов. */
.studio-detail__social {
    margin-top: 24px;
}
.studio-detail__content {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
/* Карта стоит в разделе «Контакты», между заголовком раздела и адресом. Отступ
   снизу задаётся здесь: у контактов в разделе своего верхнего отступа нет
   (.studio-detail__contacts_section обнуляет его), и без этого адрес прилипал бы к
   карте. Шаг тот же, что между строками контактов. */
.studio-detail__map {
    margin-bottom: 24px;
}
.studio-detail__action {
    display: flex;
    gap: 10px;
    width: 100%;
}
.studio-detail__action .btn {
    flex: 0 1 275px;
}
/* Раздел останавливается под лентой, а не под шапкой: к смещению шапки
   добавлены высота ленты (50) и воздух (12). Правило действует и при нативном
   переходе по адресу с якорем, и при программной прокрутке по клику — поэтому
   поправка живёт здесь, а не в JS. */
.studio-detail__section {
    scroll-margin-top: calc(var(--anchor-offset) + 50px + 12px);
}
/* Заголовки разделов — h2. Браузерный верхний отступ снимаем: разрывы между
   разделами задаёт gap контейнера. */
.studio-detail__section-title {
    margin-top: 0;
}
/* Разделы идут подряд одной страницей, граница между ними — воздух. */
.studio-detail__sections {
    display: flex;
    flex-direction: column;
    gap: 50px;
}
/* Контакты в разделе повторяют левую колонку, но начинаются от заголовка
   секции, а не от края блока. */
.studio-detail__contacts_section {
    margin-top: 0;
}
@media screen and (min-width: 768px) {
    .studio-detail {
        --anchor-offset: 135px;
    }
    .studio-detail__sections {
        gap: 70px;
    }
    .studio-detail__img-wrapper {
        width: 240px;
        height: 240px;
    }
    .studio-detail__name {
        font-size: 45px;
    }
    .studio-detail__helper {
        font-size: 16px;
    }
    .studio-detail__cert {
        font-size: 20px;
    }
    .studio-detail__cert:before {
        width: 72px;
        height: 72px;
    }
    .studio-detail__contacts {
        gap: 40px;
    }
    .studio-detail__map {
        margin-bottom: 40px;
    }
    .studio-detail__contacts-item {
        font-size: 18px;
    }
    .studio-detail__action {
        gap: 20px;
    }
    .studio-detail__content {
        gap: 50px;
    }
}
@media screen and (min-width: 992px) {
    .studio-detail__name {
        font-size: 36px;
    }
}
@media screen and (min-width: 1410px) {
    .studio-detail__name {
        font-size: 45px;
    }
}