/* VCG Stay Design: booking forms in the brand (8 Oct 2026).
 *
 * MotoPress has no layout setting for its search form, and its date-picker colour choice is a
 * list of fixed themes, none in the site palette. So both are styled here, from the theme
 * palette slots like the rest of this plugin. Selectors are doubled where MotoPress loads its
 * own stylesheet after this one.
 */

:root {
	--vsd-f-accent: var(--ast-global-color-0, #1F7A6D);
	--vsd-f-accent-dark: var(--ast-global-color-1, #165E54);
	--vsd-f-ink: var(--ast-global-color-2, #1E2A32);
	--vsd-f-text: var(--ast-global-color-3, #3D4A52);
	--vsd-f-alt: var(--ast-global-color-4, #F3ECE1);
	--vsd-f-white: var(--ast-global-color-8, #FFFFFF);
	--vsd-f-line: color-mix(in srgb, var(--vsd-f-ink) 14%, transparent);
	--vsd-f-tint: color-mix(in srgb, var(--vsd-f-accent) 14%, var(--vsd-f-white));
}

/* ------------------------------------------------------------------ *
 * Availability search form: dates side by side, guests side by side.
 * ------------------------------------------------------------------ */

form.mphb_sc_search-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; max-width: 560px; margin: 0; }
form.mphb_sc_search-form > p { margin: 0; min-width: 0; }
form.mphb_sc_search-form > p > br { display: none; }
form.mphb_sc_search-form .mphb-required-fields-tip { display: none; }
form.mphb_sc_search-form label { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--vsd-f-ink); }
form.mphb_sc_search-form abbr { border: 0; text-decoration: none; color: var(--vsd-f-accent); }
form.mphb_sc_search-form input[type="text"],
form.mphb_sc_search-form select {
	display: block; box-sizing: border-box; width: 100%; height: 50px; margin: 0; padding: 0 14px;
	font: inherit; font-size: 16px; color: var(--vsd-f-ink);
	background-color: var(--vsd-f-white); border: 1px solid var(--vsd-f-line); border-radius: 12px; box-shadow: none;
}
form.mphb_sc_search-form input[type="text"]::placeholder { color: color-mix(in srgb, var(--vsd-f-text) 70%, transparent); }
form.mphb_sc_search-form input[type="text"]:focus,
form.mphb_sc_search-form select:focus { outline: 2px solid var(--vsd-f-accent); outline-offset: 1px; border-color: var(--vsd-f-accent); }
form.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper { grid-column: 1 / -1; margin-top: 4px; }
form.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper .button { display: block; width: 100%; min-height: 50px; border-radius: 999px; }

/* ------------------------------------------------------------------ *
 * Date pop-up (search form and booking form).
 * ------------------------------------------------------------------ */

.datepick-popup { z-index: 100001 !important; }
.datepick-popup .mphb-datepick-popup.datepick {
	box-sizing: border-box; padding: 14px; font-family: inherit; font-size: 15px; color: var(--vsd-f-ink);
	background: var(--vsd-f-white); border: 1px solid var(--vsd-f-line); border-radius: 16px;
	box-shadow: 0 16px 40px color-mix(in srgb, var(--vsd-f-ink) 18%, transparent);
}

/* Prev, Today, Next */
.datepick-popup .mphb-datepick-popup .datepick-nav { display: flex; justify-content: space-between; align-items: center; padding: 0 2px 8px; background: transparent; border: 0; }
.datepick-popup .mphb-datepick-popup .datepick-nav a,
.datepick-popup .mphb-datepick-popup .datepick-nav span { float: none; width: auto; padding: 6px 4px; font-weight: 600; color: var(--vsd-f-accent); background: transparent; text-decoration: none; }
.datepick-popup .mphb-datepick-popup .datepick-nav .datepick-disabled { color: color-mix(in srgb, var(--vsd-f-text) 35%, transparent); }

/* Months */
.datepick-popup .mphb-datepick-popup .datepick-month-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.datepick-popup .mphb-datepick-popup .datepick-month { float: none; width: auto !important; border: 0; background: transparent; }
.datepick-popup .mphb-datepick-popup .datepick-month-header,
.datepick-popup .mphb-datepick-popup .datepick-month-header select { height: auto; padding: 2px 0 8px; font: inherit; font-weight: 600; font-size: 16px; color: var(--vsd-f-ink); background: transparent; border: 0; }
.datepick-popup .mphb-datepick-popup .datepick-month table { width: 100%; margin: 0; border: 0; border-collapse: separate; border-spacing: 2px; }
.datepick-popup .mphb-datepick-popup .datepick-month th,
.datepick-popup .mphb-datepick-popup .datepick-month td { padding: 0; border: 0; background: transparent; }
.datepick-popup .mphb-datepick-popup .datepick-month th span { display: block; padding: 4px 0; font-size: 12px; font-weight: 600; color: var(--vsd-f-text); background: transparent; }

/* Day cells */
.datepick-popup .mphb-datepick-popup .datepick-month td a,
.datepick-popup .mphb-datepick-popup .datepick-month td span {
	display: block; height: 40px; line-height: 40px; padding: 0; text-align: center; font-size: 15px;
	color: var(--vsd-f-ink); background: transparent; border: 0; border-radius: 10px; text-decoration: none;
}
.datepick-popup .mphb-datepick-popup .datepick-month td a:hover,
.datepick-popup .mphb-datepick-popup .datepick-month td a.datepick-highlight { background: var(--vsd-f-alt); color: var(--vsd-f-ink); }
.datepick-popup .mphb-datepick-popup .datepick-month td .datepick-today { box-shadow: inset 0 0 0 2px var(--vsd-f-ink); }
.datepick-popup .mphb-datepick-popup .datepick-month td .mphb-past-date,
.datepick-popup .mphb-datepick-popup .datepick-month td .mphb-unselectable-date,
.datepick-popup .mphb-datepick-popup .datepick-month td .datepick-unselectable { opacity: 1; color: color-mix(in srgb, var(--vsd-f-text) 50%, transparent); background: transparent; }
.datepick-popup .mphb-datepick-popup .datepick-month td .mphb-extra-date,
.datepick-popup .mphb-datepick-popup .datepick-month td .datepick-other-month { visibility: hidden; }
.datepick-popup .mphb-datepick-popup .datepick-month td [class*="booked"],
.datepick-popup .mphb-datepick-popup .datepick-month td [class*="not-available"] { text-decoration: line-through; color: color-mix(in srgb, var(--vsd-f-text) 45%, transparent); }

/* The chosen stay: first and last night solid, the nights between tinted. */
.datepick-popup .mphb-datepick-popup .datepick-month td .mphb-selected-date,
.datepick-popup .mphb-datepick-popup .datepick-month td .datepick-selected-range { background: var(--vsd-f-tint); color: var(--vsd-f-ink); }
.datepick-popup .mphb-datepick-popup .datepick-month td .datepick-selected,
.datepick-popup .mphb-datepick-popup .datepick-month td .datepick-current-day,
.datepick-popup .mphb-datepick-popup .datepick-month td .mphb-check-in-date,
.datepick-popup .mphb-datepick-popup .datepick-month td .mphb-check-out-date { background: var(--vsd-f-accent); color: var(--vsd-f-white); font-weight: 600; }

/* Clear and Done */
.datepick-popup .mphb-datepick-popup .datepick-ctrl { float: none; width: auto; display: flex; justify-content: space-between; align-items: center; margin-top: 8px; padding: 10px 2px 0; background: transparent; border: 0; border-top: 1px solid var(--vsd-f-line); }
.datepick-popup .mphb-datepick-popup .datepick-ctrl a { float: none; width: auto; padding: 6px 4px; font-weight: 600; background: transparent; text-decoration: none; }
.datepick-popup .mphb-datepick-popup .datepick-ctrl .datepick-cmd-clear { color: var(--vsd-f-text); }
.datepick-popup .mphb-datepick-popup .datepick-ctrl .datepick-cmd-close { color: var(--vsd-f-white); background: var(--vsd-f-accent); border-radius: 999px; padding: 8px 20px; }
.datepick-popup .mphb-datepick-popup .datepick-clear-fix { display: none; }

/* The calendar always draws six weeks; drop a week that is only next month's hidden dates. */
.datepick-popup .mphb-datepick-popup .datepick-month tbody tr:not(:has(td > :not(.mphb-extra-date))) { display: none; }

/* Phones: one month at a time, held inside the screen. */
@media (max-width: 600px) {
	.datepick-popup { left: 16px !important; right: 16px; }
	.datepick-popup .mphb-datepick-popup.datepick { width: calc(100vw - 32px) !important; }
	.datepick-popup .mphb-datepick-popup .datepick-month-row { grid-template-columns: minmax(0, 1fr); }
	.datepick-popup .mphb-datepick-popup .datepick-month + .datepick-month { display: none; }
}

/* ------------------------------------------------------------------ *
 * Checkout and booking confirmation (11 Oct 2026): MotoPress shortcode
 * output has no design settings, so it is brought in line with the
 * accommodation page here: white cards on the page ground, 20 px radius,
 * full-width rounded fields, pill buttons.
 * ------------------------------------------------------------------ */

.mphb_sc_checkout-wrapper,
.mphb_sc_booking_confirmation { max-width: 760px; margin: 0 auto; color: var(--vsd-f-text); }
article:has(.mphb_sc_checkout-wrapper) .entry-title,
article:has(.mphb_sc_booking_confirmation) .entry-title { max-width: 760px; margin: 0 auto 8px; color: var(--vsd-f-ink); }
.mphb_sc_checkout-wrapper br { display: none; }
.mphb_sc_checkout-wrapper .mphb-login-form-wrap > p { margin: 0 0 20px; font-size: 15px; }
.mphb_sc_checkout-wrapper .mphb-required-fields-tip { display: none; }

/* Cards */
.mphb_sc_checkout-wrapper .mphb-checkout-section,
.mphb_sc_booking_confirmation .mphb-booking-details-section:not(.invoice) {
	box-sizing: border-box; margin: 0 0 20px; padding: 24px;
	background: var(--vsd-f-white); border: 1px solid var(--vsd-f-line); border-radius: 20px;
	box-shadow: 0 8px 28px color-mix(in srgb, var(--vsd-f-ink) 8%, transparent);
}
.mphb_sc_checkout-wrapper .mphb-checkout-section > h3,
.mphb_sc_checkout-wrapper .mphb-checkout-section > h4,
.mphb_sc_booking_confirmation .mphb-booking-details-title { margin: 0 0 16px; font-size: 24px; line-height: 1.2; color: var(--vsd-f-ink); }

/* Booking details: label above value, two dates side by side */
.mphb_sc_checkout-wrapper .mphb-booking-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.mphb_sc_checkout-wrapper .mphb-booking-details > h3,
.mphb_sc_checkout-wrapper .mphb-booking-details > .mphb-reserve-rooms-details { grid-column: 1 / -1; }
.mphb_sc_checkout-wrapper .mphb-check-in-date,
.mphb_sc_checkout-wrapper .mphb-check-out-date { margin: 0 0 16px; padding: 14px 16px; font-size: 15px; background: var(--vsd-f-alt); border-radius: 14px; }
.mphb_sc_checkout-wrapper .mphb-check-in-date > span:first-child,
.mphb_sc_checkout-wrapper .mphb-check-out-date > span:first-child { display: block; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--vsd-f-text); }
.mphb_sc_checkout-wrapper .mphb-check-in-date strong,
.mphb_sc_checkout-wrapper .mphb-check-out-date strong { font-size: 17px; color: var(--vsd-f-ink); }
.mphb_sc_checkout-wrapper .mphb-room-details { padding-top: 16px; border-top: 1px solid var(--vsd-f-line); }
.mphb_sc_checkout-wrapper .mphb-room-number { margin: 0 0 6px; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--vsd-f-text); }
.mphb_sc_checkout-wrapper .mphb-room-type-title { margin: 0 0 16px; font-size: 18px; }
.mphb_sc_checkout-wrapper .mphb-room-type-title > span { display: none; }
.mphb_sc_checkout-wrapper .mphb-room-type-title a { font-weight: 600; color: var(--vsd-f-ink); text-decoration: none; }

/* Fields */
.mphb_sc_checkout-wrapper .mphb-checkout-section p { margin: 0 0 14px; }
.mphb_sc_checkout-wrapper label { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--vsd-f-ink); }
.mphb_sc_checkout-wrapper abbr { border: 0; text-decoration: none; color: var(--vsd-f-accent); }
.mphb_sc_checkout-wrapper input[type="text"],
.mphb_sc_checkout-wrapper input[type="email"],
.mphb_sc_checkout-wrapper input[type="tel"],
.mphb_sc_checkout-wrapper select,
.mphb_sc_checkout-wrapper textarea {
	display: block; box-sizing: border-box; width: 100%; min-height: 50px; margin: 0; padding: 12px 14px;
	font: inherit; font-size: 16px; color: var(--vsd-f-ink);
	background-color: var(--vsd-f-white); border: 1px solid color-mix(in srgb, var(--vsd-f-ink) 22%, transparent); border-radius: 12px; box-shadow: none;
}
.mphb_sc_checkout-wrapper textarea { min-height: 110px; }
.mphb_sc_checkout-wrapper input:focus,
.mphb_sc_checkout-wrapper select:focus,
.mphb_sc_checkout-wrapper textarea:focus { outline: 2px solid var(--vsd-f-accent); outline-offset: 1px; border-color: var(--vsd-f-accent); }
.mphb_sc_checkout-wrapper .mphb-adults-chooser select { max-width: 160px; }
.mphb_sc_checkout-wrapper .mphb-customer-details { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 16px; }
.mphb_sc_checkout-wrapper .mphb-customer-details > h3 { grid-column: 1 / -1; }
.mphb_sc_checkout-wrapper .mphb-customer-note,
.mphb_sc_checkout-wrapper .mphb-customer-country { grid-column: 1 / -1; }

/* Checkboxes */
.mphb_sc_checkout-wrapper input[type="checkbox"] { width: 20px; height: 20px; margin: 1px 0 0; flex: none; accent-color: var(--vsd-f-accent); }
.mphb_sc_checkout-wrapper .vcg-offers-optout label,
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions-accept label { position: relative; display: block; padding-left: 32px; font-weight: 400; font-size: 15px; line-height: 1.5; color: var(--vsd-f-text); }
.mphb_sc_checkout-wrapper .vcg-offers-optout label input[type="checkbox"],
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions-accept label input[type="checkbox"] { position: absolute; left: 0; top: 1px; }
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions-accept a { color: var(--vsd-f-accent); font-weight: 600; }
.mphb_sc_checkout-wrapper .mphb-errors-wrapper:not(.mphb-hide):not(:empty) { margin: 0 0 20px; padding: 12px 16px; font-size: 15px; color: #8A1C0B; background: #FBEAE6; border-radius: 12px; }
.mphb_sc_checkout-wrapper .vcg-offers-optout { padding: 16px 24px; box-shadow: none; }
.mphb_sc_checkout-wrapper .vcg-offers-optout p { margin: 0; }

/* Price breakdown: clean rows, total in bold */
.mphb_sc_checkout-wrapper table.mphb-price-breakdown { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 16px; }
.mphb_sc_checkout-wrapper table.mphb-price-breakdown th,
.mphb_sc_checkout-wrapper table.mphb-price-breakdown td { padding: 12px 0; border: 0; border-bottom: 1px solid var(--vsd-f-line); background: transparent; text-align: left; font-weight: 400; color: var(--vsd-f-text); vertical-align: top; }
.mphb_sc_checkout-wrapper table.mphb-price-breakdown td:last-child,
.mphb_sc_checkout-wrapper table.mphb-price-breakdown th:last-child { text-align: right; white-space: nowrap; padding-left: 16px; color: var(--vsd-f-ink); }
.mphb_sc_checkout-wrapper table.mphb-price-breakdown th { font-weight: 600; color: var(--vsd-f-ink); }
.mphb_sc_checkout-wrapper .mphb-price-breakdown-expand { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; color: var(--vsd-f-ink); text-decoration: none !important; } /* Astra underlines .entry-content links, icon included */
.mphb_sc_checkout-wrapper .mphb-price-breakdown-expand .mphb-inner-icon { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--vsd-f-tint); color: var(--vsd-f-accent); font-weight: 700; line-height: 1; }
.mphb_sc_checkout-wrapper .mphb-price-breakdown-expand .mphb-inner-icon.mphb-hide { display: none; }
.mphb_sc_checkout-wrapper .mphb-price-breakdown-rate { margin-top: 4px; font-size: 14px; }
.mphb_sc_checkout-wrapper table.mphb-price-breakdown tfoot .mphb-price-breakdown-total th { padding-top: 16px; border-bottom: 0; font-size: 20px; color: var(--vsd-f-ink); }

/* Total and terms */
.mphb_sc_checkout-wrapper .mphb-total-price { margin: 0 0 20px; padding: 18px 24px; font-size: 17px; color: var(--vsd-f-ink); background: var(--vsd-f-tint); border-radius: 20px; }
.mphb_sc_checkout-wrapper .mphb-total-price output { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.mphb_sc_checkout-wrapper .mphb-total-price-field { font-size: 26px; color: var(--vsd-f-ink); }
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions { max-height: 240px; overflow: auto; margin: 0 0 16px; padding: 4px 16px; font-size: 14px; background: var(--vsd-f-alt); border-radius: 14px; }
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions .alignfull { margin: 0 !important; padding: 12px 0 !important; width: auto !important; max-width: none !important; background: transparent !important; }
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions h1 { margin: 0 0 6px; font-size: 20px; }
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions h2 { margin: 14px 0 4px; font-size: 16px; }
.mphb_sc_checkout-wrapper .mphb-terms-and-conditions p { margin: 0 0 8px; }

/* Book now */
.mphb_sc_checkout-wrapper .mphb_sc_checkout-submit-wrapper { margin: 0 0 24px; }
.mphb_sc_checkout-wrapper input[type="submit"].button,
.mphb_sc_checkout-wrapper .mphb_sc_checkout-submit-wrapper input[type="submit"] {
	display: block; width: 100%; min-height: 54px; padding: 14px 24px; border: 0; border-radius: 999px;
	background: var(--vsd-f-accent); color: var(--vsd-f-white); font: inherit; font-size: 17px; font-weight: 600; cursor: pointer;
}
.mphb_sc_checkout-wrapper input[type="submit"]:hover { background: var(--vsd-f-accent-dark); }

/* Booking confirmed */
article:has(.mphb_sc_booking_confirmation) .entry-title::before {
	content: "\2713"; display: grid; place-items: center; width: 52px; height: 52px; margin: 0 0 14px;
	border-radius: 50%; background: var(--vsd-f-tint); color: var(--vsd-f-accent); font-size: 26px; font-weight: 700; line-height: 1;
}
.mphb_sc_booking_confirmation ul.mphb-booking-details { list-style: none; margin: 0; padding: 0; }
.mphb_sc_booking_confirmation ul.mphb-booking-details li { display: flex; justify-content: space-between; gap: 16px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--vsd-f-line); font-size: 16px; }
.mphb_sc_booking_confirmation ul.mphb-booking-details li:last-child { border-bottom: 0; }
.mphb_sc_booking_confirmation .label { color: var(--vsd-f-text); }
.mphb_sc_booking_confirmation .value { font-weight: 600; color: var(--vsd-f-ink); text-align: right; }
.mphb_sc_booking_confirmation .booking-status .value,
.mphb_sc_booking_confirmation .payment li:last-child .value { padding: 2px 12px; border-radius: 999px; background: var(--vsd-f-tint); color: var(--vsd-f-accent-dark); font-size: 14px; }
.mphb_sc_booking_confirmation .booking-price .value { font-size: 18px; }
.mphb_sc_booking_confirmation .accommodations { display: flex; justify-content: space-between; gap: 16px; margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--vsd-f-line); }
.mphb_sc_booking_confirmation .accommodations-title { color: var(--vsd-f-text); }
.mphb_sc_booking_confirmation .accommodations-list a { font-weight: 600; color: var(--vsd-f-accent); }
.mphb_sc_booking_confirmation .invoice p { margin: 4px 0 24px; }
.mphb_sc_booking_confirmation .invoice-link {
	display: block; box-sizing: border-box; width: 100%; padding: 14px 24px; text-align: center;
	border: 2px solid var(--vsd-f-accent); border-radius: 999px; color: var(--vsd-f-accent); font-weight: 600; text-decoration: none;
}
.mphb_sc_booking_confirmation .invoice-link:hover { background: var(--vsd-f-accent); color: var(--vsd-f-white); }

@media (min-width: 601px) {
	.mphb_sc_checkout-wrapper .mphb-customer-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mphb_sc_checkout-wrapper .mphb-checkout-section,
	.mphb_sc_booking_confirmation .mphb-booking-details-section:not(.invoice) { padding: 32px; }
}
@media (max-width: 420px) {
	.mphb_sc_checkout-wrapper .mphb-booking-details { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------------ *
 * Homepage hero search card (11 Oct 2026). The card itself (white,
 * 20 px radius, padding) is set in the block editor on the group
 * "vsd-hero-search"; MotoPress has no layout setting for its form, so
 * the one-row desktop layout lives here.
 * ------------------------------------------------------------------ */

.vsd-hero-search { text-align: left; box-shadow: 0 16px 40px color-mix(in srgb, var(--vsd-f-ink) 22%, transparent); }
.vsd-hero-search .mphb_sc_search-wrapper { margin: 0; }
.vsd-hero-search form.mphb_sc_search-form { max-width: none; }
.vsd-hero-search form.mphb_sc_search-form label { color: var(--vsd-f-ink); }
.wp-block-cover .vsd-hero-alt { margin-top: 18px; }
.wp-block-cover .vsd-hero-alt a { color: var(--vsd-f-white); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

@media (min-width: 900px) {
	.vsd-hero-search form.mphb_sc_search-form {
		grid-template-columns: minmax(0, 1.35fr) minmax(0, 1.35fr) minmax(0, .85fr) minmax(0, .85fr) auto;
		align-items: end; gap: 0 12px;
	}
	.vsd-hero-search form.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper { grid-column: auto; margin: 0; }
	.vsd-hero-search form.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper .button { width: auto; min-width: 140px; padding: 0 32px; }
}
.wp-block-cover:has(.vsd-hero-search) .wp-block-cover__inner-container > p.has-text-align-center:not(.vsd-hero-alt) { max-width: 720px; margin-left: auto; margin-right: auto; }

/* ------------------------------------------------------------------ *
 * Request received (11 Oct 2026): the panel from inc/received.php
 * that replaces MotoPress's two-line "Reservation submitted" step.
 * ------------------------------------------------------------------ */

article:has(.vsd-rcv) .entry-header { display: none; }
/* Tick and pill sit centred between the header and the heading: equal space above and below. */
.content-area:has(.vsd-rcv) { --vsd-rcv-gap: clamp(32px, 3vw + 16px, 56px); margin-top: var(--vsd-rcv-gap) !important; }
.vsd-rcv .vsd-rcv-head .vsd-rcv-pill { margin-bottom: var(--vsd-rcv-gap, 40px) !important; } /* beats Astra's .entry-content p margin */
article:has(.vsd-rcv) { padding-top: 0 !important; }
.vsd-rcv { max-width: 760px; margin: 0 auto; color: var(--vsd-f-text); }
.vsd-rcv-head { text-align: center; margin: 0 0 32px; }
.vsd-rcv-tick { display: inline-grid; place-items: center; width: 64px; height: 64px; margin: 0 0 16px; border-radius: 50%; background: var(--vsd-f-accent); color: var(--vsd-f-white); }
.vsd-rcv-tick .vsd-ico { width: 30px; height: 30px; stroke-width: 2.6; }
.vsd-rcv-pill { display: table; margin: 0 auto var(--vsd-rcv-gap, 40px); padding: 4px 14px; border-radius: 999px; background: var(--vsd-f-tint); color: var(--vsd-f-accent-dark); font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.vsd-rcv-title { margin: 0 0 12px; font-size: clamp(28px, 2.6vw + 18px, 40px); line-height: 1.12; color: var(--vsd-f-ink); }
.vsd-rcv-lead { max-width: 560px; margin: 0 auto; font-size: 18px; line-height: 1.6; }

.vsd-rcv-stay { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; margin: 0 0 24px; background: var(--vsd-f-white); border: 1px solid var(--vsd-f-line); border-radius: 20px; }
.vsd-rcv-photo-link { display: block; }
.vsd-rcv-photo { display: block; width: 100%; height: 100%; min-height: 200px; max-height: 260px; object-fit: cover; }
.vsd-rcv-stay-body { padding: 24px; }
.vsd-rcv-eyebrow { margin: 0 0 4px; font-size: 14px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--vsd-f-accent); }
.vsd-rcv-house { margin: 0 0 16px; font-size: 26px; line-height: 1.2; }
.vsd-rcv-house a { color: var(--vsd-f-ink); text-decoration: none !important; }
.vsd-rcv-house a:hover { color: var(--vsd-f-accent); }
.vsd-rcv-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; margin: 0; }
.vsd-rcv-facts dt { margin: 0 0 2px; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--vsd-f-text); }
.vsd-rcv-facts dd { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--vsd-f-ink); }
.vsd-rcv-facts dd span { display: block; font-size: 14px; font-weight: 400; color: var(--vsd-f-text); }

.vsd-rcv-plan { margin: 0 0 28px; padding: 28px 24px; background: var(--vsd-f-alt); border-radius: 20px; }
.vsd-rcv-plan h3 { margin: 0 0 18px; font-size: 24px; color: var(--vsd-f-ink); }
.vsd-rcv-plan ol { list-style: none; counter-reset: vsd-rcv; margin: 0; padding: 0; }
.vsd-rcv-plan li { counter-increment: vsd-rcv; position: relative; margin: 0 0 16px; padding: 0 0 0 48px; font-size: 16px; line-height: 1.55; }
.vsd-rcv-plan li:last-child { margin: 0; }
.vsd-rcv-plan li::before { content: counter(vsd-rcv); position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--vsd-f-accent); color: var(--vsd-f-white); font-size: 15px; font-weight: 700; }
.vsd-rcv-plan strong { display: block; color: var(--vsd-f-ink); }

.vsd-rcv-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 0 0 16px; }
.vsd-rcv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 12px 28px; border: 2px solid var(--vsd-f-accent); border-radius: 999px; background: var(--vsd-f-accent); color: var(--vsd-f-white) !important; font-size: 17px; font-weight: 600; text-decoration: none !important; }
.vsd-rcv-btn:hover { background: var(--vsd-f-accent-dark); border-color: var(--vsd-f-accent-dark); }
.vsd-rcv-btn .vsd-ico { width: 20px; height: 20px; }
.vsd-rcv-btn-outline { background: transparent; color: var(--vsd-f-accent) !important; }
.vsd-rcv-btn-outline:hover { background: var(--vsd-f-accent); color: var(--vsd-f-white) !important; }
.vsd-rcv-note { margin: 0; text-align: center; font-size: 15px; }
.vsd-rcv-demo { margin: 32px 0 0; padding: 20px 24px; border: 2px dashed var(--vsd-f-line); border-radius: 20px; font-size: 15px; line-height: 1.6; }
.vsd-rcv-demo p { margin: 0; }
.vsd-rcv-demo .vsd-rcv-demo-label { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--vsd-f-ink); }

@media (min-width: 640px) {
	.vsd-rcv-stay { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
	.vsd-rcv-photo { max-height: none; }
	.vsd-rcv-stay-body { padding: 28px; }
	.vsd-rcv-plan { padding: 32px; }
}
@media (max-width: 480px) {
	.vsd-rcv-btn { width: 100%; }
}
