/**
 * Royal Pine Wizard - front-end styles.
 *
 * Every rule is scoped under .rpw-wizard and the interactive elements are
 * appearance-reset with defensive !important on the properties host themes
 * most often override (background, colour, border, box-shadow, appearance), so
 * the wizard looks identical on any theme. This file is inlined at the
 * shortcode location to avoid any flash of unstyled content.
 */

@font-face {
	font-family: "Proxima Nova ExCn";
	src: url("../fonts/ProximaNovaExCn-Semibold.ttf") format("truetype");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

.rpw-wizard {
	--rpw-accent: #F1AB17;
	--rpw-on: #000;
	--rpw-ink: #111;
	--rpw-body: #3A3A3A;
	--rpw-muted: #888;
	--rpw-border: #E2E2E0;
	--rpw-surface: #ffffff;
	--rpw-bg: #ffffff;
	--rpw-control-h: calc(54px * var(--rpw-scale, 1));
	--rpw-accent-dim: color-mix(in srgb, var(--rpw-accent) 7%, transparent);
	--rpw-accent-mid: color-mix(in srgb, var(--rpw-accent) 28%, transparent);
	--rpw-fig: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--rpw-bar: "Proxima Nova ExCn", "Barlow Condensed", var(--rpw-fig);
	--rpw-bask: "Libre Baskerville", Georgia, serif;

	font-family: var(--rpw-fig);
	color: var(--rpw-ink);
	background: var(--rpw-bg);
	max-width: 680px;
	margin: 0 auto;
	padding: 8px 0 24px;
	position: relative;
	box-sizing: border-box;
	text-align: left;
}
.rpw-wizard *,
.rpw-wizard *::before,
.rpw-wizard *::after { box-sizing: border-box; }

@supports not (color: color-mix(in srgb, red 50%, blue)) {
	.rpw-wizard { --rpw-accent-dim: rgba(241, 171, 23, 0.07); --rpw-accent-mid: rgba(241, 171, 23, 0.28); }
}

/* Light text scheme: for placing the form over a dark background/footer. Light
   text plus translucent borders/inputs; the accent and its tints are kept. */
.rpw-wizard.rpw-scheme-light { --rpw-ink:#ffffff; --rpw-body:#e9e9e9; --rpw-muted:#b6b6b6; --rpw-border:rgba(255,255,255,.28); --rpw-surface:rgba(255,255,255,.08); }

/* Reset theme bleed on the elements we own */
.rpw-wizard h1,
.rpw-wizard h2,
.rpw-wizard p,
.rpw-wizard label,
.rpw-wizard ul,
.rpw-wizard li { margin: 0; padding: 0; border: 0; background: none; color: inherit; }
.rpw-wizard button,
.rpw-wizard input,
.rpw-wizard textarea {
	-webkit-appearance: none;
	appearance: none;
	font-family: var(--rpw-fig);
	box-shadow: none;
	margin: 0;
}

.rpw-wizard .rpw-progress { height: 2px; background: var(--rpw-border); border-radius: 2px; margin: 0 0 36px; overflow: hidden; }
.rpw-wizard .rpw-progress-fill { height: 100%; width: 0; background: var(--rpw-accent); transition: width .5s cubic-bezier(.16, 1, .3, 1); }

.rpw-wizard .rpw-step { display: none; }
.rpw-wizard .rpw-step.rpw-active { display: block; animation: rpw-in .5s cubic-bezier(.16, 1, .3, 1); }
@keyframes rpw-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rpw-wizard .rpw-step.rpw-active { animation: none; } }

.rpw-wizard .rpw-eyebrow {
	font-family: var(--rpw-bar) !important;
	font-weight: 600;
	font-size: calc((.72rem) * var(--rpw-scale, 1));
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--rpw-accent) !important;
	margin: 0 0 18px !important;
	display: flex;
	align-items: center;
	gap: 14px;
}
.rpw-wizard .rpw-eyebrow::before { content: ""; width: 28px; height: 1.5px; background: var(--rpw-accent); flex-shrink: 0; }

.rpw-wizard .rpw-headline {
	font-family: var(--rpw-bar) !important;
	font-weight: 600;
	font-size: calc((clamp(2rem, 5vw, 3.2rem)) * var(--rpw-scale, 1)) !important;
	line-height: 1.05 !important;
	text-transform: uppercase;
	color: var(--rpw-ink) !important;
	margin: 0 0 18px !important;
}
.rpw-wizard .rpw-sub { font-size: calc((1rem) * var(--rpw-scale, 1)); font-weight: 300; line-height: 1.7; color: var(--rpw-body); margin: 0 0 28px; max-width: 520px; }
.rpw-wizard .rpw-question { font-family: var(--rpw-bask) !important; font-style: italic; font-size: calc((clamp(1.1rem, 2.2vw, 1.35rem)) * var(--rpw-scale, 1)); line-height: 1.6; color: var(--rpw-body); margin: 0 0 32px; }
.rpw-wizard .rpw-sub-label { font-family: var(--rpw-bask) !important; font-style: italic; font-size: calc((1rem) * var(--rpw-scale, 1)); color: var(--rpw-body); margin: 0 0 16px; }

.rpw-wizard .rpw-field { display: flex; flex-direction: column; gap: 7px; margin: 0 0 18px; }
.rpw-wizard .rpw-field label { font-family: var(--rpw-fig); font-size: calc((.72rem) * var(--rpw-scale, 1)); letter-spacing: .1em; text-transform: uppercase; color: var(--rpw-muted); font-weight: 600; }
.rpw-wizard .rpw-req { color: var(--rpw-accent); }
.rpw-wizard .rpw-opt { color: var(--rpw-muted); font-weight: 300; letter-spacing: 0; text-transform: none; }
.rpw-wizard .rpw-input {
	width: 100%;
	font-family: var(--rpw-fig);
	font-size: calc((1rem) * var(--rpw-scale, 1));
	color: var(--rpw-ink) !important;
	background-color: var(--rpw-surface) !important;
	background-image: none !important;
	border: 1.5px solid var(--rpw-border) !important;
	border-radius: 8px !important;
	padding: 14px 16px;
	outline: none;
	box-shadow: none !important;
	transition: border-color .25s, box-shadow .25s;
}
.rpw-wizard .rpw-input:focus { border-color: var(--rpw-accent) !important; box-shadow: 0 0 0 4px var(--rpw-accent-dim) !important; }
.rpw-wizard .rpw-input[readonly] { opacity: .7; }
.rpw-wizard textarea.rpw-input { resize: vertical; min-height: 80px; }
.rpw-wizard .rpw-grid { display: flex; flex-direction: column; gap: 16px; margin: 0 0 22px; }
/* Horizontal (inline) custom-fields section: inputs and the button on one row. */
/* Horizontal (inline) layout: the inputs share one row and shrink to fit
   (flex-basis 0 + min-width 0) so they stay side by side in any container
   width, rather than each demanding a fixed width and wrapping to its own
   full-width line. Narrow screens collapse to a column in the media query. */
.rpw-wizard .rpw-grid-inline { flex-direction: row; flex-wrap: nowrap; align-items: flex-end; }
.rpw-wizard .rpw-grid-inline .rpw-field { flex: 1 1 0; min-width: 0; margin: 0; }
.rpw-wizard .rpw-grid-inline .rpw-btn { flex: 0 0 auto; }
/* Inline layout: the input(s) and the button share one control height that
   scales with the text size, so they line up as a matched pair at every font
   size. Vertical padding is dropped in favour of the fixed height + centring,
   which keeps the boxes identical regardless of the differing input/button
   font sizes. Textareas keep their natural multi-line height. */
.rpw-wizard .rpw-grid-inline .rpw-input,
.rpw-wizard .rpw-grid-inline .rpw-btn {
	height: var(--rpw-control-h);
	min-height: var(--rpw-control-h);
	padding-top: 0;
	padding-bottom: 0;
}
.rpw-wizard .rpw-grid-inline .rpw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.rpw-wizard .rpw-grid-inline textarea.rpw-input {
	height: auto;
	min-height: 80px;
	padding-top: 12px;
	padding-bottom: 12px;
}

/* Flexible field controls (select / radio / checkbox / text block). */
.rpw-wizard select.rpw-input { cursor: pointer; }
.rpw-wizard .rpw-radio-group { display: flex; flex-direction: column; gap: 10px; }
.rpw-wizard .rpw-radio,
.rpw-wizard .rpw-check { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: calc((.98rem) * var(--rpw-scale, 1)); color: var(--rpw-ink); }
.rpw-wizard .rpw-radio input,
.rpw-wizard .rpw-check input { -webkit-appearance: auto; appearance: auto; accent-color: var(--rpw-accent); width: 18px; height: 18px; flex-shrink: 0; margin: 0; }
.rpw-wizard .rpw-field-help { font-size: calc((.8rem) * var(--rpw-scale, 1)); color: var(--rpw-muted); font-weight: 300; }
.rpw-wizard .rpw-content { margin: 0 0 4px; }
.rpw-wizard .rpw-content-heading { font-family: var(--rpw-bar) !important; font-weight: 600; font-size: calc((1.2rem) * var(--rpw-scale, 1)); text-transform: uppercase; color: var(--rpw-ink) !important; margin: 0 0 8px; }
.rpw-wizard .rpw-content-body { font-size: calc((1rem) * var(--rpw-scale, 1)); font-weight: 300; line-height: 1.7; color: var(--rpw-body); }
.rpw-wizard .rpw-content-body p { margin: 0 0 10px; }
.rpw-wizard .rpw-content-body a { color: var(--rpw-accent); text-decoration: underline; }

.rpw-wizard .rpw-options { display: flex; flex-direction: column; gap: 12px; margin: 0 0 32px; }
.rpw-wizard .rpw-option {
	text-align: left;
	background-color: var(--rpw-surface) !important;
	background-image: none !important;
	color: var(--rpw-ink) !important;
	border: 1.5px solid var(--rpw-border) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	padding: 20px 24px;
	cursor: pointer;
	transition: border-color .25s, transform .25s, background-color .25s;
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
	font-family: var(--rpw-fig);
	white-space: normal !important; /* defend against theme button { white-space: nowrap } */
}
.rpw-wizard .rpw-option:hover { border-color: var(--rpw-accent-mid) !important; transform: translateX(4px); }
.rpw-wizard .rpw-option.rpw-selected { border-color: var(--rpw-accent) !important; background-color: var(--rpw-accent-dim) !important; }
.rpw-wizard .rpw-indicator { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--rpw-border); flex-shrink: 0; position: relative; transition: all .25s; background: transparent; }
.rpw-wizard .rpw-option.rpw-selected .rpw-indicator { border-color: var(--rpw-accent); background: var(--rpw-accent); box-shadow: inset 0 0 0 4px var(--rpw-surface); }
.rpw-wizard .rpw-option-text { font-size: calc((.98rem) * var(--rpw-scale, 1)); font-weight: 500; line-height: 1.4; color: var(--rpw-ink); min-width: 0; overflow-wrap: break-word; }
.rpw-wizard .rpw-option-sub { display: block; font-weight: 300; font-size: calc((.82rem) * var(--rpw-scale, 1)); color: var(--rpw-muted); margin-top: 3px; }

.rpw-wizard .rpw-subq { margin-top: 22px; }
.rpw-wizard .rpw-subq[hidden] { display: none; }

.rpw-wizard .rpw-consent { display: flex; align-items: flex-start; gap: 11px; margin: 8px 0 24px; cursor: pointer; }
.rpw-wizard .rpw-consent-box { width: 18px; height: 18px; margin-top: 2px; -webkit-appearance: auto; appearance: auto; accent-color: var(--rpw-accent); flex-shrink: 0; }
.rpw-wizard .rpw-consent-text { font-size: calc((.85rem) * var(--rpw-scale, 1)); line-height: 1.55; color: var(--rpw-body); }
/* Consent link: force it to match the surrounding consent text, defeating any
   theme link styling (larger size, uppercase, block display, letter-spacing). */
.rpw-wizard .rpw-consent-text a {
	display: inline !important;
	float: none !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	text-transform: none !important;
	vertical-align: baseline !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--rpw-accent) !important;
	text-decoration: underline !important;
}

.rpw-wizard .rpw-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.rpw-wizard .rpw-btn {
	background-color: var(--rpw-accent) !important;
	background-image: none !important;
	color: var(--rpw-on) !important;
	border: none !important;
	cursor: pointer;
	font-family: var(--rpw-btn-font, var(--rpw-bar));
	font-weight: 600;
	font-size: calc((.82rem) * var(--rpw-scale, 1));
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: 16px 38px;
	border-radius: 3px !important;
	box-shadow: none;
	transition: transform .25s, box-shadow .25s, opacity .25s;
}
.rpw-wizard .rpw-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px var(--rpw-accent-mid); }

/* Appearance options: square corners, full-width buttons, fields footer. */
.rpw-wizard.rpw-corners-square .rpw-input,
.rpw-wizard.rpw-corners-square .rpw-option,
.rpw-wizard.rpw-corners-square .rpw-btn { border-radius: 0 !important; }
/* Button alignment: positions an auto-width button in the row, and aligns the
   label inside a full-width button. Both are driven by the same setting. */
.rpw-wizard.rpw-btn-align-left .rpw-actions { justify-content: flex-start; }
.rpw-wizard.rpw-btn-align-center .rpw-actions { justify-content: center; }
.rpw-wizard.rpw-btn-align-right .rpw-actions { justify-content: flex-end; }
.rpw-wizard.rpw-btn-align-left .rpw-btn { text-align: left; justify-content: flex-start; }
.rpw-wizard.rpw-btn-align-center .rpw-btn { text-align: center; justify-content: center; }
.rpw-wizard.rpw-btn-align-right .rpw-btn { text-align: right; justify-content: flex-end; }
.rpw-wizard.rpw-btn-full .rpw-actions { flex-direction: column-reverse; align-items: stretch; gap: 12px; }
.rpw-wizard.rpw-btn-full .rpw-actions .rpw-btn { width: 100%; }
.rpw-wizard.rpw-btn-full .rpw-actions .rpw-back { text-align: center; }
.rpw-wizard .rpw-fields-footer { margin-top: 22px; }
.rpw-wizard .rpw-btn:disabled { opacity: .35; cursor: not-allowed; transform: none; box-shadow: none; }
.rpw-wizard .rpw-back {
	background: none !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	cursor: pointer;
	font-family: var(--rpw-fig);
	font-size: calc((.85rem) * var(--rpw-scale, 1));
	color: var(--rpw-muted) !important;
	padding: 0 !important;
	transition: color .2s;
}
.rpw-wizard .rpw-back:hover { color: var(--rpw-ink) !important; }

/* Honeypot - hidden from humans, present for bots */
.rpw-wizard .rpw-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }

.rpw-wizard .rpw-turnstile { margin: 0 0 18px; }

.rpw-wizard .rpw-error { color: #c0392b; font-size: calc((.9rem) * var(--rpw-scale, 1)); margin-bottom: 16px; }

.rpw-wizard .rpw-result { text-align: center; padding: 24px 0; }
.rpw-wizard .rpw-result[hidden] { display: none; }
.rpw-wizard .rpw-result-icon {
	width: 64px; height: 64px; margin: 0 auto 28px;
	background: var(--rpw-accent); color: var(--rpw-on);
	border-radius: 50%; display: flex; align-items: center; justify-content: center;
	font-size: calc((28px) * var(--rpw-scale, 1));
}
.rpw-wizard .rpw-result-headline { font-family: var(--rpw-bar) !important; font-weight: 600; font-size: calc((clamp(1.7rem, 3.5vw, 2.5rem)) * var(--rpw-scale, 1)); text-transform: uppercase; color: var(--rpw-ink) !important; margin: 0 0 14px; line-height: 1.1; }
.rpw-wizard .rpw-result-sub { font-size: calc((1rem) * var(--rpw-scale, 1)); font-weight: 300; line-height: 1.7; color: var(--rpw-body); margin: 0 auto 28px; max-width: 440px; }
.rpw-wizard .rpw-result-sub p { margin: 0 0 12px; }
.rpw-wizard .rpw-result-booking .rpw-result-sub ul { display: inline-block; text-align: left; margin: 0 0 12px; padding-left: 20px; }
.rpw-wizard .rpw-result-booking .rpw-result-sub li { margin: 4px 0; }
.rpw-wizard .rpw-calendly { margin: 0 auto 20px; min-height: 0; }
.rpw-wizard .rpw-book-link { display: inline-block; text-decoration: none; padding: 18px 48px; }
.rpw-wizard .rpw-book-link[hidden] { display: none; }

/* Admin-only notice for a misconfigured shortcode */
.rpw-admin-notice { padding: 12px 16px; border: 1px dashed #c0392b; color: #c0392b; border-radius: 8px; font-family: sans-serif; }

/* ---------------------------------------------------------------------------
 * Responsive: tablet and mobile.
 * Headlines/questions already scale via clamp(); these rules tighten spacing,
 * touch targets and the booking embed so the form reads well on every screen.
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.rpw-wizard { padding: 4px 20px 20px; }
	.rpw-wizard .rpw-progress { margin-bottom: 28px; }
	.rpw-wizard .rpw-eyebrow { margin-bottom: 16px !important; }
	.rpw-wizard .rpw-sub { margin-bottom: 24px; }
	.rpw-wizard .rpw-question { margin-bottom: 26px; }
	.rpw-wizard .rpw-options { gap: 11px; margin-bottom: 26px; }
	.rpw-wizard .rpw-option { padding: 17px 18px; }
	.rpw-wizard .rpw-back { min-height: 40px; padding: 8px 12px !important; display: inline-flex; align-items: center; }
	.rpw-wizard .rpw-field { gap: 6px; margin-bottom: 16px; }
	.rpw-wizard .rpw-field label { font-size: calc((.68rem) * var(--rpw-scale, 1)); }
	/* A horizontal (inline) section collapses to a single column on tablet and
	   below, so the fields never wrap awkwardly or scroll sideways. */
	.rpw-wizard .rpw-grid-inline { flex-direction: column; align-items: stretch; }
	.rpw-wizard .rpw-grid-inline .rpw-field { flex: 1 1 auto; margin-bottom: 16px; }
	.rpw-wizard .rpw-grid-inline .rpw-btn { width: 100%; margin-top: 4px; }
	.rpw-wizard .rpw-radio-group { gap: 9px; }
	.rpw-wizard .rpw-radio,
	.rpw-wizard .rpw-check { gap: 9px; font-size: calc((.94rem) * var(--rpw-scale, 1)); }
	.rpw-wizard .rpw-consent { gap: 10px; margin: 6px 0 20px; }
	.rpw-wizard .rpw-consent-text { font-size: calc((.80rem) * var(--rpw-scale, 1)); }
	.rpw-wizard .rpw-field-help { font-size: calc((.75rem) * var(--rpw-scale, 1)); }
	.rpw-wizard .rpw-fields-footer { margin-top: 18px; }
	.rpw-wizard .rpw-content-heading { font-size: calc((1.05rem) * var(--rpw-scale, 1)); }
}

@media (max-width: 480px) {
	.rpw-wizard { padding: 0 18px 16px; }
	.rpw-wizard .rpw-progress { margin-bottom: 22px; }

	.rpw-wizard .rpw-eyebrow {
		font-size: calc((.66rem) * var(--rpw-scale, 1));
		letter-spacing: .22em;
		gap: 10px;
		margin-bottom: 13px !important;
	}
	.rpw-wizard .rpw-eyebrow::before { width: 18px; }

	.rpw-wizard .rpw-headline { font-size: calc((clamp(1.6rem, 8.5vw, 2.1rem)) * var(--rpw-scale, 1)) !important; margin-bottom: 14px !important; overflow-wrap: break-word; }
	.rpw-wizard .rpw-sub { font-size: calc((.94rem) * var(--rpw-scale, 1)); line-height: 1.6; margin-bottom: 22px; }
	.rpw-wizard .rpw-question { font-size: calc((1.08rem) * var(--rpw-scale, 1)); margin-bottom: 22px; }
	.rpw-wizard .rpw-sub-label { font-size: calc((.94rem) * var(--rpw-scale, 1)); }

	.rpw-wizard .rpw-options { gap: 10px; margin-bottom: 22px; }
	.rpw-wizard .rpw-option { padding: 14px 15px; gap: 12px; border-radius: 10px; }
	.rpw-wizard .rpw-option:hover { transform: none; } /* no slide-on-tap stickiness */
	.rpw-wizard .rpw-option-text { font-size: calc((.94rem) * var(--rpw-scale, 1)); }
	.rpw-wizard .rpw-indicator { width: 18px; height: 18px; }

	.rpw-wizard .rpw-input { padding: 13px 14px; font-size: calc((max(1rem, 16px)) * var(--rpw-scale, 1)); } /* >=16px keeps iOS from zooming on focus */
	.rpw-wizard .rpw-grid { gap: 14px; }
	.rpw-wizard .rpw-subq { margin-top: 18px; }
	.rpw-wizard .rpw-field { gap: 6px; margin-bottom: 16px; }
	.rpw-wizard .rpw-radio-group { gap: 8px; }
	.rpw-wizard .rpw-radio,
	.rpw-wizard .rpw-check { gap: 8px; }
	.rpw-wizard .rpw-consent { gap: 9px; margin: 4px 0 18px; }
	.rpw-wizard .rpw-consent-text { font-size: calc((.78rem) * var(--rpw-scale, 1)); line-height: 1.5; }
	.rpw-wizard .rpw-content-heading { font-size: calc((.95rem) * var(--rpw-scale, 1)); }

	.rpw-wizard .rpw-actions { gap: 12px; }
	.rpw-wizard .rpw-actions .rpw-btn { flex: 1 1 auto; text-align: center; padding: 15px 24px; }
	.rpw-wizard .rpw-back { min-height: 44px; padding: 12px 16px !important; display: inline-flex; align-items: center; justify-content: center; }

	.rpw-wizard .rpw-result { padding: 12px 0; }
	.rpw-wizard .rpw-result-icon { width: 56px; height: 56px; font-size: calc((24px) * var(--rpw-scale, 1)); margin-bottom: 22px; }
	.rpw-wizard .rpw-book-link { width: 100%; text-align: center; padding: 16px 24px; }
}

/* Booking embed: always fit the column width, never force a horizontal scroll. */
.rpw-wizard .rpw-calendly .calendly-inline-widget,
.rpw-wizard .rpw-calendly iframe { width: 100% !important; min-width: 0 !important; }
