#tmLuggageModal.tm-luggage-modal-overlay {
			position: fixed;
			inset: 0;
			z-index: 999999;

			display: flex;
			align-items: center;
			justify-content: center;

			padding: 20px;

			background: rgba(12, 34, 17, 0.76);

			-webkit-backdrop-filter: blur(3px);
			backdrop-filter: blur(3px);

			opacity: 0;
			visibility: hidden;
			pointer-events: none;

			transition:
				opacity 0.28s ease,
				visibility 0.28s ease;
		}

		#tmLuggageModal.tm-luggage-modal-overlay.active {
			opacity: 1;
			visibility: visible;
			pointer-events: auto;
		}

		#tmLuggageModal .tm-luggage-modal {
			position: relative;

			width: 100%;
			max-width: 820px;
			max-height: calc(100vh - 40px);

			overflow-x: hidden;
			overflow-y: auto;

			box-sizing: border-box;

			background: #ffffff;
			border: 1px solid rgba(210, 231, 210, 0.96);
			border-radius: 22px;

			box-shadow:
				0 28px 80px rgba(10, 39, 16, 0.38),
				0 8px 24px rgba(22, 68, 29, 0.15);

			color: #17231a;

			transform: translateY(12px) scale(0.985);

			transition: transform 0.28s ease;
		}

		#tmLuggageModal.active .tm-luggage-modal {
			transform: translateY(0) scale(1);
		}

		/* Close button */

		#tmLuggageModal .tm-luggage-modal-close {
			position: absolute;
			top: 14px;
			right: 14px;
			z-index: 10;

			display: flex;
			align-items: center;
			justify-content: center;

			width: 40px;
			height: 40px;
			padding: 0;

			border: 1px solid #dbe9da;
			border-radius: 50%;

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

			box-shadow:
				0 5px 16px rgba(35, 91, 40, 0.11);

			color: #17361c;
			font-size: 25px;
			font-weight: 400;
			line-height: 1;

			cursor: pointer;

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

		#tmLuggageModal .tm-luggage-modal-close:hover {
			background: #eff8ef;
			border-color: #b8d7b9;

			transform: rotate(4deg);
		}

		#tmLuggageModal .tm-luggage-modal-close:focus-visible {
			outline: 3px solid rgba(75, 155, 80, 0.3);
			outline-offset: 3px;
		}

		/* Main layout */

		#tmLuggageModal .tm-luggage-main {
			display: grid;
			grid-template-columns:
				minmax(250px, 0.9fr)
				minmax(0, 1.35fr);

			min-height: 450px;
		}

		/* Left image section */

		#tmLuggageModal .tm-luggage-visual {
			position: relative;

			display: flex;
			align-items: center;
			justify-content: center;

			min-height: 450px;
			padding: 76px 26px 32px;

			box-sizing: border-box;
			overflow: hidden;

			background:
				radial-gradient(
					circle at 50% 42%,
					rgba(255, 255, 255, 0.99) 0%,
					rgba(242, 250, 241, 0.97) 46%,
					rgba(224, 242, 224, 0.97) 100%
				);
		}

		#tmLuggageModal .tm-luggage-visual::before {
			content: "";

			position: absolute;
			top: -65px;
			left: -70px;

			width: 210px;
			height: 210px;

			border-radius: 50%;

			background: rgba(111, 178, 107, 0.11);
		}

		#tmLuggageModal .tm-luggage-visual::after {
			content: "";

			position: absolute;
			right: -75px;
			bottom: -95px;

			width: 240px;
			height: 240px;

			border-radius: 50%;

			background: rgba(61, 132, 65, 0.09);
		}

		#tmLuggageModal .tm-luggage-visual-badge {
			position: absolute;
			top: 26px;
			left: 26px;
			z-index: 3;

			display: inline-flex;
			align-items: center;
			gap: 8px;

			padding: 8px 12px;

			border: 1px solid rgba(181, 216, 180, 0.9);
			border-radius: 999px;

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

			box-shadow:
				0 6px 18px rgba(43, 103, 44, 0.08);

			color: #347a38;
			font-size: 12px;
			font-weight: 800;
			letter-spacing: 0.04em;
			line-height: 1;
			text-transform: uppercase;
		}

		#tmLuggageModal .tm-luggage-visual-badge svg {
			flex: 0 0 auto;

			width: 16px;
			height: 16px;
		}

		#tmLuggageModal .tm-luggage-car-image {
			position: relative;
			z-index: 2;

			display: block;

			width: 100%;
			max-width: 315px;
			height: auto;
			max-height: 365px;

			object-fit: contain;

			filter:
				drop-shadow(
					0 18px 18px rgba(42, 96, 46, 0.14)
				);
		}

		/* Right content */

		#tmLuggageModal .tm-luggage-content {
			display: flex;
			flex-direction: column;

			padding: 44px 38px 30px;

			box-sizing: border-box;
		}

		#tmLuggageModal .tm-luggage-heading {
			padding-right: 36px;
		}

		#tmLuggageModal .tm-luggage-kicker {
			display: inline-flex;
			align-items: center;
			gap: 7px;

			margin-bottom: 9px;

			color: #4b9b50;
			font-size: 12px;
			font-weight: 800;
			letter-spacing: 0.07em;
			line-height: 1.2;
			text-transform: uppercase;
		}

		#tmLuggageModal .tm-luggage-kicker svg {
			width: 17px;
			height: 17px;
		}

		#tmLuggageModal h3 {
			margin: 0 0 8px;

			color: #17231a;
			font-size: 30px;
			font-weight: 800;
			letter-spacing: -0.025em;
			line-height: 1.16;
		}

		#tmLuggageModal .tm-luggage-subtitle {
			margin: 0;

			color: #5f6e62;
			font-size: 15px;
			line-height: 1.55;
		}

		/* Vehicle cards */

		#tmLuggageModal .tm-luggage-options {
			display: grid;
			gap: 14px;

			margin-top: 24px;
		}

		#tmLuggageModal .tm-luggage-option {
			display: grid;
			grid-template-columns: 48px minmax(0, 1fr);
			gap: 14px;

			padding: 16px;

			border: 1px solid #dcebdd;
			border-radius: 16px;

			background:
				linear-gradient(
					135deg,
					#ffffff 0%,
					#fbfefb 62%,
					#f3faf4 100%
				);

			box-shadow:
				0 7px 20px rgba(43, 91, 47, 0.06);
		}

		/*
		 * Economy Plus сохраняем с мягким тёплым оттенком,
		 * чтобы две карточки не сливались между собой.
		 */

		#tmLuggageModal .tm-luggage-option--plus {
			border-color: #e8dfd0;

			background:
				linear-gradient(
					135deg,
					#ffffff 0%,
					#fffdf9 58%,
					#fbf6ee 100%
				);
		}

		#tmLuggageModal .tm-luggage-option-icon {
			display: flex;
			align-items: center;
			justify-content: center;

			width: 48px;
			height: 48px;

			border-radius: 14px;

			background: #e8f5e7;
			color: #438f48;
		}

		#tmLuggageModal
		.tm-luggage-option--plus
		.tm-luggage-option-icon {
			background: #f6ede1;
			color: #9a6c36;
		}

		#tmLuggageModal .tm-luggage-option-icon svg {
			width: 28px;
			height: 28px;
		}

		#tmLuggageModal .tm-luggage-option-title {
			display: block;

			margin: 1px 0 5px;

			color: #17231a;
			font-size: 15px;
			font-weight: 800;
			letter-spacing: 0.025em;
			line-height: 1.3;
		}

		#tmLuggageModal .tm-luggage-option p {
			margin: 0;

			color: #3d4a40;
			font-size: 14px;
			line-height: 1.5;
		}

		#tmLuggageModal .tm-luggage-option p + p {
			margin-top: 4px;
		}

		#tmLuggageModal .tm-luggage-option em {
			color: #234029;
			font-style: normal;
			font-weight: 750;
		}

		/* Luggage chart */

		#tmLuggageModal .tm-luggage-chart-link {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 7px;

			margin-top: 17px;
			padding: 10px 14px;

			border-radius: 12px;

			background: #edf7ed;

			color: #347a38;
			font-size: 14px;
			font-weight: 700;
			line-height: 1.3;
			text-align: center;
			text-decoration: none;
		}

		#tmLuggageModal .tm-luggage-chart-link:hover {
			background: #e2f1e1;

			color: #286a2e;
			text-decoration: underline;
		}

		#tmLuggageModal .tm-luggage-chart-link svg {
			flex: 0 0 auto;

			width: 16px;
			height: 16px;
		}

		/* Actions */

		#tmLuggageModal .tm-luggage-actions {
			display: grid;
			grid-template-columns:
				minmax(0, 0.92fr)
				minmax(0, 1.18fr);
			gap: 12px;

			margin-top: 18px;
		}

		#tmLuggageModal .tm-luggage-actions button {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			gap: 8px;

			min-height: 52px;
			padding: 13px 16px;

			border-radius: 13px;

			font-size: 14px;
			font-weight: 800;
			letter-spacing: 0.01em;
			line-height: 1.25;

			cursor: pointer;

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

		#tmLuggageModal .tm-luggage-actions button:hover {
			transform: translateY(-1px);
		}

		#tmLuggageModal .tm-luggage-review-btn {
			border: 1px solid #4b9b50;

			background: #ffffff;
			color: #347a38;
		}

		#tmLuggageModal .tm-luggage-review-btn:hover {
			border-color: #347a38;

			background: #edf7ed;
		}

		#tmLuggageModal .tm-luggage-continue-btn {
			border: 1px solid #3f8f45;

			background:
				linear-gradient(
					135deg,
					#5aaa5f 0%,
					#438f48 52%,
					#347a38 100%
				);

			box-shadow:
				0 9px 22px rgba(52, 122, 56, 0.24);

			color: #ffffff;
		}

		#tmLuggageModal .tm-luggage-continue-btn:hover {
			background:
				linear-gradient(
					135deg,
					#509f55 0%,
					#3c8441 52%,
					#2d7032 100%
				);

			box-shadow:
				0 11px 26px rgba(52, 122, 56, 0.3);
		}

		#tmLuggageModal .tm-luggage-review-btn:focus-visible,
		#tmLuggageModal .tm-luggage-continue-btn:focus-visible {
			outline: 3px solid rgba(75, 155, 80, 0.28);
			outline-offset: 3px;
		}

		#tmLuggageModal .tm-luggage-actions svg {
			width: 17px;
			height: 17px;
		}

		#tmLuggageModal .tm-luggage-footer-note {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 6px;

			margin-top: 15px;

			color: #829084;
			font-size: 12px;
			line-height: 1.35;
			text-align: center;
		}

		#tmLuggageModal .tm-luggage-footer-note svg {
			flex: 0 0 auto;

			width: 15px;
			height: 15px;

			color: #4b9b50;
		}

		body.tba-luggage-modal-open {
			overflow: hidden;
		}

		/* Tablet */

		@media (max-width: 760px) {
			#tmLuggageModal.tm-luggage-modal-overlay {
				padding: 12px;
			}

			#tmLuggageModal .tm-luggage-modal {
				max-height: calc(100vh - 24px);
				border-radius: 18px;
			}

			#tmLuggageModal .tm-luggage-main {
				grid-template-columns: 1fr;
			}

			#tmLuggageModal .tm-luggage-visual {
				min-height: 240px;
				padding: 54px 22px 14px;
			}

			#tmLuggageModal .tm-luggage-visual-badge {
				top: 16px;
				left: 18px;
			}

			#tmLuggageModal .tm-luggage-car-image {
				max-width: 230px;
				max-height: 220px;
			}

			#tmLuggageModal .tm-luggage-content {
				padding: 24px 22px;
			}

			#tmLuggageModal h3 {
				font-size: 26px;
			}
		}

		/* Mobile */

		@media (max-width: 520px) {
			#tmLuggageModal.tm-luggage-modal-overlay {
				align-items: flex-end;
				padding: 0;
			}

			#tmLuggageModal .tm-luggage-modal {
				max-height: 94vh;

				border-right: 0;
				border-bottom: 0;
				border-left: 0;
				border-radius: 20px 20px 0 0;
			}

			#tmLuggageModal .tm-luggage-modal-close {
				top: 12px;
				right: 12px;

				width: 38px;
				height: 38px;
			}

			#tmLuggageModal .tm-luggage-visual {
				display: none;
			}

			#tmLuggageModal .tm-luggage-content {
				padding: 24px 16px 18px;
			}

			#tmLuggageModal .tm-luggage-heading {
				padding-right: 38px;
			}

			#tmLuggageModal h3 {
				font-size: 23px;
			}

			#tmLuggageModal .tm-luggage-subtitle {
				font-size: 14px;
			}

			#tmLuggageModal .tm-luggage-options {
				gap: 10px;
				margin-top: 18px;
			}

			#tmLuggageModal .tm-luggage-option {
				grid-template-columns: 42px minmax(0, 1fr);
				gap: 11px;

				padding: 13px;

				border-radius: 14px;
			}

			#tmLuggageModal .tm-luggage-option-icon {
				width: 42px;
				height: 42px;

				border-radius: 12px;
			}

			#tmLuggageModal .tm-luggage-option-icon svg {
				width: 24px;
				height: 24px;
			}

			#tmLuggageModal .tm-luggage-option-title {
				font-size: 14px;
			}

			#tmLuggageModal .tm-luggage-option p {
				font-size: 13px;
				line-height: 1.44;
			}

			#tmLuggageModal .tm-luggage-actions {
				grid-template-columns: 1fr;
				gap: 9px;

				margin-top: 15px;
			}

			#tmLuggageModal .tm-luggage-actions button {
				min-height: 48px;
				padding: 12px 13px;

				font-size: 13px;
			}

			#tmLuggageModal .tm-luggage-review-btn {
				order: 2;
			}

			#tmLuggageModal .tm-luggage-continue-btn {
				order: 1;
			}

			#tmLuggageModal .tm-luggage-footer-note {
				margin-top: 12px;
				font-size: 11px;
			}
		}
