:root {

    --bg-primary: #05070b;

    --bg-secondary: #0b1016;

    --bg-tertiary: #11161f;

    --bg-surface: linear-gradient(180deg, rgba(18, 22, 30, 0.86) 0%, rgba(7, 10, 15, 0.96) 100%);

    --surface-soft: rgba(255, 255, 255, 0.04);

    --surface-strong: rgba(255, 255, 255, 0.08);

    --border-soft: rgba(255, 255, 255, 0.08);

    --border-gold: rgba(243, 201, 105, 0.26);

    --text-primary: #f8f6f1;

    --text-secondary: rgba(248, 246, 241, 0.68);

    --text-muted: rgba(248, 246, 241, 0.48);

    --gold-primary: #f3c969;

    --gold-bright: #ffe3a0;

    --gold-dark: #b9802a;

    --success-soft: rgba(0, 200, 81, 0.14);

    --warning-soft: rgba(255, 193, 7, 0.14);

    --danger-soft: rgba(255, 82, 82, 0.14);

    --shadow-soft: 0 18px 38px rgba(0, 0, 0, 0.22);

    --shadow-deep: 0 30px 80px rgba(0, 0, 0, 0.42);

}



html {

    scroll-behavior: smooth;

    scroll-padding-top: 120px;

}



body {

    min-height: 100vh;

    color: var(--text-primary);

    /* Базовый тёмный фон без верхних «свечений»: раньше золотой radial-glow
       (circle at 12% 18%) подсвечивал жёлтым первую секцию под hero
       («Когда нужно обращаться»). Убрали — теперь все .section одинаково
       тёмные, как «Типы трансмиссий». Свечения для hero у него свои. */
    background:

        linear-gradient(180deg, #05070b 0%, #070b11 35%, #04060a 100%);

    overflow-x: hidden;

}



body::before,

body::after {

    content: '';

    position: fixed;

    inset: 0;

    pointer-events: none;

    z-index: 0;

}



body::before {

    background: linear-gradient(transparent 0%, rgba(255, 255, 255, 0.015) 50%, transparent 100%);

    opacity: 0.5;

}



body::after {

    background-image:

        linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),

        linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);

    background-size: 84px 84px;

    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.24), transparent 72%);

}



main {

    position: relative;

    z-index: 1;

}



::selection {

    background: rgba(243, 201, 105, 0.28);

    color: #fff;

}



a,

button,

input,

select,

textarea {

    transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease, opacity 0.25s ease;

}



.gold-button,

.gold-button-outline,

.auth-button,

.btn-icon {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

}



a:focus-visible,

button:focus-visible,

input:focus-visible,

select:focus-visible,

textarea:focus-visible {

    outline: 2px solid rgba(164, 186, 223, 0.75);

    outline-offset: 2px;

}



.container {

    max-width: 1520px;

    padding: 0 32px;

}



.gold {

    background: linear-gradient(135deg, #ffe2a0 0%, #f3c969 42%, #b9802a 100%);

    -webkit-background-clip: text;

    background-clip: text;

    -webkit-text-fill-color: transparent;

    color: transparent;

}



.navbar {

    position: fixed;

    left: 0;

    right: 0;

    top: 16px;

    z-index: 1100;

    width: min(1520px, calc(100% - 32px));

    margin: 16px auto 0;

    padding: 14px 0;

    border: 1px solid var(--border-soft);

    border-radius: 28px;

    background: rgba(6, 10, 16, 0.72);

    backdrop-filter: blur(22px);

    box-shadow: var(--shadow-deep);

    transition: top 0.35s ease, width 0.35s ease, margin 0.35s ease, padding 0.35s ease,
        border-radius 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;

}



/* Док-режим: навбар «приземляется» к верху, когда hero уходит из вида.
   Растягивается во всю ширину, без отступов и скруглений. Класс .scrolled
   вешает main.js через IntersectionObserver на hero-секцию. */
.navbar.scrolled {

    top: 0;

    margin-top: 0;

    width: 100%;

    padding: 10px 0;

    border-radius: 0;

    border-left-color: transparent;

    border-right-color: transparent;

    border-top-color: transparent;

    background: rgba(6, 10, 16, 0.9);

    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);

}



.navbar .container {

    max-width: none;

}



.nav-wrapper {

    display: flex;

    align-items: center;

    justify-content: space-between;

    flex-wrap: nowrap;

    position: relative;

    min-height: 70px;

    gap: 28px;

}



.logo {

    gap: 14px;

}



.logo-img {

    height: 56px;

    width: 56px;

    padding: 8px;

    border-radius: 18px;

    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.03) 100%);

    border: 1px solid rgba(255, 255, 255, 0.08);

    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);

    object-fit: contain;

}



.logo-text {

    display: flex;

    flex-direction: column;

    font-size: 1.2rem;

    line-height: 1.02;

    letter-spacing: -0.03em;

}



.logo-phone {

    display: none;

    margin-top: 8px;

    font-size: 0.72rem;

    letter-spacing: 0.18em;

    text-transform: uppercase;

    color: rgba(248, 246, 241, 0.55);

}



.nav-menu {

    align-items: center;

    gap: 0.5rem;

    flex-wrap: wrap;

}



.nav-menu li {

    display: flex;

}



.nav-menu a {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding: 0.8rem 1rem;

    border-radius: 999px;

    color: rgba(248, 246, 241, 0.72);

    border: 1px solid transparent;

}



.nav-menu a:hover {

    color: var(--text-primary);

    background: rgba(255, 255, 255, 0.05);

    border-color: rgba(255, 255, 255, 0.08);

}



.nav-actions {

    display: flex;

    align-items: center;

    gap: 0.75rem;

    margin-left: auto;

}



.nav-call-button {

    white-space: nowrap;

}



.nav-call-button .material-icons {

    font-size: 18px;

}



.btn-icon {

    width: 46px;

    height: 46px;

    padding: 0;

    flex-shrink: 0;

    border: 1px solid rgba(255, 255, 255, 0.08);

    background: rgba(255, 255, 255, 0.04);

    color: var(--text-primary);

}



.btn-icon:hover {

    background: rgba(243, 201, 105, 0.12);

    border-color: rgba(243, 201, 105, 0.28);

    color: var(--gold-primary);

    transform: translateY(-1px);

}



.mobile-menu-btn {

    display: none;

    width: 46px;

    height: 46px;

    padding: 0;

    flex-shrink: 0;

    align-items: center;

    justify-content: center;

    border-radius: 14px;

    border: 1px solid rgba(255, 255, 255, 0.08);

    background: rgba(255, 255, 255, 0.04);

    color: var(--text-primary);

    cursor: pointer;

    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;

}



.mobile-menu-btn:hover {

    border-color: rgba(243, 201, 105, 0.28);

    background: rgba(243, 201, 105, 0.08);

    color: var(--gold-primary);

}



/* Анимированная иконка: три линии плавно складываются в крестик.
   Состояние задаётся атрибутом aria-expanded на кнопке (см. main.js). */
.menu-icon {

    pointer-events: none;

}



.menu-icon .menu-line {

    transform-box: view-box;

    transform-origin: center;

    transition: transform 0.3s cubic-bezier(0.5, 0.85, 0.25, 1.1);

}



.menu-icon .menu-line-top {

    transform: translateY(-7px);

}



.menu-icon .menu-line-mid {

    transition-timing-function: cubic-bezier(0.5, 0.85, 0.25, 1.8);

}



.menu-icon .menu-line-bot {

    transform: translateY(7px);

}



.mobile-menu-btn[aria-expanded="true"] .menu-line-top {

    transform: translateY(0) rotate(315deg);

}



.mobile-menu-btn[aria-expanded="true"] .menu-line-mid {

    transform: rotate(45deg);

}



.mobile-menu-btn[aria-expanded="true"] .menu-line-bot {

    transform: translateY(0) rotate(135deg);

}



.mobile-header-phone {

    display: none;

}



.mobile-only {

    display: none;

}



.nav-menu li.mobile-only {

    display: none;

}



.gold-button,

.gold-button-outline,

.auth-button {

    border-radius: 999px;

    font-weight: 700;

    padding: 0.95rem 1.55rem;

}



.gold-button,

.auth-button {

    background: linear-gradient(135deg, #f3c969 0%, #b9802a 100%);

    color: #0b0d11;

    border: 1px solid rgba(255, 255, 255, 0.18);

    box-shadow: 0 18px 34px rgba(185, 128, 42, 0.22);

}



.gold-button:hover,

.auth-button:hover {

    background: linear-gradient(135deg, #ffe3a0 0%, #ca9034 100%);

    color: #05070b;

    transform: translateY(-2px);

    box-shadow: 0 22px 44px rgba(185, 128, 42, 0.28);

}



.gold-button-outline {

    background: rgba(255, 255, 255, 0.04);

    color: var(--text-primary);

    border: 1px solid rgba(255, 255, 255, 0.08);

    backdrop-filter: blur(18px);

}



.gold-button-outline:hover {

    border-color: rgba(243, 201, 105, 0.28);

    color: var(--gold-primary);

    background: rgba(243, 201, 105, 0.08);

    transform: translateY(-2px);

}



.btn-large {

    padding: 1.05rem 1.75rem;

}



.full-width {

    width: 100%;

}



.callback-open-btn {

    cursor: pointer;

}



body.modal-open {

    overflow: hidden;

}



.callback-modal {

    position: fixed;

    inset: 0;

    z-index: 2500;

    display: none;

    align-items: center;

    justify-content: center;

    padding: 22px;

}



.callback-modal.active {

    display: flex;

}



.callback-modal-backdrop {

    position: absolute;

    inset: 0;

    background: rgba(3, 6, 10, 0.78);

    backdrop-filter: blur(10px);

}



.callback-modal-dialog {

    position: relative;

    z-index: 1;

    width: min(100%, 470px);

    padding: 30px;

    border-radius: 26px;

    border: 1px solid rgba(255, 255, 255, 0.12);

    background: linear-gradient(180deg, rgba(16, 21, 29, 0.94) 0%, rgba(7, 10, 15, 0.98) 100%);

    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.5);

}



.callback-modal-close {

    position: absolute;

    top: 14px;

    right: 14px;

    width: 38px;

    height: 38px;

    border-radius: 12px;

    border: 1px solid rgba(255, 255, 255, 0.1);

    background: rgba(255, 255, 255, 0.04);

    color: rgba(248, 246, 241, 0.85);

}



.callback-modal-title {

    margin: 0 0 10px;

    font-size: 1.65rem;

}



.callback-modal-subtitle {

    margin: 0 0 20px;

    color: var(--text-secondary);

}



.callback-modal-form {

    display: grid;

    gap: 12px;

}



.callback-modal-status {

    min-height: 22px;

    font-size: 0.95rem;

    color: rgba(203, 246, 212, 0.95);

}



.callback-modal-status.error {

    color: #ffb4b4;

}



.hero {

    position: relative;

    min-height: calc(100vh - 32px);

    padding: 148px 0 92px;

    background:

        linear-gradient(115deg, rgba(4, 7, 12, 0.94) 15%, rgba(6, 10, 16, 0.76) 52%, rgba(4, 7, 12, 0.92) 100%),

        radial-gradient(circle at top right, rgba(243, 201, 105, 0.14), transparent 28%),

        url('./background.jpg') center/cover no-repeat;

    overflow: hidden;

    border-bottom: 1px solid rgba(255, 255, 255, 0.06);

}



.hero-overlay {

    background: linear-gradient(90deg, rgba(3, 5, 8, 0.78) 0%, rgba(4, 7, 12, 0.38) 54%, rgba(3, 5, 8, 0.82) 100%);

}



.hero-orb {

    position: absolute;

    width: 480px;

    height: 480px;

    border-radius: 50%;

    filter: blur(90px);

    opacity: 0.38;

    pointer-events: none;

}



.hero-orb-left {

    left: -140px;

    top: 10%;

    background: rgba(243, 201, 105, 0.18);

}



.hero-orb-right {

    right: -120px;

    bottom: -60px;

    background: rgba(104, 124, 255, 0.18);

}



.hero-shell {

    position: relative;

    z-index: 2;

}



.hero-grid {

    display: grid;

    grid-template-columns: 1fr;

    gap: 42px;

    align-items: center;

    justify-items: center;

}



.hero-copy {

    width: 100%;

    max-width: 980px;

    margin: 0 auto;

    display: flex;

    flex-direction: column;

    align-items: center;

    text-align: center;

}



.hero-badge,

.section-badge,

.auth-badge {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 10px 18px;

    border-radius: 999px;

    border: 1px solid rgba(243, 201, 105, 0.18);

    background: rgba(243, 201, 105, 0.08);

    color: var(--gold-primary);

    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);

}



.hero-badge {

    margin-bottom: 28px;

}



.hero-badge .material-icons,

.section-badge .material-icons,

.auth-badge .material-icons {

    font-size: 18px;

    color: var(--gold-primary);

}



.hero-title {

    font-size: clamp(3.6rem, 8vw, 7.4rem);

    line-height: 0.98;

    letter-spacing: -0.05em;

    margin-bottom: 26px;

    max-width: 13ch;

    margin-left: auto;

    margin-right: auto;

    padding-inline: 0.06em;

}



.hero-title .gold {

    display: inline-block;

    padding-right: 0.08em;

}



.hero-subtitle {

    font-size: 1.32rem;

    line-height: 1.7;

    color: rgba(248, 246, 241, 0.78);

    margin-bottom: 32px;

    max-width: 680px;

    margin-left: auto;

    margin-right: auto;

}



.hero-features {

    gap: 12px;

    margin-bottom: 32px;

    justify-content: center;

}



.feature {

    padding: 12px 16px;

    border-radius: 999px;

    border: 1px solid rgba(255, 255, 255, 0.08);

    background: rgba(255, 255, 255, 0.05);

    color: rgba(248, 246, 241, 0.82);

    backdrop-filter: blur(16px);

}



.feature .material-icons {

    font-size: 18px;

    color: var(--gold-primary);

}



.hero-actions {

    gap: 14px;

    margin-bottom: 32px;

    justify-content: center;

}



.hero-stats {

    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 18px;

    margin: 0 auto;

    width: 100%;

    max-width: 920px;

}



.hero-stats .stat-item {

    padding: 20px 22px;

    border-radius: 24px;

    border: 1px solid rgba(255, 255, 255, 0.08);

    background: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.03) 100%);

    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.18);

    min-height: 118px;

    text-align: center;

}



.hero-stats .stat-value {

    font-size: clamp(2rem, 4vw, 2.9rem);

    line-height: 1;

    color: var(--gold-primary);

    text-shadow: 0 0 24px rgba(243, 201, 105, 0.22);

}



.hero-stats .stat-label {

    margin-top: 12px;

    font-size: 1.02rem;

    color: rgba(248, 246, 241, 0.60);

}



.hero-visual {

    position: relative;

    min-height: 560px;

    display: grid;

    justify-items: end;

    align-content: center;

    gap: 16px;

}



.hero-panel {

    position: relative;

    z-index: 2;

    width: min(100%, 560px);

    padding: 32px;

    border-radius: 32px;

    background: linear-gradient(180deg, rgba(16, 21, 29, 0.90) 0%, rgba(7, 10, 15, 0.96) 100%);

    border: 1px solid rgba(255, 255, 255, 0.09);

    box-shadow: 0 36px 70px rgba(0, 0, 0, 0.42);

    backdrop-filter: blur(24px);

    overflow: hidden;

}



.hero-panel::before,

.form-card::before,

.auth-card::before,

.auth-info::before {

    content: '';

    position: absolute;

    inset: 0;

    background: radial-gradient(circle at top right, rgba(243, 201, 105, 0.16), transparent 34%), linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 45%);

    pointer-events: none;

}



.hero-panel-top {

    position: relative;

    z-index: 1;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 16px;

    margin-bottom: 24px;

}



.hero-panel-kicker {

    padding: 8px 12px;

    border-radius: 999px;

    background: rgba(243, 201, 105, 0.12);

    color: var(--gold-primary);

    font-size: 0.84rem;

    font-weight: 700;

    letter-spacing: 0.08em;

    text-transform: uppercase;

}



.hero-panel-status {

    font-size: 0.9rem;

    color: rgba(248, 246, 241, 0.66);

}



.hero-panel-title {

    position: relative;

    z-index: 1;

    font-size: 1.72rem;

    line-height: 1.2;

    font-weight: 700;

    margin-bottom: 22px;

    max-width: 15ch;

}



.hero-panel-list {

    position: relative;

    z-index: 1;

    display: grid;

    gap: 14px;

    margin-bottom: 26px;

}



.hero-panel-item {

    display: flex;

    gap: 14px;

    align-items: flex-start;

    padding: 15px 16px;

    border-radius: 20px;

    background: rgba(255, 255, 255, 0.04);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.hero-panel-item .material-icons {

    font-size: 22px;

    color: var(--gold-primary);

    margin-top: 2px;

}



.hero-panel-item strong {

    display: block;

    margin-bottom: 4px;

    font-size: 1rem;

}



.hero-panel-item div span,

.trust-item > div span,

.review-author div span,

.brand-item,

.brands-stat,

.transmission-features li,

.faq-answer,

.benefit-item p,

.footer-info p,

.contact-list li,

.hours-list li,

.footer-bottom,

.auth-info-text,

.auth-feature {

    color: var(--text-secondary);

}



.hero-service-grid {

    position: relative;

    z-index: 1;

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px;

}



.hero-service-item {

    padding: 16px 18px;

    border-radius: 20px;

    background: rgba(255, 255, 255, 0.05);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.hero-service-item strong {

    display: block;

    margin-bottom: 4px;

    font-size: 1.2rem;

}



.hero-service-item span {

    color: rgba(248, 246, 241, 0.62);

    font-size: 0.9rem;

}



.hero-floating-stack {

    width: min(100%, 560px);

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 14px;

}



.hero-floating-card {

    position: relative;

    display: flex;

    gap: 12px;

    align-items: flex-start;

    padding: 16px 18px;

    border-radius: 20px;

    background: linear-gradient(180deg, rgba(14, 18, 24, 0.88) 0%, rgba(7, 10, 15, 0.94) 100%);

    border: 1px solid rgba(255, 255, 255, 0.10);

    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.28);

    backdrop-filter: blur(18px);

    width: 100%;

    max-width: none;

    min-height: 100%;

}



.hero-floating-card .material-icons {

    font-size: 22px;

    color: var(--gold-primary);

}



.hero-floating-card strong {

    display: block;

    font-size: 0.98rem;

    margin-bottom: 4px;

}



.hero-floating-card div span {

    color: rgba(248, 246, 241, 0.62);

    font-size: 0.88rem;

}



.hero-floating-card-primary {

    top: auto;

    left: auto;

}



.hero-floating-card-secondary {

    bottom: auto;

    right: auto;

}



.trust-strip {

    position: relative;

    z-index: 4;

    margin-top: 0;

    padding-top: 20px;

}



.trust-grid {

    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 16px;

    align-items: stretch;

}



.trust-item {

    display: flex;

    gap: 14px;

    align-items: flex-start;

    height: 100%;

    padding: 22px;

    border-radius: 24px;

    background: linear-gradient(180deg, rgba(16, 21, 29, 0.88), rgba(8, 11, 16, 0.94));

    border: 1px solid rgba(255, 255, 255, 0.08);

    box-shadow: 0 24px 46px rgba(0, 0, 0, 0.28);

}



.trust-item > div {

    min-width: 0;

}



.trust-item .material-icons {

    font-size: 24px;

    color: var(--gold-primary);

}



.trust-item strong {

    display: block;

    margin-bottom: 6px;

    font-size: 1rem;

}



.section {

    position: relative;

    padding: 65px 0;

}



.section-dark {

    background: linear-gradient(180deg, rgba(255, 255, 255, 0.018), rgba(255, 255, 255, 0.008));

    border-top: 1px solid rgba(255, 255, 255, 0.04);

    border-bottom: 1px solid rgba(255, 255, 255, 0.04);

}



.section-header {

    max-width: 800px;

    margin: 0 auto 58px;

}



.section-title {

    font-size: clamp(2.5rem, 4.6vw, 4.8rem);

    line-height: 1.06;

    margin-bottom: 18px;

}



.section-description {

    color: rgba(248, 246, 241, 0.68);

    font-size: 1.2rem;

    line-height: 1.7;

}



.problems-grid,

.prices-grid,

.advantages-grid {

    gap: 22px;

}

/* � ������ ����� ������������� ���������� �������� � ����� �������
   ����, ����� ��� ������� ���������� (1520px) auto-fit ������������
   6 ������� ��� 5+1 � �.�. */
.problems-grid {

    grid-template-columns: repeat(3, minmax(0, 1fr));

}

.prices-grid {

    grid-template-columns: repeat(4, minmax(0, 1fr));

}

.advantages-grid {

    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));

}

@media (max-width: 1280px) {

    .brands-grid {

        grid-template-columns: repeat(3, minmax(0, 1fr));

    }

}

@media (max-width: 1080px) {

    .problems-grid,

    .prices-grid {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

    .brands-grid,

    .transmission-types {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

}

@media (max-width: 760px) {

    .reviews-grid {

        grid-template-columns: 1fr;

    }

}

@media (max-width: 600px) {

    .problems-grid,

    .prices-grid,

    .brands-grid,

    .transmission-types {

        grid-template-columns: 1fr;

    }

}



.reviews-grid {

    /* 3 ������ � ���� ����� */
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;

}



.process-grid {

    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;

}



.problem-card,

.price-card,

.advantage-card,

.review-card,

.process-step,

.brand-category,

.faq-item,

.form-card,

.stat-card,

.request-card,

.auth-card,

.auth-info,

.admin-header,

.filters-section,

.empty-state {

    position: relative;

    border-radius: 26px;

    border: 1px solid rgba(255, 255, 255, 0.08);

    background: var(--bg-surface);

    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.28);

    backdrop-filter: blur(18px);

}



.problem-card:hover,

.price-card:hover,

.advantage-card:hover,

.review-card:hover,

.process-step:hover,

.brand-category:hover,

.faq-item:hover,

.request-card:hover,

.stat-card:hover {

    transform: translateY(-8px);

    border-color: rgba(243, 201, 105, 0.24);

    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.36);

}



.card-icon,

.advantage-icon,

.benefit-icon,

.stat-icon-wrapper,

.empty-state-icon,

.gold-bg {

    background: linear-gradient(180deg, rgba(243, 201, 105, 0.15) 0%, rgba(185, 128, 42, 0.08) 100%);

    border: 1px solid rgba(243, 201, 105, 0.18);

    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);

}



.card-icon,

.advantage-icon,

.benefit-icon,

.stat-icon-wrapper,

.empty-state-icon {

    display: flex;

    align-items: center;

    justify-content: center;

}



.advantage-card {

    padding: 28px;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

}



.advantage-icon {

    width: 56px;

    height: 56px;

    margin-bottom: 20px;

    border-radius: 14px;

    flex-shrink: 0;

}



.advantage-icon .material-icons,

.advantage-icon svg {

    width: 24px;

    height: 24px;

    font-size: 24px;

}



.problem-card h3,

.price-card h3,

.advantage-card h3,

.review-card strong,

.process-step h3,

.info-column-title,

.auth-title,

.auth-info-title,

.admin-title {

    letter-spacing: -0.03em;

}



.problem-card p,

.advantage-card p,

.review-text,

.process-step p,

.info-value,

.info-value.muted,

.description-box,

.admin-subtitle,

.auth-subtitle,

.auth-footer p {

    color: var(--text-secondary);

    line-height: 1.7;

}



.price-card {

    padding: 28px;

}



.price-card.popular {

    transform: translateY(-10px);

    border-color: rgba(243, 201, 105, 0.22);

    background: linear-gradient(180deg, rgba(37, 30, 14, 0.94) 0%, rgba(12, 10, 8, 0.98) 100%);

}



.popular-badge {

    top: -16px;

    left: auto;

    transform: none;

    padding: 8px 16px;

    border-radius: 999px;

    background: linear-gradient(135deg, #f3c969 0%, #b9802a 100%);

    color: #111;

    font-weight: 700;

    box-shadow: 0 12px 24px rgba(185, 128, 42, 0.24);

    border: 1px solid rgba(255, 255, 255, 0.18);

    display: flex;

    align-items: center;

    gap: 6px;

}



.popular-badge .material-icons {

    font-size: 18px;

    color: #111;

}



.price-header {

    text-align: left;

    margin-bottom: 24px;

    padding-bottom: 18px;

}



.price {

    font-size: 2.4rem;

    line-height: 1.1;

    letter-spacing: -0.05em;

}



.price-features {

    margin-bottom: 28px;

}



.price-features li {

    align-items: flex-start;

    color: var(--text-secondary);

}



.price-current {

    color: var(--gold-primary);

}



.price del {

    color: rgba(248, 246, 241, 0.35);

}



.review-card {

    position: relative;

    overflow: hidden;

}



.review-card::before {

    /* CSS-escape \201C ? ?????? U+201C "LEFT DOUBLE QUOTATION MARK".
       ?? ??????? ?? ????????? ?????: ???????? ??? UTF-8, CP1251, ? ?.?. */
    content: '\201C';

    position: absolute;

    right: 18px;

    top: 6px;

    font-size: 5rem;

    line-height: 1;

    color: rgba(243, 201, 105, 0.12);

    font-family: Georgia, 'Times New Roman', 'PT Serif', serif;

}



.review-text {

    position: relative;

    z-index: 1;

    font-size: 1rem;

}



.review-author {

    position: relative;

    z-index: 1;

    gap: 14px;

}



.review-author .material-icons {

    width: 50px;

    height: 50px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    background: rgba(255, 255, 255, 0.06);

    color: var(--gold-primary);

    font-size: 34px;

}



.process-step {

    padding: 84px 26px 28px;

    text-align: left;

}



.step-number {

    top: 18px;

    left: 22px;

    opacity: 0.18;

    font-size: 4rem;

    line-height: 1;

}



.process-step h3 {

    margin-top: 0;

    margin-bottom: 12px;

    font-size: 1.24rem;

}



.step-line {

    display: none;

}



.car-brands-section {

    background: linear-gradient(180deg, rgba(255, 255, 255, 0.015), rgba(255, 255, 255, 0.005));

}



.brands-grid {

    /* 8 ��������� � 4 ������� x 2 ����, ��� ����������� �������� ������ */
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 18px;

}



.brand-category {

    padding: 22px;

    background: linear-gradient(180deg, rgba(15, 19, 25, 0.82), rgba(8, 11, 16, 0.92));

}



.brand-item {

    background: rgba(255, 255, 255, 0.04);

    border: 1px solid rgba(255, 255, 255, 0.06);

    cursor: pointer;

    padding: 7px 14px;

}



.brand-item:hover {

    background: rgba(243, 201, 105, 0.12);

    border-color: rgba(243, 201, 105, 0.28);

    color: var(--gold-primary);

    transform: translateY(-1px);

}



.brands-footer {

    margin-top: 28px;

    padding-top: 24px;

    border-top: 1px solid rgba(255, 255, 255, 0.06);

}



.background-car {

    opacity: 0.11;

    filter: grayscale(100%) drop-shadow(0 0 80px rgba(243, 201, 105, 0.18));

}



.transmission-types {

    /* 4 ���� ������� � ����� ���� ����� �� 4 �������� */
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 22px;

}
/* Responsive grid overrides stay below the late desktop grid declarations. */
@media (max-width: 1280px) {

    .brands-grid {

        grid-template-columns: repeat(3, minmax(0, 1fr));

    }

}

@media (max-width: 1080px) {

    .brands-grid,

    .transmission-types {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

}

@media (max-width: 760px) {

    .reviews-grid {

        grid-template-columns: 1fr;

    }

}

@media (max-width: 600px) {

    .brands-grid,

    .transmission-types {

        grid-template-columns: 1fr;

    }

}



.transmission-card {

    min-height: 320px;

    border-radius: 26px;

    border: 1px solid rgba(255, 255, 255, 0.08);

    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.28);

}



.transmission-card:hover {

    transform: translateY(-8px);

    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.38);

}



.card-content {

    padding: 30px;

}



.transmission-card h3 {

    font-size: 1.7rem;
    margin-bottom: 16px;
    text-align: center;

}

.transmission-card p {

    margin-bottom: 14px;

}

.transmission-card .transmission-features {

    margin-top: 0;

}



.transmission-features li {

    border-bottom-color: rgba(255, 255, 255, 0.06);

}



.faq-grid {

    max-width: 1080px;

}



.faq-item {

    margin-bottom: 18px;

}



.faq-question {

    padding: 26px 30px;

    font-size: 1.2rem;

}



.faq-item.active .faq-answer {

    padding: 0 28px 24px;

    max-height: 260px;

}



.faq-question .material-icons {

    color: var(--gold-primary);

}



.form-card {

    overflow: hidden;

    padding: 52px;

}



.form-grid {

    position: relative;

    z-index: 1;

    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);

    gap: 46px;

}



.form-grid > *,

.form-wrapper,

.form {

    min-width: 0;

}



.form-title {

    font-size: clamp(2.3rem, 4vw, 3.6rem);

    line-height: 1.08;

    margin: 20px 0 36px;

}



.benefits-list {

    gap: 18px;

}



.benefit-item {

    align-items: flex-start;

    padding: 16px 18px;

    border-radius: 20px;

    background: rgba(255, 255, 255, 0.04);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.form-wrapper {

    position: relative;

}



.form {

    position: relative;

    padding: 24px;

    border-radius: 24px;

    background: rgba(255, 255, 255, 0.03);

    border: 1px solid rgba(255, 255, 255, 0.08);

    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);

}



.input-field,

.search-wrapper,

.select-wrapper {

    min-height: 60px;

    padding: 0 18px;

    border-radius: 18px;

    background: rgba(6, 10, 16, 0.88);

    border: 1px solid rgba(255, 255, 255, 0.08);

}



.input-field:focus-within,

.search-wrapper:focus-within,

.select-wrapper:focus-within {

    border-color: rgba(164, 186, 223, 0.32);

    box-shadow: 0 0 0 4px rgba(164, 186, 223, 0.08), 0 12px 24px rgba(0, 0, 0, 0.16);

}



.input-field .material-icons,

.search-wrapper .material-icons,

.select-wrapper .material-icons,

.password-toggle .material-icons {

    color: rgba(248, 246, 241, 0.50);

}



.input-field input,

.input-field select,

.input-field textarea,

.search-input,

.status-select {

    font-size: 1rem;

    color: var(--text-primary);

}



.input-field input::placeholder,

.input-field textarea::placeholder,

.search-input::placeholder {

    color: rgba(248, 246, 241, 0.38);

}



.input-field select,

.status-select,

.search-input {

    background: transparent;

}



.input-field select option,

.status-select option {

    background: #0c1016;

    color: #f8f6f1;

}



.input-field textarea {

    padding-top: 18px;

    padding-bottom: 18px;

}



.checkbox {

    color: rgba(248, 246, 241, 0.62);

    font-size: 0.94rem;

}



.checkbox input {

    margin-top: 1px;

}



.form .gold-button.full-width,

.auth-button {

    justify-content: center;

}



.recaptcha-wrap {

    margin: 12px 0;

    width: 100%;

    max-width: 100%;

    overflow: hidden;

}



.recaptcha-wrap .g-recaptcha {

    display: inline-block;

    max-width: 100%;

}



.footer {

    position: relative;

    z-index: 1;

    background: linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(4, 7, 12, 0.92) 34%, rgba(4, 7, 12, 1) 100%);

    padding: 78px 0 30px;

    border-top: 1px solid rgba(255, 255, 255, 0.06);

}



.footer-content {

    grid-template-columns: 1.4fr 1fr 1fr;

    gap: 30px;

}



.footer-info,

.footer-contacts,

.footer-hours {

    padding: 26px;

    border-radius: 24px;

    background: rgba(255, 255, 255, 0.03);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.footer-logo {

    font-size: 1.7rem;

}



.footer-contact-link {

    color: inherit;

    text-decoration: none;

}



.footer-contact-link:hover {

    color: var(--text-primary);

}



.social-link {

    border-radius: 14px;

    background: rgba(255, 255, 255, 0.04);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.social-link:hover {

    background: rgba(243, 201, 105, 0.08);

    transform: translateY(-1px);

}



.footer-bottom {

    margin-top: 20px;

    padding-top: 24px;

    align-items: center;

}



.flash-modal {

    position: fixed;

    inset: 0;

    z-index: 2600;

    display: none;

    align-items: center;

    justify-content: center;

    padding: 22px;

}



.flash-modal.active {

    display: flex;

}



.flash-modal-backdrop {

    position: absolute;

    inset: 0;

    background: rgba(3, 6, 10, 0.78);

    backdrop-filter: blur(10px);

}



.flash-modal-dialog {

    position: relative;

    z-index: 1;

    width: min(100%, 620px);

    padding: 30px;

    border-radius: 26px;

    border: 1px solid rgba(255, 255, 255, 0.12);

    background: linear-gradient(180deg, rgba(16, 21, 29, 0.94) 0%, rgba(7, 10, 15, 0.98) 100%);

    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.5);

}



.flash-modal-close {

    position: absolute;

    top: 14px;

    right: 14px;

    width: 38px;

    height: 38px;

    border-radius: 12px;

    border: 1px solid rgba(255, 255, 255, 0.1);

    background: rgba(255, 255, 255, 0.04);

    color: rgba(248, 246, 241, 0.85);

}



.flash-modal-title {

    margin: 0 0 16px;

    font-size: 1.5rem;

}



.flash-messages {

    display: grid;

    gap: 10px;

}



.alert {

    margin: 0;

    background: rgba(10, 14, 20, 0.90);

    border: 1px solid rgba(255, 255, 255, 0.08);

    backdrop-filter: blur(16px);

    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.20);

    padding: 18px 20px;

}



.alert-success {

    background: rgba(10, 32, 19, 0.78);

    color: #95f1b6;

    border-color: rgba(0, 200, 81, 0.22);

}



.alert-error {

    background: rgba(42, 12, 14, 0.78);

    color: #ff9d9d;

    border-color: rgba(255, 68, 68, 0.24);

}



html body .call-floating-btn {

    display: flex !important; /* ?????? ?????? ? ? ???? ????????? ??????-??? JivoSite */

    right: 22px !important;

    bottom: 32px !important; /* ??????? ??? JivoSite-????? (~64+20+12 px) */

    width: 64px !important;

    height: 64px !important;

    background: linear-gradient(135deg, #f3c969 0%, #b9802a 100%) !important;

    color: #0b0d11 !important;

    border: 1px solid rgba(255, 255, 255, 0.24) !important;

    box-shadow: 0 20px 44px rgba(185, 128, 42, 0.36) !important;

}



html body .call-floating-btn::before {

    content: '';

    position: absolute;

    inset: -10px;

    border-radius: 50%;

    border: 1px solid rgba(243, 201, 105, 0.24);

    animation: callPulse 2.8s ease-out infinite;

}



@keyframes callPulse {

    0% {

        transform: scale(0.82);

        opacity: 0.7;

    }



    100% {

        transform: scale(1.25);

        opacity: 0;

    }

}



.auth-page {

    position: relative;

    z-index: 1;

    min-height: calc(100vh - 160px);

    padding: 156px 0 88px;

}



.auth-background {

    position: absolute;

    inset: 0;

    pointer-events: none;

}



.auth-shape {

    position: absolute;

    border-radius: 50%;

    filter: blur(90px);

    opacity: 0.35;

}



.auth-shape-1 {

    width: 260px;

    height: 260px;

    top: 8%;

    left: 10%;

    background: rgba(243, 201, 105, 0.22);

}



.auth-shape-2 {

    width: 220px;

    height: 220px;

    right: 12%;

    top: 20%;

    background: rgba(90, 123, 255, 0.18);

}



.auth-shape-3 {

    width: 280px;

    height: 280px;

    left: 40%;

    bottom: 4%;

    background: rgba(243, 201, 105, 0.12);

}



.auth-container {

    position: relative;

    z-index: 1;

    display: grid;

    grid-template-columns: minmax(320px, 0.92fr) minmax(320px, 1.08fr);

    gap: 24px;

    align-items: stretch;

}



.auth-info,

.auth-card {

    overflow: hidden;

}



.auth-info,

.auth-card-inner {

    position: relative;

    z-index: 1;

}



.auth-info {

    padding: 42px;

}



.auth-info-title {

    font-size: clamp(2.1rem, 4vw, 3.2rem);

    line-height: 1.04;

    margin: 24px 0 16px;

}



.auth-features {

    display: grid;

    gap: 14px;

    margin-top: 30px;

}



.auth-feature {

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 14px 16px;

    border-radius: 18px;

    background: rgba(255, 255, 255, 0.04);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.auth-feature .material-icons,

.auth-info-decoration,

.admin-title .material-icons,

.info-column-title .material-icons,

.stat-icon-wrapper .material-icons {

    color: var(--gold-primary);

}



.auth-info-decoration {

    position: absolute;

    right: 0;

    top: 0;

    width: 180px;

    height: 180px;

    background: radial-gradient(circle, rgba(243, 201, 105, 0.18), transparent 70%);

    filter: blur(10px);

}



.auth-card {

    padding: 34px;

}



.auth-card-inner {

    height: 100%;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

}



.auth-logo {

    font-size: 1.5rem;

    margin-bottom: 16px;

}



.auth-title {

    font-size: 2.1rem;

    margin-bottom: 8px;

}



.auth-form {

    display: grid;

    gap: 16px;

    margin-top: 24px;

}



.password-toggle {

    background: transparent;

    border: 0;

    padding: 0;

}



.auth-options {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 16px;

    flex-wrap: wrap;

}



.forgot-link {

    color: var(--gold-primary);

}



.forgot-link:hover {

    color: var(--gold-bright);

}



.admin-dashboard {

    position: relative;

    z-index: 1;

    padding: 152px 0 72px;

}



.admin-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    padding: 28px 30px;

    margin-bottom: 22px;

}



.admin-title {

    display: flex;

    align-items: center;

    gap: 12px;

    font-size: clamp(2rem, 3.6vw, 3rem);

}



.admin-subtitle {

    margin-top: 8px;

}



.stats-grid {

    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));

    gap: 20px;

}



.analytics-grid {

    margin-bottom: 20px;

}



.stat-card {

    padding: 24px;

    border-radius: 24px;

}



.stat-icon-wrapper {

    width: 58px;

    height: 58px;

    border-radius: 18px;

}



.admin-dashboard .stat-label {

    color: var(--text-muted);

    font-size: 0.92rem;

}



.admin-dashboard .stat-value {

    color: var(--text-primary);

    font-size: 2rem;

    font-weight: 700;

    line-height: 1.1;

}



.filters-section {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    padding: 22px;

    margin: 32px 0 24px;

    flex-wrap: wrap;

}



.filters-wrapper {

    display: flex;

    gap: 12px;

    flex-wrap: wrap;

}



.filter-btn {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 12px 18px;

    border-radius: 999px;

    border: 1px solid rgba(255, 255, 255, 0.08);

    background: rgba(255, 255, 255, 0.04);

    color: var(--text-secondary);

}



.filter-btn:hover,

.filter-btn.active {

    background: rgba(243, 201, 105, 0.10);

    border-color: rgba(243, 201, 105, 0.24);

    color: var(--gold-primary);

}



.search-wrapper {

    min-width: min(100%, 360px);

    display: flex;

    align-items: center;

    gap: 12px;

}



.search-input {

    flex: 1;

    border: 0;

}



.search-input:focus {

    outline: none;

}



.requests-list {

    display: grid;

    gap: 20px;

}



.request-card {

    overflow: hidden;

}



.request-card-header,

.request-card-body,

.request-card-footer {

    padding: 24px 26px;

}



.request-card-header {

    display: flex;

    align-items: center;

    gap: 12px;

    flex-wrap: wrap;

    border-bottom: 1px solid rgba(255, 255, 255, 0.06);

}



.request-id,

.request-date,

.status-badge {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    padding: 10px 14px;

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.05);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.status-badge {

    margin-left: auto;

}



.status-badge.status-new {

    background: rgba(0, 200, 81, 0.14);

    color: #95f1b6;

    border-color: rgba(0, 200, 81, 0.22);

}



.status-badge.status-in_progress {

    background: rgba(255, 193, 7, 0.14);

    color: #ffd76a;

    border-color: rgba(255, 193, 7, 0.2);

}



.status-badge.status-completed {

    background: rgba(96, 165, 250, 0.14);

    color: #a7d1ff;

    border-color: rgba(96, 165, 250, 0.22);

}



.request-card-body {

    padding-top: 22px;

}



.request-info-grid {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 18px;

}



.info-column {

    padding: 18px;

    border-radius: 20px;

    background: rgba(255, 255, 255, 0.04);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.info-column.full-width {

    grid-column: 1 / -1;

}



.info-column-title {

    display: flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 18px;

    font-size: 1.06rem;

}



.info-row {

    display: flex;

    justify-content: space-between;

    gap: 14px;

    padding: 10px 0;

    border-bottom: 1px solid rgba(255, 255, 255, 0.06);

}



.info-row:last-child {

    border-bottom: 0;

}



.info-label {

    color: var(--text-muted);

    min-width: 90px;

}



.info-value.phone {

    color: var(--gold-primary);

    text-decoration: none;

}



.info-value.phone:hover {

    color: var(--gold-bright);

}



.description-box {

    padding: 16px 18px;

    border-radius: 18px;

    background: rgba(6, 10, 16, 0.72);

    border: 1px solid rgba(255, 255, 255, 0.06);

}



.request-card-footer {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 16px;

    border-top: 1px solid rgba(255, 255, 255, 0.06);

}



.status-form,

.delete-form {

    margin: 0;

}



.status-controls {

    display: flex;

    align-items: center;

    gap: 12px;

    flex-wrap: wrap;

}



.select-wrapper {

    display: flex;

    align-items: center;

    gap: 12px;

}



.status-select {

    border: 0;

    min-width: 180px;

}



.status-select:focus {

    outline: none;

}



.delete-btn {

    width: 54px;

    height: 54px;

    border-radius: 18px;

    border: 1px solid rgba(255, 82, 82, 0.24);

    background: rgba(255, 82, 82, 0.08);

    color: #ff9d9d;

}



.delete-btn:hover {

    background: rgba(255, 82, 82, 0.14);

    transform: translateY(-2px);

}



.empty-state {

    padding: 54px 32px;

    text-align: center;

}



.empty-state h3 {

    margin: 20px 0 12px;

    font-size: 1.8rem;

}



.empty-state p {

    color: var(--text-secondary);

    margin-bottom: 24px;

}



@media (max-width: 1180px) {

    .hero-grid,

    .form-grid,

    .auth-container {

        grid-template-columns: 1fr;

    }



    .hero-copy {

        max-width: none;

    }



    .hero-title {

        max-width: 13ch;

    }



    .hero-visual {

        min-height: auto;

        padding-top: 10px;

        justify-items: stretch;

    }



    .hero-panel {

        width: 100%;

    }



    .hero-floating-stack {

        width: 100%;

    }



    .trust-grid {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }



    .process-grid {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }



    .footer-content {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

}



@media (max-width: 992px) {

    .navbar {

        width: calc(100% - 20px);

        margin-top: 10px;

        top: 10px;

        padding: 12px 0;

        border-radius: 24px;

    }



    .nav-wrapper {

        gap: 10px;

    }



    .nav-menu {

        gap: 0.35rem;

    }



    .nav-menu a {

        padding: 0.72rem 0.88rem;

    }



    .nav-actions {

        gap: 0.5rem;

    }



    .nav-call-button {

        padding: 0.85rem 1.1rem;

        font-size: 0.94rem;

    }



    .hero {

        min-height: auto;

        padding: 132px 0 80px;

    }



    .hero-title {

        font-size: clamp(3rem, 10vw, 5.6rem);

    }



    .hero-stats {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }



    .hero-floating-card-primary {

        left: 0;

    }



    .hero-floating-card-secondary {

        right: 0;

    }



    .request-info-grid {

        grid-template-columns: 1fr;

    }



    .filters-section {

        align-items: stretch;

    }



    .search-wrapper {

        min-width: 100%;

    }



    .footer-content {

        grid-template-columns: 1fr;

    }

}



@media (max-width: 768px) {

    .container {

        padding: 0 18px;

    }



    .mobile-menu-btn {

        display: inline-flex;

    }



    .mobile-header-phone {

        display: inline-flex;

        align-items: center;

        justify-content: center;

        min-width: 0;

        margin-left: auto;

        margin-right: 4px;

        padding: 0;

        color: rgba(248, 246, 241, 0.86);

        font-size: 0.82rem;

        font-weight: 600;

        letter-spacing: 0.01em;

        white-space: nowrap;

        text-decoration: none;

    }



    .nav-menu {

        display: none;

        position: absolute;

        top: calc(100% + 12px);

        left: 0;

        right: 0;

        flex-direction: column;

        align-items: stretch;

        padding: 14px;

        gap: 10px;

        border-radius: 24px;

        background: rgba(8, 11, 16, 0.98);

        border: 1px solid rgba(255, 255, 255, 0.08);

        box-shadow: var(--shadow-soft);

        z-index: 20;

    }



    .nav-menu.active {

        display: flex;

    }



    .nav-menu li {

        width: 100%;

    }



    .nav-menu a,

    .nav-menu .gold-button,

    .nav-menu .gold-button-outline {

        width: 100%;

        justify-content: flex-start;

    }



    .nav-menu li.mobile-only {

        display: flex;

        flex-direction: column;

        gap: 10px;

        margin-top: 6px;

    }



    .nav-actions {

        display: none;

    }



    .logo-text {

        font-size: 1rem;

    }



    .logo-phone {

        font-size: 0.64rem;

        letter-spacing: 0.12em;

    }



    .hero {

        padding: 126px 0 70px;

    }



    .hero-title {

        max-width: none;

    }



    .hero-actions {

        flex-direction: column;

        align-items: stretch;

    }



    .hero-stats {

        grid-template-columns: 1fr;

    }



    .hero-panel,

    .form-card,

    .auth-info,

    .auth-card,

    .admin-header,

    .filters-section {

        padding-left: 22px;

        padding-right: 22px;

    }



    .hero-panel {

        padding-top: 24px;

        padding-bottom: 24px;

    }



    .hero-floating-card {

        max-width: none;

        margin-top: 0;

    }



    .hero-floating-stack {

        width: 100%;

        grid-template-columns: 1fr;

    }



    .trust-grid,

    .process-grid {

        grid-template-columns: 1fr;

    }



    .section {

        padding: 52px 0;

    }



    .section-header {

        margin-bottom: 42px;

    }



    .form {

        padding: 18px;

    }



    .recaptcha-wrap {

        display: flex;

        justify-content: center;

    }



    .faq-question {

        padding: 20px 22px;

    }



    .faq-item.active .faq-answer {

        padding: 0 22px 20px;

    }



    .request-card-header,

    .request-card-body,

    .request-card-footer {

        padding: 20px;

    }



    .status-badge {

        margin-left: 0;

    }



    .request-card-footer,

    .status-controls,

    .auth-options {

        flex-direction: column;

        align-items: stretch;

    }



    .select-wrapper,

    .status-select,

    .delete-btn,

    .status-form,

    .delete-form {

        width: 100%;

    }



    .delete-btn {

        height: 52px;

    }



    .admin-dashboard {

        padding-top: 132px;

    }

}



@media (max-width: 560px) {

    .navbar {

        width: calc(100% - 14px);

        border-radius: 20px;

    }



    .logo-img {

        width: 48px;

        height: 48px;

        border-radius: 16px;

    }



    .logo-phone {

        display: none;

    }



    .mobile-header-phone {

        font-size: 0.74rem;

        max-width: 110px;

        overflow: hidden;

        text-overflow: ellipsis;

    }



    .hero-badge,

    .section-badge,

    .auth-badge {

        width: 100%;

        justify-content: center;

        text-align: center;

    }



    .hero-panel-top {

        flex-direction: column;

        align-items: flex-start;

    }



    .hero-service-grid {

        grid-template-columns: 1fr;

    }



    .problem-card,

    .price-card,

    .advantage-card,

    .review-card,

    .process-step,

    .brand-category,

    .faq-item,

    .form-card,

    .auth-info,

    .auth-card,

    .admin-header,

    .filters-section,

    .empty-state {

        border-radius: 22px;

    }



    html body .call-floating-btn {

        right: 16px !important;

        bottom: 84px !important; /* ??????? ??? JivoSite-????? ?? ?????? */

        width: 58px !important;

        height: 58px !important;

    }

}



/* ============================================
 *  Inline-CTA ��������� ������ ����� ��������.
 *  ����� ������ � ������� .callback-open-btn ������ �����
 *  ������� �� �� �������, ��� � ������ � hero.
 * ============================================ */
.callback-cta {
    margin: 28px 0;
}
.callback-cta-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 28px;
    padding: 32px 40px;
    border-radius: 28px;
    background:
        linear-gradient(135deg, rgba(243, 201, 105, 0.12) 0%, rgba(243, 201, 105, 0.02) 50%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid rgba(243, 201, 105, 0.22);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(14px);
}
.callback-cta-copy {
    flex: 1 1 320px;
    min-width: 0;
}
.callback-cta-title {
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    line-height: 1.2;
    margin: 0 0 10px;
    letter-spacing: -0.02em;
}
.callback-cta-text {
    color: rgba(248, 246, 241, 0.7);
    font-size: 1.1rem;
    line-height: 1.55;
    margin: 0;
}
.callback-cta .gold-button {
    flex-shrink: 0;
}
@media (max-width: 600px) {
    .callback-cta-shell {
        padding: 24px 22px;
        text-align: center;
        justify-content: center;
    }
    .callback-cta-copy {
        flex: 1 1 100%;
    }
    .callback-cta .gold-button {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================
 *  reCAPTCHA + ?????? ? ????? ??????
 *  ?????? ???????? ??? ??????????? ?? ??????? ??????,
 *  ??????? ????? ???, ? ?? ? grass.css.
 * ============================================ */

/* ???????? ????????? badge JivoSite/reCAPTCHA ? disclaimer ????
   ??? ??????????? ???????????? ? ??????. */
.grecaptcha-badge {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Disclaimer ??? ??????? submit ????? ?????? */
html body .recaptcha-disclaimer {
    margin-top: 14px;
    font-size: .72rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.45);
    text-align: center;
}
html body .recaptcha-disclaimer a,
html body .recaptcha-disclaimer a:link,
html body .recaptcha-disclaimer a:visited {
    color: rgba(243, 201, 105, 0.75);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: rgba(243, 201, 105, 0.35);
    transition: color .2s ease, text-decoration-color .2s ease;
}
html body .recaptcha-disclaimer a:hover,
html body .recaptcha-disclaimer a:focus {
    color: #f3c969;
    text-decoration-color: #f3c969;
}

/* ?????? "???????????? ??????" ? ???????? ???????? */
html body .checkbox a,
html body .checkbox a:link,
html body .checkbox a:visited {
    color: #f3c969;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: rgba(243, 201, 105, 0.4);
    transition: color .2s ease, text-decoration-color .2s ease;
}
html body .checkbox a:hover,
html body .checkbox a:focus {
    color: #ffd700;
    text-decoration-color: #ffd700;
}

/* ============================================================
 *  Секция «Когда нужно обращаться» — живые карточки-симптомы.
 *  Курсор-подсветка, editorial-нумерация, индикатор риска и
 *  ступенчатое появление при скролле. JS — в index-page.js
 *  (initProblemsSection): курсор-glow + IntersectionObserver.
 * ============================================================ */
.problems-grid .problem-card {
    /* Старую load-анимацию fadeIn (style.css) гасим — её заменяет
       reveal по скроллу, иначе к моменту прокрутки секция уже
       «отыграла» и выглядит статичной. */
    animation: none;
    display: flex;
    flex-direction: column;
    padding: 30px 28px 26px;
    overflow: hidden;
    isolation: isolate;
    transition:
        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

/* Тонкая золотая линия сверху — «прорастает» при наведении */
.problems-grid .problem-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 26px;
    right: 26px;
    height: 2px;
    border-radius: 0 0 2px 2px;
    background: linear-gradient(90deg, transparent, var(--gold-primary), transparent);
    transform: scaleX(0);
    opacity: 0;
    transition: transform 0.45s ease, opacity 0.45s ease;
    z-index: 4;
}
.problems-grid .problem-card:hover::before {
    transform: scaleX(1);
    opacity: 0.9;
}

/* Курсор-подсветка: радиальный блик следует за мышью (--mx/--my) */
.problem-spot {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    border-radius: inherit;
    opacity: 0;
    transition: opacity 0.4s ease;
    background: radial-gradient(
        240px circle at var(--mx, 50%) var(--my, 0%),
        rgba(243, 201, 105, 0.16),
        transparent 62%
    );
}
.problem-card:hover .problem-spot {
    opacity: 1;
}

/* Контент карточки — над подсветкой.
   ВАЖНО: .problem-index сюда НЕ входит — иначе position:relative
   (специфичность 0,2,0) перебил бы его position:absolute, и номер
   падал бы в поток поверх иконки вместо угла. */
.problem-card > .card-icon,
.problem-card > h3,
.problem-card > p,
.problem-card > .problem-foot {
    position: relative;
    z-index: 1;
}

/* Editorial-нумерация 01–06 — мягкий «водяной знак» в углу.
   Сплошная заливка низкой непрозрачности (без -webkit-text-stroke):
   обводка на тонких верхних дугах цифр рендерилась рвано и выглядела
   «криво», будто верх срезан. Сплошная заливка — ровная и чистая. */
.problem-index {
    position: absolute;
    top: 18px;
    right: 22px;
    z-index: 0;
    font-size: 2.7rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    color: rgba(243, 201, 105, 0.13);
    font-variant-numeric: tabular-nums;
    pointer-events: none;
    transition: color 0.35s ease, transform 0.35s ease;
}
.problem-card:hover .problem-index {
    color: rgba(243, 201, 105, 0.24);
    transform: translateY(-1px);
}

/* Иконка: отклик на hover + пульсирующее кольцо */
.problems-grid .card-icon {
    position: relative;
    width: 58px;
    height: 58px;
    border-radius: 16px;
    margin-bottom: 22px;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease;
}
.problems-grid .card-icon .material-icons {
    font-size: 26px;
    color: var(--gold-primary);
    transition: transform 0.4s ease;
}
.problems-grid .card-icon::after {
    content: '';
    position: absolute;
    inset: -6px;
    border-radius: 20px;
    border: 1px solid rgba(243, 201, 105, 0.3);
    opacity: 0;
    pointer-events: none;
}
.problem-card:hover .card-icon {
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 12px 26px rgba(243, 201, 105, 0.22);
}
.problem-card:hover .card-icon .material-icons {
    transform: scale(1.08);
}
.problem-card:hover .card-icon::after {
    animation: problemPulse 1.5s ease-out infinite;
}
@keyframes problemPulse {
    0%   { opacity: 0.75; transform: scale(0.92); }
    100% { opacity: 0;    transform: scale(1.28); }
}

/* Заголовок / описание */
.problems-grid .problem-card h3 {
    font-size: 1.3rem;
    margin-bottom: 12px;
}
.problems-grid .problem-card p {
    font-size: 1.02rem;
    margin: 0;
    flex-grow: 1;
}

/* Подвал: индикатор уровня риска (как «шкала сигнала») */
.problem-foot {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.severity {
    display: inline-flex;
    align-items: flex-end;
    gap: 4px;
    height: 16px;
    flex-shrink: 0;
}
.severity i {
    width: 5px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.14);
    transition: background 0.35s ease, box-shadow 0.35s ease;
}
.severity i:nth-child(1) { height: 7px; }
.severity i:nth-child(2) { height: 11px; }
.severity i:nth-child(3) { height: 16px; }
.severity--medium i:nth-child(-n+2),
.severity--high i,
.severity--critical i {
    background: linear-gradient(180deg, var(--gold-bright), var(--gold-dark));
    box-shadow: 0 0 8px rgba(243, 201, 105, 0.35);
}
.severity--critical i {
    background: linear-gradient(180deg, #ff8a6b, #d2442f);
    box-shadow: 0 0 8px rgba(255, 82, 82, 0.45);
}
.problem-foot-label {
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: rgba(248, 246, 241, 0.7);
}
.severity--high ~ .problem-foot-label { color: rgba(243, 201, 105, 0.92); }
.severity--critical ~ .problem-foot-label { color: #ff9f86; }

/* --- Появление при скролле (включается классом .reveal-ready от JS,
       поэтому без JS карточки сразу видимы) --- */
.problems-grid.reveal-ready [data-reveal] {
    opacity: 0;
}
.problems-grid.reveal-ready [data-reveal].is-visible {
    opacity: 1;
    /* backwards (без forwards): после анимации transform не «залипает»,
       поэтому hover-подъём карточки работает как обычно. */
    animation: problemReveal 0.6s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    animation-delay: calc(var(--i, 0) * 70ms);
}
@keyframes problemReveal {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .problems-grid.reveal-ready [data-reveal],
    .problems-grid.reveal-ready [data-reveal].is-visible {
        opacity: 1;
        animation: none;
    }
    .problem-card:hover .card-icon::after { animation: none; }
    .problem-spot { display: none; }
}

/* ============================================================
 *  Секция «Цены»: живой WebGL-фон (шейдер) + стеклянные карточки.
 *  ⚠ ОТКАТ (пользователь может попросить вернуть как было):
 *    1) удалить ВЕСЬ этот блок;
 *    2) убрать <div class="prices-bg"> … </div> из templates/index.html;
 *    3) убрать initPricesShader() и его вызов из static/index-page.js.
 *  Подробности — в memory (glass-shader-prices-section).
 * ============================================================ */
#prices {
    overflow: hidden;
}
#prices > .container {
    position: relative;
    z-index: 1;
}
.prices-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
.prices-bg canvas {
    display: block;
    width: 100%;
    height: 100%;
    opacity: 0.35;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
/* Тёмная вуаль сверху — держит читаемость заголовка над шейдером */
.prices-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(130% 80% at 50% 0%, rgba(5, 7, 11, 0.6) 0%, rgba(5, 7, 11, 0.15) 42%, transparent 70%);
}

/* Матовое стекло: фон-шейдер просвечивает и размывается за карточками */
.prices-grid .price-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.03) 100%),
        rgba(10, 14, 21, 0.38);
    backdrop-filter: blur(18px) saturate(135%);
    -webkit-backdrop-filter: blur(18px) saturate(135%);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow:
        0 14px 44px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.prices-grid .price-card.popular {
    background:
        linear-gradient(180deg, rgba(243, 201, 105, 0.16) 0%, rgba(243, 201, 105, 0.04) 100%),
        rgba(20, 16, 8, 0.40);
    border-color: rgba(243, 201, 105, 0.42);
    box-shadow:
        0 18px 52px rgba(0, 0, 0, 0.44),
        inset 0 1px 0 rgba(255, 255, 255, 0.24);
}
.prices-grid .price-card:hover {
    border-color: rgba(243, 201, 105, 0.45);
    box-shadow:
        0 22px 60px rgba(0, 0, 0, 0.48),
        inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

@media (prefers-reduced-motion: reduce) {
    .prices-bg canvas { opacity: 0.3; }
}

/* ============================================================
 *  Секция «Диагностика» (#services): белый WebGL-фон (текучие
 *  волны) + такие же стеклянные карточки, как у цен.
 *  ⚠ ОТКАТ: удалить этот блок, <div class="services-bg"> из
 *  index.html и initServicesShader() из index-page.js.
 *  См. memory (glass-shader-prices-section).
 * ============================================================ */
#services {
    overflow: hidden;
}
#services > .container {
    position: relative;
    z-index: 1;
}
.services-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
.services-bg canvas {
    display: block;
    width: 100%;
    height: 100%;
    opacity: 0.12;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
/* Тёмная вуаль сверху — читаемость заголовка над белыми волнами */
.services-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(130% 80% at 50% 0%, rgba(5, 7, 11, 0.62) 0%, rgba(5, 7, 11, 0.18) 42%, transparent 70%);
}

/* Матовое стекло на карточках диагностики — как у цен */
.problems-grid .problem-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.03) 100%),
        rgba(10, 14, 21, 0.38);
    backdrop-filter: blur(18px) saturate(135%);
    -webkit-backdrop-filter: blur(18px) saturate(135%);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow:
        0 14px 44px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.problems-grid .problem-card:hover {
    border-color: rgba(243, 201, 105, 0.45);
    box-shadow:
        0 22px 60px rgba(0, 0, 0, 0.48),
        inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

@media (prefers-reduced-motion: reduce) {
    .services-bg canvas { opacity: 0.1; }
}

/* ============================================================
 *  Секция «Заявка» (#request-form): вся секция = форма во всю
 *  ширину/высоту, матовое стекло + живой Canvas2D-фон (плазма).
 *  ⚠ ОТКАТ: удалить этот блок, <div class="request-bg"> из
 *  index.html и initRequestPlasma() из index-page.js.
 *  См. memory (glass-shader-prices-section).
 * ============================================================ */
#request-form {
    position: relative;
    overflow: hidden;
    padding: 0;            /* убираем отступы секции — форма заполняет её целиком */
}
/* Контейнер больше не ограничивает ширину — форма идёт от края до края */
#request-form > .container {
    position: relative;
    z-index: 1;
    max-width: none;
    padding: 0;
}
.request-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
.request-bg canvas {
    display: block;
    width: 100%;
    height: 100%;
    opacity: 0.8;
}

/* Форма во всю секцию + матовое стекло (контент центрируется внутри) */
#request-form .form-card {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(48px, 7vw, 110px) clamp(20px, 5vw, 90px);
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.10);
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0.02) 100%),
        rgba(8, 11, 17, 0.34);
    backdrop-filter: blur(22px) saturate(130%);
    -webkit-backdrop-filter: blur(22px) saturate(130%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
}
/* Контент центрируем и держим читаемой шириной */
#request-form .form-grid {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
}
/* Внутренняя панель формы — чуть более выраженное стекло */
#request-form .form {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%),
        rgba(10, 14, 21, 0.30);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow:
        0 18px 48px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

@media (prefers-reduced-motion: reduce) {
    .request-bg canvas { opacity: 0.5; }
}

/* Реальные отзывы: горизонтальная лента + прокрутка длинного текста */
.reviews-grid.reviews-scroll {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(320px, calc((100% - 44px) / 3));
    align-items: stretch;
    gap: 22px;
    margin: 0 -4px;
    padding: 4px 4px 18px;
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(243, 201, 105, 0.52) rgba(255, 255, 255, 0.08);
    -webkit-overflow-scrolling: touch;
}

.reviews-grid.reviews-scroll::-webkit-scrollbar,
.reviews-grid.reviews-scroll .review-text::-webkit-scrollbar {
    height: 8px;
    width: 8px;
}

.reviews-grid.reviews-scroll::-webkit-scrollbar-track,
.reviews-grid.reviews-scroll .review-text::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
}

.reviews-grid.reviews-scroll::-webkit-scrollbar-thumb,
.reviews-grid.reviews-scroll .review-text::-webkit-scrollbar-thumb {
    background: rgba(243, 201, 105, 0.58);
    border-radius: 999px;
}

.reviews-grid.reviews-scroll .review-card {
    min-height: 420px;
    max-height: 520px;
    display: flex;
    flex-direction: column;
    scroll-snap-align: start;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.reviews-grid.reviews-scroll .review-text {
    max-height: 310px;
    margin-bottom: 22px;
    padding-right: 8px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(243, 201, 105, 0.52) rgba(255, 255, 255, 0.08);
}

.reviews-grid.reviews-scroll .review-author {
    margin-top: auto;
}

/* Яндекс.Карта под галереей */
.section-map {
    background:
        radial-gradient(circle at 16% 20%, rgba(243, 201, 105, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.012), rgba(255, 255, 255, 0.004));
}

.map-layout {
    display: grid;
    grid-template-columns: minmax(0, 760px);
    justify-content: center;
    gap: 24px;
    align-items: stretch;
}

.map-info {
    position: relative;
    border-radius: 26px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: var(--bg-surface);
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.28);
    overflow: hidden;
}

.map-info {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 28px;
}

.map-info-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.map-info-icon .material-icons {
    color: var(--gold-primary);
}

.map-info h3 {
    margin: 0 0 12px;
    font-size: clamp(1.18rem, 1.5vw, 1.45rem);
    line-height: 1.28;
}

.map-info p {
    margin: 0;
    color: var(--text-secondary);
    line-height: 1.65;
}

.map-route-link {
    width: fit-content;
    margin-top: 22px;
}

@media (max-width: 1080px) {
    .reviews-grid.reviews-scroll {
        grid-auto-columns: minmax(300px, calc((100% - 22px) / 2));
    }

    .map-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .reviews-grid.reviews-scroll {
        grid-auto-columns: minmax(280px, 88%);
    }

    .reviews-grid.reviews-scroll .review-card {
        min-height: 390px;
        max-height: 480px;
    }

    .reviews-grid.reviews-scroll .review-text {
        max-height: 260px;
    }

    .map-info {
        flex-direction: column;
        padding: 24px;
    }

    .map-route-link {
        width: 100%;
    }
}

/* Mobile paint fallback: avoid white compositor tiles during fast scrolling. */
@media (max-width: 900px), (pointer: coarse) {
    html,
    body,
    main,
    .section {
        background-color: #05070b;
    }

    .prices-bg,
    .services-bg,
    .request-bg {
        display: none;
    }

    #prices,
    #services,
    #request-form,
    .section-dark {
        background:
            linear-gradient(180deg, rgba(255, 255, 255, 0.018), rgba(255, 255, 255, 0.006)),
            #05070b;
    }

    .prices-grid .price-card,
    .problems-grid .problem-card,
    #request-form .form-card,
    #request-form .form {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}
