/* Prime Medical Kids Booking — front-end form (premium design pass v0.8.0)
 *
 * Palette: brand #0D7775 · brand-2 #33BDBD · accent #E17D7D · ink #5E646D
 * Gradient linear-gradient(189deg,#33BDBD,#0D7775) — used as the REWARD:
 * selected day, selected slot, success crown. Submit stays coral.
 *
 * Design system: elevation over borders (default cards are border-less
 * with soft diffuse shadows; the teal border appears only on selection),
 * generous rhythm (40px between steps), editorial step numbering in
 * letter-spaced small caps via CSS counters (hidden steps don't count),
 * micro-interactions (hover lift, badge pop) — and the full Elementor
 * armor: every interactive element declares its look with !important
 * across every state, with [hidden] guaranteed to win at the end.
 */

.pmk-booking {
	--pmk-brand: #0d7775;
	--pmk-brand-2: #33bdbd;
	--pmk-accent: #e17d7d;
	--pmk-accent-dark: #d16a6a;
	--pmk-ink: #5e646d;
	--pmk-soft: #7f868f;
	--pmk-head: #0d7775;
	--pmk-line: #e4ebeb;
	--pmk-tint: #e9f6f5;
	--pmk-tint-accent: #fdf1f0;
	--pmk-grad: linear-gradient(189deg, #33bdbd 0%, #0d7775 100%);
	--pmk-shadow: 0 1px 3px rgba(23, 55, 54, .06), 0 8px 24px rgba(23, 55, 54, .07);
	--pmk-shadow-lift: 0 2px 5px rgba(23, 55, 54, .08), 0 14px 34px rgba(23, 55, 54, .11);
	--pmk-ease: cubic-bezier(.33, 1, .48, 1);
	max-width: 720px;
	margin: 0 auto;
	color: var(--pmk-ink);
	font-size: 16px;
	line-height: 1.55;
	font-family: inherit;
}

.pmk-booking * { box-sizing: border-box; }

/* Kill iOS double-tap-to-zoom on the form's interactive elements (rapid
 * taps on the day-strip arrows were zooming the page). touch-action:
 * manipulation removes ONLY the double-tap gesture — pinch zoom keeps
 * working, so accessibility is untouched. */
.pmk-booking,
.pmk-booking button,
.pmk-booking a,
.pmk-booking input,
.pmk-booking select,
.pmk-booking textarea,
.pmk-booking label,
.pmk-booking .pmk-combo-item,
.pmk-booking .pmk-cal-day {
	touch-action: manipulation;
}

@keyframes pmkPop {
	0% { transform: scale(.4); opacity: 0; }
	70% { transform: scale(1.12); }
	100% { transform: scale(1); opacity: 1; }
}

/* --- emergency: a discreet line, not a warning box --- */
.pmk-emergency {
	background: #fdf8f7;
	border: none;
	border-left: 3px solid var(--pmk-accent);
	border-radius: 0 10px 10px 0;
	padding: 10px 16px;
	margin: 0 0 26px;
	font-size: 13.5px;
	color: var(--pmk-ink);
}

/* --- ASAP fast lane --- */
.pmk-booking .pmk-asap-card,
.pmk-booking .pmk-asap-card:hover,
.pmk-booking .pmk-asap-card:focus,
.pmk-booking .pmk-asap-card:active,
.pmk-booking .pmk-asap-card:focus-visible {
	display: flex !important;
	align-items: center;
	gap: 14px;
	width: 100%;
	text-align: left;
	background: #fffdfd !important;
	background-image: none !important;
	border: 1px solid #f4dcdc !important;
	border-radius: 16px !important;
	padding: 18px 20px !important;
	margin: 0 0 34px;
	cursor: pointer;
	font: inherit !important;
	color: var(--pmk-ink) !important;
	box-shadow: var(--pmk-shadow) !important;
	text-decoration: none !important;
	transform: none !important;
	transition: border-color .18s var(--pmk-ease), box-shadow .18s var(--pmk-ease), transform .18s var(--pmk-ease), background .18s;
}
.pmk-booking .pmk-asap-card:hover {
	border-color: var(--pmk-accent) !important;
	box-shadow: var(--pmk-shadow-lift) !important;
	transform: translateY(-1px) !important;
}
.pmk-booking .pmk-asap-card.pmk-selected,
.pmk-booking .pmk-asap-card.pmk-selected:hover,
.pmk-booking .pmk-asap-card.pmk-selected:focus,
.pmk-booking .pmk-asap-card.pmk-selected:active {
	border-color: var(--pmk-accent) !important;
	background: var(--pmk-tint-accent) !important;
	box-shadow: var(--pmk-shadow) !important;
}
.pmk-booking .pmk-asap-card strong,
.pmk-booking .pmk-asap-card:hover strong,
.pmk-booking .pmk-asap-card:focus strong,
.pmk-booking .pmk-asap-card:active strong,
.pmk-booking .pmk-asap-card.pmk-selected strong {
	color: var(--pmk-head) !important;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.01em;
}
.pmk-booking .pmk-asap-card .pmk-asap-copy span,
.pmk-booking .pmk-asap-card:hover .pmk-asap-copy span {
	color: var(--pmk-soft) !important;
	font-size: 13.5px;
}
.pmk-asap-copy { display: flex; flex-direction: column; gap: 3px; }
.pmk-asap-check {
	margin-left: auto;
	width: 24px; height: 24px;
	border: 2px solid #eccfcf;
	border-radius: 50%;
	flex: none;
	background: #fff;
	transition: border-color .18s, background .18s;
}
.pmk-asap-card.pmk-selected .pmk-asap-check {
	border-color: var(--pmk-accent);
	background: var(--pmk-accent);
	position: relative;
	animation: pmkPop .28s var(--pmk-ease);
}
.pmk-asap-card.pmk-selected .pmk-asap-check::after {
	content: "";
	position: absolute;
	left: 7px; top: 4px;
	width: 6px; height: 10px;
	border: solid #fff;
	border-width: 0 2.2px 2.2px 0;
	transform: rotate(45deg);
}

/* --- steps: rhythm + editorial numbering --- */
#pmk-form { counter-reset: pmkstep; }
.pmk-step { border: none; padding: 0; margin: 0 0 40px; }
.pmk-step legend {
	font-weight: 700;
	font-size: 19px;
	letter-spacing: -0.01em;
	margin-bottom: 16px;
	padding: 0;
	color: var(--pmk-head);
	display: block;
}
.pmk-step:not([hidden]) legend::before {
	counter-increment: pmkstep;
	content: counter(pmkstep, decimal-leading-zero);
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .18em;
	color: var(--pmk-brand-2);
	margin-bottom: 4px;
}

/* --- location cards: elevation, air, no text collisions --- */
.pmk-location-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
	gap: 14px;
}
.pmk-booking .pmk-location-card,
.pmk-booking .pmk-location-card:hover,
.pmk-booking .pmk-location-card:focus,
.pmk-booking .pmk-location-card:active,
.pmk-booking .pmk-location-card:focus-visible {
	display: flex !important;
	flex-direction: column;
	gap: 6px;
	text-align: left;
	background: #fff !important;
	background-image: none !important;
	border: 1px solid rgba(228, 235, 235, .8) !important;
	border-radius: 16px !important;
	padding: 20px 20px 16px !important;
	cursor: pointer;
	font: inherit !important;
	color: var(--pmk-ink) !important;
	box-shadow: var(--pmk-shadow) !important;
	text-decoration: none !important;
	transform: none !important;
	position: relative;
	overflow: hidden;
	transition: border-color .18s var(--pmk-ease), box-shadow .18s var(--pmk-ease), transform .18s var(--pmk-ease), background .18s;
}
.pmk-booking .pmk-location-card:hover {
	border-color: var(--pmk-brand-2) !important;
	box-shadow: var(--pmk-shadow-lift) !important;
	transform: translateY(-1px) !important;
}
.pmk-booking .pmk-location-card.pmk-selected,
.pmk-booking .pmk-location-card.pmk-selected:hover,
.pmk-booking .pmk-location-card.pmk-selected:focus,
.pmk-booking .pmk-location-card.pmk-selected:active {
	border-color: var(--pmk-brand) !important;
	background: var(--pmk-tint) !important;
	box-shadow: var(--pmk-shadow) !important;
}
/* Title reserves room for the badge, address wraps with air. */
.pmk-booking .pmk-location-card strong,
.pmk-booking .pmk-location-card:hover strong,
.pmk-booking .pmk-location-card:focus strong,
.pmk-booking .pmk-location-card:active strong,
.pmk-booking .pmk-location-card.pmk-selected strong {
	color: var(--pmk-head) !important;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.01em;
	padding-right: 32px;
	line-height: 1.35;
	display: block;
	white-space: normal !important;
	min-width: 0;
}
.pmk-booking .pmk-location-card .pmk-loc-address,
.pmk-booking .pmk-location-card:hover .pmk-loc-address {
	color: var(--pmk-soft) !important;
	font-size: 13px;
	line-height: 1.5;
	padding-right: 6px;
	/* Themes/Elementor often force nowrap on <button> spans — that is what
	 * pushed long addresses past the card edge. Force normal wrapping. */
	display: block;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	white-space: normal !important;
	overflow-wrap: anywhere;
	word-break: normal;
}
.pmk-location-card.pmk-selected::after {
	content: "";
	position: absolute;
	top: 14px; right: 14px;
	width: 24px; height: 24px;
	border-radius: 50%;
	background: var(--pmk-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' stroke='%23fff' stroke-width='2.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat;
	animation: pmkPop .28s var(--pmk-ease);
}
.pmk-booking a.pmk-loc-map,
.pmk-booking a.pmk-loc-map:visited {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--pmk-brand) !important;
	text-decoration: none !important;
	margin-top: 8px;
	background: transparent !important;
	align-self: flex-start;
	border-bottom: 1px solid rgba(13, 119, 117, .25);
	padding-bottom: 1px;
	transition: border-color .15s;
}
.pmk-booking a.pmk-loc-map:hover,
.pmk-booking a.pmk-loc-map:focus {
	color: var(--pmk-brand) !important;
	text-decoration: none !important;
	border-bottom-color: var(--pmk-brand);
	background: transparent !important;
}
.pmk-location-home { border-style: dashed !important; }

.pmk-home-address { margin-top: 16px; }
.pmk-service-area { font-size: 13px; color: var(--pmk-soft); margin: 8px 0 0; }

/* --- inputs --- */
.pmk-booking label { display: block; font-weight: 600; font-size: 13.5px; margin: 14px 0 6px; color: var(--pmk-head); letter-spacing: .01em; }
.pmk-booking input[type="text"],
.pmk-booking input[type="tel"],
.pmk-booking input[type="email"],
.pmk-booking input[type="date"],
.pmk-booking select,
.pmk-booking textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--pmk-line) !important;
	border-radius: 12px !important;
	font: inherit !important;
	background: #fff !important;
	color: #333a42 !important;
	box-shadow: 0 1px 2px rgba(23, 55, 54, .04) !important;
	transition: border-color .15s, box-shadow .15s;
}
.pmk-booking ::placeholder { color: #adb4bb; opacity: 1; }
.pmk-booking input:focus,
.pmk-booking select:focus,
.pmk-booking textarea:focus {
	outline: none !important;
	border-color: var(--pmk-brand) !important;
	box-shadow: 0 0 0 3px rgba(13, 119, 117, .13) !important;
}
/* Valid fields: border tint + reserved space; the checkmark itself is a
 * separate element on the .pmk-fw wrapper (below) so Chrome AUTOFILL,
 * which paints over input backgrounds, can never hide it. Selects (no
 * wrapper) keep an in-background mark. */
.pmk-booking input.pmk-valid,
.pmk-booking textarea.pmk-valid {
	border-color: var(--pmk-brand-2) !important;
	padding-right: 44px !important;
}
.pmk-booking select.pmk-valid {
	border-color: var(--pmk-brand-2) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0.15' y2='1'%3E%3Cstop offset='0' stop-color='%2333BDBD'/%3E%3Cstop offset='1' stop-color='%230D7775'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='12' cy='12' r='11' fill='url(%23g)'/%3E%3Cpath d='M7.2 12.6l3 3L16.8 9.4' stroke='%23fff' stroke-width='2.3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 34px center !important;
	background-size: 20px 20px !important;
	padding-right: 60px !important;
}

/* Field wrapper: hosts the drawn gradient checkmark. */
.pmk-fw { position: relative; display: block; }
.pmk-fw::after {
	content: "";
	position: absolute;
	right: 13px;
	top: 50%;
	width: 20px; height: 20px;
	margin-top: -10px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0.15' y2='1'%3E%3Cstop offset='0' stop-color='%2333BDBD'/%3E%3Cstop offset='1' stop-color='%230D7775'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='12' cy='12' r='11' fill='url(%23g)'/%3E%3Cpath d='M7.2 12.6l3 3L16.8 9.4' stroke='%23fff' stroke-width='2.3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	filter: drop-shadow(0 1px 2px rgba(13, 119, 117, .25));
	opacity: 0;
	transform: scale(.4);
	transition: opacity .18s var(--pmk-ease), transform .22s var(--pmk-ease);
	pointer-events: none;
}
.pmk-fw:has(> .pmk-valid)::after { opacity: 1; transform: scale(1); }
.pmk-fw-ta::after { top: 15px; margin-top: 0; }
.pmk-dob-wrap.pmk-fw::after { top: 50%; }

/* Autofill detector: Chrome fires animationstart for this, which the JS
 * bounces into the validator (autofill often skips input events). */
@keyframes pmkAutofill { from { opacity: 1; } to { opacity: 1; } }
/* Two separate rules on purpose: an unknown selector in a comma list
 * would invalidate the WHOLE rule in older engines. */
.pmk-booking input:-webkit-autofill { animation-name: pmkAutofill; animation-duration: .01s; }
.pmk-booking input:autofill { animation-name: pmkAutofill; animation-duration: .01s; }

.pmk-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 560px) { .pmk-two-col { grid-template-columns: 1fr; } }

.pmk-service-desc { font-size: 13.5px; color: var(--pmk-soft); margin: 10px 0 0; }
.pmk-doctor-hint { font-size: 13px; margin: 10px 0 0; font-weight: 600; color: var(--pmk-brand); letter-spacing: .01em; }

/* --- day strip --- */
.pmk-daystrip { display: flex; align-items: stretch; gap: 8px; }
.pmk-booking .pmk-day-nav,
.pmk-booking .pmk-day-nav:hover,
.pmk-booking .pmk-day-nav:focus,
.pmk-booking .pmk-day-nav:active {
	border: 1px solid var(--pmk-line) !important;
	background: #fff !important;
	background-image: none !important;
	border-radius: 12px !important;
	width: 40px;
	cursor: pointer;
	font-size: 16px !important;
	color: var(--pmk-brand) !important;
	flex: none;
	box-shadow: 0 1px 2px rgba(23, 55, 54, .05) !important;
	transform: none !important;
	padding: 0 !important;
	transition: border-color .15s, box-shadow .15s;
}
.pmk-booking .pmk-day-nav:hover:not(:disabled) { border-color: var(--pmk-brand-2) !important; box-shadow: var(--pmk-shadow) !important; }
.pmk-booking .pmk-day-nav:disabled { opacity: .3; cursor: default; }
.pmk-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; flex: 1; }

.pmk-booking .pmk-day-cell,
.pmk-booking .pmk-day-cell:hover,
.pmk-booking .pmk-day-cell:focus,
.pmk-booking .pmk-day-cell:active,
.pmk-booking .pmk-day-cell:focus-visible {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	gap: 1px;
	padding: 10px 2px !important;
	border: 1px solid var(--pmk-line) !important;
	border-radius: 14px !important;
	background: #fff !important;
	background-image: none !important;
	cursor: pointer;
	font: inherit !important;
	color: var(--pmk-ink) !important;
	box-shadow: 0 1px 2px rgba(23, 55, 54, .04) !important;
	text-decoration: none !important;
	transform: none !important;
	transition: border-color .18s var(--pmk-ease), box-shadow .18s var(--pmk-ease), transform .18s var(--pmk-ease);
}
.pmk-booking .pmk-day-cell:hover:not(:disabled) {
	border-color: var(--pmk-brand-2) !important;
	box-shadow: var(--pmk-shadow) !important;
	transform: translateY(-1px) !important;
}
/* Selected day: the gradient reward. */
.pmk-booking .pmk-day-cell.pmk-selected,
.pmk-booking .pmk-day-cell.pmk-selected:hover,
.pmk-booking .pmk-day-cell.pmk-selected:focus,
.pmk-booking .pmk-day-cell.pmk-selected:active {
	border-color: var(--pmk-brand) !important;
	background: var(--pmk-brand) !important;
	background-image: var(--pmk-grad) !important;
	box-shadow: 0 6px 16px rgba(13, 119, 117, .3) !important;
}
.pmk-booking .pmk-day-cell.pmk-selected .pmk-day-dow,
.pmk-booking .pmk-day-cell.pmk-selected .pmk-day-num,
.pmk-booking .pmk-day-cell.pmk-selected .pmk-day-mon { color: #fff !important; }
.pmk-booking .pmk-day-off,
.pmk-booking .pmk-day-off:hover { opacity: .32; cursor: default; text-decoration: line-through !important; transform: none !important; box-shadow: none !important; }
.pmk-day-dow { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--pmk-soft); }
.pmk-booking .pmk-day-cell .pmk-day-num,
.pmk-booking .pmk-day-cell:hover .pmk-day-num { font-size: 18px; font-weight: 700; color: var(--pmk-head) !important; }
.pmk-day-mon { font-size: 11px; color: var(--pmk-soft); }
/* Selected day keeps WHITE text in every state, including hover — this
 * sits after the generic hover rule so it always wins. */
.pmk-booking .pmk-day-cell.pmk-selected .pmk-day-dow,
.pmk-booking .pmk-day-cell.pmk-selected .pmk-day-num,
.pmk-booking .pmk-day-cell.pmk-selected .pmk-day-mon,
.pmk-booking .pmk-day-cell.pmk-selected:hover .pmk-day-dow,
.pmk-booking .pmk-day-cell.pmk-selected:hover .pmk-day-num,
.pmk-booking .pmk-day-cell.pmk-selected:hover .pmk-day-mon,
.pmk-booking .pmk-day-cell.pmk-selected:focus .pmk-day-num,
.pmk-booking .pmk-day-cell.pmk-selected:active .pmk-day-num {
	color: #fff !important;
}

/* --- slots --- */
.pmk-slots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
	gap: 9px;
	margin-top: 16px;
}
.pmk-booking .pmk-slot,
.pmk-booking .pmk-slot:hover,
.pmk-booking .pmk-slot:focus,
.pmk-booking .pmk-slot:active,
.pmk-booking .pmk-slot:focus-visible {
	padding: 11px 4px !important;
	border: 1px solid var(--pmk-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
	background-image: none !important;
	cursor: pointer;
	font: inherit !important;
	font-weight: 600 !important;
	color: var(--pmk-head) !important;
	text-align: center;
	box-shadow: 0 1px 2px rgba(23, 55, 54, .04) !important;
	text-decoration: none !important;
	transform: none !important;
	transition: border-color .18s var(--pmk-ease), box-shadow .18s var(--pmk-ease), transform .18s var(--pmk-ease), background .18s;
}
.pmk-booking .pmk-slot:hover {
	border-color: var(--pmk-brand-2) !important;
	background: var(--pmk-tint) !important;
	box-shadow: var(--pmk-shadow) !important;
	transform: translateY(-1px) !important;
}
/* Selected slot: gradient fill. */
.pmk-booking .pmk-slot.pmk-selected,
.pmk-booking .pmk-slot.pmk-selected:hover,
.pmk-booking .pmk-slot.pmk-selected:focus,
.pmk-booking .pmk-slot.pmk-selected:active {
	border-color: var(--pmk-brand) !important;
	background: var(--pmk-brand) !important;
	background-image: var(--pmk-grad) !important;
	color: #fff !important;
	box-shadow: 0 6px 16px rgba(13, 119, 117, .3) !important;
}
.pmk-slot.pmk-selected::before { content: "✓ "; font-size: 12px; }
.pmk-slots .pmk-muted, .pmk-days .pmk-muted { grid-column: 1 / -1; }

.pmk-muted { color: var(--pmk-soft); font-size: 14px; margin: 8px 0; }

/* --- loading skeletons: hold the layout at full height --- */
@keyframes pmkShimmer {
	0% { background-position: -180px 0; }
	100% { background-position: 260px 0; }
}
.pmk-day-skel,
.pmk-slot-skel {
	display: block;
	background-color: #edf4f4;
	background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .9) 50%, rgba(255, 255, 255, 0) 100%);
	background-repeat: no-repeat;
	background-size: 140px 100%;
	background-position: -180px 0;
	animation: pmkShimmer 1.1s ease-in-out infinite;
}
.pmk-day-skel { height: 76px; border-radius: 14px; }
.pmk-slot-skel { height: 45px; border-radius: 12px; }
.pmk-error { color: #b3392e; font-weight: 600; margin: 12px 0 0; }

/* --- consent --- */
.pmk-booking .pmk-consent,
.pmk-booking .pmk-consent:hover {
	display: flex !important;
	gap: 12px;
	align-items: flex-start;
	font-weight: 400 !important;
	font-size: 14px !important;
	line-height: 1.5;
	color: var(--pmk-ink) !important;
	margin-top: 22px !important;
	padding: 14px 16px;
	border: 1px solid var(--pmk-line);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(23, 55, 54, .04);
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
	transition: border-color .18s, background .18s, box-shadow .18s;
}
.pmk-booking .pmk-consent:hover { border-color: var(--pmk-brand-2); background: #fbfdfd; box-shadow: var(--pmk-shadow); }
.pmk-booking .pmk-consent input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 24px !important;
	height: 24px !important;
	min-width: 24px;
	margin: 0 !important;
	border: 2px solid var(--pmk-brand-2) !important;
	border-radius: 7px !important;
	background: #fff !important;
	cursor: pointer;
	position: relative;
	flex: none;
	box-shadow: none !important;
	transition: background .15s, border-color .15s;
}
.pmk-booking .pmk-consent input[type="checkbox"]:checked {
	background: var(--pmk-brand) !important;
	border-color: var(--pmk-brand) !important;
}
.pmk-booking .pmk-consent input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 7px; top: 3px;
	width: 6px; height: 11px;
	border: solid #fff;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}
.pmk-booking .pmk-consent input[type="checkbox"]:focus-visible {
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(13, 119, 117, .22) !important;
}
.pmk-consent.pmk-consent-checked { border-color: var(--pmk-brand); background: var(--pmk-tint); }

/* --- submit + reassurance --- */
.pmk-booking .pmk-submit,
.pmk-booking .pmk-submit:focus,
.pmk-booking .pmk-submit:focus-visible {
	display: block !important;
	width: 100%;
	margin-top: 22px;
	padding: 16px !important;
	border: none !important;
	border-radius: 14px !important;
	background: var(--pmk-accent) !important;
	background-image: none !important;
	color: #fff !important;
	font: inherit !important;
	font-weight: 700 !important;
	font-size: 17px !important;
	letter-spacing: .02em;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(225, 125, 125, .38) !important;
	text-decoration: none !important;
	transform: none !important;
	transition: background .18s, transform .15s var(--pmk-ease), box-shadow .18s;
}
.pmk-booking .pmk-submit:hover:not(:disabled) {
	background: var(--pmk-accent-dark) !important;
	color: #fff !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 9px 24px rgba(225, 125, 125, .44) !important;
}
.pmk-booking .pmk-submit:active:not(:disabled) { transform: translateY(0) !important; }
.pmk-booking .pmk-submit:disabled { opacity: .6; cursor: default; }

.pmk-reassure {
	text-align: center;
	font-size: 12.5px;
	color: var(--pmk-soft);
	margin: 12px 0 0;
	letter-spacing: .01em;
}

/* --- success: the gradient crown --- */
.pmk-success {
	text-align: center;
	background: #fff;
	border: 1px solid var(--pmk-line);
	border-radius: 18px;
	padding: 0 24px 36px;
	overflow: hidden;
	box-shadow: var(--pmk-shadow);
}
.pmk-success::before {
	content: "";
	display: block;
	height: 6px;
	margin: 0 -24px 30px;
	background-image: var(--pmk-grad);
}
.pmk-success h3 { margin: 0 0 10px; font-size: 23px; letter-spacing: -0.01em; color: var(--pmk-brand); }
.pmk-success p { margin: 0 auto; max-width: 420px; color: var(--pmk-ink); }

/* --- searchable combo --- */
.pmk-combo { position: relative; }
.pmk-booking .pmk-combo-toggle,
.pmk-booking .pmk-combo-toggle:hover,
.pmk-booking .pmk-combo-toggle:focus,
.pmk-booking .pmk-combo-toggle:active,
.pmk-booking .pmk-combo-toggle:focus-visible {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding: 12px 14px !important;
	border: 1.5px solid var(--pmk-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
	background-image: none !important;
	font: inherit !important;
	color: #333a42 !important;
	cursor: pointer;
	text-align: left;
	box-shadow: 0 1px 2px rgba(23, 55, 54, .04) !important;
	text-decoration: none !important;
	transform: none !important;
	transition: border-color .15s, box-shadow .15s;
}
.pmk-booking .pmk-combo-toggle:hover { border-color: var(--pmk-brand-2) !important; }
.pmk-booking .pmk-combo-toggle:focus { border-color: var(--pmk-brand) !important; box-shadow: 0 0 0 3px rgba(13,119,117,.13) !important; }
.pmk-booking .pmk-combo-toggle.pmk-combo-placeholder .pmk-combo-label { color: #adb4bb !important; }
.pmk-combo-caret { color: var(--pmk-brand); flex: none; font-size: 12px; }
.pmk-booking .pmk-combo-toggle.pmk-valid {
	border-color: var(--pmk-brand-2) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0.15' y2='1'%3E%3Cstop offset='0' stop-color='%2333BDBD'/%3E%3Cstop offset='1' stop-color='%230D7775'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='12' cy='12' r='11' fill='url(%23g)'/%3E%3Cpath d='M7.2 12.6l3 3L16.8 9.4' stroke='%23fff' stroke-width='2.3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 38px center !important;
	background-size: 20px 20px !important;
	padding-right: 64px !important;
}

.pmk-combo-panel {
	position: absolute;
	z-index: 40;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid var(--pmk-line);
	border-radius: 14px;
	box-shadow: 0 4px 10px rgba(23, 55, 54, .07), 0 18px 44px rgba(23, 55, 54, .16);
	padding: 12px;
}
.pmk-booking .pmk-combo-search {
	width: 100%;
	padding: 10px 12px;
	border: 1.5px solid var(--pmk-line) !important;
	border-radius: 10px !important;
	font: inherit !important;
	background: #f7fbfb !important;
	color: #333a42 !important;
	margin-bottom: 8px;
}
.pmk-booking .pmk-combo-search:focus { border-color: var(--pmk-brand) !important; box-shadow: 0 0 0 3px rgba(13,119,117,.11) !important; outline: none !important; }
.pmk-combo-list { list-style: none; margin: 0; padding: 0; max-height: 264px; overflow-y: auto; }
.pmk-combo-item {
	display: flex;
	flex-direction: column;
	gap: 1px;
	padding: 10px 11px;
	border-radius: 9px;
	cursor: pointer;
	margin: 0 0 2px;
	color: #333a42;
	transition: background .12s;
}
.pmk-combo-item small { color: var(--pmk-soft); font-size: 12.5px; }
.pmk-combo-item:hover { background: var(--pmk-tint); }
.pmk-combo-item.pmk-selected { background: var(--pmk-tint); color: var(--pmk-brand); font-weight: 600; }
.pmk-combo-empty { padding: 10px 11px; color: #adb4bb; }

/* --- DOB calendar --- */
.pmk-dob-wrap { position: relative; }
.pmk-dob-wrap input { cursor: pointer; }
.pmk-cal {
	position: absolute;
	z-index: 40;
	top: calc(100% + 8px);
	left: 0;
	min-width: 284px;
	background: #fff;
	border: 1px solid var(--pmk-line);
	border-radius: 16px;
	box-shadow: 0 4px 10px rgba(23, 55, 54, .07), 0 18px 44px rgba(23, 55, 54, .16);
	padding: 14px;
}
.pmk-cal-head { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.pmk-booking .pmk-cal select {
	width: auto !important;
	padding: 7px 8px !important;
	border-radius: 9px !important;
	flex: 1;
}
.pmk-booking .pmk-cal-nav,
.pmk-booking .pmk-cal-nav:hover,
.pmk-booking .pmk-cal-nav:focus,
.pmk-booking .pmk-cal-nav:active {
	width: 33px; height: 33px;
	border: 1px solid var(--pmk-line) !important;
	border-radius: 9px !important;
	background: #fff !important;
	background-image: none !important;
	color: var(--pmk-brand) !important;
	font: inherit !important;
	font-size: 16px !important;
	cursor: pointer;
	flex: none;
	padding: 0 !important;
	box-shadow: none !important;
	transform: none !important;
	transition: border-color .15s;
}
.pmk-booking .pmk-cal-nav:hover { border-color: var(--pmk-brand-2) !important; }
.pmk-cal-dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 4px; }
.pmk-cal-dow span { text-align: center; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--pmk-soft); }
.pmk-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.pmk-booking .pmk-cal-day,
.pmk-booking .pmk-cal-day:hover,
.pmk-booking .pmk-cal-day:focus,
.pmk-booking .pmk-cal-day:active {
	padding: 7px 0 !important;
	border: 1.5px solid transparent !important;
	border-radius: 9px !important;
	background: #fff !important;
	background-image: none !important;
	font: inherit !important;
	font-size: 14px !important;
	color: #333a42 !important;
	cursor: pointer;
	text-align: center;
	box-shadow: none !important;
	transform: none !important;
	transition: background .12s, border-color .12s;
}
.pmk-booking .pmk-cal-day:hover:not(:disabled) { background: var(--pmk-tint) !important; border-color: var(--pmk-brand-2) !important; }
.pmk-booking .pmk-cal-day.pmk-selected,
.pmk-booking .pmk-cal-day.pmk-selected:hover {
	background: var(--pmk-brand) !important;
	background-image: var(--pmk-grad) !important;
	color: #fff !important;
	border-color: var(--pmk-brand) !important;
}
.pmk-booking .pmk-cal-day:disabled { color: #ccd2d8 !important; cursor: default; }

/* --- requirements checklist --- */
.pmk-checklist {
	margin-top: 18px;
	background: var(--pmk-tint-accent);
	border: 1px solid #f3d6d6;
	border-left: 4px solid var(--pmk-accent);
	border-radius: 14px;
	padding: 16px 18px;
}
.pmk-chk-title { margin: 0 0 10px; font-weight: 700; color: #b3554f; font-size: 14.5px; }
.pmk-chk-list { list-style: none; margin: 0; padding: 0; }
.pmk-chk-item { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; color: var(--pmk-ink); font-size: 14px; }
.pmk-chk-item:last-child { margin-bottom: 0; }
.pmk-chk-mark {
	width: 20px; height: 20px;
	border: 2px solid var(--pmk-accent);
	border-radius: 50%;
	flex: none;
	position: relative;
	background: #fff;
	transition: background .18s, border-color .18s;
}
.pmk-chk-item.pmk-chk-done .pmk-chk-mark { border-color: var(--pmk-brand); background: var(--pmk-brand); animation: pmkPop .28s var(--pmk-ease); }
.pmk-chk-item.pmk-chk-done .pmk-chk-mark::after {
	content: "";
	position: absolute;
	left: 5.5px; top: 2.5px;
	width: 5px; height: 9px;
	border: solid #fff;
	border-width: 0 2.2px 2.2px 0;
	transform: rotate(45deg);
}
.pmk-chk-item.pmk-chk-done span:last-child { color: var(--pmk-brand); }
.pmk-checklist.pmk-chk-complete { background: var(--pmk-tint); border-color: #cfe9e7; border-left-color: var(--pmk-brand); }
.pmk-checklist.pmk-chk-complete .pmk-chk-title { color: var(--pmk-brand); }

/* --- invalid marks --- */
.pmk-booking input.pmk-field-error,
.pmk-booking textarea.pmk-field-error {
	border-color: #d9534a !important;
	box-shadow: 0 0 0 3px rgba(217, 83, 74, .13) !important;
}
.pmk-booking .pmk-consent.pmk-field-error { border-color: #d9534a !important; background: #fdf3f2 !important; }
.pmk-step.pmk-step-error legend { color: #b3392e; }
.pmk-step.pmk-step-error legend::before { color: #d9534a; }

/* --- [hidden] must ALWAYS win over the display !important armor --- */
#pmk-booking [hidden],
.pmk-booking [hidden] {
	display: none !important;
}

/* --- thank-you page ([pmk_thank_you]) --- */
.pmk-ty { padding: 8px 0 24px; }
.pmk-ty-hero {
	text-align: center;
	background: #fff;
	border: 1px solid var(--pmk-line);
	border-radius: 18px;
	padding: 0 24px 30px;
	overflow: hidden;
	box-shadow: var(--pmk-shadow);
	margin-bottom: 18px;
}
.pmk-ty-hero::before {
	content: "";
	display: block;
	height: 6px;
	margin: 0 -24px 30px;
	background-image: var(--pmk-grad);
}
.pmk-ty-check {
	display: inline-block;
	width: 54px; height: 54px;
	border-radius: 50%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0.15' y2='1'%3E%3Cstop offset='0' stop-color='%2333BDBD'/%3E%3Cstop offset='1' stop-color='%230D7775'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='12' cy='12' r='11' fill='url(%23g)'/%3E%3Cpath d='M7.2 12.6l3 3L16.8 9.4' stroke='%23fff' stroke-width='2.3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	filter: drop-shadow(0 4px 10px rgba(13, 119, 117, .3));
	margin-bottom: 14px;
	animation: pmkPop .4s var(--pmk-ease);
}
.pmk-ty-hero h2 { margin: 0 0 8px; font-size: 26px; letter-spacing: -0.01em; color: var(--pmk-brand); }
.pmk-ty-hero p { margin: 0 auto; max-width: 460px; color: var(--pmk-ink); font-size: 15px; }

.pmk-ty-card {
	background: #fff;
	border: 1px solid var(--pmk-line);
	border-radius: 16px;
	box-shadow: var(--pmk-shadow);
	padding: 22px 24px;
	margin-bottom: 18px;
}
.pmk-ty-card h3 { margin: 0 0 14px; font-size: 17px; letter-spacing: -0.01em; color: var(--pmk-brand); }
.pmk-ty-rows { margin: 0; }
.pmk-ty-row {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	padding: 9px 0;
	border-bottom: 1px solid #f0f5f5;
}
.pmk-ty-row:last-child { border-bottom: none; }
.pmk-ty-row dt { margin: 0; font-size: 13.5px; color: var(--pmk-soft); }
.pmk-ty-row dd { margin: 0; font-weight: 600; color: #333a42; text-align: right; }

.pmk-ty-location { padding: 0; overflow: hidden; }
.pmk-ty-image { display: block; width: 100%; height: auto; max-height: 320px; object-fit: cover; }
.pmk-ty-location-body { padding: 20px 24px 22px; }
.pmk-ty-address { margin: 0 0 14px; color: var(--pmk-soft); font-size: 14px; }
.pmk-ty-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.pmk-booking a.pmk-ty-btn,
.pmk-booking a.pmk-ty-btn:visited {
	display: inline-block;
	padding: 11px 18px !important;
	border-radius: 12px !important;
	font-size: 14.5px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	transition: transform .15s var(--pmk-ease), box-shadow .18s, background .18s;
}
.pmk-booking a.pmk-ty-btn-call,
.pmk-booking a.pmk-ty-btn-call:visited {
	background: var(--pmk-brand) !important;
	background-image: var(--pmk-grad) !important;
	color: #fff !important;
	border: none !important;
	box-shadow: 0 5px 14px rgba(13, 119, 117, .3) !important;
}
.pmk-booking a.pmk-ty-btn-call:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(13, 119, 117, .36) !important; color: #fff !important; }
.pmk-booking a.pmk-ty-btn-map,
.pmk-booking a.pmk-ty-btn-map:visited {
	background: #fff !important;
	color: var(--pmk-brand) !important;
	border: 1.5px solid var(--pmk-brand-2) !important;
	box-shadow: none !important;
}
.pmk-booking a.pmk-ty-btn-map:hover { background: var(--pmk-tint) !important; color: var(--pmk-brand) !important; transform: translateY(-1px); }

/* --- booking-page intro hero ([pmk_booking_intro]) --- */
.pmk-intro { text-align: center; padding: 26px 16px 6px; margin-bottom: 26px; }
.pmk-intro-eyebrow {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--pmk-brand-2);
}
.pmk-intro-title {
	margin: 0 0 12px;
	font-size: 32px;
	line-height: 1.2;
	letter-spacing: -0.015em;
	color: var(--pmk-brand);
	font-weight: 700;
}
.pmk-intro-text {
	margin: 0 auto;
	max-width: 560px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--pmk-ink);
}
.pmk-intro-line {
	display: block;
	width: 64px;
	height: 4px;
	border-radius: 999px;
	margin: 22px auto 0;
	background-image: var(--pmk-grad);
}
@media (max-width: 560px) {
	.pmk-intro-title { font-size: 25px; }
	.pmk-intro { padding-top: 10px; }
}
