@font-face {
    font-family: "Didot";
    src: url("didot-bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
html,
body {
    overflow-x: hidden;
}

[data-aos] {
    will-change: transform, opacity;
}

@media (prefers-reduced-motion: reduce) {
    [data-aos] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
.didot {
    font-family: "Didot", Georgia, serif;
    font-weight: 700;
}

        :root {
            --page-bg: #08090b;
            --card-bg: #151619;
            --card-bg-2: #111216;
            --text-main: #f3f1ed;
            --text-muted: #a5a19a;
            --accent: #9f8a67;
            --accent-dark: #6f6049;
            --border: rgba(159, 138, 103, .55);
        }
		.border-accent {border-color:var(--accent)!important;}
        html {
            scroll-behavior: smooth;
        }

        body {
            margin: 0;
            background: var(--page-bg);
            color: var(--text-main);
			font-family: "Montserrat", sans-serif;
            font-size: 14px;
        }

        a {
            color: inherit;
            text-decoration: none;
        }

        .site-container {
            width: min(100% - 32px, 1120px);
            margin-inline: auto;
        }

        .section-space {
            padding: 42px 0;
        }

        .section-title {
            margin: 0 0 26px;
            color: var(--accent);
            font-size: clamp(22px, 2vw, 31px);
            font-style: italic;
            font-weight: 500;
        }

        .navbar {
            min-height: 72px;
            background: rgba(8, 9, 11, .98);
            border-bottom: 1px solid rgba(159, 138, 103, .2);
        }

        .navbar-brand {
            display: flex;
            align-items: center;
            gap: 10px;
            font-family: Georgia, serif;
            font-size: 25px;
            letter-spacing: 1px;
        }

        .brand-mark {
            width: 36px;
            height: 36px;
            object-fit: contain;
        }

        .navbar-nav .nav-link {
            padding-inline: 16px !important;
            color: #cbc7c1;
            font-size: 13px;
        }

        .navbar-nav .nav-link:hover,
        .navbar-nav .nav-link:focus {
            color: #fff;
        }

        .btn-outline-gold {
            min-width: 170px;
            padding: 10px 22px;
            color: var(--accent);
            border: 1px solid var(--border);
            border-radius: 999px;
            background: transparent;
        }

        .btn-outline-gold:hover {
            color: #fff;
            border-color: var(--accent);
            background: rgba(159, 138, 103, .12);
        }

        .hero {
            min-height: 505px;
            position: relative;
            display: flex;
            align-items: center;
            overflow: hidden;
            /*background:
                linear-gradient(90deg, rgba(8, 9, 11, .98) 0%, rgba(8, 9, 11, .82) 38%, rgba(8, 9, 11, .24) 100%),
                linear-gradient(180deg, rgba(159, 138, 103, .12), rgba(8, 9, 11, .9));*/
        }

        .hero-image {
            position: absolute;
            top:0;
			bottom:0;
			right:0;
			left:auto;
            width: auto;
            height: 505px;
            object-fit: cover;
            z-index: -1;
        }

        .hero-kicker {
            margin-bottom: 70px;
            color: #b7b3ad;
            font-size: 16px;
            font-style: italic;
            letter-spacing: .7px;
        }

        .hero-title {
            max-width: 520px;
            margin-bottom: 40px;
            font-size: 28px;
            line-height: 1.18;
            font-weight: 400;
        }

        .hero .btn-outline-gold {
            min-width: 300px;
            border-radius: 13px;
            font-size: 17px;
        }

        .image-placeholder {
            display: block;
            width: 100%;
            object-fit: cover;
            background: #202227;
        }

        .fleet-card,
        .service-card,
        .review-card,
        .booking-panel,
        .map-card,
        .tour-card {
            background: var(--card-bg);
            border: 1px solid rgba(255,255,255,.03);
            border-radius: 15px;
            overflow: hidden;
        }

        .fleet-card {
            height: 100%;
        }

        .fleet-card .image-placeholder {
            aspect-ratio: 1.72;
        }

        .fleet-card-body {
            padding: 12px 15px 13px;
        }

        .fleet-card h3 {
            margin: 0 0 8px;
            font-size: 16px;
            font-weight: 500;
        }

        .fleet-meta {
            display: flex;
            justify-content: space-between;
            color: var(--text-muted);
            font-size: 12px;
        }

        .more-link {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            color: var(--accent);
            font-size: 16px;
            font-weight: 600;
        }

        .service-card {
            height: 100%;
        }

        .service-card .image-placeholder {
            aspect-ratio: 1.55;
        }

        .service-card-body {
            padding: 17px 17px 20px;
        }

        .service-card h3 {
            margin-bottom: 9px;
            font-size: 18px;
            font-weight: 600;
        }

        .service-card p {
            margin: 0;
            color: #bbb7b1;
            font-size: 14px;
            line-height: 1.35;
        }

        .tour-card {
            min-height: 420px;
            position: relative;
        }

        .tour-card .image-placeholder {
            position: absolute;
            top:0;
			right:0;
			bottom:0;
			left:auto;
            width: auto;
            height: 420px;
        }

        .tour-overlay {
            position: relative;
            z-index: 2;
            min-height: 420px;
            display: flex;
            align-items: center;
            padding: 42px;
            background: linear-gradient(90deg, rgba(18,19,23,.98) 0%, rgba(18,19,23,.94) 42%, rgba(18,19,23,.1) 74%);
        }

        .tour-content {
            max-width: 430px;
        }

        .tour-content h3 {
            margin-bottom: 22px;
            font-size: 26px;
            font-weight: 700;
        }

        .tour-content p {
            margin-bottom: 22px;
            color: #ddd9d2;
            font-size: 18px;
            line-height: 1.45;
        }

        .tour-content .btn-outline-gold {
            border-radius: 10px;
        }

        .advantage-item {
            text-align: center;
        }

        .advantage-icon {
            width: 70px;
            height: 70px;
            margin: 0 auto 13px;
            object-fit: contain;
        }

        .advantage-item p {
            margin: 0;
            color: #d0ccc5;
            font-size: 18px;
            line-height: 1.3;
        }

        .review-card {
			
            border: 1px solid var(--border);
        }

        .review-bubble {
            min-height: 144px;
            padding: 13px 14px;
            border: 1px solid rgba(255,255,255,.08);
            border-radius: 10px;
            color: #d8d4ce;
            font-size: 13px;
            line-height: 1.45;
        }

        .review-time {
            float: right;
            margin-top: 8px;
            color: #77736e;
            font-size: 10px;
        }

        .booking-panel {
            padding: 32px;
        }

        .booking-panel h3 {
            margin-bottom: 12px;
            color: var(--accent);
            font-size: 26px;
            font-style: italic;
            font-weight: 500;
        }

        .booking-panel p {
            margin-bottom: 25px;
            color: #c5c1ba;
            line-height: 1.45;
        }

        .form-control,
        .form-select {
            min-height: 49px;
            color: #e5e1db;
            border-color: #202228;
            border-radius: 9px;
            background-color: #101115;
        }

        .form-control::placeholder {
            color: #817e79;
        }

        .form-control:focus,
        .form-select:focus {
            color: #fff;
            border-color: var(--accent-dark);
            background-color: #101115;
            box-shadow: 0 0 0 .2rem rgba(159, 138, 103, .12);
        }

        .booking-panel .btn-outline-gold {
            width: 230px;
            border-radius: 9px;
        }

        .map-card {
            height: 100%;
            min-height: 395px;
        }

        .map-card .image-placeholder {
            width: 100%;
            height: 100%;
            min-height: 395px;
        }

        footer {
            padding: 55px 0 50px;
        }

        .footer-nav {
            display: flex;
            flex-wrap: wrap;
            gap: 30px;
            margin-bottom: 28px;
            font-size: 13px;
            font-weight: 600;
        }

        .socials {
            display: flex;
            gap: 15px;
        }

        .social-link {
            width: 38px;
            height: 38px;
            display: grid;
            place-items: center;
            border: 1px solid var(--border);
            border-radius: 50%;
            color: var(--accent);
            font-size: 18px;
        }

        .footer-contacts {
            text-align: right;
            line-height: 1.9;
        }

        @media (max-width: 991.98px) {
            .navbar-collapse {
                padding: 16px 0 20px;
            }

            .navbar-nav .nav-link {
                padding: 10px 0 !important;
            }

            .hero {
                min-height: 530px;
            }

            .hero-kicker {
                margin-bottom: 40px;
            }

            .tour-overlay {
                background: linear-gradient(90deg, rgba(18,19,23,.98), rgba(18,19,23,.82));
            }

            .footer-contacts {
                margin-top: 30px;
                text-align: left;
            }
        }

        @media (max-width: 575.98px) {
            .site-container {
                width: min(100% - 24px, 1120px);
            }

            .section-space {
                padding: 32px 0;
            }

            .hero {
                min-height: 500px;
            }

            .hero .btn-outline-gold {
                min-width: 100%;
            }

            .tour-overlay {
                padding: 28px 22px;
            }

            .booking-panel {
                padding: 23px 18px;
            }

            .booking-panel .btn-outline-gold {
                width: 100%;
            }

            .footer-nav {
                gap: 16px 22px;
            }
        .advantage-item p {
            margin: 0;
            color: #d0ccc5;
            font-size: 12px;
            line-height: 1.3;
        }			
			
        }
		
.map-card {
    position: relative;
    min-height: 470px;
    overflow: hidden;
    border-radius: 18px;
    background: #151515;
}

#bookingMap {
    width: 100%;
    height: 100%;
    min-height: 470px;
}

.route-status {
    min-height: 20px;
    color: #a99572;
    font-size: 14px;
}

.route-status.is-error {
    color: #d77b7b;
}

.route-status.is-success {
    color: #a99572;
}

@media (max-width: 991.98px) {
    .map-card,
    #bookingMap {
        min-height: 400px;
    }
}

@media (max-width: 575.98px) {
    .map-card,
    #bookingMap {
        min-height: 340px;
    }
}
#languageDropdown,
#languageDropdown:hover,
#languageDropdown:focus,
#languageDropdown:active,
#languageDropdown.show {
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}

#languageDropdown::after {
    display: none !important;
    content: none !important;
}

.car-product-card {
    width: 100%;
    margin: 0 auto;
    overflow: hidden;

    color: #f5f5f5;
    background: #171719;

    border-radius: 18px;
}
.rounded-lg {
    border-radius: 18px;	
}
/* Slider */

.car-product-slider {
    width: 100%;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
}

.car-product-slider .swiper-slide {
    height: auto;
    background: #101012;
}

.car-product-image {
    display: block;
    width: 100%;
    aspect-ratio: 630 / 310;
    object-fit: cover;
}

/* Body */

.car-product-body {
    padding: 0 49px 44px;
}

.car-product-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-top: -1px;
    margin-bottom: 22px;
}

.car-product-title {
    margin: 0;

    color: #f6f6f6;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.25;
}

/* Swiper pagination */

.car-product-pagination {
    position: static;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;

    width: auto !important;
    flex: 0 0 auto;
}

.car-product-pagination .swiper-pagination-bullet {
    width: 13px;
    height: 13px;
    margin: 0 !important;

    opacity: 1;
    background: #858585;

    transition:
        background-color 0.2s ease,
        transform 0.2s ease;
}

.car-product-pagination .swiper-pagination-bullet-active {
    background: #fff;
}

/* Features */

.car-features {
    margin-bottom: 25px;
}

.car-feature {
    display: flex;
    align-items: center;
    gap: 20px;

    min-height: 53px;
    padding-right: 15px;
}

.car-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 27px;
    min-width: 27px;

    color: #aa9677;
    font-size: 26px;
    line-height: 1;
}
.car-feature-icon img {
    height: 27px;
    width: auto;	
}
.car-feature-text {
    color: #d7d7d7;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.3;
}

/* Prices */

.car-prices {
    display: flex;
    flex-direction: column;
    gap: 14px;

    margin-bottom: 28px;
}

.car-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    min-height: 39px;
    padding: 6px 26px;

    color: #fff;
    background: #0d0d0f;

    border-radius: 10px;
}

.car-price-name,
.car-price-value {
    font-size: 20px;
    line-height: 1.2;
}

.car-price-name {
    font-weight: 400;
}

.car-price-value {
    font-weight: 400;
    text-align: right;
    white-space: nowrap;
}

/* Booking button */

.car-booking-btn,
.car-booking-btn:hover,
.car-booking-btn:focus,
.car-booking-btn:active {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 57px;

    padding: 12px 20px;

    color: #aa9677;
    font-size: 21px;
    font-weight: 400;
    text-decoration: none;

    background: transparent;
    border: 1px solid #aa9677;
    border-radius: 11px;
    box-shadow: none;
}

.car-booking-btn:hover {
    color: #171719;
    background: #aa9677;
}

/* Tablet */

@media (max-width: 767.98px) {
    .car-product-body {
        padding: 0 30px 35px;
    }

    .car-product-title {
        font-size: 21px;
    }

    .car-feature {
        min-height: 49px;
    }
}

/* Mobile */

@media (max-width: 575.98px) {
    .car-product-card {
        border-radius: 14px;
    }

    .car-product-slider {
        border-radius: 14px 14px 0 0;
    }

    .car-product-image {
        aspect-ratio: 4 / 3;
    }

    .car-product-body {
        padding: 18px 20px 28px;
    }

    .car-product-heading {
        align-items: flex-start;
        margin-top: 0;
        margin-bottom: 18px;
    }

    .car-product-title {
        font-size: 19px;
    }

    .car-product-pagination {
        gap: 8px;
        padding-top: 5px;
    }

    .car-product-pagination .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
    }

    .car-feature {
        gap: 15px;
        min-height: 46px;
        padding-right: 0;
    }

    .car-feature-icon {
        width: 24px;
        min-width: 24px;
        font-size: 23px;
    }

    .car-feature-text {
        font-size: 14px;
    }

    .car-price-row {
        padding: 9px 18px;
    }

    .car-price-name,
    .car-price-value {
        font-size: 17px;
    }

    .car-booking-btn,
    .car-booking-btn:hover,
    .car-booking-btn:focus,
    .car-booking-btn:active {
        min-height: 52px;
        font-size: 18px;
    }
}
.category-hero {
	height:300px;
	padding:40px 0 660px 0;
	background-size:cover;
	background-color:#000;
	background-position:center;
}
.category-min {
	padding:40px 0 0 0;
	background-size:cover;
	background-position:center;
}
@media all and (max-width:767px) {
.category-hero {
	height:300px;
	padding:0; 
	background-size:cover;
	background-color:#000;
	background-position:center;
}	
}  
.category-hero h1, .category-min h1, .category-hero .h1, .category-min .h1 {
	text-transform:uppercase;
	font-size:36px;
	font-style:italic;
	color: var(--accent);
	font-weight:300;
}

.category-min h1.h3 {
	text-transform:none !important;
	font-size:24px !important;
	font-style:italic;
	color: #fff;
	font-weight:300;
}

.car-product-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
}

.car-product-slider .swiper-slide {
    height: auto;
    background: #101012;
}

.car-product-image {
    display: block;
    width: 100%;
    aspect-ratio: 630 / 350;
    object-fit: cover;
}

/* Нижний градиент поверх фотографий */

.car-product-slider::after {
    position: absolute;
    z-index: 5;
    right: 0;
    bottom: 0;
    left: 0;

    height: 42%;

    content: "";
    pointer-events: none;

    background: linear-gradient(
        180deg,
        rgba(23, 23, 25, 0) 0%,
        rgba(23, 23, 25, 0.55) 38%,
        rgba(23, 23, 25, 0.94) 78%,
        #171719 100%
    );
}

/* Название и точки поверх градиента */

.car-slider-overlay {
    position: absolute;
    z-index: 10;
    right: 49px;
    bottom: 18px;
    left: 49px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    pointer-events: none;
}

.car-product-title {
    margin: 0;

    color: #fff;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.25;

    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.65);
}

.car-product-pagination {
    position: static !important;

    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;

    width: auto !important;
    flex: 0 0 auto;

    pointer-events: auto;
}

.car-product-pagination .swiper-pagination-bullet {
    width: 13px;
    height: 13px;
    margin: 0 !important;

    opacity: 1;
    background: #878787;
}

.car-product-pagination .swiper-pagination-bullet-active {
    background: #fff;
}

/* Так как заголовок теперь на фото */

.car-product-body {
    padding: 18px 49px 44px;
}
@media (max-width: 575.98px) {
    .car-product-image {
        aspect-ratio: 4 / 3;
    }

    .car-product-slider::after {
        height: 48%;
    }

    .car-slider-overlay {
        right: 20px;
        bottom: 16px;
        left: 20px;
        gap: 12px;
    }

    .car-product-title {
        font-size: 18px;
    }

    .car-product-pagination {
        gap: 7px;
    }

    .car-product-pagination .swiper-pagination-bullet {
        width: 9px;
        height: 9px;
    }

    .car-product-body {
        padding: 18px 20px 28px;
    }
}

img.language-flag {
	height:18px;
	width:18px;
	margin-right:2px;
}
.callback-section {
	padding: 40px 0;
}

.callback-box {
	padding: 42px 52px 56px;
	background: #18181a;
	border-radius: 14px;
}

.callback-title {
	margin: 0 0 34px;
	color: #a99478;
	font-size: 25px;
	font-weight: 300;
	font-style: italic;
	line-height: 1.3;
}

.callback-control {
	height: 70px;
	padding: 0 30px;
	color: #f4f4f4;
	font-size: 20px;
	font-weight: 300;
	background-color: #121214;
	border: 1px solid #242427;
	border-radius: 11px;
	box-shadow: none;
}

.callback-control::placeholder {
	color: #d4d4d4;
	opacity: 1;
}

.callback-control:focus {
	color: #ffffff;
	background-color: #121214;
	border-color: #9d896f;
	box-shadow: 0 0 0 0.15rem rgba(157, 137, 111, 0.15);
}

.form-select.callback-control {
	padding-right: 58px;
	color: #d4d4d4;
	background-color: #121214;
	background-size: 18px 14px;
}

.callback-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 70px;
	color: #a99478;
	font-size: 21px;
	font-weight: 400;
	background: transparent;
	border: 1px solid #b7a58e;
	border-radius: 11px;
	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		border-color 0.2s ease;
}

.callback-submit:hover,
.callback-submit:focus {
	color: #18181a;
	background-color: #b7a58e;
	border-color: #b7a58e;
}

@media (max-width: 767.98px) {
	.callback-section {
		padding: 24px 0;
	}

	.callback-box {
		padding: 30px 20px;
	}

	.callback-title {
		margin-bottom: 26px;
		font-size: 22px;
	}

	.callback-control,
	.callback-submit {
		height: 62px;
		font-size: 18px;
	}

	.callback-control {
		padding-left: 22px;
		padding-right: 22px;
	}
}
.contact-modal {
    position: relative;

    color: var(--text-main);
    background: var(--card-bg);

    border: 1px solid rgba(255,255,255,.06);
    border-radius: 18px;
}

.contact-modal .modal-body {
    padding: 42px;
}

.contact-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 5;

    opacity: .7;
}

.contact-modal-close:hover {
    opacity: 1;
}

.contact-modal-title {
    margin-bottom: 12px;

    font-size: 34px;
    font-weight: 400;
}

.contact-modal-text {
    margin-bottom: 30px;

    color: var(--text-muted);
    line-height: 1.7;
}

.contact-modal-actions {
    display: flex;
    gap: 15px;

    margin-bottom: 28px;
}

.contact-call-btn,
.contact-whatsapp-btn {
    flex: 1;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;

    min-height: 52px;

    border-radius: 10px;

    font-weight: 500;
}

.contact-call-btn {
    color: var(--accent);

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

.contact-call-btn:hover {
    color: #111;

    background: var(--accent);
}

.contact-whatsapp-btn {
    color: #fff;

    background: #25d366;
}

.contact-whatsapp-btn:hover {
    color: #fff;

    background: #20b358;
}

.contact-divider {
    margin: 0 0 30px;

    border-color: rgba(255,255,255,.08);
}

.contact-modal .form-label {
    margin-bottom: 8px;

    color: var(--text-main);

    font-size: 15px;
}

.contact-modal .btn-outline-gold {
    min-height: 54px;

    font-size: 18px;
}

.contact-modal .form-control,
.contact-modal .form-select {
    border-color: #202228;
}
@media (max-width: 576px) {

    .contact-modal .modal-body {
        padding: 28px 22px;
    }

    .contact-modal-title {
        font-size: 28px;
    }

    .contact-modal-actions {
        flex-direction: column;
    }

}
article, main .btn, .review-card {
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

article:hover, main .btn:hover, .review-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
}
:root {
    --page-bg: #08090b;
    --card-bg: #151619;
    --card-bg-2: #111216;
    --text-main: #f3f1ed;
    --text-muted: #a5a19a;
    --accent: #9f8a67;
    --accent-dark: #6f6049;
    --border: rgba(159, 138, 103, .55);
}


/* Общие поля формы */

.form-control,
.form-select {
    min-height: 49px;
    padding: 11px 15px;
    color: #e5e1db;
    border: 1px solid #202228;
    border-radius: 9px;
    background-color: #101115;
    box-shadow: none;
}

.form-control::placeholder {
    color: #817e79;
    opacity: 1;
}

.form-control:focus,
.form-select:focus {
    color: #fff;
    border-color: var(--accent-dark);
    background-color: #101115;
    box-shadow: 0 0 0 .2rem rgba(159, 138, 103, .12);
}

textarea.form-control {
    min-height: 110px;
    resize: vertical;
}

.form-label {
    margin-bottom: 7px;
    color: var(--text-main);
    font-size: 14px;
    font-weight: 600;
}


/* Общая карточка формы */

.route-request-card {
    padding: 28px;

    border-radius: 17px;
    background: var(--card-bg);
    color: var(--text-main);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
}


/* Вкладки выбора маршрута */

.route-tabs {
    margin-top: 24px;
}

.route-nav-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 0;
    border-bottom: 0;
}

.route-nav-tabs .nav-item {
    margin: 0;
}

.route-nav-tabs .nav-link {
    min-height: 46px;
    padding: 12px 20px;
    border: 1px solid var(--border);
    border-bottom-color: var(--border);
    border-radius: 10px 10px 0 0;
    background: var(--card-bg-2);
    color: var(--text-muted);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    box-shadow: none;
    transition:
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease;
}

.route-nav-tabs .nav-link:hover,
.route-nav-tabs .nav-link:focus {
    color: var(--text-main);
    border-color: var(--accent);
    background: var(--card-bg);
}

.route-nav-tabs .nav-link.active {
    color: #111;
    border-color: var(--accent);
    background: var(--accent);
}


/* Содержимое вкладок */

.route-tab-content {
    position: relative;
    padding: 24px;
    border: 1px solid var(--border);
    border-radius: 0 12px 12px 12px;
    background: var(--card-bg);
    color: var(--text-main);
}

.route-tab-content .tab-pane {
    color: var(--text-main);
}


/* Подсказка над картой */

.route-map-help {
    margin: 0 0 14px;
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.5;
}


/* Контейнер карты */

#requestMap {
    width: 100%;
    height: 430px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--card-bg-2);
    overflow: hidden;
}


/* Информация о выбранных точках */

.route-point-status {
    height: 100%;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--card-bg-2);
    color: var(--text-main);
}

.route-point-status strong {
    display: block;
    color: var(--text-main);
    font-size: 14px;
    font-weight: 700;
}

.route-point-status-text {
    margin-top: 5px;
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}


/* Кнопка сброса точек */

#resetMapPoints {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid var(--accent);
    border-radius: 9px;
    background: transparent;
    color: var(--accent);
    font-size: 14px;
    font-weight: 600;
    box-shadow: none;
    transition:
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

#resetMapPoints:hover,
#resetMapPoints:focus {
    border-color: var(--accent);
    background: var(--accent);
    color: #111;
    transform: translateY(-1px);
}


/* Главная кнопка отправки */

#routeRequestForm > .btn-primary,
.route-request-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 49px;
    padding: 12px 24px;
    border: 1px solid var(--accent);
    border-radius: 9px;
    background: var(--accent);
    color: #111;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: none;
    transition:
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

#routeRequestForm > .btn-primary:hover,
#routeRequestForm > .btn-primary:focus,
.route-request-submit:hover,
.route-request-submit:focus {
    border-color: var(--accent-dark);
    background: var(--accent-dark);
    color: #fff;
    transform: translateY(-1px);
}


/* Пользовательские маркеры Leaflet */

.route-point-icon {
    border: 0;
    background: transparent;
}

.route-point {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 0;
    color: #fff;
    font-size: 0;
    font-weight: 800;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .4);
    transform: rotate(-45deg);
}

.route-point::after {
    font-size: 15px;
    line-height: 1;
    transform: rotate(45deg);
}

.route-point-a {
    background: var(--accent);
}

.route-point-a::after {
    content: "А";
    color: #111;
}

.route-point-b {
    background: var(--accent-dark);
}

.route-point-b::after {
    content: "Б";
    color: #fff;
}


/* Элементы управления Leaflet */

.leaflet-container {
    font-family: inherit;
}

.leaflet-bar {
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .3) !important;
    overflow: hidden;
}

.leaflet-control-zoom a {
    color: var(--text-main) !important;
    border-bottom-color: var(--border) !important;
    background: var(--card-bg) !important;
}

.leaflet-control-zoom a:hover {
    color: var(--accent) !important;
    background: var(--card-bg-2) !important;
}

.leaflet-control-attribution {
    color: var(--text-muted) !important;
    background: rgba(21, 22, 25, .9) !important;
}

.leaflet-control-attribution a {
    color: var(--accent) !important;
}


/* Bootstrap validation */

.was-validated .form-control:invalid,
.form-control.is-invalid {
    border-color: #b75b5b;
    background-image: none;
}

.was-validated .form-control:valid,
.form-control.is-valid {
    border-color: var(--accent-dark);
    background-image: none;
}

.invalid-feedback {
    color: #d98282;
}


/* Мобильная версия */

@media (max-width: 767.98px) {
    .route-request-card {
        padding: 18px;
        border-radius: 12px;
    }

    .route-tabs {
        margin-top: 20px;
    }

    .route-nav-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .route-nav-tabs .nav-item {
        width: 100%;
    }

    .route-nav-tabs .nav-link {
        width: 100%;
        height: 100%;
        min-height: 44px;
        padding: 10px 8px;
        border-radius: 9px 9px 0 0;
        font-size: 13px;
    }

    .route-tab-content {
        padding: 16px;
        border-radius: 0 0 12px 12px;
    }

    #requestMap {
        height: 340px;
        border-radius: 10px;
    }

    #resetMapPoints,
    #routeRequestForm > .btn-primary,
    .route-request-submit {
        width: 100%;
    }
}