/* ==========================================================================
   Способ получения (Самовывоз / Доставка) — cart.php
   ========================================================================== */
.pdz-block{
	--pdz-green:#1ca91d;
	--pdz-green-dark:#008d01;
	--pdz-green-light:#ecffec;
	--pdz-green-border:#3ebf3f;
	--pdz-radius:7px;
	--pdz-radius-sm:5px;
	--pdz-shadow:0 5px 14px rgb(0 0 0 / 15%);
	--pdz-border:#e1e1e1;
	--pdz-muted:#777;
	--pdz-warning-bg:#fcf8e3;
	--pdz-warning-text:#8a6d3b;
	--pdz-error-bg:#fdecea;
	--pdz-error-text:#c0392b;
	position:relative;
}

/* ---------- Вкладки ---------- */
.pdz-tabs{
	display:flex;
	gap:10px;
	margin-bottom:16px;
}
.pdz-tab{
	flex:1 1 0;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:13px 12px;
	background:#f7f8f9;
	border:2px solid #e9ebee;
	border-radius:var(--pdz-radius-sm);
	font-size:15px;
	font-weight:600;
	color:#333;
	cursor:pointer;
	transition:.2s border-color,.2s background,.2s color;
	-webkit-appearance:none;
	appearance:none;
}
.pdz-tab svg{
	width:19px;
	height:19px;
	flex:0 0 auto;
	fill:currentColor;
}
.pdz-tab:hover{
	border-color:#cfd4da;
}
.pdz-tab.pdz-tab--active{
	background:var(--pdz-green-light);
	border-color:var(--pdz-green-border);
	color:var(--pdz-green-dark);
}

/* ---------- Панели ---------- */
.pdz-panel{
	display:none;
}
.pdz-panel.pdz-panel--active{
	display:block;
}

/* ---------- Пустое состояние (кнопка выбора) ---------- */
.pdz-empty{
	text-align:center;
	padding:26px 16px;
	background:#f7f8f9;
	border-radius:var(--pdz-radius);
	border:1px dashed #d8dce1;
}
.pdz-choose-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	width:100%;
	max-width:420px;
	padding:15px 22px;
	background:var(--pdz-green);
	color:#fff;
	font-size:16px;
	font-weight:600;
	border:none;
	border-radius:var(--pdz-radius-sm);
	cursor:pointer;
	transition:.2s background,.2s box-shadow,.2s transform;
	box-shadow:0 4px 10px rgb(28 169 29 / 25%);
}
.pdz-choose-btn:hover{
	background:var(--pdz-green-dark);
	transform:translateY(-1px);
}
.pdz-choose-btn.pdz-choose-btn--error{
	box-shadow:0 0 0 2px var(--pdz-error-text);
}
.pdz-hint{
	margin:12px 0 0;
	font-size:13px;
	color:var(--pdz-muted);
}

/* ---------- Карточка выбранного магазина / доставки ---------- */
.pdz-card{
	display:flex;
	align-items:flex-start;
	gap:14px;
	padding:16px;
	background:#fff;
	border:1px solid var(--pdz-border);
	border-radius:var(--pdz-radius);
	box-shadow:0 2px 8px rgb(0 0 0 / 6%);
}
.pdz-card__icon{
	flex:0 0 auto;
	width:44px;
	height:44px;
	border-radius:50%;
	background:var(--pdz-green-light);
	display:flex;
	align-items:center;
	justify-content:center;
}
.pdz-card__icon svg{
	width:22px;
	height:22px;
	fill:var(--pdz-green-dark);
}
.pdz-card__body{
	flex:1 1 auto;
	min-width:0;
}
.pdz-card__label{
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.03em;
	color:var(--pdz-muted);
	margin-bottom:4px;
}
.pdz-card__title{
	font-size:16px;
	font-weight:700;
	color:#1a1a1a;
	margin-bottom:3px;
	word-break:break-word;
}
.pdz-card__line{
	font-size:14px;
	color:#444;
	margin-bottom:2px;
	word-break:break-word;
}
.pdz-card__meta{
	display:flex;
	flex-wrap:wrap;
	gap:6px 16px;
	margin-top:8px;
	font-size:13px;
	color:var(--pdz-muted);
}
.pdz-card__meta span{
	display:inline-flex;
	align-items:center;
	gap:5px;
}
.pdz-card__row{
	display:flex;
	justify-content:space-between;
	gap:10px;
	font-size:14px;
	padding: 3px 0;
	border-bottom:1px dashed #ececec;
}
.pdz-card__row:last-of-type{
	border-bottom:none;
}
.pdz-card__row b{
	color:#1a1a1a;
}
.pdz-change-btn{
	flex:0 0 auto;
	align-self:center;
	padding:9px 16px;
	background:#fff;
	border:1px solid var(--pdz-green-border);
	color:var(--pdz-green-dark);
	font-size:13px;
	font-weight:600;
	border-radius:var(--pdz-radius-sm);
	cursor:pointer;
	transition:.2s background,.2s color;
	white-space:nowrap;
}
.pdz-change-btn:hover{
	background:var(--pdz-green);
	color:#fff;
}

@media (max-width:520px){
	.pdz-card{
		flex-wrap:wrap;
	}
	.pdz-change-btn{
		width:100%;
	}
}

/* ---------- Overlay + Slide ---------- */
.pdz-overlay{
	position:fixed;
	inset:0;
	background:rgb(20 24 29 / 45%);
	opacity:0;
	visibility:hidden;
	transition:opacity .25s ease;
	z-index:10000;
}
.pdz-overlay.pdz-overlay--visible{
	opacity:1;
	visibility:visible;
}

.pdz-slide{
	position:fixed;
	top:0;
	right:0;
	height:100%;
	height:100dvh;
	width:50%;
	min-width:420px;
	background:#fff;
	/* box-shadow:-8px 0 30px rgb(0 0 0 / 20%); */
	transform:translateX(100%);
	transition:transform .32s cubic-bezier(.22,.78,.34,1);
	z-index:10001;
	display:flex;
	flex-direction:column;
}
.pdz-slide.pdz-slide--open{
	transform:translateX(0);
}
.pdz-slide__header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding: 9px 18px;
	border-bottom:1px solid var(--pdz-border);
	flex:0 0 auto;
}
.pdz-slide__title{
	font-size:18px;
	font-weight:700;
	color:#1a1a1a;
}
.pdz-slide__close{
	width:36px;
	height:36px;
	border-radius:50%;
	border:none;
	background:#f2f3f5;
	color:#555;
	font-size:20px;
	line-height:1;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:.2s background;
}
.pdz-slide__close:hover{
	background:#e5e7ea;
}
.pdz-slide__body{
	flex:1 1 auto;
	overflow:hidden;
	padding: 12px 17px;
	display:flex;
	flex-direction:column;
	min-height:0;
}
/* Содержимое слайда заполняет всю доступную высоту без скролла самого слайда:
   единственный "резиновый" элемент — карта, она сжимается/растягивается под
   оставшееся место, а не выталкивает низ слайда за экран. */
#pdzPickupSlideContent{
	flex:1 1 auto;
	min-height:0;
	display:flex;
}
#pdzDeliverySlideContent{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
#pdzVehicleStep{
	flex:0 0 auto;
}
#pdzMapStep{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
.pdz-back-to-vehicle,
#pdzAddressSection,
.pdz-map-hint,
.pdz-loading,
.pdz-notice,
.pdz-error,
.pdz-result{
	flex:0 0 auto;
}
.pdz-slide__footer{
	flex:0 0 auto;
	padding:14px 22px;
	border-top:1px solid var(--pdz-border);
	display:flex;
	gap:10px;
}
.pdz-confirm-btn{
	flex:1 1 auto;
	padding:14px;
	background:var(--pdz-green);
	color:#fff;
	font-size:16px;
	font-weight:600;
	border:none;
	border-radius:var(--pdz-radius-sm);
	cursor:pointer;
	transition:.2s background,.2s opacity;
}
.pdz-confirm-btn:hover{
	background:var(--pdz-green-dark);
}
.pdz-confirm-btn:disabled{
	opacity:.5;
	cursor:not-allowed;
}

body.pdz-noscroll{
	overflow:hidden;
}

/* ---------- Карта внутри slide (заполняет всё оставшееся место, БЕЗ скролла слайда) ----------
   Карта — единственный "резиновый" элемент в колонке: она flex:1 и сама
   сжимается/растягивается под то место, что осталось после остальных блоков
   (адрес, подсказка, результат и т.д.), поэтому весь слайд целиком помещается
   на экран без вертикального скролла. */
.pdz-map{
	width:100%;
	flex:1 1 auto;
	min-height:0;
	border-radius:var(--pdz-radius-sm);
	overflow:hidden;
	box-shadow:0 0 0 1px rgb(0 0 0 / 8%);
	margin-top: 0px;
}
#pdzPickupMap.pdz-map{
	margin-top:0;
	min-height:260px;
}
#pdzDeliveryMap.pdz-map{
	min-height:200px;
}

@media (max-width:767px){
	#pdzPickupMap.pdz-map{
		min-height:200px;
	}
	#pdzDeliveryMap.pdz-map{
		min-height:160px;
	}
}

/* ---------- Подсказка под картой доставки ---------- */
.pdz-map-hint{
	display:flex;
	align-items:center;
	gap:10px;
	margin-top:10px;
	padding:12px 14px;
	background:#f2f5f9;
	border-radius:var(--pdz-radius-sm);
	color:#3d5165;
	font-size:13px;
	line-height:1.4;
}
.pdz-map-hint svg{
	width:20px;
	height:20px;
	flex:0 0 auto;
	fill:currentColor;
}

/* ---------- Balloon магазина ---------- */
.pdz-balloon{
	width:260px;
	max-width:80vw;
	font-family:inherit;
}
.pdz-balloon__img{
	width:100%;
	height:130px;
	object-fit:cover;
	border-radius:var(--pdz-radius-sm) var(--pdz-radius-sm) 0 0;
	display:block;
	background:#eee;
}
.pdz-balloon__body{
	padding:10px 2px 2px;
}
.pdz-balloon__badge{
	display:inline-block;
	font-size:11px;
	font-weight:700;
	color:var(--pdz-green-dark);
	background:var(--pdz-green-light);
	border-radius:20px;
	padding:2px 9px;
	margin-bottom:6px;
}
.pdz-balloon__name{
	font-size:15px;
	font-weight:700;
	color:#1a1a1a;
	margin-bottom:4px;
}
.pdz-balloon__row{
	font-size:12.5px;
	color:#444;
	margin-bottom:4px;
	line-height:1.4;
	display:flex;
	gap:6px;
}
.pdz-balloon__row svg{
	width:14px;
	height:14px;
	flex:0 0 auto;
	margin-top:2px;
	fill:var(--pdz-muted);
}
.pdz-balloon button.pdz-balloon__btn{
	width:100%;
	margin-top:8px;
	padding:10px;
	background:var(--pdz-green);
	color:#fff;
	border:none;
	border-radius:var(--pdz-radius-sm);
	font-size:13px;
	font-weight:600;
	cursor:pointer;
	transition:.2s background;
}
.pdz-balloon button.pdz-balloon__btn:hover{
	background:var(--pdz-green-dark);
}
.pdz-balloon button.pdz-balloon__btn:disabled{
	background:#9fd39f;
	cursor:default;
}

/* ---------- Типы машин ----------
   Полностью самостоятельный компонент: не использует и не зависит от старых
   сайтовых классов .dost_types/.one_dost/.myCheckbox — там слишком много
   унаследованных правил (абсолютные оверлеи, justify-content:space-between
   и т.п.), которые постоянно конфликтовали и ломали вид карточек. */
.pdz-vehicle-section{
	margin-bottom: 12px;
}
.pdz-section-label{
	font-size:14px;
	font-weight:700;
	color:#1a1a1a;
	margin-bottom:10px;
}
.pdz-vehicle-grid{
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:10px;
}
.pdz-vehicle-card{
	position:relative;
	display:flex;
	flex-direction:column;
	gap:6px;
	padding:12px;
	background:#fff;
	border:2px solid #e6e8eb;
	border-radius:var(--pdz-radius-sm);
	cursor:pointer;
	transition:.15s border-color, .15s background, .15s box-shadow;
}
.pdz-vehicle-card:hover{
	border-color:#c7ccd2;
}
.pdz-vehicle-radio{
	position:absolute;
	width:1px;
	height:1px;
	margin:-1px;
	padding:0;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0;
}
.pdz-vehicle-card--selected{
	border-color:var(--pdz-green-border);
	background:var(--pdz-green-light);
	box-shadow:0 4px 10px rgb(28 169 29 / 15%);
}
.pdz-vehicle-card__head{
	display:flex;
	align-items:center;
	gap:8px;
}
.pdz-vehicle-card__icon{
	width: 30px;
	height:auto;
	flex:0 0 auto;
}
.pdz-vehicle-card__name{
	font-size:13.5px;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.25;
}
.pdz-vehicle-card__tariff{
	font-size:11.5px;
	color:var(--pdz-muted);
	line-height:1.35;
}
.pdz-vehicle-card__meta{
	display:flex;
	flex-wrap:wrap;
	gap:4px 6px;
}
.pdz-vehicle-card__badge{
	font-size:10.5px;
	color:#556;
	background:#f0f2f5;
	border-radius:20px;
	padding:2px 8px;
	white-space:nowrap;
}
.pdz-vehicle-card--selected .pdz-vehicle-card__badge{
	background:#fff;
}

@media (max-width:767px){
	.pdz-vehicle-grid{
		grid-template-columns:repeat(2, 1fr);
	}
}

@media (max-width:420px){
	.pdz-vehicle-grid{
		grid-template-columns:1fr;
	}
}

/* ---------- Мобильный wizard: сначала машина, потом карта ---------- */
.pdz-back-to-vehicle{
	display:none;
	align-items:center;
	gap:8px;
	margin-bottom:14px;
	padding:9px 14px;
	background:#f2f3f5;
	border:none;
	border-radius:var(--pdz-radius-sm);
	color:#333;
	font-size:13px;
	font-weight:600;
	cursor:pointer;
}
.pdz-back-to-vehicle svg{
	width:16px;
	height:16px;
	fill:currentColor;
}
.pdz-back-to-vehicle:hover{
	background:#e5e7ea;
}

@media (max-width:767px){
	#pdzDeliverySlideContent[data-mobile-step="vehicle"] #pdzMapStep{
		display:none;
	}
	#pdzDeliverySlideContent[data-mobile-step="map"] #pdzVehicleStep{
		display:none;
	}
	#pdzDeliverySlideContent[data-mobile-step="map"] .pdz-back-to-vehicle{
		display:inline-flex;
	}
}

/* ---------- Поле адреса ---------- */
.pdz-address-section{
	margin-bottom:14px;
}
.pdz-address-section label{
	display:block;
	font-size:14px;
	font-weight:700;
	color:#1a1a1a;
	margin-bottom:8px;
}
.pdz-address-input-wrap{
	position:relative;
}
.pdz-address-input{
	width:100%;
	box-sizing:border-box;
	height:48px;
	padding:0 40px 0 14px;
	font-size:15px;
	border:2px solid #e3e5e8;
	border-radius:var(--pdz-radius-sm);
	transition:.2s border-color;
}
.pdz-address-input:focus{
	border-color:var(--pdz-green-border);
	outline:none;
}
.pdz-address-input.pdz-input--error{
	border-color:var(--pdz-error-text);
}
.pdz-address-clear{
	position:absolute;
	top:50%;
	right:8px;
	transform:translateY(-50%);
	width:28px;
	height:28px;
	border:none;
	border-radius:50%;
	background:#eceff2;
	color:#666;
	font-size:18px;
	line-height:1;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:.2s background;
}
.pdz-address-clear:hover{
	background:#dde1e6;
}
.pdz-suggest{
	position:relative;
	z-index:5;
}

/* ---------- Состояния: загрузка / ошибка / предупреждение / результат ---------- */
.pdz-loading{
	display:flex;
	align-items:center;
	gap:10px;
	margin-top:14px;
	padding:12px 14px;
	background:#f2f5f9;
	border-radius:var(--pdz-radius-sm);
	font-size:14px;
	color:#333;
}
.pdz-spinner{
	width:18px;
	height:18px;
	border-radius:50%;
	border:2.5px solid #c9d3e0;
	border-top-color:var(--pdz-green);
	animation:pdz-spin .7s linear infinite;
	flex:0 0 auto;
}
@keyframes pdz-spin{
	to{transform:rotate(360deg);}
}
.pdz-error{
	margin-top:14px;
	padding:13px 15px;
	background:var(--pdz-error-bg);
	color:var(--pdz-error-text);
	border-radius:var(--pdz-radius-sm);
	font-size:14px;
	line-height:1.4;
}
.pdz-notice{
	margin-top:14px;
	padding:13px 15px;
	background:var(--pdz-warning-bg);
	color:var(--pdz-warning-text);
	border-radius:var(--pdz-radius-sm);
	font-size:13px;
	line-height:1.4;
}
.pdz-result{
	/* слайд больше не скроллится (карта — резиновая и сжимается под неё),
	   поэтому результат просто всегда стоит внизу колонки, без sticky */
	margin-top: 10px;
	padding: 10px 15px;
	background:#fff;
	border:1px solid var(--pdz-border);
	border-radius:var(--pdz-radius);
	box-shadow:0 -4px 10px rgb(0 0 0 / 6%);
}
.pdz-result__title{
	font-size:14px;
	width: 100%;
	font-weight:700;
	margin-bottom: 1px;
	color:#1a1a1a;
}

/* ---------- Адаптив: планшет / мобильный ---------- */
@media (max-width:991px){
	.pdz-slide{
		width:70%;
		min-width:360px;
	}
}

@media (max-width:767px){
	.pdz-tabs{
		gap:8px;
	}
	.pdz-tab{
		padding:12px 8px;
		font-size:13.5px;
	}
	.pdz-tab svg{
		width:17px;
		height:17px;
	}
	.pdz-slide{
		width:100%;
		max-width:none;
		min-width:0;
	}
	.pdz-slide__header{
		padding: 10px 16px;
	}
	.pdz-slide__body{
		padding:16px;
	}
	.pdz-slide__footer{
		padding:12px 16px;
		padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));
	}
	.pdz-choose-btn{
		font-size:15px;
		padding:14px 16px;
	}
	.pdz-balloon{
		width:220px;
	}
	.pdz-balloon__img{
		height:100px;
	}
}

@media (max-width:420px){
	.pdz-tab span.pdz-tab__text{
		font-size:12.5px;
	}
}

/* Яндекс.Карты: не даём контролам карты залезать под наши кнопки на мобильных */
@media (max-width:767px){
	.pdz-map .ymaps-2-1-79-map-copyrights-promo,
	.pdz-map [class*="copyrights-promo"]{
		display:none !important;
	}
}
