/**
 * PDR Vakantie Pop-up styles.
 * White panel, dark-blue overlay, light-blue accents. No drop shadow on the modal.
 * Text styling matches the white sections of pdr-eindhoven.nl (Open Sans, #212529).
 */

:root {
	--pdr-vp-navy: #0b0a4a;      /* dark blue: titles */
	--pdr-vp-indigo: #0f0083;    /* logo indigo */
	--pdr-vp-blue: #005aee;      /* light blue: CTA / accent */
	--pdr-vp-blue-hover: #0048c4;
	--pdr-vp-text: #212529;      /* body text */
	--pdr-vp-muted: #5a5f6a;
	--pdr-vp-border: #d7dbe2;
	--pdr-vp-field: #ffffff;
	--pdr-vp-overlay: rgba(11, 10, 74, 0.85);
	--pdr-vp-font: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.pdr-vp-root { font-family: var(--pdr-vp-font); }
.pdr-vp-root * { box-sizing: border-box; }

/* Defensive reset: some themes add margins/sizing to all <svg>. Keep the
   popup's own icons (close cross, bubble icon, check) neutral so they stay
   centred regardless of the active theme. */
.pdr-vp-root svg {
	margin: 0;
	padding: 0;
	vertical-align: middle;
	max-width: none;
}

/* Dark-blue overlay over the website */
.pdr-vp-overlay {
	position: fixed;
	inset: 0;
	z-index: 999998;
	display: none;
	background: var(--pdr-vp-overlay);
}

/* White modal, centered, NO drop shadow */
.pdr-vp-modal {
	position: fixed;
	z-index: 999999;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: min(440px, calc(100vw - 32px));
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	display: none;
	background: #ffffff;
	color: var(--pdr-vp-text);
	border-radius: 14px;
	padding: 34px 30px 28px;
	text-align: center;
	line-height: 1.55;
	transform-origin: bottom center;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease;
}

/* Expanded state: overlay + modal visible */
.pdr-vp-root.is-expanded .pdr-vp-overlay { display: block; animation: pdr-vp-fade 0.2s ease; }
.pdr-vp-root.is-expanded .pdr-vp-modal { display: block; animation: pdr-vp-pop 0.24s cubic-bezier(0.2, 0.9, 0.3, 1.15); }

/* Collapsing: the modal shrinks toward the bottom bar,
   visually connecting the popup with the "Aanmelden vakantiewachtlijst" bar. */
.pdr-vp-root.is-collapsing .pdr-vp-overlay { opacity: 0; transition: opacity 0.4s ease; }
.pdr-vp-root.is-collapsing .pdr-vp-modal {
	transform: translate(-50%, calc(-50% + 46vh)) scale(0.1);
	opacity: 0;
	pointer-events: none;
}

@keyframes pdr-vp-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pdr-vp-pop {
	from { transform: translate(-50%, -46%); opacity: 0; }
	to   { transform: translate(-50%, -50%); opacity: 1; }
}

/* Close button */
.pdr-vp-close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: #f0f1f4;
	color: var(--pdr-vp-navy);
	font-size: 20px;
	line-height: 1;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.15s ease;
}
.pdr-vp-close:hover { background: #e2e4ea; }

/* Logo (SVG wordmark on white) */
.pdr-vp-logo {
	width: 168px;
	max-width: 70%;
	height: auto;
	display: block;
	margin: 0 auto 20px;
}
.pdr-vp-root.pdr-vp-show-confirm .pdr-vp-logo { display: none; }

/* Title / subtitle */
.pdr-vp-title {
	font-size: 22px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 8px;
	color: var(--pdr-vp-navy);
}
.pdr-vp-subtitle {
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 18px;
	color: var(--pdr-vp-blue);
}
.pdr-vp-lead {
	font-size: 15px;
	color: var(--pdr-vp-muted);
	margin: 0 0 18px;
}
.pdr-vp-subscribed {
	font-size: 15px;
	font-weight: 600;
	color: var(--pdr-vp-navy);
	margin: 0 0 22px;
}

/* Form */
.pdr-vp-form { margin: 0; text-align: left; }

.pdr-vp-field { display: block; margin: 0 0 12px; }
.pdr-vp-field span {
	display: block;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 5px;
	color: var(--pdr-vp-navy);
}
.pdr-vp-field input {
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	font-family: inherit;
	color: var(--pdr-vp-text);
	background: var(--pdr-vp-field);
	border: 1px solid var(--pdr-vp-border);
	border-radius: 8px;
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pdr-vp-field input:focus {
	border-color: var(--pdr-vp-blue);
	box-shadow: 0 0 0 3px rgba(0, 90, 238, 0.18);
}

/* Buttons */
.pdr-vp-submit {
	width: 100%;
	margin-top: 4px;
	padding: 13px 18px;
	font-size: 15px;
	font-weight: 700;
	font-family: inherit;
	color: #fff;
	background: var(--pdr-vp-blue);
	border: 0;
	border-radius: 5px;
	cursor: pointer;
	transition: background 0.15s ease;
}
.pdr-vp-submit:hover { background: var(--pdr-vp-blue-hover); }
.pdr-vp-submit:disabled { opacity: 0.65; cursor: default; }

/* Ghost button (view B) */
.pdr-vp-btn-ghost {
	padding: 11px 20px;
	font-size: 15px;
	font-weight: 700;
	font-family: inherit;
	color: var(--pdr-vp-blue);
	background: #fff;
	border: 1.5px solid var(--pdr-vp-blue);
	border-radius: 5px;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}
.pdr-vp-btn-ghost:hover { background: var(--pdr-vp-blue); color: #fff; }

/* Small button (confirmation) */
.pdr-vp-btn-small {
	margin-top: 6px;
	padding: 9px 16px;
	font-size: 14px;
	font-weight: 700;
	font-family: inherit;
	color: var(--pdr-vp-blue);
	background: #fff;
	border: 1.5px solid var(--pdr-vp-blue);
	border-radius: 5px;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}
.pdr-vp-btn-small:hover { background: var(--pdr-vp-blue); color: #fff; }

/* Error */
.pdr-vp-error {
	margin: 12px 0 0;
	padding: 10px 12px;
	font-size: 14px;
	color: #a4232f;
	background: #fdecee;
	border: 1px solid #f4c3c9;
	border-radius: 8px;
}

/* Disclaimer */
.pdr-vp-disclaimer {
	margin: 16px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: #8a8f99;
	text-align: center;
}

/* Honeypot: hidden, no layout impact */
.pdr-vp-hp {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	border: 0; overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

/* Confirmation */
.pdr-vp-confirm { padding: 6px 0 2px; }
.pdr-vp-check {
	width: 64px; height: 64px;
	margin: 4px auto 16px;
	border-radius: 50%;
	background: var(--pdr-vp-blue);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pdr-vp-confirm-text {
	font-size: 17px;
	font-weight: 600;
	color: var(--pdr-vp-navy);
	margin: 0 0 6px;
}

/* Collapsed teaser: a full-width blue bar fixed to the bottom of the viewport
   (desktop and mobile). Very high z-index so it stays above sticky site elements. */
.pdr-vp-bubble {
	position: fixed;
	z-index: 2147483000;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	display: none;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 17px 20px;
	padding-bottom: calc(17px + env(safe-area-inset-bottom, 0px));
	background: var(--pdr-vp-blue);
	color: #ffffff;
	border: 0;
	border-radius: 0;
	font-family: var(--pdr-vp-font);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	box-shadow: 0 -3px 16px rgba(11, 10, 74, 0.22);
	transition: background 0.15s ease;
}
.pdr-vp-bubble:hover { background: var(--pdr-vp-blue-hover); }
.pdr-vp-bubble-icon {
	display: inline-flex;
	color: #ffffff;
}
.pdr-vp-root.is-collapsed .pdr-vp-bubble {
	display: flex;
	animation: pdr-vp-bar-in 0.28s cubic-bezier(0.2, 0.9, 0.3, 1.05);
}
@keyframes pdr-vp-bar-in {
	from { transform: translateY(100%); }
	to   { transform: translateY(0); }
}

/* Mobile: tighter modal */
@media (max-width: 600px) {
	.pdr-vp-modal { padding: 30px 20px 22px; border-radius: 12px; }
	.pdr-vp-title { font-size: 20px; }
	.pdr-vp-bubble { font-size: 15px; }
}
