:root {
    --color-primary: #007236;
    --color-primary-dark: #005a2b;
    --color-primary-light: #e8f5ee;
    --color-secondary: #004563;
    --color-secondary-dark: #00334a;
    --color-secondary-light: #e0ecf8;
    --color-accent: #ffcc0f;
    --color-bg: #f9f9f9;
    --color-bg-light: #f9f9f9;
    --color-text: #181818;
    --color-text-muted: #767575;
    --color-link: #004563;
    --color-link-visited: #00334a;
    --color-link-hover: #007236;
    --color-link-active: #005a2b;
    --color-border: #c4c4c4;
    --color-white: #ffffff;
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --shadow-sm: 0 2px 8px rgba(0, 69, 99, 0.08);
    --shadow-md: 0 4px 16px rgba(0, 114, 54, 0.15);
    --radius: 10px;
    --radius-sm: 5px;
    --content-max: 1280px;
    --header-height: 130px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    font-family: var(--font-family);
    color: var(--color-text);
    background: var(--color-white);
    line-height: 1.5;
    overflow-x: hidden;
}

/* Sticky header: keep hash targets (TOC etc.) visible below the bar */
html {
    scroll-padding-top: calc(var(--header-height) + 1rem);
}

a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s, opacity 0.2s, background 0.2s, border-color 0.2s;
}

a:hover {
    color: var(--color-primary);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

@media (min-width: 1400px) {
    .container {
        max-width: var(--content-max);
    }
}

/* Buttons */
.btn-primary {
    --bs-btn-bg: var(--color-primary);
    --bs-btn-border-color: var(--color-primary);
    --bs-btn-hover-bg: var(--color-primary-dark);
    --bs-btn-hover-border-color: var(--color-primary-dark);
    --bs-btn-active-bg: var(--color-primary-dark);
    --bs-btn-active-border-color: var(--color-primary-dark);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    padding: 0.75rem 1.25rem;
}

.btn-secondary {
    --bs-btn-bg: var(--color-secondary);
    --bs-btn-border-color: var(--color-secondary);
    --bs-btn-hover-bg: var(--color-secondary-dark);
    --bs-btn-hover-border-color: var(--color-secondary-dark);
    font-weight: 700;
    text-transform: uppercase;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    padding: 0.75rem 1.25rem;
}

.btn-outline-primary {
    --bs-btn-color: var(--color-primary);
    --bs-btn-border-color: var(--color-primary);
    --bs-btn-hover-bg: var(--color-primary);
    --bs-btn-hover-border-color: var(--color-primary);
    --bs-btn-hover-color: #fff;
    font-weight: 500;
    border-radius: var(--radius-sm);
}

.btn-outline-secondary {
    --bs-btn-color: var(--color-secondary);
    --bs-btn-border-color: var(--color-secondary);
    --bs-btn-hover-bg: var(--color-secondary);
    --bs-btn-hover-border-color: var(--color-secondary);
    --bs-btn-hover-color: #fff;
    font-weight: 500;
    border-radius: var(--radius-sm);
}

.btn-cta {
    min-width: 180px;
    height: 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: var(--radius-sm);
    border: none;
    color: #fff;
    padding: 0 1rem;
    transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;
}

/* Зелёная CTA: PASSIV #007236 → HOVER/ACTIV #004563 */
.btn-cta--green {
    background: var(--color-primary);
    color: #fff;
}

.btn-cta--green:hover,
.btn-cta--green:active,
.btn-cta--green.is-active {
    background: var(--color-secondary);
    color: #fff;
}

.btn-cta--green:active,
.btn-cta--green.is-active {
    transform: translateY(1px);
}

/* Синяя CTA: PASSIV #004563 → HOVER/ACTIV #ffcc0f */
.btn-cta--navy {
    background: var(--color-secondary);
    color: #fff;
}

.btn-cta--navy:hover,
.btn-cta--navy:active,
.btn-cta--navy.is-active {
    background: var(--color-accent);
    color: var(--color-text);
}

.btn-cta--navy:active,
.btn-cta--navy.is-active {
    transform: translateY(1px);
}

/* Ghost navy: outline → filled navy */
.btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    height: 40px;
    padding: 0 1rem;
    border: 1px solid var(--color-secondary);
    border-radius: var(--radius-sm);
    color: var(--color-secondary);
    font-size: 0.875rem;
    font-weight: 500;
    background: transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}

.btn-ghost:hover,
.btn-ghost:active,
.btn-ghost.is-active {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #fff;
}

.btn-ghost:active,
.btn-ghost.is-active {
    transform: translateY(1px);
}

.btn-ghost--compact {
    min-width: 120px;
    width: 120px;
    justify-content: center;
    padding: 0 0.65rem;
    gap: 0.4rem;
}

.btn-ghost__arrow {
    width: 15px;
    height: 1px;
    background: currentColor;
    position: relative;
    flex-shrink: 0;
}

.btn-ghost__arrow::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    border-right: 1px solid currentColor;
    border-top: 1px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}

/* Ghost green: outline → filled green */
.btn-ghost--green {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.btn-ghost--green:hover,
.btn-ghost--green:active,
.btn-ghost--green.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

/* Header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: var(--color-bg);
    transition: box-shadow 0.2s ease;
    overflow-anchor: none;
}

.site-header.is-scrolled {
    box-shadow: var(--shadow-sm);
}

.site-header.is-scrolled .header-hours {
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    border: 0;
}

.header-hours {
    background: var(--color-white);
    font-size: 0.875rem;
    color: var(--color-text-muted);
    padding: 0.5rem 0;
    max-height: 48px;
    opacity: 1;
    overflow: hidden;
    overflow-anchor: none;
    transition: max-height 0.25s ease, opacity 0.2s ease, padding 0.25s ease;
}

.header-hours__inner {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.header-hours__icon {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    font-size: 17px;
    color: var(--color-text-muted);
    line-height: 17px;
}

.header-main {
    background: var(--color-bg);
}

.header-main__row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.55rem 0 0.35rem;
    min-height: 58px;
}

.header-logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.header-logo__mark {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.header-logo__text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.header-logo__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-secondary);
    letter-spacing: 0.04em;
    line-height: 1;
    text-transform: uppercase;
}

.header-logo__subtitle {
    font-size: 0.5rem;
    font-weight: 600;
    color: var(--color-primary);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    line-height: 1.2;
}

.header-address {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text);
    max-width: 120px;
    line-height: 1.25;
    border-left: 1px solid var(--color-border);
    padding-left: 0.85rem;
    margin-left: 0.25rem;
}

.header-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-secondary);
    text-transform: uppercase;
    white-space: nowrap;
    margin-left: auto;
}

.header-phone:hover {
    color: var(--color-primary);
}

.header-phone__icon {
    width: 20px;
    height: 20px;
    font-size: 20px;
    line-height: 20px;
    color: inherit;
}

.header-social {
    display: flex;
    gap: 0.35rem;
    align-items: center;
}

.header-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    border-radius: 5px;
    overflow: hidden;
    flex-shrink: 0;
    color: #fff;
    font-size: 25px;
    line-height: 1;
}

.header-social a:hover {
    opacity: 0.9;
    color: #fff;
}

.header-social a .oft-icon {
    font-size: inherit;
    width: 1em;
    height: 1em;
    line-height: 1;
    text-align: center;
    vertical-align: top;
}

.header-social a.social-ok {
    background: #ff7800;
}

.header-social a.social-max {
    background: linear-gradient(135deg, #44ccff 0%, #5533ee 66%, #9933dd 100%);
}

.header-social a.social-vk {
    background: #1a76ff;
}

.footer .header-social a {
    width: 30px;
    height: 30px;
    font-size: 30px;
}

.header-actions {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    align-items: center;
}

.header-burger {
    width: 30px;
    height: 25px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: var(--color-primary);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    flex-shrink: 0;
}

.header-burger span {
    display: block;
    width: 16px;
    height: 2px;
    border-radius: 2px;
    background: #e8f5ee;
}

.header-burger:hover,
.header-burger[aria-expanded="true"],
.header-burger.is-active {
    background: var(--color-primary-dark);
}

.header-burger:hover span,
.header-burger[aria-expanded="true"] span,
.header-burger.is-active span {
    background: #fff;
}

.header-mobile-meta {
    display: none;
}

.header-phone--mobile {
    margin-left: 0;
    justify-content: center;
    width: 100%;
    font-size: 0.875rem;
    margin-bottom: 0.65rem;
}

.header-mobile-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    padding-bottom: 0.75rem;
}

.header-mobile-actions .btn-cta {
    min-width: 0;
    width: 100%;
    height: 30px;
    font-size: 0.65rem;
}

/* Mobile offcanvas menu */
.oft-mobile-menu {
    --bs-offcanvas-width: min(300px, 88vw);
    --bs-offcanvas-bg: var(--color-bg);
    border: 0;
}

.oft-mobile-menu__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1rem 1.1rem 1.25rem;
    overflow-y: auto;
}

.oft-mobile-menu__close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    background: transparent;
    line-height: 0;
    z-index: 2;
}

.oft-mobile-menu__close img {
    width: 18px;
    height: 18px;
}

.oft-mobile-menu__logo {
    display: block;
    margin: 0.25rem auto 0.65rem;
    text-align: center;
}

.oft-mobile-menu__logo img {
    width: min(265px, 100%);
    height: auto;
}

.oft-mobile-menu__address {
    margin: 0 0 0.75rem;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text);
}

.oft-mobile-menu__phone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin: 0 auto 1.25rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-secondary);
    text-transform: uppercase;
}

.oft-mobile-menu__phone .oft-icon {
    font-size: 1.25rem;
    width: 20px;
    height: 20px;
    line-height: 20px;
}

.oft-mobile-menu__nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 1.25rem;
}

.oft-mobile-menu__nav > a,
.oft-mobile-menu__about-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0;
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text);
    background: none;
    border: 0;
    text-align: left;
}

.oft-mobile-menu__nav > a:hover,
.oft-mobile-menu__about-toggle:hover {
    color: var(--color-primary);
}

.oft-mobile-menu__about-toggle[aria-expanded="true"] {
    color: var(--color-primary);
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 0.25rem;
}

.oft-mobile-menu__about-toggle .header-nav__caret {
    transition: transform 0.2s ease;
}

.oft-mobile-menu__about-toggle[aria-expanded="true"] .header-nav__caret {
    transform: rotate(180deg);
}

.oft-mobile-menu__about-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.65rem 0 0.25rem 0.15rem;
}

.oft-mobile-menu__about-list a {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--color-text);
    line-height: 1.35;
}

.oft-mobile-menu__about-list a:hover {
    color: var(--color-primary);
}

.oft-mobile-menu__social {
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.oft-mobile-menu__social a {
    width: 30px;
    height: 30px;
    font-size: 30px;
}

.oft-mobile-menu__hours {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin-bottom: 1.25rem;
    color: var(--color-text-muted);
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.25;
}

.oft-mobile-menu__hours .oft-icon {
    font-size: 15px;
    width: 15px;
    height: 15px;
    line-height: 15px;
    margin-top: 0.1rem;
    color: var(--color-text-muted);
}

.oft-mobile-menu__hours span {
    display: block;
}

.oft-mobile-menu__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.65rem;
    margin-top: auto;
}

.oft-mobile-menu__actions .btn-cta {
    width: 100%;
    max-width: 250px;
    min-width: 0;
    height: 50px;
    font-size: 0.75rem;
}

.oft-mobile-menu .offcanvas-backdrop,
body:has(.oft-mobile-menu.show) .offcanvas-backdrop {
    background: rgba(24, 24, 24, 0.45);
}

.header-nav {
    padding-bottom: 0.65rem;
}

.header-nav .navbar-nav {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.25rem 1.5rem;
    align-items: center;
}

.header-nav .nav-link {
    font-weight: 500;
    font-size: 1rem;
    color: var(--color-text);
    padding: 0 0 0.35rem;
    border-bottom: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.header-nav .nav-link:hover,
.header-nav .nav-link.active,
.header-nav .nav-link.show {
    color: var(--color-primary);
}

.header-nav .nav-link.active,
.header-nav .nav-link.show {
    border-bottom-color: var(--color-primary);
}

.header-nav .dropdown-toggle::after {
    display: none;
}

.header-nav__caret {
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid var(--color-primary);
    display: inline-block;
    margin-top: 2px;
}

.header-dropdown {
    position: relative;
}

.header-dropdown-menu {
    --bs-dropdown-min-width: 360px;
    --bs-dropdown-padding-x: 0;
    --bs-dropdown-padding-y: 0.75rem;
    --bs-dropdown-border-color: var(--color-primary);
    --bs-dropdown-border-radius: var(--radius);
    --bs-dropdown-bg: #fff;
    --bs-dropdown-spacer: 0.5rem;
    box-shadow: 1px 1px 4px rgba(0, 114, 54, 0.25);
    padding-inline: 1.25rem !important;
}

.header-dropdown-menu--about {
    --bs-dropdown-min-width: 360px;
}

.header-dropdown-item {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 0 !important;
    color: var(--color-text) !important;
    font-size: 0.875rem;
    font-weight: 400;
    border-bottom: 1px solid #e8e8e8;
    background: transparent !important;
    white-space: normal;
}

.header-dropdown-menu > li:last-child .header-dropdown-item {
    border-bottom: 0;
}

.header-dropdown-item:hover,
.header-dropdown-item:focus {
    color: var(--color-primary) !important;
}

.header-dropdown-item img {
    width: 23px;
    height: 23px;
    flex-shrink: 0;
}

.site-logo {
    height: 50px;
    width: auto;
    max-width: 265px;
}

.site-logo--footer {
    height: 60px;
    max-width: 320px;
    filter: none;
}

/* Hero */
.hero-section {
    padding: 1rem 0 1.5rem;
}

.hero-swiper {
    height: 310px;
    border-radius: var(--radius);
    overflow: hidden;
}

.hero-swiper .swiper-slide {
    height: 100%;
}

.hero-slide {
    height: 100%;
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
}

.hero-slide__link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.hero-slide__picture {
    display: block;
    width: 100%;
    height: 100%;
}

.hero-slide__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.hero-nav-prev,
.hero-nav-next {
    width: 30px !important;
    height: 30px !important;
    margin-top: 0 !important;
    top: 50% !important;
    transform: translateY(-50%);
    background: transparent !important;
}

.hero-nav-prev {
    left: 7px !important;
}

.hero-nav-next {
    right: 7px !important;
}

.hero-nav-prev::after,
.hero-nav-next::after {
    display: none;
}

.hero-nav-prev img,
.hero-nav-next img {
    width: 30px;
    height: 30px;
}

.hero-pagination {
    bottom: 16px !important;
}

.hero-pagination .swiper-pagination-bullet {
    background: #fff;
    opacity: 0.7;
    width: 10px;
    height: 10px;
}

.hero-pagination .swiper-pagination-bullet-active {
    opacity: 1;
    background: var(--color-primary);
}

/* Features bar */
.features-bar {
    margin-top: 1.25rem;
}

.feature-card {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    height: 70px;
    padding: 0 1rem;
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: 7px;
}

.feature-card__icon {
    width: 37px;
    height: 30px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: none;
    border-radius: 0;
    margin: 0;
    color: inherit;
    font-size: inherit;
}

.feature-card__icon img {
    width: 37px;
    height: 30px;
    object-fit: contain;
}

.feature-card__title {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-primary);
    margin: 0;
    line-height: 1.2;
}

.feature-card__text {
    display: none;
}

/* Sections */
.section {
    padding: 2.5rem 0;
}

.section-title {
    font-size: clamp(1.5rem, 2.5vw, 2.25rem);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    line-height: 1.2;
}

.section-title--split .section-title__muted {
    display: block;
    color: var(--color-text-muted);
}

.section-text {
    color: var(--color-text-muted);
    margin-bottom: 1.5rem;
    font-size: 1rem;
    font-weight: 500;
}

.section-link {
    font-weight: 500;
    color: var(--color-secondary);
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.section-link:hover {
    color: var(--color-primary);
}

.bg-light {
    background: var(--color-bg) !important;
}

/* Directions */
.directions-section .section-text {
    color: var(--color-text);
    max-width: 453px;
}

.directions-section .btn-cta {
    width: 300px;
    height: 60px;
    border-radius: var(--radius);
    font-size: 1rem;
    font-weight: 600;
    box-shadow: var(--shadow-md);
}

.direction-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 65px;
    padding: 0.75rem 1rem 0.75rem 2rem;
    background: #fff;
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-sm);
    box-shadow: 0 0.879px 0 0 var(--color-primary);
    color: var(--color-text);
    gap: 1rem;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.direction-card:not(.direction-card--inactive):hover,
.direction-card:not(.direction-card--inactive):active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    box-shadow: 0 0.879px 0 0 var(--color-primary);
    color: #fff;
}

.direction-card:not(.direction-card--inactive):hover .direction-card__arrow img,
.direction-card:not(.direction-card--inactive):active .direction-card__arrow img {
    filter: brightness(0) invert(1);
}

.direction-card--inactive {
    color: var(--color-text-muted);
    border-color: var(--color-border);
    box-shadow: none;
    cursor: default;
    pointer-events: none;
}

.direction-card--inactive .direction-card__arrow {
    opacity: 0.35;
}

.direction-card__title {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.3;
}

.direction-card__arrow {
    width: 25px;
    height: 25px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.direction-card__arrow img {
    width: 25px;
    height: 25px;
}

.direction-card__arrow i {
    color: var(--color-primary);
    background: var(--color-primary-light);
    width: 25px;
    height: 25px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
}

/* About */
.about-intro {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.about-intro__text {
    flex: 1 1 18rem;
    max-width: 870px;
}

.about-more {
    flex-shrink: 0;
    margin-top: 0.5rem;
}

.about-section .section-text {
    max-width: 870px;
    font-size: 1.125rem;
}

.about-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin: 2.5rem 0;
    padding: 1.5rem 0;
}

.about-feature {
    padding-left: 1.5rem;
    border-left: 1px solid var(--color-border);
}

.about-feature:first-child {
    border-left: none;
    padding-left: 0;
}

.about-feature__title {
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 1rem;
    line-height: 1.2;
}

.about-feature__text {
    font-size: 1rem;
    color: var(--color-text-muted);
    margin: 0;
}

.about-highlight {
    text-align: center;
    font-size: 1.125rem;
    font-weight: 500;
    max-width: 1063px;
    margin: 0 auto 2rem;
}

.about-gallery {
    display: grid;
    grid-template-columns: minmax(0, 1.478fr) minmax(0, 1.478fr) minmax(0, 1fr) minmax(0, 1.478fr);
    grid-template-rows: 135px 135px;
    gap: 10px;
    max-width: 100%;
}

.about-gallery__item {
    border-radius: var(--radius);
    overflow: hidden;
    height: 100%;
    min-width: 0;
}

.about-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.about-gallery__item--tall {
    grid-row: span 2;
}

.about-gallery__item--narrow {
    grid-row: span 2;
}

/* Lead form */
.lead-form-section {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.lead-form-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    position: relative;
}

.lead-form-info {
    position: relative;
    min-height: 350px;
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--color-bg);
    padding: 1.75rem 2.5rem;
}

.lead-form-info__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: right center;
    opacity: 0.35;
}

.lead-form-info__title {
    position: relative;
    z-index: 1;
    font-size: 2rem;
    font-weight: 700;
    text-transform: uppercase;
    max-width: 400px;
    line-height: 1.15;
    margin-bottom: 1.5rem;
}

.lead-form-info__text {
    position: relative;
    z-index: 1;
    font-size: 1.25rem;
    font-weight: 500;
    max-width: 350px;
    margin: 0;
}

.lead-form-box {
    min-height: 350px;
    border-radius: var(--radius);
    padding: 1.75rem 2rem;
    background: linear-gradient(136deg, #004563 3%, #0784ba 92%);
    color: #fff;
}

.lead-form-box__header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.lead-form-box__title {
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: uppercase;
    max-width: 320px;
    line-height: 1.2;
    margin: 0;
}

.lead-form-box__contacts {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    flex-shrink: 0;
}

.lead-form-box__phone {
    background: var(--color-secondary-light);
    color: var(--color-text);
    font-size: 0.875rem;
    font-weight: 600;
    height: 40px;
    padding: 0 0.85rem;
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.lead-form-box__phone:hover {
    color: var(--color-secondary);
}

.lead-form-box__max {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #fff;
    font-size: 40px;
    line-height: 1;
    overflow: hidden;
    background: linear-gradient(135deg, #44ccff 0%, #5533ee 66%, #9933dd 100%);
}

.lead-form-box__max:hover {
    opacity: 0.9;
    color: #fff;
}

.lead-form-box__max .oft-icon {
    font-size: 40px;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
}

.lead-form-box__subtitle {
    font-size: 1rem;
    font-weight: 500;
    margin-bottom: 1.5rem;
    max-width: 300px;
}

.lead-form .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.oft-field {
    position: relative;
}

.oft-field .form-control {
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    height: 40px;
    color: #000;
    font-family: var(--font-family);
    font-size: 1rem; /* 16px — заполненное значение */
    font-weight: 400;
    line-height: 1.2;
    padding: 1rem 0.625rem 0.25rem;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.oft-field--textarea .form-control {
    height: auto;
    min-height: 45px;
    padding-top: 1.15rem;
    padding-bottom: 0.5rem;
    resize: vertical;
}

.oft-field--phone .form-control {
    padding-left: 2rem;
}

.oft-field__flag {
    position: absolute;
    left: 0.6rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: flex;
    line-height: 0;
    pointer-events: none;
}

.oft-field__flag img {
    width: 12px;
    height: 8px;
    display: block;
}

.oft-field__label {
    position: absolute;
    left: 0.625rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    color: var(--color-text);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1;
    pointer-events: none;
    transition: top 0.15s ease, font-size 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.oft-field--phone .oft-field__label {
    left: 2rem;
}

.oft-field--textarea .oft-field__label {
    top: 0.85rem;
    transform: none;
}

.oft-field .form-control:focus,
.oft-field .form-control:not(:placeholder-shown) {
    background: rgba(255, 255, 255, 0.5);
    outline: none;
    box-shadow: none;
}

.oft-field .form-control:focus + .oft-field__label,
.oft-field .form-control:not(:placeholder-shown) + .oft-field__label {
    top: 0.3rem;
    transform: none;
    font-size: 0.5rem;
    font-weight: 500;
    color: var(--color-text-muted); /* #767575 */
}

.oft-field .form-control:focus {
    border-color: rgba(255, 255, 255, 0.85);
}

.oft-field.is-invalid .form-control,
.was-validated .oft-field .form-control:invalid {
    border-color: red;
    background: rgba(255, 255, 255, 0.5);
}

.oft-field__error {
    display: none;
    margin-top: 0.15rem;
    font-size: 0.5rem;
    font-weight: 400;
    line-height: 1.2;
    color: red;
}

.oft-field.is-invalid .oft-field__error,
.was-validated .oft-field .form-control:invalid ~ .oft-field__error,
.was-validated .oft-check .form-check-input:invalid ~ .oft-field__error {
    display: block;
}

.oft-check {
    position: relative;
    padding-left: 1.35rem;
}

.oft-check .form-check-input {
    float: none;
    width: 0.75rem;
    height: 0.75rem;
    margin-left: -1.35rem;
    margin-top: 0.2rem;
    border: 1px solid #fff;
    border-radius: 50%;
    background-color: transparent;
}

.oft-check .form-check-input:checked {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
}

.oft-check .form-check-input:focus {
    box-shadow: 0 0 0 0.15rem rgba(255, 204, 15, 0.35);
}

.was-validated .oft-check .form-check-input:invalid,
.oft-check.is-invalid .form-check-input {
    border-color: red;
}

.lead-form .form-check-label {
    color: #fff;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.25;
}

.lead-form .form-check-label a {
    color: var(--color-accent);
    text-decoration: underline;
}

.oft-smartcaptcha {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.oft-smartcaptcha .smart-captcha {
    max-width: 100%;
}

.lead-form .oft-smartcaptcha {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.lead-form .btn-submit {
    background: #fff;
    color: #181818;
    border: none;
    border-radius: var(--radius-sm); /* 5px */
    height: 40px;
    min-width: 250px;
    font-family: var(--font-family);
    font-weight: 500;
    font-size: 0.75rem; /* 12px */
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 0 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;
}

/* PASSIV → HOVER → ACTIV: белая → #ffcc0f → #ffcc0f */
.lead-form .btn-submit:hover {
    background: var(--color-accent);
    color: #181818;
}

.lead-form .btn-submit:active,
.lead-form .btn-submit.is-active {
    background: var(--color-accent);
    color: #181818;
    transform: translateY(1px);
}

.lead-form .btn-submit:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.lead-form-success {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius);
    overflow: hidden;
}

.lead-form-success[hidden] {
    display: none !important;
}

.lead-form-success__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(24, 24, 24, 0.6);
}

.lead-form-success__dialog {
    position: relative;
    z-index: 1;
    width: min(400px, calc(100% - 2rem));
    min-height: 200px;
    padding: 1.25rem 1.5rem 1.5rem;
    background: #fff;
    border-radius: var(--radius); /* 10px */
    text-align: center;
    color: var(--color-text);
}

.lead-form-success__close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 25px;
    height: 25px;
    padding: 0;
    border: 0;
    background: transparent;
    line-height: 0;
    z-index: 2;
}

.lead-form-success__close img {
    width: 25px;
    height: 25px;
}

.lead-form-success__close:hover {
    opacity: 0.85;
}

.lead-form-success__logo {
    display: block;
    width: min(234px, 80%);
    height: auto;
    margin: 0 auto 0.85rem;
}

.lead-form-success__title {
    margin: 0 0 0.35rem;
    font-size: 2rem; /* 32px */
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text);
}

.lead-form-success__text {
    margin: 0 auto;
    font-size: 1.5rem; /* 24px */
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
    max-width: 18.75rem;
}

@media (max-width: 959.98px) {
    .lead-form-block {
        grid-template-columns: 1fr;
    }

    .lead-form .btn-submit {
        width: 100%;
        min-width: 0;
    }

    .lead-form-success__close {
        top: 0.75rem;
        right: 0.75rem;
    }

    .lead-form-success__title {
        font-size: 1.5rem;
    }

    .lead-form-success__text {
        font-size: 1rem;
    }

    .about-features {
        grid-template-columns: 1fr;
    }

    .about-feature {
        border-left: none;
        padding-left: 0;
        border-top: 1px solid var(--color-border);
        padding-top: 1.5rem;
    }

    .about-feature:first-child {
        border-top: none;
        padding-top: 0;
    }
}

/* Gallery collage only below tablet */
@media (max-width: 639.98px) {
    .lead-form .form-row {
        grid-template-columns: 1fr;
    }

    .about-gallery {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
    }

    .about-gallery__item--tall,
    .about-gallery__item--narrow {
        grid-row: auto;
        min-height: 200px;
    }
}

/* Specialists */
.specialists-section {
    background: #fff;
}

.specialists-section__header {
    margin-bottom: 1.75rem;
}

.specialist-card {
    background: var(--color-bg);
    border-radius: var(--radius);
    padding: 0.65rem 0.65rem 1.15rem;
    min-height: 400px;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.specialist-card__photo {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 260 / 200;
    background: #fff;
    margin-bottom: 0.85rem;
    flex-shrink: 0;
}

.specialist-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.specialist-card__exp {
    position: absolute;
    left: 8px;
    bottom: 8px;
    min-width: 72px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: var(--radius-sm);
    font-size: 0.625rem;
    font-weight: 400;
    color: var(--color-text);
    padding: 0 0.4rem;
    line-height: 1;
}

.specialist-card__reviews {
    position: absolute;
    right: 8px;
    bottom: 8px;
    min-width: 72px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    background: #fff;
    border-radius: var(--radius-sm);
    font-size: 0.625rem;
    font-weight: 400;
    color: var(--color-text);
    padding: 0 0.35rem 0 0.25rem;
    line-height: 1;
}

.specialist-card__reviews img {
    width: 8px;
    height: 8px;
    flex-shrink: 0;
}

.specialist-card__social {
    position: absolute;
    top: 8px;
    right: 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.specialist-card__social a {
    width: 20px;
    height: 20px;
    border-radius: 4.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 20px;
    line-height: 1;
    overflow: hidden;
}

.specialist-card__social a:hover {
    opacity: 0.9;
    color: #fff;
}

.specialist-card__social a .oft-icon {
    font-size: inherit;
    width: 1em;
    height: 1em;
    line-height: 1;
}

.specialist-card__social a.social-vk {
    background: #1a76ff;
}

.specialist-card__social a.social-ok {
    background: #ff7800;
}

.specialist-card__social a.social-tg {
    background: #2aabee;
}

.specialist-card__body {
    padding: 0 0.35rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.specialist-card__name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 0.35rem;
    line-height: 1.25;
    min-height: 2.5rem;
}

.specialist-card__name a {
    color: inherit;
    text-decoration: none;
}

.specialist-card__name a:hover {
    color: var(--color-primary);
}

.specialist-card__specialty {
    font-size: 0.625rem;
    font-weight: 500;
    color: var(--color-secondary);
    margin-bottom: 1rem;
    line-height: 1.5;
    min-height: 1.875rem;
}

.specialist-card__cta {
    margin-top: auto;
    align-self: center;
    min-width: 0;
    width: 200px;
    height: 40px;
    font-size: 0.75rem;
    font-weight: 500;
    white-space: nowrap;
    padding: 0 0.75rem;
}

/* Equal-height slides so CTAs line up across visible cards */
.specialists-swiper .swiper-wrapper,
.promotions-swiper .swiper-wrapper,
.reviews-swiper .swiper-wrapper {
    align-items: stretch;
}

.specialists-swiper .swiper-slide,
.promotions-swiper .swiper-slide,
.reviews-swiper .swiper-slide {
    height: auto !important;
    display: flex;
    box-sizing: border-box;
}

.specialists-swiper .specialist-card,
.promotions-swiper .promo-card,
.reviews-swiper .review-card {
    width: 100%;
    flex: 1 1 auto;
    align-self: stretch;
}

.specialists-pagination,
.promotions-pagination,
.reviews-pagination,
.news-pagination {
    margin-top: 1.5rem;
    position: relative !important;
}

.specialists-pagination .swiper-pagination-bullet,
.promotions-pagination .swiper-pagination-bullet,
.reviews-pagination .swiper-pagination-bullet,
.news-pagination .swiper-pagination-bullet {
    background: #d0d0d0;
    opacity: 1;
}

.specialists-pagination .swiper-pagination-bullet-active {
    background: var(--color-secondary);
}

.promotions-pagination .swiper-pagination-bullet-active {
    background: var(--color-primary);
}

.reviews-pagination .swiper-pagination-bullet-active {
    background: var(--color-secondary);
}

/* FAQ */
.faq-section {
    background: var(--color-bg);
}

.faq-section .section-title {
    margin-bottom: 0.85rem;
}

.faq-section .section-text {
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.45;
    max-width: 24rem;
}

.faq-accordion {
    --bs-accordion-border-width: 0;
    --bs-accordion-btn-icon-width: 30px;
    --bs-accordion-btn-focus-box-shadow: none;
    --bs-accordion-btn-focus-border-color: transparent;
    --bs-accordion-active-bg: transparent;
    --bs-accordion-active-color: var(--color-text);
    --bs-accordion-btn-color: var(--color-text);
    --bs-accordion-bg: transparent;
}

.faq-accordion .accordion-item {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
}

.faq-accordion .accordion-item:first-child {
    border-top: 1px solid var(--color-border);
}

.faq-accordion .accordion-header {
    margin: 0;
}

.faq-accordion .accordion-button {
    background: transparent;
    box-shadow: none;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-text);
    padding: 1.15rem 0.25rem 1.15rem 1.35rem;
    gap: 1rem;
    align-items: center;
}

.faq-accordion .accordion-button:focus {
    box-shadow: none;
    border-color: transparent;
}

.faq-accordion .accordion-button:not(.collapsed) {
    background: transparent;
    color: var(--color-text);
    box-shadow: none;
    padding-bottom: 0.65rem;
}

.faq-accordion .accordion-button::after {
    width: 30px;
    height: 30px;
    margin-left: auto;
    flex-shrink: 0;
    background-image: url("../img/svg/faq-plus.svg");
    background-size: 30px 30px;
    background-position: center;
    background-repeat: no-repeat;
    transform: none;
    transition: none;
}

.faq-accordion .accordion-button:not(.collapsed)::after {
    background-image: url("../img/svg/faq-close.svg");
    transform: none;
}

.faq-accordion .accordion-body {
    padding: 0 3.5rem 1.15rem 1.35rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.45;
    color: var(--color-text);
}

@media (max-width: 575.98px) {
    .faq-accordion .accordion-button {
        font-size: 1.05rem;
        padding-left: 0.5rem;
    }

    .faq-accordion .accordion-body {
        padding-left: 0.5rem;
        padding-right: 2.5rem;
    }
}

/* Promotions */
.promotions-section {
    background: #fff;
}

.promotions-section__header {
    margin-bottom: 1.75rem;
}

.promo-card {
    position: relative;
    background: var(--color-bg);
    border-radius: var(--radius);
    overflow: hidden;
    min-height: 300px;
    height: 100%;
    display: flex;
    flex-direction: column;
    text-align: center;
}

.promo-card__image {
    position: relative;
    width: 100%;
    aspect-ratio: 240 / 140;
    height: auto;
    overflow: visible;
    background: #fff;
    border-radius: var(--radius) var(--radius) 0 0;
    flex-shrink: 0;
    z-index: 1;
}

.promo-card__image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: var(--radius) var(--radius) 0 0;
}

.promo-card__badge {
    position: absolute;
    left: 50%;
    bottom: -10px;
    top: auto;
    transform: translateX(-50%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(100% - 1.5rem);
    max-width: 200px;
    min-height: 20px;
    height: auto;
    background: var(--color-accent);
    color: var(--color-text);
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.2;
    border-radius: var(--radius-sm);
    padding: 0.2rem 0.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
}

.promo-card__body {
    padding: 1.75rem 1rem 1.15rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    align-items: center;
}

.promo-card__title {
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text);
    margin-bottom: 1.25rem;
    line-height: 1.2;
    min-height: 2.4rem;
}

.promo-card__cta {
    margin-top: auto;
    min-width: 0;
    width: 150px;
    height: 35px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: none;
}

/* Reviews */
.reviews-section {
    background: var(--color-bg);
}

.reviews-section__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1rem;
}

.reviews-section__lead {
    margin: 0.15rem 0 0;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.35;
    color: var(--color-text);
}

.reviews-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.reviews-section__leave {
    min-width: 120px;
    width: auto;
    height: 40px;
    padding: 0 0.85rem;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: none;
    white-space: nowrap;
}

.reviews-rating-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    margin-bottom: 1.75rem;
}

.reviews-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.reviews-rating__value {
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-text);
}

.reviews-rating__stars {
    display: block;
    width: 104px;
    height: 20px;
}

.reviews-platforms {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.reviews-platform {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 165px;
    height: 45px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    flex-shrink: 0;
    transition: opacity 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.reviews-platform img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.reviews-platform:hover {
    opacity: 0.88;
}

.review-card {
    background: #fff;
    border: 1px solid #c4c4c4;
    border-radius: var(--radius);
    padding: 1.15rem 1rem 1rem;
    height: 100%;
    min-height: 150px;
    display: flex;
    flex-direction: column;
}

.review-card__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.review-card__name {
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.2;
}

.review-card__meta {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.review-card__date {
    font-size: 0.75rem;
    color: var(--color-text);
    line-height: 1;
}

.review-card__stars {
    display: block;
    width: 49px;
    height: 10px;
}

.review-card__text {
    font-size: 1rem;
    line-height: 1.25;
    margin-bottom: 0.5rem;
    flex: 0 0 auto;
    color: var(--color-text);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    max-height: calc(1.25em * 2);
    overflow: hidden;
}

.review-card__reply {
    margin-top: auto;
    padding: 0.65rem 0.75rem;
    border-left: 3px solid var(--color-primary);
    background: var(--color-primary-light, #e8f5ee);
    border-radius: 0 6px 6px 0;
}

.review-card__reply-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 0.25rem;
}

.review-card__reply-text {
    font-size: 0.875rem;
    line-height: 1.35;
    margin: 0;
    color: var(--color-text);
}

.review-card__more {
    appearance: none;
    border: 0;
    background: none;
    padding: 0;
    margin: 0 0 0.25rem;
    color: var(--color-secondary);
    font-size: 1rem;
    line-height: 1.2;
    text-decoration: underline;
    text-underline-offset: 4px;
    align-self: flex-start;
    cursor: pointer;
}

.review-card__more:hover {
    color: var(--color-primary);
}

.review-card__more[hidden] {
    display: none !important;
}

/* Reviews listing page */
.reviews-page__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 2.5rem;
}

.reviews-page__title {
    margin: 0 0 0.5rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.reviews-page__count {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text-muted);
}

.reviews-page__leave {
    flex-shrink: 0;
}

.reviews-filter {
    margin: 0 0 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.reviews-filter__field {
    position: relative;
}

.reviews-filter__icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    pointer-events: none;
}

.reviews-filter__input {
    height: 50px;
    padding-left: 3rem;
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--color-bg);
    font-size: 1rem;
    font-weight: 500;
    box-shadow: none;
}

.reviews-filter__input:focus {
    background: var(--color-bg);
    box-shadow: 0 0 0 1px var(--color-secondary);
    outline: none;
}

.reviews-filter__selects {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.reviews-filter__select {
    height: 50px;
    padding: 0 2.5rem 0 1rem;
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--color-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231a2a4a' d='M6 8L0 0h12z'/%3E%3C/svg%3E") no-repeat right 1rem center;
    background-size: 12px 8px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text, #1a2a4a);
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    box-shadow: none;
}

.reviews-filter__select:focus {
    box-shadow: 0 0 0 1px var(--color-secondary);
    outline: none;
}

.reviews-table {
    border: 1px solid var(--color-primary);
    border-radius: var(--radius);
    overflow: hidden;
    background: #fff;
}

.reviews-table__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.5rem;
    align-items: center;
    min-height: 55px;
    padding: 0.85rem 2.5rem;
    background: var(--color-primary);
    color: #fff;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
}

.reviews-table__body {
    padding: 0.35rem 2.5rem 1.15rem;
}

.review-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.5rem;
    align-items: start;
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--color-border);
}

.review-item:last-child {
    border-bottom: 0;
}

.review-item[hidden] {
    display: none !important;
}

.review-item__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.85rem;
    margin-bottom: 0.45rem;
}

.review-item__name {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
    color: var(--color-text);
}

.review-item__text {
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
    white-space: pre-wrap;
}

.review-item__reply {
    margin-top: 0.75rem;
    padding: 0.65rem 0.75rem;
    border-left: 3px solid var(--color-primary);
    background: var(--color-primary-light);
    border-radius: 0 6px 6px 0;
}

.review-item__reply-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 0.25rem;
}

.review-item__reply-text {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.4;
    color: var(--color-text);
    white-space: pre-wrap;
}

.review-item__side {
    padding-top: 0.1rem;
    text-align: right;
}

.review-item__date {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--color-text);
    white-space: nowrap;
}

.review-stars {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.review-stars__star {
    display: block;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    background-color: #cfcfcf;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.7.9-4.8 4.7 1.2 6.6L12 17.8 6 20.8l1.2-6.6L2.4 9.5l6.7-.9L12 2.5z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.7.9-4.8 4.7 1.2 6.6L12 17.8 6 20.8l1.2-6.6L2.4 9.5l6.7-.9L12 2.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.review-stars__star.is-filled {
    background-color: var(--color-accent);
}

.review-stars--sm .review-stars__star {
    width: 10px;
    height: 10px;
}

.reviews-page__empty {
    margin: 1.5rem 0 0;
    text-align: center;
    color: var(--color-text-muted);
    font-size: 1rem;
}

.reviews-page__empty[hidden] {
    display: none !important;
}

.reviews-page__more {
    display: flex;
    width: 250px;
    min-width: 0;
    height: 50px;
    margin: 1.75rem auto 0;
    font-size: 0.875rem;
}

.reviews-page__more[hidden] {
    display: none !important;
}

.review-rating-radios {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.review-rating-radios__option {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0;
    cursor: pointer;
}

.review-rating-radios__option input {
    position: absolute;
    inset: 0;
    opacity: 0;
    margin: 0;
    cursor: pointer;
}

.review-rating-radios__option span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: #fff;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-text);
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.review-rating-radios__option input:checked + span,
.review-rating-radios__option input:focus-visible + span {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

.oft-field--rating {
    margin-bottom: 1rem;
}

.oft-field--rating .oft-field__legend {
    display: block;
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-muted);
}

.oft-field--rating .oft-field__error {
    margin-top: 0.35rem;
}

@media (max-width: 959.98px) {
    .reviews-page__title {
        font-size: 1.75rem;
    }

    .reviews-page__header {
        margin-bottom: 2rem;
    }

    .reviews-table__head,
    .reviews-table__body {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .reviews-table__head {
        font-size: 1rem;
    }
}

@media (max-width: 639.98px) {
    .reviews-page__title {
        font-size: 1.5rem;
    }

    .reviews-page__header {
        margin-bottom: 1.75rem;
    }

    .reviews-filter__selects {
        grid-template-columns: 1fr;
    }

    .reviews-page__leave {
        width: 100%;
    }

    .review-item {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .review-item__side {
        text-align: left;
        order: -1;
    }

    .review-item__date {
        font-size: 0.875rem;
        color: var(--color-text-muted);
    }

    .reviews-table__head {
        display: none;
    }

    .reviews-page__more {
        width: 100%;
        max-width: 250px;
    }
}

/* Breadcrumbs */
.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0 0 1.25rem;
    font-size: 1rem;
    line-height: 1.2;
}

.breadcrumbs__link {
    color: var(--color-text-muted);
}

.breadcrumbs__link:hover {
    color: var(--color-primary);
}

.breadcrumbs__sep {
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.breadcrumbs__current {
    color: var(--color-primary);
}

/* Doctors catalog — Figma 347:515 */
.doctors-page {
    padding-top: 2rem;
    padding-bottom: 2rem;
    background: #fff;
}

.doctors-page__title {
    margin: 0 0 1.5rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.doctors-page__filter-label {
    margin: 0 0 0.85rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--color-text);
}

.doctors-filter {
    display: grid;
    grid-template-columns: minmax(0, 32rem);
    gap: 1.25rem;
    margin-bottom: 2.25rem;
}

.doctors-filter__input,
.doctors-filter__select {
    height: 50px;
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.2;
    padding: 0 1.35rem;
    box-shadow: none;
}

.doctors-filter__select {
    padding-right: 2.5rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M4 5L0 0h8L4 5z' fill='%23181818'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.1rem center;
    appearance: none;
    -webkit-appearance: none;
}

.doctors-filter__input::placeholder {
    color: var(--color-text);
    opacity: 1;
}

.doctors-filter__input:focus,
.doctors-filter__select:focus {
    background-color: var(--color-bg);
    border-color: transparent;
    box-shadow: 0 0 0 1px var(--color-secondary);
    outline: none;
}

.doctors-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem 1.25rem;
}

.specialist-card--catalog {
    min-height: 400px;
}

.specialist-card--catalog[hidden] {
    display: none !important;
}

.doctors-page__empty {
    margin: 1.5rem 0 0;
    text-align: center;
    color: var(--color-text-muted);
    font-size: 1rem;
}

.doctors-page__empty[hidden] {
    display: none !important;
}

.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 1199.98px) {
    .doctors-page__title {
        font-size: 2rem;
    }

    .doctors-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.25rem 1rem;
    }

    .doctors-filter {
        gap: 1rem;
    }
}

@media (max-width: 959.98px) {
    .doctors-page {
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
    }

    .doctors-page__title {
        font-size: 1.75rem;
        margin-bottom: 1.15rem;
    }

    .doctors-filter {
        margin-bottom: 1.5rem;
    }

    .doctors-filter__input,
    .doctors-filter__select {
        height: 45px;
        font-size: 0.9rem;
        padding-left: 1rem;
    }

    .doctors-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem 0.85rem;
    }

    .specialist-card--catalog {
        min-height: 0;
    }
}

@media (max-width: 639.98px) {
    .doctors-page__title {
        font-size: 1.5rem;
    }

    .doctors-page__filter-label {
        font-size: 0.8rem;
    }

    .doctors-filter {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        margin-bottom: 1.25rem;
    }

    .doctors-filter__input,
    .doctors-filter__select {
        height: 42px;
        font-size: 0.875rem;
    }
}

@media (max-width: 479.98px) {
    .doctors-page {
        padding-top: 1.25rem;
        padding-bottom: 1.25rem;
    }

    .doctors-page__title {
        font-size: 1.35rem;
        margin-bottom: 1rem;
    }

    .doctors-grid {
        grid-template-columns: 1fr;
        gap: 0.85rem;
        max-width: 320px;
        margin-inline: auto;
    }
}

/* Doctor profile — Figma 426:210 */
.doctor-page {
    padding-top: 2rem;
    padding-bottom: 0;
    background: #fff;
}

.doctor-page .breadcrumbs__current {
    color: var(--color-primary);
}

.doctor-hero__title {
    margin: 0 0 1.35rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text);
    max-width: 32rem;
}

.doctor-hero__layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 2rem 2.15rem;
    align-items: start;
}

.doctor-hero__photo-wrap {
    background: var(--color-bg);
    border-radius: 10px;
    padding: 1.05rem 1.25rem;
}

.doctor-hero__photo {
    position: relative;
    width: 100%;
    aspect-ratio: 260 / 306;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.doctor-hero__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}

.doctor-hero__social {
    position: absolute;
    top: 12px;
    left: 11px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.doctor-hero__social a {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 30px;
    line-height: 1;
    overflow: hidden;
}

.doctor-hero__social a.social-vk {
    background: #1a76ff;
}

.doctor-hero__social a.social-ok {
    background: #ff7800;
}

.doctor-hero__social a:hover {
    opacity: 0.9;
    color: #fff;
}

.doctor-hero__badges {
    position: absolute;
    left: 11px;
    bottom: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.doctor-hero__badge {
    min-width: 89px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0 0.5rem;
    background: #fff;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1;
    color: var(--color-text);
}

.doctor-hero__badge img {
    width: 10px;
    height: 10px;
}

.doctor-hero__badge--reviews {
    justify-content: flex-start;
    gap: 0.35rem;
    padding-left: 0.45rem;
}

.doctor-hero__info {
    margin: 0 0 1.35rem;
    display: grid;
    gap: 0.25rem;
}

.doctor-hero__role {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-primary);
}

.doctor-hero__category,
.doctor-hero__exp {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.65;
    color: var(--color-text);
}

.doctor-hero__exp-label {
    font-weight: 600;
}

.doctor-meta {
    margin: 0 0 1.35rem;
    display: grid;
    gap: 0.35rem;
}

.doctor-meta__row {
    display: grid;
    grid-template-columns: 12.25rem minmax(0, 1fr);
    gap: 0.5rem 0.75rem;
    align-items: start;
}

.doctor-meta__row dt {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.65;
    color: var(--color-text);
}

.doctor-meta__row dd {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.65;
    color: var(--color-text);
}

.doctor-consult {
    background: var(--color-bg);
    border: 1px solid var(--color-text-muted);
    border-radius: 20px;
    padding: 1.1rem 1.5rem 1.35rem;
}

.doctor-consult__rows {
    display: grid;
    gap: 0.15rem;
    margin-bottom: 1rem;
}

.doctor-consult__row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    font-size: 1.125rem;
    line-height: 1.65;
}

.doctor-consult__label {
    font-weight: 600;
    color: var(--color-text);
}

.doctor-consult__value {
    font-weight: 400;
    color: var(--color-text);
}

.doctor-consult__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
}

.doctor-consult__cta {
    width: 200px;
    min-width: 0;
    height: 40px;
    font-size: 0.75rem;
}

.doctor-edu {
    margin-top: 2.5rem;
}

.doctor-edu__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 29px;
    padding: 0.35rem 0.95rem;
    margin-bottom: 1.15rem;
    background: rgba(0, 114, 54, 0.1);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
}

.doctor-edu__block + .doctor-edu__block {
    margin-top: 1.75rem;
}

.doctor-edu__title {
    margin: 0 0 0.85rem;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
    color: var(--color-text);
}

.doctor-edu__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}

.doctor-edu__list--bullets {
    list-style: disc;
    padding-left: 1.25rem;
}

.doctor-edu__list--bullets .doctor-edu__item {
    display: list-item;
}

.doctor-edu__list--bullets .doctor-edu__text {
    display: inline;
}

.doctor-edu__item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.35rem 0.85rem;
    align-items: start;
}

.doctor-edu__item--plain {
    grid-template-columns: minmax(0, 1fr);
}

.doctor-edu__year {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text);
    white-space: nowrap;
}

.doctor-edu__text {
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--color-text);
    min-width: 0;
}

.doctor-edu__html,
.doctor-edu__additional {
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--color-text);
}

.doctor-edu__html ul,
.doctor-edu__html ol {
    margin: 0;
    padding-left: 1.25rem;
}

.doctor-edu__html li {
    margin: 0 0 0.65rem;
}

.doctor-edu__html p {
    margin: 0 0 0.65rem;
}

.doctor-edu__html p:last-child,
.doctor-edu__html li:last-child {
    margin-bottom: 0;
}

.doctor-edu__additional {
    margin: 0;
}

.doctor-prices {
    margin-top: 2.75rem;
    padding: 2.5rem 0 3rem;
    background: var(--color-bg);
}

.doctor-prices__title {
    margin: 0 0 1.25rem;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
    color: var(--color-text);
}

.doctor-prices__panel {
    background: #fff;
    border: 1px solid var(--color-primary);
    border-radius: var(--radius);
    padding: 1.75rem 2.25rem;
}

.doctor-price {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.5rem;
    align-items: start;
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--color-primary);
}

.doctor-price:first-child {
    padding-top: 0;
}

.doctor-price:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.doctor-price[hidden] {
    display: none !important;
}

.doctor-price__name {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
    color: var(--color-text);
}

.doctor-price__text {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
    max-width: 62.5rem;
}

.doctor-price__code {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--color-text-muted);
}

.doctor-price__cost {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-text);
    white-space: nowrap;
    padding-top: 0.15rem;
}

.doctor-prices__note {
    margin: 1.5rem auto 1.25rem;
    max-width: 48rem;
    text-align: center;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color-text);
}

.doctor-prices__note a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.doctor-prices__more {
    display: flex;
    width: 250px;
    min-width: 0;
    height: 50px;
    margin: 0 auto;
    font-size: 0.875rem;
}

@media (max-width: 1199.98px) {
    .doctor-hero__title {
        font-size: 2rem;
    }

    .doctor-hero__layout {
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 1.5rem;
    }

    .doctor-meta__row {
        grid-template-columns: 10.5rem minmax(0, 1fr);
    }

    .doctor-prices__panel {
        padding: 1.35rem 1.5rem;
    }
}

/* Tablet: photo + meta side by side, consult full-bleed below */
@media (max-width: 959.98px) {
    .doctor-page {
        padding-top: 1.5rem;
    }

    .doctor-hero__title {
        font-size: 1.75rem;
        margin-bottom: 1.15rem;
    }

    .doctor-hero__layout {
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 1.15rem 1.25rem;
    }

    .doctor-hero__content {
        display: contents;
    }

    .doctor-hero__info {
        grid-column: 2;
        grid-row: 1;
        margin-bottom: 0;
        align-self: start;
    }

    .doctor-hero__role {
        font-size: 1.25rem;
    }

    .doctor-consult {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: 0.35rem;
    }

    .doctor-meta__row {
        grid-template-columns: 9.5rem minmax(0, 1fr);
        gap: 0.25rem 0.65rem;
    }

    .doctor-meta__row dt,
    .doctor-meta__row dd,
    .doctor-consult__row,
    .doctor-edu__year,
    .doctor-edu__text {
        font-size: 0.9rem;
    }

    .doctor-edu {
        margin-top: 2rem;
    }

    .doctor-prices {
        margin-top: 2rem;
    }

    .doctor-prices__title {
        font-size: 1.25rem;
    }

    .doctor-price__name {
        font-size: 1rem;
    }

    .doctor-price__text {
        font-size: 0.85rem;
    }
}

/* Phone: title → photo → meta → consult; CTAs stack */
@media (max-width: 639.98px) {
    .doctor-hero__title {
        font-size: 1.5rem;
        margin-bottom: 1rem;
        max-width: none;
    }

    .doctor-hero__layout {
        grid-template-columns: 1fr;
        gap: 1.15rem;
    }

    .doctor-hero__photo-wrap {
        max-width: 280px;
        margin: 0 auto;
        width: 100%;
        padding: 0.85rem 1rem;
    }

    .doctor-hero__content {
        display: block;
    }

    .doctor-hero__info {
        grid-column: auto;
        grid-row: auto;
        margin-bottom: 1rem;
    }

    .doctor-hero__role {
        font-size: 1.15rem;
    }

    .doctor-hero__category,
    .doctor-hero__exp,
    .doctor-consult__row {
        font-size: 1rem;
    }

    .doctor-consult {
        grid-column: auto;
        grid-row: auto;
        padding: 1rem 1.1rem 1.15rem;
    }

    .doctor-consult__actions {
        flex-direction: column;
    }

    .doctor-consult__cta {
        width: 100%;
    }

    .doctor-edu__item {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    .doctor-edu__year {
        font-weight: 700;
        color: var(--color-text);
    }

    .doctor-price {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .doctor-price__cost {
        order: -1;
        font-size: 1.15rem;
    }

    .doctor-prices__panel {
        padding: 1.1rem 1rem;
    }

    .doctor-prices__note {
        text-align: left;
        font-size: 0.8rem;
    }

    .doctor-prices__more {
        width: 100%;
        max-width: 250px;
    }
}

@media (max-width: 479.98px) {
    .doctor-page {
        padding-top: 1.25rem;
    }

    .doctor-hero__title {
        font-size: 1.35rem;
    }

    .doctor-hero__photo-wrap {
        max-width: 240px;
    }

    .doctor-edu__title {
        font-size: 1.1rem;
    }

    .doctor-prices__title {
        font-size: 1.1rem;
    }
}

/* Promotions catalog — Figma 437:81 */
.promotions-page {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.promotions-page .breadcrumbs__current {
    color: var(--color-primary);
}

.promotions-page__title {
    margin: 0 0 1.75rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.promotions-grid__list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.5rem 1.25rem;
}

.promotions-grid__list .promo-card[hidden] {
    display: none !important;
}

.promotions-page__more,
#pdopage .promotions-page__more,
#pdopage .btn.btn-default {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 250px;
    min-width: 0;
    height: 50px;
    margin: 2rem auto 0;
    font-size: 0.875rem;
    font-weight: 500;
    text-transform: uppercase;
    background: #fff;
}

.promotions-page__more[hidden] {
    display: none !important;
}

@media (max-width: 1199.98px) {
    .promotions-page__title {
        font-size: 2rem;
    }

    .promotions-grid__list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 959.98px) {
    .promotions-page {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .promotions-page__title {
        font-size: 1.75rem;
        margin-bottom: 1.35rem;
    }

    .promotions-grid__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.15rem;
    }
}

@media (max-width: 639.98px) {
    .promotions-page__title {
        font-size: 1.5rem;
    }

    .promotions-grid__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.85rem;
    }

    .promotions-page__more,
    #pdopage .promotions-page__more {
        width: 100%;
        max-width: 250px;
    }
}

@media (max-width: 479.98px) {
    .promotions-page {
        padding-top: 1.25rem;
    }

    .promotions-page__title {
        font-size: 1.35rem;
    }

    .promotions-grid__list {
        grid-template-columns: 1fr;
        max-width: 280px;
        margin-inline: auto;
    }
}

/* Appointment booking — Figma 538:2742 */
.appointment-page {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.appointment-page .breadcrumbs__current {
    color: var(--color-primary);
}

.appointment-page__title {
    margin: 0 0 1.5rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.appointment-filter {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr) 250px;
    gap: 1rem 1.15rem;
    margin-bottom: 2rem;
    align-items: stretch;
}

.appointment-filter__date {
    position: relative;
    height: 50px;
}

.appointment-filter__input--date {
    position: absolute;
    inset: 0;
    z-index: 2;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}

.appointment-filter__date-display {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    padding: 0 2.75rem 0 1.1rem;
    background: var(--color-bg);
    border: 1px solid var(--color-text-muted);
    border-radius: var(--radius-sm);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1;
    color: var(--color-text-muted);
    pointer-events: none;
}

.appointment-filter__date-icon {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    width: 23px;
    height: 23px;
    object-fit: contain;
    pointer-events: none;
}

.appointment-filter__select {
    height: 50px;
    border: 1px solid var(--color-text-muted);
    border-radius: var(--radius-sm);
    background-color: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.2;
    padding: 0 2.5rem 0 1.1rem;
    box-shadow: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M4 5L0 0h8L4 5z' fill='%23181818'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.1rem center;
    appearance: none;
    -webkit-appearance: none;
}

.appointment-filter__select:focus,
.appointment-filter__date:focus-within .appointment-filter__date-display {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 1px var(--color-secondary);
    outline: none;
}

.appointment-filter__submit {
    width: 100%;
    height: 50px;
    font-size: 1rem;
    font-weight: 700;
}

.appointment-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem 1.5rem;
}

.appointment-card {
    border: 1px solid var(--color-secondary-light);
    border-radius: var(--radius);
    padding: 1.5rem 1.4rem 1.35rem;
    background: #fff;
    min-height: 490px;
}

.appointment-card[hidden] {
    display: none !important;
}

.appointment-card__name {
    margin: 0 0 0.65rem;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
    color: var(--color-secondary);
}

.appointment-card__date {
    margin: 0 0 1.15rem;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.3;
    color: var(--color-text);
}

.appointment-card__week {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: 40px;
    margin-bottom: 1.15rem;
    padding: 0 0.75rem;
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--color-secondary);
    color: #fff;
    font-family: var(--font-family);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
}

.appointment-card__week img {
    width: 23px;
    height: 23px;
    object-fit: contain;
    flex-shrink: 0;
}

.appointment-card__week:hover {
    opacity: 0.92;
    color: #fff;
}

.appointment-card__slots {
    display: grid;
    grid-template-columns: repeat(2, 70px);
    gap: 0.35rem 0.35rem;
    justify-content: center;
}

.appointment-slot {
    width: 70px;
    height: 30px;
    border: 0;
    border-radius: var(--radius-sm);
    background: #007236;
    color: #fff;
    font-family: var(--font-family);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
}

.appointment-slot:hover:not(:disabled) {
    opacity: 0.9;
}

.appointment-slot.is-selected:not(:disabled) {
    outline: 2px solid #004563;
    outline-offset: 2px;
}

.appointment-slot.is-busy,
.appointment-slot:disabled {
    background: #d9d9d9;
    color: #9a9a9a;
    cursor: not-allowed;
}

.appointment-page__empty {
    margin: 1.5rem 0 0;
    text-align: center;
    color: var(--color-text-muted);
    font-size: 1rem;
}

.appointment-page__empty[hidden] {
    display: none !important;
}

@media (max-width: 1199.98px) {
    .appointment-page__title {
        font-size: 2rem;
    }

    .appointment-filter {
        grid-template-columns: 160px minmax(0, 1fr) minmax(0, 1fr) 200px;
    }

    .appointment-filter__select,
    .appointment-filter__date-display {
        font-size: 1.1rem;
    }

    .appointment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 959.98px) {
    .appointment-page {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .appointment-page__title {
        font-size: 1.75rem;
        margin-bottom: 1.25rem;
    }

    .appointment-filter {
        grid-template-columns: 1fr 1fr;
    }

    .appointment-filter__field--date {
        grid-column: 1 / -1;
        max-width: 220px;
    }

    .appointment-filter__submit {
        grid-column: 1 / -1;
        max-width: 250px;
        justify-self: start;
    }

    .appointment-card__name,
    .appointment-card__date {
        font-size: 1.1rem;
    }
}

@media (max-width: 639.98px) {
    .appointment-page__title {
        font-size: 1.5rem;
    }

    .appointment-filter {
        grid-template-columns: 1fr;
    }

    .appointment-filter__field--date,
    .appointment-filter__submit {
        max-width: none;
        grid-column: auto;
    }

    .appointment-filter__select,
    .appointment-filter__date-display {
        font-size: 1rem;
    }

    .appointment-grid {
        grid-template-columns: 1fr;
        max-width: 320px;
        margin-inline: auto;
    }
}

@media (max-width: 479.98px) {
    .appointment-page {
        padding-top: 1.25rem;
    }

    .appointment-page__title {
        font-size: 1.35rem;
    }
}

/* Doctors schedule — Figma 540:4415 */
.schedule-page {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.schedule-page .breadcrumbs__current {
    color: var(--color-primary);
}

.schedule-page__title {
    margin: 0 0 1.5rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.schedule-filter {
    display: inline-flex;
    align-items: center;
    gap: 1rem 1.25rem;
    min-height: 50px;
    margin-bottom: 2rem;
    padding: 0 0 0 1.5rem;
    background: var(--color-secondary-light);
    border-radius: var(--radius-sm);
}

.schedule-filter__label {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--color-text);
    white-space: nowrap;
}

.schedule-filter__select {
    width: 64px;
    min-width: 64px;
    height: 50px;
    margin: 0;
    padding: 0 1.35rem 0 0.4rem;
    border: 1px solid var(--color-text-muted);
    border-radius: var(--radius-sm);
    background-color: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1;
    text-align: center;
    box-shadow: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M4 5L0 0h8L4 5z' fill='%23181818'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.55rem center;
    appearance: none;
    -webkit-appearance: none;
}

.schedule-filter__select:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 1px var(--color-secondary);
    outline: none;
}

.schedule-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.schedule-table {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
    table-layout: fixed;
}

.schedule-table th,
.schedule-table td {
    border: 1px solid #d9d9d9;
    vertical-align: middle;
    text-align: center;
}

.schedule-table__name-head {
    width: 300px;
    min-width: 220px;
    height: 80px;
    padding: 0.75rem 1rem;
    background: var(--color-secondary);
    color: #fff;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
}

.schedule-table__day-head {
    width: 140px;
    min-width: 120px;
    height: 80px;
    padding: 0.5rem 0.35rem;
    background: var(--color-bg);
    color: var(--color-secondary);
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.25;
}

.schedule-table__name {
    width: 300px;
    min-width: 220px;
    height: 80px;
    padding: 0.75rem 1rem;
    background: #fff;
    color: var(--color-secondary);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
}

.schedule-table__cell {
    width: 140px;
    min-width: 120px;
    height: 80px;
    padding: 0.5rem 0.35rem;
    background: #fff;
}

.schedule-table__cell.is-filled {
    background: var(--color-secondary-light);
}

.schedule-table__slot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 0.15rem 0.25rem;
    color: var(--color-secondary);
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
    text-align: center;
}

.schedule-table__slot:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.schedule-table [data-schedule-col][hidden] {
    display: none !important;
}

@media (max-width: 1199.98px) {
    .schedule-page__title {
        font-size: 2rem;
    }

    .schedule-table__name-head {
        font-size: 1.25rem;
    }

    .schedule-table__day-head,
    .schedule-table__name,
    .schedule-table__slot {
        font-size: 1rem;
    }
}

@media (max-width: 959.98px) {
    .schedule-page {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .schedule-page__title {
        font-size: 1.75rem;
        margin-bottom: 1.25rem;
    }

    .schedule-filter {
        width: 100%;
        max-width: 430px;
        justify-content: space-between;
        padding-left: 1.15rem;
    }

    .schedule-filter__label {
        font-size: 1.1rem;
    }

    .schedule-table {
        min-width: 860px;
    }

    .schedule-table__name-head,
    .schedule-table__name {
        width: 200px;
        min-width: 180px;
    }
}

@media (max-width: 639.98px) {
    .schedule-page__title {
        font-size: 1.5rem;
    }

    .schedule-filter {
        max-width: none;
    }

    .schedule-filter__label {
        font-size: 1rem;
    }

    .schedule-table__name-head,
    .schedule-table__day-head,
    .schedule-table__name,
    .schedule-table__cell {
        height: 64px;
    }

    .schedule-table__slot {
        font-size: 0.875rem;
    }
}

@media (max-width: 479.98px) {
    .schedule-page {
        padding-top: 1.25rem;
    }

    .schedule-page__title {
        font-size: 1.35rem;
    }
}

/* Services catalog — Figma 456:235 */
.services-page {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.services-page .breadcrumbs__current {
    color: var(--color-primary);
}

.services-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 1.5rem 2rem;
    align-items: start;
    margin-bottom: 2rem;
}

.services-page__title {
    margin: 0 0 1rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.15;
    text-transform: uppercase;
}

.services-intro__text {
    max-width: 34.5rem;
    margin: 0;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--color-text);
}

.services-intro__text p {
    margin: 0;
}

.services-features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.services-features__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 70px;
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--color-primary);
    border-radius: 7px;
    background: #fff;
}

.services-features__icon {
    width: 37px;
    height: 30px;
    object-fit: contain;
    flex-shrink: 0;
}

.services-features__title {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-primary);
}

.services-panel {
    padding: 1.5rem 2.25rem 1.75rem;
    border: 1px solid var(--color-primary);
    border-radius: 10px;
    box-shadow: 1px 1px 1px 0 rgba(0, 114, 54, 0.5);
    background: #fff;
}

.services-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    /* row flow: column flow + fixed rows caused overlap when >12 items (uslugi + legal) */
    grid-auto-flow: row;
    gap: 0 2.5rem;
}

.legal-page .services-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.services-list__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 72px;
    padding: 0.85rem 0 0.95rem;
    border-bottom: 1px solid #d9d9d9;
    color: var(--color-text);
    text-decoration: none;
}

.services-list__item:hover {
    color: var(--color-primary);
}

.services-list__item--inactive {
    color: var(--color-text-muted);
    cursor: default;
}

.services-list__item--inactive .services-list__arrow {
    opacity: 0.35;
}

.services-list__title {
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.3;
}

.services-list__arrow {
    width: 25px;
    height: 25px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.services-list__arrow img {
    width: 25px;
    height: 25px;
    display: block;
}

.service-detail {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.service-detail .breadcrumbs__current {
    color: var(--color-primary);
}

.service-detail__title {
    margin: 0 0 1.5rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text);
}

.service-detail__content {
    max-width: 48rem;
    font-size: 1.125rem;
    line-height: 1.55;
    color: var(--color-text);
}

@media (max-width: 1199.98px) {
    .services-page__title,
    .service-detail__title {
        font-size: 2rem;
    }

    .services-list {
        gap: 0 1.5rem;
    }

    .services-list__title {
        font-size: 1.1rem;
    }

    .services-panel {
        padding: 1.25rem 1.5rem 1.5rem;
    }
}

@media (max-width: 959.98px) {
    .services-page,
    .service-detail {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .services-intro {
        grid-template-columns: 1fr;
        margin-bottom: 1.5rem;
    }

    .services-page__title,
    .service-detail__title {
        font-size: 1.75rem;
    }

    .services-features {
        max-width: 40rem;
    }

    .services-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
        grid-auto-flow: row;
        gap: 0 1.5rem;
    }
}

@media (max-width: 639.98px) {
    .services-page__title,
    .service-detail__title {
        font-size: 1.5rem;
    }

    .services-intro__text {
        font-size: 1rem;
    }

    .services-features {
        grid-template-columns: 1fr;
        max-width: none;
    }

    .services-panel {
        padding: 0.75rem 1rem 1rem;
    }

    .services-list {
        grid-template-columns: 1fr;
    }

    .services-list__title {
        font-size: 1rem;
    }

    .services-list__item {
        min-height: 60px;
    }
}

@media (max-width: 479.98px) {
    .services-page,
    .service-detail {
        padding-top: 1.25rem;
    }

    .services-page__title,
    .service-detail__title {
        font-size: 1.35rem;
    }
}

/* Service detail variants — Figma 526:1453 / 570:776 */
.svc-page {
    background: #fff;
    padding-top: 2rem;
}

.svc-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 2rem 2.5rem;
    align-items: center;
    padding: 1.5rem 0 3rem;
}

.svc-hero__title {
    margin: 0 0 1.25rem;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.15;
    text-transform: uppercase;
    color: var(--color-text);
}

.svc-hero__text {
    margin: 0 0 1.75rem;
    max-width: 44rem;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--color-text);
}

.svc-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1rem;
}

.svc-hero__price {
    min-width: 230px;
    height: 45px;
    justify-content: center;
}

.svc-hero__media {
    border-radius: 10px;
    overflow: hidden;
    width: 100%;
    max-width: 480px;
    height: 380px;
    min-height: 380px;
    margin-left: auto;
    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.svc-hero__media img {
    width: 100%;
    height: 100%;
    min-height: 380px;
    object-fit: cover;
    display: block;
}

.svc-why {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.svc-why__title {
    margin: 0 auto 1.75rem;
    max-width: 60rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    color: var(--color-text);
}

.svc-why__grid {
    display: grid;
    grid-template-columns: minmax(0, 630fr) minmax(0, 305fr) minmax(0, 305fr);
    gap: 10px 20px;
    align-items: stretch;
}

.svc-why__col {
    display: grid;
    grid-template-rows: 160px 1fr;
    gap: 10px;
    min-height: 350px;
}

.svc-why__card {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background: var(--color-secondary-light);
}

.svc-why__card--horizontal {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 159px;
    align-items: center;
    gap: 0.5rem;
    min-height: 160px;
    padding: 1.125rem 0.25rem 1.125rem 1.55rem;
}

.svc-why__card--horizontal:last-child {
    min-height: 180px;
}

.svc-why__card--tall {
    display: flex;
    flex-direction: column;
    min-height: 350px;
    padding: 1.8rem 1.5rem 1rem 1.75rem;
}

.svc-why__body {
    position: relative;
    z-index: 1;
}

.svc-why__name {
    margin: 0 0 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-why__card--tall .svc-why__name {
    max-width: 12.5rem;
    line-height: 1.25;
}

.svc-why__text {
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-why__card--horizontal .svc-why__text {
    max-width: 26rem;
}

.svc-why__card--tall .svc-why__text {
    max-width: 15.5rem;
}

.svc-why__image {
    width: 159px;
    height: 159px;
    object-fit: contain;
    flex-shrink: 0;
    pointer-events: none;
}

.svc-why__card--horizontal .svc-why__image {
    justify-self: end;
}

.svc-why__card--tall .svc-why__image {
    position: absolute;
    right: 0;
    bottom: 0;
}

.svc-why__grid--simple {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.svc-why__card--simple {
    display: flex;
    flex-direction: column;
    min-height: 180px;
    padding: 1.5rem;
    background: var(--color-secondary-light);
}

.svc-why__card--simple:nth-child(2),
.svc-why__card--simple:nth-child(3) {
    background: #fff;
    border: 1px solid #e5e5e5;
}

.svc-split {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    background: var(--color-bg);
}

.svc-split__inner {
    display: grid;
    grid-template-columns: minmax(0, 508fr) minmax(0, 710fr);
    gap: 2rem 1.5rem;
    align-items: start;
}

.svc-split__aside {
    padding-right: 0;
}

.svc-split__title {
    margin: 0 0 1.5rem;
    max-width: none;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.11;
    color: var(--color-text);
}

.svc-split__content {
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-split__content p {
    margin: 0 0 1rem;
}

.svc-split__content p:last-child {
    margin-bottom: 0;
}

.svc-procedures {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: var(--color-bg);
}

.svc-procedures__title {
    margin: 0 0 0.65rem;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
}

.svc-procedures__lead {
    margin: 0 auto 1.75rem;
    max-width: 46rem;
    text-align: center;
    color: var(--color-text-muted);
    font-weight: 500;
}

.svc-procedures__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.svc-procedures__card {
    min-height: 250px;
    padding: 1.15rem 1.2rem 1.25rem;
    border-radius: 10px;
    background: linear-gradient(180deg, #fff 0%, #e0ecf8 100%);
    border: 1px solid #e0ecf8;
}

.svc-procedures__card--note {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    background: #fff;
    border: 1px solid #e0ecf8;
}

.svc-procedures__dots {
    display: flex;
    align-items: center;
    gap: 2px;
    width: 82px;
    height: 10px;
    margin-bottom: 1rem;
}

.svc-procedures__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-secondary-light);
    flex-shrink: 0;
}

.svc-procedures__dot.is-active {
    background: var(--color-secondary);
}

.svc-procedures__icon {
    display: block;
    width: 45px;
    height: 45px;
    margin: 0 0 1.25rem;
    object-fit: contain;
}

.svc-procedures__name {
    margin: 0 0 0.85rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-procedures__text {
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-procedures__card--note .svc-procedures__text {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-secondary);
}

.svc-extra-methods {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.svc-extra-methods__title {
    margin: 0 auto 0.75rem;
    max-width: 50.5rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.11;
    text-align: center;
    color: var(--color-text);
}

.svc-extra-methods__lead {
    margin: 0 auto 1.25rem;
    max-width: 55.5rem;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.25;
    text-align: center;
    color: var(--color-text);
}

.svc-extra-methods__intro {
    margin: 0 0 1.25rem;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    color: var(--color-text);
}

.svc-extra-methods__layout {
    display: grid;
    grid-template-columns: minmax(0, 580fr) minmax(0, 630fr);
    gap: 1.25rem 1.5rem;
    align-items: stretch;
    margin-bottom: 1.25rem;
}

.svc-extra-methods__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.5rem;
    align-content: start;
}

.svc-extra-methods__list li {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 0.85rem;
    align-items: center;
    min-height: 75px;
    margin: 0;
    padding: 0.85rem 1.1rem 0.85rem 1.25rem;
    border: 1px solid var(--color-primary);
    border-radius: 10px;
    box-shadow: 1px 1px 5px rgba(0, 114, 54, 0.25);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
    background: #fff;
}

.svc-extra-methods__list li::before {
    content: "";
    width: 30px;
    height: 15px;
    background: url("../img/svg/method-arrow.svg") center / contain no-repeat;
    flex-shrink: 0;
}

.svc-extra-methods__media {
    border-radius: 10px;
    overflow: hidden;
    min-height: 475px;
    background: var(--color-bg);
}

.svc-extra-methods__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 475px;
    object-fit: cover;
}

.svc-extra-methods__note {
    position: relative;
    margin: 0;
    padding: 0.95rem 1.5rem 0.95rem 2.25rem;
    border-radius: 5px;
    background: var(--color-bg);
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-extra-methods__note::before {
    content: "";
    position: absolute;
    left: 1.4rem;
    top: 50%;
    width: 3px;
    height: 50px;
    transform: translateY(-50%);
    border-radius: 2px;
    background: var(--color-primary);
}

.svc-media-block {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.svc-media-block__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 2rem 2.5rem;
    align-items: center;
}

.svc-media-block__title {
    margin: 0 0 1.25rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.11;
    color: var(--color-text);
}

.svc-media-block__content p {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
}

.svc-media-block__content p:last-child {
    margin-bottom: 0;
}

.svc-media-block__media {
    width: 100%;
    max-width: 390px;
    aspect-ratio: 390 / 360;
    border-radius: 10px;
    overflow: hidden;
    justify-self: end;
    background: var(--color-bg);
}

.svc-media-block__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.svc-panels {
    padding-top: 1.5rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.svc-panels__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: stretch;
}

.svc-panel {
    display: flex;
    flex-direction: column;
    padding: 3.5rem 2.25rem 2.5rem;
    border-radius: 10px;
    border: 1px solid var(--color-secondary);
    background: var(--color-secondary-light);
    min-height: 100%;
}

.svc-panel--alt {
    border-color: var(--color-text-muted);
    background: var(--color-bg);
}

.svc-panel__title {
    margin: 0 0 1rem;
    max-width: 30rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-text);
}

.svc-panel__subtitle {
    margin: 1.5rem 0 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-panel__lead,
.svc-panel__foot {
    margin: 0 0 1.5rem;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-panel__foot {
    margin: 1.5rem 0 0;
}

.svc-panel__cta {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 0;
}

.svc-panel__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.svc-panel__list li {
    position: relative;
    padding-left: 1.75rem;
    margin-bottom: 0.35rem;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-panel__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.35rem;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--color-secondary);
}

.svc-about {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.svc-about__block {
    margin-bottom: 2.5rem;
}

.svc-about__block--problems {
    margin-bottom: 0;
}

.svc-about__title {
    margin: 0 0 1rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.11;
    color: var(--color-text);
}

.svc-about__title--center {
    text-align: center;
    margin-bottom: 1.75rem;
}

.svc-about__text {
    max-width: none;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
}

.svc-about__lead,
.svc-about__foot {
    margin: 0 0 1.5rem;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
}

.svc-about__foot {
    margin: 1.5rem 0 0;
}

.svc-problems {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 1.25rem;
}

.svc-problems__item {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem 1rem;
    min-height: 128px;
    padding: 0.65rem 1rem 0.65rem 0.35rem;
    border-radius: 10px;
    background: var(--color-secondary-light);
    text-align: left;
    overflow: hidden;
}

.svc-problems__icon {
    width: 128px;
    height: 100px;
    margin: 0;
    display: block;
    object-fit: contain;
    justify-self: center;
}

.svc-problems__body {
    min-width: 0;
}

.svc-problems__name {
    margin: 0 0 0.35rem;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-text);
}

.svc-problems__text {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-steps {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.svc-steps__title {
    margin: 0 0 1rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.11;
    text-align: left;
    color: var(--color-text);
}

.svc-steps__lead {
    margin: 0 0 2rem;
    max-width: none;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
}

.svc-steps__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 1.25rem;
}

.svc-steps__card {
    min-height: 220px;
    padding: 1.35rem 1.5rem 1.5rem;
    border-radius: 10px;
    background: linear-gradient(180deg, #fff 0%, #e0ecf8 100%);
    border: 1px solid #e0ecf8;
}

.svc-steps__dots {
    display: flex;
    align-items: center;
    gap: 2px;
    width: 36px;
    height: 10px;
    margin-bottom: 1.15rem;
}

.svc-steps__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-secondary-light);
    flex-shrink: 0;
}

.svc-steps__dot.is-active {
    background: var(--color-secondary);
}

.svc-steps__num {
    display: none;
}

.svc-steps__name {
    margin: 0 0 0.85rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-steps__text {
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-text);
}

.svc-compare {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.svc-compare__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.svc-compare__col {
    padding: 2rem;
    border-radius: var(--radius);
    background: var(--color-bg);
}

.svc-compare__col--aside {
    background: var(--color-secondary-light);
}

.svc-compare__title {
    margin: 0 0 1.25rem;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-secondary);
}

.svc-compare__subtitle {
    margin: 1.25rem 0 0.75rem;
    font-size: 1.1rem;
    font-weight: 700;
}

.svc-compare__list {
    margin: 0 0 1.5rem;
    padding: 0;
    list-style: none;
}

.svc-compare__list li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.65rem;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.35;
}

.svc-compare__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.4rem;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    background: var(--color-text-muted);
}

.svc-compare__list--check li::before {
    background: var(--color-primary);
}

.svc-prices {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.svc-prices__title {
    margin: 0 0 1.25rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text);
}

.svc-prices__panel {
    padding: 1.5rem 2rem 1.75rem;
    border: 1px solid #e5e5e5;
    border-radius: var(--radius);
    background: #fff;
}

.svc-prices__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.5rem;
    padding: 1.15rem 0;
    border-bottom: 1px solid #d9d9d9;
}

.svc-prices__item:first-child {
    padding-top: 0.25rem;
}

.svc-prices__name {
    margin: 0 0 0.45rem;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-text);
}

.svc-prices__text {
    margin: 0 0 0.45rem;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color-text-muted);
}

.svc-prices__code {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.svc-prices__cost {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-secondary);
    white-space: nowrap;
}

.svc-prices__note {
    margin: 1.25rem 0;
    text-align: center;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.svc-prices__note a {
    color: var(--color-secondary);
}

.svc-prices__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.85rem;
}

@media (max-width: 1199.98px) {
    .svc-hero__title {
        font-size: 2.1rem;
    }

    .svc-why__title {
        font-size: 1.75rem;
    }

    .svc-split__title {
        font-size: 1.85rem;
    }

    .svc-why__grid {
        grid-template-columns: 1fr 1fr;
    }

    .svc-why__col {
        grid-column: 1 / -1;
        grid-template-rows: none;
        grid-template-columns: 1fr 1fr;
        min-height: 0;
    }

    .svc-why__card--tall {
        min-height: 300px;
    }

    .svc-procedures__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .svc-extra-methods__title {
        font-size: 1.85rem;
    }

    .svc-extra-methods__intro {
        font-size: 1.25rem;
    }

    .svc-panel__title {
        font-size: 1.85rem;
        line-height: 1.15;
    }

    .svc-about__title {
        font-size: 1.85rem;
    }

    .svc-steps__title {
        font-size: 1.85rem;
    }

    .svc-page {
        padding-top: 1.5rem;
    }
}

@media (max-width: 959.98px) {
    .svc-hero,
    .svc-split__inner,
    .svc-media-block__inner,
    .svc-extra-methods__layout,
    .svc-panels__grid,
    .svc-compare__grid,
    .svc-problems,
    .svc-steps__grid {
        grid-template-columns: 1fr;
    }

    .svc-problems__item {
        grid-template-columns: 100px minmax(0, 1fr);
        min-height: 110px;
    }

    .svc-problems__icon {
        width: 100px;
        height: 80px;
    }

    .svc-extra-methods__media,
    .svc-extra-methods__media img {
        min-height: 320px;
    }

    .svc-media-block__media {
        max-width: none;
        justify-self: stretch;
    }

    .svc-hero__media {
        max-width: none;
        height: 280px;
        min-height: 280px;
        margin-left: 0;
    }

    .svc-hero__title {
        font-size: 1.85rem;
    }

    .svc-why__grid,
    .svc-why__col {
        grid-template-columns: 1fr;
    }

    .svc-why__card--horizontal {
        grid-template-columns: minmax(0, 1fr) 120px;
        min-height: 150px;
    }

    .svc-why__image {
        width: 120px;
        height: 120px;
    }

    .svc-why__card--tall {
        min-height: 280px;
    }
}

@media (max-width: 639.98px) {
    .svc-hero__title {
        font-size: 1.5rem;
    }

    .svc-why__title {
        font-size: 1.35rem;
    }

    .svc-split__title {
        font-size: 1.5rem;
    }

    .svc-extra-methods__title {
        font-size: 1.5rem;
    }

    .svc-extra-methods__lead {
        font-size: 1.05rem;
    }

    .svc-extra-methods__intro {
        font-size: 1.15rem;
        text-align: left;
    }

    .svc-panel__title {
        font-size: 1.5rem;
    }

    .svc-about__title {
        font-size: 1.5rem;
    }

    .svc-steps__title {
        font-size: 1.5rem;
    }

    .svc-panel__lead,
    .svc-panel__foot,
    .svc-panel__list li {
        font-size: 1.05rem;
    }

    .svc-page {
        padding-top: 1.25rem;
    }

    .svc-extra-methods__note {
        padding-left: 1.75rem;
        font-size: 1rem;
    }

    .svc-extra-methods__note::before {
        left: 0.85rem;
        height: 2.5rem;
    }

    .svc-why__grid,
    .svc-why__grid--simple,
    .svc-why__col,
    .svc-procedures__grid {
        grid-template-columns: 1fr;
    }

    .svc-why__card--horizontal {
        grid-template-columns: 1fr;
        padding-right: 1.25rem;
    }

    .svc-why__card--horizontal .svc-why__image {
        justify-self: end;
    }

    .svc-prices__item {
        grid-template-columns: 1fr;
    }

    .svc-hero__actions {
        flex-direction: column;
    }

    .svc-hero__price,
    .svc-hero__actions .btn-cta {
        width: 100%;
    }
}

/* Blog list (Статьи / Новости) — Figma 526:1797 */
.blog-page {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.blog-page .breadcrumbs__current {
    color: var(--color-primary);
}

.blog-page__title {
    margin: 0 0 1.75rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.blog-grid__list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.5rem 1.25rem;
}

.blog-grid__list .news-card[hidden],
.blog-grid__list .blog-card[hidden] {
    display: none !important;
}

.blog-page__more,
#pdopage .blog-page__more {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 180px;
    min-width: 0;
    height: 45px;
    margin: 2rem auto 0;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    background: #fff;
}

.blog-page__more[hidden] {
    display: none !important;
}

/* Blog detail (Статья / Новость) — Figma 535:2207 */
.blog-detail {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.blog-detail .breadcrumbs__current {
    color: var(--color-primary);
}

.blog-detail__title {
    margin: 0 0 1.75rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text);
    max-width: 53rem;
}

.blog-detail__intro {
    display: grid;
    grid-template-columns: 350px minmax(0, 1fr);
    gap: 1.5rem 2rem;
    align-items: start;
    margin-bottom: 2.5rem;
}

.blog-detail__intro--no-toc {
    grid-template-columns: 350px;
}

.blog-detail__media {
    border-radius: 15px;
    overflow: hidden;
    background: var(--color-bg);
}

.blog-detail__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 350 / 250;
    object-fit: cover;
}

.blog-detail__toc {
    background: rgba(0, 114, 54, 0.1);
    border: 1px solid var(--color-primary);
    border-radius: 20px;
    padding: 1.25rem 1.5rem 1.5rem;
}

.blog-detail__toc-title {
    margin: 0 0 0.85rem;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-text);
}

.blog-detail__toc-list,
.blog-detail__toc ol {
    margin: 0;
    padding-left: 1.35rem;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--color-text);
}

.blog-detail__toc-list li + li,
.blog-detail__toc ol li + li {
    margin-top: 0.15rem;
}

.blog-detail__toc a {
    color: inherit;
    text-decoration: none;
}

.blog-detail__toc a:hover {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.blog-detail__content {
    max-width: 77rem;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.45;
    color: var(--color-text);
}

.blog-detail__content h2 {
    margin: 2rem 0 0.85rem;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-text);
    scroll-margin-top: calc(var(--header-height) + 1rem);
}

.blog-detail__content h2:first-child {
    margin-top: 0;
}

.blog-detail__content h3 {
    margin: 1.25rem 0 0.65rem;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
    scroll-margin-top: calc(var(--header-height) + 1rem);
}

.blog-detail__content p {
    margin: 0 0 1rem;
}

.blog-detail__content ul,
.blog-detail__content ol {
    margin: 0 0 1rem;
    padding-left: 1.35rem;
}

.blog-detail__content li + li {
    margin-top: 0.35rem;
}

.blog-detail__content strong {
    font-weight: 600;
}

/* Text links in article / promo / inner content (not buttons) */
.content-body a:not([class*="btn"]):not(.stretched-link),
.content a:not([class*="btn"]):not(.stretched-link) {
    color: var(--color-link);
    font-weight: 500;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
    text-decoration-skip-ink: auto;
}

.content-body a:not([class*="btn"]):not(.stretched-link):visited,
.content a:not([class*="btn"]):not(.stretched-link):visited {
    color: var(--color-link-visited);
}

.content-body a:not([class*="btn"]):not(.stretched-link):hover,
.content a:not([class*="btn"]):not(.stretched-link):hover {
    color: var(--color-link-hover);
}

.content-body a:not([class*="btn"]):not(.stretched-link):active,
.content a:not([class*="btn"]):not(.stretched-link):active {
    color: var(--color-link-active);
}

.content-body a:not([class*="btn"]):not(.stretched-link):focus-visible,
.content a:not([class*="btn"]):not(.stretched-link):focus-visible {
    outline: 2px solid var(--color-link);
    outline-offset: 2px;
    border-radius: 2px;
}

.content-body a:has(> img:only-child),
.content a:has(> img:only-child) {
    font-weight: inherit;
    text-decoration: none;
}

@media (max-width: 1199.98px) {
    .blog-page__title,
    .blog-detail__title {
        font-size: 2rem;
    }

    .blog-grid__list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .blog-detail__intro {
        grid-template-columns: 280px minmax(0, 1fr);
    }

    .blog-detail__toc-title,
    .blog-detail__toc-list,
    .blog-detail__toc ol {
        font-size: 1.1rem;
    }
}

@media (max-width: 959.98px) {
    .blog-page,
    .blog-detail {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .blog-page__title,
    .blog-detail__title {
        font-size: 1.75rem;
        margin-bottom: 1.35rem;
    }

    .blog-grid__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.15rem;
    }

    .blog-detail__intro {
        grid-template-columns: 1fr;
        gap: 1.15rem;
        margin-bottom: 1.75rem;
    }

    .blog-detail__media {
        max-width: 350px;
    }

    .blog-detail__content {
        font-size: 1rem;
    }

    .blog-detail__content h2 {
        font-size: 1.25rem;
    }
}

@media (max-width: 639.98px) {
    .blog-page__title,
    .blog-detail__title {
        font-size: 1.5rem;
    }

    .blog-grid__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.85rem;
    }

    .blog-detail__toc {
        padding: 1rem 1.1rem 1.15rem;
    }

    .blog-detail__toc-title,
    .blog-detail__toc-list,
    .blog-detail__toc ol {
        font-size: 1rem;
    }

    .blog-page__more,
    #pdopage .blog-page__more {
        width: 100%;
        max-width: 180px;
    }
}

@media (max-width: 479.98px) {
    .blog-page,
    .blog-detail {
        padding-top: 1.25rem;
    }

    .blog-page__title,
    .blog-detail__title {
        font-size: 1.35rem;
    }

    .blog-grid__list {
        grid-template-columns: 1fr;
        max-width: 280px;
        margin-inline: auto;
    }
}

/* Promo detail — Figma 437:409 */
.promo-detail {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: #fff;
}

.promo-detail .breadcrumbs__current {
    color: var(--color-primary);
}

.promo-detail__title {
    margin: 0 0 1.75rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text);
    max-width: 45rem;
}

.promo-detail__layout {
    display: grid;
    grid-template-columns: 375px minmax(0, 1fr);
    gap: 2rem 2.5rem;
    align-items: start;
}

.promo-detail__media {
    border-radius: 10px;
    overflow: hidden;
    background: var(--color-bg);
}

.promo-detail__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 375 / 250;
    object-fit: cover;
}

.promo-detail__aside {
    max-width: 48rem;
}

.promo-detail__body {
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.45;
    color: var(--color-text);
}

.promo-detail__body p {
    margin: 0 0 1rem;
}

.promo-detail__body p:last-child {
    margin-bottom: 0;
}

.promo-detail__accent {
    font-weight: 500;
    color: var(--color-primary);
}

.promo-detail__phone {
    margin-top: 1.75rem;
    padding: 1.15rem 1.5rem 1.25rem;
    background: var(--color-bg);
    border: 1px solid var(--color-text-muted);
    border-radius: 20px;
}

.promo-detail__phone-label {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.35;
    color: var(--color-text);
}

.promo-detail__phone-link {
    display: inline-block;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-primary);
    text-decoration: none;
}

.promo-detail__phone-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.promo-detail__closing {
    margin: 2rem 0 0;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
}

@media (max-width: 1199.98px) {
    .promo-detail__title {
        font-size: 2rem;
    }

    .promo-detail__layout {
        grid-template-columns: 300px minmax(0, 1fr);
        gap: 1.5rem 1.75rem;
    }

    .promo-detail__body,
    .promo-detail__phone-label,
    .promo-detail__closing {
        font-size: 1.1rem;
    }

    .promo-detail__phone-link {
        font-size: 1.35rem;
    }
}

@media (max-width: 959.98px) {
    .promo-detail {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .promo-detail__title {
        font-size: 1.75rem;
        margin-bottom: 1.35rem;
    }

    .promo-detail__layout {
        grid-template-columns: 240px minmax(0, 1fr);
        gap: 1.25rem;
    }

    .promo-detail__body,
    .promo-detail__phone-label,
    .promo-detail__closing {
        font-size: 1rem;
    }

    .promo-detail__phone {
        margin-top: 1.35rem;
        padding: 1rem 1.15rem;
    }

    .promo-detail__phone-link {
        font-size: 1.25rem;
    }
}

@media (max-width: 639.98px) {
    .promo-detail__title {
        font-size: 1.5rem;
    }

    .promo-detail__layout {
        grid-template-columns: 1fr;
        gap: 1.15rem;
    }

    .promo-detail__media {
        max-width: 375px;
    }

    .promo-detail__closing {
        margin-top: 1.5rem;
    }
}

@media (max-width: 479.98px) {
    .promo-detail {
        padding-top: 1.25rem;
    }

    .promo-detail__title {
        font-size: 1.35rem;
    }

    .promo-detail__body,
    .promo-detail__phone-label,
    .promo-detail__closing {
        font-size: 0.95rem;
    }

    .promo-detail__phone-link {
        font-size: 1.15rem;
    }
}

/* Price list — Figma 435:602 */
.price-page {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
    background: var(--color-bg);
}

.price-page .breadcrumbs__current {
    color: var(--color-primary);
}

.price-page__title {
    margin: 0 0 0.85rem;
    font-size: 2.25rem;
    font-weight: 600;
    line-height: 1.25;
    text-transform: uppercase;
    color: var(--color-text);
}

.price-page__note {
    margin: 0 0 1.75rem;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color-text);
}

.price-page__note a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.price-filter {
    margin-bottom: 1.75rem;
}

.price-filter__field {
    position: relative;
}

.price-filter__icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    object-fit: contain;
    pointer-events: none;
    opacity: 0.55;
}

.price-filter__input {
    height: 50px;
    width: 100%;
    border: 1px solid var(--color-text-muted);
    border-radius: var(--radius-sm);
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.2;
    padding: 0 1.25rem 0 3.25rem;
    box-shadow: none;
}

.price-filter__input::placeholder {
    color: var(--color-text-muted);
    opacity: 1;
}

.price-filter__input:focus {
    background-color: #fff;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 1px var(--color-secondary);
    outline: none;
}

.price-table {
    background: #fff;
    border: 1px solid var(--color-primary);
    border-radius: var(--radius);
    overflow: hidden;
}

.price-table__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.5rem;
    align-items: center;
    min-height: 55px;
    padding: 0.85rem 2.5rem;
    background: var(--color-primary);
    color: #fff;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
}

.price-table__body {
    padding: 0.35rem 2.5rem 1.15rem;
}

.price-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.5rem;
    align-items: start;
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--color-border);
}

.price-item:last-child {
    border-bottom: 0;
}

.price-item[hidden] {
    display: none !important;
}

.price-item__name {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
    color: var(--color-text);
}

.price-item__text {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text);
    max-width: 63rem;
}

.price-item__code {
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text-muted);
}

.price-item__cost {
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--color-text);
    white-space: nowrap;
    padding-top: 0.1rem;
    text-align: right;
}

.price-page__empty {
    margin: 1.25rem 0 0;
    text-align: center;
    color: var(--color-text-muted);
    font-size: 1rem;
}

.price-page__empty[hidden] {
    display: none !important;
}

.price-page__more {
    display: flex;
    width: 250px;
    min-width: 0;
    height: 50px;
    margin: 1.75rem auto 0;
    font-size: 0.875rem;
}

.price-page__more[hidden] {
    display: none !important;
}

@media (max-width: 1199.98px) {
    .price-page__title {
        font-size: 2rem;
    }

    .price-page__note {
        font-size: 1.1rem;
    }

    .price-table__head,
    .price-table__body {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .price-filter__input {
        font-size: 1.1rem;
    }
}

@media (max-width: 959.98px) {
    .price-page {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .price-page__title {
        font-size: 1.75rem;
    }

    .price-page__note {
        font-size: 1rem;
        margin-bottom: 1.35rem;
    }

    .price-table__head {
        font-size: 1rem;
        padding: 0.75rem 1.15rem;
        min-height: 48px;
    }

    .price-table__body {
        padding: 0.25rem 1.15rem 0.85rem;
    }

    .price-item__cost {
        font-size: 1.25rem;
    }
}

@media (max-width: 639.98px) {
    .price-page__title {
        font-size: 1.5rem;
    }

    .price-page__note {
        font-size: 0.9rem;
    }

    .price-filter__input {
        font-size: 1rem;
        padding-left: 2.85rem;
    }

    .price-filter__icon {
        width: 20px;
        height: 20px;
        left: 0.65rem;
    }

    .price-table__head {
        font-size: 0.85rem;
        gap: 0.75rem;
        padding: 0.65rem 0.9rem;
    }

    .price-table__body {
        padding: 0.15rem 0.9rem 0.75rem;
    }

    .price-item {
        grid-template-columns: 1fr;
        gap: 0.45rem;
        padding: 1rem 0;
    }

    .price-item__cost {
        order: -1;
        font-size: 1.15rem;
        text-align: left;
    }

    .price-item__name {
        font-size: 0.9rem;
    }

    .price-item__text {
        font-size: 0.85rem;
    }

    .price-page__more {
        width: 100%;
        max-width: 250px;
    }
}

@media (max-width: 479.98px) {
    .price-page {
        padding-top: 1.25rem;
    }

    .price-page__title {
        font-size: 1.35rem;
    }
}

/* Contacts page — Figma 343:560 */
.contacts-page {
    padding-top: 2rem;
    padding-bottom: 1.5rem;
    background: #fff;
}

.contacts-page__title {
    margin: 0 0 1.15rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.contacts-page__lead {
    margin: 0 auto 2.5rem;
    max-width: 66.5rem;
    text-align: center;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.35;
    color: var(--color-text);
}

.contacts-media {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-bottom: 2.5rem;
}

.contacts-media__photo,
.contacts-media__map {
    border-radius: 20px;
    overflow: hidden;
    min-height: 350px;
    height: 350px;
    background: var(--color-bg);
}

.contacts-media__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.contacts-media__map {
    position: relative;
}

.contacts-info {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.contacts-info__item {
    padding: 1.5rem 1.75rem 2rem;
    border-right: 1px solid var(--color-border);
}

.contacts-info__item:last-child {
    border-right: none;
}

.contacts-info__title {
    margin: 0 0 0.85rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-text);
}

.contacts-info__text {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
    color: var(--color-text-muted);
}

.contacts-info__text a {
    color: var(--color-text-muted);
}

.contacts-info__text a:hover {
    color: var(--color-primary);
}

.contacts-info__social {
    display: flex;
    gap: 0.85rem;
    align-items: center;
}

.contacts-info__social a {
    width: 40px;
    height: 40px;
    font-size: 40px;
    line-height: 1;
}

@media (max-width: 1199.98px) {
    .contacts-page__title {
        font-size: 2rem;
    }

    .contacts-page__lead {
        font-size: 1rem;
        margin-bottom: 2rem;
    }

    .contacts-media__photo,
    .contacts-media__map {
        min-height: 280px;
        height: 280px;
        border-radius: 15px;
    }

    .contacts-info__item {
        padding: 1.25rem 1.15rem 1.5rem;
    }

    .contacts-info__title {
        font-size: 1.05rem;
    }

    .contacts-info__text {
        font-size: 0.9rem;
    }

    .contacts-info__social a {
        width: 36px;
        height: 36px;
        font-size: 36px;
    }
}

@media (max-width: 959.98px) {
    .contacts-page {
        padding-top: 1.5rem;
    }

    .contacts-page__title {
        font-size: 1.75rem;
        margin-bottom: 1rem;
    }

    .contacts-page__lead {
        text-align: left;
        margin-bottom: 1.5rem;
        font-size: 0.95rem;
    }

    .contacts-media {
        gap: 0.85rem;
        margin-bottom: 1.75rem;
    }

    .contacts-media__photo,
    .contacts-media__map {
        min-height: 220px;
        height: 220px;
        border-radius: 12px;
    }

    .contacts-info {
        grid-template-columns: 1fr 1fr;
    }

    .contacts-info__item:nth-child(2n) {
        border-right: none;
    }

    .contacts-info__item:nth-child(-n+2) {
        border-bottom: 1px solid var(--color-border);
    }

    .contacts-info__item {
        padding: 1.15rem 1rem 1.25rem;
    }

    .contacts-info__title {
        font-size: 0.95rem;
        margin-bottom: 0.65rem;
    }

    .contacts-info__text {
        font-size: 0.85rem;
    }

    .contacts-info__social a {
        width: 32px;
        height: 32px;
        font-size: 32px;
    }
}

@media (max-width: 639.98px) {
    .breadcrumbs {
        font-size: 0.875rem;
        margin-bottom: 0.65rem;
    }

    .contacts-page__title {
        font-size: 1.5rem;
    }

    .contacts-page__lead {
        font-size: 0.875rem;
        margin-bottom: 1.25rem;
    }

    .contacts-media {
        grid-template-columns: 1fr;
        margin-bottom: 1.25rem;
    }

    .contacts-media__photo,
    .contacts-media__map {
        min-height: 200px;
        height: 200px;
    }
}

@media (max-width: 479.98px) {
    .contacts-page {
        padding-top: 1.25rem;
        padding-bottom: 1rem;
    }

    .contacts-page__title {
        font-size: 1.35rem;
        margin-bottom: 0.75rem;
    }

    .contacts-info {
        grid-template-columns: 1fr;
    }

    .contacts-info__item {
        border-right: none;
        border-bottom: 1px solid var(--color-border);
        padding: 1rem 0.15rem 1rem;
    }

    .contacts-info__item:nth-child(-n+2) {
        border-bottom: 1px solid var(--color-border);
    }

    .contacts-info__item:last-child {
        border-bottom: none;
    }

    .contacts-media__photo,
    .contacts-media__map {
        min-height: 180px;
        height: 180px;
        border-radius: 10px;
    }

    .contacts-info__social a {
        width: 40px;
        height: 40px;
        font-size: 40px;
    }
}

/* Leave review modal — Figma 339:2375 (preview; MODX reviews component later) */
.review-modal {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
}

.review-modal[hidden] {
    display: none !important;
}

.review-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(24, 24, 24, 0.5);
}

.review-modal__close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    z-index: 2;
    width: 25px;
    height: 25px;
    padding: 0;
    border: 0;
    background: transparent;
    line-height: 0;
}

.review-modal__close img {
    width: 25px;
    height: 25px;
    display: block;
}

.review-modal__close:hover {
    opacity: 0.85;
}

.review-modal__panel {
    position: relative;
    z-index: 1;
    background: #fff;
    border-radius: 15px;
    color: var(--color-text);
}

.review-modal__panel[hidden] {
    display: none !important;
}

.review-modal__panel--form {
    width: min(450px, 100%);
    padding: 1.4rem 2.5rem 1.75rem;
}

.review-modal__panel--success {
    width: min(400px, 100%);
    min-height: 200px;
    padding: 1.25rem 1.5rem 1.5rem;
    text-align: center;
}

.review-modal__stars {
    display: block;
    width: 74px;
    height: 15px;
    margin: 0 auto 0.35rem;
}

.review-modal__title {
    margin: 0 0 1rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    color: var(--color-text);
}

.review-form {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.review-form .oft-field .form-control {
    background: var(--color-bg);
    border-color: transparent;
}

.review-form .oft-field .form-control:focus,
.review-form .oft-field .form-control:not(:placeholder-shown) {
    background: var(--color-bg);
}

.review-form .oft-field--textarea .form-control {
    min-height: 90px;
}

.review-form .oft-check .form-check-input {
    border: 1px solid var(--color-border);
    border-radius: 2px;
    background-color: #fff;
}

.review-form .oft-check .form-check-input:checked {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.review-form__check {
    margin: 0.35rem 0 0.15rem;
}

.review-form .form-check-label {
    color: var(--color-text);
    font-size: 0.625rem;
    font-weight: 500;
    line-height: 1.25;
}

.review-form .form-check-label a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.review-form__submit,
.review-form .btn-submit {
    width: 100%;
    min-width: 0;
    height: 40px;
    margin-top: 0.35rem;
    border: none;
    border-radius: var(--radius-sm);
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-family);
    font-weight: 500;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 0 1rem;
    transition: background 0.15s ease, opacity 0.15s ease;
}

.review-form__submit:hover,
.review-form .btn-submit:hover {
    background: var(--color-primary-dark);
    color: #fff;
}

.review-modal__logo {
    display: block;
    width: min(234px, 80%);
    height: auto;
    margin: 0 auto 0.85rem;
}

.review-modal__success-title {
    margin: 0 0 0.35rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
}

.review-modal__success-text {
    margin: 0 auto;
    max-width: 18.75rem;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.25;
}

body.oft-review-open {
    overflow: hidden;
}

/* Sticky header: keep width/content aligned when body scrollbar is removed */
body.oft-review-open .site-header {
    padding-right: var(--oft-scrollbar-compensation, 0px);
    margin-right: calc(-1 * var(--oft-scrollbar-compensation, 0px));
}

@media (max-width: 639.98px) {
    .review-modal {
        padding: 0.75rem;
    }

    .review-modal__close {
        top: 0.75rem;
        right: 0.75rem;
    }

    .review-modal__panel--form {
        width: min(300px, 100%);
        padding: 1.15rem 1.25rem 1.35rem;
    }

    .review-modal__title {
        font-size: 1.5rem;
        margin-bottom: 0.85rem;
    }

    .review-modal__stars {
        width: 62px;
        height: 10px;
    }

    .review-modal__panel--success {
        width: min(260px, 100%);
    }

    .review-modal__logo {
        width: min(190px, 80%);
    }

    .review-modal__success-title {
        font-size: 1.5rem;
    }

    .review-modal__success-text {
        font-size: 1.125rem;
        max-width: 13.25rem;
    }
}

@media (max-width: 575.98px) {
    .reviews-platforms {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
        width: 100%;
        flex: 1 1 100%;
    }

    .reviews-platform {
        width: 100%;
        height: 44px;
        min-height: 44px;
        padding: 0.35rem 0.5rem;
        background: #fff;
        border: 1px solid var(--color-border);
        align-items: center;
        justify-content: center;
    }

    .reviews-platform img {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 28px;
        object-fit: contain;
    }
}

/* News */
.news-section {
    background: #fff;
}

.news-section__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.75rem;
}

.news-tabs {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
}

.news-tabs__item {
    appearance: none;
    border: 0;
    background: none;
    padding: 0;
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-text-muted);
    line-height: 1.2;
    cursor: pointer;
    transition: color 0.15s ease, font-size 0.15s ease;
}

.news-tabs__item.is-active {
    font-size: 2rem;
    color: var(--color-primary);
}

.news-tabs__sep {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-text-muted);
    line-height: 1;
}

.news-section__all {
    min-width: 0;
    width: 140px;
    height: 40px;
    font-size: 0.875rem;
    font-weight: 500;
    text-transform: none;
    gap: 0.4rem;
    white-space: nowrap;
}

.news-section__all-arrow {
    width: 15px;
    height: 1px;
    background: currentColor;
    position: relative;
    flex-shrink: 0;
}

.news-section__all-arrow::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    border-right: 1px solid currentColor;
    border-top: 1px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}

.news-panel[hidden] {
    display: none !important;
}

.news-card {
    background: var(--color-bg);
    border-radius: var(--radius);
    overflow: hidden;
    height: 100%;
    min-height: 240px;
    display: flex;
    flex-direction: column;
}

.news-card__image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 240 / 140;
    height: auto;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--color-bg);
}

.news-card__image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.news-card__body {
    padding: 0.5rem 0.85rem 1rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.news-card__date {
    font-size: 0.625rem;
    font-weight: 300;
    color: var(--color-text);
    line-height: 1;
}

.news-card__title {
    font-size: 0.875rem;
    font-weight: 700;
    margin: 0.55rem 0 0;
    line-height: 1.1;
}

.news-card__title a {
    color: var(--color-text);
}

.news-card__title a:hover {
    color: var(--color-primary);
}

.news-pagination .swiper-pagination-bullet-active,
.articles-pagination .swiper-pagination-bullet-active {
    background: var(--color-primary);
}

.articles-pagination {
    margin-top: 1.5rem;
    position: relative !important;
}

.articles-pagination .swiper-pagination-bullet {
    background: #d0d0d0;
    opacity: 1;
}

/* CTA */
.cta-banner-section {
    padding: 2rem 0;
}

.cta-banner {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    min-height: 160px;
    background: var(--color-secondary-light);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.35rem 1.5rem 1.5rem;
}

.cta-banner__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.55;
}

.cta-banner__content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 42rem;
}

.cta-banner__title {
    font-size: clamp(1.5rem, 2.5vw, 2.25rem);
    font-weight: 500;
    color: var(--color-text);
    margin: 0 0 0.85rem;
    line-height: 1.2;
}

.cta-banner__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem 1.25rem;
}

.cta-banner__vk {
    min-width: 0;
    width: 150px;
    height: 50px;
    font-size: 0.875rem;
    font-weight: 500;
    text-transform: none;
}

.cta-banner__call {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    min-width: 0;
}

.cta-banner__or {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.2;
}

.cta-banner__phone {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 600;
    color: var(--color-secondary);
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-thickness: 1px;
    line-height: 1.1;
    white-space: nowrap;
}

.cta-banner__phone:hover {
    color: var(--color-primary);
}

@media (max-width: 575.98px) {
    .cta-banner {
        padding: 1.25rem 1rem 1.35rem;
    }

    .cta-banner__actions {
        flex-direction: column;
        gap: 0.85rem;
    }
}

/* Footer */
.site-footer {
    padding: 1.25rem 0 0;
    background: #fff;
    color: var(--color-text);
}

.footer-panel {
    background: var(--color-secondary-light);
    border-radius: 20px 20px 0 0;
    padding: 2.15rem 3rem 2.5rem;
}

.footer-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.55fr) minmax(0, 1.4fr);
    grid-template-areas:
        "brand nav map"
        "actions nav map";
    gap: 1.5rem 2rem;
    align-items: start;
}

.footer-brand {
    grid-area: brand;
}

.footer-nav-col {
    grid-area: nav;
}

.footer-actions {
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0;
}

.footer-map {
    grid-area: map;
    border-radius: var(--radius);
    overflow: hidden;
    width: 100%;
    height: 310px;
    background: #fff;
}

.footer-address {
    margin: 0 0 0.85rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text);
}

.footer-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-muted);
    margin-bottom: 1rem;
}

.footer-contacts {
    margin: 1rem 0;
}

.footer-contacts li {
    margin-bottom: 0.35rem;
    font-size: 0.875rem;
}

.footer-hours-title {
    font-size: 0.875rem;
    font-weight: 500;
    margin: 0 0 0.25rem;
    color: var(--color-text);
}

.footer-hours {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-muted);
    margin: 0;
    line-height: 1.35;
}

.footer-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-secondary);
    text-transform: uppercase;
    margin: 1.35rem 0 0.85rem;
}

.footer-phone--extra {
    margin-top: 0.35rem;
}

.contacts-info__label {
    font-weight: 600;
    color: var(--color-text);
}

.footer-phone .oft-icon {
    font-size: 20px;
    width: 20px;
    height: 20px;
    line-height: 20px;
    color: inherit;
}

.footer-phone:hover {
    color: var(--color-primary);
}

.footer-social {
    margin-bottom: 0 !important;
}

.footer-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-nav li {
    margin-bottom: 0.35rem;
}

.footer-nav a {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text);
}

.footer-nav a:hover {
    color: var(--color-primary);
}

.footer-map .ymaps-2-1-79-map,
.footer-map > ymaps {
    border-radius: var(--radius);
}

.footer-actions .btn-cta {
    min-width: 0;
    width: 180px;
    height: 45px;
    font-size: 0.75rem;
}

.footer-bottom {
    display: none;
}

@media (max-width: 959.98px) {
    .footer-panel {
        padding: 1.75rem 1.5rem 2rem;
    }

    .footer-layout {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "brand nav"
            "actions actions"
            "map map";
        gap: 1.25rem 1.5rem;
    }

    .footer-map {
        height: 280px;
    }

    .footer-actions {
        justify-content: flex-start;
    }
}

/* Compact desktop / large tablet tweaks */
@media (max-width: 1199.98px) {
    .header-phone {
        font-size: 1rem;
    }

    .header-actions .btn-cta {
        min-width: 140px;
        font-size: 0.65rem;
        padding: 0 0.5rem;
    }
}

/* TV 960–1200 — Figma frame 296:16 */
@media (min-width: 960px) and (max-width: 1199.98px) {
    .header-address {
        display: inline;
        max-width: 80px;
        font-size: 0.625rem;
        line-height: 1.2;
    }

    .header-logo .site-logo {
        height: 38px;
        max-width: 200px;
    }

    .header-actions .btn-cta {
        width: 150px;
        min-width: 150px;
        height: 40px;
        font-size: 0.625rem;
    }

    .header-social a {
        width: 20px;
        height: 20px;
        font-size: 20px;
    }

    .hero-swiper {
        height: 226px;
    }

    .feature-card {
        height: 50px;
        padding: 0 0.65rem;
        gap: 0.55rem;
    }

    .feature-card__icon,
    .feature-card__icon img {
        width: 27px;
        height: 22px;
    }

    .feature-card__title {
        font-size: 0.75rem;
    }

    .about-gallery {
        grid-template-rows: 100px 100px;
    }

    .about-feature__title {
        font-size: 1rem;
    }

    .about-highlight {
        font-size: 0.875rem;
    }

    .directions-section .btn-cta {
        width: 220px;
        height: 45px;
        font-size: 0.875rem;
    }

    .direction-card {
        min-height: 60px;
        padding: 0.5rem 0.75rem 0.5rem 1.5rem;
    }

    .cta-banner {
        min-height: 120px;
    }

    .footer-map {
        height: 230px;
    }

    .footer-actions .btn-cta {
        width: 140px;
        height: 40px;
        font-size: 0.625rem;
    }
}

/* Desktop chrome from 960 (Figma TV 960+), override Bootstrap lg=992 */
@media (min-width: 960px) {
    .header-hours.d-none {
        display: block !important;
    }

    .header-phone.d-none.d-lg-inline-flex {
        display: inline-flex !important;
    }

    .header-social.d-none.d-lg-flex {
        display: flex !important;
    }

    .header-actions .btn-cta.d-none.d-lg-inline-flex {
        display: inline-flex !important;
    }

    .header-burger.d-lg-none {
        display: none !important;
    }

    .header-nav.d-none.d-lg-block {
        display: block !important;
    }

    .header-mobile-meta {
        display: none !important;
    }

    .directions-cta--after.d-lg-none {
        display: none !important;
    }
}

/* Mobile / tablet chrome (< 960) */
@media (max-width: 959.98px) {
    .header-hours {
        display: none !important;
    }

    .header-main__row {
        flex-wrap: nowrap;
        align-items: center;
        padding-top: 0.35rem;
        padding-bottom: 0.25rem;
        min-height: 0;
        min-width: 0;
        gap: 0.5rem;
        width: 100%;
    }

    .header-logo {
        min-width: 0;
    }

    .header-logo .site-logo {
        height: 29px;
        max-width: min(156px, 42vw);
        width: auto;
    }

    .header-address {
        display: inline !important;
        max-width: 70px;
        font-size: 0.65rem;
        border-left: 1px solid var(--color-border);
        padding-left: 0.5rem;
        margin-left: 0.35rem;
        line-height: 1.2;
        flex-shrink: 1;
        min-width: 0;
    }

    .header-phone {
        margin-left: 0;
        min-width: 0;
        flex-shrink: 1;
    }

    .header-actions {
        margin-left: auto;
        flex-shrink: 0;
    }

    .header-mobile-meta {
        display: block;
        width: 100%;
    }

    .header-mobile-actions {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .header-phone--mobile {
        font-size: 0.7rem;
        margin-bottom: 0.5rem;
    }

    .header-phone--mobile .header-phone__icon {
        width: 12px;
        height: 12px;
        font-size: 12px;
        line-height: 12px;
    }

    .header-mobile-actions .btn-cta {
        height: 30px;
        font-size: 0.65rem;
        min-width: 0;
    }

    .hero-swiper {
        height: 220px;
    }

    .feature-card {
        height: auto;
        min-height: 70px;
        padding: 0.75rem;
    }

    .directions-section .btn-cta {
        width: 100%;
        max-width: 300px;
    }

    .directions-section .directions-cta:not(.directions-cta--after) {
        display: none;
    }

    .directions-section .directions-cta--after {
        display: inline-flex !important;
        width: 100%;
        max-width: 320px;
        height: 40px;
        font-size: 0.75rem;
        margin-top: 1.25rem;
        box-shadow: none;
    }

    .cta-banner__title {
        font-size: 1.5rem;
    }

    .cta-banner__phone {
        font-size: 1.35rem;
    }

    .news-tabs__item {
        font-size: 1.15rem;
    }

    .news-tabs__item.is-active {
        font-size: 1.5rem;
    }

    .news-tabs__sep {
        font-size: 1.5rem;
    }
}

/* Tablet 640–960 — Figma frame 296:30 */
@media (min-width: 640px) and (max-width: 959.98px) {
    .container {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .header-hours {
        display: block !important;
        padding: 0.35rem 0;
        max-height: 30px;
        font-size: 0.75rem;
    }

    .header-hours__inner {
        justify-content: center;
        gap: 0.35rem;
    }

    .header-hours__icon {
        width: 13px;
        height: 12px;
        font-size: 13px;
        line-height: 12px;
    }

    .site-header.is-scrolled .header-hours {
        max-height: 0;
        opacity: 0;
        padding: 0;
    }

    .header-main__row {
        padding-top: 0.5rem;
        gap: 0.5rem;
    }

    .header-logo .site-logo {
        height: 48px;
        max-width: min(252px, 38vw);
    }

    .header-address {
        max-width: 80px;
        font-size: 0.625rem;
        padding-left: 0.55rem;
    }

    /* Figma 640: phone under logo row, not beside burger */
    .header-phone.d-none.d-lg-inline-flex {
        display: none !important;
    }

    .header-phone--mobile {
        display: inline-flex !important;
        justify-content: center;
        width: 100%;
        font-size: 0.875rem;
        margin: 0 0 0.5rem;
    }

    .header-phone--mobile .header-phone__icon {
        width: 15px;
        height: 15px;
        font-size: 15px;
        line-height: 15px;
    }

    .header-burger {
        width: 40px;
        height: 30px;
    }

    .header-mobile-meta {
        display: block;
        width: 100%;
    }

    .header-mobile-actions {
        grid-template-columns: 1fr 1fr;
        gap: 0.65rem 0.75rem;
        width: 100%;
        max-width: none;
        margin: 0;
        padding-bottom: 0.5rem;
    }

    .header-mobile-actions .btn-cta {
        width: 100%;
        height: 40px;
        font-size: 0.7rem;
    }

    .hero-section {
        padding: 0.75rem 0 1.25rem;
    }

    .hero-swiper {
        height: 280px;
    }

    .hero-nav-prev,
    .hero-nav-next {
        width: 15px !important;
        height: 15px !important;
    }

    .hero-nav-prev img,
    .hero-nav-next img {
        width: 15px;
        height: 15px;
    }

    .features-bar .row {
        --bs-gutter-x: 0.65rem;
        --bs-gutter-y: 0.65rem;
    }

    .features-bar .col-6 {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
    }

    .feature-card {
        height: 50px;
        min-height: 50px;
        padding: 0 0.85rem;
        gap: 0.75rem;
    }

    .feature-card__icon,
    .feature-card__icon img {
        width: 32px;
        height: 26px;
    }

    .feature-card__title {
        font-size: 0.75rem;
        white-space: normal;
    }

    .section {
        padding: 2rem 0;
    }

    /* Directions: title | text on top, then 2-col cards */
    .directions-section > .container > .row {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
    }

    .directions-section .col-lg-4,
    .directions-section .col-lg-8 {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .directions-section .col-lg-4 {
        display: grid;
        grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.35fr);
        column-gap: 1.25rem;
        align-items: start;
    }

    .directions-section .col-lg-4 .section-title {
        margin-bottom: 0;
    }

    .directions-section .col-lg-4 .section-text {
        margin: 0;
        max-width: none;
        font-size: 0.875rem;
    }

    .directions-section .directions-cta:not(.directions-cta--after) {
        display: none;
    }

    .directions-section .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
    }

    .directions-section .row.g-3 {
        --bs-gutter-x: 0.85rem;
        --bs-gutter-y: 0.85rem;
    }

    .direction-card {
        min-height: 55px;
        padding: 0.55rem 0.85rem 0.55rem 1.25rem;
    }

    .direction-card__title {
        font-size: 0.9rem;
    }

    .direction-card__arrow,
    .direction-card__arrow img {
        width: 21px;
        height: 21px;
    }

    .directions-section .directions-cta--after {
        display: inline-flex !important;
        width: 250px;
        max-width: calc(50% - 0.45rem);
        height: 55px;
        font-size: 0.875rem;
        margin: 0.85rem 0 0 auto;
        box-shadow: none;
    }

    /* About: stacked features, desktop-like gallery */
    .about-section__inner {
        display: flex;
        flex-direction: column;
    }

    .about-intro {
        display: contents;
    }

    .about-intro__text {
        order: 1;
        max-width: none;
        margin-bottom: 1.25rem;
    }

    .about-intro__text .section-text {
        font-size: 0.95rem;
        max-width: none;
    }

    .about-more {
        order: 5;
        display: inline-flex;
        align-self: center;
        width: 160px;
        height: 40px;
        margin: 0.35rem auto 0;
    }

    .about-features {
        order: 2;
        margin: 0 0 1.5rem;
        gap: 0;
        padding: 0;
    }

    .about-feature {
        padding: 1rem 0 0;
    }

    .about-gallery {
        order: 3;
        grid-template-columns: minmax(0, 1.7fr) minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1.7fr);
        grid-template-rows: 68px 68px;
        gap: 5px;
        margin-bottom: 1.25rem;
    }

    .about-gallery__item {
        grid-column: auto;
        grid-row: auto;
    }

    .about-gallery__item--tall,
    .about-gallery__item--narrow {
        grid-row: span 2;
        min-height: 0;
    }

    .about-highlight {
        order: 4;
        font-size: 0.95rem;
        max-width: 34rem;
        margin: 0 auto 1.25rem;
        text-align: center;
    }

    /* Lead form: stacked blocks, 2-col fields */
    .lead-form-info {
        min-height: 160px;
        padding: 1.5rem 1.5rem;
    }

    .lead-form-info__title {
        font-size: 1.5rem;
        max-width: 20rem;
    }

    .lead-form-box {
        padding: 1.5rem 1.5rem 1.75rem;
    }

    .lead-form-box__header {
        justify-content: space-between;
        align-items: flex-start;
    }

    .lead-form-box__title {
        font-size: 1.35rem;
        max-width: 18rem;
        text-align: left;
        order: unset;
        flex: 1;
        margin-top: 0;
    }

    .lead-form-box__contacts {
        order: unset;
        width: auto;
        justify-content: flex-end;
    }

    .lead-form-box__phone {
        width: auto;
        min-width: 0;
        height: 40px;
        padding: 0 0.75rem;
    }

    .lead-form-box__max {
        width: 40px;
        height: 40px;
    }

    .lead-form-box__subtitle {
        text-align: left;
        max-width: none;
        margin: 0.75rem 0 1rem;
    }

    .lead-form .form-row {
        grid-template-columns: 1fr 1fr;
        max-width: none;
        margin: 0;
    }

    .lead-form .btn-submit {
        width: 200px;
        margin: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #181818;
    }

    .lead-form .form-check {
        max-width: none;
        margin: 0;
    }

    .specialists-section__header {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .specialist-card {
        min-height: 290px;
    }

    .specialist-card__cta {
        width: 180px;
        height: 34px;
        font-size: 0.6875rem;
        white-space: nowrap;
    }

    .reviews-section__header {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        padding-right: 0;
    }

    .reviews-section__intro {
        padding-right: 0;
        flex: 1;
    }

    .reviews-section__lead {
        font-size: 0.9rem;
        order: unset;
    }

    .reviews-section__leave,
    .reviews-section__actions .btn-ghost {
        width: 90px;
        min-width: 90px;
        height: 25px;
        font-size: 0.625rem;
    }

    .reviews-rating-row {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.65rem 0.85rem;
    }

    .reviews-rating-row .reviews-rating {
        position: static;
    }

    .reviews-platforms {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
        flex: 1 1 100%;
        width: 100%;
    }

    .reviews-platform {
        width: 100%;
        height: 40px;
        min-height: 40px;
        padding: 0.3rem 0.45rem;
        background: #fff;
        border: 1px solid var(--color-border);
        align-items: center;
        justify-content: center;
    }

    .reviews-platform img {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 24px;
        object-fit: contain;
    }

    .review-card {
        min-height: 130px;
    }

    .news-section__header {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        flex-wrap: nowrap;
    }

    .news-section__all {
        width: auto;
        min-width: 118px;
        height: 32px;
        padding: 0 0.7rem;
        font-size: 0.75rem;
        white-space: nowrap;
        flex-shrink: 0;
        align-self: auto;
    }

    .cta-banner {
        min-height: 130px;
    }

    .cta-banner__title {
        font-size: 1.5rem;
    }

    .cta-banner__actions {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.75rem 1.25rem;
    }

    .cta-banner__vk {
        width: 110px;
        height: 40px;
    }

    .cta-banner__phone {
        font-size: 1.5rem;
    }

    /* Footer: logo+contacts | nav → CTAs → map */
    .footer-panel {
        padding: 2rem 2.5rem 1.75rem;
        text-align: left;
        border-radius: 15px 15px 0 0;
    }

    .footer-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "brand nav"
            "actions actions"
            "map map";
        gap: 1.25rem 2rem;
        max-width: 540px;
        margin: 0 auto;
        align-items: start;
    }

    .footer-brand {
        display: block;
        grid-area: brand;
    }

    .footer-brand .header-logo {
        justify-content: flex-start;
        width: 100%;
        margin-bottom: 0.75rem !important;
    }

    .footer-address {
        margin: 0 0 0.85rem;
    }

    .footer-hours-title {
        margin-top: 0;
    }

    .footer-phone {
        margin: 1rem 0 0.65rem;
        font-size: 1.1rem;
        justify-content: flex-start;
        width: auto;
    }

    .footer-social {
        justify-content: flex-start;
        margin-bottom: 0 !important;
    }

    .footer-nav-col {
        grid-area: nav;
        padding-top: 0.15rem;
    }

    .footer-title,
    .footer-nav,
    .footer-address,
    .footer-hours-title,
    .footer-hours {
        text-align: left;
        margin-left: 0;
        margin-right: 0;
    }

    .site-logo--footer {
        max-width: 430px;
        width: 100%;
        height: auto;
        margin: 0;
    }

    .footer-actions {
        grid-area: actions;
        flex-direction: row;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 0.75rem;
        margin: 0.35rem 0 0;
    }

    .footer-actions .btn-cta {
        width: 200px;
        max-width: 100%;
        height: 40px;
        font-size: 0.7rem;
    }

    .footer-map {
        grid-area: map;
        height: 230px;
    }

    .footer-social a {
        width: 25px !important;
        height: 25px !important;
        font-size: 25px !important;
    }
}

/* Phone 480–640 — Figma frame 296:44 */
@media (min-width: 480px) and (max-width: 639.98px) {
    .container {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    /* Hours bar */
    .header-hours {
        display: block !important;
        padding: 0.2rem 0;
        max-height: 20px;
        font-size: 0.5625rem;
        line-height: 1;
    }

    .header-hours__inner {
        justify-content: center;
        gap: 0.25rem;
    }

    .header-hours__icon {
        width: 10px;
        height: 9px;
        font-size: 10px;
        line-height: 9px;
    }

    .site-header.is-scrolled .header-hours {
        max-height: 0;
        opacity: 0;
        padding: 0;
    }

    .header-main__row {
        gap: 0.35rem;
        padding-top: 0.4rem;
        padding-bottom: 0.15rem;
    }

    .header-logo .site-logo {
        height: 35px;
        max-width: min(189px, 40vw);
    }

    .header-address {
        display: inline !important;
        max-width: 68px;
        font-size: 0.5rem;
        padding-left: 0.4rem;
        margin-left: 0.15rem;
        line-height: 1.2;
        flex-shrink: 1;
        min-width: 0;
    }

    /* Figma 480: phone under logo row, not beside burger */
    .header-phone.d-none.d-lg-inline-flex {
        display: none !important;
    }

    .header-phone--mobile {
        display: inline-flex !important;
        justify-content: center;
        width: 100%;
        font-size: 0.75rem;
        margin: 0 0 0.5rem;
        gap: 0.25rem;
    }

    .header-phone--mobile .header-phone__icon {
        width: 12px;
        height: 11px;
        font-size: 12px;
        line-height: 11px;
    }

    .header-mobile-meta {
        display: block;
        padding-bottom: 0.35rem;
        width: 100%;
    }

    .header-mobile-actions {
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem 0.75rem;
        width: 100%;
        max-width: none;
        margin: 0;
        padding-bottom: 0.35rem;
    }

    .header-mobile-actions .btn-cta {
        width: 100%;
        height: 30px;
        font-size: 0.47rem;
    }

    .hero-section {
        padding: 0.5rem 0 1rem;
    }

    .hero-swiper {
        height: 205px;
    }

    .hero-nav-prev,
    .hero-nav-next {
        width: 12px !important;
        height: 12px !important;
    }

    .hero-nav-prev img,
    .hero-nav-next img {
        width: 12px;
        height: 12px;
    }

    .features-bar {
        margin-top: 0.75rem;
    }

    .features-bar .row {
        --bs-gutter-x: 0.625rem;
        --bs-gutter-y: 0.625rem;
    }

    /* Keep 2×2 feature grid */
    .features-bar .col-6 {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
    }

    .feature-card {
        height: 50px;
        min-height: 50px;
        padding: 0 0.65rem;
        gap: 0.55rem;
    }

    .feature-card__icon,
    .feature-card__icon img {
        width: 27px;
        height: 22px;
    }

    .feature-card__title {
        font-size: 0.75rem;
        white-space: normal;
    }

    .section {
        padding: 1.75rem 0;
    }

    .section-title {
        font-size: 1.35rem;
    }

    /* Directions: 2 columns + CTA bottom-right */
    .directions-section .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
    }

    .directions-section .row.g-3 {
        --bs-gutter-x: 0.65rem;
        --bs-gutter-y: 0.65rem;
    }

    .direction-card {
        min-height: 50px;
        padding: 0.45rem 0.65rem 0.45rem 0.85rem;
    }

    .direction-card__title {
        font-size: 0.8rem;
    }

    .direction-card__arrow,
    .direction-card__arrow img {
        width: 19px;
        height: 19px;
    }

    .directions-section .directions-cta:not(.directions-cta--after) {
        display: none;
    }

    .directions-section .directions-cta--after {
        display: inline-flex !important;
        width: 220px;
        max-width: calc(50% - 0.35rem);
        height: 50px;
        font-size: 0.75rem;
        margin: 0.65rem 0 0 auto;
        box-shadow: none;
    }

    /* About: collage + CTA at bottom */
    .about-section__inner {
        display: flex;
        flex-direction: column;
    }

    .about-intro {
        display: contents;
    }

    .about-intro__text {
        order: 1;
        max-width: none;
        margin-bottom: 1.25rem;
    }

    .about-intro__text .section-text {
        font-size: 0.875rem;
        max-width: none;
    }

    .about-more {
        order: 5;
        display: inline-flex;
        align-self: center;
        width: 160px;
        height: 40px;
        margin: 0.25rem auto 0;
    }

    .about-features {
        order: 2;
        grid-template-columns: 1fr;
        gap: 0;
        margin: 0 0 1.25rem;
        padding: 0;
    }

    .about-feature {
        border-left: none;
        padding: 1rem 0 0;
        border-top: 1px solid var(--color-border);
    }

    .about-feature:first-child {
        border-top: none;
        padding-top: 0;
    }

    .about-feature__title {
        font-size: 1rem;
    }

    .about-feature__text {
        font-size: 0.875rem;
    }

    .about-gallery {
        order: 3;
        grid-template-columns: minmax(0, 17fr) minmax(0, 17fr) minmax(0, 10fr);
        grid-template-rows: 140px 180px 180px;
        gap: 5px;
        margin-bottom: 1rem;
    }

    .about-gallery__item--tall,
    .about-gallery__item--narrow {
        grid-row: auto;
        min-height: 0;
    }

    .about-gallery__item:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }

    .about-gallery__item:nth-child(2) {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .about-gallery__item:nth-child(3) {
        grid-column: 3;
        grid-row: 1;
    }

    .about-gallery__item:nth-child(4) {
        grid-column: 2;
        grid-row: 1;
    }

    .about-gallery__item:nth-child(5) {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .about-highlight {
        order: 4;
        font-size: 0.875rem;
        text-align: left;
        margin: 0 0 1.25rem;
        max-width: none;
    }

    /* Lead form */
    .lead-form-info {
        min-height: 170px;
        padding: 1.5rem 1.35rem;
    }

    .lead-form-info__title {
        font-size: 1.35rem;
        max-width: 19rem;
    }

    .lead-form-info__text {
        font-size: 0.875rem;
        max-width: 18rem;
    }

    .lead-form-box {
        padding: 1.5rem 1.25rem 1.75rem;
    }

    .lead-form-box__header {
        display: flex;
        flex-wrap: wrap;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 0.65rem;
    }

    .lead-form-box__title {
        flex: none;
        order: 2;
        width: 100%;
        max-width: 100%;
        text-align: center;
        font-size: 1.25rem;
        line-height: 1.25;
        margin-top: 0;
        overflow-wrap: break-word;
    }

    .lead-form-box__contacts {
        order: 1;
        justify-content: center;
        width: 100%;
        flex-wrap: wrap;
    }

    .lead-form-box__phone {
        width: auto;
        min-width: 0;
        max-width: 100%;
        height: 40px;
        padding: 0 0.75rem;
    }

    .lead-form-box__max {
        width: 40px;
        height: 40px;
    }

    .lead-form-box__subtitle {
        text-align: center;
        max-width: 16rem;
        margin-left: auto;
        margin-right: auto;
    }

    .lead-form .form-row,
    .lead-form .oft-field--textarea,
    .lead-form .form-check,
    .lead-form .oft-smartcaptcha,
    .lead-form .btn-submit {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .lead-form .form-row {
        grid-template-columns: 1fr;
        margin-bottom: 0.5rem;
    }

    .lead-form .btn-submit {
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
        color: #181818;
    }

    .lead-form .oft-smartcaptcha {
        margin-bottom: 1rem;
    }

    .lead-form .oft-smartcaptcha .smart-captcha {
        width: 100% !important;
        max-width: 100%;
    }

    .lead-form .oft-smartcaptcha iframe,
    .lead-form .oft-smartcaptcha > div {
        max-width: 100% !important;
    }

    /* Specialists / promos */
    .specialists-section__header {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .specialist-card {
        min-height: 290px;
    }

    .specialist-card__cta {
        width: 180px;
        height: 34px;
        font-size: 0.6875rem;
        white-space: nowrap;
    }

    .promo-card {
        min-height: 220px;
    }

    .promo-card__badge {
        font-size: 0.625rem;
        max-width: none;
    }

    .promo-card__body {
        padding-top: 1.5rem;
    }

    /* FAQ */
    .faq-section .section-text {
        max-width: none;
        font-size: 0.875rem;
    }

    .faq-accordion .accordion-button {
        font-size: 1rem;
    }

    /* Reviews: title + rating + actions on top */
    .reviews-section .container {
        position: relative;
    }

    .reviews-section__header {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        padding-right: 0;
        gap: 0.75rem;
        margin-bottom: 0.35rem;
    }

    .reviews-section__intro {
        flex: 1;
        min-width: 0;
        padding-right: 5.5rem;
    }

    .reviews-section__intro .section-title {
        display: inline;
    }

    .reviews-section__lead {
        font-size: 0.875rem;
        order: unset;
        margin-top: 0.35rem;
    }

    .reviews-section__actions {
        order: unset;
        flex-shrink: 0;
    }

    .reviews-section__leave,
    .reviews-section__actions .btn-ghost {
        width: 90px;
        min-width: 90px;
        height: 25px;
        font-size: 0.625rem;
    }

    .reviews-rating-row {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.65rem 0.75rem;
        margin-bottom: 1rem;
    }

    .reviews-rating-row .reviews-rating {
        position: absolute;
        top: 0.15rem;
        left: 10.5rem;
    }

    .reviews-rating__value {
        font-size: 1.15rem;
    }

    .reviews-rating__stars {
        width: 62px;
        height: auto;
    }

    .reviews-platforms {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
        flex: 1 1 100%;
        width: 100%;
    }

    .reviews-platform {
        width: 100%;
        height: 42px;
        min-height: 42px;
        padding: 0.35rem 0.5rem;
        background: #fff;
        border: 1px solid var(--color-border);
        align-items: center;
        justify-content: center;
    }

    .reviews-platform img {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 26px;
        object-fit: contain;
    }

    .review-card {
        min-height: 130px;
    }

    /* News */
    .news-section__header {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 0.65rem;
        flex-wrap: nowrap;
    }

    .news-section__all {
        width: auto;
        min-width: 118px;
        height: 32px;
        padding: 0 0.7rem;
        font-size: 0.75rem;
        white-space: nowrap;
        flex-shrink: 0;
        align-self: auto;
    }

    /* CTA: VK + phone in one row */
    .cta-banner {
        min-height: 130px;
        padding: 1rem 1.25rem;
    }

    .cta-banner__title {
        font-size: 1.35rem;
    }

    .cta-banner__actions {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.65rem 1rem;
    }

    .cta-banner__vk {
        width: 110px;
        height: 40px;
        font-size: 0.7rem;
    }

    .cta-banner__phone {
        font-size: 1.35rem;
    }

    /* Footer: contacts | nav → CTAs → map (no display:contents — avoids overlap) */
    .footer-panel {
        padding: 1.75rem 1rem 1.5rem;
        border-radius: 15px 15px 0 0;
        text-align: left;
    }

    .footer-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "brand nav"
            "actions actions"
            "map map";
        gap: 1.15rem 1.5rem;
        align-items: start;
    }

    .footer-brand {
        display: block;
        grid-area: brand;
    }

    .footer-brand .header-logo {
        justify-content: flex-start;
        width: 100%;
        margin-bottom: 0.75rem !important;
    }

    .footer-address {
        margin: 0 0 0.85rem;
    }

    .footer-phone {
        margin: 1rem 0 0.65rem;
        font-size: 1.15rem;
        justify-content: flex-start;
        width: auto;
    }

    .footer-social {
        justify-content: flex-start;
        margin-bottom: 0 !important;
    }

    .footer-nav-col {
        grid-area: nav;
        padding-top: 0.15rem;
    }

    .footer-title,
    .footer-nav,
    .footer-address,
    .footer-hours-title,
    .footer-hours {
        text-align: left;
        margin-left: 0;
        margin-right: 0;
    }

    .site-logo--footer {
        max-width: 430px;
        width: 100%;
        height: auto;
        margin: 0;
    }

    .footer-actions {
        grid-area: actions;
        flex-direction: row;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 0.75rem;
        margin: 0.25rem 0 0;
    }

    .footer-actions .btn-cta {
        width: 200px;
        max-width: calc(50% - 0.4rem);
        height: 40px;
        font-size: 0.7rem;
    }

    .footer-map {
        grid-area: map;
        height: 230px;
    }

    .footer-social a {
        width: 25px !important;
        height: 25px !important;
        font-size: 25px !important;
    }
}

/* Phone 360 — Figma frame 295:359 */
@media (max-width: 479.98px) {
    .container {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    /* Hours bar visible and compact */
    .header-hours {
        display: block !important;
        padding: 0.2rem 0;
        max-height: 20px;
        font-size: 0.625rem;
        line-height: 1;
    }

    .header-hours__inner {
        justify-content: center;
        gap: 0.35rem;
    }

    .header-hours__icon {
        width: 10px;
        height: 10px;
        font-size: 10px;
        line-height: 10px;
    }

    .site-header.is-scrolled .header-hours {
        max-height: 0;
        opacity: 0;
        padding: 0;
    }

    .header-main__row {
        padding-top: 0.25rem;
        padding-bottom: 0;
    }

    .header-logo .site-logo {
        height: 29px;
        max-width: 156px;
    }

    .header-address {
        max-width: 69px;
        font-size: 0.625rem;
        padding-left: 0.45rem;
        margin-left: 0.2rem;
    }

    .header-phone--mobile {
        justify-content: center;
        font-size: 0.875rem;
        margin-bottom: 0.55rem;
    }

    .header-mobile-actions {
        gap: 0.625rem;
        padding-bottom: 0.5rem;
    }

    .header-mobile-actions .btn-cta {
        width: 100%;
        height: 30px;
        font-size: 0.625rem;
    }

    .hero-section {
        padding: 0.5rem 0 1rem;
    }

    .hero-swiper {
        height: 145px;
    }

    .hero-nav-prev,
    .hero-nav-next {
        width: 12px !important;
        height: 12px !important;
    }

    .hero-nav-prev img,
    .hero-nav-next img {
        width: 12px;
        height: 12px;
    }

    .hero-pagination {
        bottom: 8px !important;
    }

    .features-bar {
        margin-top: 0.85rem;
    }

    .features-bar .row {
        --bs-gutter-y: 0.35rem;
        --bs-gutter-x: 0;
    }

    .features-bar .col-6 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
    }

    .feature-card {
        height: 40px;
        min-height: 40px;
        padding: 0 0.75rem 0 2rem;
        gap: 1.15rem;
    }

    .feature-card__icon,
    .feature-card__icon img {
        width: 28px;
        height: 23px;
    }

    .feature-card__title {
        font-size: 0.75rem;
        font-weight: 700;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .section {
        padding: 1.5rem 0;
    }

    .section-title {
        font-size: 1.25rem;
    }

    .section-text {
        font-size: 0.875rem;
    }

    /* Directions: single column, CTA after list */
    .directions-section .row > [class*="col-"] {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .directions-section .row {
        display: flex;
        flex-direction: column;
    }

    .directions-section .row > .col-lg-4 {
        order: 1;
        margin-bottom: 1rem;
    }

    .directions-section .row > .col-lg-8 {
        order: 2;
    }

    .directions-section .btn-cta {
        width: 100%;
        max-width: 300px;
    }

    .directions-section .directions-cta:not(.directions-cta--after) {
        display: none;
    }

    .directions-section .directions-cta--after {
        display: inline-flex !important;
        width: 100%;
        max-width: none;
        height: 40px;
        font-size: 0.75rem;
        margin-top: 1.25rem;
        box-shadow: none;
    }

    .directions-section .row.g-3 {
        --bs-gutter-y: 0.625rem;
    }

    .directions-section .col-md-6 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
    }

    .direction-card {
        min-height: 40px;
        padding: 0.5rem 0.85rem;
    }

    .direction-card__title {
        font-size: 0.875rem;
    }

    .direction-card__arrow,
    .direction-card__arrow img {
        width: 19px;
        height: 19px;
    }

    /* About: stack + reorder gallery / highlight / CTA */
    .about-section__inner {
        display: flex;
        flex-direction: column;
    }

    .about-intro {
        display: contents;
    }

    .about-intro__text {
        order: 1;
        max-width: none;
        margin-bottom: 1.25rem;
    }

    .about-intro__text .section-text {
        font-size: 0.875rem;
    }

    .about-more {
        order: 5;
        display: inline-flex;
        align-self: center;
        width: 200px;
        height: 40px;
        margin: 0.25rem auto 0;
    }

    .about-features {
        order: 2;
        grid-template-columns: 1fr;
        gap: 0;
        margin: 0 0 1.25rem;
        padding: 0;
    }

    .about-feature {
        border-left: none;
        padding: 1.15rem 0 0;
        border-top: 1px solid var(--color-border);
    }

    .about-feature:first-child {
        border-top: none;
        padding-top: 0;
    }

    .about-feature__title {
        font-size: 1rem;
        margin-bottom: 0.65rem;
    }

    .about-feature__text {
        font-size: 0.875rem;
    }

    .about-gallery {
        order: 3;
        grid-template-columns: minmax(0, 12fr) minmax(0, 12fr) minmax(0, 7fr);
        grid-template-rows: 100px 120px 120px;
        gap: 5px;
        margin-bottom: 1rem;
    }

    .about-gallery__item--tall,
    .about-gallery__item--narrow {
        grid-row: auto;
        min-height: 0;
    }

    .about-gallery__item:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }

    .about-gallery__item:nth-child(2) {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .about-gallery__item:nth-child(3) {
        grid-column: 3;
        grid-row: 1;
    }

    .about-gallery__item:nth-child(4) {
        grid-column: 2;
        grid-row: 1;
    }

    .about-gallery__item:nth-child(5) {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .about-highlight {
        order: 4;
        font-size: 0.875rem;
        text-align: left;
        margin: 0 0 1.25rem;
        max-width: none;
    }

    /* Lead form stacked */
    .lead-form-info {
        min-height: 160px;
        padding: 1.25rem 1rem;
    }

    .lead-form-info__title {
        font-size: 1.15rem;
        max-width: none;
        margin-bottom: 0.75rem;
    }

    .lead-form-info__text {
        font-size: 0.8rem;
        max-width: 12.5rem;
    }

    .lead-form-box {
        padding: 1.25rem 0.85rem 1.5rem;
        overflow: hidden;
    }

    .lead-form-box__header {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0.65rem;
        margin-bottom: 0.75rem;
        width: 100%;
        max-width: 100%;
    }

    .lead-form-box__contacts {
        order: 1;
        width: 100%;
        max-width: 100%;
        justify-content: center;
        flex-wrap: wrap;
        gap: 0.4rem;
    }

    .lead-form-box__title {
        order: 2;
        flex: none;
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0;
        font-size: 1.05rem;
        line-height: 1.25;
        text-align: center;
        overflow-wrap: break-word;
        word-wrap: break-word;
        hyphens: manual;
    }

    .lead-form-box__phone {
        width: auto;
        max-width: 100%;
        height: 35px;
        font-size: 0.75rem;
        padding: 0 0.6rem;
        white-space: nowrap;
    }

    .lead-form-box__max {
        width: 35px;
        height: 35px;
        flex-shrink: 0;
    }

    .lead-form-box__subtitle {
        text-align: center;
        font-size: 0.8125rem;
        margin: 0 auto 1rem;
        max-width: 100%;
        line-height: 1.35;
    }

    .lead-form {
        width: 100%;
        max-width: 100%;
    }

    .lead-form .form-row,
    .lead-form .oft-field--textarea,
    .lead-form .form-check,
    .lead-form .oft-smartcaptcha,
    .lead-form .btn-submit {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        box-sizing: border-box;
    }

    .lead-form .form-row {
        grid-template-columns: 1fr;
        margin-bottom: 0.5rem;
    }

    .lead-form .btn-submit {
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
        width: 100%;
        color: #181818;
        background: #fff;
    }

    .lead-form .form-check {
        font-size: 0.7rem;
        padding-left: 1.35rem;
    }

    .lead-form .form-check-label {
        font-size: 0.7rem;
    }

    .lead-form .oft-smartcaptcha {
        margin-bottom: 1rem;
        overflow: hidden;
    }

    .lead-form .oft-smartcaptcha .smart-captcha {
        max-width: 100%;
        transform: scale(0.88);
        transform-origin: top left;
    }

    /* Specialists */
    .specialists-section__header {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 0.65rem !important;
        margin-bottom: 1rem;
    }

    .specialist-card {
        min-height: 300px;
        padding: 0.5rem 0.5rem 0.85rem;
    }

    .specialist-card__photo {
        aspect-ratio: 145 / 150;
    }

    .specialist-card__cta {
        width: 220px;
        max-width: 100%;
        height: 36px;
        font-size: 0.75rem;
        white-space: nowrap;
    }

    .specialist-card--catalog .specialist-card__cta {
        width: min(240px, 100%);
    }

    .specialist-card__name {
        font-size: 0.75rem;
    }

    .specialist-card__specialty {
        font-size: 0.7rem;
    }

    /* FAQ full width */
    .faq-section .row > [class*="col-"] {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .faq-section .section-text {
        max-width: none;
        font-size: 0.875rem;
        margin-bottom: 1.5rem;
    }

    .faq-accordion .accordion-button {
        font-size: 0.95rem;
        padding: 0.85rem 0.25rem 0.85rem 0.85rem;
    }

    .faq-accordion .accordion-button::after {
        width: 20px;
        height: 20px;
        background-size: 20px 20px;
    }

    .faq-accordion .accordion-button:not(.collapsed)::after {
        width: 28px;
        height: 28px;
        background-size: 28px 28px;
    }

    .faq-accordion .accordion-body {
        font-size: 0.8rem;
        padding-left: 0.85rem;
        padding-right: 2rem;
    }

    /* Promotions / news cards */
    .promo-card {
        min-height: 220px;
    }

    .promo-card__badge {
        font-size: 0.5625rem;
        max-width: none;
        width: calc(100% - 1rem);
        padding: 0.15rem 0.35rem;
    }

    .promo-card__body {
        padding-top: 1.5rem;
    }

    .promo-card__title {
        margin-top: 0.15rem;
    }

    .promo-card__cta {
        width: 110px;
        height: 30px;
        font-size: 0.75rem;
    }

    .news-section__header {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
    }

    .news-tabs {
        min-width: 0;
        flex: 1 1 auto;
        gap: 0.35rem;
    }

    .news-section__all {
        width: auto;
        min-width: 112px;
        height: 30px;
        padding: 0 0.6rem;
        font-size: 0.7rem;
        white-space: nowrap;
        flex-shrink: 0;
        align-self: center;
    }

    .news-tabs__item {
        font-size: 0.875rem;
    }

    .news-tabs__item.is-active {
        font-size: 1.05rem;
    }

    .news-tabs__sep {
        font-size: 1.05rem;
    }

    /* Reviews */
    .reviews-section .container {
        position: relative;
        padding-top: 0.15rem;
    }

    .reviews-section__header {
        flex-direction: column;
        align-items: stretch;
        gap: 0.65rem;
        padding-right: 5.5rem;
    }

    .reviews-section__intro {
        display: flex;
        flex-direction: column;
        gap: 0.35rem;
        width: 100%;
    }

    .reviews-section__lead {
        font-size: 0.75rem;
        margin-top: 0;
        order: 3;
    }

    .reviews-section__actions {
        order: 2;
    }

    .reviews-section__leave,
    .reviews-section__actions .btn-ghost {
        width: 90px;
        min-width: 90px;
        height: 25px;
        font-size: 0.625rem;
        padding: 0;
    }

    .reviews-rating-row {
        flex-direction: column;
        align-items: stretch;
        gap: 0.65rem;
        margin-bottom: 1rem;
    }

    .reviews-rating-row .reviews-rating {
        position: absolute;
        top: 0.1rem;
        right: 1.25rem;
    }

    .reviews-rating__value {
        font-size: 1.15rem;
    }

    .reviews-rating__stars {
        width: 62px;
        height: auto;
    }

    .reviews-platforms {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.45rem;
        justify-content: stretch;
        width: 100%;
        flex: 1 1 100%;
    }

    .reviews-platform {
        width: 100%;
        height: 44px;
        min-height: 44px;
        padding: 0.35rem 0.4rem;
        background: #fff;
        border: 1px solid var(--color-border);
        align-items: center;
        justify-content: center;
    }

    .reviews-platform img {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 26px;
        object-fit: contain;
    }

    .review-card {
        min-height: 109px;
        padding: 0.85rem 1rem;
    }

    /* CTA */
    .cta-banner {
        min-height: 140px;
        padding: 1rem;
    }

    .cta-banner__title {
        font-size: 1.25rem;
        margin-bottom: 0.65rem;
    }

    .cta-banner__actions {
        flex-direction: column;
        gap: 0.5rem;
    }

    .cta-banner__vk {
        width: 110px;
        height: 30px;
        font-size: 0.65rem;
    }

    .cta-banner__phone {
        font-size: 1.25rem;
    }

    .cta-banner__or {
        font-size: 0.625rem;
    }

    /* Footer: centered stack — brand → nav → actions → map */
    .footer-panel {
        padding: 2rem 1.25rem 1.5rem;
        border-radius: 15px 15px 0 0;
        text-align: center;
    }

    .footer-layout {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
    }

    .footer-brand,
    .footer-nav-col,
    .footer-actions,
    .footer-map {
        width: 100%;
    }

    .site-footer .header-logo {
        justify-content: center;
        width: 100%;
        margin-bottom: 0.85rem !important;
    }

    .site-logo--footer {
        height: auto;
        max-width: 306px;
        width: 100%;
        margin: 0 auto;
    }

    .footer-address,
    .footer-hours-title,
    .footer-hours {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }

    .footer-phone {
        justify-content: center;
        font-size: 1.5rem;
        margin: 1.15rem auto 0.75rem;
        width: 100%;
    }

    .footer-phone .oft-icon {
        width: 25px;
        height: 25px;
        font-size: 25px;
        line-height: 25px;
    }

    .footer-social {
        justify-content: center;
        margin-bottom: 1.75rem !important;
    }

    .footer-social a {
        width: 30px !important;
        height: 30px !important;
        font-size: 30px !important;
    }

    .footer-title {
        text-align: center;
        margin-top: 0;
    }

    .footer-nav {
        text-align: center;
        margin-bottom: 1.75rem;
    }

    .footer-actions {
        flex-direction: column;
        align-items: center;
        gap: 0.65rem;
        margin: 0 auto 1.5rem;
    }

    .footer-actions .btn-cta {
        width: 250px;
        max-width: 100%;
        height: 50px;
        font-size: 0.75rem;
    }

    .footer-map {
        height: 230px;
        margin-top: 0;
    }
}

@media (max-width: 575.98px) {
    .header-social:not(.oft-mobile-menu__social) {
        display: none;
    }
}

/* Cookie consent bar */
.cookie-consent {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    background: #007236;
    color: #fff;
    padding: 0.85rem 1rem;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.12);
}

.cookie-consent[hidden] {
    display: none !important;
}

.cookie-consent__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem 1.5rem;
    flex-wrap: wrap;
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}

.cookie-consent__text {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.4;
    max-width: 46rem;
}

.cookie-consent__link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.cookie-consent__link:hover {
    color: var(--color-accent);
}

.cookie-consent__btn {
    flex-shrink: 0;
    min-width: 3.25rem;
    height: 36px;
    padding: 0 1.15rem;
    border: 0;
    border-radius: 6px;
    background: var(--color-secondary);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;
}

.cookie-consent__btn:hover {
    background: var(--color-accent);
    color: var(--color-text);
}

.cookie-consent__btn:active {
    transform: translateY(1px);
}

@media (max-width: 575.98px) {
    .cookie-consent {
        padding: 0.75rem 0.85rem;
    }

    .cookie-consent__text {
        font-size: 0.8125rem;
    }
}

