.pjm-booking-root {
	/* Isolér plugin'ets stacking-kontekst så indhold ikke bløder over fixed/sticky topmenu. */
	position: relative;
	z-index: 0;
	isolation: isolate;
	/* Forhindrer horizontal overflow uanset hvilken container widget'et placeres i. */
	max-width: 100%;
	min-width: 0;
	overflow-x: clip;
	box-sizing: border-box;
	--pjm-primary: #1f4e79;
	--pjm-accent: #e6a532;
	--pjm-button-bg: #1f4e79;
	--pjm-button-text: #ffffff;
	--pjm-chip-bg: #1f4e79;
	--pjm-chip-text: #ffffff;
	--pjm-card-bg: #f7f5ef;
	--pjm-card-border: #e5e1d6;
	--pjm-heading: #1f4e79;
	--pjm-text: #2a2a2a;
	--pjm-bg: #ffffff;
	--pjm-text-soft: #6b6b6b;
	--pjm-radius: 12px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
	color: var(--pjm-text);
}

.pjm-cta-button {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--pjm-button-bg); color: var(--pjm-button-text);
	border: 0; padding: 14px 28px; border-radius: 999px;
	font-size: 16px; font-weight: 600; cursor: pointer;
	transition: filter 0.15s, transform 0.15s;
}
.pjm-cta-button:hover { filter: brightness(0.92); transform: translateY(-1px); }
.pjm-cta-button:focus { outline: 3px solid color-mix(in srgb, var(--pjm-primary) 30%, transparent); outline-offset: 2px; }
/* Fælles fokus-standard (agent-audit 31/7): synligt 2px-primær-omrids på tastaturfokus overalt */
.pjm-booking-root :is(button, input, select, a):focus-visible { outline: 2px solid var(--pjm-primary, #1f4e79); outline-offset: 2px; }

.pjm-inline-wrap { width: 100%; }

.pjm-flow {
	background: var(--pjm-bg);
	border: 1px solid var(--pjm-card-border);
	border-radius: var(--pjm-radius);
	padding: 28px;
}

.pjm-stepper {
	display: flex; gap: 6px; margin-bottom: 24px; flex-wrap: wrap;
}
.pjm-step-pill {
	display: flex; align-items: center; gap: 8px;
	padding: 6px 14px; background: var(--pjm-card-bg);
	border-radius: 999px; font-size: 13px; color: var(--pjm-text-soft);
}
.pjm-step-pill--done { background: var(--pjm-primary); color: #fff; cursor: pointer; }
.pjm-step-pill--current { background: var(--pjm-accent); color: #fff; font-weight: 600; }
.pjm-step-num {
	background: rgba(255,255,255,0.3); width: 20px; height: 20px;
	border-radius: 50%; display: flex; align-items: center; justify-content: center;
	font-size: 12px; font-weight: 700;
}
.pjm-step-pill:not(.pjm-step-pill--done):not(.pjm-step-pill--current) .pjm-step-num {
	background: #c3c4c7; color: #fff;
}

.pjm-step-heading { margin: 0 0 6px; font-size: 22px; color: var(--pjm-heading); }
.pjm-step-sub { margin: 0 0 20px; color: var(--pjm-text-soft); }

.pjm-card-grid {
	display: grid; gap: 16px;
	grid-template-columns: repeat(var(--pjm-cpr-d, 4), minmax(0, 1fr));
}
.pjm-card {
	background: var(--pjm-card-bg);
	border: 1px solid var(--pjm-card-border);
	border-radius: var(--pjm-radius);
	padding: 26px 24px;
	cursor: pointer;
	transition: all 0.2s ease;
	text-align: left;
	font-family: inherit;
	min-height: 130px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	position: relative;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
	overflow: hidden;
}
.pjm-card--has-image {
	padding: 0;
	justify-content: flex-start;
	gap: 0;
}
.pjm-card-image {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	display: block;
	background: var(--pjm-card-bg);
}
.pjm-card--has-image .pjm-card-body {
	padding: 18px 22px 22px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}
.pjm-card:hover {
	background: #fff;
	border-color: var(--pjm-primary);
	box-shadow: 0 8px 22px color-mix(in srgb, var(--pjm-primary) 18%, transparent);
	transform: translateY(-3px);
}
.pjm-card:focus { outline: 3px solid color-mix(in srgb, var(--pjm-primary) 30%, transparent); outline-offset: 2px; }
.pjm-card-title {
	font-size: 20px; font-weight: 700; color: var(--pjm-heading);
	margin: 0; line-height: 1.25; letter-spacing: -0.01em;
	/* Lange sammensatte ord (fx "Graviditetsscanninger") skal bryde i stedet for at flyde ud over kortet.
	   hyphens:auto deler pænt ved stavelser (kræver lang="da"); overflow-wrap er sikkerhedsnet. */
	overflow-wrap: break-word;
	word-break: break-word;
	hyphens: auto;
	min-width: 0;
}
.pjm-card-meta { font-size: 14px; color: var(--pjm-text-soft); margin: 0; line-height: 1.45; }
.pjm-card-icon { font-size: 32px; margin-bottom: 4px; display: block; }

.pjm-service-group { margin-bottom: 36px; }
.pjm-service-group:last-child { margin-bottom: 0; }
.pjm-service-group-head {
	margin-bottom: 18px;
	padding: 14px 18px;
	background: var(--pjm-card-bg);
	border-left: 4px solid var(--pjm-primary);
	border-radius: 6px;
}

/* Bundle explicit-width mode: hver kort har sin egen valgte bredde.
   4-kol grid på desktop, 2-kol på mobil, 1-kol på tiny. */
.pjm-flat-explicit {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	align-items: stretch;
	min-width: 0;
	max-width: 100%;
}
.pjm-flat-card {
	grid-column: span var(--pjm-w-d, 1);
	min-width: 0;
	max-width: 100%;
	display: flex;
}
.pjm-flat-card > .pjm-service-card,
.pjm-flat-card > .pjm-flip-card {
	width: 100%;
}

/* Bundle flat-mode: fast 4-kolonners outer grid (2 på mobil, 1 på tiny).
   Hvert underemne-block spænder over antal kort i underemnet, med tom plads
   til højre når der er færre end 4 kort. */
.pjm-flat-row {
	display: grid;
	grid-template-columns: repeat(var(--pjm-cpr-d, 4), minmax(0, 1fr));
	gap: 12px;
	align-items: start;
	min-width: 0;
	max-width: 100%;
}
.pjm-subcat-block {
	grid-column: span var(--pjm-cols-d, 1);
	display: flex;
	flex-direction: column;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}
.pjm-subcat-block .pjm-service-group-head--segment {
	margin-bottom: 12px;
}
.pjm-subcat-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--pjm-cols-d, 1), minmax(0, 1fr)) !important;
	gap: 12px;
	flex: 1 1 auto;
}
.pjm-service-group-title {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
	color: var(--pjm-heading);
	letter-spacing: -0.01em;
	line-height: 1.25;
}
.pjm-service-group-hint {
	margin: 4px 0 0;
	font-size: 13px;
	color: var(--pjm-text-soft);
	font-style: italic;
}

.pjm-service-grid {
	display: grid; gap: 12px;
	grid-template-columns: repeat(var(--pjm-cpr-d, 4), minmax(0, 1fr));
	align-items: stretch;
}
.pjm-service-card {
	background: var(--pjm-card-bg);
	border: 1px solid var(--pjm-card-border);
	border-radius: var(--pjm-radius);
	overflow: hidden;
	cursor: pointer;
	transition: all 0.2s ease;
	display: flex;
	flex-direction: column;
	text-align: left;
	font-family: inherit;
	padding: 0;
	margin: 0;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
	height: 100%;
}
.pjm-service-card:hover {
	border-color: var(--pjm-primary);
	box-shadow: 0 8px 24px color-mix(in srgb, var(--pjm-primary) 18%, transparent);
	transform: translateY(-3px);
}
.pjm-service-card:hover .pjm-service-header {
	background: color-mix(in srgb, var(--pjm-primary) 8%, var(--pjm-card-bg));
}
.pjm-service-card:focus { outline: 3px solid color-mix(in srgb, var(--pjm-primary) 30%, transparent); outline-offset: 2px; }

.pjm-service-header {
	margin: 0;
	padding: 8px 16px 10px;
	background: var(--pjm-card-bg);
	border-bottom: 1px solid var(--pjm-card-border);
	transition: background 0.2s ease;
	/* Holder kort i samme række nogenlunde aligned, uden at spilde plads over 1-linje-titler. */
	min-height: 54px;
	display: flex;
	align-items: center;
}
.pjm-service-card h5.pjm-service-title,
.pjm-booking-root .pjm-service-title {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.25 !important;
}
.pjm-booking-root .pjm-service-card,
.pjm-booking-root .pjm-service-header {
	margin: 0;
}
.pjm-service-title {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	color: var(--pjm-heading);
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.pjm-service-image {
	width: 100%; aspect-ratio: 16/9; object-fit: cover;
	background: var(--pjm-card-bg);
	display: block;
}
.pjm-service-body {
	padding: 14px 16px 16px;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: var(--pjm-bg);
}
/* Visuel rækkefølge (via flex order): beskrivelse → features → locations (centreret) → meta (i bunden).
   Både locations og meta har margin-top:auto, så flex deler den ekstra plads ligeligt mellem dem —
   locations ender i kortets vertikale midte, meta i bunden. */
.pjm-service-body .pjm-service-desc { order: 1; }
.pjm-service-body .pjm-service-features-list { order: 2; }
.pjm-service-body .pjm-service-locations {
	order: 3;
	margin-top: auto;
}
.pjm-service-body .pjm-service-meta {
	order: 4;
	margin-top: auto;
}
.pjm-service-locations {
	display: flex; flex-direction: column; gap: 4px;
	align-items: center;
	padding: 8px 0;
	border-top: 1px solid var(--pjm-card-border);
	border-bottom: 1px solid var(--pjm-card-border);
	margin: 4px 0;
	text-align: center;
}
.pjm-loc-label {
	display: inline-flex; align-items: center; gap: 5px;
	font-size: 11px; font-weight: 600; text-transform: uppercase;
	letter-spacing: 0.04em; color: var(--pjm-text-soft);
	justify-content: center;
}
.pjm-loc-icon { color: var(--pjm-primary); flex-shrink: 0; }
.pjm-loc-tags { display: flex; flex-wrap: wrap; gap: 4px; justify-content: center; }
.pjm-loc-tag {
	display: inline-block;
	font-size: 12px; font-weight: 500;
	background: var(--pjm-chip-bg); color: var(--pjm-chip-text);
	padding: 3px 10px;
	border-radius: 999px;
	line-height: 1.4;
}
.pjm-service-desc { margin: 0; font-size: 13px; color: var(--pjm-text-soft); line-height: 1.5; }
.pjm-service-meta { display: flex; justify-content: space-between; align-items: center; padding-top: 8px; border-top: 1px solid var(--pjm-card-border); }
.pjm-service-price { font-weight: 600; color: var(--pjm-text); }
.pjm-service-duration { font-size: 12px; color: var(--pjm-text-soft); }
/* Bolt-temaet farver <p>/tekst blå (link-look) på mobil — tving service-beskrivelse + varighed til dæmpet grå. */
.pjm-service-desc, .pjm-service-duration { color: var(--pjm-text-soft, #6b6b6b) !important; }
.pjm-service-book {
	background: var(--pjm-button-bg); color: var(--pjm-button-text); border: 0; padding: 6px 12px;
	border-radius: 6px; font-size: 13px; font-weight: 600;
}

.pjm-service-features-list {
	margin: 0; padding: 0; list-style: none;
	display: flex; flex-direction: column; gap: 4px;
}
.pjm-service-features-list li {
	position: relative;
	padding-left: 20px;
	font-size: 13px; line-height: 1.45;
	color: var(--pjm-text);
}
.pjm-service-features-list li::before {
	content: "";
	position: absolute; left: 4px; top: 7px;
	width: 6px; height: 6px;
	background: var(--pjm-primary);
	border-radius: 50%;
}

.pjm-back-btn {
	background: var(--pjm-card-bg);
	border: 1px solid var(--pjm-card-border);
	color: var(--pjm-primary);
	cursor: pointer;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 18px;
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 999px;
	transition: all 0.15s ease;
}
.pjm-back-btn:hover {
	background: var(--pjm-primary);
	color: #fff;
	border-color: var(--pjm-primary);
	text-decoration: none;
	transform: translateX(-2px);
}
.pjm-back-btn--inline {
	margin: 22px 0 0;
	display: inline-flex;
}

/* Booking-step: knap-række lige over booking-boksen (tilbage + vælg anden klinik). */
.pjm-booking-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin: 18px 0 16px;
}
.pjm-booking-actions .pjm-back-btn {
	margin-bottom: 0;
}
.pjm-switch-clinic-btn {
	background: var(--pjm-switch-bg, #2f8a5b);
	color: #ffffff;
	border: 1px solid var(--pjm-switch-bg, #2f8a5b);
	cursor: pointer;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 999px;
	transition: all 0.15s ease;
}
.pjm-switch-clinic-btn:hover {
	filter: brightness(0.93);
	transform: translateY(-1px);
	text-decoration: none;
	color: #ffffff;
}
.pjm-switch-clinic-btn:focus {
	outline: 3px solid color-mix(in srgb, #2f8a5b 35%, transparent);
	outline-offset: 2px;
}

/* Klinik-switcher: knap-row over ugevisning, vises som "Vis Hillerød / Vis Gothersgade ..." */
.pjm-clinic-switcher {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 14px;
}
.pjm-clinic-switch-btn {
	background: #fff;
	color: #1f4e79;
	border: 1px solid #d4cfc1;
	border-radius: 999px;
	padding: 8px 16px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: all .15s;
}
.pjm-clinic-switch-btn:hover {
	background: #1f4e79;
	color: #fff;
	border-color: #1f4e79;
}
.pjm-clinic-switch-btn--all {
	background: #fef5fa;
	border-color: #F7A5C9;
	color: #a83d75;
}
.pjm-clinic-switch-btn--all:hover {
	background: #F7A5C9;
	border-color: #F7A5C9;
	color: #fff;
}

.pjm-empty-state {
	text-align: center; padding: 40px 20px; color: var(--pjm-text-soft);
}

.pjm-custom-html {
	padding: 4px 0;
}

.pjm-bundle-toggle {
	display: flex;
	justify-content: flex-start;
	margin-bottom: 18px;
}
.pjm-bundle-show-all-btn {
	background: transparent;
	border: 1px dashed var(--pjm-primary);
	color: var(--pjm-primary);
	cursor: pointer;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 999px;
	transition: all 0.15s ease;
}
.pjm-bundle-show-all-btn:hover {
	background: var(--pjm-primary);
	color: #fff;
	border-style: solid;
	transform: translateX(2px);
}
.pjm-bundle-show-all-btn svg { transition: transform 0.15s; }
.pjm-bundle-show-all-btn:hover svg { transform: translateX(2px); }

/* Sticky påmindelses-bjælke forneden i booking-trinnet. */
.pjm-sticky-reminder {
	position: fixed;
	left: 50%;
	bottom: 0;
	transform: translate(-50%, 120%);
	z-index: 99999;
	display: flex;
	align-items: center;
	gap: 12px;
	width: calc(100% - 24px);
	max-width: 720px;
	margin: 0 0 12px;
	padding: 14px 16px;
	/* Bjælken hægtes på <body> — uden for .pjm-booking-root — så CSS-variablerne findes
	   ikke her. Brug faste hex-værdier, ellers bliver baggrunden transparent. */
	background: #1f4e79;
	color: #fff;
	border-radius: 12px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
	font-size: 15px;
	line-height: 1.4;
	opacity: 0;
	transition: transform 0.32s ease, opacity 0.32s ease;
}
.pjm-sticky-reminder.is-visible { transform: translate(-50%, 0); opacity: 1; }
.pjm-sticky-reminder-icon { font-size: 20px; flex: 0 0 auto; }
.pjm-sticky-reminder-text { flex: 1 1 auto; }
.pjm-sticky-reminder-text strong { color: #f0b53d; letter-spacing: 0.3px; }
.pjm-sticky-reminder-close {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border: 0;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	font-size: 22px;
	line-height: 1;
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.2s ease;
}
.pjm-sticky-reminder-close:hover { background: rgba(255, 255, 255, 0.3); }
@media (max-width: 480px) {
	.pjm-sticky-reminder { font-size: 14px; padding: 12px 14px; }
}

.pjm-iframe-wrap {
	position: relative;
	min-height: 600px;
	border: 1px solid var(--pjm-card-border);
	border-radius: var(--pjm-radius);
	overflow: hidden;
	background: var(--pjm-card-bg);
}
.pjm-iframe-wrap iframe {
	width: 100%;
	min-height: 600px;
	height: 100%;
	border: 0;
	display: block;
}
.pjm-iframe-loading {
	position: absolute; inset: 0;
	display: flex; justify-content: center; align-items: center;
	color: var(--pjm-text-soft);
}

@media (max-width: 600px) {
	.pjm-feat-m-hide { display: none !important; }
	.pjm-flow { padding: 18px; }
	/* Kategori-kort: 2 i linje på mobil. */
	.pjm-card-grid { grid-template-columns: repeat(var(--pjm-cpr-m, 2), minmax(0, 1fr)); gap: 10px; }
	.pjm-card { padding: 18px 14px; min-height: 110px; }
	.pjm-card-title { font-size: 16px; }
	.pjm-card-meta { font-size: 12px; }
	/* Ydelses-kort: 2 i linje på mobil — kompaktere indhold. */
	.pjm-service-grid { grid-template-columns: repeat(var(--pjm-cpr-m, 2), minmax(0, 1fr)); gap: 10px; }
	.pjm-service-header { padding: 12px 12px; }
	.pjm-service-title { font-size: 15px; line-height: 1.2; }
	.pjm-service-body { padding: 10px 12px 12px; gap: 6px; }
	.pjm-service-locations { padding: 6px 0; margin: 2px 0; }
	.pjm-loc-label { font-size: 10px; }
	.pjm-loc-tag { font-size: 11px !important; padding: 2px 8px !important; }
	.pjm-service-desc { font-size: 12px; line-height: 1.4; }
	.pjm-service-meta { flex-direction: column; align-items: stretch; gap: 8px; padding-top: 6px; }
	.pjm-service-price { font-size: 14px; }
	.pjm-service-book { text-align: center; padding: 8px 12px; }
	.pjm-service-features { padding-top: 8px; margin-top: 6px; }
	.pjm-service-features li { font-size: 12px; padding-left: 16px; }
	.pjm-service-features li::before { left: 2px; top: 6px; width: 5px; height: 5px; }
	.pjm-features-label { font-size: 10px; margin-bottom: 4px; }
	/* Underemne-bjælke lidt mindre på mobil. */
	.pjm-service-group-head { padding: 10px 14px; }
	.pjm-service-group-title { font-size: 17px; }
	/* Mobil: stack underemner vertikalt — hver blok i fuld bredde, kort altid maks 50%. */
	.pjm-flat-row { grid-template-columns: 1fr; gap: 14px; }
	.pjm-subcat-block { grid-column: 1; }
	.pjm-subcat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; }
	/* Explicit-width mode på mobil: 2-kol grid, hver kort spænder sin mobil-bredde. */
	.pjm-flat-explicit { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.pjm-flat-card { grid-column: span var(--pjm-w-m, 1); }
	.pjm-iframe-wrap, .pjm-iframe-wrap iframe { min-height: 500px; }
}
@media (max-width: 420px) {
	/* Helt små skærme: fald tilbage til 1 kort pr. linje for begge. */
	.pjm-card-grid { grid-template-columns: 1fr; }
	.pjm-service-grid { grid-template-columns: 1fr; }
	.pjm-clinic-grid { grid-template-columns: 1fr; }
	.pjm-flat-row { grid-template-columns: 1fr; }
	.pjm-subcat-block { grid-column: 1 / -1; }
	.pjm-subcat-grid { grid-template-columns: 1fr !important; }
	.pjm-flat-explicit { grid-template-columns: 1fr; }
	.pjm-flat-card { grid-column: 1 / -1; }
}

/* ---------- Flip-card (klinik-valg på bagsiden af ydelses-kort) ---------- */
/* Safari-noter:
   - `transform-style: preserve-3d` paa et `display: grid`-element bliver flattenet i Safari
     -> back-face roterer men `backface-visibility: hidden` virker ikke -> kortet ser spejlvendt ud.
   - Loesning: absolut-positionerede faces inde i en almindelig (relative) inner. -webkit-prefixes
     paa transform-egenskaberne for ekstra robusthed paa aeldre iOS-versioner. */
.pjm-flip-card {
	-webkit-perspective: 1200px;
	perspective: 1200px;
	position: relative;
	display: block;
	height: 100%;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}
.pjm-flip-card__inner {
	position: relative;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
	-webkit-transition: -webkit-transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1);
	transition: transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1);
	height: 100%;
	min-height: 100%;
	min-width: 0;
	max-width: 100%;
	will-change: transform;
}
.pjm-flip-card.is-flipped .pjm-flip-card__inner {
	-webkit-transform: rotateY(180deg);
	transform: rotateY(180deg);
}
.pjm-flip-face {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}
/* Front-face: i flow — bidrager med hoejde til card. Bagside er absolut overlay. */
.pjm-flip-face--front {
	position: relative;
	z-index: 2;
	/* Forsiden er en <button> (inline-block) inde i wrapperen — uden width fylder den kun
	   sit indhold, så kort i samme række får forskellige bredder og prisen klemmes bag
	   CTA'en. Wrapperen er grid-item'et; knappen skal eksplicit fylde den. */
	width: 100%;
	display: flex;
	flex-direction: column;
	-webkit-transform: rotateY(0deg);
	transform: rotateY(0deg);
	height: 100%;
	/* Hjørne-afrunding: overflow:hidden + border-radius klipper ikke paalideligt paa et
	   backface-visibility:hidden-element i en preserve-3d-kontekst (WebKit) -> firkantede
	   hjoerner foer flip. Genhaandhaev radius + tving klipning med radial-mask (Safari-fix). */
	border-radius: var(--pjm-radius);
	overflow: hidden;
	-webkit-mask-image: -webkit-radial-gradient(white, black);
}
.pjm-flip-face--back {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-transform: rotateY(180deg);
	transform: rotateY(180deg);
	background: var(--pjm-bg);
	border: 1px solid var(--pjm-card-border);
	border-radius: 8px;
	padding: 16px 16px 12px;
	display: flex;
	flex-direction: column;
	/* Top-aligner header; klinik-knapperne vokser og fylder resten af kortet, så
	   de er umulige at overse (tidligere bottom-aligned -> blev overset i bunden). */
	justify-content: flex-start;
	pointer-events: none;
	box-sizing: border-box;
	overflow: hidden;
}
.pjm-flip-card.is-flipped .pjm-flip-face--back { pointer-events: auto; }
/* FAST KORTHOEJDE + POPOVER-BAGSIDE (v3.28.76, afloeser v3.28.55/72-75-forsoegene):
   Kortet aendrer ALDRIG stoerrelse — hverken ved render eller flip. Bagsiden er i
   stedet en popover: absolut, egen naturlige hoejde (min. kortets), maa flyde hen
   over indholdet nedenfor med kraftig skygge. Knapper kan aldrig klippes, raekker
   hopper aldrig, og tomme kaempe-kort kan ikke opstaa. */
.pjm-flip-card.is-flipped { z-index: 60; }
.pjm-flip-card.is-flipped .pjm-flip-face--back {
	z-index: 3; /* over forsidens z-index:2 — popoveren skal male overst */
	height: auto;
	min-height: 100%;
	overflow: visible;
	box-shadow: 0 22px 48px rgba(0, 0, 0, .25), 0 0 0 2px color-mix(in srgb, var(--pjm-primary) 30%, transparent);
	border-radius: 8px;
}
/* Valgt/flippet kort: lyserød (primær) kant + blød ring, så det er tydeligt hvilket kort man vælger tillæg til. */
.pjm-flip-card.is-flipped .pjm-flip-face--back {
	border-color: var(--pjm-primary);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--pjm-primary) 30%, transparent);
}
.pjm-flip-card.is-flipped .pjm-flip-face--front { pointer-events: none; }

/* Klinik-valg billede øverst på bagsiden — analogt med forsidens .pjm-service-image.
   Med margin-bottom: auto forbliver billedet i toppen selv om back-face har justify-content: flex-end. */
.pjm-flip-back-image {
	width: calc(100% + 32px);
	margin: -16px -16px 12px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
	background: var(--pjm-card-bg);
	border-radius: 8px 8px 0 0;
	flex-shrink: 0;
}

/* Tillægs-billede: edge-to-edge i flip-bagsiden (modsvarer back-facens 16px padding) — analogt med forsidens .pjm-service-image. */
.pjm-flip-addon-image {
	width: calc(100% + 32px);
	margin: 0 -16px 14px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
	background: var(--pjm-card-bg);
	flex-shrink: 0;
}

/* Tillægs-panel (flip-bagside): fuld-bleed margin matcher back-facens padding; body + knapper styres via klasser så mobil kan justeres. */
.pjm-flip-addon-panel { flex-direction: column; flex: 1; margin: -16px -16px -12px; }
.pjm-addon-body { padding: 14px 16px 16px; }
/* Person-antal-tæller på flip-bagsiden (kompakt → passer i kortet, ingen footer-overflow). */
.pjm-person-stepper { display: flex; flex-direction: column; flex: 1; margin: -16px -16px -12px; }
.pjm-person-stepper .pjm-ps-body { background: var(--pjm-bg, #fff); flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 14px 16px 16px; }
.pjm-ps-note { font-size: 13px; color: var(--pjm-text-soft, #6b6b6b); line-height: 1.45; text-align: left; }
.pjm-ps-row { display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 2px; }
.pjm-ps-btn { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid color-mix(in srgb, var(--pjm-primary, #1f4e79) 35%, #fff); background: var(--pjm-bg, #fff); color: var(--pjm-heading, #1f4e79); font-size: 26px; line-height: 1; cursor: pointer; transition: border-color .15s ease; }
@media (hover:hover){ .pjm-ps-btn:not(:disabled):hover { border-color: var(--pjm-button-bg, #1f4e79); } }
.pjm-ps-count { min-width: 74px; text-align: center; }
.pjm-ps-count span { font-size: 34px; font-weight: 800; color: var(--pjm-heading, #1f4e79); line-height: 1; display: block; }
.pjm-ps-count small { font-size: 13px; color: var(--pjm-text-soft, #6b6b6b); }
.pjm-ps-price { font-weight: 700; color: var(--pjm-heading, #1f4e79); text-align: center; min-height: 20px; }
.pjm-person-stepper .pjm-addon-btn { margin-top: auto; }
.pjm-addon-btn { display: block; width: 100%; background: var(--pjm-button-bg, #1f4e79); color: #fff; border: 0; border-radius: var(--pjm-radius, 12px); font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1.3; padding: 14px; cursor: pointer; transition: filter .15s; }
.pjm-addon-btn:hover { filter: brightness(.92); }

.pjm-flip-back-btn {
	position: absolute;
	top: 6px;
	right: 8px;
	background: transparent;
	border: 0;
	font-size: 24px;
	line-height: 1;
	color: var(--pjm-heading);
	cursor: pointer;
	padding: 4px 8px;
	border-radius: 4px;
	opacity: 0.6;
	transition: opacity 0.15s, background 0.15s;
}
.pjm-flip-back-btn:hover,
.pjm-flip-back-btn:focus {
	opacity: 1;
	background: rgba(0, 0, 0, 0.05);
}
.pjm-flip-back-head {
	margin-bottom: 10px;
	padding-right: 28px;
}
.pjm-flip-back-title {
	margin: 0 0 2px;
	font-size: 15px;
	color: var(--pjm-heading);
	font-weight: 600;
}
.pjm-flip-back-sub {
	margin: 0;
	font-size: 13px;
	color: var(--pjm-text);
	opacity: 0.7;
}
.pjm-flip-clinics {
	display: flex;
	flex-direction: column;
	gap: 5px;
	/* Fylder al resterende højde på bagsiden; knapperne deler pladen ligeligt. */
	flex: 1 1 auto;
	min-height: 0;
}
.pjm-flip-clinics-head { margin: -16px -16px 10px !important; }
.pjm-flip-clinic {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 12px;
	background: #fff;
	border: 1px solid var(--pjm-card-border);
	border-radius: 6px;
	cursor: pointer;
	text-align: left;
	font: inherit;
	color: var(--pjm-text);
	transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	/* Hver knap er MINDST 56px og aldrig lavere end sit indhold (flex-basis auto -> teksten
	   bestemmer; basis 0 lod knapperne skrumpe under indholdet saa adresser vaeltede ud).
	   Er der ekstra hoejde paa bagsiden, deler knapperne den stadig (flex-grow). */
	flex: 1 1 auto;
	min-height: 56px;
	height: auto;
}
.pjm-flip-clinic:hover,
.pjm-flip-clinic:focus {
	border-color: var(--pjm-primary);
	transform: translateY(-1px);
	box-shadow: 0 3px 8px rgba(0,0,0,0.05);
}
.pjm-flip-clinic__icon {
	flex-shrink: 0;
	width: 30px; height: 30px;
	display: flex; align-items: center; justify-content: center;
	background: color-mix(in srgb, var(--pjm-primary) 12%, transparent);
	color: var(--pjm-primary);
	border-radius: 50%;
}
.pjm-flip-clinic__text {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
}
.pjm-flip-clinic__name {
	font-size: 14px;
	font-weight: 600;
	color: var(--pjm-heading);
	line-height: 1.3;
	overflow-wrap: break-word;
	word-break: break-word;
}
.pjm-flip-clinic__meta {
	font-size: 12px;
	color: var(--pjm-text);
	opacity: 0.7;
	margin-top: 1px;
	overflow-wrap: break-word;
	word-break: break-word;
}
.pjm-flip-clinic__arrow {
	flex-shrink: 0;
	color: var(--pjm-primary);
	font-weight: 600;
}
.pjm-booking-clinic {
	color: var(--pjm-primary);
	font-weight: 500;
}

/* Mobil: kompaktere bagside for at passe i smal grid-kolonne. */
@media (max-width: 600px) {
	.pjm-flip-face--back { padding: 12px 10px 10px; }
	.pjm-flip-back-image { width: calc(100% + 20px); margin: -12px -10px 10px; }
	.pjm-flip-addon-image { width: calc(100% + 20px); margin: 0 -10px 12px; }
	.pjm-flip-addon-panel { margin: -12px -10px -10px; }
	.pjm-addon-body { padding: 14px 14px 70px; }
	.pjm-addon-btn { padding: 21px 14px; }
	.pjm-flip-back-btn { top: 2px; right: 4px; font-size: 22px; padding: 2px 6px; }
	.pjm-flip-back-head { margin-bottom: 8px; padding-right: 24px; }
	.pjm-flip-back-title { font-size: 14px; }
	.pjm-flip-back-sub { font-size: 11px; line-height: 1.25; }
	.pjm-flip-clinics { gap: 6px; }
	.pjm-flip-clinic { padding: 8px 10px; gap: 8px; }
	.pjm-flip-clinic__icon { width: 24px; height: 24px; }
	.pjm-flip-clinic__icon svg { width: 13px; height: 13px; }
	.pjm-flip-clinic__name { font-size: 13px; }
	.pjm-flip-clinic__meta { font-size: 11px; }
	.pjm-flip-clinic__arrow { font-size: 14px; }
}

/* Helt små skærme: skjul adresse-meta og pile for at give plads til navnet. */
@media (max-width: 420px) {
	.pjm-flip-clinic__meta { display: none; }
	.pjm-flip-clinic__arrow { display: none; }
	.pjm-flip-clinic { padding: 10px 12px; }
}

/* Reduced motion: spring flip-animation over. */
@media (prefers-reduced-motion: reduce) {
	.pjm-flip-card__inner { transition: none; }
}

/* ===== Native booking flow (v1.58 — mode="native") ===== */
.pjm-native-clinic-badge { display:inline-block; background:#6b0a2a; color:#fff; font-size:14px; font-weight:700; padding:4px 12px; border-radius:12px; margin-right:8px; vertical-align:middle; text-transform:uppercase; letter-spacing:.4px; }
.pjm-flip-clinic--all { background:#fef5fa !important; border-color:#F7A5C9 !important; }
.pjm-flip-clinic--all .pjm-flip-clinic__icon { color:#d36ca0 !important; }
.pjm-flip-clinic--all .pjm-flip-clinic__name { color:#a83d75 !important; }

/* Flip-klinik: "Vis"/"To" + navn på to linjer + tydelig adresse (v1.62.26) */
.pjm-flip-clinic__verb { display:block; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:#5b6575; line-height:1.2; }
.pjm-flip-clinic__name { display:block; font-weight:700; }
.pjm-flip-clinic__meta { display:block; font-size:13px; font-weight:700; color:#444; margin-top:2px; }
.pjm-flip-clinic--all .pjm-flip-clinic__verb { color:#d36ca0; }

.pjm-flow-lang-bar { display:flex; justify-content:flex-end; gap:6px; margin:0 0 10px; }
.pjm-flow-lang-btn { background:#fff; border:1px solid #d4cfc1; color:#1f4e79; padding:6px 14px; border-radius:999px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; transition:all .15s; }
.pjm-flow-lang-btn.is-active { background:#1f4e79; color:#fff; border-color:#1f4e79; }
.pjm-flow-lang-btn:hover:not(.is-active) { background:#eef4fb; }

.pjm-native-lang-bar { display:flex; justify-content:flex-end; gap:6px; margin-bottom:6px; }
.pjm-native-lang-btn { background:#fff; border:1px solid #d4cfc1; color:#1f4e79; padding:5px 12px; border-radius:999px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; }
.pjm-native-lang-btn.is-active { background:#1f4e79; color:#fff; border-color:#1f4e79; }
.pjm-native-lang-btn:hover { background:#eef4fb; }
.pjm-native-lang-btn.is-active:hover { background:#1f4e79; }

.pjm-native-wrap { font-family: inherit; color: #222; touch-action: pan-y; max-width:100%; overflow-x:hidden; }
.pjm-native-wrap * { max-width:100%; }
.pjm-native-auth-box h3, .pjm-native-auth-box p { overflow-wrap:anywhere; }
.pjm-native-week-head { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:12px 16px; background:var(--pjm-card-bg,#f7f5ef); border:1px solid var(--pjm-card-border,#e5e1d6); border-radius:8px 8px 0 0; font-weight:600; color:var(--pjm-primary,#1f4e79); position:sticky; top:0; z-index:5; }
.pjm-native-week-nav { background:#fff; border:1px solid var(--pjm-card-border,#d4cfc1); color:var(--pjm-primary,#1f4e79); cursor:pointer; font-size:13px; padding:8px 14px; font-family:inherit; border-radius:6px; min-width:44px; min-height:40px; font-weight:700; line-height:1; }
.pjm-native-week-nav:hover { background:var(--pjm-primary,#1f4e79); color:#fff; border-color:var(--pjm-primary,#1f4e79); }
.pjm-native-week-mobile-nav { display:none; }
@media (max-width:680px) {
	.pjm-native-wrap { font-size:13px; } /* D9: intet læsbart under 13px på mobil */
	.pjm-native-week-head { padding:8px 6px; font-size:12px; gap:4px; }
	.pjm-native-week-nav-text { display:none; }
	.pjm-native-week-nav { font-size:20px; padding:4px 10px; min-width:36px; }
	.pjm-native-week-mobile-nav { display:flex; gap:8px; padding:8px 0; }
	/* 10/8: dobbelt uge-navigation på mobil — head-pilene væk, mobile-nav har klarere labels */
	.pjm-native-week-head .pjm-native-week-nav { display:none; }
	/* 10/8: sprogflagene (absolut, top-right) overlappede opsummeringens første linje på bekræft */
	.pjm-native-summary { margin-top: 38px; }
	.pjm-native-week-mobile-nav button { flex:1; background:#fff; border:1px solid var(--pjm-card-border,#d4cfc1); color:var(--pjm-primary,#1f4e79); border-radius:6px; padding:10px; font-weight:600; font-family:inherit; font-size:13px; min-height:44px; cursor:pointer; }
	.pjm-native-week-mobile-nav button:active { background:var(--pjm-primary,#1f4e79); color:#fff; }
	.pjm-native-pract-head { padding:8px 8px; font-size:12px; gap:6px; }
	.pjm-native-pract-head img, .pjm-native-avatar { width:30px; height:30px; }
	.pjm-native-week-grid { gap:0; }
	.pjm-native-day { padding:4px 1px; min-height:50px; border-right:0; box-sizing:border-box; min-width:0; overflow:hidden; }
	.pjm-native-day-head { font-size:13px; margin-bottom:3px; }
	.pjm-native-day-head .num { font-size:14px; }
	.pjm-native-slot { font-size:13px; padding:7px 1px; margin:2px 0; border-radius:3px; min-height:30px; }
	.pjm-native-empty-day { font-size:13px; padding:10px 0; }
}
@media (max-width:380px) {
	.pjm-native-day { padding:3px 0; }
	.pjm-native-day-head { font-size:13px; }
	.pjm-native-day-head .num { font-size:13px; }
	.pjm-native-slot { font-size:13px; padding:5px 0; }
}
.pjm-native-pract { border:1px solid var(--pjm-card-border,#e5e1d6); border-top:0; }
.pjm-native-pract-head { display:flex; align-items:center; gap:10px; padding:10px 14px; background:var(--pjm-card-bg,#f7f5ef); border-bottom:1px solid var(--pjm-card-border,#e5e1d6); font-weight:600; color:var(--pjm-primary,#1f4e79); font-size:14px; }
.pjm-native-pract-head img, .pjm-native-avatar { width:42px; height:42px; border-radius:50%; object-fit:cover; }
.pjm-native-avatar { display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:14px; }
.pjm-native-week-grid { display:grid; grid-template-columns:repeat(7, 1fr); }
.pjm-native-day { padding:10px 6px; border-right:1px solid #f0ebe1; min-height:80px; background:#fff; }
.pjm-native-day:last-child { border-right:0; }
.pjm-native-day-head { text-align:center; font-size:11px; color:#52667a; font-weight:600; margin-bottom:6px; line-height:1.2; } /* 5,93:1 — #888 målte 3,54:1 */
.pjm-native-day-head .num { display:block; color:#222; font-size:14px; font-weight:700; }
.pjm-native-day-head.today .num { color:var(--pjm-primary,#1f4e79); }
.pjm-native-slot { display:block; width:100%; background:#54755d; color:#fff; border:0; padding:6px 4px; border-radius:4px; font-size:12px; cursor:pointer; margin:3px 0; font-weight:600; font-family:inherit; }
.pjm-native-slot:hover { background:#47624e; }
.pjm-native-empty-day { color:#9aa4ae; text-align:center; font-size:13px; padding:18px 0; }
.pjm-native-no-slots { padding:30px; text-align:center; color:#5b6575; background:#fff; border:1px solid var(--pjm-card-border,#e5e1d6); border-top:0; border-radius:0 0 8px 8px; }

.pjm-native-summary { background:#f7f8fa; border-left:4px solid var(--pjm-primary,#1f4e79); padding:14px 16px; border-radius:8px; margin-bottom:18px; font-size:14px; line-height:1.7; }
.pjm-native-summary b { color:#5b6575; font-weight:500; min-width:90px; display:inline-block; }
.pjm-native-summary .muted { color:#5b6575; }
.pjm-native-timer-bar { padding:10px 14px; background:#e6f0fa; border-left:3px solid var(--pjm-primary,#1f4e79); color:#1a3a5a; border-radius:6px; font-size:13px; margin-bottom:14px; }
.pjm-native-auth { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }
@media (max-width:680px) { .pjm-native-auth { grid-template-columns:1fr; } }
.pjm-native-auth-box { background:#fff; border:1px solid var(--pjm-card-border,#e5e1d6); border-radius:8px; padding:18px; }
.pjm-native-auth-box h3 { margin:0 0 10px; font-size:16px; color:var(--pjm-primary,#1f4e79); }
.pjm-native-field { margin:8px 0; }
.pjm-native-field label { display:block; font-size:13px; font-weight:600; margin-bottom:3px; color:#444; }
.pjm-native-field input { width:100%; padding:11px 12px; border:1px solid color-mix(in srgb, var(--pjm-primary,#1f4e79) 35%, #fff); border-radius:9px; font-size:16px; box-sizing:border-box; font-family:inherit; }
.pjm-native-field input[type=checkbox], .pjm-native-field input[type=radio] { width:auto; flex:0 0 auto; padding:0; margin:0; }
.pjm-native-btn { background:#fff; color:var(--pjm-primary,#1f4e79); border:1px solid var(--pjm-primary,#1f4e79); padding:10px 18px; border-radius:6px; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; }
.pjm-native-btn:hover { opacity:.9; }
.pjm-native-btn:disabled { opacity:.5; cursor:not-allowed; }
.pjm-native-btn-primary { background:var(--pjm-button-bg,#1f4e79); color:#fff; border-color:var(--pjm-button-bg,#1f4e79); }
/* 16/8: temaets link-farve (a-regler m. højere specificitet) slog knap-teksten som <a> —
   element+dobbeltklasse vinder, så CTA'en aldrig ender som mørk tekst på mørk bund. */
a.pjm-native-btn { color:var(--pjm-primary,#1f4e79); }
/* Temaet (CDN-bundtet, m. !important på a-farver) kunne stadig slå os — CTA'ens læsbarhed
   er vigtigere end kaskade-pænhed her: hvid tekst på udfyldt knap, altid. */
a.pjm-native-btn.pjm-native-btn-primary { color:#fff !important; }
.pjm-native-btn-primary:hover { filter:brightness(.92); opacity:1; }
.pjm-native-error { background:#fee; border-left:3px solid #b32d2e; color:#7c1d1d; padding:8px 12px; border-radius:5px; font-size:13px; margin:6px 0; }
.pjm-native-success { padding:20px; background:#e9f7e9; border:1px solid #c5e4c5; border-radius:8px; }
.pjm-native-success h3 { margin:0 0 10px; color:#0f7a3e; }

/* Fase 2: uge-vindue (graviditetsalder) — passiv badge på katalog-kort */
.pjm-service-gawin{display:inline-block;margin:0 0 10px;font-size:12px;font-weight:600;color:#8a5a72;background:#fbeef4;border:1px solid #efd7e4;border-radius:999px;padding:2px 10px;line-height:1.5}

/* Fase 3: beregner-flip (kortet flipper til mini-terminsberegner) */
.pjm-gacalc-flip{ -webkit-perspective:1400px; perspective:1400px; position:relative; display:block; height:100%; box-sizing:border-box; }
.pjm-gacalc-flip__inner{ position:relative; -webkit-transform-style:preserve-3d; transform-style:preserve-3d; -webkit-transition:-webkit-transform .55s cubic-bezier(.2,.7,.2,1); transition:transform .55s cubic-bezier(.2,.7,.2,1); height:100%; min-height:100%; will-change:transform; }
.pjm-gacalc-flip.is-gaflipped .pjm-gacalc-flip__inner{ -webkit-transform:rotateY(180deg); transform:rotateY(180deg); }
.pjm-gacalc-face{ -webkit-backface-visibility:hidden; backface-visibility:hidden; box-sizing:border-box; }
.pjm-gacalc-face--front{ position:relative; z-index:2; height:100%; }
.pjm-gacalc-face--back{ position:absolute; top:0; left:0; width:100%; height:100%; -webkit-transform:rotateY(180deg); transform:rotateY(180deg); background:var(--pjm-bg,#fff); border:1px solid var(--pjm-primary,#d98cae); border-radius:var(--pjm-radius,10px); padding:16px; display:flex; flex-direction:column; gap:11px; pointer-events:none; overflow:auto; }
.pjm-gacalc-flip.is-gaflipped .pjm-gacalc-face--back{ pointer-events:auto; }
/* Native kontrol-farve (radio-prik + dato-picker highlight) = samme CTA-blå. */
.pjm-gacalc-face--back input, .pjm-gacalc-methods input{ accent-color:var(--pjm-button-bg,#1f4e79); }
/* Badge overlejret nederst på billedet. */
.pjm-service-imgwrap{ position:relative; }
/* 🚨 6/8-2026: billedet maa ikke selv vaere klik-maal.
   AT: "problemet er klik paa billede eller kortet paa kortet som saa ikke fungerer,
   men klik paa book virker." Hele kortet er ét klik-maal ([data-pick-service] sidder
   paa .pjm-service-card), men et klik paa billedet rammer <img> foerst. Der findes
   allerede en tilsvarende vagt for Leaflet-kortet i booking.js (~linje 3199); billedet
   havde ingen. pointer-events:none sender klikket videre til kortets egen knap, saa
   alle tre veje ind — billede, kortkrop og Book — foelger nu SAMME kodesti.
   Verificeret paa iPhone 13-profil i WebKit: alle tre giver 3 klinikvalg. */
.pjm-service-image,
.pjm-v2-thumb,
.pjm-service-imgwrap { pointer-events: none; }
.pjm-service-imgwrap .pjm-service-gawin{ position:absolute; left:12px; bottom:10px; margin:0; box-shadow:0 2px 8px rgba(0,0,0,.18); }
/* Sticky tema-header må ikke klippe trin-overskrifter ved scrollIntoView (kalender-trinnet m.fl.) */
.pjm-booking-root, .pjm-flow, .pjm-flip-card, .pjm-iframe-wrap { scroll-margin-top: 64px; }
@media (min-width: 601px) { .pjm-booking-root, .pjm-flow, .pjm-flip-card, .pjm-iframe-wrap { scroll-margin-top: 120px; } }
/* 12/8 (AT): tekstlinket fra 10/8 kostede for meget brug (ses i beregner-statistikken) —
   nu LYSERØD pille: synlig uden at konkurrere med Book-CTA'ens bordeaux. */
.pjm-gacalc-trigger{ display:inline-block; margin:0 0 10px 6px; font-size:12.5px; font-weight:700; color:#6b0a2a; background:#fce4ef; border:1px solid #f3c6d6; border-radius:999px; padding:5px 13px; cursor:pointer; vertical-align:top; text-decoration:none; }
.pjm-gacalc-trigger:hover{ background:#f9d3e5; filter:none; opacity:1; }
.pjm-gacalc-close{ position:absolute; top:0; right:0; border:none; background:transparent; font-size:22px; line-height:1; color:#52667a; cursor:pointer; z-index:2; padding:11px 14px; min-width:44px; min-height:44px; }
.pjm-gacalc-head{ font-weight:700; color:#282046; font-size:16px; padding-right:24px; }
.pjm-gacalc-head span{ display:block; font-weight:400; font-size:13px; color:#8a5a72; margin-top:2px; }
.pjm-gacalc-methods{ display:flex; gap:18px; font-size:14px; flex-wrap:wrap; }
.pjm-gacalc-methods label{ display:flex; align-items:center; gap:6px; cursor:pointer; }
.pjm-gacalc-field{ display:flex; flex-direction:column; font-size:13px; color:#555; gap:5px; }
.pjm-gacalc-field input{ padding:10px 12px; border:1px solid #ccc; border-radius:8px; font-size:15px; font-family:inherit; cursor:pointer; }
.pjm-gacalc-field input[type="date"]::-webkit-calendar-picker-indicator{ display:none; }
/* IKKE appearance:none — det skjuler dato-teksten på iOS. Sikr blot konsistent højde/venstre-tekst. */
.pjm-gacalc-field input[type="date"]{ min-height:44px; text-align:left; }
.pjm-gacalc-run{ align-self:stretch; background:var(--pjm-button-bg,#1f4e79); color:#fff; border:none; border-radius:8px; padding:11px 16px; font-weight:700; font-size:15px; cursor:pointer; }
.pjm-gacalc-run:hover{ filter:brightness(0.92); }
.pjm-gacalc-result{ font-size:14px; color:#282046; }
.pjm-gacalc-ok{ background:#fbeef4; border:1px solid #efd7e4; border-radius:8px; padding:12px 14px; line-height:1.6; }
.pjm-gacalc-err{ color:#b3261e; }
.pjm-gacalc-book{ display:block; width:100%; box-sizing:border-box; margin-top:10px; background:var(--pjm-button-bg,#1f4e79); color:#fff; border:none; border-radius:8px; padding:13px 16px; font-weight:700; font-size:15px; cursor:pointer; text-align:center; }
.pjm-gacalc-book:hover{ filter:brightness(0.92); }

/* Fase 3: tider før beregnerens tidligste dato — grå/inaktiv (kan ikke bookes) */
.pjm-native-slot.is-ga-blocked{ opacity:.45; background:#f1f1f1; color:#9a9a9a; border-color:#e3e3e3; cursor:not-allowed; text-decoration:line-through; pointer-events:none; box-shadow:none; }

/* Fase 3: komprimér beregner-panelet på mobil, så hele kortet kan ses */
@media (max-width:640px){
	.pjm-gacalc-face--back{ padding:13px; gap:9px; }
	.pjm-gacalc-head{ font-size:15px; padding-right:26px; }
	.pjm-gacalc-methods{ gap:14px; font-size:13.5px; }
	.pjm-gacalc-field{ font-size:12.5px; gap:4px; }
	.pjm-gacalc-field input{ padding:9px 11px; }
	.pjm-gacalc-field input[type="date"]{ min-height:42px; }
	.pjm-gacalc-run,.pjm-gacalc-book{ padding:11px 14px; font-size:14px; }
	.pjm-gacalc-ok{ padding:10px 12px; line-height:1.5; }
}

/* ---------- App-mode (mobil, Fase 1) — aktiveres af booking.js via body.pjm-app-mode ----------
   Kun paa smaa skaerme og kun naar klassen er sat (PJ's /book-*-sider): tema-header,
   hero, panel-tekst og trin-piller skjules; kompakt top-bjaelke + fremdriftslinje i
   toppen og app-bund-menu i bunden. Desktop og alle andre sider er uroerte. */
@media (max-width: 700px) {
	body.pjm-app-mode header.wp-block-template-part,
	body.pjm-app-mode .pj-master-hero-cover,
	body.pjm-app-mode .pj-booking-panel__top,
	body.pjm-app-mode .pjm-stepper { display: none !important; }
	body.pjm-app-mode { padding-top: 60px !important; padding-bottom: 64px !important; }
	body.pjm-app-mode .pj-booking-overlap-wrap { margin-top: 0 !important; }

	.pjm-app-top {
		position: fixed; top: 0; left: 0; right: 0; z-index: 99990;
		background: #fff; display: flex; align-items: center; gap: 9px;
		padding: 9px 12px 10px; box-shadow: 0 1px 8px rgba(107, 10, 42, .08);
	}
	.pjm-app-back {
		width: 32px; height: 32px; flex: none; border-radius: 999px;
		border: 1px solid #eadde4; background: #fff; color: #6b0a2a;
		font-size: 19px; line-height: 1; cursor: pointer; padding: 0;
	}
	.pjm-app-title {
		flex: 1; min-width: 0; font-weight: 700; font-size: 14px; color: #6b0a2a;
		white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	}
	.pjm-app-trust { flex: none; font-size: 11px; font-weight: 600; color: #6f6067; }
	.pjm-app-trust b { color: #c99700; }
	.pjm-app-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #fdeef5; }
	.pjm-app-progress i {
		display: block; height: 100%; width: 33%; background: #6b0a2a;
		transition: width .35s ease; border-radius: 0 3px 3px 0;
	}
	@media (prefers-reduced-motion: reduce) { .pjm-app-progress i { transition: none; } }

	.pjm-app-tabs {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 99990;
		background: #fff; border-top: 1px solid #eadde4; display: flex;
		padding-bottom: env(safe-area-inset-bottom, 4px); min-height: 56px;
	}
	.pjm-app-tab {
		flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
		gap: 2px; color: #9a8b92; font-size: 9px; font-weight: 600;
		text-decoration: none !important; border-bottom: none !important; box-shadow: none !important;
	}
	.pjm-app-tab svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
	.pjm-app-tab.is-on { color: #6b0a2a; }
	.pjm-app-tab.is-on svg { stroke-width: 2.2; }
}

/* App-mode finpudsning (v3.28.49): mindre stoej over kategorier/ydelser.
   1) "← Tilbage"-pillen skjules — top-bjaelkens pil overtager (og driver widgettens
      egen trin-navigation, se pjmAppChromeEnsure).
   2) Sprogvalg rykkes op paa overskrifts-linjen som kompakte flag-knapper.
   3) Strammere padding i flow-boksen. */
@media (max-width: 700px) {
	body.pjm-app-mode .pjm-back-btn:not(.pjm-back-btn--inline) { display: none !important; }
	body.pjm-app-mode .pjm-flow { position: relative; padding: 14px 12px 22px; }
	body.pjm-app-mode .pjm-flow-lang-bar { position: absolute; top: 14px; right: 12px; margin: 0; z-index: 5; }
	body.pjm-app-mode .pjm-flow-lang-btn { font-size: 0; letter-spacing: 0; gap: 0; padding: 5px 7px; line-height: 0; }
	body.pjm-app-mode .pjm-flow-lang-btn svg { width: 21px; height: 15px; display: block; }
	body.pjm-app-mode .pjm-flow-body .pjm-step-heading:first-child { padding-right: 96px; margin-top: 2px; }
	/* WP admin-bar (kun indloggede): skub top-bjaelken ned saa de ikke overlapper. */
	body.pjm-app-mode.admin-bar .pjm-app-top { top: 46px; }
}

/* App-mode (v3.28.51): instruktions-underoverskrifter ("Vælg en kategori…"/"Klik på en
   ydelse…") og kategori-kortenes beskrivelser er selvforklarende paa mobil — skjules.
   Ydelses-kortenes indhold (.pjm-service-*) roeres IKKE. */
@media (max-width: 700px) {
	body.pjm-app-mode .pjm-step-sub--hint,
	body.pjm-app-mode .pjm-card-meta { display: none !important; }
}

/* App-mode (v3.28.52-54): ALLE undergruppe-bokse ("Vælg scanning"/"NIPT by Life
   Genomics" osv.) skjules paa mobil — brugerens eksplicitte oenske. Foerste forsoeg
   beholdt dem ved flere grupper (scanning har fx genscannings-gruppe), men de skal
   vaek overalt; grid-mellemrummet adskiller grupperne visuelt. Desktop uroert. */
@media (max-width: 700px) {
	body.pjm-app-mode .pjm-service-group-head { display: none !important; }
}

/* ── Sundrejse brand-skin: scoped via data-pjm-brand på mount'en — rører ALDRIG PJ/default.
      Palet fra PJM_Brand-profilen: dyb navy + varm rav, sandfarvede kort (rejse-varme). ── */
.pjm-booking-root[data-pjm-brand="sundrejse"] {
	--pjm-primary: #16324f;
	--pjm-accent: #cf8a2f;
	--pjm-button-bg: #16324f;
	--pjm-chip-bg: #16324f;
	--pjm-card-bg: #f8f4eb;
	--pjm-card-border: #e6dcc8;
	--pjm-heading: #16324f;
	--pjm-radius: 14px;
	/* Samme bredde som resten af booking-oplevelsen (indgangs-siden [pjm_booking_intents] = 1000px)
	   → konsistent centreret kolonne i stedet for fuld sidebredde. */
	max-width: 1000px;
	margin-inline: auto;
}
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-card,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-card {
	transition: box-shadow .18s ease, transform .18s ease;
}
/* Ens korthøjde i grid'et (fx "Andre vacciner") — stræk kortene så bund/knap flugter på tværs af rækken. */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-row,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-subcat-grid,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-grid { align-items: stretch; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-row > .pjm-subcat-block,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-subcat-grid > .pjm-service-card,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-subcat-grid > .pjm-flip-card,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-grid > .pjm-service-card,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-grid > .pjm-flip-card { height: 100%; }
/* Flip-kortets indre lag skal følge den strakte wrapper — ellers slutter den synlige kort-flade
   (border) ved indholdshøjden, og kortene ser ulige høje ud selvom grid'et strækker. */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-grid .pjm-flip-card__inner,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-subcat-grid .pjm-flip-card__inner,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-row .pjm-flip-card__inner,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-explicit .pjm-flip-card__inner { height: 100%; }
/* Flat-grid'et ("Andre vacciner" m.fl.): stræk også flat-card-wrapperen og dens kort,
   så alle kort i rækken får samme højde (manglede — kun de andre grid-typer var dækket). */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-explicit { align-items: stretch; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-card > .pjm-service-card,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-card > .pjm-flip-card { height: 100%; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-card:hover,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flat-card:hover {
	box-shadow: 0 16px 30px -16px rgba(22, 50, 79, .28);
	transform: translateY(-2px);
}
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-cta-button:active,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-native-btn:active {
	transform: scale(.985);
}

/* ═══ v3.67.2: design-løft af SR-booking (agent-review 22/7) — ALT SR-scoped ═══ */
/* 1+7+8b: trin-pills — aktivt trin=navy (guld fejlede 2,9:1), done=navy-tint, inaktiv=hvid m. navy-tal */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-pill--current { background: var(--pjm-primary); color: #fff; font-weight: 600; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-pill--done { background: color-mix(in srgb, var(--pjm-primary) 12%, #fff); color: var(--pjm-primary); }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-pill--done .pjm-step-num { background: var(--pjm-primary); color: #fff; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-pill:not(.pjm-step-pill--done):not(.pjm-step-pill--current) { background: #fff; border: 1px solid var(--pjm-card-border); }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-pill:not(.pjm-step-pill--done):not(.pjm-step-pill--current) .pjm-step-num { background: color-mix(in srgb, var(--pjm-primary) 14%, transparent); color: var(--pjm-primary); }
/* 2: sekundær tekst i navy-slate (som intents .pi-d) i stedet for vasket neutral grå */
.pjm-booking-root[data-pjm-brand="sundrejse"] { --pjm-text-soft: #52667a; }
/* 3: subcat-header = roligt navy-bånd (var sand-på-sand m. stribe) */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-group-head { background: var(--pjm-primary); border-left: 0; border-radius: 10px; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-group-title { color: #fff; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-group-hint { color: rgba(255,255,255,.78); font-style: normal; }
/* 4: pris = kortets vigtigste tal; varighed træder tilbage */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-price { font-size: 15px; font-weight: 700; color: var(--pjm-heading); }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-duration { font-size: 11.5px; }
/* 5: Book tid-CTA med rigtig vægt + pill-form */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-book { padding: 8px 16px; font-size: 14px; border-radius: 999px; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-book:hover { background: color-mix(in srgb, var(--pjm-button-bg) 85%, #000); }
/* 6: Tilbage-knap synlig affordance (var sand-på-sand) */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-back-btn { background: #fff; border: 1px solid color-mix(in srgb, var(--pjm-primary) 32%, #fff); }
/* 8: kort-hover i guld — accenten tilbage i vælgeren (matcher intents-kortene) */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-card:hover { border-color: var(--pjm-accent); }

/* ═ 📱 Mobil v2 (flag: [pjm_booking mobile_v2="1"] el. ?pjm_v2=1): kompakt liste m. fold-ud.
   Kortet genbruges urørt som panel-indhold; flip oversættes til vandret slide. Kun ≤600px. ═ */
@media (max-width: 600px) {
	.pjm-service-grid.pjm-v2-list { display: flex; flex-direction: column; gap: 8px; }
	.pjm-v2-row { background: var(--pjm-bg, #fff); border: 1px solid var(--pjm-card-border, #e3e8ee); border-radius: 12px; overflow: hidden; scroll-margin-top: 12px; }
	.pjm-v2-head { display: flex; align-items: center; gap: 11px; width: 100%; border: 0; background: none; padding: 10px 12px; text-align: left; cursor: pointer; font: inherit; color: inherit; }
	.pjm-v2-thumb { width: 54px; height: 54px; border-radius: 9px; object-fit: cover; flex: 0 0 auto; background: #eef2f5; }
	.pjm-v2-ti { flex: 1; min-width: 0; }
	.pjm-v2-ti b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; line-height: 1.25; font-weight: 700; }
	.pjm-v2-meta { display: flex; gap: 7px; align-items: baseline; margin-top: 3px; }
	.pjm-v2-price { color: var(--pjm-primary, #b97a1e); font-weight: 800; font-size: 13px; white-space: nowrap; }
	.pjm-v2-dur { font-size: 12px; color: #67737f; white-space: nowrap; }
	.pjm-v2-chev { color: #8a949c; transition: transform .2s ease; font-size: 13px; flex: 0 0 auto; }
	.pjm-v2-row.is-open .pjm-v2-chev { transform: rotate(90deg); }
	/* Kategori-rækker (samme udtryk som ydelses-rækkerne, men klik = navigér) */
	.pjm-v2-catrow { background: var(--pjm-bg, #fff); border: 1px solid var(--pjm-card-border, #e3e8ee); border-radius: 12px; }
	/* Kategori-rækker i DOBBELT højde: stort billede + større titel + plads til beskrivelsen */
	/* "Beregn tidligste dag" må ikke konkurrere med Book-CTA'en: outline-stil i v2 */
	body.pjm-v2-page .pjm-gacalc-trigger { color: var(--pjm-button-bg, #1f4e79); background: transparent; }
	/* Åben ydelse scroller til top — lige UNDER den sticky topbjælke (~53px), så hele kortet ses.
	   !important: temaet sætter globalt scroll-margin-top:108px (til dets egen sticky header) og vinder ellers.
	   På indholdssider (uden app-chrome) beholdes temaets 108px, da dets header stadig er synlig dér. */
	body.pjm-v2-app .pjm-v2-row { scroll-margin-top: 60px !important; }
	.pjm-v2-catrow { padding: 12px 14px; }
	.pjm-v2-catrow .pjm-v2-thumb { width: 116px; height: 116px; border-radius: 11px; }
	.pjm-v2-catrow .pjm-v2-ti b { -webkit-line-clamp: 2; font-size: 17px; }
	.pjm-v2-catrow .pjm-v2-meta { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px !important; line-height: 1.35 !important; margin-top: 3px; }
	.pjm-v2-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s cubic-bezier(.22, .9, .36, 1); }
	.pjm-v2-row.is-open .pjm-v2-body { grid-template-rows: 1fr; }
	.pjm-v2-bodyin { overflow: hidden; min-height: 0; padding: 0 10px; }
	.pjm-v2-row.is-open .pjm-v2-bodyin { padding-bottom: 10px; }
	/* 5/8-2026 (AT): den åbne ydelse står ALENE.
	   Før blev de øvrige ydelser stående over og under den udfoldede række, så det læste
	   som "et kort foldede sig ud inde i listen". På desktop løfter kortet sig over listen
	   (z-index 60) — forskellen gjorde mobilen svær at finde ud af.
	   'pjm-v2-solo' sættes af booking.js ved åbning og fjernes ved lukning; listen
	   indeholder udelukkende .pjm-v2-row, så selektoren kan ikke ramme andet.
	   Vej tilbage: tryk på rækkens hoved (chevron peger ned igen) eller browser-tilbage. */
	.pjm-v2-list.pjm-v2-solo > .pjm-v2-row:not(.is-open) { display: none; }
	/* Flere ydelsesgrupper pr. side: naar én ydelse er valgt, skjules ALLE andre
	   grupper og deres overskrifter — ellers staar nabogruppen tilbage. AT 6/8. */
	.pjm-v2-solo-wrap .pjm-service-group:not(.pjm-v2-solo-grp) { display: none; }
	.pjm-v2-solo-wrap .pjm-service-group-head { display: none; }
	.pjm-v2-solo-wrap .pjm-v2-row:not(.is-open) { display: none; }
	/* Kortet i panelet: ingen dobbelt ramme; titel-headeren skjules (titlen står i rækken) */
	.pjm-v2-bodyin .pjm-service-card { border: 0; box-shadow: none; }
	.pjm-v2-bodyin .pjm-service-header { display: none; }
	/* Flip → vandret SLIDE: to paneler side om side; is-flipped glider til klinik/tillæg-trinnet */
	.pjm-v2-bodyin .pjm-flip-card { perspective: none; -webkit-perspective: none; height: auto; overflow: hidden; }
	/* max-width:none er KRITISK: basisreglen har max-width:100%, som ellers presser begge paneler halvt ind side om side */
	.pjm-v2-bodyin .pjm-flip-card__inner { display: flex; align-items: flex-start; width: 200%; max-width: none; height: auto; min-height: 0; transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0); transform-style: flat; -webkit-transform-style: flat; transition: transform .32s cubic-bezier(.22, .9, .36, 1); }
	.pjm-v2-bodyin .pjm-flip-card.is-flipped .pjm-flip-card__inner { transform: translate3d(-50%, 0, 0); -webkit-transform: translate3d(-50%, 0, 0); }
	.pjm-v2-bodyin .pjm-flip-face { backface-visibility: visible; -webkit-backface-visibility: visible; width: 50%; flex: 0 0 50%; max-width: 50%; min-width: 0; box-sizing: border-box; }
	.pjm-v2-bodyin .pjm-flip-face--front { transform: none; -webkit-transform: none; height: auto; -webkit-mask-image: none; }
	/* Efter glidet klapper forsiden sammen (forsinket til slide-slut), så rækkens højde følger BAGSIDENS indhold
	   — ellers beholder rækken forsidens (høje) mål, og klinik-trinnet ser halvtomt/mærkeligt ud på iPhone. */
	.pjm-v2-bodyin .pjm-flip-face--front { transition: height 0s 0s, visibility 0s 0s; }
	.pjm-v2-bodyin .pjm-flip-card.is-flipped .pjm-flip-face--front { visibility: hidden; height: 0; overflow: hidden; transition-delay: .32s, .32s; }
	.pjm-v2-bodyin .pjm-flip-face--back { position: relative; top: auto; left: auto; transform: none; -webkit-transform: none; height: auto; min-height: 0; box-shadow: none !important; border-color: var(--pjm-card-border, #e3e8ee) !important; }
	.pjm-v2-bodyin .pjm-flip-card.is-flipped { z-index: auto; }
	.pjm-v2-bodyin .pjm-flip-card.is-flipped .pjm-flip-face--back { box-shadow: none !important; }
	/* Samme slide-model i kort-grids (kompakt/cards): uden dette forbliver sporet i FRONT-højden,
	   og bagsiden (kort + klinikliste) rager ud af kortet og overlapper de næste kort i gridden. */
	body.pjm-v2-page .pjm-service-grid .pjm-flip-card { perspective: none; -webkit-perspective: none; height: auto; overflow: hidden; }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-card__inner { display: flex; align-items: flex-start; width: 200%; max-width: none; height: auto; min-height: 0; transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0); transform-style: flat; -webkit-transform-style: flat; transition: transform .32s cubic-bezier(.22, .9, .36, 1); }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-card.is-flipped .pjm-flip-card__inner { transform: translate3d(-50%, 0, 0); -webkit-transform: translate3d(-50%, 0, 0); }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-face { backface-visibility: visible; -webkit-backface-visibility: visible; width: 50%; flex: 0 0 50%; max-width: 50%; min-width: 0; box-sizing: border-box; }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-face--front { transform: none; -webkit-transform: none; height: auto; -webkit-mask-image: none; transition: height 0s 0s, visibility 0s 0s; }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-card.is-flipped .pjm-flip-face--front { visibility: hidden; height: 0; overflow: hidden; transition-delay: .32s, .32s; }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-face--back { position: relative; top: auto; left: auto; transform: none; -webkit-transform: none; height: auto; min-height: 0; box-shadow: none !important; border-color: var(--pjm-card-border, #e3e8ee) !important; }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-card.is-flipped { z-index: auto; grid-column: 1 / -1; }
	body.pjm-v2-page .pjm-service-grid .pjm-flip-card.is-flipped .pjm-flip-face--back { box-shadow: none !important; }
	.pjm-v2-bodyin .pjm-gacalc-flip, .pjm-v2-bodyin .pjm-gacalc-flip__inner, .pjm-v2-bodyin .pjm-gacalc-face--front { height: auto; min-height: 0; }
	/* 📱 Sticky topbar + kategori-chips (mockup'ens mobile header) */
	.pjm-v2-topwrap { position: sticky; top: 0; z-index: 40; margin: 0 -2px 10px; background: var(--pjm-button-bg, #1f4e79); border-radius: 0 0 14px 14px; padding: 10px 14px 11px; box-shadow: 0 6px 18px -8px rgba(16, 32, 48, .35); }
	.pjm-v2-topbar { display: flex; align-items: center; gap: 10px; color: #fff; }
	.pjm-v2-topbar b { font-size: 15px; font-weight: 800; letter-spacing: .01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.pjm-v2-backbtn { border: 0; background: rgba(255, 255, 255, .16); color: #fff; width: 32px; height: 32px; border-radius: 9px; font-size: 16px; cursor: pointer; flex: 0 0 auto; line-height: 1; }
	/* Chips ombryder i stedet for at scrolle skjult — ALLE kategorier (også NIPT) skal kunne ses */
	.pjm-v2-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
	.pjm-v2-chip { flex: 0 0 auto; border: 0; background: rgba(255, 255, 255, .14); color: #e4ecf3; font: 600 12px/1 inherit; padding: 7px 12px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
	.pjm-v2-chip.is-on { background: #fff; color: var(--pjm-button-bg, #1f4e79); }
	/* Den store heading + tilbage-knap erstattes af topbaren på små skærme */
	.pjm-v2-svc > .pjm-back-btn, .pjm-v2-svc > .pjm-step-heading, .pjm-v2-svc > .pjm-step-sub { display: none; }
	.pjm-v2-svc .pjm-back-btn--inline { display: none; }
	/* Rækkerne skal lande under den sticky topbar ved auto-scroll */
	.pjm-v2-row { scroll-margin-top: 108px; }
	/* 📇 Kompakt kort-variant: uden hero-billede, 2 linjers tekst + Læs mere, vandret meta-række */
	.pjm-service-grid.pjm-v2c-grid { grid-template-columns: 1fr; gap: 10px; }
	.pjm-v2c-grid .pjm-service-imgwrap { display: none; }
	.pjm-v2c-grid .pjm-service-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 2px; }
	.pjm-v2c-grid .pjm-service-card.is-v2x .pjm-service-desc { display: block; -webkit-line-clamp: unset; overflow: visible; }
	.pjm-v2c-grid .pjm-service-features-list { display: none; }
	.pjm-v2c-grid .pjm-service-card.is-v2x .pjm-service-features-list { display: block; }
	.pjm-v2c-more { display: inline-block; color: var(--pjm-primary, #7a2e46); font-weight: 700; font-size: 12.5px; padding: 2px 0 4px; cursor: pointer; align-self: flex-start; }
	.pjm-v2c-grid .pjm-service-meta { flex-direction: row; align-items: center; justify-content: space-between; }
	/* 🗺 Klinik-kort (fra Venus-finderen): kun synligt i mobil-v2-panelet */
	body.pjm-v2-page .pjm-flip-card .pjm-clinic-map { display: block; height: 220px; border-radius: 10px; overflow: hidden; margin: 2px 0 10px; z-index: 0; position: relative; }
	body.pjm-v2-page .pjm-flip-card .pjm-clinic-mapctl { display: flex; gap: 6px; margin: 2px 0 7px; }
	body.pjm-v2-page .pjm-flip-card .pjm-clinic-mapctl input { flex: 1; min-width: 0; padding: 9px 11px; border: 1px solid var(--pjm-card-border, #ccd4dc); border-radius: 9px; font-size: 14px; }
	body.pjm-v2-page .pjm-flip-card .pjm-clinic-mapctl button { flex: 0 0 auto; width: 42px; border: 1px solid var(--pjm-card-border, #ccd4dc); border-radius: 9px; background: #fff; font-size: 16px; cursor: pointer; }
	.pjm-clinic-km { display: block; font-size: 11.5px; color: var(--pjm-primary, #7a2e46); font-weight: 700; margin-top: 1px; }
	/* Labels som Venus-finderens (vb-maplabel): små hvide skilte m. kort-navn */
	.pjm-maplabel { background: #fff; border: 1px solid #d9c2cd; border-radius: 8px; padding: 2px 7px; font-size: 11px; font-weight: 700; color: #5a3a48; box-shadow: 0 1px 4px rgba(0, 0, 0, .18); white-space: nowrap; }
	.pjm-maplabel::before { display: none; }
	/* Kort-tilstand: kortet ER vælgeren — tekstlisten skjules (viser sig kun som fallback hvis kortet fejler).
	   Undtagelse: når postnr./📍 har sat et udgangspunkt, vises de 2 NÆRMESTE klinikker under kortet m. afstand. */
	/* Skjult MEN tilgængeligt (sr-only-klip i stedet for display:none) — skærmlæser/tastatur kan altid vælge klinik */
	body.pjm-v2-page .pjm-flip-clinics.pjm-map-mode .pjm-flip-clinic { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
	body.pjm-v2-page .pjm-flip-clinics.pjm-map-mode .pjm-flip-clinic:focus-visible { position: static; width: auto; height: auto; margin: 0; padding: 11px 12px; overflow: visible; clip: auto; white-space: normal; }
	body.pjm-v2-page .pjm-flip-clinics.pjm-map-mode.pjm-has-origin .pjm-flip-clinic.pjm-near { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; display: flex; }
	/* "Alle klinikker"-handlingen må ALDRIG forsvinde i kort-tilstand (agent-fund: funktionstab) */
	body.pjm-v2-page .pjm-flip-clinics.pjm-map-mode .pjm-flip-clinic--all { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; display: flex; }
	.pjm-map-hint { font-weight: 400; font-size: 12px; color: #8a949c; }
	.pjm-map-msg { font-size: 12px; color: #b3403f; margin: -2px 0 7px; }
	/* 🧮 Beregn termin/tidligste dag (gacalc): flip → samme vandrette slide som klinik-trinnet */
	.pjm-v2-bodyin .pjm-gacalc-flip { perspective: none; -webkit-perspective: none; height: auto; overflow: hidden; }
	.pjm-v2-bodyin .pjm-gacalc-flip__inner { display: flex; align-items: flex-start; width: 200%; max-width: none; height: auto; min-height: 0; transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0); transform-style: flat; -webkit-transform-style: flat; transition: transform .32s cubic-bezier(.22, .9, .36, 1); }
	.pjm-v2-bodyin .pjm-gacalc-flip.is-gaflipped .pjm-gacalc-flip__inner { transform: translate3d(-50%, 0, 0); -webkit-transform: translate3d(-50%, 0, 0); }
	.pjm-v2-bodyin .pjm-gacalc-face { backface-visibility: visible; -webkit-backface-visibility: visible; width: 50%; flex: 0 0 50%; max-width: 50%; min-width: 0; box-sizing: border-box; }
	.pjm-v2-bodyin .pjm-gacalc-face--front { transition: height 0s 0s, visibility 0s 0s; }
	.pjm-v2-bodyin .pjm-gacalc-flip.is-gaflipped .pjm-gacalc-face--front { visibility: hidden; height: 0; overflow: hidden; transition-delay: .32s, .32s; }
	.pjm-v2-bodyin .pjm-gacalc-face--front { transform: none; -webkit-transform: none; height: auto; }
	.pjm-v2-bodyin .pjm-gacalc-face--back { position: relative; top: auto; left: auto; transform: none; -webkit-transform: none; height: auto; min-height: 0; overflow: visible; }
	@media (prefers-reduced-motion: reduce) {
		.pjm-v2-body, .pjm-v2-chev, .pjm-v2-bodyin .pjm-flip-card__inner, .pjm-v2-bodyin .pjm-gacalc-flip__inner, body.pjm-v2-page .pjm-service-grid .pjm-flip-card__inner { transition: none; }
	}
}

/* 📱 Ren booking-side (body-klassen sættes af widgetten når mobil v2 er aktiv):
   HELE temaets header skjules — widgettens egen ribbon ("‹ Book tid · PraksisJordemoder · ★") ER toppen.
   Sprogvælgeren beholdes; trin-indikator og store overskrifter skjules (ribbonen bærer konteksten). */
@media (max-width: 600px) {
	body.pjm-v2-app header.wp-block-template-part { display: none !important; }
	body.pjm-v2-page .pjm-mr-toggle { display: block; width: calc(100% - 32px); margin: 26px 16px 30px; padding: 13px 15px; border: 1px solid #cfe0d6; background: #f0f4f1; color: #2d6a4f; font: 600 13px/1.2 inherit; border-radius: 10px; text-align: left; cursor: pointer; }
	body.pjm-v2-page .pjm-booking-root { padding-bottom: 22px; }
	body.pjm-v2-page .pjm-flow { padding-top: 6px; }
	body.pjm-v2-page .pjm-v2-topwrap { margin-top: 6px; }
	body.pjm-v2-page .pj-medical-responsible.pjm-mr-slim { display: none; }
	body.pjm-v2-page .pj-medical-responsible.pjm-mr-slim.pjm-mr-open { display: block; }
	body.pjm-v2-page .pjm-stepper,
	body.pjm-v2-page .pjm-flow .pjm-step-heading,
	body.pjm-v2-page .pjm-flow .pjm-step-sub { display: none !important; }
}

/* 🗺 Klinik-kortet findes kun i mobil-v2 — basis: altid skjult (mobil-blokken ovenfor viser det i .pjm-v2-bodyin) */
.pjm-clinic-map, .pjm-clinic-mapctl { display: none; }


/* Fuldskala klinik-vælger på DESKTOP — KUN flag-mounts (JS-gated): klinik-trinnet vises INLINE i
   sidens flow (ydelses-gridden skjules imens) — stort kort øverst, postnr/📍 og klinik-liste i 2 kolonner. */
@media (min-width: 601px) {
	.pjm-deskmap { scroll-margin-top: 120px; background: #fff; border: 1px solid var(--pjm-card-border, #e6d8df); border-radius: 16px; box-shadow: 0 8px 30px rgba(0, 0, 0, .07); padding: 14px 22px 22px; margin: 6px 0 18px; }
	.pjm-deskmap-back { border: 0; background: none; color: var(--pjm-primary, #7a2e46); font-size: 15px; font-weight: 600; cursor: pointer; padding: 6px 0; margin-bottom: 2px; }
	.pjm-deskmap-back:hover { text-decoration: underline; }
	.pjm-deskmap-back { display: block; margin-bottom: 10px; }
	.pjm-deskmap .pjm-flip-clinics-head { margin: 0 0 4px; position: static; }
	.pjm-deskmap .pjm-flip-clinics { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px 10px; }
	.pjm-deskmap .pjm-flip-clinics-head, .pjm-deskmap .pjm-clinic-mapctl, .pjm-deskmap .pjm-clinic-map, .pjm-deskmap .pjm-flip-clinic--all, .pjm-deskmap .pjm-map-msg { grid-column: 1 / -1; }
	.pjm-deskmap .pjm-flip-clinics-head .pjm-service-title { font-size: 20px; }
	.pjm-deskmap .pjm-clinic-map { display: block; height: 48vh; min-height: 340px; border-radius: 12px; overflow: hidden; margin: 2px 0 6px; position: relative; z-index: 0; }
	.pjm-deskmap .pjm-clinic-mapctl { display: flex; gap: 8px; margin: 2px 0 4px; max-width: 400px; }
	.pjm-deskmap .pjm-clinic-mapctl input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--pjm-card-border, #ccd4dc); border-radius: 9px; font-size: 14px; }
	.pjm-deskmap .pjm-clinic-mapctl button { flex: 0 0 auto; width: 44px; border: 1px solid var(--pjm-card-border, #ccd4dc); border-radius: 9px; background: #fff; font-size: 16px; cursor: pointer; }
	.pjm-deskmap .pjm-flip-clinic { width: 100%; }
	.pjm-deskmap .pjm-flip-clinic__verb { display: none; }
}
/* 🖥 Desktop: widgetten skal aldrig løbe i fuld skærmbredde på sider uden indholds-container
   (fx testsider m. blank skabelon). /book-tid/ har allerede en smallere container → ingen effekt dér. */
@media (min-width: 1024px) {
	.pjm-booking-root { max-width: 1180px; margin-left: auto; margin-right: auto; }
}

/* 🖥 Desktop: sprogvælger + trin-pills på SAMME linje (før: to rækker = spildt højde) */
@media (min-width: 601px) {
	.pjm-flow { position: relative; }
	.pjm-flow-lang-bar { position: absolute; top: 28px; right: 0; margin: 0; z-index: 5; } /* 28px = flowets top-padding → flugter m. trin-pills */
	.pjm-stepper { padding-right: 240px; min-height: 40px; }
}

/* ── SR mobil-konsistens (design-review runde 2, 26/7) ───────────────────────
   1) Header beholdes på SR (pjm-v2-app er nu PJ-gated i JS) → sticky kategori-
      bjælke skal ligge UNDER temaets sticky header, ikke bag den. */
body.pjm-v2-page:not(.pjm-v2-app) .pjm-v2-topwrap { top: var(--pjm-header-h, 0px); }
/* 2) Tomme billed-slots (grå firkanter) bærer nul information — skjul helt.
      Element-kvalificeret: <img>-varianten (rigtige billeder) rammes ikke. */
span.pjm-v2-thumb { display: none; }
/* 3) Én sprogvælger-grammatik på SR: diskret tekstlink (kun alternativet vises,
      ingen flag) — samme stil som intents-sektionens .pi-lang. Kun SR-scope. */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-btn.is-active { display: none; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-btn { background: none; border: 0; padding: 2px 4px; font-size: 12.5px; font-weight: 400; color: #6c7686; text-decoration: underline; text-underline-offset: 3px; border-radius: 0; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-btn svg { display: none; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-btn:hover { background: none; color: #16324f; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-bar { justify-content: flex-end; margin-bottom: 2px; }

/* ═══ 31/7 (v4.18.0): SR booking-widget Fase A — widgetten op på planner/intents-v2-niveau
   (agent-audit + spec 31/7). ALT herunder er SR-scoped; fælles fixes (addon-btn, native-tokens,
   fokus, inputs, mobilkalender) ligger i basisreglerne ovenfor som nul/lav-delta. ═══ */
/* Design-indstillingerne injiceres som style-attribut på rooten og bar STALE PJ-æra-værdier på SR
   (button-bg #1f4e79, chip #768a7d, PJ-sand-kort) — style-attr slår klasse-regler, så brand-skindet
   skal vinde med !important. Fandt 31/7 da "Videre til tidsvalg" renderede i PJ-navy på SR. */
.pjm-booking-root[data-pjm-brand="sundrejse"] {
	--pjm-button-bg: #16324f !important;
	--pjm-chip-bg: #16324f !important;
	--pjm-card-bg: #f8f4eb !important;
	--pjm-card-border: #e6dcc8 !important;
}
/* A3: Mulish m. eksplicit vægt (temaets body er 300) + serif-lækagen lukket på alle overskrifter */
.pjm-booking-root[data-pjm-brand="sundrejse"] { font-family: inherit; font-weight: 400; }
.pjm-booking-root[data-pjm-brand="sundrejse"] :is(h3, h4, h5),
.pjm-booking-root[data-pjm-brand="sundrejse"] :is(.pjm-step-heading, .pjm-card-title, .pjm-service-group-title, .pjm-service-title) { font-family: inherit; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-heading { font-size: clamp(21px, 5.5vw, 26px); font-weight: 800; letter-spacing: -.015em; line-height: 1.2; text-wrap: balance; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-sub { font-size: 14.5px; }
/* A4: sprogvalg = hvid pille (plannerens .vxp-langbtn-grammatik — afløser 26/7-tekstlinket) */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-btn { background: #fff; border: 1px solid #c7d0d9; border-radius: 999px; padding: 7px 14px; font-size: 13.5px; font-weight: 600; color: #16324f; text-decoration: none; transition: border-color .18s; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-btn:hover { background: #fff; border-color: #cf8a2f; color: #16324f; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flow-lang-bar { margin-bottom: 8px; }
/* A5: fladehierarki — hvide kort m. navy-alpha-kant + blød navy-skygge; sand reserveres til status/valgt */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-card,
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-card { background: #fff; border-color: rgba(22,50,79,.35); box-shadow: 0 1px 2px rgba(22,50,79,.05), 0 8px 24px rgba(22,50,79,.07); }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-header { background: #fff; border-bottom: 1px solid rgba(22,50,79,.12); }
/* A2: flip-bagsiden som defineret panel — plannerens elevation i stedet for sort 48px-skygge + ring */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-flip-card.is-flipped .pjm-flip-face--back { border: 1px solid rgba(22,50,79,.35); border-radius: var(--pjm-radius); box-shadow: 0 12px 32px rgba(10,30,50,.14); }
@media (max-width: 600px) {
  .pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-person-stepper .pjm-addon-body { padding-bottom: 16px; }
}
/* A6: solo-deep-link (ét kort) skal bære trinnet — centreret, maks 480px, ikke 25 % af et 4-kol-grid */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-service-grid:has(> :only-child),
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-card-grid:has(> :only-child) { grid-template-columns: minmax(0, 480px); justify-content: center; }
/* A7: opsummering + hold-nedtælling ER status → sand-fladen (side-stripen udgår) */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-native-summary { background: #faf3e6; border: 1px solid #d9c08e; border-left-width: 1px; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-native-timer-bar { background: #faf3e6; border: 1px solid #d9c08e; border-left-width: 1px; color: #33506e; }
/* A9: trin-pills i designsprogets grammatik — done = sand m. ✓ (som plannerens wiz-prog) */
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-pill--done { background: #faf3e6; border: 1px solid #d9c08e; color: #33506e; }
.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-step-pill--done .pjm-step-num { background: var(--pjm-primary); color: #fff; }

/* B2 (31/7, v4.19.0): SR mobil-kalender — dage uden tider skjules (kun når ugen HAR mindst én tid,
   ellers ville en tom uge kollapse til ingenting), og de tilbageværende kolonner deler bredden.
   Plannerens dagrække-princip oversat til CSS-only på det eksisterende markup. */
@media (max-width: 680px) {
	.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-native-week-grid:has(.pjm-native-slot) { grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 6px; }
	.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-native-week-grid:has(.pjm-native-slot) .pjm-native-day:has(.pjm-native-empty-day) { display: none; }
	.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-native-week-grid:has(.pjm-native-slot) .pjm-native-day { border: 1px solid var(--pjm-card-border); border-radius: 9px; padding: 6px 4px; }
	.pjm-booking-root[data-pjm-brand="sundrejse"] .pjm-native-slot { min-height: 38px; }
}
/* B4: sticky-reminderen lever på <body> (ingen brand-vars) — SR-skin via brand-klasse fra JS */
.pjm-sticky-reminder.pjm-sticky--sundrejse { background: #16324f; }
.pjm-sticky-reminder.pjm-sticky--sundrejse .pjm-sticky-reminder-text strong { color: #eec27f; }

/* ═══ 6/8-2026 NØDRETTELSE: vendekortet er slået fra ═══
   AT: "KLIK PÅ KORTET SLIDER DET TIL VENSTRE OG ERSTATTER MED ET HVIDT KORT.
   VORES BOOKING ER NEDE."

   Kortet vendte ved at glide indersiden translateX(-342px) og vise en bagside,
   der er absolut placeret med height:100% af forsiden. På AT's telefon endte
   bagsiden hvid. Reproduceret aldrig i Chrome eller WebKit — seks iPhone-profiler,
   begge motorer, dansk og engelsk gav korrekt visning. Derfor er maskineriet
   fjernet i stedet for at blive justeret videre: ingen transform, ingen 3D-kontekst,
   ingen absolut placering, ingen højde der skal måles efter en animation.

   Tilbage står den simple udgave: skjul forsiden, vis bagsiden i normalt flow.
   Verificeret på iPhone 13/WebKit for ALLE TRE veje ind (billede, kortkrop,
   Book-knap): bagsiden 370 px høj, 3 klinikvalg, transform: none.

   ⚠️ Dette fjerner vende-animationen med vilje. Skal den tilbage, så byg den op
   igen FRA BUNDEN og test alle tre klik-mål på en rigtig telefon — ikke i en
   emulator. Emulatoren viste grønt hele vejen, mens bookingen var nede. */
.pjm-flip-card { perspective: none !important; height: auto !important; }
.pjm-flip-card__inner {
	transform: none !important; -webkit-transform: none !important;
	transition: none !important; transform-style: flat !important;
	height: auto !important; min-height: 0 !important;
}
.pjm-flip-face {
	backface-visibility: visible !important; -webkit-backface-visibility: visible !important;
	transform: none !important; -webkit-transform: none !important;
}
.pjm-flip-face--back {
	position: relative !important; top: auto !important; left: auto !important;
	height: auto !important; min-height: 0 !important; overflow: visible !important;
	display: none !important;
}
.pjm-flip-card.is-flipped .pjm-flip-face--front { display: none !important; }
.pjm-flip-card.is-flipped .pjm-flip-face--back { display: flex !important; }


/* ============ Pakke b (10/8): kompakt bekræft-trin ============ */
.pjm-sum-kompakt { line-height: 1.5; }
.pjm-sum-kompakt .pjm-sum-l1 { font-size: 15.5px; }
.pjm-sum-kompakt .pjm-sum-l2 { font-size: 13.5px; color: var(--pjm-text-soft, #6b6b6b); display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.pjm-sum-ret { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--pjm-primary, #1f4e79); text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.pjm-native-timer-quiet { font-size: 12.5px; color: var(--pjm-text-soft, #6b6b6b); margin: 8px 2px 10px; }
.pjm-native-timer-quiet.is-kritisk { color: #b02e2e; font-weight: 700; }
.pjm-note-toggle-wrap { margin: 2px 0 10px; }
.pjm-note-toggle-wrap a { font-size: 13.5px; font-weight: 600; color: var(--pjm-primary, #1f4e79); text-decoration: underline; text-underline-offset: 2px; }

/* ============ A1 (10/8): kronologisk tidsvisning ============ */
.pjm-agg-first { display: flex; align-items: center; gap: 12px; background: var(--pjm-card-bg, #f7f5ef); border: 1px solid var(--pjm-card-border, #e5e1d6); border-radius: 12px; padding: 12px 14px; margin: 12px 0 4px; font-size: 14px; }
.pjm-agg-first-btn { margin-left: auto; }
.pjm-agg-tools { text-align: right; margin: 8px 0 0; }
.pjm-agg-tools a { font-size: 12.5px; color: var(--pjm-text-soft, #6b6b6b); text-decoration: underline; text-underline-offset: 2px; }
.pjm-agg-day { margin: 16px 0 8px; font-weight: 700; font-size: 14px; }
.pjm-agg-day.today .num::after { content: " · i dag"; font-weight: 600; color: var(--pjm-primary, #1f4e79); }
.pjm-agg-chips { display: flex; flex-wrap: wrap; gap: 8px; }
/* Basereglen .pjm-native-slot er display:block+width:100% (grid-kolonner) — chips SKAL overstyre med samme+ klasse-specificitet */
.pjm-native-slot.pjm-agg-slot, .pjm-agg-chips .pjm-native-slot { display: inline-flex; width: auto; flex: 0 1 auto; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-width: 72px; min-height: 44px; padding: 6px 10px; margin: 0; line-height: 1.15; border-radius: 8px; }
.pjm-slot-clinic { display: block; font-size: 9.5px; font-weight: 700; letter-spacing: .03em; opacity: .85; text-transform: uppercase; }
@media (max-width: 600px) {
	.pjm-agg-first { flex-wrap: wrap; }
	.pjm-agg-first-btn { margin-left: 0; width: 100%; }
}


/* OTP-felter: placeholderen ("Tryk for at hente fra SMS") skal IKKE arve tal-stylingen */
.pjm-otp-input::placeholder { font-size: 13px; letter-spacing: normal; font-family: inherit; color: #9a8a90; opacity: 1; }


/* 11/8 (AT): "Graviditetsscanninger" må ALDRIG orddeles på desktop — 20px var 4px for bred
   til kortet (218 vs 214px målt); 19px passer m. margin. hyphens slås fra (break-word-fallback består). */
@media (min-width: 601px) {
	.pjm-card-title { font-size: 19px; hyphens: manual; }
}


/* 11/8 glimt-fix (AT): på desktop må flip-bagsidens rå klinikliste ALDRIG nå at male før
   deskmap-panelet overtager (60ms-vinduet før init + divert). Skjult fra første paint;
   panelet (og JS-fallbacken i pjmInitClinicMap) gør den synlig igen. */
@media (min-width: 601px) {
	/* NB: body.pjm-v2-page findes IKKE på alle sider — scope til widget-roden i stedet */
	.pjm-flow .pjm-flip-face--back .pjm-flip-clinics:has(.pjm-clinic-map),
	.pjm-booking-root .pjm-flip-face--back .pjm-flip-clinics:has(.pjm-clinic-map) { visibility: hidden; }
	.pjm-deskmap .pjm-flip-clinics { visibility: visible !important; }
}

/* ── Reserveret-skærm v2 (eksperiment 14/8, gated: /venus-test/ el. ?pjm_res2=1) ── */
.pjm-res2-resv { display: flex; align-items: center; gap: 8px; background: #eef7f0; border: 1px solid #cfe8d6; border-radius: 10px; padding: 11px 13px; font-size: 13.5px; color: #0f7a3e; font-weight: 700; }
.pjm-res2-ur { margin-left: auto; display: flex; align-items: baseline; gap: 5px; background: #0f7a3e; color: #fff; border-radius: 999px; padding: 4px 12px; font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: .03em; white-space: nowrap; }
.pjm-res2-ur small { font-size: 10.5px; font-weight: 600; opacity: .85; }
/* 16/8: mørkere tekst på den gule advarselstilstand — testbruger kunne ikke læse den
   ("sort tekst i brun boks"). #6b4a00 på #fdf3d8 ≈ 7:1 kontrast mod før ~4,4:1. */
.pjm-res2-resv.pjm-res2-gul { background: #fdf3d8; border-color: #e8d391; color: #6b4a00; }
.pjm-res2-resv.pjm-res2-gul .pjm-res2-ur { background: #6b4a00; }
.pjm-res2-skjul { display: none; }
