        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            color: #333;
            line-height: 1.6;
        }

        a {
            color: var(--lending-red);
            text-decoration: none;
            transition: color 0.3s;
        }

        a:hover {
            color: var(--lending-red-dark);
            text-decoration: underline;
        }

        p a, .hero-subtitle a, .trust-section a {
            color: var(--lending-red);
            text-decoration: none;
        }

        p a:hover, .hero-subtitle a:hover, .trust-section a:hover {
            color: var(--lending-red-dark);
            text-decoration: underline;
        }

        /* Убираем подчеркивание для кнопок-ссылок */
        a.btn-details:hover,
        a.btn-connect-card:hover,
        a.btn-check-availability:hover,
        a.btn-connect:hover,
        a.btn-search:hover {
            text-decoration: none;
        }

        /* Header */
        .navbar {
            background: #fff;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            padding: 1rem 0;
            overflow: visible;
        }

        .navbar .container {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
            align-items: center;
            column-gap: 1rem;
        }

        .navbar-brand {
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--lending-red) !important;
            text-decoration: none;
            display: flex;
            align-items: center;
            justify-self: start;
        }

        .navbar-logo {
            height: 32px !important;
            width: auto;
            object-fit: contain;
        }

        .navbar-location {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            color: #333;
            font-weight: 500;
            font-size: 1rem;
        }

        .navbar-location i {
            font-size: 1.1rem;
            color: var(--lending-red);
        }

        .navbar-sections {
            display: flex;
            align-items: center;
            gap: 0.9rem;
            justify-self: center;
        }

        .navbar-location,
        .navbar-location-btn {
            justify-self: end;
            min-width: 0;
        }

        .navbar-section-link {
            color: #4a5562;
            text-decoration: none !important;
            font-size: 0.95rem;
            font-weight: 600;
            padding: 0.25rem 0.1rem;
            border-bottom: 2px solid transparent;
        }

        .navbar-section-link:hover,
        .navbar-section-link:focus-visible {
            color: var(--lending-red);
            border-bottom-color: var(--lending-red);
            text-decoration: none !important;
        }

        .navbar-section-link.is-active {
            color: var(--lending-red);
            border-bottom-color: var(--lending-red);
            text-decoration: none !important;
        }

.navbar-dropdown {
    position: relative;
}

.navbar-dropdown-toggle {
    border: none;
    background: transparent;
    color: #4a5562;
    text-decoration: none !important;
    font-size: 0.95rem;
    font-weight: 600;
    padding: 0.25rem 0.1rem;
    border-bottom: 2px solid transparent;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
}

.navbar-dropdown-toggle:hover,
.navbar-dropdown-toggle:focus-visible,
.navbar-dropdown-toggle.is-active {
    color: var(--lending-red);
    border-bottom-color: var(--lending-red);
    text-decoration: none !important;
}

.navbar-dropdown-menu {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    min-width: 280px;
    background: #fff;
    border: 1px solid #e6ece8;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
    padding: 0.5rem;
    display: none;
    z-index: 30;
}

/* Invisible bridge: gap between toggle and panel is outside .navbar-dropdown's
   layout box, so :hover breaks while moving the cursor down. This ::before is
   part of the menu's hit target and covers the vertical gap. */
.navbar-dropdown-menu::before {
    content: "";
    position: absolute;
    left: -6px;
    right: -6px;
    top: -14px;
    height: 14px;
}

.navbar-dropdown:hover .navbar-dropdown-menu,
.navbar-dropdown:focus-within .navbar-dropdown-menu {
    display: block;
}

.navbar-dropdown-link {
    display: block;
    padding: 0.7rem 0.85rem;
    border-radius: 10px;
    color: #374151 !important;
    text-decoration: none !important;
    font-size: 0.94rem;
    font-weight: 600;
    line-height: 1.35;
}

.navbar-dropdown-link:hover,
.navbar-dropdown-link:focus-visible,
.navbar-dropdown-link.is-active {
    background: rgba(var(--lending-red-rgb), 0.08);
    color: var(--lending-red) !important;
}

.navbar-menu-toggle {
    display: none;
    border: 1px solid #d9e3dc;
    background: #fff;
    color: #1a1a1a;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    padding: 0;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-direction: column;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.navbar-menu-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: #1a1a1a;
}

.navbar-mobile-panel[hidden] {
    display: none !important;
}

.navbar-mobile-panel {
    display: none;
    padding: 0 0 0.85rem;
    background: #fff;
    border-top: 1px solid #eef2f0;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.04);
}

.navbar-mobile-links {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding-top: 0.85rem;
}

.navbar-mobile-link {
    display: block;
    padding: 0.8rem 0.95rem;
    border-radius: 12px;
    background: #f8faf9;
    color: #374151 !important;
    text-decoration: none !important;
    font-weight: 600;
}

.navbar-mobile-link.is-active,
.navbar-mobile-link:hover,
.navbar-mobile-link:focus-visible {
    background: rgba(var(--lending-red-rgb), 0.09);
    color: var(--lending-red) !important;
}


        .nav-link {
            color: #333 !important;
            font-weight: 500;
            margin: 0 0.5rem;
        }

        .btn-connect {
            background: var(--lending-red);
            color: white;
            border: none;
            padding: 0.75rem 2rem;
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            font-weight: 600;
            box-shadow: 0 4px 12px rgba(var(--lending-red-rgb), 0.3);
        }

        .btn-connect:hover {
            background: var(--lending-red-dark);
            color: white;
        }

        /* Hero Section */
        .hero-section {
            background: #fafbfc;
            padding: 4rem 0;
        }

        .hero-title {
            font-size: clamp(1.35rem, 2vw, 1.95rem);
            font-weight: 800;
            margin-bottom: 0.65rem;
            color: #212121;
            line-height: 1.3;
        }
        
        .hero-subtitle {
            font-size: 1rem;
            color: #666;
            margin-bottom: 2rem;
            line-height: 1.5;
        }

        .hero-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.4rem 0.9rem;
            border-radius: 999px;
            background: rgba(var(--lending-red-rgb), 0.12);
            color: var(--lending-red);
            font-weight: 600;
            margin-bottom: 1rem;
        }

        .hero-badge--accent {
            background: rgba(25, 118, 210, 0.12);
            color: #1565c0;
        }

        .hero-badge--accent i {
            color: #1976d2;
        }

        .hero-intro {
            font-size: 1rem;
            font-weight: 400;
            color: #4b5563;
            margin: 0 0 2rem;
            line-height: 1.55;
            max-width: 52rem;
        }

        .hero-partner-note {
            max-width: 52rem;
            margin: -0.55rem 0 1.1rem;
            padding: 0.75rem 0.95rem;
            border: 1px solid #f1d7a3;
            border-radius: 14px;
            background: #fff8e8;
            font-size: 0.95rem;
            line-height: 1.5;
            color: #5f4b1b;
        }

        .hero-company-line {
            margin-top: 1rem;
            font-size: 0.75rem;
            line-height: 1.45;
            color: #6b7280;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .hero-section .address-search .btn-search {
            white-space: normal;
            line-height: 1.3;
            text-align: center;
            max-width: min(100%, 22rem);
        }

        .hero-actions {
            display: flex;
            gap: 1rem;
            flex-wrap: wrap;
            margin-top: 1rem;
        }

        .hero-contact {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            flex-wrap: nowrap;
            margin: 1.5rem 0;
            justify-content: flex-start;
            text-align: left;
            width: 100%;
        }

        .phone-link {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            color: var(--lending-red);
            text-decoration: none;
            font-weight: 700;
            line-height: 1.1;
        }

        .phone-link:hover {
            color: var(--lending-red-dark);
        }

        .phone-note {
            color: #666;
            font-size: 0.95rem;
            display: inline-flex;
            align-items: center;
            margin-top: 0;
            line-height: 1.1;
        }

        .final-cta-actions {
            display: flex;
            align-items: center;
            gap: 1.5rem;
            flex-wrap: nowrap;
            margin-top: 1.5rem;
        }

        .final-cta .btn-connect-card {
            font-size: 0.875rem;
            padding: 0.625rem 1rem;
            white-space: nowrap;
        }

        .address-search {
            display: flex;
            gap: 1rem;
            margin-bottom: 2rem;
            align-items: center;
            flex-wrap: wrap;
        }

        .address-input {
            flex: 0 1 420px;
            padding: 1rem 1.5rem;
            border: 2px solid #e0e0e0;
            border-radius: 50px;
            font-size: 1rem;
            background: white;
        }
        
        .address-phone {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 0.125rem;
            line-height: 1.1;
        }

        .callout-card {
            margin-top: 0.75rem;
        }
        
        .address-input-wrap:not(.address-input-wrap--combo) .address-input:focus {
            outline: 2px solid var(--lending-red);
            outline-offset: 2px;
            border-color: var(--lending-red);
        }
        
        .address-input-wrap:not(.address-input-wrap--combo) .address-input:focus-visible {
            outline: 2px solid var(--lending-red);
            outline-offset: 2px;
        }

        .btn-search {
            background: var(--lending-red);
            color: white;
            border: none;
            padding: 1rem 2.5rem;
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            font-weight: 600;
            font-size: 1rem;
            cursor: pointer;
            transition: all 0.3s;
            box-shadow: 0 4px 16px rgba(var(--lending-red-rgb), 0.4);
        }
        
        .btn-search:hover {
            background: var(--lending-red-dark);
            color: white;
        }

        .phone-number {
            font-size: 1.8rem;
            font-weight: bold;
            color: var(--lending-red);
            margin-bottom: 0.5rem;
        }

        .promo-blocks {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 1.5rem;
            margin-bottom: 2rem;
        }

        .promo-block {
            background: white;
            padding: 2rem;
            border-radius: 24px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        }

        .promo-block h3 {
            color: var(--lending-red);
            margin-bottom: 0.5rem;
            font-size: 1.1rem;
        }
        
        .promo-block p {
            color: #666;
            font-size: 0.95rem;
        }
        
        .promo-block {
            position: relative;
        }
        
        .promo-block::before {
            content: "📍";
            position: absolute;
            top: 1.5rem;
            right: 1.5rem;
            font-size: 2rem;
        }
        
        .promo-block:nth-child(2)::before {
            content: "%";
            font-size: 1.5rem;
            font-weight: bold;
        }

        .providers-logos {
            display: flex;
            gap: 2rem;
            align-items: center;
            flex-wrap: wrap;
            padding: 1.5rem 0;
            border-top: 1px solid #eee;
            border-bottom: 1px solid #eee;
            justify-content: flex-start;
        }

        .providers-logos-inline {
            padding: 0;
            border: none;
            gap: 1rem;
            margin-left: 1rem;
        }

        .provider-logo {
            height: 56px;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            text-decoration: none;
            transition: opacity 0.3s;
        }

        .provider-logo:hover {
            opacity: 0.8;
        }
        
        .providers-logos-inline .provider-logo {
            height: 32px;
        }

        .provider-logo img {
            height: 100%;
            width: auto;
            object-fit: contain;
            max-width: 160px;
        }

        .callout-panels {
            margin-top: 1.25rem;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1.25rem;
        }

        .callout-card {
            background: white;
            border-radius: 20px;
            padding: 1rem 1.5rem;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1.5rem;
            box-shadow: 0 4px 16px rgba(0,0,0,0.08);
        }

        .callout-text {
            display: flex;
            flex-direction: column;
            gap: 0;
        }

        .callout-title {
            font-weight: 700;
            color: #212121;
        }

        .callout-note {
            color: #666;
            font-size: 0.95rem;
        }

        .callout-actions {
            display: flex;
            align-items: center;
            gap: 1rem;
            flex-wrap: wrap;
        }

        /* Section Titles */
        .section-title {
            font-size: var(--ui-title-size, clamp(1.35rem, 2vw, 1.95rem));
            font-weight: var(--ui-title-weight, 800);
            margin: 2rem 0 1.5rem;
            text-align: left;
            color: var(--ui-title-color, #212121);
            line-height: var(--ui-title-line, 1.25);
            letter-spacing: var(--ui-title-letter, -0.02em);
        }

        /* Tariff Cards */
        .tariff-filters {
            display: flex;
            justify-content: flex-start;
            gap: 0.5rem;
            flex-wrap: wrap;
            margin-bottom: 1.5rem;
        }

        .tariff-sidebar {
            background: white;
            border-radius: 20px;
            padding: 1.5rem;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            position: sticky;
            top: 2rem;
            max-height: calc(100vh - 4rem);
            overflow-y: auto;
        }


        .sidebar-title {
            font-size: 1.25rem;
            font-weight: 600;
            margin-bottom: 1.5rem;
            color: #212121;
        }

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

        .filter-group-title {
            font-weight: 600;
            font-size: 0.9375rem;
            margin-bottom: 0.75rem;
            color: #212121;
            display: flex;
            align-items: center;
            justify-content: space-between;
            cursor: pointer;
        }

        .filter-group-title i {
            transition: transform 0.3s;
        }

        .filter-group.collapsed .filter-group-title i {
            transform: rotate(-90deg);
        }

        .filter-group-content {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }

        .filter-group.collapsed .filter-group-content {
            display: none;
        }

        .filter-group.collapsed-mobile {
            display: none;
        }

        .filter-checkbox {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .filter-checkbox input[type="checkbox"],
        .filter-checkbox input[type="radio"] {
            width: 18px;
            height: 18px;
            cursor: pointer;
            accent-color: var(--lending-red);
        }

        .tariff-search-input {
            width: 100%;
            padding: 0.75rem 1rem;
            border: 2px solid #e0e0e0;
            border-radius: 10px;
            font-size: 0.9375rem;
            transition: border-color 0.3s;
            box-sizing: border-box;
        }

        .tariff-search-input:focus {
            outline: none;
            border-color: var(--lending-red);
        }

        .tariff-search-input::placeholder {
            color: #999;
        }

        .filter-checkbox label {
            cursor: pointer;
            font-size: 0.875rem;
            color: #666;
            user-select: none;
        }

        .filter-checkbox:hover label {
            color: #212121;
        }

        .filter-btn {
            padding: 0.35rem 0.9rem;
            border: 1px solid #e6e6e6;
            background: #f5f5f5;
            border-radius: 999px;
            cursor: pointer;
            transition: all 0.2s;
            font-weight: 500;
            font-size: 0.85rem;
            line-height: 1.2;
            color: #444;
        }
        
        .filter-btn:hover {
            border-color: var(--lending-red);
            color: var(--lending-red);
            background: #fff;
        }

        .filter-btn.active {
            background: var(--lending-red);
            color: white;
            border-color: var(--lending-red);
        }

        .tariffs-section {
            background: #f5f5f5;
            padding: 2rem 0;
        }

        .how-we-pick-section {
            background: #ffffff;
            padding: 2.5rem 0 2.75rem;
            border-top: 1px solid rgba(0, 0, 0, 0.06);
            border-bottom: 1px solid rgba(0, 0, 0, 0.06);
        }

        .how-we-pick-head {
            margin-bottom: 1.25rem;
        }

        .how-we-pick-tagline {
            font-size: 1.15rem;
            font-weight: 600;
            color: var(--lending-red);
            margin: 0.5rem 0 0;
            line-height: 1.35;
        }

        .how-we-pick-lead {
            font-size: 1rem;
            color: #555;
            line-height: 1.55;
            margin: 0 0 0.75rem;
            max-width: 40rem;
        }

        .how-we-pick-sublead {
            font-weight: 700;
            color: #212121;
            margin: 1.25rem 0 1rem;
            font-size: 1.05rem;
        }

        .how-we-pick-steps {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 1.25rem;
        }

        .how-we-pick-step {
            display: flex;
            flex-direction: column;
            align-items: stretch;
            gap: 0.75rem;
            background: #f8faf8;
            border-radius: 18px;
            padding: 1.25rem 1rem 1.35rem;
            border: 1px solid rgba(var(--lending-red-rgb), 0.12);
            min-height: 100%;
        }

        .how-we-pick-step-icon {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 132px;
        }

        .how-we-pick-step-icon img {
            width: 124px;
            height: 124px;
            object-fit: contain;
        }

        .how-we-pick-step-body {
            display: flex;
            flex-direction: column;
            gap: 0.35rem;
        }

        .how-we-pick-step-num {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.75rem;
            height: 1.75rem;
            border-radius: 50%;
            background: var(--lending-red);
            color: #fff;
            font-size: 0.875rem;
            font-weight: 700;
            margin-bottom: 0.15rem;
        }

        .how-we-pick-step-title {
            font-size: 0.98rem;
            font-weight: 700;
            color: #212121;
            margin: 0;
            line-height: 1.3;
        }

        .how-we-pick-step-text {
            font-size: 0.875rem;
            color: #666;
            margin: 0;
            line-height: 1.45;
        }

        .how-we-pick-outro {
            margin: 2rem 0 0;
            padding: 1.1rem 1.25rem;
            background: linear-gradient(135deg, rgba(var(--lending-red-rgb), 0.08) 0%, rgba(var(--lending-red-rgb), 0.03) 100%);
            border-radius: 14px;
            border: 1px solid rgba(var(--lending-red-rgb), 0.2);
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--lending-red-dark);
            line-height: 1.45;
        }

        .how-we-pick-outro-ico {
            margin-right: 0.35rem;
        }

        @media (max-width: 991px) {
            .how-we-pick-steps {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (max-width: 575px) {
            .how-we-pick-steps {
                grid-template-columns: 1fr;
            }

            .how-we-pick-section {
                padding: 2rem 0;
            }
        }

        .why-no-tariffs-section {
            background: #f5f5f5;
            padding: 2.5rem 0 3rem;
        }

        .why-no-tariffs-head {
            margin-bottom: 1.25rem;
        }

        .why-no-tariffs-kicker {
            font-size: 1.1rem;
            font-weight: 600;
            color: var(--lending-red);
            margin: 0 0 1rem;
            line-height: 1.4;
        }

        .why-no-tariffs-lead {
            font-size: 1rem;
            color: #444;
            line-height: 1.55;
            margin: 0 0 1.5rem;
            max-width: 44rem;
        }

        .why-no-tariffs-sub {
            font-weight: 700;
            color: #212121;
            margin: 0 0 0.75rem;
            font-size: 1rem;
        }

        .why-no-tariffs-factors {
            list-style: none;
            margin: 0 0 2rem;
            padding: 0;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 1rem;
        }

        .why-no-tariffs-factor {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            gap: 0.65rem;
            padding: 1.1rem 0.85rem;
            background: #fff;
            border-radius: 16px;
            border: 1px solid rgba(var(--lending-red-rgb), 0.12);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
        }

        .why-no-tariffs-factor-icon {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 60px;
        }

        .why-no-tariffs-factor-icon img {
            width: 56px;
            height: 56px;
            object-fit: contain;
        }

        .why-no-tariffs-factor-text {
            font-size: 0.875rem;
            font-weight: 600;
            color: #333;
            line-height: 1.35;
        }

        .why-no-tariffs-flow {
            background: #fff;
            border-radius: 18px;
            padding: 1.5rem 1.25rem 1.6rem;
            border: 1px solid rgba(var(--lending-red-rgb), 0.12);
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
            margin-bottom: 1.5rem;
        }

        .why-no-tariffs-flow-title {
            font-weight: 700;
            color: #212121;
            margin: 0 0 1rem;
            font-size: 1.05rem;
        }

        .why-no-tariffs-steps {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1rem;
        }

        .why-no-tariffs-step {
            display: flex;
            align-items: flex-start;
            gap: 0.65rem;
            padding: 0.85rem 0.85rem;
            background: linear-gradient(145deg, #f1f8f4 0%, #fff 100%);
            border-radius: 14px;
            border: 1px solid rgba(var(--lending-red-rgb), 0.18);
        }

        .why-no-tariffs-step-check {
            flex-shrink: 0;
            color: var(--lending-red);
            font-weight: 800;
            font-size: 1.15rem;
            line-height: 1.2;
            padding-top: 0.15rem;
        }

        .why-no-tariffs-step-main {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 0.4rem;
            min-width: 0;
        }

        .why-no-tariffs-step-icon-wrap {
            display: flex;
            align-items: center;
        }

        .why-no-tariffs-step-icon-wrap img {
            width: 48px;
            height: 48px;
            object-fit: contain;
        }

        .why-no-tariffs-step-label {
            font-size: 0.9rem;
            font-weight: 600;
            color: #333;
            line-height: 1.35;
        }

        .why-no-tariffs-outro {
            margin: 0;
            padding: 1.15rem 1.35rem;
            background: linear-gradient(135deg, rgba(var(--lending-red-rgb), 0.08) 0%, rgba(var(--lending-red-rgb), 0.03) 100%);
            border-radius: 14px;
            border: 1px solid rgba(var(--lending-red-rgb), 0.2);
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--lending-red-dark);
            line-height: 1.45;
        }

        .why-no-tariffs-outro-hand {
            margin-right: 0.35rem;
        }

        @media (max-width: 991px) {
            .why-no-tariffs-factors {
                grid-template-columns: repeat(2, 1fr);
            }

            .why-no-tariffs-steps {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 575px) {
            .why-no-tariffs-factors {
                grid-template-columns: 1fr;
            }

            .why-no-tariffs-section {
                padding: 2rem 0 2.25rem;
            }
        }

        .home-manifesto-section {
            background: #fff;
            border-top: 1px solid #ececec;
            padding: 2.5rem 0 3rem;
        }

        .home-manifesto-head {
            margin-bottom: 1rem;
            text-align: left;
        }

        .home-manifesto-tagline {
            margin: 0.5rem 0 0;
            font-size: 1.15rem;
            font-weight: 600;
            color: var(--lending-red);
            line-height: 1.4;
        }

        .home-manifesto-lead {
            margin: 0 0 0.75rem;
            max-width: 44rem;
            text-align: left;
            font-size: 1rem;
            color: #444;
            line-height: 1.6;
        }

        .home-manifesto-lead-strong {
            margin: 0 0 1.5rem;
            max-width: 44rem;
            text-align: left;
            font-weight: 700;
            font-size: 1.05rem;
            color: #212121;
        }

        .home-manifesto-stack {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
            margin-top: 0.25rem;
        }

        .home-manifesto-block {
            margin: 0;
        }

        .home-manifesto-block--compare {
            padding: 0;
        }

        .home-manifesto-block--accent {
            padding: 1.15rem 1.2rem 1.25rem;
            background: #f8faf8;
            border-radius: 0 16px 16px 0;
            border-left: 4px solid var(--lending-red);
            box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
        }

        .home-manifesto-block-title {
            display: flex;
            align-items: center;
            gap: 0.65rem;
            font-size: 1.05rem;
            font-weight: 700;
            color: #212121;
            margin: 0 0 1rem;
            line-height: 1.3;
            text-align: left;
        }

        .home-manifesto-block-icon {
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .home-manifesto-block-icon img {
            width: 40px;
            height: 40px;
            object-fit: contain;
        }

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

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

        .home-manifesto-accent-row .home-manifesto-block--accent {
            height: 100%;
            display: flex;
            flex-direction: column;
        }

        .home-manifesto-accent-row .home-manifesto-panel {
            flex: 1;
            display: flex;
            flex-direction: column;
        }

        .home-manifesto-accent-row .home-manifesto-panel-outro,
        .home-manifesto-accent-row .home-manifesto-panel-final {
            margin-top: auto;
        }

        @media (max-width: 991px) {
            .home-manifesto-compare-grid,
            .home-manifesto-accent-row {
                grid-template-columns: 1fr;
            }

            .home-manifesto-accent-row .home-manifesto-panel-outro,
            .home-manifesto-accent-row .home-manifesto-panel-final {
                margin-top: 1rem;
            }
        }

        .home-manifesto-card {
            border-radius: 14px;
            padding: 1.05rem 1.1rem 1.15rem;
            border: 1px solid #e5e5e5;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
        }

        .home-manifesto-compare-grid .home-manifesto-card {
            display: flex;
            flex-direction: column;
            height: 100%;
            min-height: 100%;
        }

        .home-manifesto-compare-grid .home-manifesto-card-out {
            margin-top: auto;
        }

        .home-manifesto-card--bad {
            background: linear-gradient(160deg, #fff8f8 0%, #fff 55%);
            border-color: rgba(183, 28, 28, 0.15);
        }

        .home-manifesto-card--good {
            background: linear-gradient(160deg, #f1f8f4 0%, #fff 55%);
            border-color: rgba(var(--lending-red-rgb), 0.2);
        }

        .home-manifesto-card-head {
            display: flex;
            align-items: flex-start;
            gap: 0.45rem;
            margin-bottom: 0.65rem;
        }

        .home-manifesto-emoji {
            font-size: 1.1rem;
            line-height: 1.2;
            flex-shrink: 0;
        }

        .home-manifesto-card-title {
            margin: 0;
            font-size: 0.95rem;
            font-weight: 700;
            color: #212121;
            line-height: 1.35;
        }

        .home-manifesto-list {
            margin: 0;
            padding-left: 1.15rem;
            font-size: 0.88rem;
            color: #424242;
            line-height: 1.45;
        }

        .home-manifesto-list li + li {
            margin-top: 0.35rem;
        }

        .home-manifesto-card-out {
            margin: 0.85rem 0 0;
            padding: 0.65rem 0.75rem;
            border-radius: 10px;
            font-size: 0.88rem;
            font-weight: 600;
            line-height: 1.4;
        }

        .home-manifesto-card-out--warn {
            background: rgba(183, 28, 28, 0.06);
            color: #6d1b1b;
        }

        .home-manifesto-card-out--ok {
            background: rgba(var(--lending-red-rgb), 0.08);
            color: var(--lending-red-dark);
        }

        .home-manifesto-block--accent .home-manifesto-panel {
            border: none;
            box-shadow: none;
            padding: 0;
            border-radius: 0;
            background: transparent;
        }

        .home-manifesto-panel {
            border-radius: 18px;
            padding: 1.25rem 1.2rem 1.35rem;
            border: 1px solid rgba(var(--lending-red-rgb), 0.14);
            box-shadow: 0 3px 16px rgba(0, 0, 0, 0.05);
        }

        .home-manifesto-panel--trust {
            background: linear-gradient(145deg, #f8fcf9 0%, #fff 70%);
        }

        .home-manifesto-panel--about {
            background: #fff;
        }

        .home-manifesto-block--accent .home-manifesto-panel.home-manifesto-panel--trust,
        .home-manifesto-block--accent .home-manifesto-panel.home-manifesto-panel--about {
            background: transparent;
        }

        .home-manifesto-panel-head {
            display: flex;
            align-items: flex-start;
            gap: 0.75rem;
            margin-bottom: 0.75rem;
        }

        .home-manifesto-panel-ico {
            width: 48px;
            height: 48px;
            object-fit: contain;
            flex-shrink: 0;
        }

        .home-manifesto-panel-title {
            margin: 0;
            font-size: 1.05rem;
            font-weight: 700;
            color: #212121;
            line-height: 1.3;
        }

        .home-manifesto-panel-sub {
            margin: 0.25rem 0 0;
            font-size: 0.9rem;
            font-weight: 600;
            color: var(--lending-red);
        }

        .home-manifesto-panel-lead {
            margin: 0 0 0.75rem;
            font-size: 0.95rem;
            color: #444;
            line-height: 1.5;
        }

        .home-manifesto-checklist {
            list-style: none;
            margin: 0;
            padding: 0;
            font-size: 0.9rem;
            color: #333;
            line-height: 1.45;
        }

        .home-manifesto-checklist li {
            display: flex;
            align-items: flex-start;
            gap: 0.4rem;
        }

        .home-manifesto-checklist li + li {
            margin-top: 0.45rem;
        }

        .home-manifesto-check {
            color: var(--lending-red);
            font-weight: 700;
            flex-shrink: 0;
        }

        .home-manifesto-panel-outro,
        .home-manifesto-panel-final {
            margin: 1rem 0 0;
            padding: 0.75rem 0.85rem;
            border-radius: 12px;
            font-size: 0.92rem;
            font-weight: 600;
            line-height: 1.45;
            background: linear-gradient(135deg, rgba(var(--lending-red-rgb), 0.08) 0%, rgba(var(--lending-red-rgb), 0.03) 100%);
            border: 1px solid rgba(var(--lending-red-rgb), 0.18);
            color: var(--lending-red-dark);
        }

        .home-manifesto-panel--about p {
            margin: 0 0 0.65rem;
            font-size: 0.92rem;
            color: #444;
            line-height: 1.55;
        }

        .home-manifesto-panel--about p:last-of-type {
            margin-bottom: 0;
        }

        @media (max-width: 575px) {
            .home-manifesto-section {
                padding: 2rem 0 2.25rem;
            }

            .home-manifesto-block--accent {
                padding: 1rem 1rem 1.1rem;
                border-radius: 0 12px 12px 0;
            }
        }

        .tariffs-layout {
            display: grid;
            grid-template-columns: 1fr 320px;
            gap: 2rem;
            align-items: start;
        }

        .tariff-cards {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        .tariff-card {
            background: white;
            border-radius: 20px;
            padding: 1.25rem;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            transition: transform 0.3s, box-shadow 0.3s, opacity 0.3s;
            position: relative;
            overflow: visible;
            opacity: 1;
            transform: scale(1);
            max-width: 100%;
        }

        .tariff-card.hidden {
            display: none !important;
        }

        .tariff-card:hover {
            box-shadow: 0 4px 16px rgba(0,0,0,0.12);
        }

        .tariff-card-content {
            display: grid;
            grid-template-columns: 1fr auto;
            gap: 2rem;
            align-items: start;
        }

        .tariff-main-content {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }

        .tariff-header {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            margin-bottom: 0.5rem;
        }

        .tariff-logo-with-tag {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            justify-content: space-between;
            width: 100%;
        }

        .tariff-tags {
            display: flex;
            gap: 0.5rem;
        }

        .tariff-tag {
            padding: 0.25rem 0.625rem;
            border-radius: 50px;
            font-size: 0.6875rem;
            font-weight: 600;
            white-space: nowrap;
        }

        .tariff-tag.recommended {
            background: #4caf50;
            color: white;
        }

        .tariff-tag.hit {
            background: #ffc107;
            color: #333;
        }

        .tariff-tag.popular {
            background: #ffc107;
            color: #333;
        }


        .tariff-provider-info {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .tariff-provider-logo {
            display: flex;
            align-items: center;
            text-decoration: none;
            transition: opacity 0.3s;
        }

        .tariff-provider-logo:hover {
            opacity: 0.8;
        }

        .tariff-provider-logo img {
            height: 28px;
            width: auto;
            object-fit: contain;
        }

        .tariff-rating {
            display: flex;
            align-items: center;
            gap: 0.25rem;
        }

        .tariff-rating-value {
            color: #4caf50;
            font-weight: 600;
            font-size: 0.875rem;
        }

        .tariff-rating-count {
            color: #999;
            font-size: 0.75rem;
        }

        .tariff-title {
            font-weight: 600;
            margin-bottom: 0.75rem;
            font-size: 1rem;
            color: #212121;
            line-height: 1.4;
        }

        .tariff-services {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            margin-bottom: 0.75rem;
        }
        
        .tariff-service-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .tariff-service-icon {
            width: 18px;
            height: 18px;
            color: #666;
            flex-shrink: 0;
        }

        .tariff-service-content {
            display: flex;
            flex-direction: column;
            gap: 0.25rem;
            flex: 1;
        }

        .tariff-service-main {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .tariff-service-value {
            color: #212121;
            font-weight: 600;
            font-size: 0.875rem;
        }

        .tariff-service-tech {
            background: #e0e0e0;
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 0.75rem;
            color: #666;
        }

        .tariff-service-label {
            color: #666;
            font-size: 0.75rem;
        }

        .tariff-options {
            display: flex;
            flex-direction: column;
            gap: 0.375rem;
            margin-bottom: 0.75rem;
            font-size: 0.75rem;
            color: #666;
        }

        .tariff-option {
            display: flex;
            align-items: flex-start;
            gap: 0.5rem;
        }

        .tariff-option-icon {
            width: 14px;
            height: 14px;
            color: #4caf50;
            flex-shrink: 0;
            margin-top: 2px;
        }

        .tariff-option-price {
            color: #212121;
            font-weight: 500;
        }

        .tariff-bottom {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            min-width: 240px;
            align-items: flex-start;
        }

        @media (max-width: 992px) {
            .tariff-card-content {
                display: flex;
                flex-direction: column;
                gap: 0.75rem;
            }

            .tariff-bottom {
                margin-top: 0.75rem;
                padding-top: 0.75rem;
                border-top: 1px solid #f5f5f5;
                min-width: auto;
                width: 100%;
            }
        }

        .tariff-pricing {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }

        .price-row {
            display: flex;
            align-items: baseline;
            gap: 0.5rem;
        }

        .price-old {
            font-size: 0.875rem;
            color: #999;
            text-decoration: line-through;
        }

        .price-current {
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--lending-red);
            line-height: 1;
        }

        .price-discount {
            font-size: 0.8125rem;
            color: #000;
            background: #ffeb3b;
            padding: 0.15rem 0.45rem;
            border-radius: 6px;
            display: inline-block;
        }

        .tariff-connection-info {
            display: flex;
            flex-direction: column;
            gap: 0.375rem;
            color: #666;
            font-size: 0.75rem;
        }
        
        .tariff-connection-info > div {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .tariff-actions {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            margin-top: 0.25rem;
        }

        .btn-details {
            padding: 0.75rem 1.5rem;
            border: none;
            background: var(--lending-red);
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            cursor: pointer;
            transition: all 0.3s;
            font-weight: 600;
            color: white;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.3);
            text-decoration: none;
        }
        
        .btn-details:hover {
            background: var(--lending-red-dark);
            color: white;
            text-decoration: none;
        }

        .btn-connect-card {
            width: 100%;
            padding: 0.75rem 1.25rem;
            background: var(--lending-red);
            color: white;
            border: none;
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            cursor: pointer;
            font-weight: 600;
            font-size: 0.875rem;
            transition: all 0.3s;
            box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.3);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            text-decoration: none;
        }

        .btn-check-availability {
            width: 100%;
            padding: 0.75rem 1.25rem;
            background: transparent;
            color: var(--lending-red);
            border: 1px solid var(--lending-red);
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            cursor: pointer;
            font-weight: 600;
            font-size: 0.875rem;
            transition: all 0.3s;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .btn-check-availability:hover {
            background: var(--lending-red);
            color: white;
            text-decoration: none;
        }

        .tariff-consultation {
            color: #1976d2;
            text-decoration: none;
            font-size: 0.8125rem;
            text-align: center;
            display: block;
            margin-top: 0.25rem;
        }

        .tariff-consultation:hover {
            text-decoration: underline;
        }

        .callout-card .btn-connect-card {
            align-self: center;
        }
        
        .btn-connect-card:hover {
            background: var(--lending-red-dark);
            color: white;
            text-decoration: none;
            box-shadow: 0 4px 12px rgba(var(--lending-red-rgb), 0.4);
            transform: translateY(-1px);
        }

        /* Provider Cards */
        .providers-section {
            background: #f5f5f5;
            padding: 2rem 0;
        }
        
        .providers-section .seo-text {
            padding-top: 0;
        }
        
        .providers-section .section-title {
            margin-top: 60px;
        }

        .provider-cards {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 1.5rem;
            margin-bottom: 2rem;
        }

        .provider-card {
            background: white;
            border-radius: 24px;
            padding: 2rem;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
            display: flex;
            flex-direction: column;
        }

        .provider-card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
        }

        .provider-card-logo {
            width: 90px;
            height: 28px;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            border-radius: 4px;
            overflow: hidden;
            text-decoration: none;
            transition: opacity 0.3s;
        }

        .provider-card-logo:hover {
            opacity: 0.8;
        }
        
        .provider-card-logo img {
            height: 100%;
            width: auto;
            object-fit: contain;
        }

        .provider-rating {
            display: flex;
            align-items: center;
            gap: 0.3rem;
            color: #333;
            font-weight: 600;
            background: #f5f5f5;
            border: 1px solid #e0e0e0;
            border-radius: 50px;
            padding: 0.4rem 0.75rem;
        }

        .provider-rating .star {
            color: #ff9800;
            font-size: 1rem;
        }

        .provider-name {
            font-size: 1.2rem;
            font-weight: bold;
            margin-bottom: 1rem;
            color: #212121;
            text-decoration: none;
            transition: color 0.3s;
        }

        .provider-name:hover {
            color: var(--lending-red);
        }

        .provider-info {
            flex: 1;
            margin-bottom: 1rem;
        }

        .provider-info-row {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 0.75rem;
            padding: 0.5rem 0;
            border-bottom: 1px solid #f0f0f0;
            font-size: 0.9rem;
        }

        .provider-info-row:last-child {
            border-bottom: none;
        }

        .provider-info-key {
            color: #666;
            min-width: 80px;
        }

        .provider-info-value {
            color: #212121;
            font-weight: 500;
            text-align: right;
            flex: 1;
        }

        .provider-description-toggle {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0.5rem 0;
            cursor: pointer;
            color: #212121;
            font-size: 0.9rem;
        }

        .provider-description-toggle:hover {
            color: var(--lending-red);
        }

        .provider-buttons {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            margin-top: auto;
            align-items: flex-start;
        }

        .btn-contact {
            display: none;
        }

        .btn-more-providers {
            color: var(--lending-red);
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            font-weight: 500;
            margin-top: 1rem;
            cursor: pointer;
        }

        .btn-more-providers:hover {
            text-decoration: underline;
        }

        .offices-section {
            background: white;
            padding: 2rem 0;
        }

        .office-cards {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 1.5rem;
        }

        .office-card {
            background: #f5f5f5;
            border-radius: 20px;
            padding: 1.5rem;
            box-shadow: 0 4px 16px rgba(0,0,0,0.08);
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }

        .office-header {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .office-logo {
            width: auto;
            height: 1.5em;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            flex-shrink: 0;
            line-height: 1;
            text-decoration: none;
            transition: opacity 0.3s;
        }

        .office-logo:hover {
            opacity: 0.8;
        }

        .office-logo img {
            height: 100%;
            width: auto;
            object-fit: contain;
            max-width: 120px;
            display: block;
        }

        .office-title {
            font-weight: 600;
            color: #212121;
            line-height: 1.5em;
            text-decoration: none;
            transition: color 0.3s;
        }

        .office-title:hover {
            color: var(--lending-red);
        }

        .office-address,
        .office-hours,
        .office-phone {
            color: #666;
            font-size: 0.9rem;
        }

        .btn-more-tariffs {
            color: var(--lending-red);
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 0.75rem;
            font-weight: 600;
            font-size: 1.125rem;
            padding: 1rem 2rem;
            border: 2px solid var(--lending-red);
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            transition: all 0.3s;
        }

        .btn-more-tariffs:hover {
            background: var(--lending-red);
            color: white;
            text-decoration: none;
            transform: translateY(-2px);
            box-shadow: 0 4px 16px rgba(var(--lending-red-rgb), 0.3);
        }

        /* Review Cards */
        .review-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5rem;
            margin-bottom: 3rem;
        }

        .review-card {
            background: white;
            border-radius: 24px;
            padding: 2rem;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        }

        .review-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
        }

        .review-author {
            font-weight: bold;
        }

        .review-card .rating {
            color: #ffd700;
            font-size: 1.1rem;
            line-height: 1;
        }

        .review-text {
            color: #666;
        }

        .review-address {
            margin-top: 0.75rem;
            color: #999;
            font-size: 0.85rem;
        }

        /* Journal Section */
        .journal-articles {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 1.5rem;
            margin-bottom: 3rem;
        }

        .journal-section {
            margin-bottom: 2rem;
        }

        .article-card {
            background: white;
            border-radius: 24px;
            padding: 2rem;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
            display: flex;
            gap: 1.5rem;
            align-items: flex-start;
        }

        .article-avatar {
            width: 200px;
            min-height: 180px;
            border-radius: 16px;
            background: none;
            flex-shrink: 0;
            object-fit: cover;
            display: block;
        }

        .article-content h3 {
            font-weight: bold;
            margin-bottom: 0.5rem;
            font-size: 1.1rem;
        }

        .article-date {
            color: #999;
            font-size: 0.9rem;
        }

        /* Steps Section */
        .steps-section {
            background: #f5f5f5;
            padding: 2rem 0;
        }

        .steps-container {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5rem;
        }

        .step-card {
            background: white;
            border-radius: 24px;
            padding: 2rem;
            text-align: left;
            box-shadow: 0 4px 16px rgba(0,0,0,0.08);
        }

        .steps-title {
            font-size: 1.8rem;
        }

        .step-number {
            width: 40px;
            height: 40px;
            min-width: 40px;
            min-height: 40px;
            background: var(--lending-red);
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            font-weight: bold;
            flex-shrink: 0;
        }
        
        .step-header {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 0.75rem;
        }

        .step-card h3 {
            font-size: 1.1rem;
            font-weight: 600;
            margin: 0;
        }

        /* Comparison Table */
        .comparison-section {
            background: white;
            padding: 3rem 0;
        }

        .tariff-comparison-section {
            background: #f5f5f5;
            padding: 2rem 0;
        }

        .tariff-selector {
            display: flex;
            flex-wrap: wrap;
            gap: 1rem;
            margin-bottom: 2rem;
            padding: 1.5rem;
            background: white;
            border-radius: 20px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
        }

        .tariff-checkbox {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.5rem 1rem;
            background: #f5f5f5;
            border-radius: 50px;
            cursor: pointer;
            transition: all 0.3s;
        }

        .tariff-checkbox:hover {
            background: #e0e0e0;
        }

        .tariff-checkbox input[type="checkbox"] {
            width: 18px;
            height: 18px;
            cursor: pointer;
            accent-color: var(--lending-red);
        }

        .tariff-checkbox input[type="checkbox"]:checked + label {
            font-weight: 600;
            color: var(--lending-red);
        }

        .tariff-checkbox label {
            cursor: pointer;
            font-size: 0.9375rem;
        }

        .comparison-table {
            width: 100%;
            border-collapse: collapse;
            margin: 2rem 0;
            background: white;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
        }

        .comparison-table th,
        .comparison-table td {
            padding: 1rem;
            text-align: left;
            border-bottom: 1px solid #eee;
        }

        .comparison-table th.tariff-col,
        .comparison-table td.tariff-col {
            transition: opacity 0.3s;
        }

        .comparison-table th.tariff-col[style*="display: none"],
        .comparison-table td.tariff-col[style*="display: none"] {
            display: none !important;
        }

        .comparison-table th {
            background: #f5f5f5;
            font-weight: bold;
            color: #212121;
        }

        .comparison-table th:first-child {
            min-width: 150px;
        }

        .comparison-table td:first-child {
            font-weight: 600;
            color: #212121;
        }

        .comparison-table tr:last-child td {
            border-bottom: none;
        }

        .comparison-table .tariff-name {
            font-weight: 600;
            color: #212121;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .comparison-table .tariff-name img {
            height: 24px;
            width: auto;
        }

        .comparison-table .price-cell {
            display: flex;
            flex-direction: column;
            gap: 0.25rem;
        }

        .comparison-table .price-old {
            font-size: 0.875rem;
            color: #999;
            text-decoration: line-through;
        }

        .comparison-table .price-current {
            font-size: 1.25rem;
            font-weight: bold;
            color: var(--lending-red);
        }

        .comparison-table .btn-connect-table {
            padding: 0.5rem 1rem;
            background: var(--lending-red);
            color: white;
            border: none;
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            cursor: pointer;
            font-weight: 600;
            font-size: 0.875rem;
            transition: all 0.3s;
            white-space: nowrap;
        }

        .comparison-table .btn-connect-table:hover {
            background: var(--lending-red-dark);
        }

        .comparison-mobile {
            display: none;
        }

        @media (max-width: 992px) {
            .comparison-table {
                display: none;
            }

            .comparison-mobile {
                display: block;
            }

            .comparison-mobile-card {
                background: white;
                border-radius: 20px;
                padding: 1.5rem;
                margin-bottom: 1rem;
                box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            }

            .comparison-mobile-card-header {
                display: flex;
                align-items: center;
                gap: 0.75rem;
                margin-bottom: 1rem;
                padding-bottom: 1rem;
                border-bottom: 2px solid #f5f5f5;
            }

            .comparison-mobile-card-header img {
                height: 32px;
                width: auto;
            }

            .comparison-mobile-card-title {
                font-weight: 600;
                font-size: 1.1rem;
                color: #212121;
            }

            .comparison-mobile-row {
                display: flex;
                justify-content: space-between;
                padding: 0.75rem 0;
                border-bottom: 1px solid #f5f5f5;
            }

            .comparison-mobile-row:last-child {
                border-bottom: none;
            }

            .comparison-mobile-label {
                font-weight: 600;
                color: #666;
            }

            .comparison-mobile-value {
                color: #212121;
                text-align: right;
            }

            .comparison-mobile-price {
                display: flex;
                flex-direction: column;
                align-items: flex-end;
                gap: 0.25rem;
            }

            .comparison-mobile-card .btn-connect-table {
                width: 100%;
                padding: 0.75rem 1.25rem;
                background: var(--lending-red);
                color: white;
                border: none;
                border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
                cursor: pointer;
                font-weight: 600;
                font-size: 0.875rem;
                transition: all 0.3s;
                box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.3);
                display: inline-flex;
                align-items: center;
                justify-content: center;
                text-decoration: none;
            }

            .comparison-mobile-card .btn-connect-table:hover {
                background: var(--lending-red-dark);
                color: white;
                text-decoration: none;
                box-shadow: 0 4px 12px rgba(var(--lending-red-rgb), 0.4);
                transform: translateY(-1px);
            }
        }

        /* Tariff Constructor */
        .constructor-section {
            background: #424242;
            color: white;
            padding: 3rem 0;
        }

        .constructor-container {
            background: #616161;
            border-radius: 24px;
            padding: 2.5rem;
        }

        .constructor-tabs {
            display: flex;
            gap: 1rem;
            margin-bottom: 2rem;
        }

        .constructor-tab {
            padding: 0.875rem 1.75rem;
            background: #757575;
            border: none;
            color: white;
            border-radius: 50px;
            cursor: pointer;
            transition: all 0.3s;
            font-weight: 500;
        }
        
        .constructor-tab:hover {
            background: #616161;
        }

        .constructor-tab.active {
            background: var(--lending-red);
        }
        
        .constructor-tab.active:hover {
            background: var(--lending-red-dark);
        }
        
        .constructor-tags {
            display: flex;
            gap: 0.75rem;
            flex-wrap: wrap;
            margin-bottom: 1.5rem;
        }
        
        .constructor-tag {
            padding: 0.4rem 0.9rem;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.12);
            color: white;
            font-size: 0.875rem;
            border: 1px solid rgba(255, 255, 255, 0.2);
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .constructor-tag:hover {
            background: rgba(255, 255, 255, 0.2);
        }

        .constructor-tag.active {
            background: #dc3545;
            border-color: #dc3545;
            color: white;
        }

        .slider-container {
            margin: 1.5rem 0;
        }

        .slider-label {
            display: flex;
            justify-content: space-between;
            margin-bottom: 0.5rem;
        }

        .slider {
            width: 100%;
            height: 8px;
            border-radius: 5px;
            background: #757575;
            outline: none;
            -webkit-appearance: none;
            appearance: none;
        }
        
        .slider::-webkit-slider-thumb {
            -webkit-appearance: none;
            appearance: none;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: var(--lending-red);
            cursor: pointer;
        }
        
        .slider::-moz-range-thumb {
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: var(--lending-red);
            cursor: pointer;
            border: none;
        }
        
        .slider-label span:last-child {
            color: #ccc;
            font-size: 0.9rem;
        }

        /* Coverage Area Section */
        .city-section {
            background: #f5f5f5;
            padding: 3rem 0;
        }

        .coverage-block {
            margin-bottom: 2rem;
        }

        .coverage-block-title {
            font-size: 1.5rem;
            font-weight: 600;
            color: #333;
            margin-bottom: 1.5rem;
        }

        .coverage-search {
            width: 100%;
            padding: 1rem 1.5rem;
            border: 2px solid #e0e0e0;
            border-radius: 50px;
            margin-bottom: 1.5rem;
            background: white;
            font-size: 1rem;
        }

        .coverage-search:focus {
            outline: 2px solid var(--lending-red);
            outline-offset: 2px;
            border-color: var(--lending-red);
        }

        .streets-container {
            background: white;
            border-radius: 20px;
            padding: 1.5rem;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            max-height: 360px;
            overflow-y: auto;
        }

        .streets-list {
            list-style: none;
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: 0.75rem;
        }

        .streets-list li {
            padding: 0.625rem 1rem;
            color: #666;
            cursor: pointer;
            transition: all 0.3s;
            border-radius: 10px;
            font-size: 0.9375rem;
        }

        .streets-list li:hover {
            background: #f5f5f5;
            color: var(--lending-red);
            transform: translateX(4px);
        }
        
        .streets-list li a {
            color: inherit;
            text-decoration: none;
            display: block;
            line-height: 1.5;
        }
        
        .streets-list li a:hover {
            color: inherit;
        }

        .streets-list li a strong {
            display: block;
            margin-bottom: 0.25rem;
            color: #333;
        }

        .streets-list li:hover a strong {
            color: var(--lending-red);
        }
        
        /* Custom scrollbar */
        .streets-container::-webkit-scrollbar {
            width: 8px;
        }
        
        .streets-container::-webkit-scrollbar-track {
            background: #f5f5f5;
            border-radius: 10px;
        }
        
        .streets-container::-webkit-scrollbar-thumb {
            background: #ccc;
            border-radius: 10px;
        }
        
        .streets-container::-webkit-scrollbar-thumb:hover {
            background: #999;
        }

        /* Metrics Tables */
        .metrics-table, .connection-terms-table {
            width: 100%;
            border-collapse: collapse;
        }

        .metrics-table-wrapper,
        .connection-terms-table-wrapper {
            width: 100%;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: thin;
            scrollbar-color: #ccc #f5f5f5;
        }

        .metrics-table-wrapper::-webkit-scrollbar,
        .connection-terms-table-wrapper::-webkit-scrollbar {
            height: 8px;
        }

        .metrics-table-wrapper::-webkit-scrollbar-track,
        .connection-terms-table-wrapper::-webkit-scrollbar-track {
            background: #f5f5f5;
            border-radius: 10px;
        }

        .metrics-table-wrapper::-webkit-scrollbar-thumb,
        .connection-terms-table-wrapper::-webkit-scrollbar-thumb {
            background: #ccc;
            border-radius: 10px;
        }

        .metrics-table-wrapper::-webkit-scrollbar-thumb:hover,
        .connection-terms-table-wrapper::-webkit-scrollbar-thumb:hover {
            background: #999;
        }

        .metrics-table th, .metrics-table td,
        .connection-terms-table th, .connection-terms-table td {
            padding: 1rem;
        }

        .metrics-table th, .connection-terms-table th {
            background: #f5f5f5;
            font-weight: 600;
            text-align: left;
            border-bottom: 2px solid #e0e0e0;
        }

        .metrics-table th:not(:first-child),
        .connection-terms-table th:not(:first-child) {
            text-align: center;
        }

        .metrics-table td:not(:first-child),
        .connection-terms-table td:not(:first-child) {
            text-align: center;
        }

        .metrics-table tr, .connection-terms-table tr {
            border-bottom: 1px solid #e0e0e0;
        }

        .metrics-table tr:hover, .connection-terms-table tr:hover {
            background: #f9f9f9;
        }

        /* Metrics Infographic */
        .metrics-wrapper {
            display: flex;
            gap: 2rem;
            align-items: flex-start;
        }

        .metrics-infographic {
            flex: 0 0 35%;
        }

        .grouped-chart {
            display: flex;
            flex-direction: column;
        }

        .grouped-bar-row {
            position: relative;
        }

        .grouped-bars {
            display: flex;
            gap: 0.25rem;
            align-items: flex-end;
            height: 50px;
            position: relative;
        }

        .grouped-bar {
            flex: 1;
            border-radius: 4px 4px 0 0;
            position: relative;
            min-width: 20px;
            transition: transform 0.2s ease, opacity 0.2s ease;
            cursor: pointer;
        }

        .grouped-bar:hover {
            transform: scaleY(1.05);
            opacity: 0.9;
        }

        .grouped-bar-value {
            position: absolute;
            bottom: 100%;
            left: 50%;
            transform: translateX(-50%);
            font-size: 0.7rem;
            font-weight: 600;
            white-space: nowrap;
            margin-bottom: 0.25rem;
        }

        .provider-label {
            font-size: 0.8125rem;
            font-weight: 600;
            color: #333;
            margin-bottom: 0.375rem;
        }

        .chart-legend {
            display: flex;
            gap: 1rem;
            margin-bottom: 1rem;
            flex-wrap: wrap;
            font-size: 0.75rem;
            padding-bottom: 0.75rem;
            border-bottom: 1px solid #e0e0e0;
        }

        .tables-wrapper {
            display: flex;
            gap: 2rem;
            align-items: flex-start;
        }

        /* Outages Visualization */
        .outages-visualization {
            width: 100%;
        }

        .outages-chart {
            width: 100%;
        }

        .chart-bar-wrapper {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        .chart-bar-item {
            display: flex;
            align-items: center;
            gap: 1.5rem;
        }

        .chart-bar-label {
            min-width: 120px;
            font-weight: 600;
            font-size: 0.9375rem;
            color: #212121;
        }

        .chart-bar-container {
            flex: 1;
            height: 40px;
            background: #f5f5f5;
            border-radius: 10px;
            position: relative;
            overflow: hidden;
        }

        .chart-bar {
            height: 100%;
            border-radius: 10px;
            position: relative;
            transition: width 0.8s ease;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            padding-right: 0.75rem;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            min-width: 80px;
        }

        .chart-bar-value {
            color: white;
            font-weight: 600;
            font-size: 0.875rem;
            white-space: nowrap;
            text-shadow: 0 1px 2px rgba(0,0,0,0.2);
        }

        @media (max-width: 768px) {
            .chart-bar {
                min-width: 60px;
                padding-right: 0.5rem;
            }

            .chart-bar-value {
                font-size: 0.75rem;
            }

            .chart-bar-label {
                font-size: 0.875rem;
            }

            .chart-bar-wrapper {
                gap: 1.25rem;
            }

            .chart-bar-container {
                height: 36px;
            }
        }

        .table-column {
            flex: 0 0 50%;
        }

        @media (max-width: 992px) {
            .tables-wrapper {
                flex-direction: column;
                gap: 2rem;
            }

            .tables-wrapper > div,
            .tables-wrapper .table-column {
                flex: 1 1 100% !important;
                width: 100% !important;
            }

            /* Tables wrapper adjustments for tablets */
            .metrics-table-wrapper,
            .connection-terms-table-wrapper {
                margin: 0 -1rem;
                padding: 0 1rem;
                width: calc(100% + 2rem);
            }

            .metrics-table,
            .connection-terms-table {
                min-width: 600px;
            }

            /* Cases Grid */
            .cases-grid {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }

            /* Stats Container */
            .stats-container {
                flex-direction: column;
            }

            .stats-container > div:first-child,
            .stats-container .stats-blocks {
                flex: 1 1 100% !important;
            }

            /* Promo Blocks */
            .promo-blocks {
                grid-template-columns: 1fr;
            }

            /* Coverage Blocks */
            .city-columns {
                grid-template-columns: 1fr;
            }

            /* Trust Grid */
            .trust-grid {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 768px) {
            .metrics-table, .connection-terms-table {
                font-size: 0.875rem;
            }

            .metrics-table th, .metrics-table td,
            .connection-terms-table th, .connection-terms-table td {
                padding: 0.75rem 0.5rem;
            }

            .grouped-bar {
                min-width: 15px;
            }

            .grouped-bar-value {
                font-size: 0.65rem;
            }

            .provider-label {
                font-size: 0.75rem;
            }

            .chart-legend {
                font-size: 0.7rem;
                gap: 0.75rem;
            }
        }

        /* FAQ */
        .faq-section {
            background: white;
            padding: 3rem 0;
        }

        .faq-item {
            border-bottom: 1px solid #eee;
            padding: 1rem 0;
        }

        .faq-question {
            display: flex;
            justify-content: space-between;
            align-items: center;
            cursor: pointer;
            font-weight: 500;
            transition: color 0.3s;
        }
        
        .faq-question:hover {
            color: var(--lending-red);
        }

        .faq-icon {
            font-size: 1.5rem;
            color: var(--lending-red);
        }

        .faq-answer {
            overflow-wrap: break-word;
            word-wrap: break-word;
            white-space: normal;
            line-height: 1.6;
        }

        .faq-answer [itemprop="text"] {
            overflow-wrap: break-word;
            word-wrap: break-word;
            white-space: normal;
        }

        /* Stats Section */
        .stats-section {
            background: white;
            padding: 2.5rem 0;
        }

        .stats-container {
            display: flex;
            gap: 3rem;
            align-items: flex-start;
        }

        .stats-container > div:first-child {
            flex: 0 0 50%;
        }

        .stats-container .stats-blocks {
            flex: 0 0 50%;
        }

        @media (max-width: 992px) {
            .stats-container {
                flex-direction: column;
            }

            .stats-container > div:first-child,
            .stats-container .stats-blocks {
                flex: 1 1 100% !important;
            }
        }

        .stats-image {
            width: 100%;
            border-radius: 20px;
            overflow: hidden;
            min-height: 320px;
        }
        
        .stats-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .stats-blocks {
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }

        .stats-blocks-wrapper {
            display: flex;
            gap: 1rem;
            flex-wrap: wrap;
        }

        .stat-block {
            text-align: left;
            padding: 1.5rem;
            background: white;
            border-radius: 24px;
            box-shadow: 0 4px 16px rgba(0,0,0,0.08);
            min-width: 170px;
            flex: 1;
        }

        .stat-number {
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--lending-red);
            margin-bottom: 0.5rem;
            white-space: nowrap;
        }

        .stats-description {
            background: white;
            border-radius: 24px;
            padding: 2rem;
            margin-top: 1.5rem;
            box-shadow: 0 4px 16px rgba(0,0,0,0.08);
        }

        .stats-description p {
            color: #666;
            line-height: 1.6;
            margin: 0;
            font-size: 1rem;
        }

        .trust-section {
            background: #f5f5f5;
            padding: 2.5rem 0;
        }

        .trust-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5rem;
            margin-top: 1.5rem;
        }

        .trust-item {
            background: white;
            border-radius: 20px;
            padding: 1.5rem;
            box-shadow: 0 4px 16px rgba(0,0,0,0.08);
        }

        .expert-opinion-block {
            background: white;
            border-radius: 24px;
            padding: 2.5rem;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
            margin-top: 3rem;
        }

        .expert-opinion-block h3 {
            font-size: 1.75rem;
            font-weight: 600;
            margin-bottom: 1.5rem;
            color: #212121;
        }

        .expert-opinion-content {
            display: flex;
            gap: 2rem;
            align-items: flex-start;
        }

        .expert-photo {
            flex-shrink: 0;
        }

        .expert-photo img {
            width: 180px;
            height: 180px;
            border-radius: 20px;
            object-fit: cover;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }

        .expert-info {
            flex: 1;
        }

        .expert-name {
            font-size: 1.25rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
            color: #212121;
            line-height: 1.4;
        }

        .expert-experience {
            color: #999;
            font-size: 0.875rem;
        }

        .expert-quote {
            padding-left: 1.5rem;
            border-left: 3px solid var(--lending-red);
            margin-top: 1.5rem;
        }

        .expert-quote p {
            color: #333;
            line-height: 1.8;
            font-size: 1rem;
            margin-bottom: 1rem;
        }

        .expert-quote p:last-child {
            margin-bottom: 0;
        }

        /* Cases Section */
        .cases-section {
            background: #f5f5f5;
            padding: 3rem 0;
        }

        .cases-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
            gap: 2rem;
        }

        .case-card {
            background: white;
            border-radius: 20px;
            padding: 2rem;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .case-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 4px 20px rgba(0,0,0,0.12);
        }

        @media (max-width: 768px) {
            .cases-grid {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }

            .case-card {
                padding: 1.5rem;
            }
        }

        .seo-text {
            padding: 1.5rem 0 0;
            color: #666;
        }

        .ceo-section {
            background: white;
            padding: 2.5rem 0;
        }

        .ceo-card {
            display: flex;
            gap: 2rem;
            align-items: flex-start;
            background: #f5f5f5;
            border-radius: 24px;
            padding: 2rem;
        }

        .ceo-photo {
            width: 140px;
            height: 180px;
            border-radius: 16px;
            overflow: hidden;
            flex-shrink: 0;
        }

        .ceo-photo img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .ceo-quote {
            font-style: italic;
            color: #444;
            border-left: 3px solid var(--lending-red);
            padding-left: 1rem;
            margin: 1rem 0;
        }

        /* Final CTA */
        .final-cta {
            background: transparent;
            padding: 3rem 0;
        }

        .final-cta-content {
            background: #424242;
            color: white;
            padding: 2.5rem;
            border-radius: 24px;
            text-align: left;
        }

        .final-cta > .container > div {
            display: flex;
            gap: 3rem;
            align-items: stretch;
        }

        .final-cta-content,
        .final-cta > .container > div > div:last-child {
            display: flex;
            flex-direction: column;
        }

        @media (max-width: 992px) {
            .final-cta > .container > div {
                flex-direction: column;
            }

            .final-cta > .container > div > div {
                flex: 1 1 100% !important;
            }
        }

        .final-cta h2 {
            font-size: 2rem;
            margin-bottom: 1rem;
            font-weight: bold;
        }

        .final-cta .phone-number {
            color: white;
            font-size: 1.4rem;
            white-space: nowrap;
        }

        /* Footer */
        .footer {
            background: #212121;
            color: white;
            padding: 2.5rem 0 1rem;
        }

        .footer-logo {
            font-size: 1.3rem;
            font-weight: bold;
            margin-bottom: 1.5rem;
            color: #f5f5f5;
        }

        .footer-links {
            display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 2rem 3rem;
            margin-bottom: 1.5rem;
        }

        .footer-column h5 {
            margin-bottom: 0.75rem;
            color: #eceff1;
            font-weight: 600;
            font-size: 0.95rem;
        }

        .footer-column--no-heading {
            padding-top: 2.35rem;
        }

        .footer-column ul {
            list-style: none;
            margin: 0;
            padding: 0;
        }

        .footer-column:first-child ul {
            columns: 2;
            column-gap: 1.5rem;
        }

        .footer-column:first-child ul li {
            break-inside: avoid;
        }

        .footer-column ul li {
            padding: 0.25rem 0;
            font-size: 0.875rem;
            line-height: 1.5;
        }

        .footer-column ul li a {
            color: #e3e6ea;
            text-decoration: none;
            transition: color 0.3s;
        }

        .footer-column ul li a:hover {
            color: #ffffff;
        }

        .footer .phone-link {
            color: #c8e6c9;
        }

        .footer .phone-link:hover {
            color: #ffffff;
        }

        .footer-bottom {
            border-top: 1px solid #424242;
            padding-top: 1rem;
            text-align: left;
            color: #999;
            font-size: 0.875rem;
        }

        .footer-company-details {
            margin-top: 0.75rem;
            font-size: 0.75rem;
            line-height: 1.55;
            color: #a7adb4;
        }

        .footer-signature {
            grid-column: 1 / -1;
            margin-top: 3rem;
            padding-bottom: 2rem;
            font-size: 0.75rem;
            line-height: 1.55;
            color: #a7adb4;
        }

        .footer-signature > *:first-child {
            margin-top: 0;
        }

        .footer-signature > *:last-child {
            margin-bottom: 0;
        }

        .footer-signature a {
            color: inherit;
        }

        .footer-company-details > *:first-child {
            margin-top: 0;
        }

        .footer-company-details > *:last-child {
            margin-bottom: 0;
        }

        .footer-company-details a {
            color: #c7d0d9;
        }

        .footer-company-details a:hover {
            color: #ffffff;
        }

        .footer-button-wrapper {
            margin-top: 0.75rem;
            width: 100%;
            box-sizing: border-box;
        }

        .footer-button-wrapper .btn-connect-card {
            width: 100%;
            max-width: 100%;
            box-sizing: border-box;
            padding: 0.75rem 1.25rem;
            font-size: 0.9rem;
            white-space: normal;
            word-wrap: break-word;
        }

        /* Carousel arrows */
        .carousel-control {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: rgba(0,0,0,0.5);
            color: white;
            border: none;
            padding: 0.75rem 1rem;
            cursor: pointer;
            border-radius: 50%;
            z-index: 10;
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2rem;
        }

        .carousel-control:hover {
            background: rgba(0,0,0,0.7);
        }

        .carousel-control.prev {
            left: -50px;
        }

        .carousel-control.next {
            right: -50px;
        }

        .section-container {
            position: relative;
        }
        
        .section-container:hover .carousel-control {
            opacity: 1;
        }
        
        .section-container .carousel-control {
            opacity: 0;
            transition: opacity 0.3s;
        }

        /* Responsive */
        @media (max-width: 1400px) {
            .tariff-cards {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (max-width: 1200px) {
            .provider-cards {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .hero-title {
                font-size: clamp(1.35rem, 2vw, 1.95rem);
            }
            
            .address-search {
                flex-direction: column;
                align-items: stretch;
            }
            
            .address-input {
                flex: 1 1 100%;
                width: 100%;
                max-width: 100%;
            }
            
            .btn-search {
                width: auto;
                align-self: flex-start;
            }
        }

        @media (max-width: 992px) {
            .tariff-cards {
                grid-template-columns: repeat(2, 1fr);
            }

            .office-cards {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .comparison-table {
                font-size: 0.9rem;
            }
            
            .comparison-table th,
            .comparison-table td {
                padding: 0.75rem 0.5rem;
            }
        }

        @media (max-width: 768px) {
            /* Ensure consistent container padding */
            .container {
                padding-left: 1rem;
                padding-right: 1rem;
            }

            /* Ensure all sections have consistent vertical padding and no horizontal padding */
            .hero-section,
            .tariffs-section,
            .providers-section,
            .offices-section,
            .steps-section,
            .comparison-section,
            .tariff-comparison-section,
            .constructor-section,
            .city-section,
            .faq-section,
            .stats-section,
            .trust-section,
            .cases-section,
            .ceo-section,
            .final-cta,
            .journal-section,
            .news-section {
                padding-left: 0;
                padding-right: 0;
            }

            /* Ensure table wrappers don't break container padding */
            .metrics-table-wrapper,
            .connection-terms-table-wrapper {
                margin-left: 0;
                margin-right: 0;
            }

            .table-column > div[style*="background: white"] {
                margin-left: 0;
                margin-right: 0;
            }

            .hero-section {
                padding: 1.25rem 0 1rem;
            }

            .hero-badge {
                margin-bottom: 0.5rem;
            }
            
            .hero-title {
                font-size: 1.35rem;
                line-height: 1.3;
                margin-bottom: 0.5rem;
            }
            
            .hero-subtitle {
                font-size: 0.95rem;
                margin-bottom: 1rem;
            }

            .hero-intro {
                margin-bottom: 1rem;
                font-size: 1rem;
            }

            .hero-partner-note {
                margin: -0.15rem 0 0.9rem;
                padding: 0.65rem 0.8rem;
                font-size: 0.9rem;
            }

            .hero-company-line {
                margin-top: 0.85rem;
                font-size: 0.72rem;
            }

            .hero-contact {
                flex-wrap: wrap;
                gap: 0.5rem;
            }

            .address-input {
                flex: 1 1 100%;
                width: 100%;
                max-width: 360px;
            }

            .address-phone {
                width: 100%;
                margin-top: 0.25rem;
                align-self: flex-start;
            }

            .address-search {
                flex-direction: column;
                align-items: stretch;
                gap: 0.65rem;
                margin-bottom: 1rem;
            }

            .address-input {
                flex: 1 1 100%;
                width: 100%;
                max-width: 100%;
            }

            .btn-search {
                width: 100%;
                padding: 0.875rem 1.5rem;
            }

            .providers-logos-inline.providers-logos-marquee {
                margin-left: 0;
                margin-top: 0.35rem;
                align-self: stretch;
                width: 100%;
            }

            .callout-panels {
                margin-top: 0.75rem;
                grid-template-columns: 1fr;
            }

            .site-breadcrumbs-wrap {
                padding: 0.8rem 0 0.65rem;
            }

            .callout-card {
                flex-direction: column;
                align-items: flex-start;
            }
            
            .phone-number {
                font-size: 1.5rem;
            }
            
            .section-title {
                font-size: 1.8rem;
            }
            
            .tariffs-layout {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }

            .tariff-sidebar {
                position: static;
                max-height: none;
                order: -1;
            }

            .tariff-sidebar .filter-group {
                margin-bottom: 1rem;
            }

            .tariff-sidebar .filter-group.collapsed .filter-group-content {
                display: none;
            }

            .tariff-sidebar .filter-group-title {
                cursor: pointer;
            }

            .tariff-cards,
            .provider-cards,
            .office-cards,
            .review-cards,
            .journal-articles,
            .steps-container,
            .promo-blocks {
                grid-template-columns: 1fr;
            }

            .article-card {
                flex-direction: column;
                align-items: stretch;
            }

            .article-avatar {
                width: 100%;
                min-height: 200px;
                margin-bottom: 1rem;
                order: -1;
            }

            .article-content {
                order: 1;
            }

            .tariff-card {
                padding: 1.25rem;
            }

            .tariff-provider-header {
                margin-top: 1.5rem;
            }

            .tariff-bottom {
                flex-direction: column;
                align-items: flex-start;
                gap: 1rem;
            }

            .tariff-connection-info {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.5rem;
            }

            .tariff-actions {
                width: 100%;
            }

            .btn-connect-card {
                width: 100%;
            }

            .stats-container {
                flex-direction: column;
            }

            .stats-container > div:first-child,
            .stats-container .stats-blocks {
                flex: 1 1 100% !important;
            }

            .stats-blocks {
                flex-direction: column;
            }

            .trust-grid {
                grid-template-columns: 1fr;
            }

            .ceo-card {
                flex-direction: column;
            }

            .city-columns {
                grid-template-columns: 1fr;
            }
            
            .streets-list {
                grid-template-columns: 1fr;
                gap: 0.5rem;
            }
            
            .streets-container {
                max-height: 300px;
                padding: 1rem;
            }
            
            .coverage-search {
                padding: 0.875rem 1.25rem;
                font-size: 0.9375rem;
            }

            .coverage-block {
                margin-bottom: 2.5rem;
            }

            .coverage-block-title {
                font-size: 1.25rem;
                margin-bottom: 1rem;
            }

            .footer {
                padding: 2rem 0 1rem;
            }

            .footer-links {
                grid-template-columns: repeat(2, 1fr);
                gap: 1.5rem 2rem;
            }

            .footer-column--no-heading {
                padding-top: 0;
            }

            .footer-column {
                margin-bottom: 1rem;
            }

            .footer-logo {
                font-size: 1.2rem;
                margin-bottom: 1.25rem;
            }

            .footer-column h5 {
                font-size: 0.9rem;
                margin-bottom: 0.625rem;
            }

            .footer-column ul li {
                padding: 0.2rem 0;
                font-size: 0.85rem;
            }

            .footer-button-wrapper {
                margin-top: 0.75rem;
                width: 100%;
                box-sizing: border-box;
            }

            .footer-button-wrapper .btn-connect-card {
                width: 100%;
                max-width: 100%;
                box-sizing: border-box;
                padding: 0.7rem 1.25rem;
                font-size: 0.85rem;
                white-space: normal;
                word-wrap: break-word;
            }
            
            .carousel-control {
                display: none;
            }
            
            .tariff-filters {
                flex-wrap: wrap;
                gap: 0.5rem;
            }
            
            .filter-btn {
                font-size: 0.9rem;
                padding: 0.4rem 1rem;
            }
            
            .price-current {
                font-size: 2.2rem;
            }
            
            .tariff-services {
                display: flex;
                flex-direction: column;
                gap: 1rem;
            }
            
            .tariff-options {
                grid-template-columns: 1fr;
            }
            
            .constructor-tabs {
                flex-wrap: wrap;
            }
            
            .constructor-tab {
                font-size: 0.85rem;
                padding: 0.5rem 1rem;
            }
            
            .comparison-table {
                display: block;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
            }
            
            .comparison-table th,
            .comparison-table td {
                min-width: 150px;
                font-size: 0.85rem;
            }

            /* Cases Section */
            .cases-grid {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }

            .case-card {
                padding: 1.5rem;
            }

            /* Tables Wrapper */
            .tables-wrapper {
                flex-direction: column;
                gap: 1.5rem;
            }

            .tables-wrapper > div {
                flex: 1 1 100% !important;
            }

            .metrics-table-wrapper,
            .connection-terms-table-wrapper {
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                margin: 0;
                padding: 0;
                width: 100%;
            }

            .metrics-table,
            .connection-terms-table {
                font-size: 0.8rem;
                min-width: 550px;
                width: 100%;
            }

            .metrics-table th,
            .metrics-table td,
            .connection-terms-table th,
            .connection-terms-table td {
                padding: 0.6rem 0.4rem;
                white-space: nowrap;
            }

            .metrics-table th:first-child,
            .metrics-table td:first-child,
            .connection-terms-table th:first-child,
            .connection-terms-table td:first-child {
                position: sticky;
                left: 0;
                background: white;
                z-index: 1;
                box-shadow: 2px 0 4px rgba(0,0,0,0.1);
            }

            .metrics-table thead th:first-child,
            .connection-terms-table thead th:first-child {
                background: #f5f5f5;
            }

            /* Final CTA */
            .final-cta > .container > div {
                flex-direction: column;
                gap: 2rem;
            }

            .final-cta > .container > div > div {
                flex: 1 1 100% !important;
            }

            .final-cta-content {
                padding: 2rem 1.5rem;
            }

            .final-cta-actions {
                flex-direction: column;
                align-items: stretch;
                gap: 1rem;
            }

            .final-cta .btn-connect-card {
                width: 100%;
            }

            /* Coverage Blocks */
            .coverage-block {
                margin-bottom: 2rem;
            }

            .coverage-block-title {
                font-size: 1.25rem;
                margin-bottom: 1rem;
            }

            .streets-container,
            #complexes-container {
                max-height: 300px;
                padding: 1rem;
            }

            .coverage-search {
                padding: 0.875rem 1.25rem;
                font-size: 0.9375rem;
            }

            /* Tables container padding adjustment */
            .table-column > div[style*="background: white"] {
                padding: 1rem !important;
                margin: 0;
            }

            /* Ensure table wrappers don't break container padding */
            .metrics-table-wrapper,
            .connection-terms-table-wrapper {
                margin-left: 0;
                margin-right: 0;
            }

            /* City Section */
            .city-section {
                padding: 2rem 0;
            }

            /* Outages Visualization */
            .outages-visualization {
                margin-top: 2rem;
            }

            .chart-bar-item {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.75rem;
            }

            .chart-bar-label {
                min-width: auto;
                width: 100%;
            }

            .chart-bar-container {
                width: 100%;
                height: 36px;
            }

            .chart-bar {
                min-width: 60px;
                padding-right: 0.5rem;
            }

            .chart-bar-value {
                font-size: 0.75rem;
            }

            .outages-visualization h3 {
                font-size: 1.1rem;
            }

            .outages-visualization > div[style*="background: white"] {
                padding: 1.25rem !important;
            }

            /* Constructor Section */
            .constructor-section {
                padding: 2rem 0;
            }

            .constructor-container {
                padding: 1.5rem;
            }

            .constructor-tabs {
                flex-wrap: wrap;
                gap: 0.5rem;
            }

            .constructor-tab {
                font-size: 0.85rem;
                padding: 0.5rem 1rem;
            }

            .slider-container {
                margin-bottom: 1.5rem;
            }

            /* Navbar */
            .navbar {
                padding: 0.75rem 0;
            }

            .navbar-logo {
                height: 24px !important;
            }

            .navbar .container {
                grid-template-columns: 1fr auto auto;
                grid-template-rows: auto;
                grid-template-areas:
                    "brand menu location";
                row-gap: 0.5rem;
            }

            .navbar-brand {
                grid-area: brand;
            }

            .navbar-menu-toggle {
                display: inline-flex;
                grid-area: menu;
                justify-self: end;
                margin-right: 0.4rem;
            }

            .navbar-location,
            .navbar-location-btn {
                grid-area: location;
                justify-self: end;
            }

            .navbar-sections {
                display: none;
            }

            .navbar-mobile-panel {
                display: block;
            }

            .navbar-brand {
                font-size: 1.2rem;
            }

            .navbar-logo {
                height: 28px !important;
            }

            .navbar-location {
                font-size: 0.9rem;
            }

            /* Promo Blocks */
            .promo-blocks {
                grid-template-columns: 1fr;
                gap: 1rem;
            }

            .promo-block {
                padding: 1.5rem;
            }

            /* Hero Section */
            .hero-badge {
                font-size: 0.85rem;
                padding: 0.35rem 0.75rem;
            }

            .btn-search {
                width: 100%;
                padding: 0.875rem 1.5rem;
            }

            /* Trust Section */
            .trust-section {
                padding: 2rem 0;
            }

            /* Expert Opinion Block */
            .expert-opinion-block {
                margin-top: 2rem;
                padding: 1.5rem !important;
            }

            .expert-opinion-block h3 {
                font-size: 1.5rem;
                margin-bottom: 1.25rem;
            }

            .expert-opinion-content {
                flex-direction: column;
                gap: 1.5rem;
            }

            .expert-photo {
                align-self: center;
            }

            .expert-photo img {
                width: 150px;
                height: 150px;
            }

            .expert-quote {
                padding-left: 1rem;
                margin-top: 1.25rem;
            }

            .expert-quote p {
                font-size: 0.9375rem;
            }

            /* Journal and News */
            .journal-section,
            .news-section {
                padding: 2rem 0;
            }

            /* Steps Section */
            .steps-section {
                padding: 2rem 0;
            }

            .steps-container {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }

            .step-card {
                padding: 1.5rem;
            }

            /* Review Section */
            .review-section {
                padding: 2rem 0;
            }

            /* Office Cards */
            .office-cards {
                grid-template-columns: 1fr;
            }

            /* Provider Cards */
            .provider-cards {
                grid-template-columns: 1fr;
            }

            /* Constructor Tags */
            .constructor-tags {
                flex-wrap: wrap;
                gap: 0.5rem;
            }

            .constructor-tag {
                font-size: 0.875rem;
                padding: 0.5rem 1rem;
            }

            /* Slider Container */
            .slider-container {
                margin-bottom: 1.5rem;
            }

            /* Navbar */
            .navbar-location {
                font-size: 0.9rem;
            }

            /* Hero Badge */
            .hero-badge {
                font-size: 0.85rem;
            }
        }
        
        @media (max-width: 576px) {
            .hero-title {
                font-size: 1.35rem;
            }

            .hero-company-line {
                white-space: normal;
            }
            
            .section-title {
                font-size: 1.5rem;
            }
            
            .phone-number {
                font-size: 1.3rem;
            }

            /* Footer */
            .footer {
                padding: 1.5rem 0 1rem;
            }

            .footer-links {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }

            .footer-column--no-heading {
                padding-top: 0;
            }

            .footer-logo {
                font-size: 1.1rem;
                margin-bottom: 1.25rem;
            }

            .footer-column {
                margin-bottom: 1.25rem;
            }

            .footer-column h5 {
                font-size: 0.875rem;
                margin-bottom: 0.625rem;
                color: #eceff1;
            }

            .footer-column ul li {
                padding: 0.2rem 0;
                font-size: 0.8125rem;
            }

            .footer-button-wrapper {
                margin-top: 0.75rem;
                width: 100%;
                box-sizing: border-box;
                padding: 0;
            }

            .footer-button-wrapper .btn-connect-card {
                width: 100%;
                max-width: 100%;
                box-sizing: border-box;
                padding: 0.7rem 1rem;
                font-size: 0.8125rem;
                white-space: normal;
                word-wrap: break-word;
                overflow-wrap: break-word;
            }

            .footer-bottom {
                padding-top: 1.25rem;
                font-size: 0.8125rem;
            }

            .footer-company-details {
                font-size: 0.71875rem;
            }

            .final-cta h2 {
                font-size: 1.5rem;
            }

            .final-cta-content {
                padding: 2rem 1.5rem;
            }

            .final-cta .phone-number {
                font-size: 1.2rem;
            }
            
            .navbar-brand {
                font-size: 1.1rem;
            }

            .navbar-logo {
                height: 26px !important;
            }
            
            .price-current {
                font-size: 1.8rem;
            }
            
            .final-cta h2 {
                font-size: 1.8rem;
            }
            
            .stats-blocks {
                gap: 1rem;
            }
            
            .stat-number {
                font-size: 1.2rem;
            }
            
            .streets-container {
                max-height: 400px;
                padding: 0.875rem;
            }
            
            .streets-list li {
                font-size: 0.875rem;
                padding: 0.5rem 0.875rem;
            }
            
            .coverage-search {
                padding: 0.75rem 1rem;
                font-size: 0.875rem;
            }

            /* Cases Section */
            .case-card {
                padding: 1.25rem;
            }

            /* Expert Opinion Block */
            .expert-opinion-block {
                margin-top: 1.5rem;
                padding: 1.25rem !important;
            }

            .expert-opinion-block h3 {
                font-size: 1.3rem;
                margin-bottom: 1rem;
            }

            .expert-photo img {
                width: 120px;
                height: 120px;
            }

            .expert-name {
                font-size: 1.1rem;
            }

            .expert-quote {
                padding-left: 0.875rem;
                margin-top: 1rem;
            }

            .expert-quote p {
                font-size: 0.875rem;
                margin-bottom: 0.875rem;
            }

            /* Final CTA */
            .final-cta-content {
                padding: 1.5rem 1rem;
            }

            .final-cta h2 {
                font-size: 1.5rem;
            }

            .final-cta .phone-number {
                font-size: 1.2rem;
            }

            /* Coverage Blocks */
            .coverage-block-title {
                font-size: 1.1rem;
            }

            .streets-container,
            #complexes-container {
                max-height: 250px;
                padding: 0.75rem;
            }

            /* Tables */
            .metrics-table-wrapper,
            .connection-terms-table-wrapper {
                margin: 0;
                padding: 0;
                width: 100%;
            }

            .metrics-table,
            .connection-terms-table {
                font-size: 0.75rem;
                min-width: 500px;
            }

            .metrics-table th,
            .metrics-table td,
            .connection-terms-table th,
            .connection-terms-table td {
                padding: 0.5rem 0.35rem;
            }

            .metrics-table th:first-child,
            .metrics-table td:first-child,
            .connection-terms-table th:first-child,
            .connection-terms-table td:first-child {
                padding-left: 1rem;
                padding-right: 0.75rem;
                min-width: 120px;
            }

            /* Make table containers more visible on mobile */
            .table-column {
                width: 100% !important;
                flex: 1 1 100% !important;
            }

            .table-column > div[style*="background: white"] {
                padding: 1rem !important;
            }

            /* Constructor */
            .constructor-container {
                padding: 1rem;
            }

            .constructor-tab {
                font-size: 0.8rem;
                padding: 0.4rem 0.8rem;
            }

            /* Stats */
            .stats-section {
                padding: 2rem 0;
            }

            .stats-image img {
                max-width: 100%;
                height: auto;
            }

            /* City Section */
            .city-section {
                padding: 1.5rem 0;
            }

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

            .address-input {
                font-size: 0.9rem;
                padding: 0.875rem 1.25rem;
            }

            /* Promo Blocks */
            .promo-block {
                padding: 1.25rem;
            }

            .promo-block h3 {
                font-size: 1.1rem;
            }
        }
        
        @media (max-width: 576px) {
            /* Ensure consistent container padding on small screens */
            .container {
                padding-left: 1rem;
                padding-right: 1rem;
            }

            /* Expert Opinion Block */
            .expert-opinion-block {
                margin-top: 1.5rem;
                padding: 1.25rem !important;
            }

            .expert-opinion-block h3 {
                font-size: 1.3rem;
                margin-bottom: 1rem;
            }

            .expert-photo img {
                width: 120px;
                height: 120px;
            }

            .expert-name {
                font-size: 1.1rem;
            }

            .expert-quote {
                padding-left: 0.875rem;
                margin-top: 1rem;
            }

            .expert-quote p {
                font-size: 0.875rem;
                margin-bottom: 0.875rem;
            }
        }

        @media (max-width: 400px) {
            .container {
                padding-left: 1rem;
                padding-right: 1rem;
            }
            
            .hero-title {
                font-size: 1.35rem;
            }
            
            .address-input,
            .btn-search {
                font-size: 0.9rem;
                padding: 0.75rem 1rem;
            }

            /* Footer */
            .footer {
                padding: 1.25rem 0 0.75rem;
            }

            .footer-links {
                gap: 1.25rem;
            }

            .footer-logo {
                font-size: 1rem;
                margin-bottom: 1rem;
            }

            .footer-column {
                margin-bottom: 1rem;
            }

            .footer-column h5 {
                font-size: 0.8125rem;
                margin-bottom: 0.5rem;
            }

            .footer-column ul li {
                padding: 0.15rem 0;
                font-size: 0.75rem;
            }

            .footer-button-wrapper {
                margin-top: 0.625rem;
                width: 100%;
                box-sizing: border-box;
                padding: 0;
            }

            .footer-button-wrapper .btn-connect-card {
                width: 100%;
                max-width: 100%;
                box-sizing: border-box;
                padding: 0.625rem 0.875rem;
                font-size: 0.75rem;
                white-space: normal;
                word-wrap: break-word;
                overflow-wrap: break-word;
                line-height: 1.4;
            }

            .footer-bottom {
                padding-top: 1rem;
                font-size: 0.75rem;
            }

            .footer-company-details {
                font-size: 0.6875rem;
                line-height: 1.5;
            }

            /* Expert Opinion Block */
            .expert-opinion-block {
                margin-top: 1.25rem;
                padding: 1rem !important;
            }

            .expert-opinion-block h3 {
                font-size: 1.1rem;
                margin-bottom: 0.875rem;
            }

            .expert-opinion-content {
                gap: 1rem;
            }

            .expert-photo img {
                width: 100px;
                height: 100px;
            }

            .expert-name {
                font-size: 1rem;
            }

            .expert-position,
            .expert-experience {
                font-size: 0.8125rem;
            }

            .expert-quote {
                padding-left: 0.75rem;
                margin-top: 0.875rem;
            }

            .expert-quote p {
                font-size: 0.8125rem;
                margin-bottom: 0.75rem;
                line-height: 1.6;
            }

            .section-title {
                font-size: 1.3rem;
            }

            .coverage-block-title {
                font-size: 1rem;
            }

            .case-card {
                padding: 1rem;
            }

            .step-card {
                padding: 1.25rem;
            }

            .final-cta-content {
                padding: 1.25rem 0.875rem;
            }

            .final-cta h2 {
                font-size: 1.3rem;
            }

            .promo-block {
                padding: 1rem;
            }

            .tariff-card {
                padding: 1rem;
            }

            .constructor-container {
                padding: 0.875rem;
            }

            .constructor-tab {
                font-size: 0.75rem;
                padding: 0.4rem 0.7rem;
            }

            .constructor-tag {
                font-size: 0.8rem;
                padding: 0.4rem 0.8rem;
            }

            .metrics-table,
            .connection-terms-table {
                font-size: 0.75rem;
            }

            .metrics-table th,
            .metrics-table td,
            .connection-terms-table th,
            .connection-terms-table td {
                padding: 0.4rem 0.3rem;
            }

            /* Outages Visualization */
            .outages-visualization {
                margin-top: 1.5rem;
            }

            .outages-visualization h3 {
                font-size: 0.95rem;
            }

            .outages-visualization > div[style*="background: white"] {
                padding: 1rem !important;
            }

            .chart-bar-wrapper {
                gap: 0.875rem;
            }

            .chart-bar-container {
                height: 30px;
            }

            .chart-bar {
                min-width: 45px;
                padding-right: 0.35rem;
            }

            .chart-bar-value {
                font-size: 0.65rem;
            }

            .chart-bar-label {
                font-size: 0.75rem;
            }
        }

        /* Modal Styles */
        .modal-backdrop {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.5);
            z-index: 9998;
            backdrop-filter: blur(4px);
        }

        .callback-modal {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999;
            padding: 1rem 2rem;
            box-sizing: border-box;
        }

        .modal-content {
            background: white;
            border-radius: 24px;
            padding: 2.5rem;
            max-width: 500px;
            width: 100%;
            position: relative;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
            animation: modalFadeIn 0.3s ease-out;
        }

        @keyframes modalFadeIn {
            from {
                opacity: 0;
                transform: scale(0.9) translateY(-20px);
            }
            to {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }

        .modal-close {
            position: absolute;
            top: 1rem;
            right: 1rem;
            background: none;
            border: none;
            font-size: 2rem;
            color: #999;
            cursor: pointer;
            line-height: 1;
            padding: 0;
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: color 0.3s;
        }

        .modal-close:hover {
            color: #333;
        }

        .modal-title {
            font-size: 1.75rem;
            font-weight: bold;
            margin-bottom: 0.75rem;
            color: #333;
        }

        .modal-subtitle {
            color: #000000;
            font-size: 0.9375rem;
            line-height: 1.6;
            margin-bottom: 1.5rem;
        }

        .callback-modal .modal-content {
            text-align: center;
            padding-left: 3.25rem;
            padding-right: 3.25rem;
        }

        @media (min-width: 768px) {
            #callbackModal .modal-content {
                max-width: 42rem;
                padding: 2.95rem 2.85rem 2.55rem;
            }

            #callbackModal .modal-title {
                font-size: 1.95rem;
                margin-bottom: 0.85rem;
            }

            #callbackModal .modal-subtitle {
                margin-bottom: 1.65rem;
                font-size: 1.08rem;
            }

            #callbackModal .modal-form {
                gap: 1.25rem;
                align-items: stretch;
            }
        }

        #callbackModal .provider-address-check-consent,
        #callbackModal .consent-label--brand {
            width: 100%;
            text-align: left;
        }

        #callbackModal .consent-label--brand .consent-label__input:checked + .consent-label__box {
            background: var(--primary, var(--lending-red, #e30613));
            border-color: var(--primary, var(--lending-red, #e30613));
        }

        .callback-modal .modal-title {
            margin-bottom: 1.125rem;
            text-align: center;
        }

        .callback-modal .modal-subtitle {
            color: #000000;
            font-size: 1.1rem;
            line-height: 1.55;
            margin-bottom: 2.25rem;
        }

        .callback-modal .modal-form {
            align-items: center;
            gap: 1.5rem;
        }

        .callback-modal .modal-phone-input {
            width: 100%;
        }

        .callback-modal-tariff-specs {
            margin-bottom: 1.25rem;
            display: flex;
            flex-direction: column;
            gap: 0.55rem;
            text-align: left;
        }

        .callback-modal-tariff-specs__row {
            display: grid;
            grid-template-columns: minmax(6.75rem, 40%) 1fr;
            gap: 0.35rem 0.75rem;
            font-size: 0.9rem;
            line-height: 1.45;
        }

        .callback-modal-tariff-specs__label {
            color: #777;
            font-weight: 500;
        }

        .callback-modal-tariff-specs__value {
            color: #222;
            font-weight: 600;
        }

        .callback-modal-consent-text {
            margin: 0;
            max-width: 26rem;
            color: #000000;
            font-size: 1.1rem;
            font-weight: 400;
            line-height: 1.55;
            text-align: center;
        }

        .callback-modal-consent-text[hidden] {
            display: none !important;
        }

        .callback-modal-consent-link {
            color: var(--lending-red, #f3473c);
            text-decoration: underline;
            text-underline-offset: 0.12em;
            font-weight: 700;
        }

        .callback-modal-consent-link:hover {
            color: var(--lending-red-dark, #d63026);
        }

        .callback-modal--consent .modal-phone-input {
            background: #fff;
            color: #111827;
            cursor: default;
        }

        .callback-modal--consent .modal-form .modal-submit-btn {
            min-width: 6.5rem;
            justify-content: center;
            text-align: center;
        }

        .callback-modal-success {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            padding: 0.75rem 0 0;
        }

        .callback-modal-success__icon {
            width: 4.5rem;
            height: 4.5rem;
            border-radius: 50%;
            background: rgba(34, 197, 94, 0.12);
            color: #16a34a;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem;
            margin-bottom: 1.1rem;
            animation: callbackSuccessPop 0.5s cubic-bezier(0.22, 1, 0.36, 1);
        }

        .callback-modal-success__check {
            width: 2.85rem;
            height: 2.85rem;
            overflow: visible;
        }

        .callback-modal-success__ring {
            stroke: #16a34a;
            stroke-width: 2.5;
            fill: none;
            stroke-dasharray: 151;
            stroke-dashoffset: 151;
            animation: callbackSuccessRing 0.55s ease-out forwards;
        }

        .callback-modal-success__tick {
            stroke: #16a34a;
            stroke-width: 3.2;
            stroke-linecap: round;
            stroke-linejoin: round;
            fill: none;
            stroke-dasharray: 40;
            stroke-dashoffset: 40;
            animation: callbackSuccessTick 0.35s ease-out 0.35s forwards;
        }

        @keyframes callbackSuccessPop {
            from {
                opacity: 0;
                transform: scale(0.65);
            }
            70% {
                opacity: 1;
                transform: scale(1.08);
            }
            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        @keyframes callbackSuccessRing {
            to {
                stroke-dashoffset: 0;
            }
        }

        @keyframes callbackSuccessTick {
            to {
                stroke-dashoffset: 0;
            }
        }

        .callback-modal-success__title {
            margin: 0 0 0.45rem;
            font-size: 1.35rem;
            font-weight: 800;
            line-height: 1.25;
            color: #111827;
            animation: callbackSuccessFade 0.4s ease-out 0.2s both;
        }

        .callback-modal-success__text {
            margin: 0 0 1.5rem;
            max-width: 20rem;
            font-size: 1.05rem;
            line-height: 1.55;
            color: #4b5563;
            animation: callbackSuccessFade 0.4s ease-out 0.3s both;
        }

        @keyframes callbackSuccessFade {
            from {
                opacity: 0;
                transform: translateY(6px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .callback-modal-success__btn {
            min-width: 10rem;
        }

        .callback-modal--success .modal-content {
            padding-top: 2.75rem;
        }

        .callback-modal--success .modal-title {
            margin-bottom: 0.75rem;
        }

        .city-top-tariff-modal__lead-success {
            text-align: center;
            padding: 0.5rem 0 0;
        }

        .city-top-tariff-modal__lead-success p {
            font-size: 0.95rem;
            line-height: 1.5;
            color: #333;
            margin-bottom: 1rem;
        }

        .provider-address-check-success {
            margin-top: 0.75rem;
            padding: 0.75rem 0.5rem;
            text-align: center;
            font-size: 0.95rem;
            font-weight: 600;
            color: var(--lending-red-dark);
            background: #e8f5e9;
            border-radius: 12px;
        }

        .callback-modal-form-lead {
            font-size: 0.9375rem;
            line-height: 1.5;
            color: #555;
            margin: 0 0 0.25rem;
        }

        .modal-form {
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }

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

        .modal-phone-input {
            width: 100%;
            min-height: 3rem;
            padding: 0.85rem 1.35rem;
            border: 1px solid #e5e7eb;
            border-radius: 999px;
            background: #fff;
            color: #111827;
            font-size: 1rem;
            line-height: 1.35;
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
            box-sizing: border-box;
        }

        .ru-phone-field {
            display: flex;
            align-items: stretch;
            width: 100%;
            min-height: 3rem;
            border: 1px solid #e5e7eb;
            border-radius: 999px;
            background: #fff;
            overflow: hidden;
            box-sizing: border-box;
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
        }

        .ru-phone-field:focus-within {
            border-color: #d1d5db;
            box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.04);
        }

        .ru-phone-field__prefix {
            flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            padding: 0 0.15rem 0 1.15rem;
            color: #111827;
            font-size: 1rem;
            font-weight: 700;
            letter-spacing: 0.01em;
            user-select: none;
            pointer-events: none;
        }

        .ru-phone-field__input.modal-phone-input {
            border: 0;
            border-radius: 0;
            box-shadow: none;
            min-height: 3rem;
            padding: 0.85rem 1.2rem 0.85rem 0.45rem;
            background: transparent;
        }

        .ru-phone-field__input.modal-phone-input:focus {
            box-shadow: none;
            border-color: transparent;
        }

        .modal-phone-input::placeholder {
            color: #9ca3af;
        }

        .modal-phone-input:focus {
            outline: none;
            border-color: #d1d5db;
            box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.04);
        }

        .modal-submit-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            min-height: 3rem;
            padding: 0.85rem 1.5rem;
            border: none;
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            background: var(--lending-red, #f3473c);
            color: #fff;
            font-size: 1.05rem;
            font-weight: 700;
            line-height: 1.2;
            cursor: pointer;
            box-shadow: 0 4px 14px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
            transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
        }

        .callback-modal .modal-form .modal-submit-btn {
            width: 100%;
            align-self: stretch;
            padding: 0.85rem 1.5rem;
            border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
            font-size: 1.05rem;
        }

        .callback-modal .modal-form .modal-submit-btn.is-inactive,
        body.site-lending .callback-modal .modal-form .modal-submit-btn.is-inactive {
            background: rgba(var(--lending-red-rgb, 243, 71, 60), 0.55);
            background: color-mix(in srgb, var(--lending-red, #f3473c) 62%, white);
            color: #fff;
            box-shadow: 0 2px 8px rgba(var(--lending-red-rgb, 243, 71, 60), 0.18);
            cursor: pointer;
            transform: none;
            opacity: 1;
        }

        .callback-modal .modal-form .modal-submit-btn.is-inactive:hover,
        body.site-lending .callback-modal .modal-form .modal-submit-btn.is-inactive:hover {
            background: rgba(var(--lending-red-rgb, 243, 71, 60), 0.62);
            background: color-mix(in srgb, var(--lending-red, #f3473c) 70%, white);
            color: #fff;
            transform: none;
        }

        .callback-modal-phone-field {
            position: relative;
            width: 100%;
        }

        .callback-modal-phone-hint {
            position: absolute;
            left: 50%;
            bottom: calc(100% + 0.4rem);
            z-index: 3;
            margin: 0;
            padding: 0.4rem 0.75rem;
            border-radius: 10px;
            background: #fff;
            color: var(--lending-red, #f3473c);
            font-size: 0.88rem;
            font-weight: 700;
            line-height: 1.3;
            white-space: nowrap;
            text-align: center;
            pointer-events: none;
            box-shadow: 0 6px 18px rgba(17, 24, 39, 0.14);
            transform: translateX(-50%) translateY(0.2rem);
            animation: callbackPhoneHintIn 0.18s ease-out forwards;
        }

        .callback-modal-phone-hint::after {
            content: '';
            position: absolute;
            left: 50%;
            top: 100%;
            width: 0;
            height: 0;
            border: 6px solid transparent;
            border-top-color: #fff;
            transform: translateX(-50%);
            filter: drop-shadow(0 2px 1px rgba(17, 24, 39, 0.08));
        }

        .callback-modal-phone-hint[hidden] {
            display: none !important;
        }

        @keyframes callbackPhoneHintIn {
            from {
                opacity: 0;
                transform: translateX(-50%) translateY(0.35rem);
            }
            to {
                opacity: 1;
                transform: translateX(-50%) translateY(0);
            }
        }

        .callback-modal .callback-modal-success__btn {
            width: auto;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-inline: auto;
            border-radius: 100px;
            padding: 0.75rem 1.25rem;
            text-align: center;
        }

        .modal-submit-btn:hover {
            background: var(--lending-red-dark, #d63026);
            box-shadow: 0 6px 18px rgba(var(--lending-red-rgb, 243, 71, 60), 0.34);
        }

        .modal-submit-btn:active {
            transform: scale(0.98);
        }

        .modal-submit-btn:disabled {
            opacity: 0.7;
            cursor: not-allowed;
            transform: none;
        }

        .modal-consent {
            margin-top: 0.5rem;
        }

        .consent-label {
            display: flex;
            align-items: flex-start;
            gap: 0.75rem;
            font-size: 0.8125rem;
            color: #666;
            line-height: 1.5;
            cursor: pointer;
        }

        .consent-label input[type="checkbox"] {
            margin-top: 0.25rem;
            flex-shrink: 0;
            width: 18px;
            height: 18px;
            cursor: pointer;
        }

        .consent-label span {
            flex: 1;
        }

        .consent-label span a {
            color: var(--lending-red);
            text-decoration: underline;
            transition: color 0.3s;
        }

        .consent-label span a:hover {
            color: #d63a2f;
        }

        @media (max-width: 576px) {
            .modal-content {
                padding: 1.5rem;
                border-radius: 16px;
            }

            .callback-modal .modal-content {
                padding-left: 3rem;
                padding-right: 3rem;
            }

            .modal-title {
                font-size: 1.5rem;
            }

            .modal-subtitle {
                font-size: 0.875rem;
            }

            .callback-modal .modal-subtitle,
            .callback-modal-consent-text {
                font-size: 1.05rem;
            }

            .modal-phone-input,
            .modal-submit-btn {
                font-size: 0.95rem;
            }

            .callback-modal .modal-form .modal-submit-btn {
                font-size: 1rem;
            }
        }

        /* Floating Address Check Button */
        .floating-address-check {
            position: fixed;
            bottom: 2rem;
            left: 50%;
            transform: translateX(-50%);
            z-index: 1000;
            animation: slideUpFadeIn 0.4s ease-out;
        }

        @keyframes slideUpFadeIn {
            from {
                opacity: 0;
                transform: translateX(-50%) translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateX(-50%) translateY(0);
            }
        }

        .floating-address-btn {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            padding: 0.875rem 1.5rem;
            background: rgba(255, 255, 255, 0.85);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            border: 1px solid rgba(255, 255, 255, 0.3);
            border-radius: 50px;
            color: var(--lending-red);
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(var(--lending-red-rgb), 0.15);
            white-space: nowrap;
        }

        .floating-address-btn:hover {
            background: rgba(255, 255, 255, 0.95);
            transform: translateY(-2px);
            box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(var(--lending-red-rgb), 0.2);
        }

        .floating-address-btn:active {
            transform: translateY(0);
        }

        .floating-address-btn i {
            font-size: 1.1rem;
        }

        a.floating-address-btn--downdetector-link,
        button.floating-address-btn--downdetector-link {
            text-decoration: none;
            color: var(--lending-red);
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(var(--lending-red-rgb), 0.15);
        }

        a.floating-address-btn--downdetector-link:hover,
        button.floating-address-btn--downdetector-link:hover {
            text-decoration: none;
            color: var(--lending-red);
            box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(var(--lending-red-rgb), 0.2);
        }

        a.floating-address-btn--providers-by-address,
        button.floating-address-btn--providers-by-address {
            gap: 0.55rem;
            border: 0;
            background: #fff;
            color: var(--lending-red);
            font-weight: 600;
            text-decoration: none;
            box-shadow:
                0 12px 60px rgba(0, 0, 0, 0.28),
                0 4px 24px rgba(0, 0, 0, 0.18);
        }

        a.floating-address-btn--providers-by-address:hover,
        button.floating-address-btn--providers-by-address:hover,
        a.floating-address-btn--providers-by-address:focus-visible,
        button.floating-address-btn--providers-by-address:focus-visible {
            background: #fff;
            color: var(--lending-red);
            text-decoration: none;
            outline: none;
            box-shadow:
                0 16px 68px rgba(0, 0, 0, 0.32),
                0 6px 28px rgba(0, 0, 0, 0.2);
        }

        .floating-address-btn--providers-by-address i {
            display: inline-flex;
            color: var(--lending-red);
            font-size: 1.05rem;
        }

        .floating-address-btn--downdetector-link i {
            color: var(--lending-red);
        }

        .floating-address-btn--provider-review {
            white-space: normal;
        }

        .floating-address-btn--provider-review span {
            text-align: left;
            line-height: 1.25;
            max-width: 18rem;
        }

        @media (max-width: 768px) {
            .floating-address-check {
                bottom: 1.5rem;
                left: 1rem;
                right: 1rem;
                transform: none;
            }

            .floating-address-btn {
                width: 100%;
                justify-content: center;
                padding: 0.75rem 1.25rem;
                font-size: 0.9375rem;
            }
        }

        @media (max-width: 576px) {
            .floating-address-check {
                bottom: 1rem;
            }

            .floating-address-btn {
                padding: 0.625rem 1rem;
                font-size: 0.875rem;
            }

            .floating-address-btn span {
                font-size: 0.875rem;
            }
        }


/* Home: одна колонка тарифов, текстовые «логотипы» провайдеров */
.page-home .tariffs-layout {
    grid-template-columns: 1fr;
}

.provider-logo-text {
    height: 32px;
    display: inline-flex;
    align-items: center;
    padding: 0 0.65rem;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    font-size: 0.7rem;
    font-weight: 600;
    color: #333;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.2s, color 0.2s;
}

.provider-logo-text:hover {
    border-color: var(--lending-red);
    color: var(--lending-red);
    text-decoration: none;
    opacity: 1;
}

.tariff-provider-logo.tariff-provider-logo--text {
    font-weight: 700;
    font-size: 0.8rem;
    color: #212121;
    text-decoration: none;
    line-height: 28px;
}
.tariff-provider-logo.tariff-provider-logo--text:hover {
    color: var(--lending-red);
}


.address-input-wrap {
    position: relative;
    flex: 0 1 420px;
    max-width: 100%;
    min-height: 0;
}

.hero-section .address-search,
.provider-city-address-check-form {
    align-items: flex-start;
}

.hero-section .address-input-wrap--combo,
.provider-city-address-check-form .address-input-wrap--combo {
    --combo-inset: 0.32rem;
    flex: 0 0 40%;
    width: 40%;
    max-width: 40%;
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
    padding: var(--combo-inset);
    padding-left: 0;
    background: #fff;
    border: 2px solid #e0e0e0;
    border-radius: 999px;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.hero-section .address-input-wrap--combo:focus-within,
.provider-city-address-check-form .address-input-wrap--combo:focus-within {
    border-color: var(--lending-red);
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb), 0.14);
}

.hero-section .address-input-wrap--combo .address-input,
.provider-city-address-check-form .address-input-wrap--combo .address-input {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    border: none;
    background: transparent;
    padding: 0.72rem 0.5rem 0.72rem 1.25rem;
    border-radius: 0;
    box-shadow: none;
    align-self: center;
}

.hero-section .address-input-wrap--combo .address-input:focus,
.hero-section .address-input-wrap--combo .address-input:focus-visible,
.provider-city-address-check-form .address-input-wrap--combo .address-input:focus,
.provider-city-address-check-form .address-input-wrap--combo .address-input:focus-visible {
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}

.hero-section .address-input-wrap--combo .btn-search,
.provider-city-address-check-form .address-input-wrap--combo .btn-search {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0 1.35rem;
    border-radius: 999px;
    white-space: nowrap;
    box-shadow: none;
}

.hero-section .address-input-wrap--combo .btn-search:hover,
.provider-city-address-check-form .address-input-wrap--combo .btn-search:hover {
    box-shadow: none;
}

/* Hero: при column у .address-search flex-basis 420px у поля давал высоту ~420px и пустоту до кнопки */
@media (max-width: 1200px) {
    .hero-section .address-search .address-input-wrap:not(.address-input-wrap--combo) {
        flex: 0 0 auto !important;
        width: 100%;
        max-width: 100%;
    }

    .hero-section .address-search .address-input-wrap:not(.address-input-wrap--combo) + .btn-search,
    .hero-section .address-search > .btn-search {
        max-width: none !important;
        width: 100%;
        align-self: stretch;
    }

    .hero-section .address-input-wrap--combo .btn-search,
    .provider-city-address-check-form .address-input-wrap--combo .btn-search {
        width: auto;
        align-self: stretch;
    }
}

@media (max-width: 992px) {
    .hero-section .address-input-wrap--combo,
    .provider-city-address-check-form .address-input-wrap--combo {
        flex: 0 0 60%;
        width: 60%;
        max-width: 60%;
    }
}

@media (max-width: 640px) {
    .hero-section .address-input-wrap--combo,
    .provider-city-address-check-form .address-input-wrap--combo {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        flex-wrap: wrap;
        border-radius: 20px;
        padding: var(--combo-inset, 0.32rem);
        padding-left: var(--combo-inset, 0.32rem);
        gap: 0.45rem;
    }

    .hero-section .address-input-wrap--combo .address-input,
    .provider-city-address-check-form .address-input-wrap--combo .address-input {
        flex: 1 1 100%;
        padding: 0.65rem 0.85rem;
    }

    .hero-section .address-input-wrap--combo .btn-search,
    .provider-city-address-check-form .address-input-wrap--combo .btn-search {
        flex: 1 1 100%;
        width: 100%;
        align-self: stretch;
        padding: 0.72rem 1.25rem;
        justify-content: center;
    }
}

/* Hero: страница провайдера в городе */
.hero-section--provider-city .hero-badge--provider {
    background: rgba(var(--lending-red-rgb), 0.14);
    color: var(--lending-red-dark);
}

.hero-section--provider-city .hero-partner-logo {
    display: block;
    max-height: 56px;
    max-width: min(100%, 320px);
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: left center;
    margin: 0 0 1rem;
}

.hero-section--provider-city-profile {
    background:
        radial-gradient(ellipse 90% 70% at 50% -10%, rgba(var(--lending-red-rgb), 0.1), transparent 55%),
        linear-gradient(180deg, #fff 0%, #f6f7f9 100%);
}

.hero-section--provider-city-profile > .container > .hero-title {
    max-width: min(40rem, 100%);
    margin: 0 auto 1.35rem;
    text-align: center;
    font-size: clamp(1.65rem, 3.2vw, 2.35rem);
    line-height: 1.22;
}

.hero-section--provider-city-profile .hero-partner-logo {
    margin-left: auto;
    margin-right: auto;
    object-position: center center;
}

.hero-section--provider-city-profile .hero-badge--provider {
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}

.hero-section--provider-city-profile .city-internet-profile {
    margin-top: 0.15rem;
    margin-bottom: 1.35rem;
}

.hero-section--provider-city-profile .city-landing-hero {
    margin-top: 2rem;
}

.hero-section--provider-city-profile .hero-top-tariffs {
    margin-top: 0.35rem;
}

.city-internet-profile--provider {
    width: min(100%, 680px);
}

@media (min-width: 576px) {
    .city-internet-profile--provider .city-internet-profile-grid > :nth-child(5) {
        grid-column: 1 / -1;
        width: calc((100% - var(--city-profile-gap)) / 2);
        justify-self: center;
    }
}

.city-internet-profile-card-value--stacked {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.12rem;
    text-align: center;
}

.city-internet-profile-card-value-num {
    display: block;
    line-height: 1;
}

.city-internet-profile-card-value-unit {
    display: block;
    color: #6b7280;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.1;
}

/* Hero + карточка провайдера при импортированных тарифах */
.hero-section--provider-tariffs {
    padding-bottom: 2.25rem;
}

.hero-section--provider-tariffs .hero-title {
    font-size: var(--page-hero-title-size);
    margin-bottom: 0.55rem;
}

.hero-provider-overview-wrap {
    margin-top: 1.4rem;
}

.hero-section--provider-tariffs .provider-city-overview--hero {
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
}

.hero-section--provider-tariffs .callout-panels--provider-city {
    margin-top: 1rem;
}

.hero-section--provider-tariffs + .providers-section {
    padding-top: 1.25rem;
}

/* Страница конкретного адреса: компактный hero без поиска и коллаутов */
.hero-section--address-page {
    padding: 2rem 0 1.5rem;
}

.hero-section--address-page .hero-subtitle {
    margin-bottom: 0;
}

.callout-panels--provider-city {
    margin-top: 1.25rem;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: stretch;
}

.callout-card--provider-phones {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 1.15rem 1.35rem;
}

.callout-card--provider-callback {
    align-items: center;
}

.provider-hero-phone-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.5rem;
    width: 100%;
}

.provider-hero-phone-col {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.provider-hero-phone-label {
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
}

.provider-hero-phone-col .phone-number {
    margin-bottom: 0.15rem;
    font-size: 1.45rem;
}

.provider-hero-phone-col .phone-note {
    font-size: 0.86rem;
    line-height: 1.35;
}

.provider-hero-phone-muted {
    color: #64748b;
}

.provider-hero-phone-site {
    font-size: 1.05rem !important;
    word-break: break-word;
}

.provider-hero-phone-single {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
}

.provider-hero-phone-single .phone-number {
    margin-bottom: 0;
}

@media (max-width: 991px) {
    .callout-panels--provider-city {
        grid-template-columns: 1fr;
    }

    .provider-hero-phone-grid {
        grid-template-columns: 1fr;
    }
}

/* Логотипы в hero: на десктопе — ряд; на телефоне — бегущая строка справа налево */
.hero-section .providers-logos-inline.providers-logos-marquee {
    margin-left: 0 !important;
    border: none;
    padding: 0;
}

.providers-logos-marquee-viewport {
    overflow: hidden;
    width: 100%;
    margin: 0;
    padding: 0.35rem 0;
}

.providers-logos-marquee-track {
    display: flex;
    width: max-content;
    will-change: transform;
}

.providers-logos-marquee-set {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
    padding-right: 1.5rem;
}

.providers-logos-marquee-set .provider-logo {
    height: 32px;
    flex-shrink: 0;
}

@media (min-width: 769px) {
    .providers-logos-marquee-viewport {
        overflow: visible;
    }

    .providers-logos-marquee-track {
        width: auto;
        flex-wrap: wrap;
        animation: none !important;
        transform: none !important;
    }

    .providers-logos-marquee-set:last-child {
        display: none;
    }

    .providers-logos-marquee-set {
        padding-right: 0;
        gap: 1rem;
    }
}

@keyframes hero-provider-logos-marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

@media (max-width: 768px) {
    .providers-logos-marquee-track {
        animation: hero-provider-logos-marquee 28s linear infinite;
    }
}

@media (prefers-reduced-motion: reduce) {
    .providers-logos-marquee-track {
        animation: none !important;
        transform: none !important;
    }

    @media (max-width: 768px) {
        .providers-logos-marquee-viewport {
            overflow: visible;
        }

        .providers-logos-marquee-set:last-child {
            display: none;
        }

        .providers-logos-marquee-track {
            flex-wrap: wrap;
            width: 100%;
            max-width: 100%;
        }
    }
}

.address-input-wrap .address-input {
    width: 100%;
    box-sizing: border-box;
    flex: none;
}

.hero-section .address-input-wrap--combo .address-input {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
}

.dadata-suggestions {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    z-index: 100;
    list-style: none;
    margin: 0;
    padding: 0.4rem 0 0;
    background: #fff;
    border: 2px solid #e0e0e0;
    border-radius: 20px;
    box-shadow: 0 10px 32px rgba(0, 0, 0, 0.12);
    max-height: 300px;
    overflow-y: auto;
}

.dadata-suggestions li {
    margin: 0;
}

.dadata-suggestions li button {
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    padding: 0.55rem 1.25rem;
    cursor: pointer;
    font-size: 0.95rem;
    color: #333;
    line-height: 1.35;
}

.dadata-suggestions li button:hover,
.dadata-suggestions li.dadata-suggestion-active button {
    background: rgba(var(--lending-red-rgb), 0.1);
    color: var(--lending-red-dark);
}

.dadata-suggestion-continue {
    position: sticky;
    bottom: 0;
    z-index: 1;
    margin: 0;
    padding: 0.7rem 1.1rem 0.75rem;
    border-top: 1px solid #e8ecf1;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, #fff 35%);
    color: #374151;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
    pointer-events: none;
}

.address-search {
    align-items: flex-start;
}


.navbar-location-btn {
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.navbar-location-btn:hover {
    opacity: 0.85;
}

.site-breadcrumbs-wrap {
    padding: 0.85rem 0 0.35rem;
    background: transparent;
    border: 0;
}

.city-page-top {
    position: relative;
    z-index: 1;
    background: transparent;
    padding: 0.75rem 0 0;
}

.city-page-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

/* Простые текстовые крошки: Бренд / Город / Раздел */
.city-breadcrumbs-bar {
    position: relative;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    max-width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-size: 0.9rem;
    line-height: 1.35;
    color: #6b7280;
}

.city-breadcrumbs-bar-indicator {
    display: none !important;
}

.city-breadcrumbs-bar-item {
    position: relative;
    z-index: 1;
    display: inline;
    padding: 0;
    border-radius: 0;
    color: #6b7280 !important;
    font-weight: 500;
    line-height: inherit;
    text-decoration: none !important;
    background: transparent !important;
    transition: color 0.15s ease;
}

.city-breadcrumbs-bar-item.is-active,
.city-breadcrumbs-bar-item.is-highlighted {
    color: #6b7280 !important;
    background: transparent !important;
}

.city-breadcrumbs-bar:hover .city-breadcrumbs-bar-item.is-active:not(.is-highlighted),
.city-breadcrumbs-bar:focus-within .city-breadcrumbs-bar-item.is-active:not(.is-highlighted) {
    color: #6b7280 !important;
}

.city-breadcrumbs-bar a.city-breadcrumbs-bar-item:hover,
.city-breadcrumbs-bar a.city-breadcrumbs-bar-item:focus-visible {
    color: var(--lending-red, #e30613) !important;
}

.city-breadcrumbs-bar-current {
    font-weight: 600;
    color: #4b5563 !important;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: min(36rem, 100%);
}

.city-breadcrumbs-bar-sep {
    position: relative;
    z-index: 1;
    display: inline;
    width: auto;
    padding: 0;
    overflow: visible;
    color: transparent;
    font-size: 0;
    line-height: 1;
    user-select: none;
}

.city-breadcrumbs-bar-sep::before {
    content: "/";
    color: #9ca3af;
    font-size: 0.9rem;
    font-weight: 500;
    padding: 0 0.4rem;
}

.city-page-top + .hero-section,
.city-page-top + .hero-section.hero-section--city-layout,
.city-page-top + .hero-section.hero-section--with-top-tariffs {
    padding-top: 1.65rem;
}

@media (max-width: 575.98px) {
    .city-page-top {
        padding: 0.55rem 0 0;
    }

    .city-breadcrumbs-bar {
        font-size: 0.84rem;
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .city-breadcrumbs-bar::-webkit-scrollbar {
        display: none;
    }

    .city-breadcrumbs-bar-item,
    .city-breadcrumbs-bar-sep {
        flex: 0 0 auto;
    }

    .city-breadcrumbs-bar-sep::before {
        font-size: 0.84rem;
        padding: 0 0.3rem;
    }

    .city-breadcrumbs-bar-current {
        white-space: normal;
        max-width: none;
    }

    .city-page-top + .hero-section,
    .city-page-top + .hero-section.hero-section--city-layout {
        padding-top: 1.25rem;
    }
}

.site-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    min-width: 0;
    font-size: 0.9rem;
    color: #6b7280;
    font-weight: 500;
}

.site-breadcrumbs a {
    display: inline;
    min-width: 0;
    color: #6b7280;
    text-decoration: none;
    transition: color 0.15s ease;
}

.site-breadcrumbs a:hover {
    color: var(--lending-red);
    text-decoration: none;
}

.site-breadcrumbs a:first-child {
    color: #6b7280;
}

.site-breadcrumbs span[aria-current="page"],
.site-breadcrumbs a:last-of-type:not(:first-child) {
    max-width: min(34rem, 100%);
}

.site-breadcrumbs span[aria-current="page"] {
    min-width: 0;
    color: #4b5563;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-breadcrumbs .sep {
    color: transparent;
    font-size: 0;
    line-height: 1;
    user-select: none;
}

.site-breadcrumbs .sep::before {
    content: "/";
    color: #9ca3af;
    font-size: 0.9rem;
    font-weight: 500;
    padding: 0 0.4rem;
}

.city-modal-field {
    position: relative;
    width: 100%;
}

.city-modal-field-spinner {
    position: absolute;
    right: 0.9rem;
    top: 50%;
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 0.16rem;
    width: auto;
    height: 0.7rem;
    margin-top: -0.35rem;
    pointer-events: none;
    z-index: 2;
}

.city-modal-field-spinner span {
    display: block;
    width: 0.28rem;
    height: 0.28rem;
    flex: 0 0 0.28rem;
    border-radius: 50%;
    background: var(--lending-red, #f3473c);
    transform-origin: center;
    animation: city-modal-field-dots 0.9s ease-in-out infinite;
}

.city-modal-field-spinner span:nth-child(2) {
    animation-delay: 0.15s;
}

.city-modal-field-spinner span:nth-child(3) {
    animation-delay: 0.3s;
}

.city-modal-field.is-resolving .city-modal-field-spinner {
    display: flex;
}

.city-modal-field.is-resolving::after {
    content: "";
    position: absolute;
    left: 1px;
    right: 1px;
    bottom: 1px;
    height: 2px;
    border-radius: 0 0 12px 12px;
    pointer-events: none;
    z-index: 3;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--lending-red, #f3473c) 50%,
        transparent 100%
    );
    background-size: 42% 100%;
    background-repeat: no-repeat;
    animation: city-modal-field-sweep 1.05s ease-in-out infinite;
}

.city-modal-field.is-resolving .address-lookup-clear {
    display: none !important;
}

#cityModal #cityModalInput.city-modal-input {
    padding-right: 2.6rem;
}

@keyframes city-modal-field-dots {
    0%,
    80%,
    100% {
        transform: translateY(0.12rem) scale(0.72);
        opacity: 0.35;
    }
    40% {
        transform: translateY(-0.18rem) scale(1);
        opacity: 1;
    }
}

@keyframes city-modal-field-sweep {
    0% {
        background-position: -45% 0;
    }
    100% {
        background-position: 145% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .city-modal-field-spinner span,
    .city-modal-field.is-resolving::after {
        animation: none;
    }

    .city-modal-field-spinner span {
        transform: none;
        opacity: 0.85;
        height: 0.28rem;
    }

    .city-modal-field.is-resolving::after {
        background-size: 100% 100%;
        opacity: 0.55;
    }
}

.city-picker-modal .modal-content {
    overflow: visible;
}

#cityModal .modal-content {
    box-sizing: border-box;
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
}

#cityModal .city-modal-head {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #fff;
}

#cityModal .city-modal-body {
    overflow: visible;
}

#cityModal .dadata-suggestions--modal {
    max-height: none;
    overflow: visible;
}

@media (min-width: 900px) {
    #cityModal.city-picker-modal .modal-content {
        width: 40rem;
        max-width: 40rem;
        height: 38rem;
        max-height: min(38rem, 86vh);
    }
}

.city-modal-popular {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
}

.city-modal-popular-item {
    display: block;
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 0;
    border-radius: 12px;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.dadata-suggestions--modal {
    max-height: 240px;
}


/* Popular cities block */
.popular-cities-wrap {
    background: #f5f5f5;
    padding: 2rem 0;
}

.popular-cities-wrap .section-title {
    text-align: center;
}

.popular-cities-card {
    background: #fff;
    border: 1px solid #e8edf1;
    border-radius: 20px;
    padding: 1.15rem 1rem 1rem;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.popular-cities-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.35rem;
}

.popular-cities-all {
    border: 1px solid #e6e6e6;
    background: #fff;
    padding: 0.35rem 0.9rem;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 600;
    color: #444;
}

.popular-cities-all:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.popular-cities-subtitle {
    margin: 0 0 0.85rem;
    color: #6b7280;
    font-size: 0.96rem;
    line-height: 1.45;
    font-weight: 400;
}

.popular-cities-search-wrap {
    position: relative;
    margin-bottom: 0.75rem;
}

.popular-cities-search-wrap i {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 0.95rem;
}

.popular-cities-search-input {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    min-height: 46px;
    padding: 0.55rem 0.95rem 0.55rem 2.2rem;
    font-size: 0.95rem;
    color: #374151;
    background: #fbfbfc;
}

.popular-cities-search-input:focus {
    outline: 2px solid rgba(var(--lending-red-rgb), 0.18);
    border-color: var(--lending-red);
    background: #fff;
}

.popular-cities-letters {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.popular-cities-letters button {
    border: 1px solid #e6e6e6;
    background: #f8fafc;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 500;
    font-size: 0.86rem;
    color: #444;
}

.popular-cities-letters button:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.popular-cities-letters button.active {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.popular-cities-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: #fff;
    border: 1px solid #eee;
    border-radius: 18px;
    padding: 0.85rem 1rem;
    max-height: 190px;
    overflow-y: auto;
    gap: 0.5rem 0.75rem;
    align-content: flex-start;
    margin-bottom: 0.6rem;
}

.popular-city-item {
    display: block;
    padding: 0.35rem 0.15rem;
    font-size: 1rem;
    line-height: 1.55;
    font-weight: 400;
    color: #374151 !important;
    text-decoration: none;
}

.popular-city-item:visited {
    color: #374151 !important;
}

.popular-city-item:hover {
    color: #374151 !important;
    text-decoration: none;
}

.popular-cities-seo-note {
    margin: 1.5rem 0 0;
    color: #434343;
    font-weight: 400;
    line-height: 1.55;
}

/* City street coverage block */
.city-street-coverage-wrap {
    background: #f5f5f5;
    padding: 2rem 0;
}

.city-street-coverage-wrap .section-title {
    text-align: center;
}

.city-street-coverage-card {
    background: #fff;
    border: 1px solid #e8edf1;
    border-radius: 20px;
    padding: 1.15rem 1rem 1rem;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.city-street-coverage-subtitle {
    margin: 0 0 0.85rem;
    color: #6b7280;
    font-size: 0.96rem;
    line-height: 1.45;
    font-weight: 400;
}

.city-street-search-wrap {
    position: relative;
    margin-bottom: 0.75rem;
}

.city-street-search-wrap i {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 0.95rem;
}

.city-street-search-input {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    min-height: 46px;
    padding: 0.55rem 0.95rem 0.55rem 2.2rem;
    font-size: 0.95rem;
    color: #374151;
    background: #fbfbfc;
}

.city-street-search-input:focus {
    outline: 2px solid rgba(var(--lending-red-rgb), 0.18);
    border-color: var(--lending-red);
    background: #fff;
}

.city-street-search-input[readonly] {
    cursor: pointer;
}

.address-lookup-clear {
    position: absolute;
    right: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: #f1f5f9;
    color: #64748b;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.address-lookup-clear:hover {
    background: #e2e8f0;
    color: #334155;
}

#addressLookupInput {
    padding-right: 2.6rem;
}

.address-lookup-unrecognized {
    margin-top: 0.85rem;
}

.address-lookup-unrecognized[hidden] {
    display: none !important;
}

.address-lookup-unrecognized-note {
    margin: 0;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: #ffe8e6;
    color: #1f2937;
    text-align: center;
}

.address-lookup-unrecognized-note-line {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.45;
}

.address-lookup-unrecognized-note-line + .address-lookup-unrecognized-note-line {
    margin-top: 0.45rem;
}

.address-lookup-unrecognized-form-block {
    margin-top: 0.85rem;
}

.address-lookup-unrecognized-form-block[hidden] {
    display: none !important;
}

.address-lookup-unrecognized-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "phone submit"
        "consent consent";
    gap: 0.65rem;
    align-items: stretch;
    width: 100%;
}

.address-lookup-unrecognized-phone-wrap {
    position: relative;
    grid-area: phone;
    min-width: 0;
}

.address-lookup-unrecognized-phone-hint {
    position: absolute;
    left: 0.85rem;
    bottom: calc(100% + 0.25rem);
    margin: 0;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: #111827;
    color: #fff;
    font-size: 0.75rem;
    line-height: 1.2;
    white-space: nowrap;
    z-index: 2;
}

.address-lookup-unrecognized-phone,
#addressLookupModal #addressLookupInput.city-modal-input,
#cityModal #cityModalInput.city-modal-input,
.callback-modal .modal-phone-input,
.city-modal-input.modal-phone-input {
    display: block;
    width: 100%;
    margin: 0;
    min-height: 3rem;
    box-sizing: border-box;
    border-radius: 999px;
}

.callback-modal .ru-phone-field,
#addressLookupModal .ru-phone-field,
.provider-address-check-form .ru-phone-field {
    width: 100%;
}

.callback-modal .ru-phone-field .modal-phone-input,
#addressLookupModal .ru-phone-field .modal-phone-input,
.provider-address-check-form .ru-phone-field .modal-phone-input {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    min-height: 100%;
    height: 100%;
}

.address-lookup-check-actions {
    display: flex;
    justify-content: stretch;
    width: 100%;
}

.address-lookup-check-actions .modal-submit-btn,
.address-lookup-check-actions .btn-connect-card {
    width: 100%;
    min-height: 3rem;
    padding: 0.85rem 1.5rem;
    border: none;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
    background: var(--lending-red, #f3473c);
    color: #fff !important;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 4px 14px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
}

.address-lookup-check-actions .modal-submit-btn:hover,
.address-lookup-check-actions .btn-connect-card:hover {
    background: var(--lending-red-dark, #d63026);
    color: #fff !important;
    box-shadow: 0 6px 18px rgba(var(--lending-red-rgb, 243, 71, 60), 0.34);
}

.address-lookup-unrecognized-submit.modal-submit-btn,
.address-lookup-unrecognized-submit.btn-connect-card,
.address-lookup-unrecognized-submit {
    grid-area: submit;
    flex: 0 0 auto;
    align-self: stretch;
    white-space: nowrap;
    min-width: 9.5rem;
    width: auto !important;
    max-width: none;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
}

.address-lookup-unrecognized-submit.is-inactive,
.address-lookup-unrecognized-submit.is-inactive:hover {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.address-lookup-unrecognized-consent {
    grid-area: consent;
    margin: 0;
    max-width: none;
}

.address-lookup-unrecognized-consent[hidden] {
    display: none !important;
}

/* Шаг согласия: телефон → текст согласия → OK */
.address-lookup-unrecognized.is-consent .address-lookup-unrecognized-form {
    grid-template-columns: 1fr;
    grid-template-areas:
        "phone"
        "consent"
        "submit";
}

.address-lookup-unrecognized.is-consent .address-lookup-unrecognized-submit.modal-submit-btn,
.address-lookup-unrecognized.is-consent .address-lookup-unrecognized-submit.btn-connect-card,
.address-lookup-unrecognized.is-consent .address-lookup-unrecognized-submit {
    width: 100% !important;
    min-width: 0;
    justify-self: stretch;
}

.address-lookup-unrecognized.is-success .address-lookup-unrecognized-note {
    display: none;
}

.address-lookup-unrecognized-success {
    margin-top: 0.5rem;
}

.address-lookup-unrecognized-success[hidden] {
    display: none !important;
}

.address-lookup-check-actions[hidden] {
    display: none !important;
}

@media (max-width: 575.98px) {
    .address-lookup-unrecognized-form {
        grid-template-columns: 1fr;
        grid-template-areas:
            "phone"
            "submit"
            "consent";
    }

    .address-lookup-unrecognized-submit.modal-submit-btn,
    .address-lookup-unrecognized-submit.btn-connect-card,
    .address-lookup-unrecognized-submit {
        width: 100% !important;
        min-width: 0;
    }

    .address-lookup-unrecognized.is-consent .address-lookup-unrecognized-form {
        grid-template-areas:
            "phone"
            "consent"
            "submit";
    }
}

.provider-address-check-result {
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

#addressLookupModal.address-lookup-modal--provider-result .provider-address-check-result {
    margin-top: 0;
    padding: 0;
    border: none;
    background: transparent;
    border-radius: 0;
}

#addressLookupModal .modal-title {
    text-align: center;
}

.provider-address-status {
    display: flex;
    align-items: flex-start;
    gap: 0.95rem;
    margin: 0 0 1.25rem;
    padding: 1.15rem 1.2rem 1.2rem;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(18, 20, 26, 0.06);
}

.provider-address-status--ok {
    border-color: #d8eee0;
    background: linear-gradient(180deg, #f7fcf8 0%, #ffffff 100%);
}

.provider-address-status--manual,
.provider-address-status--miss {
    border-color: #e8e2d8;
    background: #fcfbf8;
}

.provider-address-status__icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 999px;
    background: #e8f8ee;
    color: #1f9d57;
    font-size: 1.35rem;
    line-height: 1;
}

.provider-address-status--manual .provider-address-status__icon,
.provider-address-status--miss .provider-address-status__icon {
    background: #f3efe6;
    color: #8a6a2f;
}

.provider-address-status__body {
    min-width: 0;
    flex: 1 1 auto;
}

@media (max-width: 767px) {
    .provider-address-status {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .provider-address-status__icon {
        width: 2.55rem;
        height: 2.55rem;
        font-size: 1.2rem;
    }

    .provider-address-status__title {
        margin-top: 0;
    }
}

.provider-address-status__title {
    margin: 0.15rem 0 0.4rem;
    color: #12141a;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.provider-address-status__addr {
    margin: 0;
    color: #5b6472;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.45;
}

.provider-address-status__ports {
    margin: 0.7rem 0 0;
    color: #d92d20;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.4;
}

.provider-address-status__support {
    margin-top: 0.95rem;
    padding-top: 0.85rem;
    border-top: 1px solid #ebe4d8;
}

.provider-address-status__support-lead {
    margin: 0 0 0.45rem;
    color: #5b6472;
    font-size: 0.92rem;
    font-weight: 550;
    line-height: 1.4;
}

.provider-address-status__support-phone {
    display: inline-block;
    margin: 0.15rem 0 0.35rem;
    color: var(--primary, var(--lending-red, #d92d20));
    font-size: 1.28rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    text-decoration: none;
}

.provider-address-status__support-phone:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.provider-address-status__support-hint {
    margin: 0.35rem 0 0;
    color: #6b7280;
    font-size: 0.88rem;
    font-weight: 500;
    line-height: 1.4;
}

.provider-address-status__support-link {
    color: var(--primary, var(--lending-red, #d92d20));
    font-weight: 700;
}

.provider-address-check-text {
    margin: 0;
    color: #1f2937;
    font-weight: 700;
    line-height: 1.55;
}

.provider-address-check-text .provider-address-check-lead {
    margin: 0 0 0.65rem;
    font-weight: 700;
}

.provider-address-check-text .provider-address-check-follow {
    margin: 0 0 0.65rem;
    font-weight: 700;
    line-height: 1.55;
}

.provider-address-check-text .provider-address-phone-line {
    display: block;
    margin-top: 0.25rem;
    font-weight: 700;
    line-height: 1.45;
    white-space: nowrap;
}

.provider-address-check-text .provider-address-check-addr-line {
    margin: 0;
    font-weight: 600;
    line-height: 1.45;
}

.provider-address-check-text .provider-address-highlight,
.provider-address-status .provider-address-highlight {
    color: #12141a;
    font-weight: 700;
}

#addressLookupModal.address-lookup-modal--provider-result .provider-address-check-text .provider-address-highlight,
#addressLookupModal.address-lookup-modal--provider-result .provider-address-status .provider-address-highlight {
    color: #12141a;
}

.provider-address-check-text .provider-address-edit-btn,
.provider-address-status .provider-address-edit-btn {
    display: inline;
    margin: 0 0 0 0.4rem;
    padding: 0;
    vertical-align: baseline;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--primary, var(--lending-red));
    background: none;
    border: 0;
    border-radius: 0;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

#addressLookupModal.address-lookup-modal--provider-result .provider-address-check-text .provider-address-edit-btn,
#addressLookupModal.address-lookup-modal--provider-result .provider-address-status .provider-address-edit-btn {
    color: var(--primary, var(--lending-red));
    border-color: transparent;
}

#addressLookupModal.address-lookup-modal--provider-result .provider-address-check-text .provider-address-edit-btn:hover,
#addressLookupModal.address-lookup-modal--provider-result .provider-address-status .provider-address-edit-btn:hover {
    background: none;
    border-color: transparent;
    color: #111827;
}

.provider-address-check-text .provider-address-edit-btn:hover,
.provider-address-status .provider-address-edit-btn:hover {
    background: none;
    border-color: transparent;
    color: #111827;
}

.provider-address-check-text .provider-address-edit-btn:focus-visible,
.provider-address-status .provider-address-edit-btn:focus-visible {
    outline: 2px solid var(--primary, var(--lending-red));
    outline-offset: 2px;
}

@media (min-width: 768px) {
    #addressLookupModal .modal-content {
        max-width: 40rem;
        padding: 2.85rem 2.65rem 2.4rem;
    }

    #addressLookupModal .modal-title {
        font-size: 1.95rem;
        margin-bottom: 0.85rem;
        letter-spacing: -0.03em;
        text-align: center;
    }

    #addressLookupModal .modal-subtitle {
        margin-bottom: 1.65rem;
        font-size: 1rem;
        line-height: 1.55;
    }

    #addressLookupModal .provider-address-status {
        margin-bottom: 1.45rem;
        padding: 1.35rem 1.4rem 1.4rem;
        gap: 1.1rem;
        border-radius: 18px;
    }

    #addressLookupModal .provider-address-status__icon {
        width: 3.15rem;
        height: 3.15rem;
        font-size: 1.5rem;
    }

    #addressLookupModal .provider-address-status__title {
        font-size: 1.28rem;
    }

    #addressLookupModal .provider-address-status__addr {
        font-size: 1rem;
    }

    #addressLookupModal .provider-address-status__ports {
        margin-top: 0.85rem;
        font-size: 0.98rem;
    }

    #addressLookupModal .provider-address-check-form {
        gap: 1.15rem;
    }
}

.provider-address-check-text .provider-address-check-phone-link {
    color: var(--primary, var(--lending-red));
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.provider-address-check-text .provider-address-check-phone-link:hover {
    text-decoration-thickness: 2px;
}

#addressLookupModal.address-lookup-modal--provider-result .provider-address-check-phone-link {
    color: #12141a !important;
}

#addressLookupModal.address-lookup-modal--provider-result .provider-address-check-consent a {
    color: inherit;
}

.provider-address-check-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.provider-address-check-phone-lead {
    margin: 0 0 0.25rem;
    color: #555;
    font-weight: 500;
    line-height: 1.5;
}

#providerAddressCheckAvailStep .modal-submit-btn,
#providerAddressCheckPhoneStep .modal-submit-btn {
    width: 100%;
}

.provider-address-check-back {
    justify-self: start;
    margin: 0.15rem 0 0;
    padding: 0.2rem 0;
    border: 0;
    background: none;
    color: #4b5563;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
}

.provider-address-check-back:hover {
    color: #111827;
    text-decoration: underline;
}

.callback-modal-success.provider-address-check-success {
    margin-top: 0.35rem;
    padding: 0;
    text-align: center;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.provider-address-check-consent {
    margin: 0;
    align-items: flex-start;
    font-size: 0.86rem;
    line-height: 1.35;
}

.consent-label--brand {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin: 0;
    cursor: pointer;
    color: #1f2937;
    font-size: 0.84rem;
    font-weight: 500;
    line-height: 1.4;
}

.consent-label--brand .consent-label__input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    opacity: 0;
}

.consent-label--brand .consent-label__box {
    flex: 0 0 auto;
    box-sizing: border-box;
    width: 1.45rem;
    height: 1.45rem;
    margin-top: 0.08rem;
    border: 1.5px solid #c5cad3;
    border-radius: 0.45rem;
    background: #fff;
    position: relative;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.consent-label--brand .consent-label__box::after {
    content: '';
    position: absolute;
    inset: 0;
    margin: auto;
    width: 0.42rem;
    height: 0.72rem;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: translateY(-0.08rem) rotate(45deg);
    opacity: 0;
}

.consent-label--brand .consent-label__input:checked + .consent-label__box {
    background: var(--primary, var(--lending-red, #e30613));
    border-color: var(--primary, var(--lending-red, #e30613));
}

.consent-label--brand .consent-label__input:checked + .consent-label__box::after {
    opacity: 1;
}

.consent-label--brand .consent-label__input:focus-visible + .consent-label__box {
    outline: 2px solid var(--primary, var(--lending-red, #e30613));
    outline-offset: 2px;
}

.consent-label--brand .consent-label__text {
    flex: 1 1 auto;
    min-width: 0;
    color: #374151;
}

.consent-label--brand .consent-label__link {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.consent-label--brand .consent-label__link:hover {
    color: var(--primary, var(--lending-red, #e30613));
}

.provider-address-check-our-phone {
    margin: 0.15rem 0 0;
    text-align: center;
    color: #6b7280;
    font-size: 0.95rem;
    font-weight: 550;
    line-height: 1.4;
}

.provider-address-check-our-phone-link {
    color: var(--primary, var(--lending-red, #d92d20));
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.provider-address-check-our-phone-link:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.provider-address-premises {
    margin: 0 0 0.15rem;
    padding: 0;
    border: 0;
    min-width: 0;
}

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

.provider-address-premises__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1.15rem;
}

.provider-address-premises__option {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    cursor: pointer;
    color: #1f2937;
    font-size: 0.95rem;
    font-weight: 550;
    line-height: 1.25;
    user-select: none;
}

.provider-address-premises__option input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    opacity: 0;
}

.provider-address-premises__control {
    box-sizing: border-box;
    flex: 0 0 auto;
    width: 1.2rem;
    height: 1.2rem;
    border: 2px solid #c9ced8;
    border-radius: 999px;
    background: #fff;
    position: relative;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.provider-address-premises__control::after {
    content: '';
    position: absolute;
    inset: 0;
    margin: auto;
    width: 0.52rem;
    height: 0.52rem;
    border-radius: 999px;
    background: var(--primary, var(--lending-red, #e30613));
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.provider-address-premises__option input:checked + .provider-address-premises__control {
    border-color: var(--primary, var(--lending-red, #e30613));
}

.provider-address-premises__option input:checked + .provider-address-premises__control::after {
    opacity: 1;
    transform: scale(1);
}

.provider-address-premises__option input:focus-visible + .provider-address-premises__control {
    outline: 2px solid var(--primary, var(--lending-red, #e30613));
    outline-offset: 2px;
}

.provider-address-premises__text {
    white-space: nowrap;
}

.callback-modal-support {
    margin-top: 0.35rem;
    text-align: center;
}

.callback-modal-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.25rem;
    width: 100%;
    max-width: 26rem;
    margin: 0 auto 1.1rem;
    padding: 0.25rem;
    border-radius: 999px;
    background: #eceef3;
    box-sizing: border-box;
}

.callback-modal-tabs--above-title {
    margin-top: 0.15rem;
    margin-bottom: 0.85rem;
}

.callback-modal-tabs[hidden] {
    display: none !important;
}

.callback-modal-tabs__btn {
    appearance: none;
    border: 0;
    border-radius: 999px;
    min-height: 2.6rem;
    padding: 0.55rem 0.85rem;
    background: transparent;
    color: #5b616b;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.callback-modal-tabs__btn.is-active {
    background: #fff;
    color: #111827;
    box-shadow: 0 1px 4px rgba(17, 24, 39, 0.12);
}

.callback-modal-tab-panel[hidden] {
    display: none !important;
}

.callback-modal-help {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-align: center;
    max-width: 26rem;
    margin: 0 auto;
}

.callback-modal-help__icon {
    margin-top: 0.25rem;
}

.callback-modal-help__text {
    margin: 0;
    color: #5b616b;
    font-size: 0.98rem;
    line-height: 1.5;
}

.callback-modal-help__fallback {
    margin: 0;
    color: #5b616b;
    font-size: 0.95rem;
    line-height: 1.45;
}

.callback-modal-help__btn {
    flex-direction: column;
    gap: 0.2rem;
    text-decoration: none !important;
    line-height: 1.25;
}

.callback-modal-help__btn:hover,
.callback-modal-help__btn:focus,
.callback-modal-help__btn:focus-visible {
    text-decoration: none !important;
}

.callback-modal-help__btn-label {
    display: block;
}

.callback-modal-help__btn-phone {
    display: block;
    white-space: nowrap;
}

.callback-modal-support__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0.35rem 0.2rem;
    border: 0;
    background: none;
    color: #6b7280;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1.3;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.callback-modal-support__toggle:hover {
    color: var(--primary, var(--lending-red, #e30613));
}

.callback-modal-support__panel {
    margin-top: 0.65rem;
    padding: 0.85rem 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #f8fafc;
}

.callback-modal-support__hint {
    margin: 0 0 0.35rem;
    color: #6b7280;
    font-size: 0.86rem;
    font-weight: 500;
    line-height: 1.35;
}

.callback-modal-support__phone {
    display: inline-block;
    color: var(--primary, var(--lending-red, #e30613));
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    text-decoration: none;
}

.callback-modal-support__phone:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 520px) {
    .provider-address-premises__list {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.7rem;
    }
}

.city-street-letters {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.city-street-letters button {
    border: 1px solid #e6e6e6;
    background: #f8fafc;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 500;
    font-size: 0.86rem;
    color: #444;
}

.city-street-letters button:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.city-street-letters button.active {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.city-street-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: #fff;
    border: 1px solid #eee;
    border-radius: 18px;
    padding: 0.85rem 1rem;
    max-height: 250px;
    overflow-y: auto;
    gap: 0.5rem 0.75rem;
    align-content: flex-start;
}

.city-street-item {
    display: block;
    padding: 0.35rem 0.15rem;
    font-weight: 400;
    color: #374151;
}

.city-street-item-empty {
    color: #6b7280;
}

@media (max-width: 991px) {
    .popular-cities-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

@media (max-width: 575px) {
    .popular-cities-grid {
        grid-template-columns: 1fr;
    }

    .city-street-grid {
        grid-template-columns: 1fr;
    }
}

/* Downdetector */
.downdetector-page {
    background: #f5f6f8;
    min-height: 100vh;
}

.downdetector-page .hero-section .hero-subtitle {
    max-width: 46rem;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
}

.downdetector-section {
    padding: 2rem 0;
}

.downdetector-head h1,
.downdetector-head h2 {
    margin: 0 0 0.4rem;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    line-height: 1.3;
    color: #212121;
}

.downdetector-head p {
    margin: 0 0 1rem;
    color: #5f6670;
    font-weight: 600;
}

.downdetector-city-interlinks {
    padding: 1.75rem 0 2.25rem;
    background: #f5f5f5;
}

.downdetector-city-interlinks h2 {
    margin: 0 0 0.35rem;
    color: #1a1a1a;
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.3;
}

.downdetector-city-interlinks-lead {
    margin: 0 0 1rem;
    color: #5f6670;
    font-size: 0.92rem;
    line-height: 1.45;
}

.downdetector-city-interlinks-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.28rem 1.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.downdetector-city-interlinks-list a {
    display: inline-block;
    padding: 0.15rem 0;
    color: #374151;
    font-size: 0.92rem;
    line-height: 1.45;
    text-decoration: none;
}

.downdetector-city-interlinks-list a:hover,
.downdetector-city-interlinks-list a:focus-visible {
    color: var(--lending-red, #e53935);
    text-decoration: underline;
    outline: none;
}

.downdetector-city-interlinks-list a[aria-current="page"] {
    font-weight: 700;
    color: #111;
}

@media (max-width: 991.98px) {
    .downdetector-city-interlinks-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .downdetector-city-interlinks-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.downdetector-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.8rem;
}

/* Fixed desktop density for city outage cards:
   always up to 5 cards per row, without stretching 1-2 cards. */
.downdetector-grid-fixed-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.section-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 0.95rem 1rem;
    margin-bottom: 1rem;
}

/* Blog */
.blog-hero.hero-section {
    /* Для блога нужен компактный hero (без «пустоты» сверху) */
    padding: 1.25rem 0 1rem;
    background: #f5f5f5;
}

.blog-section {
    background: #f5f5f5;
    padding: 1.35rem 0 2rem;
}

.blog-hero-badge,
.blog-article-meta,
.blog-card-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: #4b5563;
    font-weight: 700;
    font-size: 0.92rem;
}

.blog-hero-badge {
    border: 1px solid #e6ece8;
    background: rgba(var(--lending-red-rgb), 0.06);
    color: var(--lending-red);
    border-radius: 999px;
    padding: 0.35rem 0.65rem;
    margin-bottom: 0.6rem;
}

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

.blog-index-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 1rem;
    align-items: start;
}

.blog-index-aside {
    position: sticky;
    top: 1rem;
}

.blog-sidebar-title {
    font-weight: 950;
    margin-bottom: 0.6rem;
}

.blog-sidebar-links {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.blog-sidebar-link-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.35rem 0.4rem;
    border-radius: 12px;
}

.blog-sidebar-link-row:hover {
    background: rgba(var(--lending-red-rgb), 0.08);
}

.blog-sidebar-link {
    color: #374151;
    font-weight: 700;
}

.blog-sidebar-count {
    color: #6b7280;
    font-weight: 800;
    font-size: 0.9rem;
}

.blog-sidebar-text {
    color: #4b5563;
    font-weight: 650;
    margin: 0 0 0.85rem;
}

.blog-sidebar-actions {
    display: grid;
    gap: 0.6rem;
}

.blog-sidebar-actions .btn-connect-card {
    width: 100%;
}

.blog-card {
    padding: 0;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(17, 24, 39, 0.08);
    display: flex;
    flex-direction: column;
}

.blog-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(17, 24, 39, 0.11);
}

.blog-card,
.blog-card:hover {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.blog-card-media img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}

.blog-card-body {
    padding: 0.95rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.blog-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid #e6ece8;
    background: rgba(var(--lending-red-rgb), 0.06);
    padding: 0.22rem 0.55rem;
    color: var(--lending-red);
    font-weight: 800;
    font-size: 0.78rem;
}

.blog-meta-sep {
    color: #a0a8b2;
    font-weight: 700;
}

.blog-card-title {
    margin: 0.55rem 0 0.55rem;
    font-size: 1.2rem;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: 0;
}

.blog-card-title a {
    color: #1f2328;
    text-decoration: none;
}

.blog-card-title a:hover {
    color: var(--lending-red);
    text-decoration: none;
}

.blog-card-announce {
    color: #4b5563;
    font-weight: 400;
    font-size: 0.95rem;
    line-height: 1.45;
    margin: 0 0 0.85rem;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.blog-card-footer {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-top: auto;
    margin-bottom: 0.8rem;
}

.blog-card-author {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.blog-card-author-photo {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.12);
}

.blog-card-author-photo--fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef2f0;
    color: var(--lending-red);
}

.blog-card-author-meta {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.blog-card-author-name {
    color: var(--lending-red);
    font-weight: 700;
    font-size: 0.9rem;
    line-height: 1.15;
}

.blog-card-author-date {
    color: #6f7378;
    font-weight: 400;
    font-size: 0.85rem;
    line-height: 1.15;
}

.blog-card-readmore {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.65rem;
    border-radius: 999px;
    background: var(--lending-red);
    color: #fff !important;
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(var(--lending-red-rgb), 0.22);
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.blog-card-readmore:hover {
    color: #fff !important;
    background: #256b29;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(var(--lending-red-rgb), 0.28);
    text-decoration: none;
}

.blog-article-hero {
    padding: 1.6rem 0 0.8rem;
}

.blog-article-title {
    margin: 0.85rem 0 0.45rem;
    font-size: clamp(2rem, 3vw, 3.15rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.blog-article-announce {
    margin-top: 0.9rem;
    color: #4b5563;
    font-weight: 650;
}

.blog-article-body {
    background: #f5f6f8;
    padding: 1.25rem 0 2.5rem;
}

.blog-article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1rem;
    align-items: start;
}

.blog-article-sidebar {
    position: sticky;
    top: 1rem;
}

.blog-article-content.section-card {
    border: 0;
    border-radius: 22px;
    padding: 2.6rem 7rem;
    box-shadow: 0 12px 34px rgba(17, 24, 39, 0.08);
}

.blog-article-topline {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
    color: #6b7280;
    font-size: 0.92rem;
}

.blog-article-author {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.blog-article-author-photo {
    width: 2.1rem;
    height: 2.1rem;
    max-width: none !important;
    margin: 0;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.12);
}

.blog-article-author-photo--fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef2f0;
    color: var(--lending-red);
}

.blog-article-author-name {
    color: var(--lending-red);
    font-weight: 800;
}

.blog-article-category,
.blog-article-date {
    color: #6b7280;
    font-weight: 650;
}

.blog-article-updated {
    margin: 0.8rem 0 1rem;
    color: #6b7280;
    font-size: 0.92rem;
    font-weight: 500;
}

.blog-toc-title,
.blog-rating-title {
    font-weight: 950;
    margin-bottom: 0.55rem;
}

.blog-toc-inline {
    margin: 1rem 0 1.25rem;
    border-radius: 16px;
    background: #f1f3f5;
    overflow: hidden;
}

.blog-toc-inline .blog-toc-title {
    margin: 0;
    padding: 0.85rem 1rem;
    cursor: pointer;
    list-style: none;
    font-size: 1rem;
    font-weight: 700;
}

.blog-toc-inline .blog-toc-title::-webkit-details-marker {
    display: none;
}

.blog-toc-inline .blog-toc-title::after {
    content: '⌄';
    float: right;
    color: #6b7280;
}

.blog-toc-inline[open] .blog-toc-title::after {
    content: '⌃';
}

.blog-toc-nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.blog-toc-inline .blog-toc-nav {
    padding: 0 1rem 1rem;
}

.blog-toc-link {
    color: #374151;
    font-weight: 700;
    text-decoration: none !important;
    padding: 0.25rem 0.25rem;
    border-radius: 10px;
}

.blog-toc-link:hover {
    background: rgba(var(--lending-red-rgb), 0.08);
    color: var(--lending-red);
}

.blog-toc-link--h3 {
    padding-left: 0.9rem;
    font-weight: 650;
}

.blog-rating-buttons {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.4rem;
    margin-bottom: 0.65rem;
}

.blog-rating-btn {
    border: 1px solid #e6ece8;
    background: #fff;
    border-radius: 12px;
    padding: 0.5rem 0.1rem;
    font-weight: 900;
    color: var(--lending-red);
    cursor: pointer;
}

.blog-rating-buttons.is-loading {
    opacity: 0.65;
    pointer-events: none;
}

.blog-rating-btn.is-active,
.blog-rating-btn:hover {
    background: rgba(var(--lending-red-rgb), 0.08);
    border-color: rgba(var(--lending-red-rgb), 0.25);
}

.blog-rating-summary {
    color: #4b5563;
    font-weight: 650;
    font-size: 0.95rem;
}

.blog-rating-note {
    margin-top: 0.45rem;
    color: var(--lending-red);
    font-weight: 700;
    min-height: 1.2em;
}

.blog-article-cover img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    border-radius: 16px;
    margin-bottom: 1rem;
    display: block;
}

/* Контент статьи: только картинки из редактора (не аватар в шапке) */
.blog-article-prose img {
    display: block;
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    margin: 1.25rem auto;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(17, 24, 39, 0.08);
}

.blog-article-prose figure,
.blog-article-prose .image,
.blog-article-prose figure.image {
    max-width: 100%;
    margin: 1.25rem 0;
}

.blog-article-prose figure img,
.blog-article-prose .image img {
    margin-left: auto;
    margin-right: auto;
}

.blog-article-prose iframe,
.blog-article-prose video {
    max-width: 100%;
    border-radius: 12px;
}

/* FAQ в конце статьи */
.blog-article-faq {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid #e8ecef;
}

.blog-article-faq-title {
    margin: 0 0 1.1rem;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 800;
    line-height: 1.2;
    color: #1f2937;
    letter-spacing: -0.02em;
}

.blog-article-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.blog-article-faq-item {
    background: linear-gradient(180deg, #f8faf9 0%, #f3f6f4 100%);
    border: 1px solid #e3ebe6;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.04);
}

.blog-article-faq-question {
    margin: 0;
    padding: 1rem 2.75rem 1rem 1.1rem;
    font-size: 1.02rem;
    font-weight: 800;
    color: #1f3d24;
    list-style: none;
    cursor: pointer;
    position: relative;
    user-select: none;
}

.blog-article-faq-question::-webkit-details-marker {
    display: none;
}

.blog-article-faq-question::before,
.blog-article-faq-question::after {
    content: '';
    position: absolute;
    right: 1.1rem;
    top: 50%;
    width: 12px;
    height: 2px;
    margin-top: -1px;
    background: var(--lending-red);
    border-radius: 2px;
}

.blog-article-faq-question::after {
    transform: rotate(90deg);
}

.blog-article-faq-item[open] .blog-article-faq-question::after {
    transform: rotate(0deg);
}

.blog-article-faq-answer {
    padding: 0 1.1rem 1.1rem;
    color: #374151;
    font-size: 0.98rem;
    line-height: 1.65;
    font-weight: 500;
    border-top: 1px solid rgba(var(--lending-red-rgb), 0.12);
}

.blog-article-faq-item[open] .blog-article-faq-answer {
    padding-top: 0.85rem;
}

/* 404 */
.page-error-404 {
    background: #f2f3f7;
}

.error-page {
    padding-bottom: 0;
}

.error-miss {
    padding: 1.25rem 0 0.5rem;
}

.error-miss-panel {
    display: grid;
    grid-template-columns: minmax(5.5rem, 9rem) minmax(0, 1fr);
    gap: 1.25rem 1.75rem;
    align-items: center;
    padding: 1.75rem 1.85rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--lending-red-rgb, 227, 6, 19), 0.12), transparent 42%),
        linear-gradient(145deg, #ffffff 0%, #f4f5f8 100%);
    border: 1px solid rgba(18, 20, 26, 0.06);
}

.error-miss-mark {
    margin: 0;
    font-size: clamp(3.6rem, 9vw, 5.6rem);
    font-weight: 850;
    letter-spacing: -0.08em;
    line-height: 0.9;
    color: var(--lending-red, #e30613);
    opacity: 0.92;
}

.error-miss-copy {
    min-width: 0;
}

.error-miss-label {
    margin: 0 0 0.45rem;
    color: #6b7280;
    font-size: 0.82rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.error-miss-copy h1 {
    margin: 0 0 0.7rem;
    font-size: clamp(1.55rem, 3vw, 2.2rem);
    font-weight: 850;
    letter-spacing: -0.04em;
    line-height: 1.12;
    color: #12141a;
}

.error-miss-text {
    margin: 0 0 1.25rem;
    max-width: 40rem;
    color: #5e6673;
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.5;
}

.error-miss-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.error-miss-actions .cv-pill {
    min-width: 9.5rem;
}

@media (max-width: 720px) {
    .error-miss {
        padding-top: 0.85rem;
    }

    .error-miss-panel {
        grid-template-columns: 1fr;
        gap: 0.85rem;
        padding: 1.35rem 1.2rem 1.45rem;
        border-radius: 22px;
    }

    .error-miss-mark {
        font-size: 3.2rem;
    }

    .error-miss-actions {
        display: grid;
    }

    .error-miss-actions .cv-pill {
        width: 100%;
        min-width: 0;
    }
}

/* legacy 404 leftovers (unused markup) */
.error-hero {
    padding: 2.5rem 0 1.25rem;
}

.error-card {
    position: relative;
    overflow: hidden;
    max-width: 820px;
    margin: 0 auto;
    padding: 3rem 3.25rem;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(17, 24, 39, 0.12);
}

.error-code {
    position: absolute;
    right: 2rem;
    top: 1.2rem;
    color: rgba(var(--lending-red-rgb), 0.08);
    font-size: clamp(5rem, 13vw, 9rem);
    font-weight: 950;
    line-height: 1;
    pointer-events: none;
}

.error-badge {
    width: fit-content;
    margin-bottom: 1rem;
}

.error-card h1 {
    position: relative;
    max-width: 620px;
    margin: 0 0 0.9rem;
    font-size: clamp(2rem, 4vw, 3.3rem);
    font-weight: 950;
    line-height: 1.08;
    letter-spacing: -0.04em;
    color: #1f2328;
}

.error-card p {
    position: relative;
    max-width: 620px;
    margin: 0 0 1.35rem;
    color: #4b5563;
    font-size: 1.05rem;
    font-weight: 600;
}

.error-actions {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.error-actions .btn-connect-card,
.error-actions .btn-check-availability {
    width: auto;
    min-width: 11rem;
    justify-content: center;
    text-align: center;
}

.error-links-section {
    padding: 0 0 2.5rem;
}

.error-links-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    max-width: 920px;
    margin: 0 auto;
}

.error-links-card.section-card {
    border: 0;
    border-radius: 22px;
    padding: 1.35rem 1.45rem;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.08);
}

.error-links-card h2 {
    margin: 0 0 0.85rem;
    font-size: 1.25rem;
    font-weight: 950;
}

.error-link-list,
.error-city-list {
    display: grid;
    gap: 0.45rem;
}

.error-link-list a,
.error-city-list a {
    color: var(--lending-red);
    font-weight: 800;
    text-decoration: none;
}

.error-link-list a:hover,
.error-city-list a:hover {
    color: var(--lending-red-dark);
    text-decoration: none;
}

@media (max-width: 991px) {
    .blog-index-layout {
        grid-template-columns: 1fr;
    }
    .blog-index-aside {
        position: static;
    }
    .blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .blog-card-media img {
        height: 180px;
    }
    .blog-article-layout {
        grid-template-columns: 1fr;
    }
    .blog-article-sidebar {
        position: static;
    }
    .error-links-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .blog-grid {
        grid-template-columns: 1fr;
    }
    .blog-card {
        border-radius: 16px;
    }
    .blog-card-media img {
        height: 180px;
    }
    .blog-card-body {
        padding: 0.95rem 1rem 1rem;
    }
    .blog-card-title {
        font-size: 1.2rem;
    }
    .blog-article-content.section-card {
        border-radius: 18px;
        padding: 1.35rem 1.15rem;
    }
    .blog-article-title {
        font-size: 2rem;
    }
    .error-hero {
        padding-top: 1.5rem;
    }
    .error-card {
        padding: 2rem 1.25rem;
        border-radius: 22px;
    }
    .error-code {
        right: 1rem;
        top: 0.75rem;
        font-size: 5rem;
    }
    .error-card p {
        font-size: 1rem;
    }
    .error-actions {
        display: grid;
    }
    .error-actions .btn-connect-card,
    .error-actions .btn-check-availability {
        width: 100%;
    }
}

.downdetector-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 0.8rem;
    text-decoration: none;
    color: inherit;
}

.downdetector-card:hover {
    text-decoration: none;
    border-color: #cfd8dc;
}

.downdetector-card-head {
    margin-bottom: 0.5rem;
}

.downdetector-logo {
    max-width: 120px;
    max-height: 30px;
    object-fit: contain;
    display: block;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0.25rem;
}

.downdetector-card-name {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
    color: #4b5563;
    letter-spacing: 0.01em;
}

.downdetector-status {
    font-weight: 800;
    color: #1f2328;
    margin-bottom: 0.2rem;
}

.downdetector-card .downdetector-status {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 0.78rem;
    padding: 0.22rem 0.55rem;
    border: 1px solid #d7dde4;
    background: #f8fafc;
}

.downdetector-counts {
    color: #68707b;
    font-size: 0.88rem;
    font-weight: 600;
}

.downdetector-sparkline {
    width: 100%;
    height: 36px;
    margin-top: 0.45rem;
    display: block;
}

.downdetector-provider-hero {
    overflow: hidden;
    padding: 0;
}

.downdetector-provider-hero-text {
    padding: 1.35rem 1.4rem 1.15rem;
}

.downdetector-provider-hero-text .hero-title {
    font-size: var(--page-hero-title-size);
    line-height: 1.3;
    margin-bottom: 0.65rem;
}

.downdetector-provider-hero-text .hero-subtitle {
    margin-bottom: 0;
}

.downdetector-provider-hero-panel {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.4rem;
    border-top: 1px solid #e8edf2;
    background: #fafafa;
}

.downdetector-provider-hero-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-bottom: 0.2rem;
}

.downdetector-provider-hero-title-row .downdetector-provider-hero-name {
    display: flex;
    align-items: center;
    line-height: 1;
}

.downdetector-provider-hero-title-row .downdetector-current-status {
    margin: 0;
    align-self: center;
    flex-shrink: 0;
}

.downdetector-provider-hero-identity {
    display: flex;
    align-items: center;
    gap: 0.95rem;
    min-width: 0;
}

.downdetector-provider-hero-meta {
    min-width: 0;
}

.downdetector-provider-hero-name {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
    color: #1a1f26;
}

.downdetector-provider-hero-stat {
    margin: 0;
    color: #5f6670;
    font-weight: 600;
    font-size: 0.95rem;
}

.hero-section--downdetector-provider {
    padding-bottom: 1.5rem;
}

.hero-section--downdetector-provider .hero-title,
.hero-section--downdetector-provider .hero-subtitle {
    max-width: none;
}

.downdetector-provider-head {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    margin-bottom: 1rem;
}

.downdetector-provider-head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    flex: 1 1 auto;
    min-width: 0;
}

.downdetector-provider-head-meta {
    min-width: 0;
}

.downdetector-provider-logo {
    max-width: 130px;
    max-height: 38px;
    object-fit: contain;
}

.downdetector-provider-head h1 {
    margin: 0 0 0.2rem;
    font-size: 1.6rem;
    font-weight: 800;
}

.downdetector-provider-head p {
    margin: 0;
    color: #5f6670;
    font-weight: 600;
}

.downdetector-provider-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.downdetector-provider-head-link {
    display: inline-flex;
    align-items: center;
    padding: 0.38rem 0.78rem;
    border-radius: 999px;
    border: 1px solid #c5d4e8;
    background: #fff;
    color: #2e4a66;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.downdetector-provider-head-link:hover {
    border-color: #4a6888;
    background: #f3f8ff;
    color: #1a3d5c;
    text-decoration: none;
}

.downdetector-provider-head-link--secondary {
    border-color: #d6dde4;
    background: #f8fafc;
    color: #4a5563;
}

.downdetector-provider-head-link--secondary:hover {
    border-color: #b7c4d4;
    background: #eef3f8;
    color: #2a3542;
}

.downdetector-provider-head h2 {
    margin: 0 0 0.2rem;
    font-size: 1.45rem;
    font-weight: 800;
}

.downdetector-current-status {
    margin-top: 0.45rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
    font-size: 0.83rem;
    font-weight: 800;
    border: 1px solid #d6dde4;
    background: #f8fafc;
    color: #34404c;
}

.downdetector-current-status-stable {
    border-color: #b7dfbf;
    background: #edf9ef;
    color: #236a2a;
}

.downdetector-current-status-local {
    border-color: #f7d39e;
    background: #fff7ea;
    color: #8d5a12;
}

.downdetector-current-status-global {
    border-color: #f4b3b3;
    background: #fff0f0;
    color: #a03737;
}

@media (max-width: 767px) {
    .downdetector-provider-hero-text .hero-title {
        font-size: 1.35rem;
    }

    .downdetector-provider-hero-text {
        padding: 1.1rem 1rem 0.95rem;
    }

    .downdetector-provider-hero-panel {
        padding: 0.95rem 1rem 1.05rem;
    }

    .downdetector-provider-head-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .downdetector-current-status {
        margin-top: 0.2rem;
    }

    .downdetector-provider-head-actions {
        width: 100%;
    }

    .downdetector-provider-head-link {
        flex: 1 1 auto;
        justify-content: center;
        min-width: calc(50% - 0.25rem);
    }
}

.downdetector-address-check {
    position: relative;
    overflow: hidden;
    margin: 1.15rem 0 1rem;
    padding: 1.15rem 1.25rem 1.2rem;
    border: 1px solid #f0c4bf;
    border-left: 5px solid var(--lending-red);
    border-radius: 18px;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--lending-red-rgb), 0.08), transparent 160px),
        linear-gradient(135deg, #fff 0%, #fff8f6 100%);
    box-shadow: 0 14px 34px rgba(var(--lending-red-rgb), 0.1);
}

.downdetector-address-check::after {
    content: '';
    position: absolute;
    right: -40px;
    top: -40px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: rgba(var(--lending-red-rgb), 0.07);
    pointer-events: none;
}

.downdetector-address-check-badge {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    width: fit-content;
    margin-bottom: 0.45rem;
    border-radius: 999px;
    padding: 0.26rem 0.65rem;
    background: var(--lending-red);
    color: #fff;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.downdetector-address-check h3 {
    position: relative;
    z-index: 1;
    margin: 0 0 0.45rem;
    font-size: var(--ui-h3-size);
    font-weight: var(--ui-h3-weight);
    line-height: var(--ui-h3-line);
    letter-spacing: var(--ui-h3-letter);
    color: var(--ui-h3-color);
}

.downdetector-address-check--cpa h3 {
    font-size: var(--ui-h3-size);
    font-weight: var(--ui-h3-weight);
    line-height: var(--ui-h3-line);
    color: var(--ui-h3-color);
}

.downdetector-address-check--cpa .downdetector-address-check-hint {
    font-size: 1rem;
    font-weight: 500;
    color: #111827;
}

.downdetector-address-check-hint {
    position: relative;
    z-index: 1;
    margin: 0 0 0.95rem;
    color: #5f6670;
    font-size: 0.95rem;
    line-height: 1.45;
}

.downdetector-address-check-form {
    position: relative;
    z-index: 1;
    margin: 0;
    width: 100%;
}

.downdetector-address-check-trigger {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    margin: 0;
    padding: 0.72rem 0.72rem 0.72rem 1rem;
    border: 2px solid #e8c9c4;
    border-radius: 999px;
    background: #fff;
    color: #8a939f;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.downdetector-address-check-trigger:hover,
.downdetector-address-check-trigger:focus-visible {
    border-color: var(--lending-red);
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb), 0.14);
    outline: none;
}

.downdetector-address-check-trigger-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.95rem;
    font-weight: 650;
    color: #8a939f;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.downdetector-address-check-trigger-action {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: var(--lending-red);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.downdetector-address-check-form .address-input-wrap--combo {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    border-color: #e8c9c4;
    background: #fff;
}

.downdetector-address-check-form .address-input-wrap--combo:focus-within {
    border-color: var(--lending-red);
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb), 0.14);
}

.downdetector-address-check-form .address-input-wrap--combo .address-input,
.downdetector-address-check-form .address-input-wrap--combo .address-input:focus,
.downdetector-address-check-form .address-input-wrap--combo .address-input:focus-visible {
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent;
}

.downdetector-address-check-form .address-input-wrap--combo .btn-search {
    box-shadow: none;
}

.downdetector-address-check-form .dadata-suggestions {
    z-index: 20;
}

.address-page-scope-note {
    margin: 0.75rem 0 0;
    color: #5f6670;
    font-size: 0.92rem;
    line-height: 1.45;
    max-width: 46rem;
}

.downdetector-chart-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1rem 1.05rem 0.95rem;
    margin-bottom: 1rem;
}

.downdetector-chart-card.is-loading {
    opacity: 0.72;
    pointer-events: none;
}

.downdetector-chart-head {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) auto minmax(0, 0.9fr);
    align-items: start;
    gap: 0.75rem 1rem;
    margin-bottom: 0.75rem;
}

.downdetector-chart-head-copy h3,
.downdetector-chart-head h3 {
    margin: 0;
    font-size: var(--ui-h3-size);
    font-weight: var(--ui-h3-weight);
    line-height: var(--ui-h3-line);
    letter-spacing: var(--ui-h3-letter);
    color: var(--ui-h3-color);
}

.downdetector-chart-hint {
    margin: 0.35rem 0 0;
    color: #68707b;
    font-size: 0.86rem;
    font-weight: 600;
    line-height: 1.4;
    max-width: 28rem;
}

.downdetector-chart-head span,
.downdetector-chart-now {
    font-size: 0.85rem;
    color: #68707b;
    font-weight: 700;
    text-align: right;
    justify-self: end;
}

.downdetector-chart-periods {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem;
    align-self: center;
}

.downdetector-chart-period {
    border: 1px solid #dde3e9;
    border-radius: 999px;
    background: #f9fafb;
    padding: 0.38rem 0.85rem;
    font-size: 0.86rem;
    font-weight: 700;
    color: #3d434b;
    cursor: pointer;
}

.downdetector-chart-period.is-active,
.downdetector-chart-period:hover {
    border-color: #c9d7e8;
    background: #eef5fb;
    color: #2b4d6f;
}

.downdetector-chart-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.75rem;
}

.downdetector-chart-stat {
    background: #f7f9fb;
    border: 1px solid #e8edf2;
    border-radius: 12px;
    padding: 0.55rem 0.7rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #2a3542;
}

.downdetector-chart-canvas-wrap {
    position: relative;
    width: 100%;
    min-height: 260px;
}

.downdetector-chart-canvas-wrap.is-compact {
    min-height: 200px;
}

#providerOutageChart,
.js-downdetector-chart-canvas {
    width: 100%;
    height: 260px;
    display: block;
    cursor: crosshair;
    touch-action: manipulation;
}

.downdetector-chart-tooltip {
    position: absolute;
    z-index: 2;
    transform: translate(-50%, -120%);
    background: #3d434b;
    color: #fff;
    padding: 0.42rem 0.72rem;
    border-radius: 10px;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: 0 10px 24px rgba(17, 24, 39, 0.18);
}

.downdetector-chart-tooltip[hidden] {
    display: none;
}

.downdetector-chart-banner {
    margin-top: 0.85rem;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1.45;
    color: #2a3542;
    background: #f3f7fb;
    border: 1px solid #e1e8ef;
}

.downdetector-chart-banner-stable {
    background: #edf9ef;
    border-color: #c8e6cc;
    color: #236a2a;
}

.downdetector-chart-banner-local {
    background: #fff7ea;
    border-color: #f7d39e;
    color: #8d5a12;
}

.downdetector-chart-banner-global {
    background: #fff0f0;
    border-color: #f4b3b3;
    color: #a03737;
}

.downdetector-chart-engage {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.7rem 1rem;
    margin-top: 0.9rem;
}

.downdetector-chart-report-btn {
    border: 0;
    border-radius: 999px;
    background: var(--lending-red, #f3473c);
    color: #fff;
    font-weight: 800;
    padding: 0.62rem 1.15rem;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
}

.downdetector-chart-report-btn:hover {
    background: var(--lending-red-dark, #d63026);
}

.downdetector-chart-issues {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.downdetector-chart-issue-chip {
    display: inline-flex;
    align-items: center;
    border: 1px solid #c8e6cc;
    background: #f4fbf5;
    color: #236a2a;
    border-radius: 999px;
    padding: 0.28rem 0.7rem;
    font-size: 0.82rem;
    font-weight: 700;
}

.downdetector-chart-howto {
    margin-top: 0.85rem;
}

.downdetector-chart-howto summary {
    cursor: pointer;
    color: #5b6570;
    font-size: 0.88rem;
    font-weight: 700;
    list-style: none;
}

.downdetector-chart-howto summary::-webkit-details-marker {
    display: none;
}

.downdetector-chart-howto summary::after {
    content: ' ▾';
    font-size: 0.75em;
}

.downdetector-chart-howto p {
    margin: 0.45rem 0 0;
    color: #5b6570;
    font-size: 0.88rem;
    line-height: 1.45;
    max-width: 52rem;
}

.downdetector-other-regions {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1rem 1.15rem 1.1rem;
    margin-bottom: 1rem;
}

.downdetector-other-regions-head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
}

.downdetector-other-regions-head p {
    margin: 0.35rem 0 0.8rem;
    color: #5f6670;
    font-size: 0.9rem;
    line-height: 1.4;
}

.downdetector-other-regions-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.55rem;
}

.downdetector-other-region-card {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid #e8edf2;
    border-radius: 12px;
    padding: 0.7rem 0.8rem;
    background: #f8fafc;
    min-height: 100%;
}

.downdetector-other-region-card:hover {
    border-color: #cfdbe8;
    background: #fff;
}

.downdetector-other-region-name {
    font-weight: 800;
    color: #1f2933;
}

.downdetector-other-region-count {
    color: #5b6570;
    font-size: 0.84rem;
    font-weight: 650;
}

.downdetector-other-region-go {
    margin-top: 0.2rem;
    color: var(--lending-red, #f3473c);
    font-size: 0.82rem;
    font-weight: 800;
}

.downdetector-comment-cta {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1.05rem 1.15rem 1.1rem;
    margin-bottom: 1rem;
    border-left: 5px solid var(--lending-red, #f3473c);
}

.downdetector-comment-cta-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.45rem;
    color: var(--lending-red, #f3473c);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.downdetector-comment-cta h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.downdetector-comment-cta > p {
    margin: 0.4rem 0 0.75rem;
    color: #4b5563;
    font-size: 0.92rem;
    line-height: 1.45;
}

.downdetector-comment-cta-form textarea {
    width: 100%;
    border: 1px solid #d9dee3;
    border-radius: 12px;
    padding: 0.7rem 0.8rem;
    min-height: 5.5rem;
    resize: vertical;
    font: inherit;
}

.downdetector-comment-cta-form textarea:focus {
    outline: none;
    border-color: #cfdbe8;
    box-shadow: 0 0 0 3px rgba(61, 109, 156, 0.12);
}

.downdetector-comment-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.85rem;
    align-items: center;
    margin-top: 0.7rem;
}

.downdetector-comment-cta-alt {
    border: 0;
    background: none;
    color: #3d6d9c;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.downdetector-comment-cta-note,
.downdetector-comment-cta-status {
    margin: 0.55rem 0 0;
    font-size: 0.84rem;
    color: #68707b;
}

.downdetector-comment-cta-status.is-ok {
    color: #236a2a;
    font-weight: 700;
}

.downdetector-comment-cta-status.is-err {
    color: #a03737;
    font-weight: 700;
}

.downdetector-client-chat {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1.05rem 1.15rem 1.15rem;
    margin-bottom: 1rem;
}

.downdetector-client-chat-title {
    margin: 0 0 0.9rem;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.3;
}

.downdetector-client-chat-grid {
    display: grid;
    grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.2fr);
    gap: 1rem 1.2rem;
    align-items: stretch;
}

.downdetector-client-chat-composer h4 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.downdetector-client-chat-composer > p {
    margin: 0.4rem 0 0.75rem;
    color: #4b5563;
    font-size: 0.92rem;
    line-height: 1.45;
}

.downdetector-client-chat-composer .downdetector-comment-cta-actions {
    display: block;
}

.downdetector-client-chat-composer .downdetector-comment-cta-actions .btn-connect-card {
    width: 100%;
}

.downdetector-client-chat-feed {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.downdetector-client-chat-fallback {
    margin: 0 0 0.55rem;
    color: #5f6670;
    font-size: 0.84rem;
    line-height: 1.4;
}

.downdetector-client-chat-scroll {
    flex: 1 1 auto;
    min-height: 22rem;
    max-height: 28rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid #eceff3;
    border-radius: 14px;
    background: #f6f7f9;
    padding: 0.55rem 0.65rem 0.75rem;
}

.downdetector-client-chat-more-wrap {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    justify-content: center;
    padding: 0.2rem 0 0.55rem;
    background: linear-gradient(#f6f7f9 70%, rgba(246, 247, 249, 0.2));
}

.downdetector-client-chat-more-btn {
    border: 1px solid #d9dee7;
    border-radius: 999px;
    background: #fff;
    color: #1a1a1a;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.4rem 0.85rem;
    cursor: pointer;
}

.downdetector-client-chat-more-btn:hover,
.downdetector-client-chat-more-btn:focus-visible {
    background: #f3f4f6;
    outline: none;
}

.downdetector-client-chat-more-btn:disabled {
    opacity: 0.65;
    cursor: wait;
}

.downdetector-client-chat-list {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.downdetector-chat-msg {
    background: #fff;
    border: 1px solid #e8eaee;
    border-radius: 14px 14px 14px 5px;
    padding: 0.65rem 0.8rem 0.7rem;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
}

.downdetector-chat-msg-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
    margin-bottom: 0.35rem;
    color: #68707b;
    font-size: 0.78rem;
    font-weight: 650;
}

.downdetector-chat-msg-issue {
    font-weight: 800;
    color: #1a1a1a;
}

.downdetector-chat-msg-street {
    margin: 0 0 0.25rem;
    color: #5f6670;
    font-size: 0.8rem;
}

.downdetector-chat-msg-text {
    margin: 0;
    color: #1f2933;
    font-size: 0.92rem;
    line-height: 1.45;
}

.downdetector-client-chat-scroll .downdetector-recent-empty {
    margin: 2.5rem 0.75rem;
    text-align: center;
}

@media (max-width: 991.98px) {
    .downdetector-client-chat-grid {
        grid-template-columns: 1fr;
    }

    .downdetector-client-chat-scroll {
        min-height: 18rem;
        max-height: 24rem;
    }
}

.downdetector-hot-regions {
    margin: 0 0 1.1rem;
}

.downdetector-hot-regions-label {
    display: block;
    margin-bottom: 0.45rem;
    color: #4b5563;
    font-size: 0.9rem;
    font-weight: 700;
}

.downdetector-hot-regions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.downdetector-hot-region-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    text-decoration: none;
    border: 1px solid #f0c4bf;
    background: #fff7f6;
    color: #7a1f1a;
    border-radius: 999px;
    padding: 0.32rem 0.75rem;
    font-size: 0.84rem;
    font-weight: 700;
}

.downdetector-hot-region-pill:hover {
    background: #fff1ef;
    color: #7a1f1a;
}

.downdetector-hot-region-count {
    color: #9f251e;
}

@media (max-width: 900px) {
    .downdetector-chart-head {
        grid-template-columns: 1fr;
    }

    .downdetector-chart-now {
        text-align: left;
        justify-self: start;
    }

    .downdetector-chart-periods {
        justify-content: flex-start;
    }

    .downdetector-chart-summary {
        grid-template-columns: 1fr;
    }
}

.downdetector-address-cta {
    margin: 0 0 1.35rem;
}

.downdetector-address-cta-inner {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: stretch;
    gap: 1.1rem;
    padding: 1.15rem 1.25rem;
    border-radius: 18px;
    border: 1px solid #c5d4e8;
    background: linear-gradient(128deg, #ffffff 0%, #f3f8ff 48%, #e8f1fc 100%);
    box-shadow: 0 14px 36px rgba(42, 88, 143, 0.12);
}

.downdetector-address-cta-inner::before,
.downdetector-address-cta-inner::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.downdetector-address-cta-inner::before {
    width: 180px;
    height: 180px;
    right: -48px;
    top: -72px;
    background: radial-gradient(circle, rgba(74, 104, 136, 0.14) 0%, rgba(74, 104, 136, 0) 70%);
}

.downdetector-address-cta-inner::after {
    width: 96px;
    height: 96px;
    left: -28px;
    bottom: -36px;
    background: rgba(var(--lending-red-rgb), 0.07);
}

.downdetector-address-cta-visual {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.downdetector-address-cta-icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 14px;
    background: linear-gradient(145deg, #4a6888 0%, #2e4a66 100%);
    color: #fff;
    font-size: 1.45rem;
    box-shadow: 0 8px 20px rgba(46, 74, 104, 0.28);
}

.downdetector-address-cta-content {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-width: 0;
}

.downdetector-address-cta-badge {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.4rem;
    padding: 0.24rem 0.62rem;
    border-radius: 999px;
    background: rgba(var(--lending-red-rgb), 0.12);
    color: var(--lending-red-dark);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.downdetector-address-cta-title {
    margin: 0 0 0.35rem;
    font-size: clamp(1.02rem, 2.2vw, 1.2rem);
    font-weight: 800;
    line-height: 1.28;
    color: #1a2433;
}

.downdetector-address-cta-sub {
    margin: 0 0 0.85rem;
    font-size: 0.9rem;
    line-height: 1.45;
    color: #5a6573;
    font-weight: 600;
}

.downdetector-address-cta-field {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    margin: 0;
    padding: 0.72rem 0.85rem 0.72rem 0.95rem;
    border: 2px solid #d5e0ec;
    border-radius: 14px;
    background: #fff;
    color: #68707b;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 14px rgba(26, 36, 51, 0.06);
}

.downdetector-address-cta-field:hover {
    border-color: #4a6888;
    box-shadow: 0 8px 22px rgba(74, 104, 136, 0.16);
}

.downdetector-address-cta-field:focus-visible {
    outline: 2px solid #4a6888;
    outline-offset: 2px;
}

.downdetector-address-cta-field-leading {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    background: #f0f4f9;
    color: #4a6888;
    font-size: 1rem;
}

.downdetector-address-cta-field-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.95rem;
    font-weight: 650;
    color: #8a939f;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.downdetector-address-cta-field-action {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
    padding: 0.42rem 0.72rem;
    border-radius: 999px;
    background: var(--lending-red);
    color: #fff;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.downdetector-address-cta-field-action i {
    font-size: 1.15rem;
    line-height: 1;
}

.downdetector-address-cta-field:hover .downdetector-address-cta-field-action {
    background: var(--lending-red-dark);
}

@media (max-width: 640px) {
    .downdetector-address-cta-inner {
        flex-direction: column;
        gap: 0.75rem;
        padding: 1rem;
    }

    .downdetector-address-cta-field {
        flex-wrap: wrap;
        padding: 0.65rem 0.75rem;
    }

    .downdetector-address-cta-field-text {
        flex: 1 1 100%;
        order: 2;
        white-space: normal;
    }

    .downdetector-address-cta-field-action {
        order: 3;
        margin-left: auto;
    }

    .downdetector-address-cta-field-leading {
        order: 1;
    }
}

.downdetector-report-form {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #ffffff 0%, #f1fbf3 100%);
    border: 1px solid #b7dfbf;
    border-left: 5px solid var(--lending-red);
    border-radius: 18px;
    padding: 1rem 1.15rem;
    margin-bottom: 1rem;
    box-shadow: 0 12px 28px rgba(var(--lending-red-rgb), 0.1);
}

.downdetector-report-form::after {
    content: '';
    position: absolute;
    right: -36px;
    top: -36px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: rgba(var(--lending-red-rgb), 0.08);
    pointer-events: none;
}

.downdetector-report-form-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-bottom: 0.45rem;
    border-radius: 999px;
    padding: 0.26rem 0.65rem;
    background: var(--lending-red);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.15;
}

.downdetector-report-form h3 {
    margin: 0 0 0.35rem;
    color: #1f2328;
    font-size: 1.55rem;
    font-weight: 950;
    line-height: 1.12;
}

.downdetector-report-form .provider-city-outage-embed-hint {
    margin-bottom: 0.75rem;
    color: #374151;
    font-weight: 650;
}

.downdetector-issue-row {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin: 0.6rem 0;
}

.downdetector-issue-btn {
    border: 1px solid #dde3e9;
    border-radius: 999px;
    background: #f9fafb;
    padding: 0.42rem 0.85rem;
    font-weight: 700;
    color: #3d434b;
    cursor: pointer;
}

.downdetector-issue-btn.is-active,
.downdetector-issue-btn:hover {
    border-color: #b7dfbf;
    background: #edf9ef;
    color: #236a2a;
}

.downdetector-report-form textarea {
    width: 100%;
    border: 1px solid #d9dee3;
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    margin-bottom: 0.6rem;
}

.downdetector-report-modal {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1200;
    padding: 1rem;
}

.downdetector-report-modal.is-open {
    display: flex;
}

.downdetector-report-modal-dialog {
    width: min(520px, 100%);
    background: #fff;
    border: 1px solid #dfe5eb;
    border-radius: 18px;
    padding: 1.15rem 1.25rem;
    position: relative;
}

.downdetector-modal-close {
    position: absolute;
    top: 0.65rem;
    right: 0.75rem;
    border: none;
    background: #f1f5f9;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    line-height: 1;
    font-size: 1.3rem;
    color: #49535f;
    cursor: pointer;
}

.downdetector-modal-issue {
    margin: 0 0 0.6rem;
    color: #4b5563;
    font-weight: 600;
}

.downdetector-modal-intro {
    margin: 0 2.2rem 1rem 0;
    color: #1f2937;
    font-size: 1.22rem;
    font-weight: 800;
    line-height: 1.25;
}

.downdetector-rating-block {
    margin: 0.65rem 0;
    border-top: 1px solid #edf1f4;
    padding-top: 0.6rem;
}

.downdetector-rating-block h4 {
    margin: 0 0 0.65rem;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
}

.downdetector-rating-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    margin-bottom: 0.45rem;
}

.downdetector-rating-row span {
    font-weight: 500;
    color: #2f3742;
}

.downdetector-stars {
    display: flex;
    gap: 0.25rem;
}

.downdetector-star-btn {
    border: none;
    background: transparent;
    color: #c2c9d1;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.05rem;
}

.downdetector-star-btn.is-on {
    color: #1d74d8;
}

.downdetector-report-modal-dialog--details h3 {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
    font-weight: 800;
    color: #1e293b;
}

.downdetector-report-modal-dialog--details .downdetector-rating-block {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}

.downdetector-modal-rating-hint {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: #64748b;
    line-height: 1.45;
}

.downdetector-modal-comment-label {
    display: block;
    margin: 0.9rem 0 0.4rem;
    font-weight: 700;
    color: #334155;
    font-size: 1.02rem;
    line-height: 1.35;
}

.downdetector-modal-details-textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 0.75rem 0.85rem;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    font-size: 1rem;
    line-height: 1.45;
    resize: vertical;
    min-height: 5.5rem;
    font-family: inherit;
}

.downdetector-modal-details-textarea:focus {
    outline: none;
    border-color: #1d74d8;
    box-shadow: 0 0 0 3px rgba(29, 116, 216, 0.15);
}

.downdetector-modal-submit-btn {
    margin-top: 1rem;
    width: 100%;
}

.downdetector-chat-street-actions {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    margin-top: 1rem;
}

.downdetector-chat-street-actions .downdetector-modal-submit-btn {
    margin-top: 0;
}

.downdetector-chat-street-actions .btn-check-availability {
    width: 100%;
}

.downdetector-report-modal-dialog--details {
    overflow: visible;
}

.downdetector-street-block {
    margin: 0 0 0.35rem;
}

.downdetector-street-kicker {
    margin: 0 0 0.25rem;
    font-size: 1.02rem;
    font-weight: 800;
    color: #1f2937;
}

.downdetector-street-kicker span {
    font-weight: 600;
    color: #6b7280;
    font-size: 0.92rem;
}

.downdetector-street-hint {
    margin: 0 0 0.85rem;
    color: #64748b;
    font-size: 0.88rem;
    line-height: 1.4;
}

.downdetector-street-label {
    display: block;
    margin: 0.55rem 0 0.3rem;
    font-weight: 700;
    color: #334155;
    font-size: 0.92rem;
}

.downdetector-suggest-field {
    position: relative;
}

.downdetector-street-input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 0.7rem 0.85rem;
    font-size: 1rem;
    font-family: inherit;
    background: #fff;
}

.downdetector-street-input:focus {
    outline: none;
    border-color: #1d74d8;
    box-shadow: 0 0 0 3px rgba(29, 116, 216, 0.15);
}

.downdetector-suggest-field .dadata-suggestions {
    z-index: 30;
}

.downdetector-streets-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1rem 1.15rem 1.1rem;
    margin-bottom: 1rem;
}

.downdetector-streets-head {
    display: flex;
    justify-content: space-between;
    gap: 0.8rem;
    align-items: flex-start;
    flex-wrap: wrap;
}

.downdetector-streets-head h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.downdetector-streets-head p {
    margin: 0.3rem 0 0;
    color: #5f6670;
    font-size: 0.88rem;
    line-height: 1.4;
}

.downdetector-streets-periods {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.downdetector-streets-period {
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #374151;
    border-radius: 999px;
    padding: 0.28rem 0.75rem;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.downdetector-streets-period.is-active,
.downdetector-streets-period:hover {
    border-color: #b7dfbf;
    background: #edf9ef;
    color: #236a2a;
}

.downdetector-streets-summary {
    margin: 0.75rem 0 0.7rem;
    color: #4b5563;
    font-size: 0.9rem;
}

.downdetector-streets-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem 0.7rem;
    max-height: 16rem;
    overflow: auto;
}

.downdetector-streets-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    background: #f6f7f9;
    border-radius: 10px;
    padding: 0.5rem 0.7rem;
}

.downdetector-streets-name {
    color: #374151;
    font-size: 0.88rem;
    line-height: 1.3;
}

.downdetector-streets-count {
    font-weight: 800;
    color: #1d7a32;
    flex-shrink: 0;
}

.downdetector-streets-empty {
    margin: 0;
    color: #6b7280;
    font-size: 0.88rem;
    line-height: 1.45;
}

.provider-opinion-review-street {
    margin: 0.2rem 0 0.15rem;
    color: #4b5563;
    font-size: 0.86rem;
    font-weight: 600;
}

@media (max-width: 720px) {
    .downdetector-streets-list {
        grid-template-columns: 1fr;
        max-height: 14rem;
    }
}

.downdetector-modal-rl-note {
    color: #b45309;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
}

@media (max-width: 1360px) {
    .downdetector-grid-fixed-5 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .providers-grid-fixed-5 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1140px) {
    .downdetector-grid-fixed-5 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    /* Плавная адаптация карточек провайдеров: 5 -> 4 -> 3 -> 2 -> 1 */
    .providers-grid-fixed-5 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .providers-grid-fixed-5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Телефоны: одна карточка на строку */
@media (max-width: 560px) {
    .providers-grid-fixed-5 {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .downdetector-grid-fixed-5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .providers-grid-fixed-5 {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 520px) {
    .downdetector-grid-fixed-5 {
        grid-template-columns: 1fr;
    }
}


/* Providers section */
.providers-section {
    background: #f5f5f5;
    padding: 2rem 0;
}

.providers-header {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.providers-header h2 {
    margin: 0;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    color: #212121;
    line-height: 1.3;
    text-align: center;
    width: 100%;
}

.providers-subtitle {
    color: #666;
    font-weight: 600;
}

.providers-seo-text {
    margin: 0 0 1rem;
    color: #3f3f3f;
    font-weight: 600;
    line-height: 1.55;
}

.providers-seo-text p {
    margin: 0 0 0.5rem;
}

.providers-seo-list {
    margin: 0 0 0.6rem 1.1rem;
    padding: 0;
}

.providers-seo-list li {
    margin-bottom: 0.25rem;
}

.provider-sort-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.55rem;
    margin: 0 0 1rem;
}

.provider-sort-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    margin: 0 0 1.5rem;
}

.provider-sort-toolbar .provider-sort-bar {
    margin: 0;
}

.provider-name-search {
    display: inline-flex;
    align-items: center;
    margin: 0;
    min-width: 0;
}

.provider-name-search-input {
    width: 11.5rem;
    max-width: 100%;
    height: 2.15rem;
    padding: 0.35rem 0.8rem;
    border: 1px solid #e3e5e9;
    border-radius: 999px;
    background: #fff;
    color: #212121;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    box-shadow: 0 1px 2px rgba(24, 28, 38, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.provider-name-search-input::placeholder {
    color: #9aa0a8;
    font-weight: 600;
}

.provider-name-search-input:hover {
    border-color: #d0d4db;
}

.provider-name-search-input:focus {
    outline: none;
    border-color: rgba(var(--lending-red-rgb), 0.55);
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb), 0.12);
}

.provider-card.provider-card--name-hidden {
    display: none !important;
}

@media (max-width: 640px) {
    .provider-sort-toolbar {
        align-items: stretch;
    }

    .provider-name-search {
        width: 100%;
    }

    .provider-name-search-input {
        width: 100%;
    }
}

a.provider-sort-pill,
span.provider-sort-pill {
    display: inline-flex;
    align-items: center;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    border: 1px solid #e0e0e0;
    background: #fafafa;
    color: #424242;
    line-height: 1.2;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

a.provider-sort-pill:hover {
    background: #f0f4f8;
    border-color: #cfd8dc;
    color: #212121;
    text-decoration: none;
}

span.provider-sort-pill-active {
    background: #e8f5e9;
    border-color: #a5d6a7;
    color: var(--lending-red-dark);
    cursor: default;
}

a.provider-sort-pill-active {
    background: #e8f5e9;
    border-color: #a5d6a7;
    color: var(--lending-red-dark);
}

.provider-sort-switch {
    position: relative;
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 0.25rem;
    width: auto;
    margin-bottom: 1.5rem;
    padding: 0.3rem;
    border: 1px solid #e3e5e9;
    border-radius: 999px;
    background: #f5f6f8;
}

.provider-sort-switch-indicator {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 2px 9px rgba(24, 28, 38, 0.1);
    opacity: 0;
    pointer-events: none;
    transition:
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.18s ease;
    will-change: transform, width;
}

.provider-sort-switch button.provider-sort-pill {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin: 0;
    padding: 0.55rem 1rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    color: #5d6470;
    cursor: pointer;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1;
    transition: color 0.2s ease;
}

.provider-sort-switch button.provider-sort-pill:hover,
.provider-sort-switch button.provider-sort-pill:focus-visible,
.provider-sort-switch button.provider-sort-pill-active {
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #b92f29;
    outline: none;
}

.provider-sort-switch button.provider-sort-pill:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(var(--lending-red-rgb), 0.25);
}

.provider-card-criteria {
    display: grid;
    grid-template-columns: max-content max-content max-content max-content;
    column-gap: 0.2rem;
    row-gap: 0.35rem;
    margin: 0 0 0.75rem;
    padding: 0;
    width: fit-content;
    max-width: 100%;
    justify-content: start;
    align-items: center;
    font-size: 0.78rem;
    line-height: 1.35;
}

.provider-card-criterion {
    display: contents;
}

.provider-card-criterion-name {
    margin: 0 1.75rem 0 0;
    padding: 0;
    font-weight: 400;
    color: #757575;
}

.provider-card-criterion-stars {
    display: inline-flex;
    gap: 0.06rem;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
}

.provider-card-criterion-star.bi-star-fill {
    color: #f5a623;
    font-size: 0.72rem;
    line-height: 1;
}

.provider-card-criterion-star.bi-star {
    color: #cfd8dc;
    font-size: 0.72rem;
    line-height: 1;
}

.provider-card-criterion-dash {
    margin: 0;
    padding: 0;
    color: #9e9e9e;
    font-weight: 500;
    font-size: 0.78rem;
    line-height: 1;
    user-select: none;
}

.provider-card-criterion-value {
    margin: 0;
    font-weight: 600;
    color: #37474f;
    text-align: left;
    font-variant-numeric: tabular-nums;
    min-width: 2ch;
}

.providers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.providers-grid-fixed-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

/* Важно: адаптацию держим ПОСЛЕ базового правила, иначе она перебивается */
@media (max-width: 1500px) {
    .providers-grid-fixed-5 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1200px) {
    .providers-grid-fixed-5 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .providers-grid-fixed-5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .providers-grid-fixed-5 {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* min-width: 0 — иначе в grid колонки не сжимаются и карточки «ломают» вёрстку */
.providers-grid > .provider-card {
    min-width: 0;
}

.provider-card.provider-card--collapsed {
    display: none !important;
}

.providers-load-more-wrap {
    margin-top: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    text-align: left;
}

/* Как у «Подключить» в карточке, но ширина по содержимому и слева (не 100% из общих медиазапросов) */
.providers-load-more-wrap .providers-load-more-btn.btn-check-availability,
.providers-load-more-wrap .providers-all-btn.btn-connect-card {
    width: auto !important;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.provider-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 20px;
    padding: 1.25rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    max-width: 100%;
}

.provider-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.provider-card-connect-btn {
    margin-top: 0.75rem;
    width: auto !important;
    max-width: 100%;
    align-self: flex-start;
    display: inline-flex;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
}

.provider-card-tariffs-btn {
    margin-top: 0.6rem;
    width: auto !important;
    max-width: 100%;
    align-self: flex-start;
    display: inline-flex;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
}

/* Карточки провайдеров на главной города */
.providers-grid.providers-grid--city-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.provider-card.provider-card--spec {
    position: relative;
    gap: 0;
    overflow: hidden;
    padding: 0.95rem;
    border: 1px solid #e7e9ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(27, 31, 43, 0.05);
    transition: background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.provider-card.provider-card--spec::before {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 3px;
    content: "";
    background: linear-gradient(90deg, var(--lending-red) 0%, color-mix(in srgb, var(--lending-red) 55%, white) 50%, var(--lending-red) 100%);
    background-position: 0 50%;
    background-size: 200% 100%;
    transition: background-position 0.55s ease;
}

.provider-card.provider-card--spec:hover {
    border-color: #f0c7c4;
    background-color: #fffdfd;
    box-shadow: 0 8px 24px rgba(var(--lending-red-rgb), 0.08);
    transform: none;
}

.provider-card.provider-card--spec:hover::before {
    background-position: 100% 50%;
}

.provider-card-spec-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    min-height: 40px;
    margin-bottom: 0.55rem;
}

.provider-card-spec-logo {
    display: flex;
    flex: 0 1 96px;
    align-items: center;
    justify-content: flex-start;
    width: 96px;
    height: 36px;
    text-decoration: none;
}

.provider-card-spec-logo img {
    display: block;
    width: auto;
    height: auto;
    max-width: 96px;
    max-height: 34px;
    object-fit: contain;
}

.provider-card-spec-count {
    flex: 0 0 auto;
    padding: 0.3rem 0.5rem;
    border-radius: 999px;
    background: #f4f5f7;
    color: #596170;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.provider-card-spec-identity {
    min-width: 0;
    margin-bottom: 0.55rem;
}

.provider-card-name--spec {
    display: inline-block;
    margin: 0 0 0.25rem;
    color: #191c23 !important;
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    text-decoration: none;
    transition: color 0.18s ease;
}

.provider-card-name--spec:hover,
.provider-card.provider-card--spec:hover .provider-card-name--spec {
    color: #b92f29 !important;
    text-decoration: none !important;
}

.provider-card-spec-coverage {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    min-height: 0;
    color: #737b89;
    font-size: 0.72rem;
    line-height: 1.25;
}

.provider-card-spec-coverage svg {
    flex: 0 0 12px;
    width: 12px;
    height: 12px;
    margin-top: 0;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.provider-card-spec-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
    margin: 0 0 0.55rem;
}

.provider-card-spec-stat {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
    padding: 0.5rem 0.55rem;
    border: 1px solid #eceef2;
    border-radius: 10px;
    background: #f8f9fb;
}

.provider-card-spec-stat:only-child {
    grid-column: 1 / -1;
}

.provider-card-spec-stat-icon {
    display: inline-flex;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: #fff0ef;
    color: #ec453c;
    font-size: 0.78rem;
    font-weight: 800;
}

.provider-card-spec-stat-icon--speed {
    background: #ebf8f5;
    color: #16836f;
}

.provider-card-spec-stat-icon svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.provider-card-spec-stat-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.provider-card-spec-stat-label {
    margin-bottom: 0.1rem;
    color: #8a919e;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
}

.provider-card-spec-stat-value {
    overflow: hidden;
    color: #20242c;
    font-size: var(--ui-card-metric-size);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.provider-card-spec-services-label {
    margin-bottom: 0.35rem;
    color: #8a919e;
    font-size: 0.65rem;
    font-weight: 600;
}

.provider-card-badges--spec {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 0.3rem;
    min-height: 2.4rem;
    padding: 0;
}

.provider-card--spec .provider-package-badge {
    align-self: flex-start;
    padding: 0.22rem 0.45rem;
    border: 0;
    border-radius: 6px;
    background: #fff0ef;
    color: var(--lending-red-dark);
    font-size: 0.64rem;
    font-weight: 650;
    line-height: 1.15;
}

.provider-card-spec-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.7rem;
    border-top: 1px solid #eff0f3;
}

.provider-card--spec .provider-card-connect-btn,
.provider-card--spec .provider-card-tariffs-btn {
    width: auto !important;
    max-width: 100%;
    align-self: center;
    min-height: var(--ui-btn-height) !important;
    margin: 0;
    border-radius: var(--ui-btn-radius) !important;
    font-size: var(--ui-btn-font-size) !important;
    font-weight: 700 !important;
    padding: var(--ui-btn-pad-y) var(--ui-btn-pad-x) !important;
}

.provider-card--spec .provider-card-tariffs-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

@media (max-width: 1200px) {
    .providers-grid.providers-grid--city-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .providers-grid.providers-grid--city-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .providers-section .provider-card.provider-card--spec {
        padding: 0.9rem;
    }
}

@media (max-width: 560px) {
    .providers-grid.providers-grid--city-cards {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
    }

    .provider-card.provider-card--spec {
        border-radius: 14px;
    }

    .provider-card-badges--spec {
        min-height: 0;
    }
}


.provider-card-head {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.65rem;
    min-height: 48px;
}

.provider-card-logo-area {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 48px;
}

.provider-card-head .provider-card-logo-wrap {
    width: auto;
    max-width: 160px;
    margin-bottom: 0;
}

.provider-card-rating-badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.22rem 0.55rem 0.22rem 0.65rem;
    background: #eceff1;
    border-radius: 999px;
    font-weight: 800;
    font-size: 0.88rem;
    color: #37474f;
    line-height: 1;
}

.provider-card-rating-badge .bi-star-fill {
    color: #f5a623;
    font-size: 0.82rem;
    line-height: 1;
}

.provider-card-logo-wrap {
    width: 100%;
    height: 48px;
    margin-bottom: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.provider-card-logo {
    display: block;
    max-height: 44px;
    max-width: 160px;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: left center;
    margin: 0;
}

.provider-city-headline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
}

.provider-city-logo {
    display: block;
    max-height: 48px;
    max-width: 160px;
    width: auto;
    object-fit: contain;
    object-position: left center;
    flex-shrink: 0;
    margin: 0;
}

.provider-stability-logo-wrap {
    width: 100%;
    height: 40px;
    margin-bottom: 0.45rem;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.provider-stability-logo {
    display: block;
    max-height: 36px;
    max-width: 120px;
    object-fit: contain;
    object-position: left center;
    margin: 0;
}

.review-card-provider-logo {
    display: block;
    max-height: 28px;
    max-width: 88px;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: center center;
    flex-shrink: 0;
    margin: 0;
}

.provider-card-name {
    font-weight: 800;
    font-size: 1.15rem;
    color: #212121;
    margin-bottom: 0.25rem;
    width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.provider-card-tariffs {
    color: #666;
    font-size: 0.95rem;
    margin-bottom: 0.85rem;
    font-weight: 600;
    width: 100%;
}

.provider-card-addresses {
    color: #757575;
    font-size: 0.9rem;
    margin-top: -0.4rem;
    margin-bottom: 0.7rem;
    width: 100%;
}

.provider-card-badges {
    align-self: stretch;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-start;
}

.provider-package-badge {
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(var(--primary-rgb), 0.12);
    border: 1px solid rgba(var(--primary-rgb), 0.25);
    color: var(--primary);
    line-height: 1.2;
}

.city-top-tariffs-wrap {
    margin-top: 2.2rem;
}

.city-top-tariffs-title {
    margin: 0 0 0.75rem;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    color: #212121;
    line-height: 1.3;
}

.city-top-tariffs-title--second {
    margin-top: 1.1rem;
}

.city-top-tariffs-mode-toolbar {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
}

.city-top-tariffs-title--mode-toolbar {
    text-align: left;
    align-self: stretch;
    margin-bottom: 0.15rem;
}

.city-top-tariffs-segmented {
    position: relative;
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 3px;
    padding: 4px;
    border-radius: 14px;
    background: #e8e8e8;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

.city-top-tariffs-segment-btn {
    position: relative;
    z-index: 1;
    appearance: none;
    margin: 0;
    border: none;
    cursor: pointer;
    padding: 0.52rem 1.05rem;
    border-radius: 11px;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25;
    color: #5f6368;
    background: transparent;
    transition:
        background-color 0.18s ease,
        color 0.18s ease,
        box-shadow 0.18s ease;
}

.city-top-tariffs-segment-btn:hover {
    color: #303030;
}

.city-top-tariffs-segment-btn[aria-pressed="true"] {
    background: transparent;
    color: var(--primary);
    box-shadow: none;
}

.city-top-tariffs-wrap:not(.city-top-tariffs-wrap--feature) .city-top-tariffs-segment-indicator {
    background: #fff;
    box-shadow:
        0 1px 3px rgba(0, 0, 0, 0.08),
        0 2px 8px rgba(0, 0, 0, 0.04);
}

.city-top-tariffs-segment-btn:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

.city-top-tariffs-mode-hint {
    margin: 0;
    max-width: 36rem;
    font-size: 0.875rem;
    line-height: 1.35;
    color: #757575;
    text-align: left;
}

.city-top-tariffs-panel[hidden] {
    display: none !important;
}

@media (max-width: 480px) {
    .city-top-tariffs-segmented {
        width: 100%;
    }

    .city-top-tariffs-segment-btn {
        flex: 1 1 auto;
        min-width: calc(50% - 4px);
        padding-left: 0.65rem;
        padding-right: 0.65rem;
        font-size: 0.8125rem;
    }
}

.city-top-tariffs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.85rem;
    padding-top: 0.55rem;
}

.city-top-tariff-card {
    position: relative;
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 16px;
    padding: 0.9rem 1rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.city-top-tariff-card--has-promo {
    padding-top: 1.9rem;
}

.city-top-tariff-promo-badge {
    position: absolute;
    top: 0;
    left: 1.1rem;
    z-index: 2;
    max-width: calc(100% - 2.2rem);
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.36rem 0.72rem 0.36rem 0.58rem;
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, #ff3b3b 0%, #c62828 55%, #9f1d1d 100%);
    color: #fff;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.22) inset,
        0 8px 16px rgba(198, 40, 40, 0.24);
    font-size: 0.62rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.05em;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.city-top-tariff-promo-badge::before {
    content: '';
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
    flex-shrink: 0;
}

.city-top-tariff-card--collapsed {
    display: none !important;
}

.city-top-tariffs-more-wrap {
    margin-top: 0.7rem;
    margin-bottom: 0.15rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-start;
    align-items: center;
}

.city-top-tariffs-more-btn.btn-check-availability,
.city-top-tariffs-all-btn.btn-check-availability {
    width: auto !important;
    min-width: 8rem;
    padding-left: 1.4rem;
    padding-right: 1.4rem;
}

.city-top-tariffs-all-btn.btn-check-availability {
    text-decoration: none;
}

.city-top-tariff-head {
    min-height: 34px;
    margin-bottom: 0.25rem;
    display: flex;
    align-items: center;
}

.city-top-tariff-logo {
    display: block;
    max-height: 34px;
    width: auto;
    max-width: 140px;
    object-fit: contain;
}

.city-top-tariff-provider-link {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    color: inherit;
    text-decoration: none;
}

.city-top-tariff-provider-link:hover {
    color: inherit;
    text-decoration: none;
    opacity: 0.86;
}

.city-top-tariff-provider {
    color: #616161;
    font-size: 0.82rem;
    font-weight: 600;
    margin-bottom: 0.2rem;
}

.city-top-tariff-name {
    margin: 0 0 0.4rem;
    font-size: 1rem;
    font-weight: 600;
    color: #212121;
    line-height: 1.25;
}

.city-top-tariff-services {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin: 0.1rem 0 0.7rem;
}

.city-top-tariff-service-row {
    display: flex;
    align-items: center;
    gap: 0.42rem;
    font-size: 0.82rem;
    color: #424242;
    line-height: 1.25;
}

.city-top-tariff-service-row i {
    color: var(--lending-red);
    font-size: 1rem;
}

.city-top-tariff-service-main {
    color: var(--lending-red-dark);
    font-weight: 600;
}

.city-top-tariff-service-sub {
    color: #616161;
    font-weight: 500;
}

.city-top-tariff-prices {
    margin-top: auto;
    margin-bottom: 0.95rem;
}

.city-top-tariff-price-old {
    color: #757575;
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: line-through;
    margin-bottom: 0.1rem;
}

.city-top-tariff-price-current {
    color: #c62828;
    font-size: 1.28rem;
    font-weight: 900;
    line-height: 1.15;
}

.city-top-tariff-price-followup {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: #424242;
    line-height: 1.35;
}

.city-top-tariff-btn {
    width: calc(100% - 2.8rem);
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
    margin-top: 0;
}

.city-top-tariff-actions {
    display: flex;
    gap: 0.45rem;
    align-items: center;
}

.city-top-tariff-info-btn {
    position: relative;
    flex: 0 0 2.35rem;
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid var(--lending-red);
    border-radius: 999px;
    background: #fff;
    color: var(--lending-red);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 0.95rem;
    line-height: 1;
}

.city-top-tariff-info-btn:hover {
    background: #e8f5e9;
}

.city-top-tariff-info-btn::after {
    content: attr(data-tooltip);
    position: absolute;
    right: 0;
    left: auto;
    bottom: calc(100% + 0.5rem);
    transform: translateY(0.2rem);
    padding: 0.35rem 0.65rem;
    border-radius: 8px;
    background: #1f2328;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 5;
}

.city-top-tariff-info-btn::before {
    content: "";
    position: absolute;
    right: 0.85rem;
    left: auto;
    bottom: calc(100% + 0.2rem);
    transform: translateY(0.2rem);
    border: 6px solid transparent;
    border-top-color: #1f2328;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 5;
}

.city-top-tariff-info-btn:hover::after,
.city-top-tariff-info-btn:focus-visible::after {
    opacity: 1;
    transform: translateY(0);
}

.city-top-tariff-info-btn:hover::before,
.city-top-tariff-info-btn:focus-visible::before {
    opacity: 1;
    transform: translateY(0);
}

/* Отдельная витрина лучших тарифов на странице города */
.city-top-tariffs-wrap--feature {
    position: relative;
    overflow: hidden;
    margin-top: 2.5rem;
    padding: 1.75rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0, rgba(var(--lending-red-rgb), 0.22), transparent 34%),
        linear-gradient(145deg, #20232c 0%, #15171d 100%);
    box-shadow: 0 18px 46px rgba(18, 20, 26, 0.16);
}

.city-top-tariffs-wrap--feature .city-top-tariffs-mode-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 0.55rem 1.5rem;
    margin-bottom: 1.25rem;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-title {
    color: #fff !important;
    letter-spacing: -0.025em;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-title--mode-toolbar {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    margin: 0;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-segmented {
    position: relative;
    grid-column: 2;
    grid-row: 1 / span 2;
    flex-wrap: nowrap;
    gap: 0.25rem;
    padding: 0.3rem;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: none;
}

.city-top-tariffs-segment-indicator {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    border-radius: 999px;
    background: var(--lending-red);
    box-shadow: 0 5px 16px rgba(var(--lending-red-rgb), 0.3);
    opacity: 0;
    pointer-events: none;
    transition:
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.18s ease;
    will-change: transform, width;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-segment-btn {
    position: relative;
    z-index: 1;
    min-height: 40px;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    color: rgba(255, 255, 255, 0.68);
    white-space: nowrap;
    transition: color 0.22s ease;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-segment-btn:hover {
    color: #fff;
    background: transparent;
    box-shadow: none;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-segment-btn[aria-pressed="true"] {
    background: transparent;
    color: #fff;
    box-shadow: none;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-mode-hint {
    grid-column: 1;
    grid-row: 2;
    color: rgba(255, 255, 255, 0.58);
}

.city-top-tariffs-wrap--feature .city-top-tariffs-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
    padding-top: 0;
}

.city-top-tariffs-wrap--hero-cards .city-top-tariffs-grid.hero-top-tariffs-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
    align-items: stretch;
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

.city-top-tariffs-wrap--hero-cards .hero-top-tariffs-col.city-top-tariff-card {
    height: 100%;
    margin: 0;
}

.city-top-tariffs-wrap--hero-cards .hero-top-tariffs-col.city-top-tariff-card:not(:has(.hero-top-tariffs-col-label)) {
    padding-top: 1.1rem;
}

@supports (grid-template-rows: subgrid) {
    .city-top-tariffs-wrap--hero-cards .city-top-tariffs-grid.hero-top-tariffs-grid {
        row-gap: 0.85rem;
        column-gap: 0.85rem;
    }

    .city-top-tariffs-wrap--hero-cards .hero-top-tariffs-col.city-top-tariff-card {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 5;
        height: auto;
        gap: unset;
        align-content: start;
    }

    .city-top-tariffs-wrap--hero-cards .hero-top-tariffs-col.city-top-tariff-card::after {
        content: '';
        display: block;
        height: 0.5rem;
        grid-row: 5;
    }

    .city-top-tariffs-wrap--hero-cards .hero-top-tariffs-col.city-top-tariff-card .hero-top-tariffs-col-head {
        min-height: 0;
        height: 100%;
        align-self: stretch;
    }
}

@media (max-width: 1200px) {
    .city-top-tariffs-wrap--hero-cards .city-top-tariffs-grid.hero-top-tariffs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .city-top-tariffs-wrap--hero-cards .city-top-tariffs-grid.hero-top-tariffs-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.city-top-tariff-card--collapsed {
    display: none !important;
}

.city-top-tariffs-wrap--feature .city-top-tariff-promo-badge {
    position: static;
    align-self: flex-start;
    max-width: 100%;
    margin: 0 0 0.8rem;
    padding: 0.38rem 0.65rem;
    border-radius: 999px;
    background: #fff0ef;
    box-shadow: none;
    color: #bd352e;
    font-size: 0.65rem;
    transform: none;
}

.city-top-tariffs-wrap--feature .city-top-tariff-head {
    min-height: 46px;
    margin-bottom: 0.65rem;
}

.city-top-tariffs-wrap--feature .city-top-tariff-logo {
    width: auto;
    height: auto;
    max-width: 132px;
    max-height: 42px;
}

.city-top-tariffs-wrap--feature .city-top-tariff-name {
    min-height: 2.7em;
    margin-bottom: 0.85rem;
    color: #1c2028;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.35;
}

.city-top-tariffs-wrap--feature .city-top-tariff-services {
    gap: 0.5rem;
    min-height: 5.2rem;
    margin: 0 0 1rem;
    padding: 0.85rem;
    border: 1px solid #eceef2;
    border-radius: 14px;
    background: #f7f8fa;
}

.city-top-tariffs-wrap--feature .city-top-tariff-service-row {
    gap: 0.5rem;
    color: #3d4450;
    font-size: 0.82rem;
}

.city-top-tariffs-wrap--feature .city-top-tariff-service-row i {
    color: #15836f;
}

.city-top-tariffs-wrap--feature .city-top-tariff-service-main {
    color: #252a32;
    font-weight: 700;
}

.city-top-tariffs-wrap--feature .city-top-tariff-prices {
    margin-bottom: 1.1rem;
    padding-top: 0.85rem;
    border-top: 1px solid #eceef2;
}

.city-top-tariffs-wrap--feature .city-top-tariff-price-current {
    color: #1d222a;
    font-size: 1.45rem;
    letter-spacing: -0.025em;
}

.city-top-tariffs-wrap--feature .city-top-tariff-price-followup {
    color: #747b87;
    font-size: 0.75rem;
}

.city-top-tariffs-wrap--feature .city-top-tariff-actions {
    gap: 0.6rem;
}

.city-top-tariffs-wrap--feature .city-top-tariff-btn {
    min-height: 44px !important;
    border-radius: 12px;
}

.city-top-tariffs-wrap--feature .city-top-tariff-info-btn {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 12px;
    background: #fff0ef;
    color: #d83d35;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.city-top-tariffs-wrap--feature .city-top-tariff-info-btn:hover {
    background: var(--lending-red);
    color: #fff;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-more-wrap {
    margin-top: 1.1rem;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-more-btn.btn-check-availability,
.city-top-tariffs-wrap--feature .city-top-tariffs-all-btn.btn-check-availability {
    border-color: rgba(255, 255, 255, 0.55);
    background: transparent;
    color: #fff !important;
}

.city-top-tariffs-wrap--feature .city-top-tariffs-more-btn.btn-check-availability:hover,
.city-top-tariffs-wrap--feature .city-top-tariffs-all-btn.btn-check-availability:hover {
    border-color: #fff;
    background: #fff;
    color: #1c2028 !important;
}

@media (max-width: 1200px) {
    .city-top-tariffs-wrap--feature .city-top-tariffs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .city-top-tariffs-wrap--feature {
        padding: 1.2rem;
        border-radius: 22px;
    }

    .city-top-tariffs-wrap--feature .city-top-tariffs-mode-toolbar {
        display: flex;
        align-items: stretch;
    }

    .city-top-tariffs-wrap--feature .city-top-tariffs-segmented {
        width: 100%;
    }

    .city-top-tariffs-wrap--feature .city-top-tariffs-segment-btn {
        flex: 1 1 50%;
        min-width: 0;
        padding-inline: 0.55rem;
        white-space: normal;
    }

    .city-top-tariffs-wrap--feature .city-top-tariffs-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .city-top-tariffs-wrap--feature .city-top-tariff-services,
    .city-top-tariffs-wrap--feature .city-top-tariff-name {
        min-height: 0;
    }
}

.city-top-tariff-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2100;
    background: rgba(17, 20, 28, 0.52);
    backdrop-filter: blur(2px);
}

.city-top-tariff-modal {
    position: fixed;
    inset: 0;
    z-index: 2101;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.city-top-tariff-modal[hidden],
.city-top-tariff-modal-backdrop[hidden] {
    display: none !important;
}

.city-top-tariff-modal__sheet {
    position: relative;
    width: min(54rem, 100%);
    max-height: min(92vh, 52rem);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: #f6f7f9;
    border-radius: 22px;
    border: 1px solid #e4e7ec;
    box-shadow: 0 28px 80px rgba(18, 22, 32, 0.28);
}

.city-top-tariff-modal__scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.city-top-tariff-modal__close {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    z-index: 8;
    border: none;
    background: #fff;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    font-size: 1.35rem;
    line-height: 1;
    color: #3a3f49;
    cursor: pointer;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04), 0 6px 16px rgba(20, 24, 34, 0.1);
}

.city-top-tariff-modal__close:hover {
    background: #eceff3;
}

.city-top-tariff-modal__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

@media (min-width: 860px) {
    .city-top-tariff-modal__layout {
        grid-template-columns: minmax(0, 1.45fr) minmax(16.5rem, 0.85fr);
        align-items: start;
    }
}

.city-top-tariff-modal__main {
    padding: 1.25rem 1.15rem 1.35rem;
    background: #fff;
}

@media (min-width: 860px) {
    .city-top-tariff-modal__main {
        padding: 1.55rem 1.45rem 1.55rem 1.55rem;
        border-radius: 22px 0 0 22px;
    }
}

.city-top-tariff-modal__intro {
    padding-right: 2.5rem;
    margin-bottom: 1rem;
}

.city-top-tariff-modal__brand {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.45rem;
}

.city-top-tariff-modal__provider {
    color: #5b616c;
    font-size: 0.92rem;
    font-weight: 700;
}

.city-top-tariff-modal__title {
    margin: 0;
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    line-height: 1.18;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #171a20;
}

.city-top-tariff-modal__tech-chip {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d8dde6;
    background: #f3f5f8;
    border-radius: 999px;
    color: #4a5160;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.22rem 0.55rem;
}

.city-top-tariff-modal__promo-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.7rem 0 0;
}

.city-top-tariff-modal__promo-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.7rem 0.32rem 0.55rem;
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, #ff3b3b 0%, #c62828 55%, #9f1d1d 100%);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.15;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.22) inset,
        0 8px 18px rgba(198, 40, 40, 0.28);
}

.city-top-tariff-modal__promo-chip::before {
    content: '';
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.22);
    flex-shrink: 0;
}

.city-top-tariff-modal__promo-chip--soft {
    background: #f3f5f8;
    color: #3d4554;
    box-shadow: none;
    border: 1px solid #d9dee7;
}

.city-top-tariff-modal__promo-chip--soft::before {
    background: var(--lending-red, #c62828);
    box-shadow: none;
}

.city-top-tariff-modal__address {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid #d7e4f5;
    border-radius: 16px;
    background: linear-gradient(135deg, #f4f8ff 0%, #eef4fc 100%);
    color: #1d2a3d;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, transform 0.15s ease;
}

.city-top-tariff-modal__address:hover {
    border-color: #9fb8dc;
    transform: translateY(-1px);
}

.city-top-tariff-modal__address-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.city-top-tariff-modal__address-copy strong {
    font-size: 0.95rem;
    font-weight: 800;
}

.city-top-tariff-modal__address-copy span {
    color: #5a6a80;
    font-size: 0.84rem;
    line-height: 1.35;
}

.city-top-tariff-modal__address i {
    flex-shrink: 0;
    width: 2.2rem;
    height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    color: var(--lending-red, #c62828);
    font-size: 1rem;
    box-shadow: 0 1px 4px rgba(30, 50, 90, 0.08);
}

.city-top-tariff-modal__accordions {
    display: flex;
    flex-direction: column;
}

.city-top-tariff-modal__acc {
    border-top: 1px solid #eceff3;
}

.city-top-tariff-modal__acc:last-child {
    border-bottom: 1px solid #eceff3;
}

.city-top-tariff-modal__acc-head {
    width: 100%;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 0.1rem;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.city-top-tariff-modal__acc-icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--lending-red-rgb, 198, 40, 40), 0.1);
    color: var(--lending-red, #c62828);
    font-size: 1.05rem;
}

.city-top-tariff-modal__acc--extra .city-top-tariff-modal__acc-icon {
    background: #eef1f6;
    color: #4d5666;
}

.city-top-tariff-modal__acc-copy {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    min-width: 0;
}

.city-top-tariff-modal__acc-title {
    font-size: 1rem;
    font-weight: 800;
    color: #171a20;
    line-height: 1.25;
}

.city-top-tariff-modal__acc-sub {
    color: #6a7382;
    font-size: 0.86rem;
    line-height: 1.35;
}

.city-top-tariff-modal__acc-chevron {
    color: #8a93a3;
    font-size: 0.95rem;
    transition: transform 0.18s ease;
}

.city-top-tariff-modal__acc.is-open .city-top-tariff-modal__acc-chevron {
    transform: rotate(180deg);
}

.city-top-tariff-modal__acc-body {
    display: none;
    padding: 0 0.15rem 1rem 3.2rem;
}

.city-top-tariff-modal__acc.is-open .city-top-tariff-modal__acc-body {
    display: block;
}

.city-top-tariff-modal__specs {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
}

.city-top-tariff-modal__spec {
    display: grid;
    grid-template-columns: auto minmax(0.8rem, 1fr) auto;
    align-items: end;
    gap: 0.35rem;
    font-size: 0.9rem;
}

.city-top-tariff-modal__spec-k {
    color: #707987;
}

.city-top-tariff-modal__spec-dots {
    border-bottom: 1px dotted #cfd5de;
    transform: translateY(-0.25rem);
}

.city-top-tariff-modal__spec-v {
    color: #1c212b;
    font-weight: 700;
    text-align: right;
}

.city-top-tariff-modal__acc-text {
    margin: 0;
    color: #4f5868;
    font-size: 0.9rem;
    line-height: 1.5;
}

.city-top-tariff-modal__acc-text-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.city-top-tariff-modal__addons {
    margin-top: 0.85rem;
}

.city-top-tariff-modal__addons-toggle {
    width: 100%;
    margin: 0;
    padding: 0.55rem 0;
    border: 0;
    border-top: 1px solid #eceff3;
    background: transparent;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.city-top-tariff-modal__addons-title {
    margin: 0;
    flex: 1;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #858e9d;
}

.city-top-tariff-modal__addons-toggle-meta {
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: #edf1f7;
    color: #5b6575;
    font-size: 0.72rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.city-top-tariff-modal__addons-toggle-chevron {
    color: #98a0ad;
    font-size: 0.95rem;
    transition: transform 0.18s ease;
}

.city-top-tariff-modal__addons.is-open .city-top-tariff-modal__addons-toggle-chevron {
    transform: rotate(180deg);
}

.city-top-tariff-modal__addons-body {
    display: flex;
    flex-direction: column;
}

@media (max-width: 859px) {
    .city-top-tariff-modal__addons:not(.is-open) .city-top-tariff-modal__addons-body {
        display: none;
    }
}

@media (min-width: 860px) {
    .city-top-tariff-modal__addons-toggle {
        pointer-events: none;
        cursor: default;
        padding: 0.35rem 0 0.15rem;
        border-top: 0;
    }

    .city-top-tariff-modal__addons-toggle-meta,
    .city-top-tariff-modal__addons-toggle-chevron {
        display: none;
    }

    .city-top-tariff-modal__addons-body {
        display: flex !important;
    }
}

.city-top-tariff-modal__notes {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid #eceff3;
}

.city-top-tariff-modal__extras {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin: 0 0 0.55rem;
}

.city-top-tariff-modal__extra-line {
    font-size: 0.9rem;
    color: #424242;
    font-weight: 600;
}

.city-top-tariff-modal__highlights {
    margin: 0 0 0.55rem 1rem;
    padding: 0;
    color: #3f4654;
    font-size: 0.9rem;
}

.city-top-tariff-modal__description {
    margin: 0;
    color: #555c69;
    font-size: 0.9rem;
    line-height: 1.45;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.city-top-tariff-modal__description-p {
    margin: 0;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.city-top-tariff-modal__help {
    margin-top: 1.15rem;
    padding: 1rem 1.05rem;
    border: 1px solid #e6e9ef;
    border-radius: 18px;
    background: #fafbfd;
}

.city-top-tariff-modal__help-copy h4 {
    margin: 0 0 0.3rem;
    font-size: 1rem;
    font-weight: 800;
    color: #171a20;
}

.city-top-tariff-modal__help-copy p {
    margin: 0;
    color: #60697a;
    font-size: 0.88rem;
    line-height: 1.45;
}

.city-top-tariff-modal__help-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    margin-top: 0.85rem;
}

.city-top-tariff-modal__help-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.7rem;
    padding: 0.55rem 1rem;
    border-radius: 12px;
    border: 1.5px solid var(--lending-red, #c62828);
    background: #fff;
    color: var(--lending-red, #c62828);
    font-weight: 700;
    font-size: 0.92rem;
    cursor: pointer;
}

.city-top-tariff-modal__help-btn:hover {
    background: rgba(var(--lending-red-rgb, 198, 40, 40), 0.06);
}

.city-top-tariff-modal__help-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #2a3140;
    font-weight: 700;
    text-decoration: none;
    font-size: 0.95rem;
}

.city-top-tariff-modal__help-phone:hover {
    color: var(--lending-red, #c62828);
}

.city-top-tariff-modal__rail {
    padding: 1rem 1.1rem 1.25rem;
}

@media (min-width: 860px) {
    .city-top-tariff-modal__rail {
        position: sticky;
        top: 0;
        padding: 1.45rem 1.25rem 1.45rem 1rem;
    }
}

.city-top-tariff-modal__price-card {
    background: #fff;
    border: 1px solid #e5e8ee;
    border-radius: 18px;
    padding: 1.1rem 1.05rem 1.15rem;
    box-shadow: 0 10px 28px rgba(24, 30, 42, 0.06);
}

.city-top-tariff-modal__price-label {
    margin-bottom: 0.35rem;
    color: #667084;
    font-size: 0.84rem;
    font-weight: 700;
}

.city-top-tariff-modal__prices {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin-bottom: 0.35rem;
}

.city-top-tariff-modal__old {
    text-decoration: line-through;
    color: #8a93a1;
    font-weight: 700;
    font-size: 0.92rem;
}

.city-top-tariff-modal__current {
    color: #171a20;
    font-size: 1.85rem;
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.1;
}

.city-top-tariff-modal__connect-fee,
.city-top-tariff-modal__price-meta {
    color: #667084;
    font-size: 0.86rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.city-top-tariff-modal__price-meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-bottom: 0.75rem;
}

.city-top-tariff-modal__price-meta-line {
    line-height: 1.35;
}

.city-top-tariff-modal__connect {
    width: 100%;
    justify-content: center;
    min-height: 3.1rem;
    margin-top: 0.45rem;
    border-radius: 14px;
    font-weight: 800;
}

.city-top-tariff-modal__lead-overlay {
    display: none;
    padding: 1.6rem 1.35rem 1.5rem;
    background: #fff;
    min-height: 18rem;
}

.city-top-tariff-modal__lead-overlay:not([hidden]) {
    display: block;
}

.city-top-tariff-modal__lead-panel {
    width: min(26rem, 100%);
    margin: 0 auto;
}

.city-top-tariff-modal__lead-title {
    margin: 0 0 0.35rem;
    font-size: 1.2rem;
    font-weight: 800;
    color: #171a20;
}

.city-top-tariff-modal__lead-subtitle {
    margin: 0 0 0.85rem;
    color: #5c6574;
    font-size: 0.92rem;
    line-height: 1.45;
}

.city-top-tariff-modal__sheet--lead-active {
    width: min(28rem, 100%);
    background: #fff;
}

.city-top-tariff-modal__sheet--lead-active .city-top-tariff-modal__lead-title {
    display: none;
}

.city-top-tariff-modal__phone {
    width: 100%;
}

.city-top-tariff-modal__consent {
    margin: 0.55rem 0 0.7rem;
}

.city-top-tariff-modal__submit,
.city-top-tariff-modal__success-close {
    width: 100%;
    justify-content: center;
}

@media (max-width: 859px) {
    .city-top-tariff-modal__acc-body {
        padding-left: 0.15rem;
    }

    .city-top-tariff-modal__rail {
        padding-top: 0;
    }

    .city-top-tariff-modal__price-card {
        border-radius: 18px 18px 0 0;
    }
}

/* Provider stability */
.provider-stability-section {
    background: #f5f5f5;
    padding: 2rem 0;
}

.provider-stability-section--compact {
    padding: 1.35rem 0 1.6rem;
    background: transparent;
}

.provider-stability-panel {
    overflow: hidden;
    border: 1px solid #e4e7ec;
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0, rgba(var(--lending-red-rgb), 0.08), transparent 36%),
        linear-gradient(180deg, #ffffff 0%, #f8f9fb 100%);
    box-shadow: 0 12px 28px rgba(24, 28, 38, 0.05);
}

.provider-stability-header h2 {
    margin: 0 0 0.4rem;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    line-height: var(--ui-title-line);
    letter-spacing: var(--ui-title-letter);
    color: var(--ui-title-color);
}

.provider-stability-header p {
    margin: 0 0 1rem;
    color: #666;
    font-weight: 600;
}

.provider-stability-header--compact {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 1.15rem 1.25rem 0.95rem;
    border-bottom: 1px solid rgba(24, 28, 38, 0.06);
}

.provider-stability-header--compact h2 {
    margin: 0 0 0.3rem !important;
}

.provider-stability-header--compact p {
    margin: 0;
    max-width: 38rem;
    color: #6b7380;
    font-size: 0.9rem;
    font-weight: 550;
    line-height: 1.4;
}

.provider-stability-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    flex: 0 0 auto;
    min-width: 240px;
}

.provider-stability-summary-item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid #eceef2;
    border-radius: 12px;
    background: #fff;
    text-align: center;
}

.provider-stability-summary-item strong {
    color: #1d222a;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.1;
}

.provider-stability-summary-item span {
    color: #8a919e;
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1.2;
}

.provider-stability-list {
    display: flex;
    flex-direction: column;
}

.provider-stability-row {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) auto minmax(90px, 0.55fr) minmax(120px, 0.7fr) auto;
    align-items: center;
    gap: 0.65rem 0.85rem;
    padding: 0.7rem 1.15rem;
    border-bottom: 1px solid #eef0f4;
    color: inherit;
    text-decoration: none;
    transition: background-color 0.18s ease;
}

.provider-stability-row:last-child {
    border-bottom: 0;
}

.provider-stability-row:hover {
    background: #fff7f6;
    text-decoration: none;
    color: inherit;
}

.provider-stability-row-brand {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.provider-stability-row-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 72px;
    max-height: 26px;
    object-fit: contain;
    flex: 0 0 auto;
}

.provider-stability-row-name {
    overflow: hidden;
    color: #1a1e26;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.provider-stability-row-status {
    margin: 0 !important;
    justify-self: start;
    white-space: nowrap;
}

.provider-stability-row-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.7rem;
    color: #68707b;
    font-size: 0.78rem;
    font-weight: 600;
}

.provider-stability-row-metrics em {
    color: #1f2328;
    font-style: normal;
    font-weight: 800;
}

.provider-stability-row-spark {
    width: 100%;
    max-width: 140px;
    height: 28px;
    margin: 0;
    justify-self: stretch;
}

.provider-stability-row-go {
    color: var(--lending-red-dark);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1;
}

.provider-stability-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.8rem 1.15rem 0.95rem;
    border-top: 1px solid rgba(24, 28, 38, 0.06);
    background: rgba(255, 255, 255, 0.72);
}

.provider-stability-footer-note {
    color: #8a919e;
    font-size: 0.78rem;
    font-weight: 600;
}

.provider-stability-footer-link {
    color: var(--lending-red-dark);
    font-size: 0.88rem;
    font-weight: 800;
    text-decoration: none;
}

.provider-stability-footer-link:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.provider-stability-footer-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    margin: 0;
    margin-left: auto;
    padding: 0.35rem 0.9rem;
    border: 1px solid rgba(var(--lending-red-rgb), 0.35);
    border-radius: 999px;
    background: rgba(var(--lending-red-rgb), 0.06);
    color: var(--lending-red-dark);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.provider-stability-footer-btn:hover {
    background: rgba(var(--lending-red-rgb), 0.12);
    border-color: rgba(var(--lending-red-rgb), 0.55);
    color: #a82f2a;
    text-decoration: none;
}

.provider-stability-footer-btn:active {
    transform: translateY(1px);
}

.provider-stability-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.provider-stability-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 20px;
    padding: 1.15rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.provider-stability-name {
    font-weight: 900;
    color: #212121;
    margin-bottom: 0.5rem;
    width: 100%;
}

.provider-stability-actions {
    margin-top: auto;
    width: 100%;
}

@media (max-width: 900px) {
    .provider-stability-header--compact {
        flex-direction: column;
    }

    .provider-stability-summary {
        width: 100%;
        min-width: 0;
    }

    .provider-stability-row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "brand go"
            "status status"
            "spark metrics";
        gap: 0.45rem 0.7rem;
        padding: 0.8rem 1rem;
    }

    .provider-stability-row-brand { grid-area: brand; }
    .provider-stability-row-status { grid-area: status; }
    .provider-stability-row-metrics { grid-area: metrics; }
    .provider-stability-row-spark { grid-area: spark; max-width: none; }
    .provider-stability-row-go { grid-area: go; }
}

.provider-stability-section--city-provider .provider-city-outage-embed {
    margin-top: 0;
}

.provider-city-outage-embed-title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
}

.provider-city-outage-embed-meta {
    margin: 0.35rem 0 0;
    color: #444;
    font-weight: 600;
}

.provider-city-outage-embed-hint {
    margin: 0 0 0.75rem;
    color: #374151;
    font-size: 0.98rem;
    font-weight: 650;
    line-height: 1.4;
}

.provider-city-outage-report-btn {
    width: auto;
    max-width: 100%;
}

.provider-city-outage-modal-lead {
    margin: 0 0 0.75rem;
    color: #374151;
    font-size: 0.98rem;
    font-weight: 650;
    line-height: 1.45;
}

.provider-city-outage-issue-row-in-modal {
    margin-top: 0;
}

.provider-city-outage-embed .downdetector-provider-head.section-card {
    /* Склеиваем шапку (логотип/статус) с формой “Сообщите о проблеме” */
    margin-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.provider-city-outage-embed .downdetector-report-form {
    /* Сверху не дублируем рамку и убираем верхние радиусы */
    border-top: none;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.provider-city-outage-embed-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 1.1rem;
    align-items: stretch;
}

.provider-city-outage-embed-grid-left,
.provider-city-outage-embed-grid-right {
    display: flex;
    flex-direction: column;
    min-height: 0;
    align-self: stretch;
}

.provider-city-outage-embed-grid-left > .downdetector-chart-card,
.provider-city-outage-embed-grid-right > .provider-city-outage-recent {
    flex: 1 1 auto;
    width: 100%;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    display: flex;
    flex-direction: column;
    align-self: stretch;
    height: 100%;
    box-sizing: border-box;
}

.provider-city-outage-embed-grid-right .provider-opinions-list {
    grid-template-columns: 1fr;
    gap: 0.85rem;
    flex: 1 1 auto;
}

.provider-city-outage-embed .downdetector-chart-card canvas#providerCityOutageChart {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    flex: 1 1 auto;
    min-height: 180px;
}

@media (max-width: 900px) {
    .provider-city-outage-embed-grid {
        grid-template-columns: 1fr;
        gap: 0.85rem;
    }

    .provider-city-outage-embed-grid-left > .downdetector-chart-card,
    .provider-city-outage-embed-grid-right > .provider-city-outage-recent {
        height: auto;
        flex: 0 0 auto;
    }

    .provider-city-outage-embed-grid-right .provider-opinions-list {
        grid-template-columns: 1fr;
    }

    .provider-city-outage-embed-grid-right .provider-city-outage-recent {
        margin-top: 0.85rem !important;
    }
}

.provider-city-outage-embed-footer {
    margin-top: 1.25rem;
}

.provider-city-outage-recent {
    margin-top: 1.5rem;
}

.provider-stability-metrics {
    align-self: stretch;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.provider-stability-metric {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: #444;
    font-weight: 700;
}

.provider-stability-metric span:last-child {
    color: var(--primary);
}


/* Opinion blocks */
.provider-opinions-section {
    background: #f5f5f5;
    padding: 2rem 0;
}

.provider-opinions-section--page {
    padding-top: 1.25rem;
}

.hero-section--provider-opinion {
    padding-top: 2rem;
    padding-bottom: 0.75rem;
}

.hero-section--provider-opinion .hero-title {
    margin-bottom: 0.45rem;
}

.hero-section--provider-opinion .hero-subtitle {
    margin-bottom: 0;
}

.hero-section--provider-opinion + .providers-section {
    padding-top: 0.75rem !important;
}

.hero-badge--opinion {
    background: rgba(33, 33, 33, 0.06);
    color: #333;
}

.provider-opinion-hub {
    margin: 0 0 0.25rem;
}

.provider-opinion-hub-card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 1.25rem 1.35rem 1.15rem;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.04);
}

.provider-opinion-hub-main {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem 1.5rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.provider-opinion-hub-identity {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 16rem;
}

.provider-opinion-hub-logo-wrap {
    flex: 0 0 auto;
    width: 140px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fafafa;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    padding: 0.35rem 0.5rem;
}

.provider-opinion-hub-logo {
    max-width: 100%;
    max-height: 44px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.provider-opinion-hub-eyebrow {
    margin: 0 0 0.2rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #888;
}

.provider-opinion-hub-name {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 900;
    color: #212121;
    line-height: 1.2;
}

.provider-opinion-hub-meta {
    margin: 0.35rem 0 0;
    color: #666;
    font-weight: 600;
    font-size: 0.95rem;
}

.provider-opinion-hub-score {
    flex: 0 0 auto;
    text-align: right;
    min-width: 8.5rem;
}

.provider-opinion-hub-score-value {
    font-size: 2rem;
    line-height: 1;
    color: #212121;
}

.provider-opinion-hub-score-value strong {
    font-weight: 900;
}

.provider-opinion-hub-score-value span {
    font-size: 1rem;
    font-weight: 700;
    color: #888;
    margin-left: 0.15rem;
}

.provider-opinion-hub-score-value--empty {
    color: #bbb;
}

.provider-opinion-hub-stars {
    margin-top: 0.3rem;
    color: #f5a623;
    font-size: 0.95rem;
    letter-spacing: 0.05em;
}

.provider-opinion-hub-score-note {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    color: #666;
    font-weight: 600;
}

.provider-opinion-hub-about {
    margin: 1rem 0 0;
    padding-top: 0.15rem;
}

.provider-opinion-hub-about-clip {
    overflow: hidden;
    max-height: none;
    transition: max-height 0.38s ease;
    will-change: max-height;
}

.provider-opinion-hub-about-clip.is-collapsed {
    position: relative;
}

.provider-opinion-hub-about-clip.is-collapsed::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1.4em;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 85%);
    opacity: 1;
    transition: opacity 0.28s ease;
}

.provider-opinion-hub-about-clip:not(.is-collapsed)::after {
    opacity: 0;
}

.provider-opinion-hub-about-text {
    margin: 0;
    color: #444;
    line-height: 1.55;
    font-weight: 500;
    font-size: 0.98rem;
}

.provider-opinion-hub-about-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    margin-top: 0.55rem;
    padding: 0.28rem 0.75rem;
    border: 1px solid rgba(var(--lending-red-rgb), 0.35);
    border-radius: 999px;
    background: rgba(var(--lending-red-rgb), 0.06);
    color: var(--primary);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.provider-opinion-hub-about-toggle:hover {
    background: rgba(var(--lending-red-rgb), 0.12);
    border-color: rgba(var(--lending-red-rgb), 0.55);
    color: var(--primary-dark, var(--lending-red-dark));
    text-decoration: none;
}

.provider-opinion-hub-about-toggle:active {
    transform: translateY(1px);
}

.provider-opinion-hub-about-toggle[aria-expanded="true"] {
    background: #fff;
    border-color: rgba(0, 0, 0, 0.12);
    color: #555;
}

.provider-opinion-hub-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 1.1rem 0 1.15rem;
}

.provider-opinion-hub-stat {
    background: #f8f8f8;
    border-radius: 12px;
    padding: 0.75rem 0.85rem;
    min-width: 0;
}

.provider-opinion-hub-stat-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: #888;
    margin-bottom: 0.3rem;
}

.provider-opinion-hub-stat-value {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
    color: #212121;
    line-height: 1.25;
}

.provider-opinion-hub-stat-value--status-stable {
    color: #1b7a3d;
}

.provider-opinion-hub-stat-value--status-issues,
.provider-opinion-hub-stat-value--status-outage {
    color: #c0392b;
}

.provider-opinion-hub-stat-note {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: #888;
    font-weight: 600;
}

.provider-opinion-hub-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
}

.provider-opinion-hub-contacts {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.85rem;
    min-width: 0;
}

.provider-opinion-hub-support-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: #888;
    width: 100%;
}

.provider-opinion-hub-phone {
    font-size: 1.15rem;
    font-weight: 800;
    color: #212121;
    text-decoration: none;
}

a.provider-opinion-hub-phone:hover {
    color: var(--primary);
}

.provider-opinion-hub-web {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--primary);
}

.provider-opinion-hub-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.55rem;
    flex: 0 1 auto;
    min-width: 0;
}

.provider-opinion-hub-actions .btn-review-leave,
.provider-opinion-hub-actions .btn-check-availability,
.provider-opinion-hub-actions .btn-connect-card {
    width: auto !important;
    flex: 0 0 auto;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    white-space: nowrap;
    box-sizing: border-box;
}

.provider-opinion-other-intro {
    margin: -0.35rem 0 0.85rem;
    color: #666;
    font-weight: 600;
}

@media (max-width: 900px) {
    .provider-opinion-hub-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .provider-opinion-hub-score {
        text-align: left;
    }
}

@media (max-width: 560px) {
    .provider-opinion-hub-card {
        padding: 1rem;
    }

    .provider-opinion-hub-identity {
        flex-direction: column;
        align-items: flex-start;
    }

    .provider-opinion-hub-stats {
        grid-template-columns: 1fr 1fr;
    }

    .provider-opinion-hub-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .provider-opinion-hub-actions .btn-review-leave,
    .provider-opinion-hub-actions .btn-check-availability,
    .provider-opinion-hub-actions .btn-connect-card {
        flex: 1 1 auto;
        text-align: center;
        justify-content: center;
        white-space: normal;
    }
}

.provider-opinions-header h2 {
    margin: 0 0 .5rem;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    line-height: var(--ui-title-line);
    letter-spacing: var(--ui-title-letter);
    color: var(--ui-title-color);
}

.provider-opinions-header p {
    margin: 0 0 1rem;
    color: #666;
    font-weight: 600;
}

.provider-opinions-header--with-action {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    flex-wrap: wrap;
}

.provider-opinions-header--with-action h2 {
    flex: 1;
    min-width: 12rem;
    margin-bottom: 0;
}

.provider-opinions-section--page .provider-opinions-header--with-action {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 0.35rem;
}

.provider-opinions-section--page .provider-opinions-header--with-action > div {
    width: 100%;
}

.provider-opinions-section--page .provider-opinions-header--with-action > div > p {
    margin-bottom: 0.75rem;
}

.provider-opinions-section--page .provider-opinions-header--with-action .btn-review-leave {
    width: auto !important;
    flex: 0 0 auto;
    align-self: flex-start;
    margin: 0 0 1.35rem;
    padding: 0.55rem 1.15rem !important;
    font-size: 0.85rem !important;
    min-height: 0 !important;
}

.opinion-review-write-bar {
    margin: 1rem 0 0;
}

.opinion-review-write-bar .btn-check-availability {
    display: inline-flex;
}

.modal-content--review {
    max-width: 32rem;
    max-height: 90vh;
    overflow-y: auto;
}

.review-submit-form .review-submit-field {
    margin-bottom: 0.75rem;
}

.review-submit-field--compact {
    margin-bottom: 0.35rem;
}

.review-criteria-hint {
    margin: 0 0 0.4rem;
    font-size: 0.85rem;
    color: #555;
    font-weight: 600;
}

.review-criteria-star-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.5rem;
    flex-wrap: wrap;
}

.review-criteria-label {
    flex: 1 1 10rem;
    min-width: 0;
    font-weight: 600;
    font-size: 0.88rem;
    line-height: 1.25;
    color: #333;
}

.review-star-rating {
    flex-shrink: 0;
    margin-left: auto;
}

.review-star-buttons {
    display: inline-flex;
    align-items: center;
    gap: 0.08rem;
}

.review-star-btn {
    padding: 0.1rem;
    margin: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    line-height: 1;
    border-radius: 4px;
    transition: transform 0.12s ease, background 0.12s ease;
}

.review-star-btn:hover {
    background: rgba(0, 0, 0, 0.04);
}

.review-star-btn:focus-visible {
    outline: 2px solid var(--lending-red);
    outline-offset: 1px;
}

.review-star-icon {
    font-size: 1.35rem;
    color: #c5a000;
    display: block;
}

.review-star-btn .bi-star {
    color: #c5c5c5;
}

.review-star-btn .bi-star-fill {
    color: #e6b800;
}

.review-submit-field label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.35rem;
    font-size: 0.9rem;
    color: #333;
}

.review-submit-select,
.review-submit-textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 0.5rem 0.65rem;
    font-size: 0.95rem;
}

.review-submit-textarea {
    resize: vertical;
    min-height: 4rem;
}

.review-submit-error {
    background: #ffebee;
    color: #b71c1c;
    padding: 0.6rem 0.75rem;
    border-radius: 10px;
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
}

.review-vk-auth-gate {
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border-radius: 14px;
    background: #f6f7f9;
}

.review-vk-auth-hint {
    margin: 0 0 0.75rem;
    color: #444;
    font-size: 0.95rem;
    font-weight: 600;
}

.review-vk-onetap {
    min-height: 44px;
}

.review-vk-user-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0.65rem 0.85rem;
    border-radius: 12px;
    background: #f0f7ff;
}

.review-vk-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}

.review-vk-user-meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.review-vk-user-label {
    font-size: 0.75rem;
    color: #667;
}

.review-vk-user-name {
    font-size: 0.95rem;
    color: #1a1a1a;
}

.review-vk-logout {
    border: none;
    background: transparent;
    color: var(--lending-red);
    font-weight: 600;
    cursor: pointer;
    padding: 0.25rem 0.35rem;
    flex: 0 0 auto;
}

.review-vk-logout:hover {
    color: var(--lending-red-dark);
}

.review-optional {
    font-weight: 400;
    color: #666;
    font-size: 0.85rem;
}

.review-submit-submit {
    margin-top: 0.35rem;
    width: 100%;
}

.review-submit-success {
    text-align: center;
    padding: 0.5rem 0;
}

.review-submit-success-text {
    margin: 0 0 1rem;
    font-size: 1rem;
    line-height: 1.45;
}

.city-opinions-preview-header {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0.75rem 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.15rem;
}

.city-opinions-preview-header h2 {
    margin-bottom: 0;
    text-align: center;
    width: 100%;
}

.city-opinions-preview-actions {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.city-opinions-preview-actions-below {
    margin-top: 0.9rem;
}

.city-opinions-preview-actions-below + .provider-opinions-list {
    margin-top: 0.9rem;
}

.city-opinion-more-wrap {
    margin-top: 0.8rem;
    display: flex;
    justify-content: flex-start;
}

.city-opinion-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: 100%;
    min-height: var(--ui-btn-height, 42px);
    border: none;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
    padding: var(--ui-btn-pad-y, 0.6rem) var(--ui-btn-pad-x, 1.25rem);
    background: var(--lending-red);
    color: #fff;
    font-size: var(--ui-btn-font-size, 0.9rem);
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.3);
    transition: background 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
}

.city-opinion-more-btn:hover {
    background: var(--lending-red-dark);
    box-shadow: 0 3px 10px rgba(var(--lending-red-rgb), 0.35);
}

.city-opinion-more-btn:disabled {
    opacity: 0.7;
    cursor: wait;
}

.provider-opinions-more-wrap {
    margin-top: 1.1rem;
    margin-bottom: 0.35rem;
}

.provider-opinions-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-height: 0;
    margin: 0;
    padding: 0.35rem 0.9rem;
    border: 1px solid rgba(var(--lending-red-rgb), 0.35);
    border-radius: 999px;
    background: rgba(var(--lending-red-rgb), 0.06);
    color: var(--lending-red-dark);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.15s ease, transform 0.15s ease;
}

.provider-opinions-more-btn:hover {
    background: rgba(var(--lending-red-rgb), 0.12);
    border-color: rgba(var(--lending-red-rgb), 0.55);
    color: #a82f2a;
    text-decoration: none;
}

.provider-opinions-more-btn:active {
    transform: translateY(1px);
}

.provider-opinions-more-btn:disabled {
    opacity: 0.65;
    cursor: wait;
}

.downdetector-recent {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1rem 1.15rem 1.15rem;
    margin-bottom: 1rem;
    overflow: hidden;
}

.downdetector-recent h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 800;
}

.downdetector-recent-lead {
    margin: 0 0 0.85rem;
    color: #5f6670;
    font-size: 0.9rem;
    line-height: 1.4;
}

.downdetector-recent-empty {
    margin: 0;
    color: #68707b;
}

.downdetector-reports-more-wrap {
    justify-content: flex-start;
    margin-top: 1rem;
    padding-top: 0.15rem;
}

.downdetector-reports-more-btn.city-opinion-more-btn {
    min-width: 0;
}

.downdetector-reports-more-btn.city-opinion-more-btn:hover {
    background: var(--lending-red-dark);
}

.btn-review-leave {
    width: 100%;
    padding: 0.75rem 1.25rem;
    background: var(--lending-red);
    color: white;
    border: none;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
    cursor: pointer;
    font-weight: 600;
    font-size: 0.875rem;
    transition: all 0.3s;
    box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.btn-review-leave:hover {
    background: var(--lending-red-dark);
    color: white;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(var(--lending-red-rgb), 0.4);
    transform: translateY(-1px);
}

.provider-opinions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
}

.provider-opinion-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 20px;
    padding: 1.1rem 1.25rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

.provider-opinion-card-title {
    font-weight: 900;
    font-size: 1.15rem;
    color: #212121;
    margin-bottom: .35rem;
}

.provider-opinion-card-rating {
    color: #333;
    font-weight: 800;
    margin-bottom: .65rem;
}

.provider-opinion-card-excerpt {
    color: #666;
    font-weight: 600;
    font-size: .95rem;
    margin-bottom: 1rem;
}

.provider-opinions-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem 1.35rem;
    align-items: stretch;
}

@media (max-width: 991.98px) {
    .provider-opinions-list {
        grid-template-columns: 1fr;
    }
}

.city-opinions-preview-section .provider-opinions-list {
    margin-top: 0.25rem;
}

.city-opinions-preview-actions-below {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    flex-wrap: wrap;
}

.city-opinions-preview-actions-below .btn-check-availability,
.city-opinions-preview-actions-below .btn-review-leave,
.city-opinions-preview-actions-below .provider-opinions-more-btn {
    width: auto !important;
    flex: 0 0 auto;
    padding: 0.55rem 1rem !important;
    font-size: 0.85rem !important;
    min-height: 0 !important;
}

.city-opinions-preview-section .city-opinion-preview-card--hidden {
    display: none !important;
}

.provider-opinion-review {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 20px;
    padding: 1.1rem 1.25rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

.provider-opinion-review-top {
    margin-bottom: 0;
    color: #212121;
    font-weight: 800;
}

.review-card-header {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: 100%;
}

.review-card-header-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px;
    gap: 0.65rem 1rem;
    align-items: center;
}

.review-card-header-top--solo {
    grid-template-columns: minmax(0, 1fr);
}

.review-card-header-title {
    min-width: 0;
    line-height: 1.35;
}

.review-author {
    display: inline;
    font-size: 1rem;
    line-height: 1.35;
}

.review-card-header-title .review-about-provider {
    display: inline;
    margin-left: 0.45rem;
}

.review-card-header-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    height: 32px;
    flex-shrink: 0;
    justify-self: end;
}

.review-card-header-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem 0.85rem;
    align-items: center;
    padding-top: 0.55rem;
    border-top: 1px solid #f0f0f0;
}

.review-card-header-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.6rem;
    min-width: 0;
}

.provider-opinion-review-text {
    color: #666;
    font-weight: 400;
    line-height: 1.4;
}

.provider-opinions-back {
    display: inline-flex;
}

/* Детальная карточка отзыва: критерии и звёзды */
.review-card-detailed {
    margin-bottom: 0.25rem;
}

.provider-opinions-list .review-card-detailed {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin-bottom: 0;
    container-type: inline-size;
    container-name: review-card;
}

.provider-opinions-list .review-card-body {
    flex: 1 1 auto;
}

.review-card-provider-link {
    font-weight: 800;
}

.review-about-provider {
    font-weight: 400;
    color: #424242;
    white-space: normal;
    font-size: 0.95rem;
    line-height: 1.35;
}

.review-card-header-title .provider-opinion-provider-link {
    margin-left: 0;
    color: var(--primary);
    text-decoration: none;
}

.review-card-header-title .provider-opinion-provider-link:hover {
    text-decoration: underline;
}

.review-date {
    color: #888;
    font-weight: 400;
    font-size: 0.85rem;
    line-height: 1.2;
    white-space: nowrap;
}

.review-overall-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.3rem 0.45rem;
    margin-left: 0;
    flex: 0 0 auto;
    justify-self: end;
    white-space: nowrap;
}

.review-overall-label {
    font-weight: 500;
    color: #333;
    font-size: 0.9rem;
}

.review-overall-value {
    font-size: 1.1rem;
    color: #212121;
}

.review-overall-max {
    font-weight: 500;
    color: #888;
    font-size: 0.95rem;
}

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

.review-stars-overall .review-star {
    font-size: 1.15rem;
}

.review-criterion-stars .review-star {
    font-size: 0.95rem;
}

.review-star.bi-star-fill {
    color: #f5a623;
}

.review-star.bi-star {
    color: #cfd8dc;
}

/* Легенда критериев над списком отзывов */
.opinion-criteria-legend {
    margin: 0 0 1.75rem;
    padding: 1.1rem 1.25rem 1.15rem;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 16px;
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.04);
}

.opinion-criteria-legend-title {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
    font-weight: 900;
    color: #212121;
}

.opinion-criteria-legend-lead {
    margin: 0 0 0.85rem;
    font-size: 0.92rem;
    color: #555;
    font-weight: 400;
    line-height: 1.45;
}

.opinion-criteria-legend-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.opinion-criteria-legend-list li {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #f0f0f0;
}

.opinion-criteria-legend-list li:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.opinion-criteria-legend-term {
    font-weight: 500;
    font-size: 0.95rem;
    color: #212121;
}

.opinion-criteria-legend-desc {
    font-size: 0.86rem;
    color: #666;
    font-weight: 400;
    line-height: 1.4;
}

/* Карточка: слева текст отзыва, справа критерии; звёзды в одной вертикали */
.review-card-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.1rem 1.75rem;
    align-items: stretch;
    margin-top: 0.85rem;
    padding-top: 1rem;
    border-top: 1px solid #eee;
}

.review-card-body--text-only {
    grid-template-columns: minmax(0, 1fr);
}

.review-criteria-col {
    display: grid;
    grid-template-columns: max-content min-content;
    column-gap: 0.55rem;
    row-gap: 0.5rem;
    align-items: center;
    align-content: start;
}

.review-criterion-row {
    display: contents;
}

.review-criterion-row .review-criterion-name {
    font-weight: 500;
    color: #212121;
    font-size: 0.95rem;
    line-height: 1.3;
}

.review-criterion-row .review-criterion-stars {
    display: inline-flex;
    gap: 0.06rem;
    justify-self: start;
}

.review-actual-cost-paragraph {
    margin: 0.65rem 0 0;
    font-size: 0.92rem;
    line-height: 1.5;
}

.review-actual-cost-keyword {
    font-weight: 600;
    color: #1565c0;
}

.review-actual-cost-value {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: #212121;
}

.review-pros-cons-col {
    background: #fafafa;
    border: 1px solid #ececec;
    border-radius: 14px;
    padding: 0.85rem 1rem;
    min-height: 100%;
}

.review-pros-cons {
    color: #444;
    font-weight: 400;
    line-height: 1.55;
    font-size: 0.92rem;
}

.review-main-text {
    color: #333;
    font-weight: 400;
    line-height: 1.55;
    font-size: 0.95rem;
    margin: 0 0 0.85rem;
}

.review-pros-cons-blocks {
    margin: 0;
    padding-top: 0.65rem;
    border-top: 1px dashed #e0e0e0;
}

.review-pros-paragraph,
.review-cons-paragraph {
    margin: 0 0 0.5rem;
    font-size: 0.92rem;
    font-weight: 400;
    line-height: 1.5;
    color: #444;
}

.review-cons-paragraph {
    margin-bottom: 0;
}

.review-pros-body,
.review-cons-body {
    font-weight: 400;
    color: #444;
}

.review-pros-cons-formatted {
    white-space: normal;
}

.review-pros-keyword {
    color: var(--primary);
    font-weight: 600;
}

.review-cons-keyword {
    color: #c62828;
    font-weight: 600;
}

@media (max-width: 767px) {
    .review-card-body {
        grid-template-columns: 1fr;
    }

    .review-card-header-bottom {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .review-overall-row {
        justify-self: start;
        flex-wrap: wrap;
        white-space: normal;
    }
}

@container review-card (max-width: 560px) {
    .provider-opinions-list .review-card-body {
        grid-template-columns: 1fr;
        gap: 0.85rem;
    }

    .provider-opinions-list .review-card-header-top {
        grid-template-columns: minmax(0, 1fr) 72px;
        gap: 0.5rem 0.75rem;
    }

    .provider-opinions-list .review-card-header-logo {
        width: 72px;
        height: 28px;
    }

    .provider-opinions-list .review-card-header-bottom {
        grid-template-columns: 1fr;
        gap: 0.45rem;
    }

    .provider-opinions-list .review-overall-row {
        justify-self: start;
        flex-wrap: wrap;
        white-space: normal;
    }
}

.provider-opinions-list--preview .review-main-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}

.provider-opinions-list--preview .review-pros-cons-blocks {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}

.opinion-subsection-title {
    margin: 0 0 0.75rem;
    font-size: var(--ui-h3-size);
    font-weight: var(--ui-h3-weight);
    line-height: var(--ui-h3-line);
    letter-spacing: var(--ui-h3-letter);
    color: var(--ui-h3-color);
}

.opinion-subsection-title-spaced {
    margin-top: 2rem;
}

.opinion-empty-notice {
    margin: 0 0 1rem;
    padding: 1rem 1.25rem;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 16px;
    font-weight: 700;
    color: #424242;
}

.opinion-muted {
    margin: 0;
    color: #888;
    font-weight: 600;
}

.provider-opinion-review-comments {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px dashed #e0e0e0;
    font-size: 0.92rem;
    color: #555;
    font-weight: 600;
    line-height: 1.45;
}

.provider-opinion-city-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    background: rgba(var(--lending-red-rgb), 0.12);
    color: var(--primary);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.provider-opinion-provider-link {
    font-weight: 800;
}


.provider-card-link {
    text-decoration: none;
    color: inherit;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 0;
    width: 100%;
}

.provider-card-link:hover {
    text-decoration: none;
}

/* Переработанный квиз подбора тарифа */
.tariff-quiz {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.tariff-quiz-section {
    padding-top: 0.25rem;
}

.tariff-quiz-shell {
    overflow: hidden;
    border: 1px solid #e6e9ee;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(24, 28, 38, 0.06);
}

.tariff-quiz-head {
    display: block;
    padding: 1.1rem 1.25rem 0.65rem;
    border-bottom: 0;
}

.tariff-quiz-heading.section-title,
.tariff-quiz-head .section-title {
    margin: 0 !important;
    max-width: 36rem;
}

.tariff-quiz-lead {
    margin: 0.45rem 0 0;
    max-width: 36rem;
    font-size: 0.95rem;
    line-height: 1.4;
    color: #6b7280;
    font-weight: 500;
}

.tariff-quiz-eyebrow,
.tariff-quiz-benefits,
.tariff-quiz-intro,
.tariff-quiz-copy,
.tariff-quiz-steps-meta,
.tariff-quiz-step-hint,
.tariff-quiz-note {
    display: none !important;
}

.tariff-quiz-layout {
    display: block;
}

.tariff-quiz-main {
    min-width: 0;
    height: auto;
    padding: 0.55rem 1.25rem 1.1rem;
    background: transparent;
    border: 0;
}

.tariff-quiz-progress-wrap {
    margin-bottom: 0.85rem;
}

.tariff-quiz-progress {
    height: 4px;
    border-radius: 999px;
    background: #eceef2;
    margin-bottom: 0;
    overflow: hidden;
}

.tariff-quiz-progress-bar {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--lending-red), #ff7a55);
    transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.tariff-quiz-step { display: none; }
.tariff-quiz-step.is-active { display: block; }

.tariff-quiz-title {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #171a21;
    line-height: 1.3;
}

.tariff-quiz-main .tariff-quiz-title {
    color: #171a21;
}

.tariff-quiz-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

.tariff-quiz-options--tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tariff-quiz-option {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    background: #fff;
    color: #1d222a;
    cursor: pointer;
    font-weight: 600;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.tariff-quiz-option:hover {
    border-color: #f1b8b4;
    box-shadow: 0 4px 12px rgba(var(--lending-red-rgb), 0.08);
}

.tariff-quiz-option:has(input:checked) {
    border-color: var(--lending-red);
    background: #fff7f6;
    box-shadow: 0 4px 14px rgba(var(--lending-red-rgb), 0.12);
}

.tariff-quiz-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.tariff-quiz-option span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 100%;
    padding: 0.72rem 0.85rem;
    text-align: center;
}

.tariff-quiz-option strong {
    color: #171a21;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
}

.tariff-quiz-option em {
    display: none;
}

.tariff-quiz-callback-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 0.75rem;
}

.tariff-quiz-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-weight: 700;
    color: #424242;
    font-size: 0.88rem;
}

.tariff-quiz-field input,
.tariff-quiz-field textarea {
    border: 1px solid #d9dee3;
    border-radius: 12px;
    padding: 0.65rem 0.8rem;
    font-size: 0.95rem;
    background: #fff;
}

.tariff-quiz-field-wide { grid-column: 1 / -1; }

.tariff-quiz-phone-field {
    margin-top: 0.35rem;
    position: relative;
    width: 100%;
}

.tariff-quiz-lead-form-block {
    margin-top: 0.35rem;
}

.tariff-quiz-lead-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
    width: 100%;
    max-width: 28rem;
}

.tariff-quiz-lead-form .modal-phone-input {
    width: 100%;
    border-radius: 50px;
}

.tariff-quiz-consent-text {
    margin: 0;
    max-width: none;
    text-align: left;
}

.tariff-quiz-consent-text[hidden] {
    display: none !important;
}

.tariff-quiz-lead-submit.modal-submit-btn {
    width: 100%;
    align-self: stretch;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
}

.tariff-quiz-lead-submit.modal-submit-btn.is-inactive,
.tariff-quiz-lead-submit.modal-submit-btn.is-inactive:hover {
    background: rgba(var(--lending-red-rgb, 243, 71, 60), 0.55);
    background: color-mix(in srgb, var(--lending-red, #f3473c) 62%, white);
    color: #fff;
    cursor: pointer;
    transform: none;
    opacity: 1;
}

.tariff-quiz-result {
    margin: 0 0 1rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    max-width: 22rem;
}

.tariff-quiz-result[hidden] {
    display: none !important;
}

.tariff-quiz-result-card.hero-top-tariffs-col {
    width: 100%;
    margin: 0;
}

.tariff-quiz-success {
    margin-top: 0.5rem;
    max-width: 28rem;
}

.tariff-quiz-success[hidden] {
    display: none !important;
}

.tariff-quiz--success .tariff-quiz-result {
    display: none;
}

.tariff-quiz-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
    flex-wrap: wrap;
}

.tariff-quiz-btn {
    min-width: 8rem;
    padding: 0.7rem 1.2rem;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
    font-weight: 700;
    border: 1px solid transparent;
    cursor: pointer;
}

.tariff-quiz-btn-secondary {
    background: #fff;
    border-color: #d0d5dd;
    color: #1f2937;
}

.tariff-quiz-btn-primary {
    background: var(--lending-red);
    color: #fff;
}

.tariff-quiz-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.tariff-quiz-success .callback-modal-success__btn {
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
}

@media (max-width: 720px) {
    .tariff-quiz-head {
        margin-bottom: 0.85rem;
    }

    .tariff-quiz-main {
        padding: 0.9rem;
    }
}

@media (max-width: 900px) {
    .tariff-quiz-head {
        padding: 1rem 1rem 0.5rem;
    }

    .tariff-quiz-main {
        padding: 0.45rem 1rem 1rem;
    }
}

@media (max-width: 767px) {
    .tariff-quiz-shell {
        border-radius: 16px;
    }

    .tariff-quiz-options,
    .tariff-quiz-options--tiles,
    .tariff-quiz-callback-grid {
        grid-template-columns: 1fr;
    }

    .tariff-quiz-actions {
        flex-wrap: wrap;
    }

    .tariff-quiz-actions .tariff-quiz-btn {
        flex: 1 1 calc(50% - 0.35rem);
    }
}


/* Fix: buttons inside provider-city-details must not be full-width */
.provider-city-details .btn-details,
.provider-city-details .btn-check-availability,
.provider-city-details .btn-connect-card {
    width: auto !important;
    display: inline-flex !important;
    margin: 0 !important;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
}

.provider-city-details .btn-connect-card {
    padding: 0.65rem 1.2rem !important;
}

.provider-city-details .btn-check-availability {
    padding: 0.65rem 1.2rem !important;
}

.provider-city-details .btn-details {
    padding: 0.65rem 1.2rem !important;
}


/* Fix: readable text on filled buttons (links) */
a.btn-details,
a.btn-connect-card,
button.btn-details,
button.btn-connect-card {
    color: #fff !important;
}

.btn-details:hover,
.btn-connect-card:hover {
    color: #fff !important;
}

button.btn-connect-card:disabled,
.btn-connect-card:disabled {
    opacity: 0.55;
    cursor: not-allowed !important;
    pointer-events: none;
    transform: none !important;
    box-shadow: none !important;
}

/* Keep outline button text readable */
a.btn-check-availability,
button.btn-check-availability {
    color: var(--primary) !important;
}

.btn-check-availability:hover {
    color: #fff !important;
}

/* =====================
   UI style normalization
   ===================== */
:root {
    --ui-section-pad-y: 2rem;
    --page-hero-title-size: clamp(1.35rem, 2vw, 1.95rem);
    --ui-title-size: clamp(1.35rem, 2vw, 1.95rem);
    --ui-title-weight: 800;
    --ui-title-gap: 1rem;
    --ui-title-line: 1.25;
    --ui-title-letter: -0.02em;
    --ui-title-color: #212121;
    --ui-h3-size: clamp(1.15rem, 1.7vw, 1.4rem);
    --ui-h3-weight: 800;
    --ui-h3-line: 1.3;
    --ui-h3-letter: -0.015em;
    --ui-h3-color: #212121;
    --ui-btn-height: 42px;
    --ui-btn-pad-y: 0.6rem;
    --ui-btn-pad-x: 1.25rem;
    --ui-btn-font-size: 0.9rem;
    /* Задаётся в base.jinja2 из SiteSettings.button_border_radius; здесь только fallback */
    --ui-btn-radius: var(--lending-btn-radius, 14px);
    --ui-card-metric-size: 1.05rem;
    --ui-card-price-size: 1.25rem;
}

/* Единые отступы секций одного уровня */
.tariffs-section,
.providers-section,
.how-we-pick-section,
.why-no-tariffs-section,
.home-manifesto-section,
.provider-opinions-section,
.provider-stability-section,
.popular-cities-wrap {
    padding: var(--ui-section-pad-y) 0 !important;
}

@media (max-width: 900px) {
    .providers-section .providers-grid-fixed-5 {
        gap: 1rem;
    }

    .providers-section .provider-card {
        padding: 1.1rem 1rem;
    }
}

@media (max-width: 768px) {
    .providers-section {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .providers-grid-fixed-5 {
        gap: 0.85rem;
    }
}

/* Единые заголовки секций (h2) — один шрифт/кегль/вес по всему сайту */
.section-title,
.landing-section-title,
.city-how-to-carousel-title,
.city-internet-profile-title,
.city-top-tariffs-title,
.city-connect-seo-title,
.city-connect-seo-section h2,
.provider-sale-seo-title,
.tariffs-section .section-title,
.how-we-pick-section .section-title,
.why-no-tariffs-section .section-title,
.home-manifesto-section .section-title,
.providers-header h2,
.provider-opinions-header h2,
.city-opinions-preview-header h2,
.provider-stability-header h2,
.provider-stability-header--compact h2,
.popular-cities-header h2,
.popular-cities-wrap .section-title,
.city-street-coverage-wrap .section-title,
.support-city-directory-wrap .section-title,
.support-head h2,
.support-seo h2,
.support-faq h2,
.downdetector-head h2,
.downdetector-provider-head h2,
.city-faq-section h2,
.tariff-quiz-heading.section-title,
.tariff-quiz-head .section-title,
.cpa-section-title,
.provider-tariffs-catalog-section-title {
    font-family: inherit !important;
    font-size: var(--ui-title-size) !important;
    line-height: var(--ui-title-line) !important;
    font-weight: var(--ui-title-weight) !important;
    letter-spacing: var(--ui-title-letter) !important;
    color: var(--ui-title-color) !important;
}

/* Единые подзаголовки секций (h3) — не карточки/шаги внутри блоков */
.opinion-subsection-title,
.downdetector-address-check h3,
.downdetector-chart-head h3,
.downdetector-report-form h3,
.downdetector-recent h3,
.providers-seo-text + h3,
.provider-opinions-section h3.opinion-subsection-title,
.city-profile-providers-head h3 {
    font-family: inherit !important;
    font-size: var(--ui-h3-size) !important;
    line-height: var(--ui-h3-line) !important;
    font-weight: var(--ui-h3-weight) !important;
    letter-spacing: var(--ui-h3-letter) !important;
    color: var(--ui-h3-color) !important;
}

/* Единый sizing для кнопок */
.btn-details,
.btn-connect-card,
.btn-check-availability,
.btn-review-leave,
.tariff-quiz-btn,
.provider-card-connect-btn,
.hero-top-tariffs-col-btn,
.providers-all-btn,
.providers-load-more-btn,
.city-top-tariffs-more-btn,
.city-top-tariffs-all-btn,
.city-opinion-more-btn {
    min-height: var(--ui-btn-height) !important;
    padding: var(--ui-btn-pad-y) var(--ui-btn-pad-x) !important;
    font-size: var(--ui-btn-font-size) !important;
    border-radius: var(--ui-btn-radius) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

/* В карточках CTA по содержимому, не на всю ширину */
.provider-card .btn-connect-card,
.provider-card .btn-check-availability,
.provider-card--spec .btn-connect-card,
.provider-card--spec .btn-check-availability,
.hero-top-tariffs-col-cta .btn-connect-card,
.partner-tariff-actions .btn-connect-card,
.partner-tariff-actions .btn-check-availability,
.provider-sale-card-actions .btn-check-availability,
.provider-sales-empty-actions .btn-check-availability,
.providers-load-more-wrap .btn-connect-card,
.providers-load-more-wrap .btn-check-availability {
    width: auto !important;
    max-width: 100%;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

/* Замена инлайн-стилей в блоке провайдера города */
.provider-city-details-spaced {
    margin-bottom: 1rem;
}

.provider-city-actions {
    margin-top: 0.6rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.provider-city-call-btn {
    margin-left: 0 !important;
}

/* Страница одного провайдера в городе: единый блок вместо узкой карточки */
.provider-city-overview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1.5rem 2rem;
    align-items: start;
    padding: 1.35rem 1.5rem;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 16px;
    box-shadow: 0 4px 22px rgba(0, 0, 0, 0.06);
}

.provider-city-overview--highlights {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.provider-city-overview--highlights .provider-city-overview-main {
    width: 100%;
}

.provider-city-overview-intro {
    margin-bottom: 0.15rem;
}

.provider-city-overview-intro--with-contacts {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.25rem;
}

.provider-city-overview-intro-main {
    flex: 1 1 auto;
    min-width: 0;
}

.provider-city-overview-contacts {
    display: flex;
    flex-flow: row nowrap;
    align-items: stretch;
    justify-content: flex-end;
    gap: 0.65rem;
    flex: 0 0 auto;
    max-width: none;
}

.provider-city-overview-contacts .provider-city-overview-footer-stats {
    margin-left: 0;
    justify-content: flex-end;
}

.provider-city-overview-contacts .provider-city-strip-contact {
    flex: 0 1 auto;
    min-width: 0;
    max-width: none;
    align-items: flex-start;
    text-align: left;
}

.provider-city-strip-contact--inline .provider-city-strip-contact-icon {
    margin-top: 0.12rem;
}

.provider-city-strip-contact-line {
    margin: 0;
    min-width: 0;
    max-width: min(46vw, 360px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    text-align: left;
    line-height: 1.35;
    font-size: 0.88rem;
}

.provider-city-strip-contact-line .provider-city-strip-contact-label {
    text-transform: none;
    font-size: inherit;
    font-weight: 600;
    color: #616161;
    white-space: nowrap;
}

.provider-city-strip-contact-line .provider-city-strip-contact-link--web {
    display: block;
    font-size: inherit;
    font-weight: 700;
    color: var(--lending-red);
    text-decoration: none;
    word-break: break-all;
}

.provider-city-strip-contact-line .provider-city-strip-contact-link--web:hover {
    text-decoration: underline;
}

@media (max-width: 640px) {
    .provider-city-strip-contact-line {
        max-width: 100%;
    }
}

.provider-city-overview--highlights .provider-city-overview-meta {
    margin-bottom: 0.65rem;
}

.provider-city-overview-main {
    min-width: 0;
}

.provider-city-overview-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    margin-bottom: 0.35rem;
}

.provider-city-overview-logo {
    display: block;
    max-height: 52px;
    max-width: 180px;
    width: auto;
    object-fit: contain;
    object-position: left center;
}

.provider-city-overview-title-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    min-width: 0;
}

.provider-city-overview-name {
    margin: 0;
    font-size: clamp(1.2rem, 2.5vw, 1.45rem);
    font-weight: 800;
    color: #212121;
    line-height: 1.2;
}

.provider-city-overview-meta {
    margin: 0 0 0.85rem;
    color: #616161;
    font-size: 0.95rem;
    font-weight: 600;
}

.provider-city-about {
    margin: 0 0 0.65rem;
}

.provider-city-about-clip {
    overflow: hidden;
    max-height: none;
    transition: max-height 0.38s ease;
    will-change: max-height;
}

.provider-city-about-clip.is-collapsed {
    position: relative;
}

.provider-city-about-clip.is-collapsed::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1.4em;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 85%);
    opacity: 1;
    transition: opacity 0.28s ease;
}

.provider-city-about-clip:not(.is-collapsed)::after {
    opacity: 0;
}

.provider-city-about-text {
    margin: 0;
    color: #616161;
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.55;
}

.provider-city-about-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    margin-top: 0.55rem;
    padding: 0.28rem 0.75rem;
    border: 1px solid rgba(var(--lending-red-rgb), 0.35);
    border-radius: 999px;
    background: rgba(var(--lending-red-rgb), 0.06);
    color: var(--primary, var(--lending-red));
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.provider-city-about-toggle:hover {
    background: rgba(var(--lending-red-rgb), 0.12);
    border-color: rgba(var(--lending-red-rgb), 0.55);
    color: var(--primary-dark, var(--lending-red-dark));
    text-decoration: none;
}

.provider-city-about-toggle:active {
    transform: translateY(1px);
}

.provider-city-about-toggle[aria-expanded="true"] {
    background: #fff;
    border-color: rgba(0, 0, 0, 0.12);
    color: #555;
}

.provider-city-overview-tariff-bounds {
    margin: -0.25rem 0 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: 0.9rem;
    line-height: 1.35;
}

.provider-city-overview-tariff-bound {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
}

.provider-city-tariff-bound-label {
    color: #616161;
    font-weight: 600;
}

.provider-city-tariff-bound-value {
    color: var(--lending-red);
    font-weight: 800;
    font-size: 0.95rem;
}

.provider-city-overview-criteria {
    margin-bottom: 0.85rem;
}

.provider-city-tariff-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0.15rem 0 1rem;
}

.provider-city-overview--highlights .provider-city-tariff-highlights {
    margin-bottom: 0.85rem;
}

.provider-city-tariff-highlight {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    min-height: 7.5rem;
    width: 100%;
    padding: 0.85rem 0.95rem;
    border-radius: 14px;
    border: 1px solid #e0ebe0;
    background: #f4f8f4;
    box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.04);
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    appearance: none;
    -webkit-appearance: none;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, color 0.2s ease;
}

.provider-city-tariff-highlight:hover,
.provider-city-tariff-highlight:focus-visible {
    background: linear-gradient(145deg, #ffffff 0%, #fff6f5 55%, var(--lending-red-soft) 100%);
    border-color: rgba(var(--lending-red-rgb), 0.45);
    color: inherit;
    box-shadow: 0 6px 18px rgba(var(--lending-red-rgb), 0.12);
    transform: translateY(-1px);
    outline: none;
}

.provider-city-tariff-highlight-label {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #757575;
    line-height: 1.2;
}

.provider-city-tariff-highlight-name {
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.25;
    color: var(--lending-red);
}

.provider-city-tariff-highlight-speed {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.3;
    color: #424242;
}

.provider-city-tariff-highlight-promo {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
    color: #616161;
    flex: 1 1 auto;
}

.provider-city-tariff-highlight-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    margin-top: auto;
    padding-top: 0.15rem;
}

.provider-city-tariff-highlight-price-old {
    font-size: 0.82rem;
    font-weight: 600;
    color: #9e9e9e;
    text-decoration: line-through;
}

.provider-city-tariff-highlight-price-current {
    font-size: 1.05rem;
    font-weight: 900;
    color: var(--lending-red);
    line-height: 1.1;
}

@media (max-width: 900px) {
    .provider-city-tariff-highlights {
        grid-template-columns: 1fr;
    }

    .provider-city-tariff-highlight {
        min-height: 0;
    }

    .provider-city-overview-intro--with-contacts {
        flex-wrap: wrap;
        align-items: flex-start;
        margin-bottom: 0.65rem;
    }

    .provider-city-overview-contacts {
        flex-wrap: wrap;
        width: 100%;
        justify-content: flex-start;
        margin-bottom: 0.35rem;
    }

    .provider-city-overview-contacts .provider-city-overview-footer-stats {
        justify-content: flex-start;
    }

    .provider-city-overview--highlights .provider-city-tariff-highlights {
        margin-top: 0.85rem;
    }
}

.provider-city-overview-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid #ececec;
}

.provider-city-overview-footer--address {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.provider-city-address-check-intro {
    margin: 0 0 0.85rem;
    font-size: 0.95rem;
    line-height: 1.55;
    color: #616161;
    max-width: none;
}

.provider-city-address-check-intro-lead {
    font-weight: 700;
    color: #424242;
}

.provider-city-address-check-form {
    width: 100%;
    margin: 0;
}

.provider-city-overview-actions--footer {
    margin-top: 0;
    flex: 1 1 auto;
}

.provider-city-overview-footer-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-end;
    gap: 0.65rem;
    margin-left: auto;
}

@media (max-width: 768px) {
    .provider-city-overview-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .provider-city-overview-footer-stats {
        margin-left: 0;
        justify-content: flex-start;
    }
}

.provider-city-strip-stat {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.15rem;
    min-width: 5.5rem;
    padding: 0.65rem 0.85rem;
    background: #f4f8f4;
    border: 1px solid #e0ebe0;
    border-radius: 12px;
}

.provider-city-strip-stat-value {
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1.1;
    color: var(--lending-red-dark);
}

.provider-city-strip-stat-label {
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.25;
    color: #616161;
}

.provider-city-strip-reviews-link {
    color: inherit;
    text-decoration: none;
}

.provider-city-strip-reviews-link:hover {
    text-decoration: underline;
}

.provider-city-strip-contact {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: min(100%, 220px);
    padding: 0.65rem 0.85rem;
    background: #fff;
    border: 1px solid #e0ebe0;
    border-radius: 12px;
}

.provider-city-strip-contact-icon {
    flex-shrink: 0;
    margin-top: 0.1rem;
    font-size: 1.1rem;
    color: var(--lending-red);
    line-height: 1;
}

.provider-city-strip-contact-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.provider-city-strip-contact-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #757575;
    line-height: 1.2;
}

.provider-city-strip-contact-value {
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.3;
    color: #212121;
    word-break: break-word;
}

.provider-city-strip-contact-link {
    color: var(--lending-red);
    text-decoration: none;
}

.provider-city-strip-contact-link:hover {
    text-decoration: underline;
}

.provider-city-strip-contact-link--web {
    font-size: 0.85rem;
    font-weight: 700;
}

@media (max-width: 768px) {
    .provider-city-strip-contact {
        flex: 1 1 100%;
    }
}

.provider-city-overview-badges {
    margin-bottom: 0.25rem;
}

.provider-city-overview-actions {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.provider-city-overview-aside {
    padding: 1rem 1.1rem;
    background: #f8faf8;
    border: 1px solid #e3ebe3;
    border-radius: 14px;
    min-width: 0;
}

.provider-city-overview-status {
    margin: 0 0 0.85rem;
    font-size: 0.92rem;
    line-height: 1.45;
    color: #424242;
}

.provider-city-stat-card {
    margin-bottom: 0.85rem;
    padding: 0.75rem 0.85rem;
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e0e8e0;
}

.provider-city-stat-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #616161;
    margin-bottom: 0.25rem;
}

.provider-city-stat-value {
    display: block;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--lending-red-dark);
    line-height: 1.2;
}

.provider-city-stat-note {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.82rem;
    color: #757575;
}

.provider-city-reviews-total {
    margin: 0 0 0.85rem;
    font-size: 0.9rem;
    color: #555;
    line-height: 1.45;
}

.provider-city-reviews-count-link {
    font-weight: 800;
    color: var(--primary, var(--lending-red));
    text-decoration: none;
}

.provider-city-reviews-count-link:hover {
    text-decoration: underline;
}

.provider-city-support-heading {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    color: #424242;
    line-height: 1.35;
}

.provider-city-website-label {
    display: block;
    margin: 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: #555;
    line-height: 1.35;
}

.provider-city-contacts {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    align-items: flex-start;
}

.provider-city-contacts .provider-city-contact-web {
    margin-top: 0;
    word-break: break-word;
    max-width: 100%;
}

.provider-city-contact-link {
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
}

.provider-city-contact-phone {
    color: #1565c0;
}

.provider-city-contact-phone:hover {
    text-decoration: underline;
}

.provider-city-contact-web {
    color: var(--primary, var(--lending-red));
}

.provider-city-contact-web:hover {
    text-decoration: underline;
}

@media (max-width: 900px) {
    .provider-city-overview {
        grid-template-columns: 1fr;
    }

    .provider-city-overview-aside {
        order: -1;
    }
}

.provider-city-overview-actions .btn-details,
.provider-city-overview-actions .btn-check-availability,
.provider-city-overview-actions .btn-connect-card,
.provider-city-overview-actions .btn-review-leave {
    width: auto !important;
    display: inline-flex !important;
    margin: 0 !important;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
}

/* В карточке провайдера базовый .btn-review-leave задаёт width:100% — оставляем зелёный стиль, размер как у соседних кнопок */
.provider-city-overview-main .provider-city-overview-actions .btn-review-leave--inline {
    width: auto !important;
    max-width: 100%;
    flex: 0 0 auto !important;
    align-self: center;
    box-sizing: border-box;
}

/* Тарифы по дому (страница адреса) */
.address-tariff-catalog-wrap {
    margin-bottom: 1.75rem;
}

.address-tariff-catalog-line {
    margin: 0 0 0.75rem;
    max-width: 52rem;
}

.address-tariff-provider-block {
    margin-bottom: 0.5rem;
}

.provider-tariffs-catalog-section-head {
    margin: 2rem 0 1.25rem;
    padding-top: 1.35rem;
    border-top: 1px solid #dbe5db;
}

.provider-tariffs-catalog-section-title {
    margin: 0 0 0.4rem;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    color: #141914;
    letter-spacing: -0.02em;
    line-height: 1.3;
}

.provider-tariffs-catalog-section-sub {
    margin: 0;
    font-size: 0.95rem;
    color: #4a564a;
    line-height: 1.45;
    max-width: 52rem;
}

.provider-tariffs-catalog-sort-bar.city-top-tariffs-segmented {
    margin: 0 0 1rem;
}

.provider-tariffs-catalog-sort-bar--switch.city-top-tariffs-segmented {
    position: relative;
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 0.25rem;
    padding: 0.3rem;
    border-radius: 999px;
    background: #f5f6f8;
    border: 1px solid #e3e5e9;
    box-shadow: none;
}

.provider-tariffs-catalog-sort-bar--switch .provider-tariffs-catalog-sort-indicator {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 2px 9px rgba(24, 28, 38, 0.1);
    opacity: 0;
    pointer-events: none;
    transition:
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.18s ease;
    will-change: transform, width;
}

.provider-tariffs-catalog-sort-bar--switch .city-top-tariffs-segment-btn {
    position: relative;
    z-index: 1;
    min-height: 38px;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: transparent !important;
    box-shadow: none !important;
    color: #1a1a1a !important;
    white-space: nowrap;
    transition: color 0.2s ease;
}

.provider-tariffs-catalog-sort-bar--switch .city-top-tariffs-segment-btn.is-highlighted,
.provider-tariffs-catalog-sort-bar--switch .city-top-tariffs-segment-btn[aria-pressed="true"],
.provider-tariffs-catalog-sort-bar--switch .city-top-tariffs-segment-btn.is-active {
    color: var(--lending-red, var(--lending-red)) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.provider-tariffs-catalog-sort-bar--switch:hover .city-top-tariffs-segment-btn[aria-pressed="true"]:not(.is-highlighted),
.provider-tariffs-catalog-sort-bar--switch:focus-within .city-top-tariffs-segment-btn[aria-pressed="true"]:not(.is-highlighted) {
    color: #1a1a1a !important;
}

.provider-tariffs-catalog-sort-bar--switch .city-top-tariffs-segment-btn:hover,
.provider-tariffs-catalog-sort-bar--switch .city-top-tariffs-segment-btn:focus-visible {
    color: var(--lending-red, var(--lending-red)) !important;
    background: transparent !important;
}

.provider-tariffs-catalog-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.65rem 0.85rem;
    margin: 0 0 1rem;
}

.provider-tariffs-catalog-providers-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
    flex: 1 1 auto;
    min-width: 0;
}

.provider-tariffs-catalog-providers-controls[hidden] {
    display: none !important;
}

.provider-catalog-group-switch {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    cursor: pointer;
    user-select: none;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.2;
    color: #1f2430;
}

.provider-catalog-group-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.provider-catalog-group-switch-track {
    position: relative;
    width: 42px;
    height: 24px;
    flex-shrink: 0;
    border-radius: 999px;
    background: #d5d8e0;
    transition: background 0.18s ease;
}

.provider-catalog-group-switch-thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(17, 24, 39, 0.28);
    transition: transform 0.18s ease;
}

.provider-catalog-group-switch input:checked + .provider-catalog-group-switch-track {
    background: var(--lending-red, #f3473c);
}

.provider-catalog-group-switch input:checked + .provider-catalog-group-switch-track .provider-catalog-group-switch-thumb {
    transform: translateX(18px);
}

.provider-catalog-group-switch input:focus-visible + .provider-catalog-group-switch-track {
    outline: 2px solid var(--lending-red, #f3473c);
    outline-offset: 2px;
}

.provider-tariffs-catalog-flat .partner-tariffs-section {
    padding: 0.15rem 0 1.5rem;
    border-top: 0;
}

[data-catalog-layout-panel][hidden] {
    display: none !important;
}

.provider-tariffs-catalog-controls .provider-name-search {
    margin-left: auto;
}

.address-best-tariffs-feature {
    margin-top: 0;
    margin-bottom: 1.75rem;
}

.address-best-tariffs-feature .city-top-tariffs-title {
    margin: 0 0 1.15rem;
}

.address-best-tariffs-feature-hint {
    margin: 0 0 1.15rem !important;
    color: rgba(255, 255, 255, 0.72) !important;
}

.address-best-tariffs-feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 900px) {
    .address-best-tariffs-feature-grid {
        grid-template-columns: 1fr;
    }

    .provider-tariffs-catalog-controls .provider-name-search {
        margin-left: 0;
        width: 100%;
    }

    .provider-tariffs-catalog-controls .provider-name-search-input {
        width: 100%;
    }

    .provider-catalog-group-switch {
        width: 100%;
    }

    .provider-tariffs-catalog-providers-controls {
        width: 100%;
    }
}


.provider-tariffs-catalog-controls .provider-tariffs-catalog-sort-bar.city-top-tariffs-segmented {
    margin: 0;
}

.provider-tariffs-catalog-controls .provider-name-search {
    margin: 0;
}

.provider-tariffs-catalog-sort-item--collapsed {
    display: none !important;
}

.provider-tariffs-catalog-sort-item--name-hidden {
    display: none !important;
}

.provider-tariffs-catalog-load-more-wrap {
    display: flex;
    justify-content: flex-start;
    margin: 1.25rem 0 0;
}

.provider-tariffs-catalog-load-more-wrap[hidden] {
    display: none !important;
}

.provider-tariffs-catalog-load-more-btn.btn-check-availability {
    width: auto !important;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 1.4rem;
    padding-right: 1.4rem;
}

@media (max-width: 520px) {
    .provider-tariffs-catalog-sort-bar.city-top-tariffs-segmented .city-top-tariffs-segment-btn {
        flex: 1 1 auto;
        min-width: calc(50% - 4px);
        padding-left: 0.42rem;
        padding-right: 0.42rem;
        font-size: 0.75rem;
    }

    .provider-tariffs-catalog-sort-bar--switch.city-top-tariffs-segmented {
        width: 100%;
    }

    .provider-tariffs-catalog-sort-bar--switch .city-top-tariffs-segment-btn {
        flex: 1 1 0;
        min-width: 0;
        justify-content: center;
        padding-left: 0.55rem;
        padding-right: 0.55rem;
        font-size: 0.78rem;
    }
}

/* City providers catalog — обновлённая визуальная концепция */
.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-head--city {
    margin: 2.25rem 0 1.35rem;
    padding-top: 0;
    border-top: 0;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-head-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem 1.5rem;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.15rem;
    flex: 0 1 auto;
    min-width: 0;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-title {
    margin: 0;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.2;
    color: #0f1115;
    max-width: 28rem;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-title-row .provider-catalog-group-switch {
    flex: 0 0 auto;
    white-space: nowrap;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-controls {
    margin: 0;
    flex-shrink: 1;
    margin-left: auto;
    max-width: 100%;
}

.city-tariff-catalog-wrap--providers .provider-catalog-group-switch {
    flex: 0 0 auto;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-sort-bar.city-top-tariffs-segmented {
    margin: 0;
    flex-shrink: 0;
    background: #eceef2;
    padding: 0.22rem;
    border-radius: 999px;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-sort-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.city-tariff-catalog-wrap--providers .address-tariff-provider-block {
    margin-bottom: 0;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion {
    border: 1px solid rgba(17, 24, 39, 0.06);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(17, 24, 39, 0.04);
    margin-bottom: 0;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion:hover {
    border-color: rgba(17, 24, 39, 0.1);
    box-shadow: 0 8px 28px rgba(17, 24, 39, 0.07);
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary {
    padding: 1.1rem 1.25rem;
    background: transparent;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary:hover {
    background: #fafbfc;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion[open] > .provider-tariffs-catalog-summary {
    border-bottom-color: rgba(17, 24, 39, 0.06);
    background: #fff;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-grid {
    grid-template-columns: minmax(6.5rem, 7.25rem) minmax(8.5rem, 12rem) minmax(0, 1fr) auto 1.25rem;
    column-gap: 1.15rem;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-name {
    font-size: 1.08rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: #0f1115;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-meta {
    font-size: 0.8125rem;
    color: #8a929e;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-stats {
    justify-content: flex-start;
    gap: 0;
    padding-left: 0.5rem;
    border-left: 1px solid rgba(17, 24, 39, 0.08);
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat {
    padding: 0 1.1rem;
    border-right: 1px solid rgba(17, 24, 39, 0.08);
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat:last-child {
    border-right: 0;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat-label {
    font-size: 0.625rem;
    letter-spacing: 0.06em;
    color: #9aa1ac;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat-value {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #0f1115;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-cta {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--lending-red);
    border: 0;
    background: transparent;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    justify-self: end;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-cta::after {
    content: " ↓";
    font-weight: 600;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion[open] .provider-tariffs-catalog-summary-cta::after {
    content: " ↑";
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-chevron {
    color: #9aa1ac;
    font-size: 0.95rem;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion[open] .provider-tariffs-catalog-summary-chevron {
    color: var(--lending-red);
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-panel {
    background: #f7f8fa;
    border-top: 1px solid rgba(17, 24, 39, 0.05);
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion[open] > .provider-tariffs-catalog-panel {
    padding: 0.35rem 0.85rem 1rem;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card.hero-top-tariffs-col {
    border: 1px solid rgba(17, 24, 39, 0.06);
    border-radius: 18px;
    box-shadow:
        0 4px 12px rgba(17, 24, 39, 0.08),
        0 12px 36px rgba(17, 24, 39, 0.14);
    background: #fff;
    padding: 1.1rem 1.05rem 1.15rem;
    grid-template-columns: unset;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariffs-grid {
    gap: 1.15rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 768px) {
    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-head-main {
        flex-direction: column;
        align-items: stretch;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-title-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-section-title {
        max-width: none;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-controls {
        width: 100%;
        margin-left: 0;
    }

    .city-tariff-catalog-wrap--providers .provider-catalog-group-switch {
        width: 100%;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-sort-bar.city-top-tariffs-segmented {
        width: auto;
        flex: 1 1 auto;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-controls .provider-name-search {
        width: 100%;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-controls .provider-name-search-input {
        width: 100%;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-stats {
        border-left: 0;
        padding-left: 0;
        gap: 0;
        justify-content: stretch;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat {
        padding: 0;
        border-right: 0;
        flex: none;
        min-width: 0;
        width: 100%;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat + .provider-tariffs-catalog-stat {
        padding-left: 1.1rem;
        margin-left: 0;
        border-left: 1px solid rgba(17, 24, 39, 0.1);
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat-label {
        font-size: 0.72rem;
        letter-spacing: 0.05em;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-stat-value {
        font-size: 1.12rem;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-name {
        font-size: 1.2rem;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-meta {
        font-size: 0.95rem;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-summary-cta {
        width: 100%;
        justify-self: stretch;
        text-align: left;
        padding: 0.2rem 0;
        font-size: 1.05rem;
        border-radius: 0;
        box-shadow: none;
    }
}

.provider-tariffs-catalog-summary-name-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}

.provider-tariffs-catalog-summary-rating-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--lending-red);
    flex-shrink: 0;
}

.provider-tariffs-catalog-summary-rating-badge .bi {
    font-size: 0.72rem;
    line-height: 1;
    opacity: 0.9;
}

/* Аккордеон: несколько провайдеров на странице адреса / тарифов города */
.provider-tariffs-catalog-accordion {
    border: 1px solid #eceef1;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.03);
    margin-bottom: 0.85rem;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}

/* В раскрытом виде не режем overflow — иначе ломается position:sticky у сайдбара «Фильтры» (как на ПК) */
.provider-tariffs-catalog-accordion[open] {
    overflow: visible;
}

.provider-tariffs-catalog-summary {
    list-style: none;
    cursor: pointer;
    padding: 0.85rem 1rem 0.85rem 1.1rem;
    margin: 0;
    background: #fff;
    border-bottom: 1px solid transparent;
    transition: background 0.15s ease;
    display: block;
    width: 100%;
    box-sizing: border-box;
}

.provider-tariffs-catalog-accordion[open] > .provider-tariffs-catalog-summary {
    border-bottom-color: #eceef1;
    background: #fff;
}

.provider-tariffs-catalog-summary::-webkit-details-marker {
    display: none;
}

.provider-tariffs-catalog-summary:hover {
    background: #fafafa;
}

.provider-tariffs-catalog-summary:focus {
    outline: none;
}

.provider-tariffs-catalog-summary:focus-visible {
    outline: 2px solid var(--lending-red);
    outline-offset: 2px;
}

.provider-tariffs-catalog-summary-grid {
    display: grid;
    /* Первая колонка — лого */
    grid-template-columns: minmax(6.5rem, 7.25rem) minmax(9rem, 13rem) minmax(10rem, 1fr) max-content 1.5rem;
    column-gap: 1rem;
    row-gap: 0.35rem;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}

.provider-tariffs-catalog-summary-logo-wrap {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-width: 0;
    max-width: 7.25rem;
    min-height: 3.25rem;
    overflow: hidden;
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-sizing: border-box;
}

.provider-tariffs-catalog-summary-logo-placeholder {
    grid-column: 1;
    grid-row: 1;
    display: block;
    width: 100%;
    max-width: 7.25rem;
    min-width: 0;
    height: 3.25rem;
    flex-shrink: 0;
}

.provider-tariffs-catalog-summary-logo {
    display: block;
    max-height: 52px;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: left center;
}

.provider-tariffs-catalog-summary-name-col {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    min-width: 0;
}

.provider-tariffs-catalog-summary-stats {
    grid-column: 3;
    grid-row: 1;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 1.35rem;
    min-width: 0;
}

.provider-tariffs-catalog-stat {
    display: flex;
    flex-direction: column;
    gap: 0.06rem;
    min-width: 0;
    flex: 0 1 auto;
}

.provider-tariffs-catalog-stat-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.045em;
    color: #6a7a6a;
    line-height: 1.2;
}

.provider-tariffs-catalog-stat-value {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--lending-red);
    line-height: 1.25;
}

.provider-tariffs-catalog-stat--muted .provider-tariffs-catalog-stat-value {
    font-size: 0.82rem;
    font-weight: 600;
    color: #5c6b5c;
}

.provider-tariffs-catalog-summary-cta {
    grid-column: 4;
    grid-row: 1;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--lending-red);
    border: 0;
    background: transparent;
    padding: 0;
    border-radius: 0;
    white-space: nowrap;
    justify-self: end;
    line-height: 1.3;
    box-shadow: none;
}

.provider-tariffs-catalog-summary-cta::after {
    content: " ↓";
    font-weight: 600;
}

.provider-tariffs-catalog-accordion[open] .provider-tariffs-catalog-summary-cta::after {
    content: " ↑";
}

.provider-tariffs-catalog-summary-name {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1b1b1b;
    line-height: 1.25;
}

.provider-tariffs-catalog-summary-meta {
    font-size: 0.84rem;
    color: #5c6b5c;
    font-weight: 500;
}

.provider-tariffs-catalog-summary-chevron {
    grid-column: 5;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    font-size: 1rem;
    color: var(--lending-red);
    transition: transform 0.2s ease;
}

.provider-tariffs-catalog-accordion[open] .provider-tariffs-catalog-summary-chevron {
    transform: rotate(180deg);
}

@media (max-width: 768px) {
    .provider-tariffs-catalog-section-head {
        margin: 1.5rem 0 1rem;
        padding-top: 1.1rem;
    }

    .provider-tariffs-catalog-section-title {
        font-size: 1.12rem;
    }

    .provider-tariffs-catalog-summary {
        padding: 0.9rem 0.95rem 1rem;
    }

    .provider-tariffs-catalog-summary-grid {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            'accName accLogo'
            'accStats accStats'
            'accCta accCta';
        gap: 0.85rem 0.75rem;
        align-items: start;
        width: 100%;
    }

    .provider-tariffs-catalog-summary-logo-wrap,
    .provider-tariffs-catalog-summary-logo-placeholder {
        grid-area: accLogo;
        max-width: 5.5rem;
        min-height: 2.5rem;
        justify-content: flex-end;
        justify-self: end;
        align-self: start;
    }

    .provider-tariffs-catalog-summary-logo {
        max-width: 100%;
        max-height: 40px;
        object-position: right center;
    }

    .provider-tariffs-catalog-summary-name-col {
        grid-area: accName;
        padding-top: 0.1rem;
        width: 100%;
        min-width: 0;
    }

    .provider-tariffs-catalog-summary-name {
        font-size: 1.2rem;
        line-height: 1.3;
    }

    .provider-tariffs-catalog-summary-meta {
        font-size: 0.95rem;
    }

    .provider-tariffs-catalog-summary-stats {
        grid-area: accStats;
        display: grid;
        grid-template-columns: 1fr 1fr;
        flex-direction: unset;
        flex-wrap: unset;
        gap: 0;
        align-items: start;
        width: 100%;
    }

    .provider-tariffs-catalog-stat {
        width: 100%;
        min-width: 0;
    }

    .provider-tariffs-catalog-stat-label {
        font-size: 0.75rem;
    }

    .provider-tariffs-catalog-stat-value {
        font-size: 1.1rem;
        font-weight: 800;
    }

    .provider-tariffs-catalog-summary-cta {
        grid-area: accCta;
        justify-self: stretch;
        width: 100%;
        text-align: left;
        white-space: nowrap;
        padding: 0.2rem 0;
        font-size: 1.05rem;
        border-radius: 0;
        box-shadow: none;
        box-sizing: border-box;
    }

    .provider-tariffs-catalog-summary-chevron {
        display: none;
    }
}

.provider-tariffs-catalog-panel {
    padding: 0 0.15rem;
}

.provider-tariffs-catalog-accordion[open] > .provider-tariffs-catalog-panel {
    padding: 0.45rem 1.35rem 1.65rem;
    background: linear-gradient(165deg, #f7faf7 0%, #f3f6f3 48%, #eef2ee 100%);
}

.partner-tariffs-title--sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.partner-tariffs-section--accordion-child {
    border-top: none;
    padding: 1.15rem 0 1.25rem;
}

.partner-tariffs-section--accordion-child .partner-tariffs-layout {
    gap: 1.35rem;
    grid-template-columns: minmax(0, 1fr) 262px;
    align-items: start;
}

.partner-tariffs-section--accordion-child .partner-tariff-filters {
    margin-top: 0.15rem;
    margin-bottom: 0.65rem;
}

.partner-tariffs-section--accordion-child .partner-tariffs-toolbar {
    margin-bottom: 0.8rem;
}

.partner-tariffs-section--accordion-child .partner-tariffs-grid {
    gap: 1.15rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Карточки в каталоге — тот же вертикальный стиль, что в hero «Тарифы» */
.provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card.hero-top-tariffs-col,
.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card.hero-top-tariffs-col {
    display: flex;
    flex-direction: column;
    grid-template-columns: unset;
    column-gap: unset;
    gap: 0.85rem;
    background: #fff;
    border: 1px solid rgba(17, 24, 39, 0.06);
    border-radius: 18px;
    box-shadow:
        0 4px 12px rgba(17, 24, 39, 0.08),
        0 12px 36px rgba(17, 24, 39, 0.14);
    padding: 1.1rem 1.05rem 1.15rem;
}

.city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariffs-grid {
    gap: 1.15rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.partner-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-price {
    letter-spacing: -0.02em;
}

.partner-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-actions {
    gap: 0.55rem;
}

/* Фильтры справа — мягче, без тяжёлой «второй карточки» */
.partner-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariffs-sidebar {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(var(--lending-red-rgb), 0.12);
    border-radius: 14px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 6px 20px rgba(30, 70, 35, 0.05);
    padding: 1.05rem 0.95rem;
}

.partner-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariffs-sidebar-title {
    font-size: 1.02rem;
    margin-bottom: 0.75rem;
    color: #2e4a30;
}

.partner-tariffs-logo-row {
    margin-bottom: 0.65rem;
}

.partner-tariffs-logo-img {
    display: block;
    max-height: 48px;
    width: auto;
    object-fit: contain;
}

/* Партнёрские импортированные тарифы под карточкой провайдера */
.partner-tariffs-section {
    padding: 2rem 0 2.5rem;
    border-top: 1px solid #e8e8e8;
    background: transparent;
}

.partner-tariffs-section .partner-tariffs-title {
    margin-top: 0;
    margin-bottom: 0.5rem;
}

.partner-tariffs-note {
    margin: 0 0 0.35rem;
    color: #555;
    font-size: 0.95rem;
    line-height: 1.5;
    max-width: 52rem;
}

.partner-tariffs-scope {
    margin: 0 0 1rem;
}

.partner-tariffs-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 1rem;
    align-items: start;
}

.partner-tariffs-main {
    min-width: 0;
}

.partner-tariff-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 1rem 0 0.75rem;
}

.partner-tariffs-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.partner-tariffs-sort-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.partner-tariffs-sort-label {
    font-size: 0.78rem;
    color: #616161;
    font-weight: 600;
}

.partner-tariffs-sort {
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    background: #fff;
    min-width: 220px;
    padding: 0.45rem 0.55rem;
    font-size: 0.86rem;
}

.partner-tariffs-count {
    font-size: 0.82rem;
    color: #616161;
}

.partner-tariff-filter-pill {
    border: 1px solid rgba(var(--lending-red-rgb), 0.28);
    background: #fff;
    color: var(--lending-red);
    border-radius: 999px;
    padding: 0.45rem 0.95rem;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.partner-tariff-filter-pill:hover {
    background: rgba(var(--lending-red-rgb), 0.1);
    border-color: rgba(var(--lending-red-rgb), 0.4);
}

.partner-tariff-filter-pill.is-active {
    background: var(--lending-red);
    color: #fff;
    border-color: var(--lending-red);
}

.partner-tariffs-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem 1.25rem;
    align-items: stretch;
}

.partner-tariffs-grid .partner-tariff-card.hero-top-tariffs-col {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
    min-width: 0;
    height: 100%;
    box-sizing: border-box;
    /* перебиваем старую двухколоночную карточку */
    grid-template-columns: unset;
    padding: 1.1rem 1.05rem 1.15rem;
}

.partner-tariffs-grid .partner-tariff-card.hero-top-tariffs-col:not(:has(.hero-top-tariffs-col-label)) {
    padding-top: 1.1rem;
}

@supports (grid-template-rows: subgrid) {
    .partner-tariffs-grid {
        row-gap: 0.85rem;
        column-gap: 1.25rem;
    }

    .partner-tariffs-grid .partner-tariff-card.hero-top-tariffs-col {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 5;
        height: auto;
        gap: unset;
        align-content: start;
    }

    .partner-tariffs-grid .partner-tariff-card.hero-top-tariffs-col::after {
        content: '';
        display: block;
        height: 0.5rem;
        grid-row: 5;
    }

    .partner-tariffs-grid .partner-tariff-card.hero-top-tariffs-col .hero-top-tariffs-col-head {
        min-height: 0;
        height: 100%;
        align-self: stretch;
    }
}

.partner-tariff-card-main {
    min-width: 0;
}

.partner-tariff-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.35rem;
}

.partner-tariff-name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #212121;
    line-height: 1.3;
}

.partner-tariff-top-badge {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-radius: 7px;
    padding: 0.22rem 0.45rem;
    color: #856404;
    background: #fff3cd;
}

.partner-tariff-top-badge-wrap {
    margin-bottom: 0.2rem;
}

.partner-tariff-tech {
    font-size: 0.75rem;
    font-weight: 700;
    color: #424242;
    background: #eceff1;
    border-radius: 8px;
    padding: 0.2rem 0.5rem;
}

.partner-tariff-speed {
    margin: 0 0 0.5rem;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--lending-red-dark);
    letter-spacing: -0.02em;
}

.partner-tariff-services {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin: 0 0 0.65rem;
}

.partner-tariff-service-row {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
}

.partner-tariff-service-icon {
    font-size: 1.15rem;
    color: var(--lending-red);
    margin-top: 0.1rem;
    flex-shrink: 0;
}

.partner-tariff-service-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.partner-tariff-service-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #757575;
}

.partner-tariff-service-value {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
}

.partner-tariff-service-main {
    font-size: 1rem;
    font-weight: 700;
    color: #212121;
}

.partner-tariff-service-main--emph {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--lending-red-dark);
    letter-spacing: -0.02em;
}

.partner-tariff-service-sub {
    font-size: 0.78rem;
    font-weight: 700;
    color: #424242;
    background: #eceff1;
    border-radius: 8px;
    padding: 0.15rem 0.45rem;
}

.partner-tariff-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}

.partner-tariff-badges--inline {
    margin-bottom: 0;
    align-items: center;
}

.partner-tariff-badge {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #b8860b;
    background: #fff8e1;
    border-radius: 6px;
    padding: 0.2rem 0.45rem;
}

.partner-tariff-badge--muted {
    color: #5d4037;
    background: #efebe9;
}

.partner-tariff-highlights {
    margin: 0 0 0.5rem;
    padding-left: 1.1rem;
    color: #444;
    font-size: 0.875rem;
    line-height: 1.45;
}

.partner-tariff-desc {
    margin: 0;
    font-size: 0.82rem;
    color: #666;
    line-height: 1.45;
}

.partner-tariff-card-aside {
    background: #f7f9f7;
    border-radius: 14px;
    padding: 1rem;
    border: 1px solid #e8f5e9;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-self: stretch;
    min-width: 0;
}

.partner-tariff-price-block {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.partner-tariff-price-old {
    font-size: 0.95rem;
    font-weight: 600;
    color: #9e9e9e;
    text-decoration: line-through;
    line-height: 1.2;
}

.partner-tariff-price {
    font-size: 1.5rem;
    font-weight: 800;
    color: #c62828;
    line-height: 1.2;
}

.partner-tariff-price-followup {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: #424242;
    line-height: 1.35;
}

.partner-tariff-promo-period {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #795548;
    background: #fff8e1;
    border-radius: 6px;
    padding: 0.25rem 0.45rem;
    line-height: 1.35;
}

.partner-tariff-setup {
    margin: 0;
    font-size: 0.8rem;
    color: #555;
    line-height: 1.35;
}

.partner-tariff-actions {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: auto;
}

.partner-tariff-actions .btn-connect-card,
.partner-tariff-actions .btn-check-availability {
    width: auto !important;
    max-width: 100%;
    align-self: flex-start;
}

.partner-tariffs-pagination {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.65rem;
    margin-top: 0.9rem;
}

.partner-tariffs-page-btn {
    border: 1px solid #d7d7d7;
    background: #fff;
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--lending-red);
    cursor: pointer;
}

.partner-tariffs-page-btn:disabled {
    opacity: 0.5;
    cursor: default;
}

.partner-tariffs-page-text {
    font-size: 0.82rem;
    color: #616161;
}

.partner-tariffs-sidebar {
    background: #fff;
    border-radius: 16px;
    border: 1px solid #ececec;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
    padding: 1rem;
    position: sticky;
    top: 92px;
}

.partner-tariffs-sidebar-title {
    margin: 0 0 0.85rem;
    font-size: 1.15rem;
}

.partner-tariffs-sidebar-label {
    display: block;
    margin: 0 0 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #616161;
}

.partner-tariffs-search {
    width: 100%;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    font-size: 0.86rem;
    margin-bottom: 0.9rem;
}

.partner-tariffs-filter-group {
    margin-bottom: 0.85rem;
}

.partner-tariffs-filter-group-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: #424242;
    margin-bottom: 0.38rem;
}

.partner-tariffs-speed-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.partner-tariffs-speed-chip {
    border: 1px solid rgba(var(--lending-red-rgb), 0.28);
    background: #fff;
    color: var(--lending-red);
    border-radius: 999px;
    padding: 0.4rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.partner-tariffs-speed-chip:hover {
    background: rgba(var(--lending-red-rgb), 0.1);
    border-color: rgba(var(--lending-red-rgb), 0.4);
}

.partner-tariffs-speed-chip.is-active {
    background: var(--lending-red);
    color: #fff;
    border-color: var(--lending-red);
}

.partner-tariffs-checkbox {
    display: block;
    font-size: 0.86rem;
    color: #424242;
    margin-bottom: 0.28rem;
}

.partner-tariffs-checkbox input {
    margin-right: 0.38rem;
}

@media (max-width: 991px) {
    .partner-tariffs-layout {
        grid-template-columns: 1fr;
    }

    /* Фильтры в потоке не показываем — только через модалку с плавающей кнопкой */
    .partner-tariffs-layout > .partner-tariffs-sidebar {
        display: none;
    }

    .partner-tariffs-sidebar.partner-tariffs-sidebar--in-modal {
        display: block;
    }

    .partner-tariffs-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .partner-tariffs-sort {
        min-width: 0;
    }

    .partner-tariffs-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .partner-tariffs-grid .partner-tariff-card.hero-top-tariffs-col,
    .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card.hero-top-tariffs-col,
    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card.hero-top-tariffs-col {
        display: flex;
        flex-direction: column;
        grid-template-columns: unset;
        padding: 1.1rem 1.05rem 1.15rem;
        gap: 0.85rem;
        box-shadow:
            0 4px 12px rgba(17, 24, 39, 0.08),
            0 12px 36px rgba(17, 24, 39, 0.14);
        border-color: rgba(17, 24, 39, 0.06);
    }

    .partner-tariff-card-main {
        padding-bottom: 0.15rem;
    }

    .partner-tariff-desc {
        margin-top: 0.55rem;
        font-size: 0.8rem;
        line-height: 1.52;
        color: #585858;
    }

    /* Цены и кнопки — продолжение карточки, без вложенного цветного блока */
    .partner-tariff-card .partner-tariff-card-aside {
        order: 2;
        background: transparent;
        border: none;
        border-radius: 0;
        box-shadow: none;
        padding: 1.1rem 0 0;
        margin-top: 0.75rem;
        border-top: 1px solid rgba(0, 0, 0, 0.09);
        gap: 0.65rem;
    }

    .partner-tariff-price-block {
        gap: 0.3rem;
    }

    .partner-tariff-top-badge-wrap {
        margin-bottom: 0.3rem;
    }

    .partner-tariff-top-badge {
        background: rgba(255, 243, 205, 0.45);
        border: 1px solid rgba(184, 134, 11, 0.28);
        box-shadow: none;
    }

    .partner-tariff-promo-period {
        background: transparent;
        border-radius: 0;
        border-left: 3px solid rgba(184, 134, 11, 0.45);
        padding: 0.15rem 0 0.15rem 0.65rem;
        color: #6d5240;
        font-weight: 600;
    }

    .partner-tariff-actions {
        margin-top: 0.25rem;
        gap: 0.5rem;
    }

    /*
     * Аккордеон (адрес / город): десктопные правила с 1fr + minmax(210px) и layout 1fr+262px
     * имеют большую специфичность, чем общие .partner-tariff-card — на телефоне это ломало сетку.
     */
    .partner-tariffs-section--accordion-child .partner-tariffs-layout {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card.hero-top-tariffs-col,
    .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card {
        display: flex;
        flex-direction: column;
        grid-template-columns: unset;
        column-gap: 0;
    }

    .city-tariff-catalog-wrap--providers .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariffs-grid,
    .partner-tariffs-section--accordion-child .partner-tariffs-grid {
        grid-template-columns: 1fr;
    }

    .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card-main {
        padding-right: 0;
        min-width: 0;
    }

    .provider-tariffs-catalog-accordion .partner-tariffs-section--accordion-child .partner-tariff-card-aside {
        border-left: none;
        padding-left: 0;
        padding-right: 0;
        margin: 0.75rem 0 0;
        min-width: 0;
    }

    .partner-tariff-card-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.45rem;
    }

    .partner-tariff-card-head .partner-tariff-name {
        flex: none;
        width: 100%;
    }

    .partner-tariff-card-head .partner-tariff-badges,
    .partner-tariff-card-head .partner-tariff-tech {
        width: 100%;
    }

    .provider-tariffs-catalog-accordion[open] > .provider-tariffs-catalog-panel {
        padding: 0.35rem 0.85rem 1.35rem;
    }
}

/* Мобильный фильтр тарифов: иконка в правом нижнем углу */
.partner-tariffs-mobile-dock {
    position: fixed;
    left: auto;
    right: 1rem;
    bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    z-index: 1101;
    display: flex;
    justify-content: flex-end;
    width: auto;
    pointer-events: none;
}

.partner-tariffs-mobile-dock[hidden] {
    display: none !important;
}

.partner-tariffs-mobile-dock-inner {
    display: flex;
    align-items: center;
    gap: 0;
    width: auto;
    max-width: none;
    pointer-events: auto;
}

.partner-tariffs-mobile-filter-open,
.partner-tariffs-mobile-filter-reset {
    flex: 0 0 var(--partner-filter-fab-size, 3.25rem);
    width: var(--partner-filter-fab-size, 3.25rem);
    height: var(--partner-filter-fab-size, 3.25rem);
    min-width: var(--partner-filter-fab-size, 3.25rem);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0;
    border-radius: 999px;
    border: 1px solid rgba(17, 24, 39, 0.1);
    background: #fff;
    color: #1a1a1a;
    font-weight: 700;
    cursor: pointer;
    box-shadow:
        0 12px 48px rgba(0, 0, 0, 0.22),
        0 4px 16px rgba(0, 0, 0, 0.14);
    transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.partner-tariffs-mobile-filter-open {
    font-size: 0;
}

.partner-tariffs-mobile-filter-open:active,
.partner-tariffs-mobile-filter-reset:active {
    transform: scale(0.96);
}

.partner-tariffs-mobile-dock.is-dirty .partner-tariffs-mobile-filter-open {
    flex: 0 0 var(--partner-filter-fab-size, 3.25rem);
}

.partner-tariffs-mobile-filter-open[hidden],
.partner-tariffs-mobile-filter-reset[hidden] {
    display: none !important;
}

.partner-tariffs-mobile-filter-open i {
    font-size: 1.25rem;
    line-height: 1;
    color: #1a1a1a;
}

.partner-tariffs-mobile-filter-reset {
    font-size: 1.45rem;
    line-height: 1;
}

.partner-tariffs-mobile-filter-reset:hover {
    background: #f3f4f6;
}

.partner-tariffs-mobile-filter-reset:active {
    transform: scale(0.96);
}

.partner-tariffs-filter-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    visibility: hidden;
    pointer-events: none;
}

.partner-tariffs-filter-modal.is-open {
    visibility: visible;
    pointer-events: auto;
}

.partner-tariffs-filter-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    transition: opacity 0.22s ease;
}

.partner-tariffs-filter-modal.is-open .partner-tariffs-filter-modal__backdrop {
    opacity: 1;
}

.partner-tariffs-filter-modal__sheet {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: min(88vh, 640px);
    background: #f5f5f5;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    transform: translateY(105%);
    transition: transform 0.28s cubic-bezier(0.32, 0.72, 0, 1);
}

.partner-tariffs-filter-modal.is-open .partner-tariffs-filter-modal__sheet {
    transform: translateY(0);
}

.partner-tariffs-filter-modal__head {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem 0.65rem;
    background: #fff;
    border-bottom: 1px solid #eee;
    border-radius: 20px 20px 0 0;
}

.partner-tariffs-filter-modal__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: #212121;
}

.partner-tariffs-filter-modal__close {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    border: none;
    border-radius: 999px;
    background: #f0f0f0;
    color: #424242;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.partner-tariffs-filter-modal__close:hover {
    background: #e0e0e0;
}

.partner-tariffs-filter-modal__body {
    flex: 1 1 auto;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0;
    background: #f5f5f5;
    min-height: 0;
}

.partner-tariffs-filter-modal__footer {
    flex: 0 0 auto;
    padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid #eee;
}

.partner-tariffs-filter-modal__apply {
    width: 100%;
    display: block;
    border: none;
    border-radius: 999px;
    padding: 0.75rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 700;
    cursor: pointer;
    background: var(--lending-red);
    color: #fff;
    box-shadow: 0 4px 14px rgba(var(--lending-red-rgb), 0.35);
    transition: background 0.2s ease, transform 0.15s ease;
}

.partner-tariffs-filter-modal__apply:hover {
    background: var(--lending-red-dark);
}

.partner-tariffs-filter-modal__apply:active {
    transform: scale(0.98);
}

.partner-tariffs-sidebar.partner-tariffs-sidebar--in-modal {
    position: static;
    top: auto;
    margin: 0;
    border-radius: 0;
    border: none;
    box-shadow: none;
    background: transparent;
    padding: 1rem 1rem 1.25rem;
}

.partner-tariffs-sidebar.partner-tariffs-sidebar--in-modal .partner-tariffs-sidebar-title {
    display: none;
}

@media (min-width: 992px) {
    .partner-tariffs-mobile-dock,
    .partner-tariffs-filter-modal {
        display: none !important;
    }
}

.city-faq-section {
    background: #f5f5f5;
    padding: var(--ui-section-pad-y) 0;
}

.city-faq-section h2 {
    margin: 0 0 var(--ui-title-gap);
    font-size: var(--ui-title-size);
    line-height: var(--ui-title-line);
    letter-spacing: var(--ui-title-letter);
    font-weight: var(--ui-title-weight);
    color: var(--ui-title-color);
    text-align: center;
}

.city-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.city-faq-item {
    background: #fff;
    border: 1px solid #e9e9e9;
    border-radius: 14px;
    overflow: hidden;
}

.city-faq-question {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #23262b;
    list-style: none;
    cursor: pointer;
    padding: 0.95rem 2.6rem 0.95rem 1rem;
    position: relative;
    user-select: none;
}

.city-faq-question::-webkit-details-marker {
    display: none;
}

.city-faq-question::before,
.city-faq-question::after {
    content: '';
    position: absolute;
    right: 1rem;
    top: 50%;
    width: 12px;
    height: 2px;
    margin-top: -1px;
    background: #b95b5b;
    border-radius: 2px;
}

.city-faq-question::after {
    transform: rotate(90deg);
}

.city-faq-item[open] .city-faq-question::after {
    transform: rotate(0deg);
}

.city-faq-answer {
    color: #444;
    font-size: 0.95rem;
    line-height: 1.55;
    font-weight: 600;
    border-top: 1px solid #f0f0f0;
    padding: 0.85rem 1rem 1rem;
}

.city-connect-seo-section {
    background: transparent;
    padding: var(--ui-section-pad-y) 0;
}

.city-connect-seo-title--centered,
.city-connect-seo-section--office > .container > h2 {
    text-align: center;
}

.provider-card--office-b2b {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
}

.provider-card--office-b2b .provider-card-office-body {
    flex: 1 1 auto;
}

.provider-card--office-b2b .provider-card-connect-btn {
    width: 100% !important;
    max-width: 100%;
    align-self: stretch;
    margin-top: auto;
}

.city-connect-seo-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
    gap: 1.15rem;
    padding: 1.25rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--lending-red-rgb, 243, 71, 60), 0.06), transparent 42%),
        linear-gradient(165deg, #ffffff 0%, var(--lending-soft, #f6f7f9) 100%);
    box-shadow: 0 8px 28px rgba(22, 22, 22, 0.05);
}

.city-connect-seo-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.city-connect-seo-main > p {
    margin: 0;
    line-height: 1.55;
}

.city-connect-seo-intro {
    padding: 0.85rem 1rem !important;
    border-radius: 16px !important;
    border: 1px solid rgba(var(--lending-red-rgb, 243, 71, 60), 0.14) !important;
    background: var(--lending-red-soft, #fff1ef) !important;
    color: var(--lending-ink, #161616) !important;
    font-size: 0.98rem !important;
    font-weight: 600 !important;
}

.city-connect-seo-subtitle {
    margin-top: 0.15rem !important;
    margin-bottom: 0 !important;
    font-weight: 800 !important;
    color: var(--lending-ink, #161616) !important;
    font-size: 0.95rem !important;
}

.city-connect-seo-steps-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin: 0;
}

.city-connect-step-item {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-height: 4.25rem;
    padding: 0.8rem 0.85rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 0 rgba(22, 22, 22, 0.02);
    color: var(--lending-muted, #686f7a);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.4;
}

.city-connect-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    flex: 0 0 auto;
    margin-top: 0.05rem;
    border-radius: 999px;
    border: none;
    background: var(--lending-red, #f3473c);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 4px 10px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
}

.city-connect-seo-note {
    color: var(--lending-muted, #686f7a) !important;
    font-size: 0.94rem !important;
    font-weight: 600 !important;
}

.city-connect-seo-fact {
    padding: 0.85rem 1rem !important;
    border-radius: 16px !important;
    border: 1px solid var(--lending-line, #edf0f4) !important;
    background: #fff !important;
    color: var(--lending-ink, #161616) !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
}

.city-connect-seo-types {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem 0.85rem;
}

.city-connect-seo-types li {
    list-style: none;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--lending-ink, #161616);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.35;
}

.city-connect-seo-types i {
    color: var(--lending-red, #f3473c);
    font-size: 1rem;
    flex: 0 0 auto;
}

.city-connect-seo-stats {
    display: grid;
    gap: 0.65rem;
    align-content: start;
}

.city-connect-stat {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 0 rgba(22, 22, 22, 0.02);
}

.city-connect-stat-icon,
.city-connect-stat > i {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    border-radius: 12px;
    background: var(--lending-red-soft, #fff1ef);
    color: var(--lending-red, #f3473c) !important;
    font-size: 1.1rem;
    line-height: 1;
}

.city-connect-stat-icon i,
.city-connect-stat > i::before {
    display: block;
    line-height: 1;
    font-size: 1.1rem;
    width: 1em;
    height: 1em;
    margin: 0;
    padding: 0;
    text-align: center;
}

.city-connect-stat > div strong {
    display: block;
    margin-bottom: 0.1rem;
    color: var(--lending-ink, #161616);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.city-connect-stat > div span {
    display: block;
    color: var(--lending-muted, #686f7a);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;
}

.city-connect-stat-accent {
    border-color: rgba(var(--lending-red-rgb, 243, 71, 60), 0.22);
    background: linear-gradient(135deg, #fff 0%, var(--lending-red-soft, #fff1ef) 100%);
}

.city-connect-stat-accent .city-connect-stat-icon,
.city-connect-stat-accent > i {
    background: var(--lending-red, #f3473c);
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
}

@media (max-width: 991px) {
    .city-connect-seo-card {
        grid-template-columns: 1fr;
        padding: 1.05rem;
    }

    .city-connect-seo-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .city-connect-seo-steps-grid {
        grid-template-columns: 1fr;
    }

    .city-connect-seo-types {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .city-connect-seo-stats {
        grid-template-columns: 1fr;
    }

    .city-connect-step-item {
        min-height: 0;
    }
}

/* =====================
   Text style unification
   ===================== */
:root {
    --ui-text-size: 1rem;
    --ui-text-line: 1.55;
    --ui-text-weight: 400;
    --ui-text-color: #4b5563;
}

.hero-subtitle,
.hero-intro,
.providers-seo-text,
.providers-seo-text p,
.provider-stability-header p,
.provider-opinions-header p,
.tariff-quiz-intro,
.tariff-quiz-note,
.city-connect-seo-main > p:not(.city-connect-seo-intro):not(.city-connect-seo-note):not(.city-connect-seo-fact):not(.city-connect-seo-subtitle),
.city-faq-answer,
.popular-cities-seo-note,
.downdetector-head p,
.downdetector-provider-head p,
.downdetector-counts,
.downdetector-modal-issue {
    font-size: var(--ui-text-size) !important;
    line-height: var(--ui-text-line) !important;
    font-weight: var(--ui-text-weight) !important;
    color: var(--ui-text-color) !important;
}

/* =====================
   Страница «О нас»
   ===================== */
.page-about .navbar .navbar-sections {
    justify-self: end;
}

.about-page .hero-section {
    padding-bottom: 1.5rem;
}

.about-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--lending-red);
    margin-bottom: 0.75rem;
}

.about-section {
    padding: 2rem 0;
}

.about-section-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1f2328;
    margin-bottom: 1rem;
}

.about-mission-card {
    max-width: 52rem;
}

.about-lead {
    font-size: 1.05rem;
    line-height: 1.65;
    color: #374151;
    margin: 0;
}

.about-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
    border-left: 3px solid #c8e6c9;
    margin-left: 0.75rem;
    padding-left: 1.5rem;
}

.about-timeline-item {
    position: relative;
    padding-bottom: 1.75rem;
}

.about-timeline-item:last-child {
    padding-bottom: 0;
}

.about-timeline-marker {
    position: absolute;
    left: -1.5rem;
    transform: translateX(-50%);
    top: 0;
    background: var(--lending-red);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    white-space: nowrap;
    min-width: 3rem;
    text-align: center;
}

.about-timeline-body {
    margin-left: 0.5rem;
}

.about-timeline-heading {
    font-size: 1.15rem;
    margin: 0 0 0.5rem;
    color: #1f2328;
}

.about-timeline-text {
    margin: 0;
    color: #4b5563;
    line-height: 1.6;
    white-space: pre-wrap;
}

.about-team-intro {
    max-width: 48rem;
    color: #4b5563;
    margin-bottom: 1.25rem;
    line-height: 1.55;
}

.about-team-intro--after-collage {
    margin-top: 0;
    margin-bottom: 1.5rem;
}

.about-team-collage {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: stretch;
    margin-bottom: 1.25rem;
}

.about-team-collage__main {
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(145deg, #e8f5e9 0%, #f3f4f6 100%);
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
    min-height: 260px;
}

.about-team-collage__main img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    display: block;
}

.about-team-collage__stack {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 260px;
}

.about-team-collage__side {
    flex: 1;
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(145deg, #e8f5e9 0%, #f3f4f6 100%);
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
    min-height: 0;
}

.about-team-collage__side img {
    width: 100%;
    height: 100%;
    min-height: 120px;
    object-fit: cover;
    display: block;
}

@media (max-width: 640px) {
    .about-team-collage {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .about-team-collage__main {
        min-height: 200px;
        aspect-ratio: 16 / 10;
    }

    .about-team-collage__main img {
        min-height: 200px;
    }

    .about-team-collage__stack {
        flex-direction: row;
        min-height: 0;
    }

    .about-team-collage__side {
        flex: 1;
        min-height: 160px;
    }

    .about-team-collage__side img {
        min-height: 160px;
    }
}

.about-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 1.5rem;
    width: 100%;
}

/* Ровно три карточки на широком экране — три равные колонки на всю ширину контейнера */
@media (min-width: 901px) {
    .about-team-grid:has(> :nth-child(3):last-child) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .about-team-grid {
        gap: 1.25rem;
    }
}

@media (max-width: 560px) {
    .about-team-grid {
        grid-template-columns: 1fr;
    }
}

.about-team-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.75rem 1.5rem;
    min-width: 0;
}

.about-team-photo-wrap {
    margin-bottom: 1rem;
}

.about-team-photo {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #e8f5e9;
}

@media (min-width: 901px) {
    .about-team-photo {
        width: 220px;
        height: 220px;
    }

    .about-team-card {
        padding: 2rem 1.25rem;
    }

    .about-team-name {
        font-size: 1.25rem;
    }

    .about-team-role {
        font-size: 1rem;
    }
}

.about-team-photo--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f3f4f6;
    color: #9ca3af;
    font-size: 3.5rem;
}

@media (min-width: 901px) {
    .about-team-photo--placeholder {
        font-size: 4rem;
    }
}

.about-team-name {
    font-size: 1.15rem;
    margin: 0 0 0.35rem;
    color: #1f2328;
}

.about-team-role {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--lending-red);
    margin: 0 0 0.75rem;
}

.about-team-bio {
    font-size: 0.95rem;
    color: #4b5563;
    text-align: left;
    width: 100%;
    line-height: 1.55;
}

.about-contacts-card {
    max-width: 42rem;
}

.about-contacts-list {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
}

.about-contacts-list li {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    align-items: baseline;
    margin-bottom: 0.5rem;
}

.about-contacts-label {
    font-weight: 600;
    color: #374151;
    min-width: 4.5rem;
}

.about-company-details {
    border-top: 1px solid #e5e7eb;
    padding-top: 1rem;
    font-size: 0.95rem;
    line-height: 1.55;
    color: #374151;
}

.about-company-details p:last-child {
    margin-bottom: 0;
}

.about-empty-note {
    color: #6b7280;
    font-size: 0.95rem;
    margin: 0;
}

.about-empty-note--inline {
    margin-top: 0.5rem;
}

/* Статические страницы: компания / команда / контакты */
.info-page-hero {
    padding: 1.75rem 0 1.25rem;
}

.info-page-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.65rem;
    color: var(--lending-red);
    font-size: 0.92rem;
    font-weight: 700;
}

.info-page-title {
    margin: 0 0 0.75rem;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--ui-title-color, #212121);
}

.info-page-lead {
    margin: 0;
    max-width: 46rem;
    color: #4b5563;
    font-size: 1.08rem;
    line-height: 1.55;
}

.info-page-section {
    padding: var(--ui-section-pad-y, 2rem) 0;
}

.info-page-section--muted {
    background: #f6f7f9;
}

.info-page-h2 {
    margin: 0 0 1rem;
    font-size: var(--ui-title-size, clamp(1.35rem, 2vw, 1.95rem));
    font-weight: var(--ui-title-weight, 800);
    line-height: var(--ui-title-line, 1.25);
    letter-spacing: var(--ui-title-letter, -0.02em);
    color: var(--ui-title-color, #212121);
}

.info-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

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

.info-page-card {
    padding: 1.35rem 1.4rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(22, 22, 22, 0.04);
}

.info-page-card--accent {
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--lending-red-rgb), 0.08), transparent 48%),
        #fff;
}

.info-page-text {
    margin: 0 0 1rem;
    color: #374151;
    font-size: 1.02rem;
    line-height: 1.6;
}

.info-page-text:last-child {
    margin-bottom: 0;
}

.info-page-text--pre {
    white-space: pre-line;
}

.info-page-values {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.info-page-values li {
    position: relative;
    padding-left: 1.15rem;
    color: #1f2328;
    font-weight: 650;
    line-height: 1.45;
}

.info-page-values li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: var(--lending-red);
}

.info-page-rich {
    color: #374151;
    font-size: 0.98rem;
    line-height: 1.55;
}

.info-page-rich h2 {
    margin: 1.1rem 0 0.55rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: #1f2328;
}

.info-page-rich h2:first-child {
    margin-top: 0;
}

.info-page-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.info-page-empty {
    margin: 0;
    color: #6b7280;
}

/* Страница команды */
.crew-hero {
    padding: 0.35rem 0 0.5rem;
}

.crew-hero-photo {
    margin: 0 0 1rem;
    border-radius: 22px;
    overflow: hidden;
    background: #f3f4f6;
    box-shadow: 0 12px 36px rgba(22, 22, 22, 0.08);
}

.crew-hero-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1400 / 780;
    object-fit: cover;
}

.crew-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.crew-stat-card {
    padding: 1.15rem 1.2rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--lending-line, #edf0f4);
    box-shadow: 0 8px 22px rgba(22, 22, 22, 0.04);
    text-align: center;
}

.crew-stat-value {
    font-size: clamp(1.55rem, 2.6vw, 2rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #000;
}

.crew-stat-label {
    margin-top: 0.3rem;
    color: #000;
    font-size: 0.95rem;
    font-weight: 600;
}

.crew-about {
    padding-top: 1.5rem;
}

.crew-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.85fr);
    gap: 1.25rem;
    align-items: start;
}

.crew-about-title {
    margin: 0 0 1rem;
    font-size: clamp(1.55rem, 2.8vw, 2.1rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #000;
}

.crew-about-text {
    margin: 0 0 0.9rem;
    color: #000;
    font-size: 1.02rem;
    line-height: 1.6;
}

.crew-about-text:last-child {
    margin-bottom: 0;
}

.crew-mission-card {
    padding: 1.35rem 1.4rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--lending-line, #edf0f4);
    box-shadow: 0 8px 22px rgba(22, 22, 22, 0.04);
}

.crew-mission-title {
    margin: 0 0 0.65rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: #000;
}

.crew-mission-text {
    margin: 0;
    color: #000;
    font-size: 0.98rem;
    line-height: 1.55;
}

.crew-experts-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
    gap: 1.15rem;
    align-items: start;
}

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

.crew-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.25rem 1.1rem 1.2rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(22, 22, 22, 0.04);
}

.crew-card-photo-wrap {
    margin-bottom: 0.85rem;
}

.crew-card-photo {
    display: block;
    width: 112px;
    height: 112px;
    border-radius: 999px;
    object-fit: cover;
    background: #f3f4f6;
}

.crew-card-photo--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
    font-size: 2.5rem;
}

.crew-card-name {
    margin: 0 0 0.25rem;
    font-size: 1.08rem;
    font-weight: 800;
    color: #000;
}

.crew-card-role {
    margin: 0;
    color: #4b5563;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.35;
}

.crew-card-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
    margin-top: auto;
    padding-top: 0.9rem;
}

.crew-card-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.35rem;
    border-radius: 8px;
    background: #eef2ff;
    color: #3b5bdb !important;
    text-decoration: none !important;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.crew-card-social .bi {
    font-size: 1rem;
}

.crew-card-social:hover {
    background: #e0e7ff;
    color: #364fc7 !important;
}

.crew-team-note {
    margin: 1.15rem 0 0;
    max-width: 48rem;
    color: #000;
    font-size: 0.98rem;
    line-height: 1.55;
}

.crew-employer-card {
    position: sticky;
    top: 5.5rem;
    padding: 1.25rem 1.2rem 1.3rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--lending-line, #edf0f4);
    box-shadow: 0 8px 24px rgba(22, 22, 22, 0.05);
}

.crew-employer-title {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #000;
}

.crew-employer-score {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.crew-employer-value {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    color: #000;
}

.crew-employer-stars {
    display: inline-flex;
    gap: 0.12rem;
    color: #f5a524;
    font-size: 0.95rem;
}

.crew-employer-label {
    margin: 0.35rem 0 0.75rem;
    color: #000;
    font-weight: 700;
    font-size: 0.95rem;
}

.crew-employer-text {
    margin: 0 0 1rem;
    color: #000;
    font-size: 0.92rem;
    line-height: 1.45;
}

.crew-employer-btn {
    width: 100%;
    justify-content: center;
}

.crew-certs-carousel {
    margin-top: 0.2rem;
}

.crew-cert-slide {
    flex-basis: calc((100% - 2.5rem) / 3);
}

.crew-cert-card {
    margin: 0;
    height: 100%;
    padding: 0.85rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--lending-line, #edf0f4);
    box-shadow: 0 8px 22px rgba(22, 22, 22, 0.04);
}

.crew-cert-card img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 280px;
    object-fit: contain;
    border-radius: 12px;
    background: #f8f9fb;
}

.crew-cert-card figcaption {
    margin-top: 0.65rem;
    color: #000;
    font-size: 0.88rem;
    line-height: 1.4;
    text-align: center;
}

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

.crew-article-card {
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--lending-line, #edf0f4);
    box-shadow: 0 8px 22px rgba(22, 22, 22, 0.04);
    color: inherit;
    text-decoration: none;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.crew-article-card:hover {
    color: inherit;
    text-decoration: none;
    border-color: rgba(var(--lending-red-rgb), 0.28);
    box-shadow: 0 10px 26px rgba(22, 22, 22, 0.07);
}

.crew-article-cover {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 110px;
    max-height: 140px;
    object-fit: cover;
    border-radius: 12px;
    background: #f3f4f6;
}

.crew-article-author {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.45rem;
    color: #4b5563;
    font-size: 0.86rem;
    font-weight: 650;
}

.crew-article-author img {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    object-fit: cover;
}

.crew-article-title {
    margin: 0 0 0.45rem;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.3;
    color: #000;
}

.crew-article-text {
    margin: 0 0 0.55rem;
    color: #000;
    font-size: 0.92rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.crew-article-date {
    color: #9aa1ab;
    font-size: 0.86rem;
    font-weight: 500;
}

@media (max-width: 991px) {
    .info-page-grid,
    .info-page-grid--contacts,
    .crew-grid,
    .crew-about-grid,
    .crew-experts-layout,
    .crew-articles {
        grid-template-columns: 1fr;
    }

    .crew-stats {
        grid-template-columns: 1fr;
    }

    .crew-employer-card {
        position: static;
    }

    .crew-cert-slide {
        flex-basis: calc((100% - 1.25rem) / 2.15);
    }
}

@media (max-width: 575px) {
    .crew-article-card {
        grid-template-columns: 1fr;
    }

    .crew-cert-slide {
        flex-basis: 85%;
    }
}

/* Страница компании / команды / контактов — layout как на landing-cms.telekomza.ru */
body.site-lending.page-company,
body.site-lending.page-crew,
body.site-lending.page-contacts {
    --lending-page-bg: #fafbfc;
    --lending-content-bg: #fff;
    background: var(--lending-page-bg);
}

body.site-lending.page-company .city-page-top,
body.site-lending.page-company .company-page,
body.site-lending.page-company .company-hero,
body.site-lending.page-company .info-page-section,
body.site-lending.page-company .info-page-section--muted,
body.site-lending.page-crew .city-page-top,
body.site-lending.page-crew .crew-page,
body.site-lending.page-crew .crew-hero,
body.site-lending.page-crew .info-page-section,
body.site-lending.page-crew .info-page-section--muted,
body.site-lending.page-contacts .city-page-top,
body.site-lending.page-contacts .contacts-page,
body.site-lending.page-contacts .contacts-hero,
body.site-lending.page-contacts .info-page-section,
body.site-lending.page-contacts .info-page-section--muted {
    background: var(--lending-page-bg);
}

/* Address availability CTA — white band + panel (company / crew / contacts) */
body.site-lending.page-company .landing-address-widget,
body.site-lending.page-crew .landing-address-widget,
body.site-lending.page-contacts .landing-address-widget {
    padding: 1.5rem 0 2.35rem;
    background: #fff;
    border-top: 0;
}

body.site-lending.page-company .landing-address-panel,
body.site-lending.page-crew .landing-address-panel,
body.site-lending.page-contacts .landing-address-panel {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    padding: 1.5rem 1.6rem 1.25rem;
    border-radius: 1.1rem;
    background: #fff;
    border: 1px solid rgba(17, 24, 39, 0.06);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

body.site-lending.page-company .landing-address-panel-top,
body.site-lending.page-crew .landing-address-panel-top,
body.site-lending.page-contacts .landing-address-panel-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    flex-wrap: wrap;
    width: 100%;
}

body.site-lending.page-company .landing-address-panel .landing-section-title,
body.site-lending.page-crew .landing-address-panel .landing-section-title,
body.site-lending.page-contacts .landing-address-panel .landing-section-title {
    margin: 0 0 0.45rem;
    font-size: clamp(1.35rem, 2vw, 1.95rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: #111827;
}

body.site-lending.page-company .landing-address-panel .landing-section-lead,
body.site-lending.page-crew .landing-address-panel .landing-section-lead,
body.site-lending.page-contacts .landing-address-panel .landing-section-lead {
    margin: 0;
    max-width: 40rem;
    color: #6b7280;
    font-size: 1.05rem;
    line-height: 1.55;
}

body.site-lending.page-company .landing-address-logos,
body.site-lending.page-crew .landing-address-logos,
body.site-lending.page-contacts .landing-address-logos {
    width: 100%;
    border-top: 1px solid rgba(17, 24, 39, 0.08);
    padding-top: 0.95rem;
}

body.site-lending.page-company .landing-address-logos-viewport,
body.site-lending.page-crew .landing-address-logos-viewport,
body.site-lending.page-contacts .landing-address-logos-viewport {
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

body.site-lending.page-company .landing-address-logos-track,
body.site-lending.page-crew .landing-address-logos-track,
body.site-lending.page-contacts .landing-address-logos-track {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    width: max-content;
    animation: landing-address-logos-marquee 28s linear infinite;
}

body.site-lending.page-company .landing-address-logos:hover .landing-address-logos-track,
body.site-lending.page-crew .landing-address-logos:hover .landing-address-logos-track {
    animation-play-state: paused;
}

body.site-lending.page-company .landing-address-logo-item,
body.site-lending.page-crew .landing-address-logo-item,
body.site-lending.page-contacts .landing-address-logo-item {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    height: 2.4rem;
    opacity: 0.88;
}

body.site-lending.page-company .landing-address-logo-item img,
body.site-lending.page-crew .landing-address-logo-item img {
    display: block;
    max-height: 2.15rem;
    max-width: 7.25rem;
    width: auto;
    height: auto;
    object-fit: contain;
}

@media (max-width: 768px) {
    body.site-lending.page-company .landing-address-panel .btn-search,
    body.site-lending.page-crew .landing-address-panel .btn-search {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.site-lending.page-company .landing-address-logos-track,
    body.site-lending.page-crew .landing-address-logos-track {
        animation: none;
        flex-wrap: wrap;
        width: 100%;
        justify-content: flex-start;
        gap: 1rem 1.35rem;
    }

    body.site-lending.page-company .landing-address-logos-viewport,
    body.site-lending.page-crew .landing-address-logos-viewport {
        mask-image: none;
        -webkit-mask-image: none;
    }

    body.site-lending.page-company .landing-address-logo-item[aria-hidden="true"],
    body.site-lending.page-crew .landing-address-logo-item[aria-hidden="true"] {
        display: none;
    }
}

.company-hero {
    padding: 1.5rem 0 2rem;
}

.company-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 1.75rem;
    align-items: center;
}

.company-hero-photo {
    margin: 0;
    border-radius: 22px;
    overflow: hidden;
    background: #f3f4f6;
    box-shadow: 0 12px 36px rgba(22, 22, 22, 0.08);
}

.company-hero-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 623 / 467;
    object-fit: cover;
}

.company-hero-title {
    margin: 0 0 1rem;
    font-size: clamp(1.45rem, 2.6vw, 2rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--ui-title-color, #212121);
}

.company-hero-subtitle {
    margin: 1.15rem 0 0.55rem;
    font-size: 1.12rem;
    font-weight: 800;
    color: #1f2328;
}

.company-hero-text {
    margin: 0 0 0.85rem;
    color: #000;
    font-size: 1.02rem;
    line-height: 1.6;
}

.company-hero-text:last-child {
    margin-bottom: 0;
}

.company-partners {
    padding: 0.85rem 0 1.35rem;
    background: transparent;
}

.company-partners-track {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1.25rem 1.75rem;
}

.company-partners-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    opacity: 0.88;
}

.company-partners-item img {
    display: block;
    max-width: 118px;
    max-height: 36px;
    width: auto;
    height: auto;
    object-fit: contain;
}

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

.company-maps-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1.2rem 1.3rem 1.15rem;
    border-radius: 22px;
    border: 1px solid var(--lending-line, #edf0f4);
    background: #fff;
    box-shadow: 0 8px 28px rgba(22, 22, 22, 0.04);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.company-maps-card:hover {
    border-color: rgba(var(--lending-red-rgb), 0.35);
    box-shadow: 0 10px 32px rgba(22, 22, 22, 0.08);
}

.company-maps-logo img {
    display: block;
    width: auto;
    max-width: min(100%, 220px);
    height: 36px;
    object-fit: contain;
    object-position: left center;
}

.company-maps-stars {
    display: inline-flex;
    gap: 0.18rem;
    color: #f2994a;
    font-size: 1.05rem;
    line-height: 1;
}

.company-maps-ext {
    position: absolute;
    top: 1rem;
    right: 1rem;
    color: #0057ff;
    font-size: 1rem;
}

.company-history-lead {
    margin: 0 0 1.15rem;
    max-width: 52rem;
    color: #000;
    font-size: 1.02rem;
    line-height: 1.6;
    white-space: pre-line;
}

.company-history-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.company-history-card {
    padding: 1.15rem 1.15rem 1.2rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--lending-line, #edf0f4);
}

.company-history-year {
    margin: 0 0 0.55rem;
    font-size: 1.2rem;
    font-weight: 800;
    color: #1f2328;
}

.company-history-text {
    margin: 0;
    color: #000;
    font-size: 0.96rem;
    line-height: 1.45;
}

.company-values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.company-value-card {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1.05rem 1.1rem;
    border-radius: 18px;
    background: #f6f7f9;
    border: 1px solid transparent;
}

.company-value-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
}

.company-value-icon img {
    display: block;
    width: 40px;
    height: 40px;
}

.company-value-text {
    margin: 0;
    color: #000;
    font-weight: 650;
    font-size: 0.98rem;
    line-height: 1.4;
}

.company-cta-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.company-cta-copy {
    flex: 1 1 18rem;
    max-width: 36rem;
}

.company-cta-text {
    margin: 0.35rem 0 0;
    color: #4b5563;
    line-height: 1.5;
}

.company-media-carousel {
    margin-top: 0.35rem;
}

.company-media-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.company-media-viewport::-webkit-scrollbar {
    display: none;
}

.company-media-track {
    display: flex;
    gap: 1.25rem;
    align-items: stretch;
}

.company-media-slide {
    flex: 0 0 calc((100% - 3.75rem) / 3.35);
    min-width: 0;
    scroll-snap-align: start;
}

a.company-media-card {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    height: 100%;
    min-height: 15.5rem;
    padding: 1.35rem 1.25rem 1.45rem;
    border-radius: 18px;
    background: #f3f4f6;
    color: #1a1d21;
    text-decoration: none;
    box-sizing: border-box;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

a.company-media-card:hover {
    background: #eceef1;
    color: #1a1d21;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(17, 24, 39, 0.06);
}

.company-media-logo {
    display: block;
    width: auto;
    max-width: 160px;
    max-height: 28px;
    object-fit: contain;
    object-position: left center;
}

.company-media-date {
    display: block;
    margin: 0;
    color: #9aa1ab;
    font-size: 0.88rem;
    font-weight: 500;
    line-height: 1.3;
}

.company-media-title {
    margin: 0;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -0.015em;
    color: #1a1d21;
}

.company-media-progress {
    margin-top: 1.15rem;
    width: 100%;
    height: 3px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.company-media-progress-fill {
    height: 100%;
    width: 35%;
    border-radius: inherit;
    background: var(--lending-red, #c45c48);
    transform: translateX(0);
    transform-origin: left center;
    will-change: transform, width;
}

.company-media-actions {
    margin-top: 1.25rem;
}

/* Width by content — orange fill/white text come from .btn-connect-card */
a.company-media-more.btn-connect-card {
    width: auto;
    max-width: 100%;
    display: inline-flex;
    text-decoration: none;
}

.company-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

@media (max-width: 991px) {
    .company-hero-grid,
    .company-maps-grid,
    .company-history-grid,
    .company-values-grid {
        grid-template-columns: 1fr;
    }

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

    .company-media-slide {
        flex-basis: calc((100% - 1.25rem) / 2.15);
    }
}

@media (max-width: 575px) {
    .company-history-grid {
        grid-template-columns: 1fr;
    }

    .company-maps-logo img {
        height: 30px;
    }

    .company-media-slide {
        flex-basis: 85%;
    }

    .company-media-card {
        min-height: 14rem;
        padding: 1.2rem 1.1rem 1.25rem;
    }
}

@media (max-width: 575px) {
    .about-timeline-marker {
        position: static;
        transform: none;
        display: inline-block;
        margin-bottom: 0.5rem;
    }

    .about-timeline {
        border-left: none;
        margin-left: 0;
        padding-left: 0;
    }

    .about-timeline-body {
        margin-left: 0;
    }
}

/* Контакты — layout как landing-cms.telekomza.ru/contacts, в UI company/crew */
.contacts-hero {
    padding: 0.35rem 0 0.85rem;
}

.contacts-hero-title {
    margin: 0;
    font-size: clamp(1.45rem, 2.6vw, 2rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--ui-title-color, #212121);
}

.contacts-card-title {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 800;
    color: #1f2328;
}

.contacts-main {
    padding-top: 0.5rem;
}

.contacts-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
}

.contacts-requisites-card,
.contacts-map-card,
.contacts-mini-card,
.contacts-action-card {
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--lending-line, #edf0f4);
    box-shadow: 0 8px 24px rgba(22, 22, 22, 0.04);
}

.contacts-requisites-card {
    padding: 1.2rem 1.25rem 1.25rem;
}

.contacts-requisites-body {
    margin-top: 0.85rem;
}

.contacts-requisites-body[data-collapsed="true"] {
    max-height: 20rem;
    overflow: hidden;
    position: relative;
}

.contacts-requisites-body[data-collapsed="true"]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3.5rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 85%);
    pointer-events: none;
}

.contacts-requisites-inner {
    color: #000;
    font-size: 0.98rem;
    line-height: 1.55;
}

.contacts-requisites-inner p {
    margin: 0 0 0.55rem;
}

.contacts-requisites-inner p:last-child {
    margin-bottom: 0;
}

.contacts-requisites-more {
    margin-top: 0.9rem;
    width: auto;
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--ui-btn-height, 2.75rem);
    padding: 0.7rem 1.35rem;
    border: none;
    border-radius: 999px;
    background: var(--lending-red, #ff6033);
    color: #fff;
    font-weight: 700;
    font-size: var(--ui-btn-font-size, 0.95rem);
    line-height: 1.2;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(var(--lending-red-rgb, 255, 96, 51), 0.3);
    transition: background 0.2s ease, transform 0.2s ease;
}

.contacts-requisites-more:hover {
    background: var(--lending-red-dark, #e84e24);
    color: #fff;
}

.contacts-map-card {
    overflow: hidden;
    min-height: 22rem;
}

.contacts-map-card iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 22rem;
    border: 0;
}

.contacts-mini-grid,
.contacts-actions-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.contacts-mini-card {
    padding: 1.15rem 1.2rem 1.2rem;
}

.contacts-mini-head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.95rem;
}

.contacts-mini-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    background: rgba(243, 71, 60, 0.08);
    color: #f3473c;
    font-size: 1.15rem;
}

.contacts-mini-icon img {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
}

.contacts-phones-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.contacts-phone-link {
    color: #1f2328;
    font-weight: 700;
    font-size: 1.05rem;
    text-decoration: none;
}

.contacts-phone-link:hover {
    color: #f3473c;
    text-decoration: none;
}

.contacts-mini-note {
    margin: 0.95rem 0 0;
    color: #6b7280;
    font-size: 0.9rem;
    line-height: 1.45;
}

.contacts-hours-list {
    margin: 0;
    display: grid;
    gap: 0.7rem;
}

.contacts-hours-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.contacts-hours-row dt {
    margin: 0;
    color: #6b7280;
    font-weight: 600;
}

.contacts-hours-row dd {
    margin: 0;
    color: #111827;
    font-weight: 800;
}

.contacts-action-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        'copy visual'
        'btn btn';
    gap: 0.85rem 1rem;
    padding: 1.25rem 1.3rem 1.3rem;
    align-items: start;
}

.contacts-action-copy {
    grid-area: copy;
}

.contacts-action-title {
    margin: 0 0 0.4rem;
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.3;
    color: #111827;
}

.contacts-action-text {
    margin: 0;
    color: #6b7280;
    font-size: 0.98rem;
    line-height: 1.45;
}

.contacts-action-visual {
    grid-area: visual;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5.5rem;
    height: 5.5rem;
}

.contacts-action-visual img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.contacts-action-btn {
    grid-area: btn;
    width: auto;
    max-width: 100%;
    justify-self: start;
}

.contacts-action-btn.btn-search {
    min-height: 2.85rem;
    padding: 0.7rem 1.35rem;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
    font-weight: 700;
}

.contacts-about-panel {
    padding: 1.35rem 1.45rem;
    border-radius: 1.25rem;
    background: #fff;
    border: 1px solid rgba(17, 24, 39, 0.06);
    box-shadow: 0 8px 28px rgba(17, 24, 39, 0.05);
}

.contacts-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 1.5rem;
    align-items: center;
}

.contacts-about-photo {
    margin: 0;
    border-radius: 1rem;
    overflow: hidden;
    background: #f3f4f6;
}

.contacts-about-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

.contacts-about-title,
.contacts-about-rich > :is(h1, h2, h3):first-child {
    margin: 0 0 0.85rem;
    font-size: clamp(1.25rem, 2.2vw, 1.65rem);
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: #111827;
}

.contacts-about-text,
.contacts-about-rich {
    margin: 0;
    color: #000;
    font-size: 1.02rem;
    line-height: 1.6;
}

.contacts-about-rich p {
    margin: 0 0 0.75rem;
}

.contacts-about-rich p:last-child {
    margin-bottom: 0;
}

.contacts-about-rich ul {
    margin: 0.5rem 0 0;
    padding-left: 1.15rem;
}

.contacts-about-rich li {
    margin: 0 0 0.35rem;
}

@media (max-width: 991px) {
    .contacts-main-grid,
    .contacts-mini-grid,
    .contacts-actions-grid,
    .contacts-about-grid {
        grid-template-columns: 1fr;
    }

    .contacts-about-panel {
        padding: 1.1rem;
    }

    .contacts-map-card,
    .contacts-map-card iframe {
        min-height: 18rem;
    }
}

@media (max-width: 575px) {
    .contacts-action-card {
        grid-template-columns: 1fr;
        grid-template-areas:
            'copy'
            'visual'
            'btn';
    }

    .contacts-action-visual {
        width: 4.5rem;
        height: 4.5rem;
    }

    .contacts-action-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Страница тарифов по адресу: заголовок, улица+дом без переноса, кнопка по центру */
.hero-title.hero-title--address-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 1rem;
    text-align: center;
}

.hero-title-address-prefix {
    display: block;
    white-space: normal;
}

.hero-title-address-line {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    gap: 0 0.35rem;
    max-width: 100%;
}

.hero-title-address-city {
    display: inline;
}

.hero-title-address-street,
.hero-title-address-text {
    display: inline;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .hero-title-address-street,
    .hero-title-address-text {
        font-size: 0.92em;
    }
}

button.hero-change-address-btn.btn-check-availability {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem !important;
    font-weight: 600;
    padding: 0.18rem 0.5rem !important;
    border-radius: 8px;
    line-height: 1.2;
    margin: 0.15rem auto 0;
    flex: 0 0 auto;
    width: auto !important;
    max-width: none !important;
    white-space: nowrap;
    align-self: center;
}

/* ——— Раздел поддержки провайдеров (/support/) ——— */
.page-support {
    --support-section-gap: 2rem;
    --support-card-padding: 1.15rem 1.25rem;
}

body.page-support .navbar-service-tag {
    display: none !important;
}

.support-page {
    padding-bottom: 2rem;
}

.support-page .hero-subtitle,
.support-provider-intro .hero-subtitle,
.support-page .support-hero-points,
.support-page .support-head p,
.support-page .support-phone-note,
.support-page .support-phone-fallback,
.support-page .support-seo p,
.support-page .support-quiz-lead,
.support-page .support-quiz-result-body,
.support-page .popular-cities-subtitle,
.support-page .city-faq-answer,
.support-page .downdetector-address-check-hint {
    color: #111827 !important;
    font-size: 1.05rem !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
}

.support-page .hero-section {
    padding-top: 2.2rem;
    padding-bottom: 1.35rem;
    border-bottom: 1px solid var(--lending-line, #edf0f4);
}

.support-page .hero-title {
    margin-bottom: 0.55rem;
}

.support-page .hero-subtitle {
    margin-bottom: 0;
}

.support-hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
    margin-top: 1.25rem;
    font-size: 0.92rem;
}

.support-hero-points span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.support-section {
    margin-top: var(--support-section-gap);
}

.support-section > .container {
    display: flex;
    flex-direction: column;
    gap: var(--support-section-gap);
}

.support-page .section-card {
    background: var(--lending-soft, #f6f7f9);
    border-color: var(--lending-line, #eef0f3);
    border-radius: 15px;
    padding: var(--support-card-padding);
    margin-bottom: 0;
    box-shadow: 0 12px 30px rgba(17, 24, 39, 0.05);
}

.support-head {
    margin-bottom: 0;
}

.support-head h2,
.support-head p {
    margin-bottom: 0;
}

.support-head h2 {
    margin-top: 0.35rem;
}

.support-head p {
    margin-top: 0.65rem;
    line-height: 1.55;
}

.support-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--support-section-gap);
}

.support-card {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 116px;
    padding: 1rem 1.1rem;
    border-radius: 14px;
    border: 1px solid var(--lending-line, #eef0f3);
    background: var(--lending-soft, #f6f7f9);
    text-decoration: none;
    color: #111827;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.support-card:hover,
.support-card:focus-visible {
    border-color: rgba(45, 108, 223, 0.45);
    box-shadow: 0 8px 24px rgba(30, 60, 90, 0.08);
    text-decoration: none;
    color: #111827;
}

.support-card-head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.support-card-logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.support-card-name {
    font-weight: 800;
    font-size: 1rem;
    color: var(--lending-red, var(--lending-red));
    text-decoration: none;
}

.support-card-phone {
    font-size: 0.95rem;
    font-weight: 700;
    color: #111827;
    line-height: 1.45;
    text-decoration: none;
}

.support-card-phone--muted {
    color: var(--text-muted, #5c6b7a);
    font-weight: 600;
}

.support-card:hover .support-card-name,
.support-card:hover .support-card-phone,
.support-card:focus-visible .support-card-name,
.support-card:focus-visible .support-card-phone {
    text-decoration: none;
}

.support-card:hover .support-card-name,
.support-card:focus-visible .support-card-name {
    color: var(--lending-red-dark, var(--lending-red-dark));
}

.support-provider-layout {
    display: flex;
    flex-direction: column;
    gap: var(--support-section-gap);
}

.support-section--provider {
    margin-top: 1.35rem;
}

.site-breadcrumbs-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.site-breadcrumbs-bar .site-breadcrumbs {
    flex: 1 1 auto;
    min-width: 0;
}

.support-breadcrumbs-logo {
    flex: 0 0 auto;
    margin-left: auto;
}

.support-breadcrumbs-logo .support-provider-logo {
    display: block;
    max-height: 36px;
    max-width: 140px;
    object-fit: contain;
}

.support-provider-intro-top,
.support-provider-hero {
    display: block;
}

.support-provider-intro-bottom {
    margin-top: 1.15rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(109, 133, 158, 0.16);
}

.support-provider-intro-bottom .support-phone-primary {
    min-width: 0;
}

.support-provider-intro .hero-title {
    margin-bottom: 0.55rem;
}

.support-provider-intro .hero-subtitle {
    margin-bottom: 0;
}

.support-provider-intro .support-phone-fallback {
    margin-top: 1.15rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(109, 133, 158, 0.16);
}

.support-provider-logo {
    max-height: 48px;
    max-width: 160px;
    object-fit: contain;
}

.support-phone-primary {
    margin-top: 0;
}

.support-phone-link,
.support-quiz-title {
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--lending-red, var(--lending-red));
}

.support-phone-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
}

.support-phone-link:hover {
    color: var(--lending-red-dark, var(--lending-red-dark));
}

.support-phone-note,
.support-phone-fallback {
    margin: 0.65rem 0 0;
    font-size: 0.92rem;
    max-width: 42rem;
}

.support-phone-secondary {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(109, 133, 158, 0.2);
}

.support-phone-secondary-label {
    display: block;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #5c6b7a);
    margin-bottom: 0.35rem;
}

.support-phone-link--secondary {
    font-size: 1.1rem;
}

.support-hero-quiz-link {
    color: var(--lending-red, var(--lending-red));
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.support-hero-quiz-link:hover {
    color: var(--lending-red-dark, var(--lending-red-dark));
}

.support-quiz {
    position: relative;
    overflow: hidden;
    padding: 1.1rem 1.15rem 1.15rem;
    scroll-margin-top: 5.5rem;
}

.support-quiz-title {
    position: relative;
    z-index: 1;
    margin: 0 0 0.45rem;
    letter-spacing: normal;
    text-transform: none;
}

.support-quiz-head h2.support-quiz-title {
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--lending-red, var(--lending-red));
}

.support-quiz-lead {
    position: relative;
    z-index: 1;
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.45;
    max-width: 40rem;
}

.support-quiz-body {
    position: relative;
    z-index: 1;
    margin-top: 1rem;
}

.support-quiz--result .support-quiz-body {
    margin-top: 0;
}

.support-quiz-question {
    font-weight: 700;
    font-size: 1.02rem;
    margin: 0 0 0.85rem;
    color: #1f2937;
}

.support-quiz-options {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.support-quiz-option-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    text-align: left;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid #e3e6eb;
    background: #fff;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.04);
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 600;
    color: #1f2937;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.support-quiz-option-btn:hover {
    border-color: #c5cad3;
    background: #fff;
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.08);
    transform: translateY(-1px);
}

.support-quiz-option-label {
    flex: 1;
}

.support-quiz-option-chevron {
    flex-shrink: 0;
    color: #8b939e;
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 700;
}

.support-quiz-result {
    padding: 0.9rem 1rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e3e6eb;
}

.support-quiz-result-badge {
    display: inline-block;
    margin-bottom: 0.45rem;
}

.support-quiz-result-title {
    margin: 0 0 0.65rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: #111827;
}

.support-quiz-result-body {
    margin: 0;
    max-width: 42rem;
    line-height: 1.55;
}

.support-quiz-footer-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    margin-top: 1rem;
}

.support-quiz-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.support-quiz-restart,
.support-quiz-result-actions .btn-connect-card,
.support-quiz-result-actions .btn-details,
.support-quiz-result-actions .btn-check-availability {
    width: auto;
}

body.page-support .downdetector-address-check,
.support-page .downdetector-address-check {
    margin: 0;
    padding: var(--support-card-padding);
    border: 2px solid #3d8b2f !important;
    border-left: 6px solid #2f6f24 !important;
    border-radius: 18px;
    background:
        radial-gradient(circle at 100% 0%, rgba(95, 179, 52, 0.3), transparent 200px),
        linear-gradient(135deg, #e5f9d2 0%, #d0f2a8 55%, #b8e87a 100%) !important;
    box-shadow: 0 16px 36px rgba(47, 111, 36, 0.22) !important;
}

body.page-support .downdetector-address-check::after,
.support-page .downdetector-address-check::after {
    background: rgba(47, 111, 36, 0.2) !important;
}

body.page-support .downdetector-address-check-trigger,
.support-page .downdetector-address-check-trigger {
    border: 2px solid #3d8b2f !important;
    background: #fff;
}

body.page-support .downdetector-address-check-trigger:hover,
body.page-support .downdetector-address-check-trigger:focus-visible,
.support-page .downdetector-address-check-trigger:hover,
.support-page .downdetector-address-check-trigger:focus-visible {
    border-color: #2f6f24 !important;
    box-shadow: 0 0 0 3px rgba(47, 111, 36, 0.28) !important;
    outline: none !important;
}

body.page-support .downdetector-address-check-trigger-action,
.support-page .downdetector-address-check-trigger-action {
    background: var(--lending-red) !important;
}

body.page-support .downdetector-address-check-trigger:hover .downdetector-address-check-trigger-action,
body.page-support .downdetector-address-check-trigger:focus-visible .downdetector-address-check-trigger-action,
.support-page .downdetector-address-check-trigger:hover .downdetector-address-check-trigger-action,
.support-page .downdetector-address-check-trigger:focus-visible .downdetector-address-check-trigger-action {
    background: var(--lending-red-dark) !important;
}

.support-grid + .downdetector-address-check {
    margin-top: 0;
}

.support-page .downdetector-address-check + .support-providers-heading {
    margin-top: 1.5rem;
}

.support-providers-heading {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.3;
    color: #111827;
}

.support-page .downdetector-address-check + .support-grid {
    margin-top: 0;
}

.support-city-directory-wrap {
    margin-top: var(--support-section-gap);
    padding: 0 0 2rem;
    background: transparent;
}

.support-city-directory-wrap .section-title {
    margin: 0 0 0.85rem;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.3;
}

.support-city-directory-wrap .popular-cities-card {
    margin-bottom: 0;
}

.popular-city-item-active {
    color: var(--lending-red, var(--lending-red));
    font-weight: 700;
}

.support-seo h2,
.support-faq h2 {
    margin: 0.35rem 0 0.85rem;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    line-height: var(--ui-title-line);
    letter-spacing: var(--ui-title-letter);
    color: var(--ui-title-color);
}

.support-seo-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 120px;
    gap: 1rem 1.25rem;
    align-items: center;
}

.support-seo-content {
    min-width: 0;
}

.support-seo-illustration {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
}

.support-seo-illustration-svg {
    width: 100%;
    max-width: 140px;
    height: auto;
}

.support-seo p {
    margin: 0 0 0.85rem;
    max-width: none;
    line-height: 1.65;
}

.support-seo p:last-child {
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .support-phone-link,
    .support-quiz-title {
        font-size: 1.2rem;
    }

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

    .support-seo-illustration {
        order: -1;
        max-width: 200px;
        margin: 0 auto 0.25rem;
    }
}

/* ── Journal (CMS blog) ── */
body.site-lending.page-journal,
body.site-lending.page-journal-article {
    background: #fafbfc;
}

body.site-lending.page-journal .journal-page,
body.site-lending.page-journal-article .journal-page,
body.site-lending.page-journal .journal-section,
body.site-lending.page-journal-article .journal-section {
    background: #fafbfc;
}

body.site-lending.page-journal .site-breadcrumbs-wrap,
body.site-lending.page-journal-article .site-breadcrumbs-wrap {
    background: transparent;
}

body.site-lending.page-home .site-breadcrumbs-wrap,
body.site-lending.page-home .city-page-top {
    background: transparent;
}

.journal-navbar .container,
.journal-navbar .lending-header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    overflow: visible;
}

.lending-header-brand {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 0 1 auto;
}

.journal-navbar .navbar-brand {
    min-width: 0;
}

.journal-navbar .navbar-logo {
    display: block;
    width: auto;
    max-width: 188px;
    height: 48px;
    object-fit: contain;
}

.journal-navbar .navbar-location,
.journal-navbar .navbar-location-btn {
    min-width: 0;
    max-width: 16rem;
}

.journal-navbar .navbar-location-label {
    display: inline-block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

.navbar-mobile-link--soon {
    opacity: 0.55;
    cursor: default;
}

.navbar-mobile-group {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.35rem;
    padding-top: 0.55rem;
    border-top: 1px solid #eef2f0;
}

.navbar-mobile-group-title {
    padding: 0.15rem 0.95rem 0.1rem;
    color: #6b7280;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.journal-navbar-sections {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    justify-content: center;
}

.journal-navbar-item {
    position: relative;
    z-index: 2;
}

.journal-navbar-item--dropdown {
    padding-bottom: 0.65rem;
    margin-bottom: -0.65rem;
}

.journal-navbar-item--dropdown:hover .journal-navbar-dropdown,
.journal-navbar-item--dropdown:focus-within .journal-navbar-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.journal-navbar-dropdown {
    position: absolute;
    top: calc(100% - 0.65rem);
    left: 0;
    min-width: 13.5rem;
    padding: 0.65rem 0 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
    z-index: 50;
}

.journal-navbar-item--dropdown:last-child .journal-navbar-dropdown {
    left: auto;
    right: 0;
}

.journal-navbar-dropdown-inner {
    padding: 0.4rem;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(17, 24, 39, 0.12), 0 1px 3px rgba(17, 24, 39, 0.06);
    max-height: calc(100vh - 5.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.journal-navbar-dropdown-link {
    display: block;
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    color: #1a1a1a !important;
    font-size: 0.9rem;
    font-weight: 650;
    line-height: 1.25;
    text-decoration: none !important;
    transition: background 0.15s ease, color 0.15s ease;
}

.journal-navbar-dropdown-link:hover,
.journal-navbar-dropdown-link:focus-visible {
    background: rgba(var(--lending-red-rgb), 0.08);
    color: var(--lending-red, var(--lending-red)) !important;
    text-decoration: none !important;
}

.journal-navbar-dropdown-link.is-active {
    color: var(--lending-red, var(--lending-red)) !important;
    background: rgba(var(--lending-red-rgb), 0.1);
}

.lending-site-header {
    position: relative;
    z-index: 50;
    background: #fff;
}

.lending-mobile-chrome {
    position: relative;
    z-index: 50;
    background: #fff;
}

.mobile-address-sticky {
    display: none;
}

@media (max-width: 991px) {
    .lending-mobile-chrome {
        position: sticky;
        top: 0;
        box-shadow: 0 8px 18px rgba(17, 24, 39, 0.06);
    }

    .lending-site-header {
        position: relative;
        z-index: auto;
        box-shadow: 0 1px 0 rgba(17, 24, 39, 0.06);
    }

    .mobile-address-sticky {
        display: block;
        position: relative;
        background: #fff;
        border-top: 1px solid #eef0f3;
    }

    .mobile-address-sticky-inner {
        display: grid;
        grid-template-columns: 1fr 1fr auto;
        align-items: stretch;
        gap: 0.45rem;
        padding: 0.55rem 0.85rem 0.65rem;
    }

    .mobile-address-sticky-inner--no-phone {
        grid-template-columns: 1fr 1fr;
    }

    .mobile-address-sticky-cta {
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.05rem;
        min-height: 48px;
        margin: 0;
        padding: 0.4rem 0.55rem;
        border: none;
        border-radius: 100px;
        font: inherit;
        font-size: 0.92rem;
        font-weight: 800;
        line-height: 1.15;
        text-align: center;
        cursor: pointer;
        box-shadow: 0 4px 14px rgba(17, 24, 39, 0.22);
    }

    .mobile-address-sticky-cta-line {
        display: block;
    }

    .mobile-address-sticky-cta--tariff {
        background: #ffe566;
        color: #111;
    }

    .mobile-address-sticky-cta--tariff:hover,
    .mobile-address-sticky-cta--tariff:focus-visible {
        background: #ffdf3d;
        outline: none;
    }

    .mobile-address-sticky-cta--consult {
        background: var(--lending-red, #e53935);
        color: #fff;
    }

    .mobile-address-sticky-cta--consult:hover,
    .mobile-address-sticky-cta--consult:focus-visible {
        background: var(--lending-red-dark, #d63026);
        outline: none;
    }

    .mobile-address-sticky-phone {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        margin: 0;
        border: none;
        border-radius: 100px;
        background: #fff;
        color: var(--lending-red, #e53935);
        font-size: 1.05rem;
        line-height: 1;
        text-decoration: none;
        box-shadow: 0 4px 14px rgba(17, 24, 39, 0.22);
    }

    .mobile-address-sticky-phone:hover,
    .mobile-address-sticky-phone:focus-visible {
        background: rgba(var(--lending-red-rgb, 229, 57, 53), 0.08);
        outline: none;
    }

    /* На мобиле вместо нижней кнопки «провайдеры по адресу» — две CTA в шапке */
    #floatingAddressCheck:has(.floating-address-btn--providers-by-address),
    .floating-address-check--global {
        display: none !important;
    }
}

.journal-navbar-indicator {
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 999px;
    background: #eceef2;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    transition:
        transform 0.28s cubic-bezier(0.4, 0, 0.2, 1),
        width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
        height 0.28s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.2s ease;
    will-change: transform, width;
}

.journal-navbar-link {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    margin: 0;
    border: 0;
    background: transparent;
    color: #1a1a1a;
    text-decoration: none !important;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    font-style: normal;
    letter-spacing: normal;
    line-height: 1.25;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    transition: color 0.18s ease;
}

button.journal-navbar-link {
    appearance: none;
    cursor: pointer;
    font: inherit;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.25;
    color: inherit;
}

.journal-navbar-link--soon {
    cursor: default;
}

.journal-navbar-link--more::after {
    content: "";
    display: inline-block;
    width: 0.35rem;
    height: 0.35rem;
    margin-left: 0.35rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-0.12rem) rotate(45deg);
    opacity: 0.7;
}

body.site-lending .journal-navbar-link:not(.is-highlighted),
body.site-lending .journal-navbar-link:not(.is-highlighted):hover,
body.site-lending .journal-navbar-link:not(.is-highlighted):focus-visible {
    color: #1a1a1a !important;
}

body.site-lending .journal-navbar-link.is-highlighted,
body.site-lending .journal-navbar-link.is-highlighted:hover,
body.site-lending .journal-navbar-link.is-highlighted:focus-visible {
    color: var(--lending-red, var(--lending-red)) !important;
}

.journal-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr) 280px;
    gap: 1.5rem;
    align-items: start;
}

/* Статья: без колонки «Темы», шире контент */
.journal-layout--article {
    grid-template-columns: minmax(0, 1fr) 280px;
}

.journal-sidebar {
    position: sticky;
    top: 1rem;
}

.journal-sidebar-block + .journal-sidebar-block {
    margin-top: 1.25rem;
}

.journal-sidebar-fresh {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.95rem;
    border-radius: 999px;
    background: transparent;
    color: #1a1a1a !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 1.02rem;
    margin-bottom: 0.55rem;
    width: fit-content;
}

.journal-sidebar-fresh:hover {
    color: #1a1a1a !important;
    text-decoration: none !important;
    background: #eceef2;
}

.journal-sidebar-fresh.is-active {
    background: #eceef2;
}

.journal-sidebar-fresh .bi-fire {
    color: var(--lending-red, var(--lending-red));
}

.journal-sidebar-heading {
    font-weight: 700;
    margin-bottom: 0.9rem;
    color: #1a1a1a;
    font-size: 1.15rem;
}

.journal-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.journal-sidebar-link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    color: #222 !important;
    text-decoration: none !important;
    font-size: 1.02rem;
    line-height: 1.4;
}

.journal-sidebar-link:hover,
.journal-sidebar-link:focus {
    background: #eceef2;
    color: #222 !important;
    text-decoration: none !important;
}

.journal-sidebar-link.is-active {
    background: #eceef2;
    font-weight: 600;
}

.journal-sidebar-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    object-fit: contain;
}

.journal-sidebar-icon-fallback {
    font-size: 1.1rem;
    color: #888;
}

.journal-feed {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.journal-card {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    background: #fff;
    border-radius: 20px;
    padding: 1.25rem;
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
}

.journal-card-media {
    flex-shrink: 0;
    width: 240px;
    display: block;
}

.journal-card-media img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 14px;
    display: block;
}

.journal-card-body {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.journal-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.journal-card-author {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.journal-card-author-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.journal-card-author-avatar--fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eceef2;
    color: #888;
}

.journal-card-author-name {
    font-size: 0.88rem;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.journal-card-category {
    font-size: 0.82rem;
    color: #888;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 45%;
}

.journal-card-title {
    margin: 0 0 0.4rem;
    font-size: clamp(0.98rem, 1.4vw, 1.12rem);
    font-weight: 600;
    line-height: 1.3;
    color: #111;
}

.journal-card-title a {
    color: #111 !important;
    text-decoration: none !important;
}

.journal-card-title a:hover,
.journal-card-title a:focus {
    color: #111 !important;
    text-decoration: none !important;
}

.journal-card-excerpt {
    margin: 0 0 0.65rem;
    color: #555;
    font-size: 0.95rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.journal-card-date {
    margin-top: auto;
    color: #999;
    font-size: 0.88rem;
}

.journal-aside-cta {
    position: sticky;
    top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.journal-cta-card {
    background: #fff;
    border-radius: 18px;
    padding: 1.25rem;
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
}

.journal-cta-card--address {
    display: block;
}

.journal-cta-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.journal-cta-head .journal-cta-title {
    margin: 0;
    flex: 1;
    min-width: 0;
    padding-right: 0.25rem;
}

.journal-cta-card--address .journal-cta-text {
    margin: 0 0 0.9rem;
}

.journal-block-cta--address {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
}

.journal-block-cta-body {
    flex: 1;
    min-width: 0;
}

.journal-block-cta--address .journal-block-cta-title {
    margin: 0 0 0.45rem;
}

.journal-block-cta--address .journal-block-cta-text {
    margin: 0 0 0.9rem;
}

.journal-cta-card-body {
    flex: 1;
    min-width: 0;
    padding-right: 0.25rem;
}

.journal-cta-title {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.35;
    color: #111;
}

.journal-cta-text {
    margin: 0 0 1rem;
    color: #222;
    font-size: 0.96rem;
    font-weight: 500;
    line-height: 1.5;
}

.journal-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.35rem;
    border: none;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
    background: var(--lending-red, var(--lending-red));
    color: #fff !important;
    font-weight: 700;
    font-size: 0.92rem;
    cursor: pointer;
    width: auto;
    max-width: none;
    transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.25);
}

.journal-cta-btn:hover,
.journal-cta-btn:focus-visible {
    background: #e03a2f;
    color: #fff !important;
    filter: none;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(var(--lending-red-rgb), 0.38);
}

.journal-cta-btn--outline {
    background: transparent;
    border: 2px solid var(--lending-red, var(--lending-red));
    color: var(--lending-red, var(--lending-red)) !important;
    box-shadow: none;
}

.journal-cta-btn--outline:hover,
.journal-cta-btn--outline:focus-visible {
    background: rgba(var(--lending-red-rgb), 0.08);
    color: var(--lending-red, var(--lending-red)) !important;
    transform: translateY(-1px);
    box-shadow: none;
}

.journal-block-cta-group {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    margin: 1.5rem 0;
}

.journal-block-cta-group .journal-block-cta {
    margin: 0;
}

.journal-block-cta--consult {
    flex: 1;
    min-width: 0;
    padding: 1.15rem 1.35rem;
}

.journal-block-cta--consult .journal-block-cta-text {
    margin-bottom: 0.75rem;
}

.journal-block-cta--consult-phone {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.15rem 1.25rem;
    min-width: 11.5rem;
}

.journal-block-cta--consult-phone .journal-cta-phone-wrap {
    margin-top: 0;
}

.journal-block-cta--consult-phone .journal-cta-phone,
.journal-block-cta--consult-phone .journal-block-cta-phone {
    font-size: 1.1rem;
}

.journal-cta-card--consult .journal-cta-btn {
    margin-top: 0.15rem;
}

.journal-cta-card--consult .journal-cta-phone-wrap {
    margin-top: 1rem;
}

.journal-cta-phone-wrap {
    width: auto;
}

.journal-cta-phone,
.journal-block-cta-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    max-width: 100%;
    font-size: 1.2rem;
    text-decoration: none !important;
}

.journal-cta-phone-number {
    font-size: inherit;
    font-weight: 600;
    line-height: 1;
    color: #111;
    white-space: nowrap;
}

.journal-cta-phone:hover,
.journal-block-cta-phone:hover {
    text-decoration: none !important;
}

.journal-cta-phone:hover .journal-cta-phone-number,
.journal-block-cta-phone:hover .journal-cta-phone-number {
    color: var(--lending-red-dark, var(--lending-red-dark));
}

.journal-cta-phone-icon {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
    object-fit: contain;
}

.journal-cta-phone-note {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.92rem;
    font-weight: 500;
    color: #444;
    line-height: 1.3;
}

.journal-cta-card .btn-connect-card,
.journal-block-cta--consult .btn-connect-card {
    width: auto;
    max-width: none;
}

.journal-action-dock {
    position: sticky;
    top: 1rem;
    overflow: hidden;
    padding: 1.4rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0, rgba(var(--lending-red-rgb), 0.3), transparent 40%),
        linear-gradient(155deg, #202633 0%, #11151d 100%);
    color: #fff;
    box-shadow: 0 24px 55px rgba(20, 25, 35, 0.18);
}

.journal-action-dock__intro {
    padding: 0.2rem 0.2rem 1.2rem;
}

.journal-action-dock__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.8rem;
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.journal-action-dock__eyebrow i {
    color: var(--lending-red);
    font-size: 0.95rem;
}

.journal-action-dock__title {
    margin: 0;
    color: #fff;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.journal-action-dock__lead {
    margin: 0.7rem 0 0;
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.92rem;
    line-height: 1.45;
}

.journal-action-dock__choices {
    display: grid;
    gap: 0.65rem;
}

.journal-action-choice,
.journal-action-choice.btn-connect-card {
    display: grid;
    grid-template-columns: 2.6rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    max-width: none;
    min-height: 4.7rem;
    margin: 0;
    padding: 0.7rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    text-align: left;
    box-shadow: none;
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.journal-action-choice--expert.btn-connect-card {
    background: #fff;
    border-color: #fff;
    color: #171b24;
}

.journal-action-choice:hover,
.journal-action-choice:focus-visible,
.journal-action-choice.btn-connect-card:hover,
.journal-action-choice.btn-connect-card:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(var(--lending-red-rgb), 0.65);
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    box-shadow: none;
    filter: none;
}

.journal-action-choice--expert.btn-connect-card:hover,
.journal-action-choice--expert.btn-connect-card:focus-visible {
    background: #fff;
    color: #171b24;
}

.journal-action-choice__icon {
    display: inline-grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: 13px;
    font-size: 1.1rem;
}

.journal-action-choice__icon--address {
    background: rgba(var(--lending-red-rgb), 0.2);
    color: #ff756c;
}

.journal-action-choice__icon--expert {
    background: rgba(var(--lending-red-rgb), 0.1);
    color: var(--lending-red);
}

.journal-action-choice__copy {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.journal-action-choice__copy strong {
    font-size: 0.96rem;
    font-weight: 780;
    line-height: 1.25;
}

.journal-action-choice__copy small {
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.76rem;
    font-weight: 500;
    line-height: 1.3;
}

.journal-action-choice--expert .journal-action-choice__copy small {
    color: #737985;
}

.journal-action-choice__arrow {
    opacity: 0.55;
}

.journal-action-dock__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.85rem;
    padding: 1rem 0.2rem 0.1rem;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.72rem;
    font-weight: 650;
}

.journal-action-dock__footer span,
.journal-action-dock__footer a {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.journal-action-dock__footer a {
    margin-left: auto;
    color: #fff !important;
    text-decoration: none !important;
}

@media (max-width: 991.98px) {
    .journal-action-dock {
        position: static;
    }
}

.journal-cta-illustration {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    background: none;
}

.journal-address-search-icon {
    display: block;
    width: 88px;
    height: 88px;
    object-fit: contain;
}

.journal-address-search-icon--aside {
    width: 72px;
    height: 72px;
}

.journal-address-search-icon--inline {
    width: 96px;
    height: 96px;
}

.journal-aside-phone {
    text-align: center;
    padding: 0.5rem 0;
}

.journal-aside-phone-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 700;
    font-size: 1.05rem;
    text-decoration: none;
}

.journal-aside-phone-note {
    display: block;
    margin-top: 0.25rem;
    color: #888;
    font-size: 0.85rem;
}

.journal-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
    padding: 0.75rem 0;
}

.provider-opinions-pagination {
    margin-top: 1.75rem;
    margin-bottom: 0.5rem;
}

.journal-pagination-link {
    color: var(--lending-red, var(--lending-red));
    text-decoration: none !important;
    font-weight: 600;
    transition: color 0.18s ease;
}

.journal-pagination-link:hover,
.journal-pagination-link:focus-visible {
    color: var(--lending-red-dark, var(--lending-red-dark));
    text-decoration: none !important;
}

.journal-pagination-current {
    color: #888;
    font-size: 0.92rem;
}

.journal-empty {
    background: #fff;
    border-radius: 18px;
    padding: 2rem;
    text-align: center;
    color: #666;
}

/* Article page */
.journal-article.section-card {
    padding: 2.25rem clamp(3.75rem, 7.5vw, 7rem) 2.75rem;
    border-radius: 20px;
}

.journal-article-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.journal-article-author {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.journal-article-author-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
}

.journal-article-author-avatar--fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eceef2;
    color: #888;
}

.journal-article-author-name {
    font-weight: 700;
    font-size: 0.92rem;
}

.journal-article-category {
    color: #888;
    font-size: 0.88rem;
}

.journal-article-date {
    color: #999;
    font-size: 0.88rem;
    white-space: nowrap;
}

.journal-article-title {
    margin: 0 0 1.15rem;
    font-size: clamp(1.75rem, 3.2vw, 2.45rem);
    font-weight: 600;
    line-height: 1.2;
    color: #111;
}

.journal-article-lead {
    margin-bottom: 1.35rem;
    color: #444;
    font-size: 1.15rem;
    line-height: 1.7;
}

.journal-toc {
    background: #f3f4f6;
    border-radius: 14px;
    padding: 0.85rem 1rem;
    margin-bottom: 1.5rem;
}

.journal-toc-title {
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.journal-toc-title::-webkit-details-marker {
    display: none;
}

.journal-toc-title::after {
    content: '▾';
    color: #888;
}

.journal-toc[open] .journal-toc-title::after {
    transform: rotate(180deg);
}

.journal-toc-nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.75rem;
}

.journal-toc-link {
    color: var(--lending-red, var(--lending-red));
    text-decoration: none !important;
    font-size: 0.92rem;
    line-height: 1.4;
    transition: color 0.18s ease;
}

.journal-toc-link:hover,
.journal-toc-link:focus-visible {
    color: var(--lending-red-dark, var(--lending-red-dark));
    text-decoration: none !important;
}

.journal-toc-link--h3 {
    padding-left: 1rem;
}

.journal-article-content {
    font-size: 1.125rem;
    line-height: 1.75;
    color: #222;
}

.journal-article-content p,
.journal-block-html p {
    margin: 0 0 1.1rem;
    font-size: 1.125rem;
    line-height: 1.75;
}

.journal-article-content li,
.journal-block-html li {
    font-size: 1.125rem;
    line-height: 1.7;
    margin-bottom: 0.4rem;
}

.journal-block + .journal-block {
    margin-top: 1.15rem;
}

.journal-block-header {
    margin: 2rem 0 1rem;
    font-size: clamp(1.4rem, 2.4vw, 1.85rem);
    font-weight: 800;
    line-height: 1.25;
}

.journal-block-header--h3 {
    font-size: clamp(1.2rem, 2vw, 1.45rem);
}

.journal-block-image img {
    width: 100%;
    border-radius: 16px;
    display: block;
}

.journal-block-image figcaption {
    margin-top: 0.5rem;
    color: #888;
    font-size: 0.88rem;
    text-align: center;
}

.journal-block-cta {
    background: #f3f4f6;
    border-radius: 18px;
    padding: 1.35rem 1.5rem;
    margin: 1.5rem 0;
}

.journal-block-cta-content {
    flex: 1;
    min-width: 0;
}

.journal-block-cta-title {
    margin: 0 0 0.45rem;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.35;
    color: #111;
}

.journal-block-cta-text {
    margin: 0 0 0.9rem;
    color: #222;
    font-size: 0.98rem;
    font-weight: 500;
    line-height: 1.5;
}

.journal-block-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.35rem;
    border: none;
    border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
    background: var(--lending-red, var(--lending-red));
    color: #fff !important;
    font-weight: 700;
    font-size: 0.92rem;
    cursor: pointer;
    width: auto;
    max-width: none;
    transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 8px rgba(var(--lending-red-rgb), 0.25);
}

.journal-block-cta-btn:hover,
.journal-block-cta-btn:focus-visible {
    background: #e03a2f;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(var(--lending-red-rgb), 0.38);
}

.journal-block-cta-btn--outline {
    background: transparent;
    border: 2px solid var(--lending-red, var(--lending-red));
    color: var(--lending-red, var(--lending-red)) !important;
    box-shadow: none;
}

.journal-block-cta-btn--outline:hover,
.journal-block-cta-btn--outline:focus-visible {
    background: rgba(var(--lending-red-rgb), 0.08);
    color: var(--lending-red, var(--lending-red)) !important;
    transform: translateY(-1px);
    box-shadow: none;
}

.journal-block-cta-graphic {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    background: none;
}

.journal-article-content img {
    max-width: 100%;
    height: auto;
    border-radius: 16px;
    margin: 1rem 0;
}

.journal-article-faq {
    margin-top: 2.5rem;
    padding: 1.75rem 1.5rem;
    background: #fafbfc;
    border-radius: 18px;
    border: none;
}

.journal-article-faq-title {
    margin: 0;
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    font-weight: 800;
    line-height: 1.25;
    color: #1a1a1a;
}

.journal-article-faq-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.15rem;
}

.journal-article-faq-expert {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    background: #fff;
    border: 1px solid #e8eaee;
    border-radius: 14px;
    max-width: 100%;
}

.journal-article-faq-expert-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.journal-article-faq-expert-avatar--fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eceef2;
    color: #888;
    font-size: 1.25rem;
}

.journal-article-faq-expert-meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.journal-article-faq-expert-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--lending-red, var(--lending-red));
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.journal-article-faq-expert-name {
    font-size: 0.98rem;
    font-weight: 800;
    color: #111;
    line-height: 1.3;
}

.journal-article-faq-expert-role {
    font-size: 0.86rem;
    font-weight: 500;
    color: #666;
    line-height: 1.35;
}

.journal-article-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.journal-article-faq-item {
    background: #fff;
    border: 1px solid #e8eaee;
    border-radius: 14px;
    padding: 0;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.journal-article-faq-item:hover {
    border-color: #dddfe5;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
}

.journal-article-faq-item[open] {
    border-color: #f5c4c0;
    box-shadow: 0 4px 16px rgba(var(--lending-red-rgb), 0.08);
}

.journal-article-faq-question {
    margin: 0;
    padding: 0.95rem 2.75rem 0.95rem 1.1rem;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.4;
    color: #1f2329;
    cursor: pointer;
    list-style: none;
    position: relative;
    user-select: none;
    transition: color 0.15s ease;
}

.journal-article-faq-question::-webkit-details-marker {
    display: none;
}

.journal-article-faq-question::marker {
    content: '';
}

.journal-article-faq-question:hover {
    color: var(--lending-red, var(--lending-red));
}

.journal-article-faq-question::before,
.journal-article-faq-question::after {
    content: '';
    position: absolute;
    right: 1.1rem;
    top: 50%;
    width: 14px;
    height: 2px;
    margin-top: -1px;
    background: var(--lending-red, var(--lending-red));
    border-radius: 2px;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.journal-article-faq-question::after {
    transform: rotate(90deg);
}

.journal-article-faq-item[open] .journal-article-faq-question::after {
    transform: rotate(0deg);
    opacity: 0;
}

.journal-article-faq-answer {
    margin: 0;
    padding: 0 1.1rem 1.1rem;
    color: #444;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.6;
    border-top: 1px solid #f0f1f4;
}

.journal-article-faq-answer > *:first-child {
    margin-top: 0.85rem;
}

.journal-article-faq-answer > *:last-child {
    margin-bottom: 0;
}

.journal-article-faq-answer a {
    color: var(--lending-red, var(--lending-red));
    text-decoration: underline;
}

.journal-article-updated {
    margin-top: 2rem;
    color: #999;
    font-size: 0.88rem;
}

@media (max-width: 991px) {
    .journal-layout,
    .journal-layout--article {
        grid-template-columns: 1fr;
    }

    .journal-sidebar,
    .journal-aside-cta {
        position: static;
    }

    .journal-navbar-sections {
        display: none;
    }

    body.site-lending .journal-navbar .container,
    body.site-lending .journal-navbar .lending-header-bar,
    .journal-navbar .container,
    .journal-navbar .lending-header-bar {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas: "brand location toggle";
        align-items: center;
        column-gap: 0.55rem;
        row-gap: 0;
    }

    .journal-navbar .lending-header-brand {
        grid-area: brand;
        min-width: 0;
    }

    .journal-navbar .navbar-menu-toggle {
        display: inline-flex;
        grid-area: toggle;
        justify-self: end;
        width: 40px;
        height: 40px;
        flex-shrink: 0;
    }

    .journal-navbar .navbar-location,
    .journal-navbar .navbar-location-btn {
        grid-area: location;
        justify-self: end;
        max-width: 100%;
        width: auto;
        min-width: 0;
        padding: 0.15rem 0;
    }

    .journal-navbar .navbar-location-label {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        line-height: 1.25;
        font-size: 0.95rem;
    }

    body.site-lending .journal-navbar .navbar-logo,
    .journal-navbar .navbar-logo {
        height: clamp(22px, 6.2vw, 32px) !important;
        max-width: min(140px, 42vw);
    }

    .journal-navbar .lending-header-bar.is-city-compact .navbar-logo {
        height: clamp(18px, 5vw, 26px) !important;
        max-width: min(112px, 34vw);
    }

    .journal-navbar .lending-header-bar.is-city-compact .navbar-location-label {
        font-size: 0.82rem;
    }

    .journal-navbar .navbar-mobile-panel {
        display: block;
    }
}

@media (max-width: 767px) {
    .journal-card {
        flex-direction: column;
    }

    .journal-card-media {
        width: 100%;
    }

    .journal-card-media img {
        height: 200px;
    }

    .journal-article.section-card {
        padding: 1.35rem 1.35rem 1.75rem;
    }

    .journal-article-content,
    .journal-article-content p,
    .journal-block-html p,
    .journal-article-content li,
    .journal-block-html li {
        font-size: 1.05rem;
    }

    .journal-address-search-icon--inline {
        width: 64px;
        height: 64px;
    }

    .journal-block-cta--address {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 0.45rem 0.75rem;
    }

    .journal-block-cta--address .journal-block-cta-body {
        display: contents;
    }

    .journal-block-cta--address .journal-block-cta-title {
        grid-column: 1;
        grid-row: 1;
        margin: 0;
    }

    .journal-block-cta--address .journal-block-cta-graphic {
        grid-column: 2;
        grid-row: 1;
        align-self: flex-start;
    }

    .journal-block-cta--address .journal-block-cta-text {
        grid-column: 1 / -1;
        grid-row: 2;
        margin: 0 0 0.75rem;
    }

    .journal-block-cta--address .journal-block-cta-btn {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .journal-block-cta-group {
        flex-direction: column;
    }

    .journal-block-cta--consult-phone {
        min-width: 0;
        justify-content: flex-start;
    }
}

/* CMS: блок «О провайдере» перед отзывами */
.provider-cms-about-section {
    padding: 2rem 0 0.35rem;
}

.provider-cms-about-card {
    display: flex;
    align-items: flex-start;
    gap: 1.15rem;
    padding: 1.35rem 1.45rem;
    border: 1px solid #e7e9ee;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 22px rgba(27, 31, 43, 0.05);
    position: relative;
    overflow: hidden;
}

.provider-cms-about-card::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--lending-red) 0%, color-mix(in srgb, var(--lending-red) 55%, white) 50%, var(--lending-red) 100%);
}

.provider-cms-about-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--lending-red-soft);
    color: var(--lending-red);
    font-size: 1.35rem;
}

.provider-cms-about-body {
    min-width: 0;
    flex: 1 1 auto;
}

.provider-cms-about-title {
    margin: 0 0 0.7rem;
    font-size: clamp(1.2rem, 2.1vw, 1.55rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #1a1a1a;
    line-height: 1.25;
}

.provider-cms-about-text {
    margin: 0;
    color: #3a3f47;
    font-size: 1.02rem;
    font-weight: 500;
    line-height: 1.65;
}

.city-cms-seo-body-section,
.city-cms-seo-bottom-section,
.city-section-cms-intro {
    padding: var(--ui-section-pad-y, 2.5rem) 0;
}

.city-section-cms-intro-title {
    margin: 0 0 0.65rem;
    font-size: 1.25rem;
    font-weight: 800;
    color: #212121;
    line-height: 1.3;
}

.city-cms-seo-body,
.city-cms-seo-bottom {
    max-width: 52rem;
    color: #3a3f47;
    font-size: 1.02rem;
    line-height: 1.65;
}

.city-cms-seo-bottom {
    margin: 0;
}

.provider-cms-intro-section {
    padding: 1.75rem 0 0.5rem;
}

.provider-cms-intro-text {
    margin: 0;
    max-width: 52rem;
    color: #3a3f47;
    font-size: 1.05rem;
    font-weight: 500;
    line-height: 1.65;
}

@media (max-width: 640px) {
    .provider-cms-about-card {
        gap: 0.9rem;
        padding: 1.15rem 1.1rem;
    }

    .provider-cms-about-badge {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        font-size: 1.15rem;
    }
}

.provider-cms-advantages-section {
    padding: var(--ui-section-pad-y, 2.5rem) 0;
}

.provider-cms-advantages-head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1.35rem;
}

.provider-cms-advantages-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    object-fit: contain;
}

.provider-cms-advantages-title {
    margin: 0;
    font-size: clamp(1.3rem, 2.3vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #1a1a1a;
    line-height: 1.25;
}

.provider-cms-advantages-carousel {
    position: relative;
    padding: 0 2.75rem;
}

.provider-cms-advantages-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.provider-cms-advantages-viewport::-webkit-scrollbar {
    display: none;
}

.provider-cms-advantages-track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 0.9rem;
    align-items: stretch;
}

.provider-cms-advantages-card {
    flex: 0 0 calc((100% - 0.9rem) / 2);
    min-width: 0;
    scroll-snap-align: start;
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.05rem 1.1rem;
    border: 1px solid #e7e9ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(27, 31, 43, 0.04);
    box-sizing: border-box;
}

.provider-cms-advantages-card-icon {
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    object-fit: contain;
}

.provider-cms-advantages-card-text {
    margin: 0;
    color: #3a3f47;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.55;
}

.provider-cms-advantages-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    color: #1f2328;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.08);
}

.provider-cms-advantages-nav--prev {
    left: 0;
}

.provider-cms-advantages-nav--next {
    right: 0;
}

.provider-cms-advantages-nav:hover:not(:disabled) {
    border-color: var(--lending-red);
    color: var(--lending-red);
}

.provider-cms-advantages-nav:disabled {
    opacity: 0.35;
    cursor: default;
}

.provider-cms-advantages-carousel:not(.is-scrollable) .provider-cms-advantages-nav {
    display: none;
}

@media (max-width: 900px) {
    .provider-cms-advantages-carousel {
        padding: 0 2.4rem;
    }

    .provider-cms-advantages-card {
        flex-basis: calc((100% - 0.9rem) / 1.35);
    }
}

@media (max-width: 760px) {
    .provider-cms-advantages-head {
        align-items: flex-start;
    }

    .provider-cms-advantages-carousel {
        padding: 0;
    }

    .provider-cms-advantages-nav {
        display: none;
    }

    .provider-cms-advantages-card {
        flex-basis: min(86%, 22rem);
    }
}

/* CMS: блок «Как подключить» — карусель шагов */
.city-how-to-carousel-section {
    background: #f5f6f8;
    padding: var(--ui-section-pad-y) 0;
}

.city-how-to-carousel-title {
    margin: 0 0 0.85rem;
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    letter-spacing: var(--ui-title-letter);
    color: var(--ui-title-color);
    line-height: var(--ui-title-line);
    text-align: center;
}

.city-how-to-carousel-intro {
    max-width: 52rem;
    margin: 0 auto 1.5rem;
    color: #4a4f57;
    font-size: 1.02rem;
    font-weight: 400;
    line-height: 1.6;
    text-align: center;
}

.city-how-to-carousel-intro p {
    margin: 0 0 0.65rem;
}

.city-how-to-carousel-intro p:last-child {
    margin-bottom: 0;
}

.city-how-to-carousel {
    position: relative;
    padding: 0 2.75rem 1.35rem;
}

.city-how-to-carousel-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.city-how-to-carousel-viewport::-webkit-scrollbar {
    display: none;
}

.city-how-to-carousel-track {
    display: flex;
    gap: 1rem;
    align-items: stretch;
}

.city-how-to-carousel-slide {
    flex: 0 0 calc((100% - 2rem) / 3);
    min-width: 0;
    scroll-snap-align: start;
}

.city-how-to-carousel-slide-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 17.5rem;
    padding: 1.35rem 1.25rem 1.4rem;
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(17, 24, 39, 0.06);
    box-shadow: 0 6px 22px rgba(17, 24, 39, 0.07);
    overflow: hidden;
    box-sizing: border-box;
}

.city-how-to-carousel-slide-title {
    position: relative;
    z-index: 1;
    margin: 0 0 0.75rem;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.3;
    color: #151515;
    letter-spacing: -0.015em;
}

.city-how-to-carousel-slide-text {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    color: #5a616c;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.55;
}

.city-how-to-carousel-slide-text p {
    margin: 0 0 0.55rem;
}

.city-how-to-carousel-slide-text p:last-child {
    margin-bottom: 0;
}

.city-how-to-carousel-slide-inner .btn-connect-card {
    position: relative;
    z-index: 1;
    align-self: flex-start;
    width: auto !important;
    max-width: 100%;
    margin-top: 1.15rem;
}

.city-how-to-carousel-slide-num {
    position: absolute;
    right: 0.55rem;
    bottom: -0.35rem;
    font-size: clamp(5.5rem, 8vw, 7.5rem);
    font-weight: 800;
    line-height: 0.85;
    color: rgba(var(--lending-red-rgb), 0.12);
    pointer-events: none;
    user-select: none;
    letter-spacing: -0.04em;
}

.city-how-to-carousel-nav {
    position: absolute;
    top: calc(50% - 1.1rem);
    transform: translateY(-50%);
    z-index: 2;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgba(17, 24, 39, 0.08);
    border-radius: 999px;
    background: #fff;
    color: #3a3f47;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}

.city-how-to-carousel-nav:hover:not(:disabled) {
    color: var(--lending-red);
    border-color: rgba(var(--lending-red-rgb), 0.35);
}

.city-how-to-carousel-nav:disabled {
    opacity: 0.35;
    cursor: default;
}

.city-how-to-carousel-nav--prev {
    left: 0;
}

.city-how-to-carousel-nav--next {
    right: 0;
}

.city-how-to-carousel-nav .bi {
    font-size: 1.1rem;
    line-height: 1;
}

.city-how-to-carousel-progress {
    margin-top: 1.15rem;
    width: min(11rem, 40%);
    height: 3px;
    border-radius: 999px;
    background: #e4e7ec;
    overflow: hidden;
}

.city-how-to-carousel-progress-fill {
    height: 100%;
    width: 22%;
    border-radius: inherit;
    background: var(--lending-red);
    transition: width 0.25s ease;
}

@media (max-width: 1100px) {
    .city-how-to-carousel-slide {
        flex-basis: calc((100% - 1rem) / 2);
    }
}

@media (max-width: 767px) {
    .city-how-to-carousel {
        padding: 0 2.35rem 1.1rem;
    }

    .city-how-to-carousel-slide {
        flex-basis: 100%;
    }

    .city-how-to-carousel-slide-inner {
        min-height: 16rem;
        padding: 1.2rem 1.1rem 1.25rem;
    }

    .city-how-to-carousel-intro {
        font-size: 0.98rem;
        margin-bottom: 1.15rem;
    }

    .city-how-to-carousel-progress {
        width: min(9rem, 55%);
    }
}

/* legacy how-to step styles (другие секции city-connect) */
.city-how-to-section .city-connect-step-item {
    align-items: flex-start;
    font-weight: 400;
    padding: 0.75rem 0.85rem;
}

.city-how-to-step-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.city-how-to-step-title {
    display: block;
    color: #111;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
}

.city-how-to-step-text {
    color: #444;
    font-size: 0.92rem;
    font-weight: 400;
    line-height: 1.55;
}

.city-how-to-step-text p {
    margin: 0 0 0.5rem;
}

.city-how-to-step-text p:last-child {
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .city-how-to-section .city-connect-seo-steps-grid {
        grid-template-columns: 1fr;
    }
}

/* Hero top tariffs (3 columns inside hero) */
.hero-section--with-top-tariffs {
    padding-bottom: 2rem;
}

.city-page-top:has(.city-page-top-row--with-consult) {
    z-index: 40;
}

.hero-consult-sticky-slot--global {
    position: fixed;
    right: 1.25rem;
    bottom: 5.5rem;
    z-index: 1100;
    width: min(calc(100vw - 2rem), 310px);
    min-width: 0;
    margin: 0;
    overflow: visible;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition:
        opacity 0.45s ease,
        visibility 0.45s ease,
        transform 0.45s ease,
        width 0.32s ease,
        height 0.32s ease;
}

.hero-consult-sticky-slot--global.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.hero-consult-sticky-slot--global.is-collapsed {
    width: 56px;
    min-width: 56px;
    height: 56px;
}

.hero-consult-sticky {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    width: 100%;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
    padding: 0.575rem 1.25rem;
    overflow: visible;
    text-align: center;
    background: #ffe1ca;
    border: 2px solid var(--lending-red, #e53935);
    border-radius: 100px;
    box-shadow:
        0 4px 12px rgba(17, 24, 39, 0.08),
        0 12px 36px rgba(17, 24, 39, 0.14);
    transition:
        box-shadow 0.28s ease,
        width 0.32s cubic-bezier(0.4, 0, 0.2, 1),
        height 0.32s cubic-bezier(0.4, 0, 0.2, 1),
        padding 0.32s cubic-bezier(0.4, 0, 0.2, 1),
        border-radius 0.32s cubic-bezier(0.4, 0, 0.2, 1),
        background 0.28s ease;
}

.hero-consult-sticky.is-collapsed {
    width: 56px;
    height: 56px;
    padding: 0;
    border-radius: 50%;
    gap: 0;
    background: var(--lending-red, #e53935);
    box-shadow:
        0 6px 16px rgba(var(--lending-red-rgb, 229, 57, 53), 0.35),
        0 2px 8px rgba(17, 24, 39, 0.12);
}

.hero-consult-sticky-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    width: 100%;
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.22s ease,
        transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.hero-consult-sticky.is-collapsed .hero-consult-sticky-body {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.72);
}

.hero-consult-sticky-title {
    display: block;
    margin: 0;
    color: #1a1a1a;
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.2;
}

.hero-consult-sticky-title-text {
    display: inline;
}

.hero-consult-sticky-close {
    position: absolute;
    top: -0.35rem;
    right: -0.2rem;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    margin: 0;
    padding: 0;
    border: 2px solid var(--lending-red, #e53935);
    border-radius: 50%;
    background: #fff;
    color: #374151;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(17, 24, 39, 0.12);
    transition: background 0.2s ease, color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.hero-consult-sticky-close:hover,
.hero-consult-sticky-close:focus-visible {
    background: #f3f4f6;
    color: #111;
    outline: none;
}

.hero-consult-sticky.is-collapsed .hero-consult-sticky-close {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.6);
}

.hero-consult-sticky-btn.btn-connect-card {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.05rem;
    width: auto;
    max-width: 100%;
    min-width: 0;
    padding: 0.62rem 1.05rem;
    border-radius: 999px;
    font-size: 0.82rem;
    line-height: 1.2;
    white-space: normal;
}

.hero-consult-sticky-btn-line {
    display: block;
}

.hero-consult-sticky-fab {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: scale(0.55);
    transition:
        opacity 0.22s ease 0.06s,
        transform 0.28s cubic-bezier(0.34, 1.3, 0.64, 1);
}

.hero-consult-sticky.is-collapsed .hero-consult-sticky-fab {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
}

.hero-consult-sticky-fab:hover,
.hero-consult-sticky-fab:focus-visible {
    outline: none;
}

.hero-consult-mobile-btn {
    display: none;
}

@media (max-width: 991px) {
    .hero-consult-sticky-slot--global {
        left: 50%;
        right: auto;
        bottom: 1rem;
        width: min(88vw, 22rem);
        max-width: min(88vw, 22rem);
        min-width: 0;
        transform: translate(-50%, 12px);
    }

    .hero-consult-sticky-slot--global.is-visible {
        transform: translate(-50%, 0);
    }

    .hero-consult-sticky-slot--global.is-collapsed {
        width: min(88vw, 22rem);
        min-width: 0;
        height: auto;
    }

    /* Когда рядом виден мобильный фильтр тарифов — сдвигаем кнопку вправо */
    body:has(.partner-tariffs-mobile-dock:not([hidden])) .hero-consult-sticky-slot--global {
        width: min(70vw, calc(100vw - 5.75rem));
        max-width: min(70vw, calc(100vw - 5.75rem));
        transform: translate(calc(-50% + 1.55rem), 12px);
    }

    body:has(.partner-tariffs-mobile-dock:not([hidden])) .hero-consult-sticky-slot--global.is-visible {
        transform: translate(calc(-50% + 1.55rem), 0);
    }

    body:has(.partner-tariffs-mobile-dock:not([hidden])) .hero-consult-sticky-slot--global.is-collapsed {
        width: min(70vw, calc(100vw - 5.75rem));
        min-width: 0;
        height: auto;
    }

    .hero-consult-sticky--desktop {
        display: none !important;
    }

    button.hero-consult-mobile-btn.btn-connect-card,
    .hero-consult-mobile-btn {
        display: flex;
        width: 100%;
        justify-content: center;
        gap: 0;
        padding: 0.95rem 1.35rem;
        border: 0;
        border-radius: var(--lending-btn-radius, var(--ui-btn-radius, 14px));
        background: #fff !important;
        color: #1a1a1a !important;
        font-size: 1.1rem !important;
        font-weight: 600;
        line-height: 1.2;
        text-decoration: none;
        box-shadow:
            0 12px 60px rgba(0, 0, 0, 0.28),
            0 4px 24px rgba(0, 0, 0, 0.18) !important;
    }

    button.hero-consult-mobile-btn.btn-connect-card span,
    .hero-consult-mobile-btn span {
        color: #1a1a1a !important;
        font-size: inherit;
    }

    button.hero-consult-mobile-btn.btn-connect-card:hover,
    button.hero-consult-mobile-btn.btn-connect-card:focus-visible,
    .hero-consult-mobile-btn:hover,
    .hero-consult-mobile-btn:focus-visible {
        background: #fff !important;
        color: #1a1a1a !important;
        outline: none;
        box-shadow:
            0 16px 68px rgba(0, 0, 0, 0.32),
            0 6px 28px rgba(0, 0, 0, 0.2) !important;
    }
}

@media (max-width: 575px) {
    .hero-consult-sticky-slot--global {
        left: 50%;
        right: auto;
        bottom: 1rem;
        width: min(88vw, 22rem);
        max-width: min(88vw, 22rem);
    }

    .hero-consult-sticky-slot--global.is-collapsed {
        width: min(88vw, 22rem);
        min-width: 0;
    }

    body:has(.partner-tariffs-mobile-dock:not([hidden])) .hero-consult-sticky-slot--global {
        width: min(70vw, calc(100vw - 5.75rem));
        max-width: min(70vw, calc(100vw - 5.75rem));
    }

    body:has(.partner-tariffs-mobile-dock:not([hidden])) .hero-consult-sticky-slot--global.is-collapsed {
        width: min(70vw, calc(100vw - 5.75rem));
        min-width: 0;
    }

    .hero-consult-sticky {
        padding: 0.525rem 1.15rem;
    }

    .hero-consult-sticky.is-collapsed {
        padding: 0;
    }

    .hero-consult-sticky-title {
        font-size: 1.2rem;
    }

    .hero-consult-sticky-btn.btn-connect-card {
        font-size: 0.78rem;
        padding: 0.58rem 0.95rem;
    }
}

.hero-top-tariffs {
    margin-top: 0.15rem;
}

.hero-top-tariffs-title {
    margin: 0 0 0.85rem;
    color: #1a1a1a;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
}

.city-internet-profile {
    width: min(100%, 620px);
    margin: 0 auto 1.35rem;
}

.city-section-stats-wrap {
    margin-top: 1rem;
}

.city-opinion-lead {
    padding-top: 0.5rem;
    padding-bottom: 1.5rem;
}

.city-internet-profile-title {
    margin: 0 0 1.1rem;
    color: var(--ui-title-color, #212121);
    font-size: var(--ui-title-size, clamp(1.35rem, 2vw, 1.95rem));
    font-weight: var(--ui-title-weight, 800);
    line-height: var(--ui-title-line, 1.25);
    letter-spacing: var(--ui-title-letter, -0.02em);
    text-align: center;
}

.city-internet-profile-grid {
    --city-profile-gap: 1.85rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--city-profile-gap);
}

.city-internet-profile-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin: 0;
    min-width: 0;
    min-height: 118px;
    padding: 1rem 1.05rem 0.9rem;
    overflow: hidden;
    appearance: none;
    width: 100%;
    text-align: left;
    text-decoration: none !important;
    color: #1a1a1a !important;
    font: inherit;
    cursor: pointer;
    background: #fff;
    border: 1px solid #e7e9ee;
    border-radius: 16px;
    box-shadow:
        0 4px 12px rgba(17, 24, 39, 0.08),
        0 12px 36px rgba(17, 24, 39, 0.14);
    transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.city-internet-profile-card::before {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 3px;
    content: "";
    background: linear-gradient(90deg, var(--lending-red) 0%, color-mix(in srgb, var(--lending-red) 55%, white) 50%, var(--lending-red) 100%);
    background-position: 0 50%;
    background-size: 200% 100%;
    transition: background-position 0.55s ease;
}

.city-internet-profile-card:hover,
.city-internet-profile-card:focus-visible,
.city-internet-profile-card[aria-expanded="true"] {
    border-color: #f0c7c4;
    background: #fffdfd;
    box-shadow:
        0 6px 16px rgba(17, 24, 39, 0.1),
        0 14px 40px rgba(17, 24, 39, 0.16);
    outline: none;
}

.city-internet-profile-card:hover::before,
.city-internet-profile-card:focus-visible::before,
.city-internet-profile-card[aria-expanded="true"]::before {
    background-position: 100% 50%;
}

.city-internet-profile-card-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
}

.city-internet-profile-card-copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.city-internet-profile-card-heading {
    color: #1a1a1a;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.city-internet-profile-card-label {
    color: #6b7280;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.35;
}

.city-internet-profile-card-value {
    flex: 0 0 auto;
    color: #111;
    font-size: clamp(1.55rem, 2.8vw, 1.9rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
}

.city-internet-profile-card-more {
    margin-top: auto;
    align-self: flex-start;
    color: var(--lending-red, #e53935);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
}

.city-internet-profile-card:hover .city-internet-profile-card-more,
.city-internet-profile-card:focus-visible .city-internet-profile-card-more,
.city-internet-profile-card[aria-expanded="true"] .city-internet-profile-card-more {
    color: var(--lending-red-dark, #d63026);
}

.city-profile-providers {
    grid-column: 1 / -1;
    display: none;
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
}

.city-profile-providers.is-open {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    animation: city-profile-providers-in 0.32s ease;
}

@keyframes city-profile-providers-in {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.city-profile-providers-inner {
    min-height: 0;
    overflow: hidden;
    padding: 1rem;
    border: 1px solid #e7e9ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(27, 31, 43, 0.05);
}

.city-profile-providers-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.city-profile-providers-head-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 0 0 auto;
}

.city-profile-providers-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #f3f4f6;
    color: #161616;
    font-size: 0.95rem;
    line-height: 1;
    cursor: pointer;
    flex: 0 0 auto;
}

.city-profile-providers-close:hover,
.city-profile-providers-close:focus-visible {
    background: #eceef1;
    color: #111;
}

.city-profile-providers-head h3 {
    margin: 0;
    color: var(--ui-h3-color, #1a1a1a);
    font-size: var(--ui-h3-size, clamp(1.15rem, 1.7vw, 1.4rem));
    font-weight: var(--ui-h3-weight, 800);
    line-height: var(--ui-h3-line, 1.3);
    letter-spacing: var(--ui-h3-letter, -0.015em);
}

.city-profile-providers-head a {
    color: var(--lending-red-dark, #d63026);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
}

.city-profile-providers-head a:hover {
    text-decoration: underline;
}

.city-profile-providers-search {
    display: block;
    margin: 0 0 0.75rem;
}

.city-profile-providers-search-input {
    width: 100%;
    max-width: 280px;
    min-height: 38px;
    padding: 0.45rem 0.75rem;
    border: 1px solid #e7e9ee;
    border-radius: 10px;
    background: #f7f8fa;
    color: #1a1a1a;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    outline: none;
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.city-profile-providers-search-input::placeholder {
    color: #9aa0a6;
    font-weight: 550;
}

.city-profile-providers-search-input:focus {
    border-color: #f0c7c4;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb), 0.1);
}

.city-profile-providers-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    max-height: 280px;
    overflow-y: auto;
}

.city-profile-providers-empty {
    margin: 0.35rem 0 0;
    color: #6b7280;
    font-size: 0.88rem;
    font-weight: 600;
}

.city-profile-provider-link {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 0;
    width: 100%;
    padding: 0.65rem 0.7rem;
    border: 1px solid #e7e9ee;
    border-radius: 12px;
    background: #fff;
    color: #202124 !important;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 700;
    text-align: left;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.city-profile-provider-link:hover {
    border-color: #f0c7c4;
    background: #fff8f6;
    box-shadow: 0 4px 12px rgba(var(--lending-red-rgb), 0.06);
}

.city-profile-provider-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 72px;
    height: 30px;
    border-radius: 8px;
    background: #f7f8fa;
}

.city-profile-provider-logo img {
    max-width: 72px;
    max-height: 28px;
    object-fit: contain;
}

.city-profile-provider-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hero-city-layout--after-tariffs {
    margin-top: 1.5rem;
}

@media (max-width: 991px) {
    .city-profile-providers-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .city-internet-profile {
        width: 61%;
        max-width: 61%;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 1rem;
        padding-inline: 0;
        box-sizing: border-box;
    }

    .hero-top-tariffs-grid {
        width: 80%;
        max-width: 80%;
        margin-left: auto;
        margin-right: auto;
        padding-inline: 0;
        box-sizing: border-box;
    }

    .city-internet-profile-grid {
        --city-profile-gap: 0.85rem;
        grid-template-columns: 1fr;
        gap: var(--city-profile-gap);
    }

    .city-internet-profile-grid > :nth-child(1) {
        order: 1;
    }

    .city-internet-profile-grid > :nth-child(2) {
        order: 3;
    }

    .city-internet-profile-grid > :nth-child(3) {
        order: 2;
    }

    .city-internet-profile-grid > :nth-child(4) {
        order: 4;
    }

    .city-internet-profile-grid > :nth-child(5) {
        order: 5;
    }

    .city-internet-profile-card {
        min-height: 0;
        padding: 0.9rem 0.95rem 0.85rem;
    }

    .city-profile-providers-grid {
        grid-template-columns: 1fr;
    }
}

.hero-top-tariffs-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.85rem;
    align-items: stretch;
    width: min(100%, 920px);
    margin-inline: auto;
}

@supports (grid-template-rows: subgrid) {
    .hero-top-tariffs-grid {
        row-gap: 0.85rem;
        column-gap: 1.85rem;
    }

    .hero-top-tariffs-grid > .hero-top-tariffs-col {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 5;
        gap: unset;
        align-content: start;
    }

    .hero-top-tariffs-grid > .hero-top-tariffs-col::after {
        content: '';
        display: block;
        height: 1rem;
        grid-row: 5;
    }

    .hero-top-tariffs-grid > .hero-top-tariffs-col .hero-top-tariffs-col-head {
        min-height: 0;
        height: 100%;
        align-self: stretch;
    }
}

.hero-top-tariffs-col {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
    padding: 1.1rem 1.15rem 1.15rem;
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(17, 24, 39, 0.06);
    box-shadow:
        0 4px 12px rgba(17, 24, 39, 0.08),
        0 12px 36px rgba(17, 24, 39, 0.14);
    min-width: 0;
}

/* Резерв высоты под жёлтую плашку — карточки без акции не «подпрыгивают» вверх */
.hero-top-tariffs-col:not(:has(.hero-top-tariffs-col-label))::before {
    content: '';
    display: block;
    flex: 0 0 auto;
    width: 100%;
    height: 2.05rem;
    visibility: hidden;
    pointer-events: none;
}

.hero-top-tariffs-col-label {
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    min-height: 2.05rem;
    margin-inline: auto;
    padding: 0.42rem 0.85rem;
    border-radius: 999px;
    background: #ffe566;
    color: #111;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.2;
    box-sizing: border-box;
}

.hero-top-tariffs-col-head {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    align-items: center;
    column-gap: 0.85rem;
    min-width: 0;
    width: 100%;
    /* Одинаковая высота шапки: логотипы центрируются по одной линии */
    min-height: 6.5rem;
    margin: 0.15rem 0 0.15rem;
}

.hero-top-tariffs-col-head > .hero-top-tariffs-col-provider-link,
.hero-top-tariffs-col-head > .hero-top-tariffs-col-provider-tip,
.hero-top-tariffs-col-head > .hero-top-tariffs-col-provider {
    justify-self: start;
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.85rem;
    max-width: 7.5rem;
}

.hero-top-tariffs-col-provider-link {
    color: inherit;
    text-decoration: none;
}

.hero-top-tariffs-col-provider-link:hover,
.hero-top-tariffs-col-provider-link:focus-visible {
    color: inherit;
    text-decoration: none;
    outline: none;
}

.hero-top-tariffs-col-provider-link:hover .hero-top-tariffs-col-logo,
.hero-top-tariffs-col-provider-link:focus-visible .hero-top-tariffs-col-logo {
    opacity: 0.86;
}

.hero-top-tariffs-col-provider-tip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 7.5rem;
}

.hero-top-tariffs-col-provider-tip::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.55rem);
    transform: translateX(-50%) translateY(0.2rem);
    padding: 0.35rem 0.65rem;
    border-radius: 8px;
    background: #1f2328;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 6;
    box-shadow: 0 6px 16px rgba(17, 24, 39, 0.18);
}

.hero-top-tariffs-col-provider-tip::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.2rem);
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #1f2328;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
    z-index: 6;
}

.hero-top-tariffs-col-provider-tip:hover::after,
.hero-top-tariffs-col-provider-tip:focus-visible::after,
.hero-top-tariffs-col-provider-tip:hover::before,
.hero-top-tariffs-col-provider-tip:focus-visible::before {
    opacity: 1;
}

.hero-top-tariffs-col-provider-tip:hover::after,
.hero-top-tariffs-col-provider-tip:focus-visible::after {
    transform: translateX(-50%) translateY(0);
}

.hero-top-tariffs-col-logo {
    display: block;
    max-width: 7.5rem;
    max-height: 2.85rem;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 6px;
    transition: opacity 0.15s ease;
}

.hero-top-tariffs-col-provider {
    color: #111;
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.2;
    max-width: 7.5rem;
}

.hero-top-tariffs-col-tariff-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    min-width: 0;
}

.hero-top-tariffs-col-tariff {
    margin: 0;
    min-width: 0;
    color: #212121;
    font-size: 1.02rem;
    font-weight: 400;
    line-height: 1.3;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.hero-top-tariffs-col-features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    flex: 1 1 auto;
}

.hero-top-tariffs-col-feature {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    min-width: 0;
}

.hero-top-tariffs-col-feature--speed {
    justify-content: center;
    text-align: center;
}

.hero-top-tariffs-col-feature-label {
    flex: 0 0 auto;
    margin: 0;
    min-width: 0;
    color: #6b7280;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.hero-top-tariffs-col-feature-text {
    color: #2f3238;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.4;
}

.hero-top-tariffs-col-feature-text--speed {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
}

.hero-top-tariffs-col-speed {
    color: #171a21;
    font-size: var(--ui-card-metric-size);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.hero-top-tariffs-col-tech-chip {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d3d7dc;
    background: #f3f4f6;
    border-radius: 999px;
    color: #4a4f57;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.15rem 0.5rem;
    letter-spacing: 0.02em;
}

.hero-top-tariffs-col-details {
    appearance: none;
    align-self: flex-start;
    margin: 0;
    padding: 0.2rem 0.55rem;
    border: 1px solid #d3d7dc;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4a4f57;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.hero-top-tariffs-col-details:hover,
.hero-top-tariffs-col-details:focus-visible {
    background: #fff1ef;
    border-color: rgba(var(--lending-red-rgb), 0.35);
    color: var(--lending-red-dark, #d63026);
    outline: none;
}

.hero-top-tariffs-col-foot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin-top: auto;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(17, 24, 39, 0.08);
}

.hero-top-tariffs-col-actions {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.95rem;
    width: 100%;
}

.hero-top-tariffs-col-price {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    flex: 0 1 auto;
    min-width: 0;
    line-height: 1.1;
}

.hero-top-tariffs-col-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    width: 100%;
}

.hero-top-tariffs-col-price-old {
    color: #000;
    font-size: 1.2rem;
    font-weight: 600;
    text-decoration: line-through;
    line-height: 1.15;
    white-space: nowrap;
}

.hero-top-tariffs-col-price-current {
    color: #111;
    font-size: var(--ui-card-price-size);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
    white-space: nowrap;
}

.hero-top-tariffs-col-btn.btn-connect-card {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    max-width: 100%;
    flex: 0 0 auto;
    min-width: 0;
    min-height: var(--ui-btn-height) !important;
    padding: var(--ui-btn-pad-y) var(--ui-btn-pad-x) !important;
    border-radius: var(--ui-btn-radius) !important;
    font-size: var(--ui-btn-font-size) !important;
    font-weight: 700 !important;
    white-space: nowrap;
}

.hero-top-tariffs-col-info {
    position: relative;
    flex: 0 0 2.35rem;
    width: 2.35rem;
    height: 2.35rem;
    border: 1.5px solid var(--lending-red);
    border-radius: 999px;
    background: #fff;
    color: var(--lending-red);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
    padding: 0;
}

.hero-top-tariffs-col-info:hover,
.hero-top-tariffs-col-info:focus-visible {
    background: var(--lending-red-soft);
    outline: none;
}

.hero-top-tariffs-col-info::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.55rem);
    transform: translateX(-50%) translateY(0.2rem);
    padding: 0.35rem 0.65rem;
    border-radius: 8px;
    background: #1f2328;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 3;
}

.hero-top-tariffs-col-info::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.25rem);
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #1f2328;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
    z-index: 3;
}

.hero-top-tariffs-col-info:hover::after,
.hero-top-tariffs-col-info:focus-visible::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.hero-top-tariffs-col-info:hover::before,
.hero-top-tariffs-col-info:focus-visible::before {
    opacity: 1;
}

@media (max-width: 991px) {
    .hero-top-tariffs-grid {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    .hero-top-tariffs-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .hero-top-tariffs-col-tariff {
        font-size: 0.96rem;
    }

    .hero-top-tariffs-col-feature-text {
        font-size: 0.88rem;
    }

    .hero-top-tariffs-col-price-current {
        font-size: 1.3rem;
    }

    .hero-top-tariffs-col-price-old {
        font-size: 1.15rem;
    }
}

/* Hero city layout: intro + крупный поиск слева, единая панель справа */
.hero-section--city-layout {
    padding: 2.75rem 0 2.75rem;
}

.hero-section--city-layout .hero-title {
    font-size: clamp(1.7rem, 2.6vw, 2.2rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.16;
    margin-bottom: 1.6rem;
    color: #0f1115;
    max-width: 17em;
}

.hero-city-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(290px, 340px);
    gap: 0 2.75rem;
    align-items: stretch;
}

.hero-city-layout--single {
    grid-template-columns: minmax(0, 1fr);
}

.hero-city-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.hero-city-main .hero-intro {
    margin: 0 0 1.75rem;
    max-width: min(100%, 34rem);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.7;
    color: #5f6775;
    letter-spacing: -0.003em;
}

.hero-city-lower {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-top: auto;
}

.hero-city-logos-block {
    padding-top: 1.35rem;
    border-top: 1px solid rgba(17, 24, 39, 0.08);
}

.hero-city-logos-caption {
    display: block;
    margin-bottom: 0.85rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #9aa1ac;
}

.hero-city-logos {
    margin: 0;
}

.hero-city-logos .providers-logos-marquee-viewport {
    padding: 0;
}

.hero-city-logos .providers-logos-marquee-set {
    gap: 2rem;
}

.hero-city-logos .provider-logo img {
    opacity: 0.68;
    filter: grayscale(30%);
    transition: opacity 0.2s ease, filter 0.2s ease;
}

.hero-city-logos .provider-logo:hover img,
.hero-city-logos .provider-logo:focus-visible img {
    opacity: 1;
    filter: none;
}

.hero-city-search-form-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.hero-section--city-layout .hero-city-search {
    margin: 0;
    width: 100%;
    max-width: 100%;
}

.hero-section--city-layout .hero-city-search .address-input-wrap--combo {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    --combo-inset: 0.35rem;
    border-color: rgba(17, 24, 39, 0.12);
    box-shadow: 0 8px 26px rgba(17, 24, 39, 0.08);
}

.hero-section--city-layout .hero-city-search .address-input-wrap--combo:focus-within {
    border-color: var(--lending-red);
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb), 0.14), 0 8px 26px rgba(17, 24, 39, 0.08);
}

.hero-section--city-layout .hero-city-search .address-input {
    font-size: 1rem;
    padding-top: 0.95rem;
    padding-bottom: 0.95rem;
}

.hero-city-search-hint {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: #8a929e;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    letter-spacing: -0.003em;
}

.hero-city-search-hint::before {
    content: "";
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    background-color: #22c55e;
    -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M13.485 1.929a1 1 0 0 1 .086 1.411l-6.5 7.5a1 1 0 0 1-1.463.049L2.293 9.475a1 1 0 1 1 1.414-1.414l1.56 1.56 5.807-6.7a1 1 0 0 1 1.411-.086z'/%3E%3C/svg%3E");
    mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M13.485 1.929a1 1 0 0 1 .086 1.411l-6.5 7.5a1 1 0 0 1-1.463.049L2.293 9.475a1 1 0 1 1 1.414-1.414l1.56 1.56 5.807-6.7a1 1 0 0 1 1.411-.086z'/%3E%3C/svg%3E");
}

.hero-city-aside {
    display: flex;
}

.hero-city-panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: #fff;
    border: 1px solid rgba(17, 24, 39, 0.08);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.05);
}

.hero-city-panel-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 1.5rem 1.5rem 1.6rem;
    border-top: 3px solid var(--lending-red);
}

.hero-city-widget-eyebrow {
    margin: 0 0 0.45rem;
    font-size: 0.675rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--lending-red);
    line-height: 1.2;
}

.hero-city-widget-title {
    margin: 0 0 0.5rem;
    font-size: 1.18rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.28;
    color: #0f1115;
}

.hero-city-widget-text {
    margin: 0 0 1.35rem;
    color: #5f6775;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.55;
}

.hero-city-widget-btn.btn-connect-card {
    width: 100% !important;
    margin-top: auto;
    border-radius: 12px !important;
    font-size: 0.92rem;
    font-weight: 700;
    padding-top: 0.82rem;
    padding-bottom: 0.82rem;
}

.hero-city-panel-phone {
    padding: 1.1rem 1.5rem;
    background: #f7f8fa;
    border-top: 1px solid rgba(17, 24, 39, 0.06);
}

.hero-city-phone {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    width: 100%;
    text-decoration: none !important;
}

.hero-city-phone .journal-cta-phone-number {
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #0f1115;
}

.hero-city-phone:hover .journal-cta-phone-number {
    color: var(--lending-red-dark, var(--lending-red-dark));
}

.hero-city-panel-phone .journal-cta-phone-note {
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: #8a929e;
}

@media (max-width: 991px) {
    .hero-section--city-layout .hero-title {
        max-width: none;
    }

    .hero-city-layout {
        grid-template-columns: 1fr;
        gap: 1.75rem 0;
        align-items: start;
    }

    .hero-city-main .hero-intro {
        max-width: none;
    }

    .hero-city-lower {
        margin-top: 0;
    }
}

@media (max-width: 640px) {
    .hero-section--city-layout {
        padding-top: 2rem;
    }

    .hero-section--city-layout .hero-title {
        font-size: 1.55rem;
        margin-bottom: 1.15rem;
    }
}

/* City hero: landing-style centered search block */
.hero-section--city-layout {
    padding: 2.5rem 0 2.25rem;
}

.hero-section--city-landing {
    background:
        radial-gradient(ellipse 90% 70% at 50% -10%, rgba(var(--lending-red-rgb), 0.1), transparent 55%),
        linear-gradient(180deg, #fff 0%, #f6f7f9 100%);
}

.city-landing-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    max-width: 46rem;
    margin: 2.75rem auto 2.5rem;
    padding: 1.75rem 0 1.5rem;
}

.city-landing-hero-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.hero-section--city-landing > .container > .hero-title {
    max-width: min(40rem, 100%);
    margin: 0 auto 1.35rem;
    text-align: center;
    font-size: clamp(1.65rem, 3.2vw, 2.35rem);
    line-height: 1.22;
}

.city-landing-hero-title {
    max-width: min(40rem, 100%);
    margin: 0 auto;
    text-align: center;
    color: #0f1115;
    font-size: clamp(1.25rem, 2.4vw, 1.65rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.28;
}

.city-landing-hero .address-search {
    margin-top: 1.25rem;
    width: 100%;
    max-width: min(36rem, 100%);
}

.city-landing-hero .address-input-wrap--combo,
.hero-section--city-landing .city-landing-hero .address-input-wrap--combo {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
}

.city-landing-hero-phone {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0.35rem 0.75rem;
    margin: 1.15rem 0 0;
}

.city-landing-hero-phone-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--lending-red, var(--lending-red));
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.city-landing-hero-phone-link:hover {
    color: var(--lending-red-dark, var(--lending-red-dark));
    text-decoration: none;
}

.city-landing-hero-phone-link i {
    font-size: 0.85rem;
}

.city-landing-hero-phone-note {
    color: #686f7a;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.2;
}

.city-landing-hero-perks {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.65rem 1.25rem;
    list-style: none;
    margin: 0.7rem 0 0;
    padding: 0;
    color: #161616;
    font-size: 0.95rem;
    font-weight: 600;
}

.city-landing-hero-perks li {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.city-landing-hero-perks i {
    color: var(--lending-red, var(--lending-red));
    font-size: 1.1rem;
}

.hero-section--city-landing .city-internet-profile {
    margin-top: 0.15rem;
    margin-bottom: 1.15rem;
}

.city-page-top + .hero-section,
.city-page-top + .hero-section.hero-section--city-layout,
.city-page-top + .hero-section.hero-section--with-top-tariffs {
    padding-top: 1.65rem;
}

@media (max-width: 640px) {
    .city-page-top + .hero-section,
    .city-page-top + .hero-section.hero-section--city-layout {
        padding-top: 1.25rem;
    }

    .hero-section--city-landing {
        padding-top: 2rem;
    }

    .hero-section--city-landing > .container > .hero-title {
        font-size: 1.55rem;
        margin-bottom: 1.15rem;
    }

    .city-landing-hero {
        margin-top: 2.15rem;
        margin-bottom: 1.85rem;
        padding: 1.25rem 0 1.1rem;
    }

    .city-landing-hero-title {
        font-size: 1.2rem;
    }

    .city-landing-hero-perks {
        flex-direction: column;
        align-items: center;
        gap: 0.45rem;
    }
}

.hero-city-layout {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
    gap: 1rem;
    align-items: stretch;
}

.hero-city-check-card {
    min-height: 190px;
    padding: 1.55rem 1.75rem;
    border: 1px solid rgba(17, 24, 39, 0.04);
    border-radius: 18px;
    background: #f3f4f6;
}

.hero-city-main .hero-intro {
    max-width: 48rem;
    margin-bottom: 1.35rem;
    color: #59616d;
    font-size: 1.05rem;
    line-height: 1.6;
}

.hero-city-lower {
    width: 100%;
    margin-top: auto;
    gap: 0;
}

.hero-city-search-form-wrap {
    gap: 0;
}

.hero-section--city-layout .hero-city-search .address-input-wrap--combo {
    --combo-inset: 0.3rem;
    box-shadow: none;
    border-color: rgba(17, 24, 39, 0.1);
}

.hero-section--city-layout .hero-city-search .address-input-wrap--combo:focus-within {
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb), 0.12);
}

.hero-section--city-layout .hero-city-search .address-input {
    font-size: 1rem;
    padding-top: 0.82rem;
    padding-bottom: 0.82rem;
}

.hero-city-aside {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 0.6rem;
}

.hero-city-widget {
    display: flex;
    flex-direction: column;
    padding: 1.25rem 1.4rem;
    border: 1px solid rgba(17, 24, 39, 0.04);
    border-radius: 14px;
    background: #f3f4f6;
    box-shadow: none;
}

.hero-city-widget-title {
    margin: 0 0 0.45rem;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
}

.hero-city-widget-text {
    margin: 0 0 0.95rem;
    font-size: 1rem;
    line-height: 1.5;
}

.hero-city-widget-btn.btn-connect-card {
    margin-top: auto;
    padding-top: 0.78rem;
    padding-bottom: 0.78rem;
    border-radius: 999px !important;
    font-size: 0.98rem;
}

.hero-city-widget--phone {
    justify-content: center;
    min-height: 80px;
    padding: 1.15rem 1.4rem;
}

.hero-city-widget--phone .journal-cta-phone-number {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.hero-city-widget--phone .journal-cta-phone-note {
    margin-top: 0.25rem;
    color: #6b7280;
    font-size: 0.95rem;
}

.hero-city-logos-block {
    margin-top: 1.75rem;
    padding-top: 0;
    border-top: 0;
}

.hero-city-logos-caption {
    margin-bottom: 0.9rem;
    font-size: 0.8rem;
}

.hero-city-logos .providers-logos-marquee-set {
    justify-content: space-between;
    gap: 2.5rem;
    min-width: 100%;
}

@media (max-width: 991px) {
    .hero-city-layout {
        grid-template-columns: 1fr;
    }

    .hero-city-aside {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
    }

    .hero-city-check-card {
        min-height: 0;
    }
}

@media (max-width: 640px) {
    .hero-city-check-card {
        padding: 1.25rem;
    }

    .hero-city-aside {
        grid-template-columns: 1fr;
    }

    .hero-city-logos-block {
        margin-top: 1.35rem;
    }
}


/* Provider page: breadcrumbs row + right subnav */
.city-page-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    flex-wrap: wrap;
}

.city-page-top-row.city-page-top-row--with-consult:not(.is-consult-below) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    justify-content: initial;
    flex-wrap: nowrap;
    gap: 0.75rem 1rem;
    padding-bottom: 0.55rem;
}

.city-page-top-row.city-page-top-row--with-consult:not(.is-consult-below) .city-breadcrumbs-bar {
    grid-column: 1;
    justify-self: start;
    max-width: 100%;
}

.city-page-top-row.city-page-top-row--with-consult:not(.is-consult-below) .hero-consult-sticky-slot {
    grid-column: 2;
    justify-self: end;
    margin: 0;
}

.city-page-top-row.city-page-top-row--with-consult.is-consult-below {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
}

.city-page-top-row.city-page-top-row--with-consult.is-consult-below .hero-consult-sticky-slot {
    margin: 0.45rem 0 0.1rem auto;
}

.city-page-top-row--with-provider-nav .city-breadcrumbs-bar {
    flex: 0 1 auto;
}

.provider-page-subnav {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.2rem;
    margin-left: auto;
    padding: 0.35rem;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(17, 24, 39, 0.05);
}

.provider-page-subnav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.85rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #1a1a1a !important;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
    cursor: pointer;
    white-space: nowrap;
}

.provider-page-subnav-link:hover,
.provider-page-subnav-dropdown.is-open > .provider-page-subnav-dropdown-toggle {
    background: #f3f4f6;
}

.provider-page-subnav-link.is-active,
.provider-page-subnav-dropdown.is-active > .provider-page-subnav-dropdown-toggle {
    background: #eceef2;
    color: var(--primary, #e31c23) !important;
}

.provider-page-subnav-dropdown {
    position: relative;
}

.provider-page-subnav-dropdown-toggle .bi {
    font-size: 0.75rem;
    transition: transform 0.2s ease;
}

.provider-page-subnav-dropdown.is-open .provider-page-subnav-dropdown-toggle .bi {
    transform: rotate(180deg);
}

.provider-page-subnav-dropdown-menu {
    position: absolute;
    top: calc(100% + 0.35rem);
    right: 0;
    z-index: 40;
    min-width: 16rem;
    padding: 0.4rem;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.12);
}

.provider-page-subnav-dropdown-item {
    display: block;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    color: #1a1a1a !important;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none !important;
}

.provider-page-subnav-dropdown-item:hover,
.provider-page-subnav-dropdown-item.is-active {
    background: #f3f4f6;
    color: var(--primary, #e31c23) !important;
}

@media (max-width: 720px) {
    .city-page-top {
        overflow: visible;
    }

    .city-page-top-row--with-provider-nav {
        flex-direction: row;
        align-items: center;
        overflow: visible;
    }

    .provider-page-subnav {
        display: none;
    }
}

/* Provider sales page */
.provider-sales-section {
    padding: 1.5rem 0 2.75rem;
}

.provider-sales-head {
    max-width: 44rem;
    margin-bottom: 1.35rem;
}

.provider-sales-title {
    margin: 0 0 0.55rem;
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #1a1a1a;
}

.provider-sales-lead {
    margin: 0;
    color: #5b616b;
    font-size: 1.02rem;
    line-height: 1.55;
}

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

.provider-sale-card {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 1.2rem 1.25rem;
    border: 1px solid #eee;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.provider-sale-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.provider-sale-badge {
    display: inline-flex;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    background: rgba(227, 28, 35, 0.1);
    color: var(--primary, #e31c23);
    font-size: 0.78rem;
    font-weight: 700;
}

.provider-sale-validity {
    color: #8a9099;
    font-size: 0.8rem;
}

.provider-sale-card-title {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.3;
    color: #1a1a1a;
}

.provider-sale-card-intro,
.provider-sale-card-text {
    margin: 0;
    color: #3a3f47;
    font-size: 0.95rem;
    line-height: 1.55;
}

.provider-sale-card-body {
    color: #3a3f47;
    font-size: 0.95rem;
    line-height: 1.55;
}

.provider-sale-card-body p {
    margin: 0 0 0.55rem;
}

.provider-sale-card-actions {
    margin-top: auto;
    padding-top: 0.35rem;
}

.provider-sale-card-actions .btn-check-availability {
    width: auto;
    padding: 0.55rem 1rem;
    font-size: 0.88rem;
}

.provider-sales-empty {
    margin: 0 0 1rem;
    color: #5b616b;
}

.provider-sales-empty-actions .btn-check-availability {
    width: auto;
    padding: 0.55rem 1rem;
}

@media (max-width: 800px) {
    .provider-sales-grid {
        grid-template-columns: 1fr;
    }
}

/* SEO-блок раздела акций — в стиле сайта (lending) */
.provider-sale-seo {
    padding: 0 0 var(--ui-section-pad-y, 2rem);
    background: transparent;
}

.provider-sale-seo-title {
    margin: 0 0 var(--ui-title-gap, 1rem) !important;
    font-size: var(--ui-title-size, clamp(1.35rem, 2vw, 1.95rem)) !important;
    line-height: 1.25 !important;
    font-weight: var(--ui-title-weight, 800) !important;
    letter-spacing: -0.02em;
    color: var(--lending-ink, #161616) !important;
}

.provider-sale-seo-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
    gap: 1.15rem;
    padding: 1.25rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--lending-red-rgb, 243, 71, 60), 0.06), transparent 42%),
        linear-gradient(165deg, #ffffff 0%, var(--lending-soft, #f6f7f9) 100%);
    box-shadow: 0 8px 28px rgba(22, 22, 22, 0.05);
}

.provider-sale-seo-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.provider-sale-seo-intro,
.provider-sale-seo-note,
.provider-sale-seo-fact {
    margin: 0;
    line-height: 1.55;
}

.provider-sale-seo-intro {
    padding: 0.85rem 1rem;
    border-radius: 16px;
    border: 1px solid rgba(var(--lending-red-rgb, 243, 71, 60), 0.14);
    background: var(--lending-red-soft, #fff1ef);
    color: var(--lending-ink, #161616);
    font-size: 0.98rem;
    font-weight: 600;
}

.provider-sale-seo-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.provider-sale-seo-step {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-height: 4.25rem;
    padding: 0.8rem 0.85rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 0 rgba(22, 22, 22, 0.02);
}

.provider-sale-seo-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    flex: 0 0 auto;
    margin-top: 0.05rem;
    border-radius: 999px;
    background: var(--lending-red, #f3473c);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 4px 10px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
}

.provider-sale-seo-step-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.provider-sale-seo-step-title {
    color: var(--lending-ink, #161616);
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.3;
}

.provider-sale-seo-step-text {
    color: var(--lending-muted, #686f7a);
    font-size: 0.86rem;
    font-weight: 600;
    line-height: 1.4;
}

.provider-sale-seo-note {
    color: var(--lending-muted, #686f7a);
    font-size: 0.94rem;
    font-weight: 600;
}

.provider-sale-seo-fact {
    padding: 0.85rem 1rem;
    border-radius: 16px;
    border: 1px solid var(--lending-line, #edf0f4);
    background: #fff;
    color: var(--lending-ink, #161616);
    font-size: 0.92rem;
    font-weight: 600;
}

.provider-sale-seo-stats {
    display: grid;
    gap: 0.65rem;
    align-content: start;
}

.provider-sale-seo-stat {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--lending-line, #edf0f4);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 0 rgba(22, 22, 22, 0.02);
}

.provider-sale-seo-stat-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    border-radius: 12px;
    background: var(--lending-red-soft, #fff1ef);
    color: var(--lending-red, #f3473c);
    font-size: 1.1rem;
    line-height: 1;
}

.provider-sale-seo-stat-icon i {
    display: block;
    line-height: 1;
    font-size: 1.1rem;
    width: 1em;
    height: 1em;
    margin: 0;
    padding: 0;
    text-align: center;
}

.provider-sale-seo-stat-icon i::before {
    display: block;
    line-height: 1;
}

.provider-sale-seo-stat > div strong {
    display: block;
    margin-bottom: 0.1rem;
    color: var(--lending-ink, #161616);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.provider-sale-seo-stat > div span {
    display: block;
    color: var(--lending-muted, #686f7a);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;
}

.provider-sale-seo-stat--accent {
    border-color: rgba(var(--lending-red-rgb, 243, 71, 60), 0.22);
    background: linear-gradient(135deg, #fff 0%, var(--lending-red-soft, #fff1ef) 100%);
}

.provider-sale-seo-stat--accent .provider-sale-seo-stat-icon {
    background: var(--lending-red, #f3473c);
    color: #fff;
    box-shadow: 0 4px 12px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
}

@media (max-width: 991px) {
    .provider-sale-seo-card {
        grid-template-columns: 1fr;
        padding: 1.05rem;
    }

    .provider-sale-seo-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .provider-sale-seo-steps,
    .provider-sale-seo-stats {
        grid-template-columns: 1fr;
    }

    .provider-sale-seo-step {
        min-height: 0;
    }
}

/* Service switcher */
.provider-service-switch-wrap {
    padding: 0.35rem 0 0.15rem;
}

.provider-service-switch-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    padding: 0.35rem;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(17, 24, 39, 0.05);
}

.provider-service-switch-item {
    display: inline-flex;
    align-items: center;
    padding: 0.55rem 0.95rem;
    border-radius: 999px;
    color: #1a1a1a !important;
    font-size: 0.9rem;
    font-weight: 650;
    text-decoration: none !important;
}

.provider-service-switch-item:hover {
    background: #f3f4f6;
}

.provider-service-switch-item.is-active {
    background: #eceef2;
    color: var(--primary, #e31c23) !important;
}

/* Office B2B lead section */
.office-lead-section {
    padding: var(--ui-section-pad-y, 2.25rem) 0;
    background: #f5f6f8;
}

.office-lead-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 1.5rem 2rem;
    align-items: start;
}

.office-lead-eyebrow {
    margin: 0 0 0.55rem;
    color: var(--lending-red, #f3473c);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.office-lead-title {
    margin: 0 0 0.75rem;
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: #1a1a1a;
    text-align: left;
}

.office-lead-text {
    margin: 0 0 1.15rem;
    color: #4a4f57;
    font-size: 1.02rem;
    line-height: 1.55;
}

.office-lead-perks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.office-lead-perks li {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #e8ebf0;
}

.office-lead-perks strong {
    color: #1a1a1a;
    font-size: 0.98rem;
}

.office-lead-perks span {
    color: #5b616b;
    font-size: 0.92rem;
    line-height: 1.45;
}

.office-lead-card {
    background: #fff;
    border: 1px solid #e8ebf0;
    border-radius: 20px;
    padding: 1.25rem 1.2rem 1.35rem;
    box-shadow: 0 8px 28px rgba(17, 24, 39, 0.06);
}

.office-lead-form {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.office-lead-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.88rem;
    font-weight: 650;
    color: #374151;
}

.office-lead-city-wrap {
    position: relative;
}

.office-lead-city-suggestions {
    border-radius: 12px;
    border-width: 1px;
    max-height: 240px;
    z-index: 40;
}

.office-lead-input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d9dee7;
    border-radius: 12px;
    padding: 0.75rem 0.9rem;
    font: inherit;
    font-weight: 500;
    color: #1a1a1a;
    background: #fff;
}

.office-lead-input:focus {
    outline: none;
    border-color: rgba(var(--lending-red-rgb, 243, 71, 60), 0.55);
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb, 243, 71, 60), 0.12);
}

.office-lead-phone-field.ru-phone-field {
    border: 1px solid #d9dee7;
    border-radius: 12px;
    min-height: 2.75rem;
    box-shadow: none;
}

.office-lead-phone-field.ru-phone-field:focus-within {
    border-color: rgba(var(--lending-red-rgb, 243, 71, 60), 0.55);
    box-shadow: 0 0 0 3px rgba(var(--lending-red-rgb, 243, 71, 60), 0.12);
}

.office-lead-phone-field .ru-phone-field__input.office-lead-input {
    border: 0;
    box-shadow: none;
    background: transparent;
    border-radius: 0;
    padding-left: 0.35rem;
}

.office-lead-phone-field .ru-phone-field__prefix {
    padding-left: 0.9rem;
    font-weight: 700;
}

.office-lead-textarea {
    resize: vertical;
    min-height: 5rem;
}

.office-lead-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0.15rem 0 0;
    font-size: 0.84rem;
    font-weight: 500;
    color: #5b616b;
    line-height: 1.4;
}

.office-lead-consent input {
    margin-top: 0.15rem;
}

.office-lead-error {
    margin: 0;
    color: #b42318;
    font-size: 0.9rem;
    font-weight: 600;
}

.office-lead-submit {
    border: 0;
    border-radius: 999px;
    padding: 0.9rem 1.25rem;
    background: var(--lending-red, #f3473c);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(var(--lending-red-rgb, 243, 71, 60), 0.28);
}

.office-lead-submit:hover {
    background: var(--lending-red-dark, #d63026);
}

.office-lead-submit:disabled {
    opacity: 0.7;
    cursor: wait;
}

.office-lead-success {
    text-align: center;
    padding: 1.5rem 0.5rem;
}

.office-lead-success .bi {
    font-size: 2rem;
    color: #12b76a;
}

.office-lead-success-title {
    margin: 0.65rem 0 0.35rem;
    font-size: 1.2rem;
    font-weight: 800;
    color: #1a1a1a;
}

.office-lead-success-text {
    margin: 0;
    color: #5b616b;
    line-height: 1.45;
}

@media (max-width: 900px) {
    .office-lead-grid {
        grid-template-columns: 1fr;
    }
}
