@font-face {
    font-family: 'TT Lakes';
    src: url('TTLakes-Bold.eot');
    src: local('TT Lakes Bold'), local('TTLakes-Bold'),
        url('./fonts/TTLakes-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'TT Lakes';
    src: url('TTLakes-Medium.eot');
    src: local('TT Lakes Medium'), local('TTLakes-Medium'),
        url('./fonts/TTLakes-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'TT Lakes';
    src: url('TTLakes-Regular.eot');
    src: local('TT Lakes Regular'), local('TTLakes-Regular'),
        url('./fonts/TTLakes-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    /* Чтобы padding не увеличивал размер элементов */
}

body {
    display: flex;
    flex-direction: column;
    /* display: grid;
    grid-template: 88px 509px / 320px; */
    margin: 0;
    font-family: 'TT Lakes', sans-serif;
    font-size: 16px;
    width: 320px;
}

.header {
    display: flex;
    justify-content: flex-start;
    height: 87px;
    box-sizing: border-box;
    border-bottom: 1px solid #D9FFF5;
}

.main {
    background-color: #F8F8F8;
    /* height: 509px; */
}

.burger, .checkstatus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 24px;
    margin-left: 16px;
    background-color: transparent;
    border: 0.5px solid rgba(0, 0, 0, 0);
}

/* .ic-burger {
    margin-top: -2px;
    margin-left: -7px;
} */

.group {
    position: relative;
    width: 96.55px;
    height: 50.81px;
    box-sizing: border-box;
    margin-top: 18.59px;
    margin-left: 16.73px;
    border: 0.5px solid white;
}

.divider-1 {
    display: none;
    margin-top: 28px;
    margin-left: 16.72px;
    border-left: 2px solid #EAEAEA;
    height: 32px;
    border-radius: 1px;
}

.divider-2 {
    margin-top: 28px;
    margin-left: 16.72px;
    border-left: 2px solid #EAEAEA;
    height: 32px;
    border-radius: 1px;
}

.profile, .chat, .call {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 24px;
    margin-left: 16px;
    background-color: transparent;
    border: 0.5px solid rgba(0, 0, 0, 0);
}

/* .chat {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 24px;
    margin-left: 16px;
    background-color: transparent;
    border: 0.5px solid rgba(0, 0, 0, 0);
} */

/* .call {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 24px;
    margin-left: 16px;
    background-color: transparent;
    border: 0.5px solid rgba(0, 0, 0, 0);
} */

.repair {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 24px;
    margin-left: 20px;
    background-color: transparent;
    border: 0.5px solid rgba(0, 0, 0, 0);
}

/* .checkstatus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 24px;
    margin-left: 16px;
    background-color: transparent;
    border: 0.5px solid rgba(0, 0, 0, 0);
} */

.title {
    width: 304px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 24px;
    align-content: center;
    padding-left: 16px;
    font-weight: 700;
    font-size: 28px;
    line-height: 40px;
    letter-spacing: -0.6px;
    /* border-left: 4px solid #41F6D7;
    border-radius: 3px; */
}

.title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 112px;
    /* transform: translateY(); */
    width: 4px;
    height: 40px;
    background-color: #41F6D7;
    border-radius: 0 4px 4px 0;
    opacity: 0;
    transition: 0.3s;
}

.title:hover::before {
    opacity: 1;
}

.nav-wrapper {
    position: relative;
    /* Чтобы псевдоэлемент привязывался к этому блоку */
    overflow: hidden;
    /* Скрываем всё, что вылезет за пределы */
    font-weight: 500;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.2px;
    margin-top: 24px;
    margin-left: 16px;
}

.nav-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 40px;
    pointer-events: none;
    /* ВАЖНО: чтобы через это облако можно было кликать на ссылки */
    background: linear-gradient(to right, transparent, #F8F8F8);
    /* Градиент от прозрачного к цвету фона сайта */
    /* z-index: 2; Поднимаем над ссылками */
}

.nav-links {
    display: flex;
    /* align-items: center;
    justify-content: space-around; */
    /* height: 40px; */
    /* gap: 12px; */
    overflow-x: auto;
    /* Включает прокрутку пальцем/тачпадом */
    white-space: nowrap;
    /* Все в одну линию, запрет на перенос строки. Если мы хотим разрешить тексту и блокам переноситься на новые строки, то используем white-space: normal; — стирает мобильный запрет nowrap. Теперь текст внутри кнопок или сами блоки могут спокойно перепрыгивать на следующую строку, как только дойдут до правого края контейнера. */
    list-style: none;
    /* Убираем маркеры (можно поменять маркеры на свои с помощью list-style-type: "🚀") */
    scrollbar-width: none;
    /* Прячем полосу прокрутки */
}

.nav-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* height: 40px; */
    /* flex-shrink: 0; Чтобы ширина не сжималась. Чтобы разрешить элементам сжиматься или адаптироваться например под ПК сетку используем flex-shrink: 1; flex-shrink: 0; — Элемент вообще не сжимается. Он сохраняет свои жесткие размеры, даже если из-за этого появится горизонтальная прокрутка страницы.flex-shrink: 1; — Стандартное значение по умолчанию. Все элементы сжимаются равномерно и одинаково, пытаясь уместиться в строку. flex-shrink: 2; (и больше) — Элемент будет сжиматься в два раза быстрее и сильнее, чем его сосед с flex-shrink: 1; Оно задает не просто запрет или разрешение на сжатие, а определяет коэффициент (пропорцию) сжатия элементов относительно друг друга, если им не хватает места в контейнере. Число в flex-shrink — это степень «уступчивости» элемента. Чем больше цифра, тем сильнее элемент сжимается и уступает место своим соседям по строке. Отрицательные значения (например, -1) использовать нельзя. Есть противополжность — flex-grow (который отвечает за растягивание элементов на свободное место) */
    padding: 8px 15px;
    text-decoration: none;
    /* Ссылка выглядит как обычный текст, убираем стандартное визуальное оформление текста, которое браузер добавляет автоматически (чаще всего применяют к ссылкам <a>, убирает подчёркивание, убирает другие линии) Ещё можно использовать, чтобы сделать например волнистую красную линию под текстом: text-decoration: underline red wavy; или создать эффект зачёркнутой цены: text-decoration: line-through; */
    color: #7E7E82;
    /* Цвет текста */
    /* padding: 8px 16px; */
    border: 2px solid transparent;
    /* transparent - прозрачный фон */
    border-radius: 6px;
    /* Делает закругление рамки */
    transition: all 0.2s ease;
    /* Плавность изменений, all - указывает какие свойства будут анимироваться, в данном случае все: цвет текста, фон, ширина, прозрачность, рамка. 0.2s - как долго? Это длительнсть анимации. ease - с какой динамикой? Это временная функция, которая определяет характер движения (скорость в начале и конце): ease: (по умолчанию) — плавный старт, быстрое ускорение в середине и плавное замедление в конце. Выглядит наиболее естественно.linear: движение с одинаковой скоростью от начала до конца (выглядит немного механически).ease-in: медленный старт, резкий конец.ease-out: резкий старт, медленный конец. */
}

/* Эффект стилей при :hover всегда должен быть на первом элементе (по умолчанию), в данном лучае на элементе li (было на элементе a) */
.nav-links li:hover {
    background-color: #FFFFFF;
    border: 2px solid #B8FFEC;
    border-radius: 6px;
    /* border-color: #B8FFEC; */
    color: #7E7E82;
}

.nav-links a:focus {
    outline: none;
    /* Убираем рамку только при обычном фокусе (мышкой) с использованием Shift для прокрутки колёсиком */
}

.nav-links {
    order: 1;
}

.button-2-2 {
    order: -2;
}

.button-2-1 {
    order: -1;
}

/* .button-1 {
    order: ;
} */

/* .nav-links li:nth-child(1) a {
    width: 246px;  Задаёт ширину ссылкам в навигационном меню 
} */

.content-block {
    width: 320px;
}

.preview-content-text {
    display: block;
    overflow: hidden;
    width: 288px;
    /* height: 90px; */
    margin-top: 24px;
    margin-left: 16px;
    font-weight: 400;
    font-size: 14px;
    line-height: 18px;
    /* Высота одной строки текста — 18px */
    letter-spacing: 0.2px;
    transition: max-height 0.3s ease-in-out;
    /* ease-in-out; интересно то, что даёт задержку при сворачивании причём самому триггеру, а не тексту */
    /* Плавность при изменении высоты */
    max-height: 90px;
    /* НА мобильном 5 строк * 18px = 90px */
}

.read-more-trigger {
    display: flex;
    align-items: center;
    cursor: pointer;
    list-style: none;
    /* Прячем дефолтную стрелочку */
    user-select: none;
    /* Запрещаем случайное выделение текста при клике */
    /* gap: 8px; */
    white-space: nowrap;
    width: 132px;
    height: 24px;
    margin-top: 16px;
    /* margin-left: 16px; */
    text-decoration: none;
    color: #1B1C21;
    font-weight: 500;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.2px;
    transition: all 0.3s ease;
    /* transition не наследуется. Если прописал плавность только для родителя (.read-more), то плавно будет двигаться только сама кнопка. Псевдоэлементы (::before и ::after) — это, хоть и «дети» ссылки, но технически отдельные элементы. Чтобы стрелочка или галочки не «дергались», им нужно прописать transition персонально. Это случается по одной простой причине: если задал transform: translateX(5px) самой ссылке (.read-more, .read-more:hover), то двигается весь контейнер целиком вместе со всем содержимым (текстом и обеими иконками). В этом случае псевдоэлементам даже не нужен свой transition, потому что они — как пассажиры в автобусе: автобус плавно поехал, и они едут вместе с ним. Но вот когда это сломается:Если решишь добавить дополнительное движение только для стрелочки (например, чтобы она отпрыгивала чуть дальше текста), вот тогда она начнет «телепортироваться», и придется добавить ей персональный transition. Если хочешь, чтобы «пассажир» не просто ехал в автобусе, а еще и сам внутри него танцевал, ему нужны свои инструкции. Раз стрелка начала «телепортироваться», просто добавь ей её собственный transition. Теперь, когда понимаешь механику, код станет по-настоящему профессиональным. */
}

.read-more-trigger::before {
    content: '';
    display: inline-block;
    flex-shrink: 0;
    /* ЗАПРЕЩАЕМ СЖАТИЕ */
    width: 24px;
    height: 24px;
    margin-right: 8px;
    background-image: url(./images/expand.svg);
    background-size: contain;
    /* Это свойство отвечает за масштаб иконки. Что делает: Значение "contain" умещает всю картинку целиком внутри заданного блока ::before. Эффект: Картинка растягивается или сжимается так, чтобы она была видна полностью, без обрезки краев. Она никогда не вылезет за границы твоих 24x24px */
    background-repeat: no-repeat;
    /* Это свойство отвечает за повторение. Что делает: Значение "no-repeat" запрещает браузеру размножать картинку «плиткой». Эффект: По умолчанию, если картинка меньше блока, браузер заполнит ею всё пространство (как обои на рабочем столе). no-repeat говорит: «Нарисуй картинку только один раз». */
    background-position: center;
    /* Это свойство отвечает за выравнивание. Что делает: Значение "center" ставит картинку ровно по центру выделенной области. Эффект: Если область для иконки чуть шире или выше самой картинки, она не прижмется к углу, а будет стоять аккуратно посередине. */
}

.read-more-trigger:hover {
    /* Двигается ВСЁ. Когда вешаешь transform прямо на ссылку, при наведении смещается вся кнопка целиком: и галочки (::before), и текст, и стрелочка (::after), если она есть. Визуальный эффект: Кнопка как бы «плывет» в сторону. */
    opacity: 0.8;
    transform: translateX(5px) translateY(5px);
}

.read-more-trigger:hover::before {
    /* Двигается только ХВОСТ. Здесь даешь команду: «Когда я навожу на кнопку, найди её псевдоэлемент (стрелочку) и сдвинь только его». Визуальный эффект: Сама кнопка и текст стоят на месте, а стрелочка в конце делает милое движение «прыжок» вправо. Это выглядит более тонко и профессионально. */
    transform: scale(1.5);
    /* Увеличивает псевдоэлемент иконку */
    /* transform: translateY(5px); */
    transition: all 0.3s ease;
}

.read-more-container {
    /* display: block;
    overflow: hidden; */
    width: 288px;
    background-color: #F8F8F8;
    margin-left: 16px;
    /* Делаем дополнительный отступ раскрывающемуся тексту 16px */
    font-weight: 400;
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 0.2px;
    animation: slideDown 0.4s ease-out;
    /* Анимация плавного выпадения */
}

.read-more-container[open] .preview-content-text {
    animation: slideDown 0.4s ease-out forwards;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Когда details ОТКРЫВАЕТСЯ, мы прячем оригинальный текст "Читать дальше" */
.read-more-container[open] .read-more-trigger-text {
    display: none;
}

/* И на его место через псевдоэлемент ::after вставляем слово "Свернуть" */
.read-more-container[open] .read-more-trigger::after {
    content: 'Свернуть ↓';
    /* Меняем стрелку на "вниз" и пишем новое слово */
    transform: none !important;
    /* Сбрасываем ховер-сдвиг, почему-то не работает */
}

.read-more-container[open] .read-more-trigger::before {
    content: '↓';
    /* Когда details открывается, добавляем (меняем) стрелочку на "вниз" перед триггером */
    transform: none;
}

/* На всякий случай точечно отключаем сдвиг при наведении на ОТКРЫТУЮ кнопку */
.read-more-container[open] .read-more-trigger:hover::after {
    transform: translateY(2px);
    /* Вместо сдвига вправо можно сделать легкое милое покачивание вниз на 2px, почему-то тоже не работатет */
}

/* Находим анонс через :has() и полностью убираем лимит высоты, раскрывая его */
.content-block:has(.read-more-container[open]) .preview-content-text {
    max-height: 2000px;
    /* Задаем заведомо большую высоту для полного раскрытия */
}

.stand-cps {
    /* width: 320px;
    height: 176px; */
    margin-top: 16px;
}

.preview-content-text p {
    margin-bottom: 18px;
    /* Делаем нижний отступ СТРОГО равным высоте одной строки 18px (line-height: 18px;) */
    text-indent: 20px;
    /* Делаем отступ (красную строку). Сдвиг первой строки каждого абзаца на 20px */
}

.preview-content-text p:last-child {
    margin-bottom: 0;
    /* Убираем отступ у самого последнего абзаца, чтобы он не добавлял лишний хвост снизу */
}

@media (min-width: 768px) {
    body {
        width: 768px;
        /* grid-template: 88px 416px / 768px; */
    }

    .header {
        display: flex;
        justify-content: space-between;
    }

    .divider-1 {
        display: block;
    }

    .group {
        margin-right: auto;
    }

    .profile,
    .chat,
    .call {
        display: inline-flex;
    }

    .checkstatus {
        margin-right: 24px;
    }

    .repair {
        /* margin-right: 16px; */
    }

    .nav-wrapper {
        margin-top: 32px;
        margin-left: 24px;
    }

    .title {
        width: 257px;
        padding-left: 24px;
    }

    .content {
        display: inline-flex;
        font-weight: 400;
        font-size: 14px;
        line-height: 20px;
        letter-spacing: 0.2px;
    }

    .preview-content-text,
    .read-more-container {
        width: 312px;
        line-height: 20px;
        margin-top: 32px;
        margin-left: 24px;
    }

    .content-block:not(.content-block:has(.read-more-container[open])) .preview-content-text {
        max-height: 160px;
    }

    .stand-cps {
        margin-top: 32px;
        margin-left: 48px;
    }

}

@media (min-width: 1120px) {
    body {
        width: 1120px;
        /* grid-template: 0 535px / 1120px; */
        position: relative;
        background: #F8F8F8;
    }

    .header {
        position: relative;
        background: transparent;
        padding: 0;
        height: 0;
    }

    .title {
        width: 266px;
        padding-left: 33px;
        margin-top: 42px;
    }

    .title::before {
        top: 42px;
        width: 3px;
        border-radius: 2px 2px 2px 2px;
    }

    .burger,
    .group,
    .profile,
    .chat,
    .call,
    .divider-1,
    .divider-2 {
        display: none;
    }

    .repair {
        position: absolute;
        display: inline-flex;
        margin-top: 42px;
        margin-left: 849px;
    }

    .repair::before {
        content: 'Оставить заявку';
        position: absolute;
        /* Вырываем из потока верстки. ТЕКСТ: Делаем его "призраком", который не толкает кнопку */
        /* display: inline-block; */
        right: 100%;
        /* ЕСЛИ ТЕКСТ ДОЛЖЕН БЫТЬ СЛЕВА ОТ КНОПКИ: Встает ровно у левой границы кнопки */
        margin-right: 8px;
        /* Зазор между текстом и кнопкой. Или можно добавить в свойство right: 125%; значение и убрать margin-right: 8px; - тоже будет зазор */
        flex-shrink: 0;
        white-space: nowrap;
        width: 125px;
        font-weight: 500;
        font-size: 16px;
        line-height: 24px;
        letter-spacing: -0.2px;
    }

    .checkstatus {
        position: absolute;
        display: inline-flex;
        margin-top: 42px;
        margin-left: 1049px;
    }

    .checkstatus::before {
        content: 'Статус ремонта';
        position: absolute;
        /* display: inline-block; */
        right: 100%;
        margin-right: 9px;
        flex-shrink: 0;
        white-space: nowrap;
        width: 119px;
        font-weight: 500;
        font-size: 16px;
        line-height: 24px;
        letter-spacing: -0.2px;
    }

    .nav-wrapper {
        position: relative;
        /* align-items: center;
        justify-content: stretch; */
        overflow: visible; /* Отменяем скрытие. text-overflow и overflow больше ничего не прячут. overflow: visible; — сообщает браузеру: «Больше не нужно прятать контент, который вылезает за границы. Покажи его полностью». */
        width: 1063px;
        height: 82px;
        margin-top: 8px;
        margin-left: 33px;
    }

    .nav-wrapper::after {
        display: none;
    }

    .nav-links {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap; /* Говорим флексам: если элемент не влезает в ширину экрана — перенеси его вниз. flex-wrap: wrap; — ключевой инструмент для флекс-сеток. Если у нас в меню станет 15 кнопок, они не будут сжиматься в кашу и не создадут прокрутку, а красиво выстроятся в 2 или 3 ровных ряда. */
    }

    .button-2-2 {
        order: 0;
    }

    .button-2-1 {
        display: none;
    }

    .content {
        display: inline-flex;
        font-weight: 400;
        font-size: 14px;
        line-height: 20px;
        letter-spacing: 0.2px;

    }

    .content-block {
        width: 514px;
    }

    .preview-content-text,
    .read-more-container {
        width: 490px;
        /* line-height: 20px; */
        margin-top: 16.22px;
        margin-left: 24px;
    }

    .content-block:not(.content-block:has(.read-more-container[open])) .preview-content-text {
        max-height: 160px;
    }

    .stand-cps {

        margin-top: 7px;
        margin-left: 36px;
        /* width: 532;
        height: 307; */
    }


}