/* Partner Map: layout + Leaflet container */

.pdd-partner-map {
	display: grid;
	grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}

@media (max-width: 980px) {
	.pdd-partner-map {
		grid-template-columns: 1fr;
	}
}

.pdd-partner-map__form {
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	background: var(--c-surface);
	box-shadow: var(--shadow-sm);
	padding: 16px;
}

.pdd-partner-map__title {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 800;
	color: var(--c-heading);
}

.pdd-partner-map__label {
	display: block;
	font-weight: 700;
	font-size: 12px;
	color: var(--c-slate-700);
	margin: 0 0 6px;
}

.pdd-partner-map__query {
	position: relative;
}

.pdd-partner-map__geo {
	position: absolute;
	top: 50%;
	right: 6px;
	transform: translateY(-50%);
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-md);
	border: 1px solid color-mix(in srgb, var(--c-brand-600) 18%, var(--c-border));
	background: color-mix(in srgb, var(--c-brand-600) 8%, var(--c-surface));
	color: var(--c-brand-600);
	transition: background var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.pdd-partner-map__geo:hover {
	background: color-mix(in srgb, var(--c-brand-600) 12%, var(--c-surface));
}

.pdd-partner-map__geo:focus-visible {
	outline: none;
	border-color: var(--c-brand-600);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-brand-600) 18%, transparent);
}

.pdd-partner-map__input,
.pdd-partner-map__select {
	width: 100%;
	padding: 10px 12px;
	border-radius: var(--radius-md);
	border: 1px solid var(--c-border-strong);
	background: var(--c-surface);
	transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.pdd-partner-map__selectWrap {
	position: relative;
}

.pdd-partner-map__select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding-right: 44px;
}

.pdd-partner-map__selectWrap::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	pointer-events: none;
	background-color: var(--c-slate-700);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.7 9.3a1 1 0 0 1 1.4 0L12 13.2l3.9-3.9a1 1 0 1 1 1.4 1.4l-4.6 4.6a1 1 0 0 1-1.4 0L6.7 10.7a1 1 0 0 1 0-1.4Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.7 9.3a1 1 0 0 1 1.4 0L12 13.2l3.9-3.9a1 1 0 1 1 1.4 1.4l-4.6 4.6a1 1 0 0 1-1.4 0L6.7 10.7a1 1 0 0 1 0-1.4Z'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 18px 18px;
	mask-size: 18px 18px;
}

.pdd-partner-map__query .pdd-partner-map__input {
	padding-right: 54px;
}

.pdd-partner-map__input:focus,
.pdd-partner-map__select:focus {
	outline: none;
	border-color: var(--c-brand-600);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-brand-600) 18%, transparent);
}

.pdd-partner-map__input::placeholder {
	color: color-mix(in srgb, var(--c-muted) 70%, transparent);
}

.pdd-partner-map__fieldset {
	border: 0;
	margin: 14px 0 0;
	padding: 0;
}

.pdd-partner-map__fieldset + .pdd-partner-map__fieldset {
	margin-top: 16px;
}

.pdd-partner-map__fieldset legend {
	font-weight: 800;
	font-size: 12px;
	color: var(--c-slate-700);
	margin: 0 0 8px;
}

.pdd-partner-map__check {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	margin: 0 0 6px;
}

.pdd-partner-map__check input[type="checkbox"] {
	appearance: none !important;
	-webkit-appearance: none !important;
	background-image: none !important;
	width: 18px;
	height: 18px;
	border-radius: 6px;
	border: 1px solid color-mix(in srgb, var(--c-slate-500) 25%, var(--c-border-strong));
	background: var(--c-surface);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-slate-200) 70%, transparent);
	display: inline-grid;
	place-content: center;
	flex: 0 0 auto;
	transition: background var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.pdd-partner-map__check input[type="checkbox"]::after {
	content: '';
	width: 9px;
	height: 5px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg) translateY(-1px);
	opacity: 0;
	transition: opacity var(--transition-base);
}

.pdd-partner-map__check input[type="checkbox"]:checked {
	background: var(--c-brand-800);
	border-color: var(--c-brand-800);
}

.pdd-partner-map__check input[type="checkbox"]:checked::after {
	opacity: 1;
}

.pdd-partner-map__check input[type="checkbox"]:focus-visible {
	outline: none;
	border-color: var(--c-brand-600);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-brand-600) 18%, transparent);
}

.pdd-partner-map__check--toggle {
	margin-top: 12px;
}

.pdd-partner-map__submit {
	width: 100%;
	margin-top: 12px;
}

.pdd-partner-map__notice {
	margin-top: 10px;
	font-size: 13px;
	color: var(--c-muted);
}

.pdd-partner-map__map {
	width: 100%;
	min-height: 520px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
}

.pdd-partner-map__results {
	margin-top: 14px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	background: var(--c-surface);
	box-shadow: var(--shadow-sm);
	padding: 14px;
}

.pdd-partner-map__resultsTitle {
	font-weight: 900;
	font-family: var(--font-heading);
	color: var(--c-heading);
	margin: 0 0 6px;
}

.pdd-partner-map__resultsMeta {
	font-size: 13px;
	color: var(--c-muted);
	margin: 0 0 10px;
}

.pdd-partner-map__resultsList {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.pdd-partner-map__resultsItem {
	margin: 0;
	padding: 0;
}

.pdd-partner-map__resultsCard {
	width: 100%;
	text-align: left;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-md);
	background: color-mix(in srgb, var(--c-surface) 90%, var(--c-slate-50));
	padding: 12px;
	transition: border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
}

.pdd-partner-map__resultsLogoWrap {
	margin: 0 0 10px;
}

.pdd-partner-map__resultsLogo {
	display: block;
	max-width: 120px;
	max-height: 60px;
	width: auto;
	height: auto;
	object-fit: contain;
}

.pdd-partner-map__resultsCard:hover {
	border-color: color-mix(in srgb, var(--c-brand-600) 20%, var(--c-border));
	background: color-mix(in srgb, var(--c-brand-600) 6%, var(--c-surface));
}

.pdd-partner-map__resultsCard:focus-visible {
	outline: none;
	border-color: var(--c-brand-600);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-brand-600) 18%, transparent);
}

.pdd-partner-map__resultsTop {
	display: flex;
	gap: 10px;
	align-items: baseline;
	justify-content: space-between;
}

.pdd-partner-map__resultsName {
	font-weight: 900;
	font-family: var(--font-heading);
	color: var(--c-heading);
	line-height: 1.15;
	font-size: 16px;
}

.pdd-partner-map__resultsDist {
	font-size: 12px;
	color: var(--c-muted);
	font-weight: 800;
	white-space: nowrap;
}

.pdd-partner-map__resultsRow {
	margin-top: 8px;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--c-muted);
	font-size: 13px;
}

.pdd-partner-map__resultsRowIcon {
	color: var(--c-brand-600);
	flex: 0 0 auto;
	margin-top: 2px;
}

.pdd-partner-map__resultsRowText {
	min-width: 0;
}

.pdd-partner-map__resultsActions {
	margin-top: 10px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	align-items: center;
}

.pdd-partner-map__callBtn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding: 9px 12px;
	border-radius: var(--radius-md);
	border: 1px solid color-mix(in srgb, var(--c-brand-600) 25%, var(--c-border));
	background: transparent;
	color: var(--c-brand-800);
	font-weight: 900;
	text-decoration: none;
}

.pdd-partner-map__dirBtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 9px 12px;
	border-radius: var(--radius-md);
	border: 1px solid color-mix(in srgb, var(--c-brand-600) 25%, var(--c-border));
	background: transparent;
	color: var(--c-brand-800);
	font-weight: 900;
	text-decoration: none;
}

.pdd-partner-map__dirBtn:hover {
	background: color-mix(in srgb, var(--c-brand-600) 8%, var(--c-surface));
}

.pdd-partner-map__dirBtn:focus-visible {
	outline: none;
	border-color: var(--c-brand-600);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-brand-600) 18%, transparent);
}

@media (max-width: 520px) {
	.pdd-partner-map__resultsActions {
		grid-template-columns: 1fr;
	}
}

.pdd-partner-map__callLabel {
	color: var(--c-brand-800);
}

.pdd-partner-map__callNum {
	color: var(--c-text);
	font-weight: 900;
}

.pdd-partner-map__callBtn:hover {
	background: color-mix(in srgb, var(--c-brand-600) 8%, var(--c-surface));
}

.pdd-partner-map__callBtn:focus-visible {
	outline: none;
	border-color: var(--c-brand-600);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-brand-600) 18%, transparent);
}

@media (max-width: 980px) {
	.pdd-partner-map__map {
		min-height: 420px;
	}
}

/* Leaflet controls: align with theme surfaces/borders */
.pdd-partner-map .leaflet-bar {
	border: 1px solid var(--c-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}

.pdd-partner-map .leaflet-bar a,
.pdd-partner-map .leaflet-bar a:hover {
	background: var(--c-surface);
	color: var(--c-text);
	border-bottom: 1px solid var(--c-border);
}

.pdd-partner-map .leaflet-bar a:last-child {
	border-bottom: 0;
}

.pdd-partner-map .leaflet-control-attribution {
	background: color-mix(in srgb, var(--c-surface) 82%, transparent);
	color: var(--c-muted);
	border-radius: var(--radius-sm);
}

/* Leaflet popup: match card style */
.pdd-partner-map .leaflet-popup-content-wrapper {
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
}

.pdd-partner-map .leaflet-popup-content {
	margin: 14px 16px;
}

.pdd-partner-map .leaflet-popup-tip {
	box-shadow: var(--shadow-sm);
}

/* Leaflet popup typography aligned with theme */
.pdd-map-popup {
	font-family: var(--font-body);
	color: var(--c-text);
	line-height: 1.48;
}

.pdd-map-popup a {
	color: var(--c-brand-800);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	text-decoration-color: color-mix(in srgb, var(--c-brand-800) 35%, transparent);
}

.pdd-map-popup a:hover {
	text-decoration-color: var(--c-brand-800);
}

.pdd-map-popup__title {
	font-weight: 800;
	margin: 0 0 6px;
}

.pdd-map-popup__logoWrap {
	margin: 0 0 8px;
}

.pdd-map-popup__logo {
	display: block;
	max-width: 140px;
	max-height: 70px;
	width: auto;
	height: auto;
	object-fit: contain;
}

.pdd-map-popup__address {
	color: var(--c-muted);
	margin: 0 0 8px;
}

.pdd-map-popup__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 6px;
}

.pdd-map-popup__row:last-child {
	margin-bottom: 0;
}

.pdd-map-popup__icon {
	color: var(--c-brand-600);
	flex: 0 0 auto;
	margin-top: 2px;
}

.pdd-map-popup__rowText {
	min-width: 0;
}

/* Custom map markers (replace default Leaflet blue pin) */
.pdd-map-marker {
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
}

.pdd-map-marker__pin {
	display: block;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: var(--orderfly-map-marker-gabinet, var(--c-brand-600));
	border: 2px solid #fff;
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22);
}

.pdd-map-marker--type-klinika .pdd-map-marker__pin {
	border-radius: 10px;
	background: var(--orderfly-map-marker-klinika, color-mix(in srgb, var(--c-success) 80%, var(--c-brand-600)));
}

.pdd-map-marker--tier-bronze .pdd-map-marker__pin {
	width: 20px;
	height: 20px;
	background: color-mix(in srgb, var(--c-brand-600) 70%, var(--c-slate-700));
}

.pdd-map-marker--tier-silver .pdd-map-marker__pin {
	width: 24px;
	height: 24px;
	background: color-mix(in srgb, var(--c-brand-600) 78%, var(--c-slate-300));
}

.pdd-map-marker--tier-gold .pdd-map-marker__pin {
	width: 28px;
	height: 28px;
	background: var(--orderfly-map-marker-gold, var(--c-brand-600));
}

/* MarkerCluster: keep clusters in brand palette */
.pdd-partner-map .marker-cluster-small,
.pdd-partner-map .marker-cluster-medium,
.pdd-partner-map .marker-cluster-large {
	background-color: color-mix(in srgb, var(--c-brand-600) 22%, transparent);
}

.pdd-partner-map .marker-cluster-small div,
.pdd-partner-map .marker-cluster-medium div,
.pdd-partner-map .marker-cluster-large div {
	background-color: color-mix(in srgb, var(--c-brand-600) 60%, #ffffff);
	color: var(--c-slate-900);
	font-weight: 900;
	border: 2px solid #fff;
}

.pdd-map-popup__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	border-radius: var(--radius-full);
	border: 1px solid color-mix(in srgb, var(--c-success) 30%, var(--c-border));
	background: color-mix(in srgb, var(--c-success) 10%, #ffffff);
	color: color-mix(in srgb, var(--c-success) 80%, var(--c-brand-800));
	font-weight: 800;
	font-size: 12px;
	margin: 8px 0;
}

.pdd-map-popup__section {
	margin-top: 8px;
}

.pdd-map-popup__label {
	font-weight: 800;
	margin: 0 0 6px;
}

.pdd-map-popup__treatments {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pdd-map-popup__treatments li {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 4px;
}

.pdd-map-popup__check {
	color: var(--c-success);
	font-weight: 900;
}
