/*
Theme Name:   Vieques
Theme URI:    https://vieques.com
Description:  Child theme for vieques.com. Holds the hand-coded templates for the six listing types, where page weight and query control matter. One-off pages (homepage, Plan your trip, About) are built in Elementor on the parent theme. Requires the Vieques Core plugin.
Author:       Elliott Anderson
Template:     hello-elementor
Version: 0.35.3
Requires PHP: 8.1
Text Domain:  vieques
*/

/* ---------------------------------------------------------------------
   Fonts. Self-hosted from assets/fonts, so visitors' addresses are not
   sent to Google. Latin subset covers English and Spanish accents.
   Jost is one weight (Light, 300) and only used for page titles.
   --------------------------------------------------------------------- */

@font-face {
	font-family: "Figtree";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("assets/fonts/figtree-latin-wght-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Figtree";
	font-style: italic;
	font-weight: 300 900;
	font-display: swap;
	src: url("assets/fonts/figtree-latin-wght-italic.woff2") format("woff2");
}
@font-face {
	font-family: "Fraunces";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/fraunces-latin-wght-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Fraunces";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/fraunces-latin-wght-italic.woff2") format("woff2");
}
@font-face {
	font-family: "Jost";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("assets/fonts/jost-latin-300-normal.woff2") format("woff2");
}


/* ---------------------------------------------------------------------
   Scaffold styling only.

   Deliberately plain. Typography, colour and the logo are still open
   decisions in the Master Plan, and styling before those are settled
   would mean doing it twice. The structure follows the moodboard: white
   cards with a thin border on a warm page, one accent, two-column rows.

   Every colour is a variable here, so the brand pass changes these
   lines and nothing else.
   --------------------------------------------------------------------- */

:root {
	/* General palette: 03 Isla Nena. Warm ivory, dark green text, sunset gold buttons. */
	--vq-page: #f8f0df;
	--vq-surface: #fffbf2;
	--vq-ink: #26362e;
	--vq-muted: #5a6459;
	--vq-line: #e2d6bc;
	--vq-accent: #e7b65b;
	--vq-accent-ink: #26362e;
	--vq-accent-text: #8a5a12;
	--vq-warn: #8a5a00;
	--vq-closed: #a12d2d;
	--vq-notice-bg: #fff4d6;
	--vq-notice-line: #e7b65b;
	--vq-radius: 0;

	/* Status colours for the conditions box. Always used with an icon and a word. */
	--vq-ok-bg: #e1f1ee;
	--vq-ok-ink: #075a63;
	--vq-mid-bg: #fff1cf;
	--vq-mid-ink: #7a4d00;
	--vq-bad-bg: #fbe3df;
	--vq-bad-ink: #9b2a22;

	/* Which logo file shows: the light-page artwork or the dark-page artwork. */
	--vq-show-light: block;
	--vq-show-dark: none;

	--vq-font-display: "Jost", "Helvetica Neue", Arial, sans-serif;
	--vq-font-serif: "Fraunces", Georgia, "Times New Roman", serif;
	--vq-font-body: "Figtree", "Helvetica Neue", Arial, sans-serif;
}

/* Beach palette: 01 Coastal Vieques. Beach pages only. */
body.single-beaches,
body.post-type-archive-beaches {
	--vq-page: #f6eedd;
	--vq-surface: #fffbf2;
	--vq-ink: #0f3a42;
	--vq-muted: #4f6468;
	--vq-line: #e0d3b8;
	--vq-accent: #087e8b;
	--vq-accent-ink: #ffffff;
	--vq-accent-text: #076f7a;
	--vq-notice-bg: #e6f3ef;
	--vq-notice-line: #65c6c4;
}

/* Dark palette: 04 Wild Vieques. Follows the visitor's device setting.
   A data-theme="light" or "dark" on the html element overrides the device
   (that is what a future toggle button would set). Listed for body as well
   so it beats the beach palette. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]),
	:root:not([data-theme="light"]) body {
		--vq-page: #123c49;
		--vq-surface: #1a4b5a;
		--vq-ink: #efeadd;
		--vq-muted: #b9c4be;
		--vq-line: #2e6070;
		--vq-accent: #4cb9ad;
		--vq-accent-ink: #0e2f39;
		--vq-accent-text: #7fd3c8;
		--vq-warn: #e3b85c;
		--vq-closed: #f0958a;
		--vq-notice-bg: #1f4f5d;
		--vq-notice-line: #4cb9ad;
		--vq-ok-bg: #1d5a60;
		--vq-ok-ink: #bff0e8;
		--vq-mid-bg: #5b4a1c;
		--vq-mid-ink: #ffe3a1;
		--vq-bad-bg: #5f2a2a;
		--vq-bad-ink: #ffc9c2;
		--vq-show-light: none;
		--vq-show-dark: block;
	}
}

:root[data-theme="dark"],
:root[data-theme="dark"] body {
	--vq-show-light: none;
	--vq-show-dark: block;
	--vq-page: #123c49;
	--vq-surface: #1a4b5a;
	--vq-ink: #efeadd;
	--vq-muted: #b9c4be;
	--vq-line: #2e6070;
	--vq-accent: #4cb9ad;
	--vq-accent-ink: #0e2f39;
	--vq-accent-text: #7fd3c8;
	--vq-warn: #e3b85c;
	--vq-closed: #f0958a;
	--vq-notice-bg: #1f4f5d;
	--vq-notice-line: #4cb9ad;
	--vq-ok-bg: #1d5a60;
	--vq-ok-ink: #bff0e8;
	--vq-mid-bg: #5b4a1c;
	--vq-mid-ink: #ffe3a1;
	--vq-bad-bg: #5f2a2a;
	--vq-bad-ink: #ffc9c2;
}

body {
	background: var(--vq-page);
	color: var(--vq-ink);
}

/* ------------------------------------------------------------ typography */

body {
	font-family: var(--vq-font-body);
	font-size: 1.0625rem;
	line-height: 1.6;
}

h1 {
	font-family: var(--vq-font-display);
	font-weight: 300;
	font-size: clamp(2.25rem, 6vw, 3rem);
	line-height: 1.05;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

h2, h3, h4, h5, h6 {
	font-family: var(--vq-font-serif);
	font-weight: 600;
	text-wrap: balance;
}

h2 { font-size: 2rem; line-height: 1.15; }
h3 { font-size: 1.5rem; line-height: 1.2; }
h4 { font-size: 1.25rem; line-height: 1.25; }

figcaption,
.wp-caption-text,
.vq-caption {
	font-style: italic;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--vq-muted);
}

/* Small caps line above a heading, and button text. */
.vq-label {
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ---------------------------------------------------------------- logo */

.vq-logo {
	display: inline-block;
	line-height: 0;
}
.vq-logo a { display: block; line-height: 0; }
.vq-logo img { height: auto; max-width: 100%; }
.vq-logo .is-light { display: var(--vq-show-light); }
.vq-logo .is-dark { display: var(--vq-show-dark); }

/* Header logo: the wave-cut version on wide screens, the compact one below. */
.vq-logo--header .vq-logo__set--wide img { width: 220px; }
.vq-logo--header .vq-logo__set--narrow { display: none; }
.vq-logo--header .vq-logo__set--narrow img { width: 160px; }
@media (max-width: 782px) {
	.vq-logo--header .vq-logo__set--wide { display: none; }
	.vq-logo--header .vq-logo__set--narrow { display: block; }
}

.vq-logo--compact img { width: 160px; }
.vq-logo--lockup img { width: min(100%, 720px); }
.vq-logo--monogram img { width: 64px; }

/* ------------------------------------------------------- single listing */

.vq-entity {
	max-width: 760px;
	margin: 0 auto;
	padding: 2rem 1.25rem 4rem;
	line-height: 1.6;
	color: var(--vq-ink);
}

.vq-entity__head h1 {
	margin: 0 0 .25rem;
	text-wrap: balance;
}

.vq-entity__area {
	color: var(--vq-muted);
	font-size: .95rem;
	margin: 0 0 1.5rem;
}

.vq-entity__lede {
	font-size: 1.1rem;
	font-weight: 600;
}

.vq-entity__hero {
	margin: 1.5rem 0;
}

.vq-entity__hero img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--vq-radius);
}

.vq-section h2 {
	font-size: .95rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--vq-muted);
	margin: 2.5rem 0 .75rem;
	padding-bottom: .4rem;
	border-bottom: 1px solid var(--vq-line);
}

.vq-entity dl {
	display: grid;
	grid-template-columns: minmax(8rem, 12rem) 1fr;
	gap: .5rem 1.5rem;
	margin: 0;
}

.vq-entity dt {
	color: var(--vq-muted);
	font-size: .9rem;
}

.vq-entity dd {
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

@media (max-width: 520px) {
	.vq-entity dl {
		grid-template-columns: 1fr;
		gap: .1rem;
	}
	.vq-entity dd {
		margin-bottom: .6rem;
	}
}

.vq-callout {
	background: var(--vq-page);
	border-radius: var(--vq-radius);
	padding: 0 1.25rem 1rem;
	margin-top: 2.5rem;
}

.vq-callout h2 {
	padding-top: 1rem;
	margin-top: 0;
}

.vq-notice {
	padding: .75rem 1rem;
	border: 1px solid var(--vq-line);
	border-radius: var(--vq-radius);
	color: var(--vq-warn);
	font-weight: 600;
}

.vq-notice--closed {
	color: var(--vq-closed);
	border-color: currentColor;
}

.vq-small {
	font-size: .85rem;
	color: var(--vq-muted);
}

.vq-entity__verified {
	margin-top: 3rem;
}

.vq-button {
	display: inline-block;
	padding: .5rem 1.2rem;
	background: var(--vq-accent);
	color: var(--vq-accent-ink);
	border-radius: 0;
	text-decoration: none;
}

/* Galleries are masonry: columns of any height pack together with no gaps (0.13.3). */
.vq-gallery,
.vq-lcontent .gallery,
.vq-lcontent .wp-block-gallery {
	display: block;
	column-width: 200px;
	column-gap: 12px;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.vq-gallery li,
.vq-lcontent .gallery .gallery-item,
.vq-lcontent .wp-block-gallery .wp-block-image,
.vq-lcontent .wp-block-gallery figure {
	break-inside: avoid;
	margin: 0 0 12px !important;
	width: 100% !important;
	float: none !important;
}

.vq-gallery img,
.vq-lcontent .gallery img,
.vq-lcontent .wp-block-gallery img {
	width: 100%;
	height: auto;
	display: block;
}

.vq-tags {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}

.vq-tags li {
	background: var(--vq-page);
	padding: .15rem .6rem;
	font-size: .85rem;
}

.vq-admin {
	margin-top: 3rem;
	padding: 1rem 1.25rem;
	background: var(--vq-notice-bg);
	border: 1px solid var(--vq-notice-line);
	font-size: .9rem;
}

.vq-admin h2 {
	margin-top: 0;
	font-size: .95rem;
}

.vq-empty {
	color: var(--vq-muted);
	font-style: italic;
}

/* ------------------------------------------------------- archives */

.vq-archive {
	max-width: 1180px;
	margin: 0 auto;
	padding: 2rem 1.25rem 4rem;
	color: var(--vq-ink);
}

.vq-archive__head h1 {
	margin-bottom: .4rem;
	text-wrap: balance;
}

.vq-archive__intro {
	color: var(--vq-muted);
	max-width: 46rem;
}

.vq-kinds {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 1.5rem 0 0;
}

.vq-kinds a {
	padding: .3rem .8rem;
	border: 1px solid var(--vq-line);
	border-radius: 0;
	font-size: .9rem;
	text-decoration: none;
}

.vq-kinds a[aria-current="page"] {
	background: var(--vq-accent);
	border-color: var(--vq-accent);
	color: var(--vq-accent-ink);
}

.vq-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 1rem;
	padding: 1.25rem;
	background: var(--vq-page);
	border: 1px solid var(--vq-line);
	border-radius: var(--vq-radius);
	margin: 2rem 0;
}

.vq-filters__field {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	font-size: .9rem;
}

.vq-filters__field span {
	color: var(--vq-muted);
}

.vq-filters__field select {
	padding: .4rem .5rem;
	min-width: 10rem;
	max-width: 100%;
}

.vq-filters__check {
	display: flex;
	align-items: center;
	gap: .4rem;
	font-size: .9rem;
	padding-bottom: .45rem;
}

.vq-filters button {
	padding: .5rem 1.4rem;
	cursor: pointer;
	background: var(--vq-accent);
	color: var(--vq-accent-ink);
	border: 0;
	border-radius: 0;
}

.vq-filters__clear {
	font-size: .9rem;
	padding-bottom: .55rem;
}

.vq-archive__count {
	color: var(--vq-muted);
	font-size: .9rem;
	margin-bottom: 1rem;
}

.vq-archive__empty {
	padding: 3rem 0;
	color: var(--vq-muted);
}

.vq-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
	gap: 1.5rem;
}

/* ------------------------------------------------------- card */

.vq-card {
	position: relative;
	background: var(--vq-surface);
	border: 1px solid var(--vq-line);
	border-radius: var(--vq-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.vq-card--featured {
	border-color: var(--vq-accent);
}

.vq-card__media {
	display: block;
	aspect-ratio: 2 / 1;
	background: var(--vq-page);
	position: relative;
	overflow: hidden;
}

.vq-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.vq-card__noimage {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--vq-muted);
	font-size: .85rem;
}

.vq-card__tag {
	position: absolute;
	top: .6rem;
	left: .6rem;
	background: var(--vq-surface);
	color: var(--vq-accent-text);
	font-size: .68rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .2rem .55rem;
	border-radius: 0;
}

.vq-card__body {
	padding: 1rem 1.1rem 1.15rem;
	display: flex;
	flex-direction: column;
	gap: .35rem;
	flex: 1;
}

.vq-card__title {
	font-size: 1.05rem;
	line-height: 1.3;
	margin: 0;
	min-width: 0;
}

.vq-card__title a {
	color: var(--vq-accent-text);
	text-decoration: none;
}

.vq-card__meta {
	margin: 0;
	font-size: .85rem;
	color: var(--vq-muted);
}

.vq-card__desc {
	margin: 0;
	font-size: .92rem;
}

.vq-card__foot {
	margin-top: auto;
	padding-top: .6rem;
	border-top: 1px solid var(--vq-line);
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .75rem;
}

.vq-card__fact {
	margin: 0;
	font-weight: 700;
	color: var(--vq-ink);
	min-width: 0;
}

.vq-card__price {
	margin: 0;
	font-weight: 700;
	color: var(--vq-accent-text);
	white-space: nowrap;
	letter-spacing: .04em;
}

/* ------------------------------------------------------- guides */

.vq-guide__hero img { width: 100%; height: auto; border-radius: var(--vq-radius); }

.vq-guide__facts {
	background: var(--vq-surface);
	border: 1px solid var(--vq-line);
	border-radius: var(--vq-radius);
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
}

.vq-guide__facts-title,
.vq-guide__toc-title { font-size: 1rem; margin: 0 0 .5rem; }

.vq-guide__facts dl {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: .75rem 1.5rem;
	margin: 0;
}

.vq-guide__facts dt { color: var(--vq-muted); font-size: .85rem; }
.vq-guide__facts dd { margin: 0; font-weight: 600; }

.vq-guide__toc { margin: 0 0 2rem; }
.vq-guide__toc ol { margin: 0; padding-left: 1.25rem; }
.vq-guide__body { max-width: 46rem; }
.vq-guide__body h2 { scroll-margin-top: 5rem; margin-top: 2rem; }
.vq-guide__related { margin-top: 3rem; }

/* ------------------------------------------------------- hub pages (0.7.0) */

.vq-hub {
	max-width: none;
	padding-left: max(clamp(16px, 2.5vw, 40px), calc((100% - 1680px) / 2));
	padding-right: max(clamp(16px, 2.5vw, 40px), calc((100% - 1680px) / 2));
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.vq-hub .vq-archive__head h1 {
	font-family: var(--vq-font-serif);
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.1;
}

.vq-hub .vq-archive__intro {
	font-size: 1.125rem;
	line-height: 1.6;
	max-width: 760px;
}

.vq-hub__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.vq-chips {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	align-items: center;
}

.vq-chip {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	min-height: 44px;
	padding: .6rem 1.25rem;
	background: var(--vq-surface);
	color: var(--vq-ink);
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
	list-style: none;
}

.vq-chip[aria-current="true"],
.vq-more[data-active] > summary {
	background: var(--vq-ink);
	color: var(--vq-surface);
}

.vq-more {
	position: relative;
}

.vq-more > summary::-webkit-details-marker {
	display: none;
}

.vq-more > summary::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

.vq-more[open] > summary::after {
	transform: rotate(225deg);
}

.vq-more__list {
	position: absolute;
	z-index: 5;
	top: calc(100% + 8px);
	left: 0;
	min-width: 220px;
	display: flex;
	flex-direction: column;
	padding: 6px;
	background: var(--vq-surface);
	box-shadow: 0 4px 18px rgba(38, 54, 46, .22);
}

.vq-more__list a {
	padding: .75rem .9rem;
	min-height: 44px;
	box-sizing: border-box;
	color: var(--vq-ink);
	text-decoration: none;
}

.vq-more__list a[aria-current="true"] {
	background: var(--vq-line);
	font-weight: 600;
}

.vq-more__dup {
	display: none;
}

.vq-sort {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-size: .95rem;
}

.vq-sort select {
	min-height: 44px;
	padding: .5rem .9rem;
	background: var(--vq-surface);
	color: var(--vq-ink);
	border: 0;
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10);
}

.vq-hubfilters summary {
	cursor: pointer;
	font-weight: 600;
	min-height: 44px;
	display: flex;
	align-items: center;
}

.vq-hubfilters .vq-filters {
	margin: .5rem 0 0;
}

.vq-hub .vq-archive__count {
	margin: 0;
	font-size: .95rem;
}

.vq-hub .vq-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.vq-hub .vq-card {
	border: 0;
	border-radius: 0;
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}

.vq-hub .vq-card__media {
	aspect-ratio: 4 / 3;
}

.vq-hub .vq-card__title {
	font-family: var(--vq-font-serif);
}

.vq-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem 2.5rem;
	padding: 2.5rem clamp(20px, 4vw, 56px);
	background: #123c49;
	color: #f6efe0;
}

.vq-band h2 {
	margin: 0 0 .4rem;
	font-family: var(--vq-font-serif);
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	color: inherit;
}

.vq-band p {
	margin: 0;
	max-width: 40rem;
	line-height: 1.6;
}

.vq-band--wedding {
	background: var(--vq-surface);
	color: var(--vq-ink);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}

.vq-band__btn {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: .8rem 1.6rem;
	background: #e7b65b;
	color: #26362e;
	font-weight: 600;
	text-decoration: none;
}

@media (max-width: 1024px) {
	.vq-hub .vq-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.vq-hub {
		gap: 1.25rem;
	}

	.vq-hub .vq-grid {
		grid-template-columns: 1fr;
	}

	/* Phone: All plus the top two areas, the rest sit in More. */
	.vq-chip--wide {
		display: none;
	}

	.vq-more__dup {
		display: block;
	}

	.vq-chips {
		flex-wrap: nowrap;
		gap: .5rem;
	}

	.vq-chip {
		padding: .6rem .9rem;
		font-size: .9rem;
	}

	.vq-more {
		flex: 1 1 auto;
		min-width: 0;
	}

	.vq-more > summary {
		justify-content: center;
	}

	.vq-more__list {
		right: 0;
		left: auto;
		min-width: 200px;
	}

	.vq-hub__bar {
		flex-direction: column;
		align-items: stretch;
	}

	.vq-sort {
		justify-content: flex-end;
	}
}

/* ------------------------------------------------------- guide blocks (0.7.2)
   Used inside guide text: a quick-answers box, a row of jump links and
   open-and-close sections built from the plain HTML details element. */

.vq-entity__content h2[id] {
	scroll-margin-top: 90px;
}

.vq-quick {
	margin: 1.5rem 0;
	padding: 1.5rem;
	background: var(--vq-surface);
	border-left: 4px solid var(--vq-accent);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}

.vq-quick h2 {
	margin-top: 0;
}

.vq-quick dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: .6rem 1.5rem;
	margin: 0;
}

.vq-quick dt {
	font-weight: 600;
}

.vq-quick dd {
	margin: 0;
}

.vq-quick__src {
	margin: 1rem 0 0;
	font-size: .9rem;
	color: var(--vq-muted);
}

.vq-jump {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 1.25rem 0 2rem;
	padding: 0;
	list-style: none;
}

.vq-jump a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: .5rem 1rem;
	background: var(--vq-surface);
	color: var(--vq-ink);
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none;
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10);
}

.vq-jump a:hover {
	background: var(--vq-accent);
	color: var(--vq-accent-ink);
}

.vq-accs {
	margin: 1rem 0 1.5rem;
}

.vq-acc {
	margin: 0 0 .5rem;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10);
}

.vq-acc summary {
	position: relative;
	min-height: 44px;
	box-sizing: border-box;
	padding: .85rem 3rem .85rem 1.25rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.vq-acc summary::-webkit-details-marker {
	display: none;
}

.vq-acc summary::after {
	content: "";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	width: 9px;
	height: 9px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
}

.vq-acc[open] summary::after {
	transform: translateY(-30%) rotate(225deg);
}

.vq-acc__body {
	padding: 0 1.25rem 1.1rem;
}

.vq-acc__body > :first-child {
	margin-top: 0;
}

.vq-acc__body > :last-child {
	margin-bottom: 0;
}

@media (max-width: 640px) {
	.vq-quick dl {
		grid-template-columns: 1fr;
		gap: .1rem;
	}

	.vq-quick dd {
		margin-bottom: .6rem;
	}
}

/* ------------------------------------------------------- guide layout (0.7.3)
   Full width like the rest of the site: text on the left, a sticky contents
   and quick-facts column on the right. Below 1025px it stacks, with the
   contents first and closed. */

.vq-guide {
	max-width: none;
	padding-left: max(clamp(16px, 2.5vw, 40px), calc((100% - 1680px) / 2));
	padding-right: max(clamp(16px, 2.5vw, 40px), calc((100% - 1680px) / 2));
}

.vq-guide__hero {
	margin: 0 0 2rem;
}

.vq-guide__hero img {
	width: 100%;
	max-height: 480px;
	object-fit: cover;
	border-radius: 0;
}

.vq-guide__layout {
	display: grid;
	grid-template-columns: minmax(0, 64rem) 340px;
	justify-content: space-between;
	gap: 2rem 3rem;
	align-items: start;
}

.vq-guide__body {
	max-width: none;
	min-width: 0;
}

.vq-guide__side {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	max-height: calc(100vh - 48px);
	overflow: auto;
}

.vq-guide__toc,
.vq-guide__facts {
	margin: 0;
	padding: 1.25rem 1.5rem;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}

.vq-guide__toc summary {
	font-family: var(--vq-font-serif);
	font-weight: 600;
	font-size: 1.15rem;
	min-height: 44px;
	display: flex;
	align-items: center;
	cursor: pointer;
	list-style: none;
}

.vq-guide__toc summary::-webkit-details-marker {
	display: none;
}

.vq-guide__toc ol {
	margin: .25rem 0 0;
	padding-left: 1.2rem;
}

.vq-guide__toc li {
	margin: 0;
}

.vq-guide__toc a {
	display: block;
	padding: .35rem 0;
	text-decoration: none;
	color: var(--vq-ink);
}

.vq-guide__toc a:hover {
	color: var(--vq-accent-text);
}

.vq-guide__facts-title {
	font-family: var(--vq-font-serif);
	font-size: 1.15rem;
}

@media (max-width: 1024px) {
	.vq-guide__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.vq-guide__side {
		order: -1;
		position: static;
		max-height: none;
		overflow: visible;
	}

	.vq-guide__toc summary::after {
		content: "";
		margin-left: auto;
		width: 9px;
		height: 9px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translateY(-2px);
	}

	.vq-guide__toc[open] summary::after {
		transform: rotate(225deg);
	}
}

.vq-guide .vq-entity__head {
	margin-bottom: 1.5rem;
}

.vq-guide__facts,
.vq-guide__toc {
	border: 0;
	border-radius: 0;
}

/* ------------------------------------------------------- guide hero (0.7.4)
   The photo runs edge to edge with the title and the last-checked line on
   top of it, in white. The rest of the page keeps the shared side padding. */

.vq-guide {
	--vq-gutter: max(clamp(16px, 2.5vw, 40px), calc((100% - 1680px) / 2));
	padding: 0 0 4rem;
}

.vq-guide__layout,
.vq-guide__related,
.vq-guide__head {
	padding-left: var(--vq-gutter);
	padding-right: var(--vq-gutter);
}

.vq-guide__head {
	padding-top: 2rem;
}

.vq-guide__layout {
	margin-top: 2.5rem;
}

.vq-guide__hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	width: 100%;
	min-height: clamp(300px, 38vw, 540px);
	margin: 0;
	overflow: hidden;
	background: #123c49;
}

.vq-guide__hero .vq-guide__hero-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: cover;
	border-radius: 0;
}

.vq-guide__hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(18, 60, 73, .78) 0%, rgba(18, 60, 73, .35) 38%, rgba(18, 60, 73, 0) 65%);
	pointer-events: none;
}

.vq-guide__hero-text {
	position: relative;
	z-index: 1;
	width: 100%;
	box-sizing: border-box;
	padding: 2rem var(--vq-gutter);
	color: #fff;
}

.vq-guide__hero-text h1 {
	margin: 0;
	font-family: var(--vq-font-serif);
	font-weight: 600;
	font-size: clamp(2rem, 4.5vw, 3.5rem);
	line-height: 1.1;
	color: #fff;
	text-wrap: balance;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

.vq-guide__hero-meta {
	margin: .6rem 0 0;
	font-size: 1rem;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .45);
}

@media (max-width: 640px) {
	.vq-guide__hero-text {
		padding-bottom: 1.5rem;
	}
}

/* ------------------------------------------------------- guides hub (0.8.0) */

.vq-guides__groups {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.vq-guides__group {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	scroll-margin-top: 6rem;
}

.vq-guides__group h2 {
	margin: 0;
	font-family: var(--vq-font-serif);
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	line-height: 1.2;
}

.vq-guides__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.vq-guiderow {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr) auto;
	align-items: stretch;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
	margin: 0;
}

.vq-guiderow__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #123c49;
}

.vq-guiderow__media--none {
	background: linear-gradient(135deg, #123c49 0%, #1d5a6b 100%);
}

.vq-guiderow__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.vq-guiderow__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: .5rem;
	padding: 1.5rem 1.75rem;
}

.vq-guiderow__title {
	margin: 0;
	font-family: var(--vq-font-serif);
	font-size: clamp(1.25rem, 1.8vw, 1.5rem);
	line-height: 1.25;
}

.vq-guiderow__title a {
	color: inherit;
	text-decoration: none;
}

/* The whole row is the link. */
.vq-guiderow__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.vq-guiderow:hover .vq-guiderow__title a {
	text-decoration: underline;
	text-underline-offset: .2em;
}

.vq-guiderow__title a:focus-visible::after {
	outline: 3px solid #e7b65b;
	outline-offset: 2px;
}

.vq-guiderow__sum {
	margin: 0;
	max-width: 56rem;
	color: var(--vq-muted);
	line-height: 1.55;
}

.vq-guiderow__meta {
	margin: 0;
	font-size: .85rem;
	color: var(--vq-muted);
}

.vq-guiderow__go {
	align-self: center;
	padding: 0 2rem;
	font-weight: 600;
	font-size: .95rem;
	color: var(--vq-accent-text, #8A5A12);
	white-space: nowrap;
}

.vq-guiderow__go::after {
	content: " \2192";
}

@media (max-width: 900px) {
	.vq-guiderow {
		grid-template-columns: minmax(0, 200px) minmax(0, 1fr);
	}

	.vq-guiderow__go {
		display: none;
	}
}

@media (max-width: 640px) {
	.vq-guiderow {
		grid-template-columns: 1fr;
	}

	.vq-guiderow__media {
		aspect-ratio: 16 / 9;
	}

	.vq-guiderow__body {
		padding: 1.15rem 1.25rem 1.35rem;
	}
}

@media (max-width: 640px) {
	.vq-guides__jump .vq-chip {
		padding: .5rem .85rem;
		font-size: .9rem;
	}
}

/* ------------------------------------------------------- stay page (0.8.1) */

.vq-stay {
	--vq-stay-gutter: max(clamp(16px, 2.5vw, 40px), calc((100% - 1680px) / 2));
	--vq-panel-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: 16px var(--vq-stay-gutter) 64px;
	max-width: none;
	color: var(--vq-ink);
}

.vq-stay h1,
.vq-stay h2,
.vq-stay h3 {
	font-family: var(--vq-font-serif);
	font-weight: 600;
	color: inherit;
}

.vq-stay h2 {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.2;
}

.vq-only-narrow { display: none; }
.vq-only-wide { display: inline; }

.vq-stay__crumbs {
	order: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	font-size: .875rem;
	color: var(--vq-muted);
}

.vq-stay__crumbs a { color: inherit; }

/* Heading */
.vq-stay__head {
	order: 1;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.vq-stay__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding-right: 220px;
}

.vq-tag {
	background: var(--vq-accent);
	color: var(--vq-accent-ink);
	font-weight: 600;
	font-size: .8125rem;
	padding: 4px 10px;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.vq-stay__area {
	font-size: .95rem;
	color: var(--vq-muted);
}

.vq-stay__head h1 {
	margin: 0;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.1;
}

.vq-stay__lede {
	margin: 0;
	max-width: 760px;
	font-size: 1.2rem;
	line-height: 1.55;
}

.vq-stay__actions {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	gap: 10px;
}

.vq-act {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 18px;
	border: 0;
	background: var(--vq-surface);
	color: var(--vq-ink);
	font: 600 .95rem/1 var(--vq-font-sans, inherit);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .12);
	cursor: pointer;
}

.vq-act svg,
.vq-heart svg { flex: none; }

.vq-act[aria-pressed="true"] svg,
.vq-heart[aria-pressed="true"] svg { fill: currentColor; }

.vq-act:focus-visible,
.vq-heart:focus-visible,
.vq-photos__tile:focus-visible,
.vq-photos__all:focus-visible,
.vq-btn:focus-visible,
.vq-iconlink:focus-visible { outline: 3px solid var(--vq-accent); outline-offset: 2px; }

/* Photos */
.vq-photos {
	order: 2;
	position: relative;
	display: grid;
	gap: 8px;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 200px 200px;
}

.vq-photos__tile {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	overflow: hidden;
	background: #123c49;
	cursor: zoom-in;
}

.vq-photos__tile img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.vq-photos__tile:first-child { grid-row: 1 / span 2; }

.vq-photos--s0 { grid-template-columns: 1fr; grid-template-rows: 420px; }
.vq-photos--s0 .vq-photos__tile:first-child { grid-row: auto; }
.vq-photos--s1 { grid-template-columns: 2fr 1fr; }
.vq-photos--s1 .vq-photos__tile:nth-child(2) { grid-row: 1 / span 2; }
.vq-photos--s2 { grid-template-columns: 2fr 1fr; }
.vq-photos--s3 .vq-photos__tile:nth-child(4) { grid-column: 2 / span 2; }

.vq-photos__all {
	position: absolute;
	right: 12px;
	bottom: 12px;
	min-height: 40px;
	padding: 0 14px;
	border: 0;
	background: var(--vq-surface);
	color: var(--vq-ink);
	font: 600 .875rem/1 var(--vq-font-sans, inherit);
	cursor: pointer;
	box-shadow: 0 1px 4px rgba(38, 54, 46, .25);
}

/* Panels, buttons */
.vq-panel {
	background: var(--vq-surface);
	box-shadow: var(--vq-panel-shadow);
	padding: 24px;
}

.vq-stay__top,
.vq-stay__lower {
	order: 3;
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
	gap: 28px 32px;
	align-items: stretch;
}

.vq-stay__lower { order: 4; }
.vq-stay__top--solo,
.vq-stay__lower--solo { grid-template-columns: minmax(0, 1fr); }

.vq-stay__contact {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.vq-stay__contact h2 { font-size: 1.375rem; }
.vq-stay__main { grid-column: 1; grid-row: 1; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.vq-stay__top--solo .vq-stay__main { grid-column: 1 / -1; }

.vq-stay__buttons { display: flex; flex-direction: column; gap: 12px; }
.vq-stay__pair { display: grid; grid-template-columns: 1fr; gap: 12px; }

.vq-btn {
	display: block;
	box-sizing: border-box;
	padding: 14px 18px;
	text-align: center;
	text-decoration: none;
	font-weight: 600;
	color: var(--vq-ink);
	border: 2px solid transparent;
}

.vq-btn--primary { background: var(--vq-accent); color: var(--vq-accent-ink); }
.vq-btn--line { border-color: var(--vq-ink); padding: 12px 18px; }

.vq-stay__social { display: flex; gap: 10px; align-items: center; }

.vq-iconlink {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--vq-ink);
	background: var(--vq-bg, #f6efe0);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .12);
}

.vq-stay__small { margin: 0; font-size: .8125rem; color: var(--vq-muted); }
.vq-stay__stamp { margin-top: auto; padding-top: 12px; }

/* Main column */
.vq-know {
	order: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 20px;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .12);
	border-left: 4px solid var(--vq-accent);
	font-size: .95rem;
	line-height: 1.5;
}

.vq-stay__about { order: 2; display: flex; flex-direction: column; gap: 12px; }
.vq-glance { order: 3; display: flex; flex-direction: column; gap: 16px; }
.vq-glance h2 { font-size: 1.5rem; }

.vq-glance__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px 16px;
}

.vq-glance__item { display: flex; gap: 10px; align-items: flex-start; }
.vq-glance__item svg { flex: none; }
.vq-glance__label { font-size: .8125rem; color: var(--vq-muted); }
.vq-glance__value { font-size: 1.125rem; font-weight: 600; }

.vq-stay__about .vq-entity__content { font-size: 1.0625rem; line-height: 1.7; }
.vq-stay__about .vq-entity__content > :first-child { margin-top: 0; }

/* Lower block */
.vq-stay__stack { grid-column: 1; grid-row: 1; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.vq-stay__lower--solo .vq-stay__stack { grid-column: 1 / -1; }
.vq-stay__amen,
.vq-stay__beaches { display: flex; flex-direction: column; gap: 12px; }
.vq-stay__amen h2,
.vq-stay__beaches h2 { font-size: 1.5rem; }

.vq-chiplist {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vq-chiplist li {
	margin: 0;
	padding: 8px 14px;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .12);
	font-size: .95rem;
}

.vq-chiplist--links li { padding: 0; background: var(--vq-ink); box-shadow: none; }
.vq-chiplist--links a { display: block; padding: 8px 14px; color: var(--vq-surface); text-decoration: none; }

.vq-stay__wedding { margin-top: auto; }
.vq-stay__wedding .vq-band__btn { flex: none; }

.vq-find {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 20px 22px 22px;
	min-width: 0;
	align-self: start;
}
.vq-find__head { display: flex; align-items: center; gap: 12px; }
.vq-find__head h2 { margin: 0; font-size: 1.35rem; }
.vq-find__badge { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--vq-gold, #e7b65b); color: #26362e; flex: none; }
.vq-find__rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.vq-find__rows li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: 1px solid var(--vq-line, #e2d6bc); }
.vq-find__ico { flex: none; display: inline-flex; margin-top: 2px; color: #8a5a12; }
.vq-find__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: .95rem; line-height: 1.45; overflow-wrap: anywhere; }
.vq-find__txt small { font-size: .8rem; color: var(--vq-muted, #5a6459); }
.vq-find .vq-find__copy { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 0; border-radius: 999px; background: #f8f0df !important; color: #26362e !important; font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; box-shadow: inset 0 0 0 1px #e2d6bc; }
.vq-find .vq-find__copy:hover, .vq-find .vq-find__copy:focus-visible { background: #f1c677 !important; color: #26362e !important; box-shadow: none; }
.vq-find .vq-find__copy.is-done { background: #26362e !important; color: #fffbf2 !important; }
.vq-find__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.vq-find .vq-find__go { flex: 1 1 100%; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-radius: 999px; background: #e7b65b; color: #26362e; font-weight: 700; text-decoration: none; }
.vq-find .vq-find__go:hover, .vq-find .vq-find__go:focus-visible { background: #f1c677; color: #26362e; }
.vq-find .vq-find__alt { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 14px; border-radius: 999px; box-shadow: inset 0 0 0 2px #26362e; color: #26362e; font-weight: 600; font-size: .92rem; text-decoration: none; }
.vq-find .vq-find__alt:hover, .vq-find .vq-find__alt:focus-visible { background: #26362e; color: #fffbf2; }
.vq-textlink { font-weight: 600; font-size: .95rem; color: var(--vq-ink); min-height: 44px; display: inline-flex; align-items: center; }

/* More stays */
.vq-stay__more { order: 5; display: flex; flex-direction: column; gap: 16px; }
.vq-stay__more h2 { font-size: 1.75rem; }
.vq-staygrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.vq-staycard { background: var(--vq-surface); box-shadow: 0 1px 4px rgba(38, 54, 46, .12); }
.vq-staycard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #123c49; }
.vq-staycard__media a { display: block; height: 100%; }
.vq-staycard__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vq-staycard__body { padding: 18px 20px; }
.vq-staycard__body h3 { margin: 0 0 4px; font-size: 1.25rem; }
.vq-staycard__body h3 a { color: inherit; text-decoration: none; }
.vq-staycard__body p { margin: 0; font-size: .875rem; color: var(--vq-muted); }

.vq-heart {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: var(--vq-surface);
	color: var(--vq-ink);
	cursor: pointer;
}

.vq-stay .vq-admin { order: 6; }

/* Viewer and toast */
.vq-viewer {
	width: min(1100px, 94vw);
	max-height: 92vh;
	padding: 0;
	border: 0;
	background: var(--vq-surface);
	color: var(--vq-ink);
	overflow: auto;
}

.vq-viewer::backdrop { background: rgba(18, 60, 73, .82); }

.vq-viewer__bar {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .12);
}

.vq-viewer__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 8px; }
.vq-viewer__grid figure { margin: 0; scroll-margin-top: 64px; }
.vq-viewer__grid img { display: block; width: 100%; height: auto; }

.vq-toast {
	position: fixed;
	top: 84px;
	right: clamp(16px, 2.5vw, 40px);
	z-index: 50;
	padding: 12px 18px;
	background: #26362e;
	color: #fdfaf0;
	font-size: .95rem;
	box-shadow: 0 4px 18px rgba(38, 54, 46, .3);
}

.vq-toast[hidden] { display: none; }
.vq-toast a { color: #e7b65b; font-weight: 600; }

/* Tablet and phone */
@media (max-width: 900px) {
	.vq-stay { gap: 22px; padding-top: 0; }
	.vq-stay__crumbs { display: none; }
	.vq-only-wide { display: none; }
	.vq-only-narrow { display: inline; }

	/* The photo leads on a phone, edge to edge, then the heading. */
	.vq-photos {
		order: 0;
		display: block;
		margin-left: calc(-1 * clamp(16px, 2.5vw, 40px));
		margin-right: calc(-1 * clamp(16px, 2.5vw, 40px));
		height: 240px;
	}
	.vq-photos__tile { display: none; width: 100%; height: 100%; }
	.vq-photos__tile:first-child { display: block; }
	.vq-photos__all { right: 12px; bottom: 12px; }

	.vq-stay__head { order: 1; }
	.vq-stay__tags { padding-right: 0; }
	.vq-stay__actions { position: static; display: grid; grid-template-columns: 1fr 1fr; margin-top: 4px; }

	.vq-stay__top,
	.vq-stay__lower { display: flex; flex-direction: column; gap: 22px; }
	.vq-stay__contact { order: 0; }
	.vq-stay__main { gap: 22px; }
	.vq-glance { order: 2; padding: 20px; }
	.vq-stay__about { order: 3; }
	.vq-glance__grid { grid-template-columns: 1fr 1fr; gap: 14px; }
	.vq-glance__value { font-size: 1rem; }
	.vq-stay__social { justify-content: center; }
	.vq-stay__pair { grid-template-columns: 1fr 1fr; }
	.vq-stay__pair--one { grid-template-columns: 1fr; }

	.vq-stay__stack { display: contents; }
	.vq-stay__amen { order: 1; }
	.vq-stay__beaches { order: 2; }
	.vq-find { order: 3; }
	.vq-stay__wedding { order: 4; margin-top: 0; }

	.vq-staygrid { grid-template-columns: 1fr; }
	.vq-viewer__grid { grid-template-columns: 1fr; }
	.vq-toast { top: auto; bottom: 16px; left: 16px; right: 16px; }
}

/* ------------------------------------------------------- guide tables (0.8.2) */

.vq-guide__body table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	margin: 1.25rem 0;
	font-size: .975rem;
}

.vq-guide__body th,
.vq-guide__body td {
	padding: .7rem 1rem .7rem 0;
	text-align: left;
	vertical-align: top;
	border: 0;
	border-bottom: 1px solid rgba(38, 54, 46, .15);
}

.vq-guide__body th {
	font-weight: 600;
	font-size: .85rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--vq-muted);
	white-space: nowrap;
}

.vq-guide__body table tbody tr:last-child td {
	border-bottom: 0;
}

/* ============================================================ tour comparison
   Guides set to the Tour comparison layout (the bio bay page). The whole page
   takes the dark Wild Vieques palette. Corners square; cards keep a thin line
   plus a mild shadow, as the design system says for dark pages.
   ===================================================================== */

body.vq-tours-page {
	--vq-page: #123c49;
	--vq-surface: #1a4b5a;
	--vq-ink: #efeadd;
	--vq-muted: #b9c4be;
	--vq-line: #2e6070;
	--vq-accent: #4cb9ad;
	--vq-accent-ink: #0e2f39;
	--vq-accent-text: #7fd3c8;
	--vq-warn: #e3b85c;
	--vq-closed: #f0958a;
	--vq-notice-bg: #1f4f5d;
	--vq-notice-line: #4cb9ad;
	--vq-show-light: none;
	--vq-show-dark: block;
	--vq-shadow-dark: 0 1px 4px rgba(0, 0, 0, .28), 0 4px 14px rgba(0, 0, 0, .18);
}

.vq-tours {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 16px 56px;
}

.vq-tours > section,
.vq-tours > aside { margin-top: 56px; }
.vq-tours > header { margin-top: 32px; }

.vq-tours h2 { font-size: clamp(1.75rem, 4vw, 2.25rem); margin: 0; }
.vq-tours h3 { font-size: 1.25rem; margin: 4px 0 0; }
.vq-tours p { margin: 0; }
.vq-tours__muted { color: var(--vq-muted); }
.vq-tours__note { font-size: .875rem; }
.vq-tours__eyebrow { color: var(--vq-accent-text); }

.vq-tours__hero { display: flex; flex-wrap: wrap; align-items: center; gap: 40px; }
.vq-tours__hero-text { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.vq-tours__hero h1 { margin: 0; font-size: clamp(2.5rem, 6vw, 4.25rem); }
.vq-tours__lede { font-size: 1.25rem; max-width: 30em; }
.vq-tours__hero-img { flex: 1 1 420px; min-width: 0; }
.vq-tours__hero-img img { display: block; width: 100%; height: auto; }
.vq-tours__hero--solo .vq-tours__hero-text { flex-basis: 100%; }

.vq-tours__btn {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 22px;
	border: 0;
	background: var(--vq-accent);
	color: var(--vq-accent-ink);
	font: 600 .9375rem var(--vq-font-body);
	letter-spacing: .04em;
	text-decoration: none;
	cursor: pointer;
}
.vq-tours__btn:hover { background: var(--vq-accent-text); color: var(--vq-accent-ink); }
.vq-tours a:focus-visible,
.vq-tours button:focus-visible,
.vq-tours summary:focus-visible { outline: 3px solid var(--vq-warn); outline-offset: 2px; }

.vq-tours__before,
.vq-tours__filters,
.vq-tours__card,
.vq-tours__picks a,
.vq-tours__nights > div,
.vq-tours__empty {
	background: var(--vq-surface);
	border: 1px solid var(--vq-line);
	box-shadow: var(--vq-shadow-dark, 0 1px 4px rgba(0, 0, 0, .28), 0 4px 14px rgba(0, 0, 0, .18));
}

.vq-tours__before { display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: flex-start; padding: 24px; }
.vq-tours__before h2 { font-size: 1.5rem; flex: 0 0 auto; }
.vq-tours__before > div { flex: 1 1 220px; min-width: 0; }
.vq-tours__before p + p { margin-top: 4px; font-size: .9375rem; }

.vq-tours__head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 24px; }
.vq-tours__head > p:not(.vq-label):not(.vq-tours__note) { max-width: 40em; }

.vq-tours__filters { display: flex; flex-direction: column; gap: 16px; padding: 20px; margin-bottom: 24px; }
.vq-tours__filters[hidden] { display: none; }
.vq-tours__filter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.vq-tours__filter > .vq-label { flex: 0 0 120px; }
.vq-tours__filter > div { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 300px; }
.vq-tours__chip {
	box-sizing: border-box;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--vq-line);
	background: transparent;
	color: var(--vq-ink);
	font: 600 .875rem var(--vq-font-body);
	cursor: pointer;
}
.vq-tours__chip[aria-pressed="true"] { background: var(--vq-accent); border-color: var(--vq-accent); color: var(--vq-accent-ink); }
.vq-tours__count {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-top: 1px solid var(--vq-line);
	padding-top: 16px;
	font-weight: 600;
}
.vq-tours__reset {
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--vq-accent-text);
	background: transparent;
	color: var(--vq-accent-text);
	font: 600 .875rem var(--vq-font-body);
	cursor: pointer;
}
.vq-tours__reset[hidden] { display: none; }

.vq-tours__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.vq-tours__card { display: flex; flex-direction: column; }
.vq-tours__card[hidden] { display: none; }
.vq-tours__photo { height: 180px; background: #416b57; overflow: hidden; }
.vq-tours__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vq-tours__body { padding: 20px; display: flex; flex-direction: column; gap: 14px; flex-grow: 1; }
.vq-tours__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.vq-tours__tags li { padding: 4px 10px; border: 1px solid var(--vq-line); font-size: .8125rem; }
.vq-tours__facts { margin: 0; display: flex; flex-direction: column; gap: 6px; font-size: .9375rem; }
.vq-tours__facts > div { display: flex; gap: 8px; }
.vq-tours__facts dt { flex: 0 0 112px; color: var(--vq-muted); }
.vq-tours__facts dd { margin: 0; }
.vq-tours__action { margin-top: auto; padding-top: 6px; display: flex; flex-direction: column; gap: 8px; }
.vq-tours__action .vq-tours__btn { width: 100%; }
.vq-tours__action .vq-tours__note { text-align: center; }

.vq-tours__empty { padding: 32px; text-align: center; margin-top: 24px; }
.vq-tours__empty[hidden] { display: none; }
.vq-tours__empty .vq-tours__btn { margin-top: 12px; }

.vq-tours__picks h2 { margin-bottom: 24px; }
.vq-tours__picks > div { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.vq-tours__picks a { display: flex; flex-direction: column; gap: 6px; padding: 20px; min-height: 140px; color: var(--vq-ink); text-decoration: none; }
.vq-tours__pick-title { font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.25rem; line-height: 1.25; }
.vq-tours__pick-go { margin-top: auto; font-size: .875rem; font-weight: 600; color: var(--vq-accent-text); }

.vq-tours__moon { display: flex; flex-direction: column; gap: 12px; }
.vq-tours__nights { display: flex; flex-wrap: wrap; gap: 12px; }
.vq-tours__nights > div { flex: 1 1 120px; min-width: 0; padding: 16px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.vq-tours__nights p { font-size: .875rem; }
.vq-tours__nights p:first-child { font-size: 1rem; }

.vq-tours__prose { max-width: 46rem; }
.vq-tours__text h2 { margin-top: 1.5em; }
.vq-tours__text h2:first-child { margin-top: 0; }

.vq-tours__close {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 40px clamp(20px, 4vw, 56px);
	background: #454744;
	color: #f6efe0;
}
.vq-tours__close p { font-family: var(--vq-font-serif); font-weight: 600; font-size: clamp(1.5rem, 3.5vw, 2rem); line-height: 1.2; }

/* ------------------------------------------------------- things to do hub, updates (0.10.0)
   Square corners, shadow and no border on the sand pages. */

.vq-things__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.vq-tcard {
	display: flex;
	flex-direction: column;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}

.vq-tcard__media {
	display: block;
	aspect-ratio: 3 / 2;
	background: var(--vq-line);
	overflow: hidden;
}

.vq-tcard__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.vq-tcard__body {
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding: 1.25rem 1.5rem 1.5rem;
	flex: 1;
}

.vq-tcard__title {
	margin: 0;
	font-size: 1.4rem;
}

.vq-tcard__title a {
	color: var(--vq-ink);
	text-decoration: none;
}

.vq-tcard__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.vq-tcard {
	position: relative;
}

.vq-tcard p {
	margin: 0;
	color: var(--vq-muted);
	line-height: 1.55;
}

.vq-tcard__go {
	margin-top: auto;
	padding-top: .4rem;
	font-weight: 600;
	color: var(--vq-accent-text);
}

.vq-tcard:hover .vq-tcard__go,
.vq-tcard:focus-within .vq-tcard__go {
	text-decoration: underline;
}

.vq-tcard--feature {
	grid-column: 1 / -1;
	flex-direction: row;
	background: #123c49;
	color: #efeadd;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .28), 0 4px 14px rgba(0, 0, 0, .18);
}

.vq-tcard--feature .vq-tcard__media {
	flex: 1 1 55%;
	aspect-ratio: auto;
	min-height: 320px;
}

.vq-tcard--feature .vq-tcard__body {
	flex: 1 1 45%;
	justify-content: center;
	padding: 2rem clamp(1.5rem, 4vw, 3.5rem);
}

.vq-tcard--feature .vq-tcard__title {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.vq-tcard--feature .vq-tcard__title a,
.vq-tcard--feature p {
	color: #efeadd;
}

.vq-tcard--feature .vq-tcard__go {
	flex: none;
	align-self: flex-start;
	margin-top: .6rem;
	padding: .8rem 1.6rem;
	background: #4cb9ad;
	color: #0e2f39;
	text-decoration: none !important;
}

@media (max-width: 900px) {
	.vq-things__grid {
		grid-template-columns: 1fr;
	}

	.vq-tcard--feature {
		flex-direction: column;
	}

	.vq-tcard--feature .vq-tcard__media {
		min-height: 0;
		aspect-ratio: 3 / 2;
	}
}

/* Activity chips above the tours and activities list. */
.vq-activities {
	margin: 1.25rem 0 1rem;
}

/* Updates (the blog). */
.vq-postcard {
	border: 0;
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}

.vq-postcard .vq-card__media {
	display: block;
	aspect-ratio: 3 / 2;
	background: var(--vq-line);
}

.vq-postcard__body {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding: 1.1rem 1.25rem 1.4rem;
}

.vq-postcard__meta,
.vq-post__meta {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem .75rem;
	margin: 0;
	font-size: .85rem;
	color: var(--vq-muted);
}

.vq-postcard__meta span,
.vq-post__meta a {
	font-weight: 600;
	color: var(--vq-accent-text);
	text-transform: uppercase;
	letter-spacing: .06em;
	text-decoration: none;
}

.vq-postcard .vq-card__title {
	margin: 0;
	font-size: 1.25rem;
}

.vq-postcard .vq-card__title a {
	color: var(--vq-ink);
	text-decoration: none;
}

.vq-postcard__sum {
	margin: 0;
	color: var(--vq-muted);
	line-height: 1.55;
}

.vq-post__head h1 {
	margin-top: .5rem;
}

.vq-post__more {
	max-width: 1180px;
	margin: 3.5rem auto 0;
}

.vq-post__more .vq-grid {
	grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr));
}

.vq-post__more h2 {
	font-size: 1.5rem;
	margin: 0 0 1rem;
}

.vq-post__all {
	font-weight: 600;
	color: var(--vq-accent-text);
}

.vq-blog .navigation.pagination {
	margin-top: 2rem;
}

.vq-blog .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.vq-blog .page-numbers {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: .5rem 1rem;
	background: var(--vq-surface);
	color: var(--vq-ink);
	text-decoration: none;
	font-weight: 600;
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}

.vq-blog .page-numbers.current {
	background: var(--vq-ink);
	color: var(--vq-surface);
}

/* ------------------------------------------------------- header and footer (0.11.0)
   The header is a fixed bar. On the home page it starts clear over the hero
   with white text, then turns solid cream with a soft shadow (200ms) and
   shrinks (250ms) once the page scrolls or a menu opens. Everywhere else it
   is solid from the start. It follows the page palette, so the bio bay page
   gets the dark one. Square corners, no borders on sand pages. */

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.vq-skip {
	position: fixed; left: 12px; top: -80px; z-index: 200;
	padding: 10px 16px;
	background: var(--vq-accent); color: var(--vq-accent-ink);
	font-weight: 600;
}
.vq-skip:focus { top: 12px; }

.vq-site-header {
	--vq-hh: 96px;
	--vq-nav: #123c49;
	position: relative;
	height: var(--vq-hh);
}
.vq-site-header.is-overlay { height: 0; }
.vq-tours-page .vq-site-header,
:root[data-theme="dark"] .vq-site-header { --vq-nav: var(--vq-ink); }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .vq-site-header { --vq-nav: var(--vq-ink); }
}

.vq-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	background: var(--vq-surface);
	color: var(--vq-nav);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
	transition: background-color .2s ease, box-shadow .2s ease, color .2s ease;
	font-family: var(--vq-font-body);
}
.vq-tours-page .vq-header,
:root[data-theme="dark"] .vq-header { box-shadow: 0 1px 0 var(--vq-line), 0 4px 14px rgba(0, 0, 0, .25); }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .vq-header { box-shadow: 0 1px 0 var(--vq-line), 0 4px 14px rgba(0, 0, 0, .25); }
}
body.admin-bar .vq-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .vq-header { top: 46px; } }

.vq-header__inner {
	box-sizing: border-box;
	height: 96px;
	padding: 0 clamp(16px, 2.8vw, 40px);
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	transition: height .25s ease;
}
.vq-header.is-scrolled .vq-header__inner { height: 68px; }

.vq-header__logo { flex: none; }
.vq-logo--hdr a { display: block; }
.vq-logo--hdr img { display: block; height: 48px; width: auto; transition: height .25s ease; }
.vq-header.is-scrolled .vq-logo--hdr img { height: 38px; }
.vq-logo--hdr .is-light { display: var(--vq-show-light); }
.vq-logo--hdr .is-dark { display: var(--vq-show-dark); }

/* Clear over the hero */
.vq-header.is-clear {
	background-color: transparent;
	box-shadow: none;
	color: #fff;
}
.vq-header.is-clear .vq-logo--hdr .is-light { display: none; }
.vq-header.is-clear .vq-logo--hdr .is-dark { display: block; }
.vq-header.is-clear::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, rgba(10, 40, 48, .45), rgba(10, 40, 48, 0));
}

/* Nav */
.vq-nav { flex: 1 1 auto; align-self: stretch; display: flex; justify-content: center; min-width: 0; }
.vq-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: stretch; gap: 30px; }
.vq-nav__item { position: relative; display: flex; align-items: center; }
.vq-nav__link {
	display: block; padding: 8px 0;
	border-bottom: 2px solid transparent;
	color: inherit; font-weight: 600; font-size: .9375rem; line-height: 1.4;
	text-decoration: none; white-space: nowrap;
	transition: color .15s ease, border-color .15s ease;
}
.vq-nav__link:hover,
.vq-nav__item.is-open > .vq-nav__link { color: var(--vq-accent-text); }
.vq-header.is-clear .vq-nav__link:hover,
.vq-header.is-clear .vq-nav__item.is-open > .vq-nav__link { color: #fff; }
.vq-nav__item.is-current > .vq-nav__link { border-bottom-color: var(--vq-accent); }
.vq-nav__item.is-open > .vq-nav__link { border-bottom-color: var(--vq-accent); }

.vq-nav__toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 32px; margin-left: 2px; padding: 0;
	background: none; border: 0; border-radius: 0; color: inherit; cursor: pointer;
}
.vq-nav__toggle svg { transition: transform .15s ease; stroke-width: 2.6; }
.vq-nav__item.is-open > .vq-nav__toggle svg { transform: rotate(180deg); }

/* Dropdown */
.vq-mega {
	position: absolute; top: calc(100% + 8px); left: -16px; z-index: 5;
	box-sizing: border-box; width: 340px; padding: 12px;
	display: none; gap: 12px;
	background: var(--vq-surface); color: var(--vq-ink);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 12px 28px rgba(38, 54, 46, .14);
}
.vq-mega::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 8px; }
.vq-mega--tile { width: 700px; }
.vq-nav__item.is-open > .vq-mega { display: flex; animation: vq-mega-in .15s ease; }
.vq-nav__item:nth-last-child(-n+2) > .vq-mega { left: auto; right: -16px; }
.vq-tours-page .vq-mega,
:root[data-theme="dark"] .vq-mega { box-shadow: 0 1px 0 var(--vq-line), 0 12px 28px rgba(0, 0, 0, .4); }
@keyframes vq-mega-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.vq-mega__links { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }
.vq-mega__row { display: block; padding: 14px 16px; color: var(--vq-ink); text-decoration: none; }
.vq-mega__row:hover { background: var(--vq-page); }
.vq-mega__title { display: block; font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.125rem; line-height: 1.3; }
.vq-mega__desc { display: block; margin-top: 2px; font-size: .875rem; line-height: 1.45; color: var(--vq-muted); }
.vq-mega__all {
	display: flex; align-items: center; gap: 8px; padding: 14px 16px;
	color: var(--vq-accent-text); font-weight: 600; font-size: .9375rem; text-decoration: none;
}
.vq-mega__all:hover { text-decoration: underline; }
.vq-mega__tile {
	flex: 0 0 280px; box-sizing: border-box; min-height: 250px; padding: 24px;
	display: flex; flex-direction: column; justify-content: flex-end; gap: 10px;
	background: linear-gradient(180deg, rgba(18, 60, 73, .35), #123c49 72%), linear-gradient(135deg, #2a7a86, #0f4a4a);
	background-size: cover; background-position: center;
	color: #efeadd; text-decoration: none;
}
.vq-mega__kicker { font-size: .75rem; font-weight: 600; letter-spacing: .12em; color: #7fd3c8; }
.vq-mega__tt { font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.5rem; line-height: 1.2; }
.vq-mega__tx { font-size: .875rem; line-height: 1.5; color: #b9c4be; }
.vq-mega__tile:hover .vq-mega__tt { text-decoration: underline; }

/* Dim behind a dropdown over the hero */
.vq-dim {
	position: fixed; inset: 0; z-index: 90; pointer-events: none;
	background: rgba(10, 40, 48, .28); opacity: 0; transition: opacity .2s ease;
}
.vq-dim.is-on { opacity: 1; }

/* Buttons */
.vq-header__actions { flex: none; display: flex; align-items: center; gap: 12px; }
.vq-hbtn {
	display: inline-flex; align-items: center; gap: 8px;
	height: 44px; box-sizing: border-box; padding: 0 16px;
	font-family: var(--vq-font-body); font-weight: 600; font-size: .875rem; line-height: 1;
	text-decoration: none; white-space: nowrap; border-radius: 0;
	transition: background-color .2s ease, color .2s ease, height .25s ease;
}
.vq-hbtn--ig { background: var(--vq-page); color: var(--vq-nav); }
.vq-hbtn--ig:hover { color: var(--vq-accent-text); }
.vq-hbtn--trip { padding-right: 8px; background: var(--vq-accent); color: var(--vq-accent-ink); font-size: .9375rem; }
.vq-hbtn--trip:hover { filter: brightness(1.05); }
.vq-header.is-scrolled .vq-hbtn { height: 40px; }
.vq-header.is-clear .vq-hbtn--ig { background: rgba(255, 255, 255, .16); color: #fff; }
.vq-header.is-clear .vq-hbtn--ig:hover { background: rgba(255, 255, 255, .26); color: #fff; }
.vq-hbtn--trip:not(:has([data-vq-trip-count]:not([hidden]))) { padding-right: 16px; }
.vq-hbtn__count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 28px; height: 28px; box-sizing: border-box; padding: 0 6px;
	background: #26362e; color: #f8f0df; font-size: .8125rem;
}
.vq-hbtn__count[hidden] { display: none; }
.vq-hbtn--tripdark { height: 48px; padding: 0 8px 0 20px; background: #4cb9ad; color: #0e2f39; font-size: 1rem; }
.vq-hbtn--tripdark:not(:has([data-vq-trip-count]:not([hidden]))) { padding-right: 20px; }
.vq-hbtn--tripdark .vq-hbtn__count { background: #0e2f39; color: #efeadd; min-width: 30px; height: 32px; }

.vq-header a:focus-visible,
.vq-header button:focus-visible { outline: 3px solid var(--vq-accent); outline-offset: 2px; }

.vq-menu-btn {
	display: none; width: 44px; height: 44px; padding: 0; align-items: center; justify-content: center;
	background: none; border: 0; border-radius: 0; color: inherit; cursor: pointer;
}
.vq-menu-btn__close { display: none; }
.vq-menu-btn[aria-expanded="true"] .vq-menu-btn__open { display: none; }
.vq-menu-btn[aria-expanded="true"] .vq-menu-btn__close { display: inline-flex; }

/* Tighten before the phone layout */
@media (max-width: 1279px) {
	.vq-hbtn--ig .vq-hbtn__text { display: none; }
	.vq-hbtn--ig { padding: 0 12px; }
	.vq-nav__list { gap: 22px; }
}

/* Phone and small tablet: logo, Instagram, My Trip, menu button; the menu is a drawer. */
@media (max-width: 1080px) {
	.vq-site-header { --vq-hh: 64px; }
	.vq-header__inner,
	.vq-header.is-scrolled .vq-header__inner { height: 64px; gap: 12px; }
	.vq-logo--hdr img,
	.vq-header.is-scrolled .vq-logo--hdr img { height: 36px; }
	.vq-hbtn,
	.vq-header.is-scrolled .vq-hbtn { height: 40px; }
	.vq-hbtn--trip .vq-hbtn__text { display: none; }
	.vq-hbtn--trip { padding: 0 12px; }
	.vq-hbtn--trip:not(:has([data-vq-trip-count]:not([hidden]))) { padding-right: 12px; }
	.vq-hbtn--trip .vq-hbtn__count { min-width: 24px; height: 24px; }
	.vq-menu-btn { display: inline-flex; }

	.vq-nav {
		position: fixed; left: 0; right: 0; top: 64px; bottom: 0; z-index: 99;
		display: none; justify-content: flex-start; align-items: flex-start;
		overflow-y: auto; padding: 8px clamp(16px, 4vw, 40px) 32px;
		background: var(--vq-surface); color: var(--vq-nav);
	}
	body.admin-bar .vq-nav { top: 110px; }
	body.vq-drawer-open .vq-nav { display: block; }
	body.vq-drawer-open { overflow: hidden; }
	.vq-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.vq-nav__item { flex-wrap: wrap; border-bottom: 1px solid var(--vq-line); }
	.vq-nav__link { flex: 1 1 0; padding: 16px 0; font-size: 1.0625rem; border-bottom: 0; }
	.vq-nav__item.is-current > .vq-nav__link { color: var(--vq-accent-text); }
	.vq-nav__toggle { width: 48px; height: 48px; margin: 0; }
	.vq-mega,
	.vq-mega--tile { position: static; display: none; width: auto; flex: 0 0 100%; padding: 0 0 12px; box-shadow: none; background: transparent; animation: none; }
	.vq-mega::before { display: none; }
	.vq-nav__item.is-open > .vq-mega { display: block; }
	.vq-mega__tile { display: none; }
	.vq-mega__row { padding: 12px 0 12px 16px; }
	.vq-mega__all { padding: 12px 0 4px 16px; }
	.vq-dim { display: none; }
}

/* Footer: always dark */
.vq-footer {
	background: #123c49; color: #efeadd;
	font-family: var(--vq-font-body); font-size: 1rem; line-height: 1.6;
}
.vq-tours-page .vq-footer,
:root[data-theme="dark"] .vq-footer { background: #0e2f39; border-top: 1px solid #2e6070; }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .vq-footer { background: #0e2f39; border-top: 1px solid #2e6070; }
}
.vq-footer a { color: #efeadd; text-decoration: none; }
.vq-footer a:hover { color: #7fd3c8; }
.vq-footer a:focus-visible,
.vq-footer input:focus-visible,
.vq-footer button:focus-visible { outline: 3px solid #e3b85c; outline-offset: 2px; }
.vq-footer h2,
.vq-footer h3 { margin: 0; font-family: var(--vq-font-serif); font-weight: 600; color: #efeadd; }
.vq-footer p { margin: 0; }

.vq-footer__inner {
	max-width: 1440px; margin: 0 auto; box-sizing: border-box;
	padding: 64px clamp(16px, 2.8vw, 40px) 32px;
	display: flex; flex-direction: column; gap: 56px;
}
.vq-footer__rule { height: 1px; margin: 0; border: 0; background: #2e6070; }

.vq-footer__top { display: flex; gap: 40px; align-items: stretch; }
.vq-footer__news { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.vq-footer__news h2 { font-size: 2rem; line-height: 1.2; }
.vq-footer__news > p { max-width: 520px; color: #b9c4be; }
.vq-news { margin: 6px 0 0; display: flex; flex-direction: column; gap: 8px; max-width: 520px; }
.vq-news label { font-size: .875rem; font-weight: 600; }
.vq-news__row { display: flex; gap: 10px; }
.vq-news input[type="email"] {
	flex: 1 1 0; min-width: 0; height: 48px; box-sizing: border-box; padding: 0 16px;
	background: #1a4b5a; border: 1px solid #4a8a98; border-radius: 0;
	color: #efeadd; font-family: var(--vq-font-body); font-size: 1rem;
}
.vq-news input[type="email"]::placeholder { color: #8fa9b0; }
.vq-news button {
	height: 48px; padding: 0 24px; border: 0; border-radius: 0; cursor: pointer;
	background: #4cb9ad; color: #0e2f39; font-family: var(--vq-font-body); font-weight: 600; font-size: 1rem;
}
.vq-news button:hover { filter: brightness(1.07); }
.vq-news__note { font-size: .8125rem; color: #b9c4be; }
.vq-news__admin { padding: 8px 12px; background: rgba(227, 184, 92, .14); color: #e3b85c; font-size: .8125rem; }

.vq-footer__trip {
	flex: 0 0 520px; box-sizing: border-box; padding: 32px;
	display: flex; flex-direction: column; gap: 14px; justify-content: center; align-items: flex-start;
	background: #1a4b5a; border: 1px solid #2e6070;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .28), 0 4px 14px rgba(0, 0, 0, .18);
}
.vq-footer__trip:only-child { flex: 1 1 auto; }
.vq-footer__trip h2 { font-size: 1.625rem; line-height: 1.2; }
.vq-footer__trip p { color: #b9c4be; }
.vq-footer__trip .vq-hbtn { margin-top: 6px; }

.vq-footer__cols { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1.5fr; gap: 40px; }
.vq-footer__brand { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.vq-footer__brand p { max-width: 280px; color: #b9c4be; }
.vq-footer__ig { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; color: #7fd3c8 !important; }
.vq-footer__nav { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.vq-footer__nav h3 { margin-bottom: 8px; font-size: 1.125rem; }
.vq-footer__nav a { padding: 4px 0; }
.vq-footer__latest { gap: 14px; }
.vq-footer__latest h3 { margin-bottom: -2px; }
.vq-footer__latest a { display: block; padding: 0; }
.vq-footer__kicker { display: block; font-size: .75rem; font-weight: 600; letter-spacing: .1em; color: #7fd3c8; }
.vq-footer__title { display: block; margin-top: 2px; }
.vq-footer__latest a:hover .vq-footer__title { color: #7fd3c8; }

.vq-footer__bottom { display: flex; flex-direction: column; gap: 16px; }
.vq-footer__legal {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px;
	font-size: .875rem; color: #b9c4be;
}
.vq-footer__disc { flex: 1 1 360px; text-align: center; }
.vq-footer__legal nav { display: flex; gap: 24px; }
.vq-footer__legal a { color: #b9c4be; }

@media (max-width: 1080px) {
	.vq-footer__top { flex-direction: column; }
	.vq-footer__trip { flex: none; }
	.vq-footer__cols { grid-template-columns: 1fr 1fr; gap: 32px; }
	.vq-footer__brand { grid-column: 1 / -1; }
	.vq-footer__latest { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.vq-footer__inner { padding-top: 48px; gap: 40px; }
	.vq-footer__news h2 { font-size: 1.625rem; }
	.vq-news__row { flex-direction: column; }
	.vq-footer__trip { padding: 24px; }
	.vq-footer__trip .vq-hbtn { align-self: stretch; justify-content: center; }
	.vq-footer__legal { flex-direction: column; align-items: flex-start; }
	.vq-footer__disc { text-align: left; flex-basis: auto; }
}

@media (prefers-reduced-motion: reduce) {
	.vq-header, .vq-header__inner, .vq-logo--hdr img, .vq-hbtn, .vq-dim, .vq-mega { transition: none !important; animation: none !important; }
}

/* ------------------------------------------------------- My Trip page (0.12.0)
   Stays on the left (40), To-Do on the right (60). On a phone it is one column
   and Stays and To-Do fold. Square corners, shadow, no borders. */

.vq-trip { max-width: 1360px; padding-top: 3rem; }
.vq-trip [hidden] { display: none !important; }

.vq-trip__head {
	display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 2rem;
}
.vq-trip__head h1 { margin: 0; }
.vq-trip__summary { margin: .6rem 0 0; font-size: 1.125rem; color: var(--vq-muted); }
.vq-trip__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.vq-trip__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	height: 48px; box-sizing: border-box; padding: 0 20px;
	border: 0; border-radius: 0; cursor: pointer;
	background: var(--vq-surface); color: var(--vq-nav, #123c49);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
	font-family: var(--vq-font-body); font-weight: 600; font-size: .9375rem;
}
.vq-trip__btn--primary { background: var(--vq-accent); color: var(--vq-accent-ink); }
.vq-trip__btn:hover { filter: brightness(1.04); }
.vq-trip__btn:focus-visible,
.vq-trip__bar:focus-visible,
.vq-trip__select select:focus-visible,
.vq-tc__remove:focus-visible { outline: 3px solid var(--vq-accent); outline-offset: 2px; }

.vq-trip__loading { color: var(--vq-muted); }

.vq-trip__note,
.vq-trip__shared {
	display: flex; align-items: flex-start; gap: 12px;
	margin: 0 0 2rem; padding: 14px 20px;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}
.vq-trip__note svg { flex: none; margin-top: 2px; color: var(--vq-accent-text); }
.vq-trip__note span,
.vq-trip__shared p { margin: 0; }
.vq-trip__shared { flex-wrap: wrap; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }

/* Nothing saved */
.vq-trip__empty {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px;
	padding: 56px 32px; margin-bottom: 2.5rem;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}
.vq-trip__empty svg { color: #123c49; }
.vq-trip__empty h2 { margin: 0; font-size: 1.875rem; }
.vq-trip__empty p { margin: 0; max-width: 32rem; font-size: 1.125rem; color: var(--vq-muted); }

.vq-trip__starts h2 { margin: 0 0 1.25rem; font-size: 1.75rem; }
.vq-trip__starts ul {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 1.5rem;
}
.vq-trip__starts a {
	display: flex; flex-direction: column; gap: 6px; height: 100%; box-sizing: border-box;
	padding: 24px; text-decoration: none; color: var(--vq-ink);
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}
.vq-trip__starts-title { font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.375rem; line-height: 1.25; }
.vq-trip__starts-text { color: var(--vq-muted); }
.vq-trip__starts-go { margin-top: 8px; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .9375rem; color: var(--vq-accent-text); }

/* Two columns */
.vq-trip__cols { display: grid; grid-template-columns: 2fr 3fr; gap: 40px; align-items: start; margin-bottom: 2.5rem; }
.vq-trip__sec { position: relative; min-width: 0; display: flex; flex-direction: column; gap: 16px; }

.vq-trip__bar-wrap { margin: 0; font-size: inherit; }
.vq-trip__bar {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	width: 100%; padding: 0; border: 0; border-radius: 0; background: none; text-align: left;
	color: var(--vq-ink); font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.75rem; line-height: 1.2;
	cursor: default;
}
.vq-trip__count { font-family: var(--vq-font-body); font-weight: 400; font-size: 1rem; color: var(--vq-muted); }
.vq-trip__chev { display: none; }
.vq-trip__body { display: flex; flex-direction: column; gap: 16px; }
.vq-trip__body.is-closed { display: none; }

.vq-trip__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }

/* Filter sits in the To-Do heading row on wide screens */
.vq-trip__filter { display: flex; align-items: center; gap: 10px; }
.vq-trip__filter label { font-weight: 600; font-size: .9375rem; color: var(--vq-nav, #123c49); }
.vq-trip__select { position: relative; display: inline-flex; }
.vq-trip__select select {
	height: 44px; min-width: 220px; box-sizing: border-box; padding: 0 40px 0 14px;
	border: 0; border-radius: 0; background: var(--vq-surface); color: var(--vq-nav, #123c49);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
	font-family: var(--vq-font-body); font-weight: 600; font-size: .9375rem;
	appearance: none; -webkit-appearance: none; cursor: pointer;
}
.vq-trip__select svg { position: absolute; right: 14px; top: 14px; pointer-events: none; color: var(--vq-nav, #123c49); }
.vq-trip__sec--todo .vq-trip__filter { position: absolute; top: 0; right: 0; }

.vq-trip__group { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
.vq-trip__group:last-child { margin-bottom: 0; }
.vq-trip__grouplabel { margin: 0; font-family: var(--vq-font-body); font-weight: 600; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; color: var(--vq-accent-text); }

.vq-trip__none {
	display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 10px;
	min-height: 320px; box-sizing: border-box; padding: 40px 28px;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}
.vq-trip__none h3 { margin: 0; font-size: 1.5rem; }
.vq-trip__none p { margin: 0; max-width: 21rem; color: var(--vq-muted); }
.vq-trip__none a { margin-top: 8px; font-weight: 600; font-size: .9375rem; color: var(--vq-accent-text); }

/* Cards */
.vq-tc {
	position: relative; display: flex;
	background: var(--vq-surface);
	box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
}
.vq-tc__media { display: block; position: relative; overflow: hidden; background: var(--vq-page); }
.vq-tc__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vq-tc__noimage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 8px; text-align: center; color: var(--vq-muted); font-size: .8125rem; }
.vq-tc__title { margin: 0; font-family: var(--vq-font-serif); font-weight: 600; line-height: 1.25; }
.vq-tc__title a { color: var(--vq-ink); text-decoration: none; }
.vq-tc__title a:hover { text-decoration: underline; }
.vq-tc__meta, .vq-tc__price { margin: 0; }
.vq-tc__meta { color: var(--vq-muted); font-size: .9375rem; }
.vq-tc__price { margin-top: 2px; font-weight: 600; font-size: .9375rem; }
.vq-tc__book {
	display: flex; align-items: center; justify-content: center;
	height: 44px; box-sizing: border-box; padding: 0 18px;
	background: var(--vq-accent); color: var(--vq-accent-ink);
	font-weight: 600; font-size: .9375rem; text-decoration: none;
}
.vq-tc__remove {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	height: 40px; padding: 0 14px; border: 0; border-radius: 0; cursor: pointer;
	background: var(--vq-page); color: var(--vq-ink);
	font: 600 .875rem/1 var(--vq-font-body, inherit);
}
.vq-tc__remove svg { fill: none; stroke: currentColor; }
.vq-tc__remove:hover { background: var(--vq-ink); color: var(--vq-surface); }
.vq-trip__confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.vq-trip__confirm[hidden] { display: none; }
.vq-trip__confirm span { font-weight: 600; }
.vq-trip__btn--danger { background: var(--vq-ink); color: var(--vq-surface); }

/* Stay card: tall */
.vq-tc--stay { flex-direction: column; }
.vq-tc--stay .vq-tc__media { height: 150px; }
.vq-tc--stay .vq-tc__remove { position: absolute; top: 10px; right: 10px; background: var(--vq-surface); }
.vq-tc--stay .vq-tc__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 18px; }
.vq-tc--stay .vq-tc__title { font-size: 1.25rem; }
.vq-tc--stay .vq-tc__act { margin-top: auto; padding-top: 12px; }

/* To-Do row: compact */
.vq-tc--row { align-items: stretch; flex-wrap: wrap; }
.vq-tc--row .vq-tc__media { flex: 0 0 120px; min-height: 112px; }
.vq-tc--row .vq-tc__body { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 14px 20px; }
.vq-tc--row .vq-tc__title { font-size: 1.1875rem; }
.vq-tc--row .vq-tc__remove { align-self: center; margin: 0 12px; flex: none; }
.vq-tc--row .vq-tc__rowact { order: 2; align-self: center; padding: 0 4px 0 0; }
.vq-tc--row .vq-tc__remove { order: 3; }

/* Shared view: read only, so no remove hearts */
.vq-trip.is-shared .vq-tc__remove { display: none; }

/* Phone: one column, Stays and To-Do fold */
@media (max-width: 899px) {
	.vq-trip { padding-top: 2rem; }
	.vq-trip__head { align-items: stretch; flex-direction: column; }
	.vq-trip__actions { flex-direction: column; }
	.vq-trip__cols { grid-template-columns: 1fr; gap: 24px; }

	.vq-trip__bar-wrap { display: block; }
	.vq-trip__bar {
		min-height: 56px; box-sizing: border-box; padding: 0 16px; cursor: pointer;
		background: var(--vq-surface); font-size: 1.5rem;
		box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06);
	}
	.vq-trip__chev { display: inline-flex; color: var(--vq-nav, #123c49); }
	.vq-trip__bar[aria-expanded="true"] .vq-trip__chev svg { transform: rotate(180deg); }
	.vq-trip__sec { gap: 14px; }

	.vq-trip__grid { grid-template-columns: 1fr; }
	.vq-trip__sec--todo .vq-trip__filter { position: static; flex-direction: column; align-items: stretch; gap: 6px; }
	.vq-trip__select select { width: 100%; height: 48px; font-size: 1rem; }
	.vq-trip__select { display: flex; }
	.vq-trip__select svg { top: 16px; right: 16px; }
	.vq-trip__none { min-height: 0; padding: 32px 20px; }
	.vq-trip__empty { padding: 40px 22px; }

	.vq-tc--stay .vq-tc__media { height: 180px; }
	.vq-tc--stay .vq-tc__remove { top: 12px; right: 12px; }
	.vq-tc--row .vq-tc__media { flex-basis: 96px; min-height: 96px; }
	.vq-tc--row .vq-tc__body { padding: 12px 14px; }
	.vq-tc--row .vq-tc__title { font-size: 1.125rem; }
	.vq-tc--row .vq-tc__remove { margin: 0 8px; }
	.vq-tc--row .vq-tc__rowact { order: 4; flex: 0 0 100%; box-sizing: border-box; padding: 0 12px 12px; align-self: auto; }
}

.vq-trip__wed { margin-top: 0; }
.vq-trip__wed-act { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.vq-trip__wed-act label { display: flex; align-items: center; gap: 12px; font-size: .9375rem; }
.vq-trip__wed-act input { width: 20px; height: 20px; margin: 0; accent-color: var(--vq-accent); }

/* Print: just the list */
@media print {
	.vq-site-header, .vq-dim, .vq-footer, .vq-toast, .vq-skip,
	.vq-trip__actions, .vq-trip__filter, .vq-trip__note, .vq-trip__shared, .vq-trip__wed,
	.vq-tc__remove, .vq-tc__book, .vq-trip__chev { display: none !important; }
	body { background: #fff !important; }
	.vq-trip { max-width: none; padding: 0; }
	.vq-trip__cols { grid-template-columns: 1fr; }
	.vq-trip__body.is-closed { display: flex !important; }
	.vq-tc { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; }
	.vq-trip__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Save buttons on every listing (0.12.1) */
.vq-entity__actions { margin-top: 16px; display: flex; gap: 10px; }
.vq-card > .vq-heart { z-index: 2; }

/* Listing pages: beaches, tours, attractions, dining (0.13.0) */
.vq-trip.is-shared [data-trip-clear] { display: none; }

.vq-listing { --vq-card-shadow: 0 1px 4px rgba(38,54,46,.10), 0 4px 14px rgba(38,54,46,.06); color: var(--vq-ink); }
.vq-lhero {
	position: relative; display: flex; align-items: flex-end; overflow: hidden;
	min-height: clamp(360px, 56vh, 560px); background: #123c49; color: #fff;
}
.vq-lhero--plain { min-height: 280px; }
.vq-lhero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vq-lhero::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(10,30,36,.80) 0%, rgba(10,30,36,.25) 55%, rgba(10,30,36,.40) 100%);
}
.vq-lhero__text { position: relative; z-index: 1; width: 100%; max-width: 1200px; margin: 0 auto; padding: 120px 20px 40px; box-sizing: border-box; }
.vq-lhero__eyebrow { margin: 0 0 8px; font-weight: 600; font-size: .9375rem; letter-spacing: .04em; text-transform: uppercase; opacity: .9; }
.vq-lhero h1 { margin: 0; color: #fff; font-family: var(--vq-font-serif); font-weight: 600; font-size: clamp(2.25rem, 5vw, 3.75rem); line-height: 1.08; text-wrap: balance; }
.vq-lhero__lede { margin: 14px 0 0; max-width: 680px; font-size: 1.1875rem; line-height: 1.5; }
.vq-lhero__tags { margin: 16px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }

.vq-llayout {
	max-width: 1200px; margin: 0 auto; padding: 40px 20px 56px; box-sizing: border-box;
	display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start;
}
.vq-laside { position: sticky; top: calc(var(--vq-hh, 96px) + 16px); display: flex; flex-direction: column; gap: 24px; }
.vq-lactions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; }
.vq-lactions__cta { display: none; }
.vq-lcontent { max-width: none; margin: 0 0 24px; padding: 0; font-size: 1.0625rem; line-height: 1.7; }
.vq-lcontent > :first-child { margin-top: 0; }

.vq-listing .vq-section,
.vq-lcard {
	margin: 0 0 24px; padding: 24px 28px; box-sizing: border-box;
	background: var(--vq-surface); box-shadow: var(--vq-card-shadow); border-radius: 0;
}
.vq-lcard { margin: 0; }
.vq-listing .vq-section h2,
.vq-lcard h2 { margin: 0 0 14px; font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.5rem; line-height: 1.2; }
.vq-listing dl { margin: 0; display: grid; grid-template-columns: minmax(110px, 160px) 1fr; gap: 10px 20px; }
.vq-listing dt { color: var(--vq-muted); font-weight: 600; }
.vq-listing dd { margin: 0; }
.vq-lcard dl { grid-template-columns: 1fr; gap: 2px; }
.vq-lcard dd { margin-bottom: 10px; }
.vq-lcard__btns { display: flex; flex-direction: column; gap: 10px; }
.vq-lcard__book { display: contents; }
.vq-lcard__btns .vq-btn { justify-content: center; text-align: center; }
.vq-lcard__social { display: flex; gap: 14px; margin-top: 16px; }
.vq-lcard .vq-small { margin: 14px 0 0; }
.vq-listing .vq-callout { border-left: 4px solid var(--vq-accent); }

.vq-lmore { max-width: 1200px; margin: 0 auto; padding: 0 20px 72px; box-sizing: border-box; }
.vq-lmore h2 { margin: 0 0 20px; font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.75rem; }

@media (max-width: 900px) {
	.vq-llayout { grid-template-columns: 1fr; gap: 24px; padding-top: 24px; }
	.vq-laside { position: static; }
	.vq-lcard__book { display: none; }
	.vq-lactions__cta { display: block; flex: 1 1 100%; }
	.vq-lactions__cta .vq-btn { display: flex; justify-content: center; }
	.vq-lhero { min-height: 320px; }
	.vq-listing dl { grid-template-columns: 1fr; gap: 2px; }
	.vq-listing dd { margin-bottom: 10px; }
	.vq-listing .vq-section { padding: 20px; }
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .vq-listing .vq-section,
	:root:not([data-theme="light"]) .vq-lcard { box-shadow: none; border: 1px solid var(--vq-line); }
}
:root[data-theme="dark"] .vq-listing .vq-section,
:root[data-theme="dark"] .vq-lcard { box-shadow: none; border: 1px solid var(--vq-line); }

/* Summary, Keep reading and FAQ blocks inside listing text (0.13.1) */
.vq-lede { font-size: 1.1875rem; line-height: 1.6; font-weight: 500; margin: 0 0 1.25rem; }
.vq-keypoints { list-style: none; margin: 0 0 1.5rem; padding: 18px 22px; background: var(--vq-surface); box-shadow: var(--vq-card-shadow, 0 1px 4px rgba(38,54,46,.10)); display: grid; gap: 8px; }
.vq-keypoints li { position: relative; padding-left: 22px; }
.vq-keypoints li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; background: var(--vq-accent); }

.vq-more { margin: 0 0 2rem; }
.vq-more > summary,
.vq-faq > details > summary { list-style: none; cursor: pointer; }
.vq-more > summary::-webkit-details-marker,
.vq-faq > details > summary::-webkit-details-marker { display: none; }
.vq-more > summary {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 20px;
	background: var(--vq-surface); color: var(--vq-ink); font-weight: 600;
	box-shadow: 0 1px 4px rgba(38,54,46,.12);
}
.vq-more > summary::after { content: ""; width: 8px; height: 8px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg) translateY(-2px); }
.vq-more[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.vq-more .vq-more__close,
.vq-more[open] .vq-more__open { display: none; }
.vq-more[open] .vq-more__close { display: inline; }
.vq-more[open] > summary { margin-bottom: 1.25rem; }
.vq-more > summary:focus-visible,
.vq-faq summary:focus-visible { outline: 3px solid var(--vq-accent); outline-offset: 2px; }

.vq-faq { margin: 0 0 2rem; background: var(--vq-surface); box-shadow: var(--vq-card-shadow, 0 1px 4px rgba(38,54,46,.10)); }
.vq-faq > details { border-top: 1px solid var(--vq-line); }
.vq-faq > details:first-child { border-top: 0; }
.vq-faq > details > summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 22px; font-weight: 600; }
.vq-faq > details > summary::after { content: ""; flex: none; width: 8px; height: 8px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg) translateY(-2px); }
.vq-faq > details[open] > summary::after { transform: rotate(-135deg) translateY(2px); }
.vq-faq > details > :not(summary) { margin: 0; padding: 0 22px 18px; }
@media (prefers-reduced-motion: no-preference) { .vq-more > summary::after, .vq-faq > details > summary::after { transition: transform .15s; } }
.vq-aka { margin: 0 0 .5rem; color: var(--vq-muted); font-weight: 600; font-size: .9375rem; }

/* Directory (0.14.0) */
.vq-directory { max-width: 1000px; }
.vq-dir__controls { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; margin: 0 0 12px; }
.vq-dir__field { display: flex; flex-direction: column; gap: 4px; min-width: 160px; }
.vq-dir__field--search { flex: 1 1 280px; }
.vq-dir__field label { font-weight: 600; font-size: .875rem; }
.vq-dir__field input,
.vq-dir__field select {
	height: 46px; box-sizing: border-box; padding: 0 14px; border: 0; border-radius: 0;
	background: var(--vq-surface); color: var(--vq-ink); font: inherit;
	box-shadow: 0 1px 4px rgba(38,54,46,.12);
}
.vq-dir__clear { height: 46px; padding: 0 16px; border: 0; background: transparent; color: var(--vq-accent-text, var(--vq-ink)); font: 600 .9375rem/1 inherit; text-decoration: underline; cursor: pointer; }
.vq-dir__count { margin: 0 0 14px; color: var(--vq-muted); }
.vq-dir__letters { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; }
.vq-dir__letters a { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; background: var(--vq-surface); color: var(--vq-ink); font-weight: 600; text-decoration: none; box-shadow: 0 1px 4px rgba(38,54,46,.10); }
.vq-dir__letters a[hidden], .vq-dir__group[hidden], .vq-drow[hidden] { display: none; }
.vq-dir__group { margin: 0 0 28px; scroll-margin-top: calc(var(--vq-hh, 96px) + 16px); }
.vq-dir__group > h2 { margin: 0 0 10px; font-family: var(--vq-font-serif); font-size: 1.75rem; }
.vq-drow { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; margin: 0 0 8px; background: var(--vq-surface); box-shadow: 0 1px 4px rgba(38,54,46,.10), 0 4px 14px rgba(38,54,46,.06); }
.vq-drow h3 { margin: 0; font-size: 1.1875rem; line-height: 1.3; }
.vq-drow h3 a { color: inherit; text-decoration: none; }
.vq-drow h3 a:hover { text-decoration: underline; }
.vq-drow h3 .vq-tag { margin-left: 8px; vertical-align: middle; }
.vq-drow__meta { margin: 2px 0 0; color: var(--vq-muted); font-size: .9375rem; }
.vq-drow__desc { margin: 6px 0 0; font-size: .9375rem; }
.vq-drow__save { flex: none; padding: 0; width: 44px; box-shadow: none; background: var(--vq-page); }
.vq-dir__none { padding: 24px; background: var(--vq-surface); }
@media (max-width: 600px) { .vq-drow { padding: 14px 16px; } }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .vq-drow, :root:not([data-theme="light"]) .vq-dir__letters a { box-shadow: none; border: 1px solid var(--vq-line); }
}
:root[data-theme="dark"] .vq-drow, :root[data-theme="dark"] .vq-dir__letters a { box-shadow: none; border: 1px solid var(--vq-line); }
.vq-drow__contact { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: .9375rem; }
.vq-drow__contact a { color: var(--vq-accent-text, var(--vq-ink)); font-weight: 600; }
.vq-drow__contact a[href^="tel:"] { display: inline-flex; min-height: 32px; align-items: center; }

/* Wedding venues page (0.15.4) */
.vq-venues__group { margin: 0 0 40px; }
.vq-venues__group > h2 { margin: 0 0 16px; font-family: var(--vq-font-serif); }

/* Directory search box (0.15.5) */
.vq-dirbox { margin: 8px 0 0; }
.vq-dirbox__eyebrow { margin: 0 0 14px; font-family: inherit; font-size: .875rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--vq-muted); }
.vq-dirbox__form { display: flex; gap: 0; }
.vq-dirbox__form input { flex: 1 1 auto; min-width: 0; height: 46px; box-sizing: border-box; padding: 0 14px; border: 0; border-radius: 0; background: var(--vq-page); color: var(--vq-ink); font: inherit; box-shadow: inset 0 0 0 1px var(--vq-line); }
.vq-dirbox__form input:focus-visible { outline: 2px solid var(--vq-ink); outline-offset: 1px; }
.vq-dirbox__form button { flex: none; height: 46px; padding: 0 18px; border: 0; border-radius: 0; background: var(--vq-accent, #DDB56A); color: var(--vq-ink); font: 600 .9375rem/1 inherit; cursor: pointer; }
.vq-dirbox__more { margin: 12px 0 0; font-size: .9375rem; }
.vq-dirbox__more a { color: var(--vq-accent-text, var(--vq-ink)); font-weight: 600; }


/* ------------------------------------------------------------ beach conditions (0.16.1) */

/* The markup comes from the vieques-core plugin. Colours are status tokens
   above; each status is paired with an icon and a word in the markup. */
.vq-i { width: 1.25em; height: 1.25em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.vq-cond { background: var(--vq-surface); box-shadow: 0 1px 4px rgba(15, 58, 66, .10), 0 4px 14px rgba(15, 58, 66, .06); padding: 20px 24px 16px; margin: 0 0 28px; }
.vq-cond__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 16px; }
.vq-cond__title { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--vq-font-serif); font-size: 1.4rem; font-weight: 600; }
.vq-cond__title .vq-i { color: var(--vq-accent); width: 1.4em; height: 1.4em; }
.vq-cond__stamp { font-size: .85rem; color: var(--vq-muted); }

.vq-cond__coasts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 0 0 14px; }
.vq-cond__card { display: flex; align-items: center; gap: 12px; padding: 14px; border-left: 5px solid currentColor; }
.vq-cond__card .vq-i { width: 28px; height: 28px; }
.vq-cond__lab { font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.vq-cond__word { font-size: 1.2rem; font-weight: 700; line-height: 1.2; color: var(--vq-ink); }
.vq-cond__card--ok { background: var(--vq-ok-bg); color: var(--vq-ok-ink); }
.vq-cond__card--mid { background: var(--vq-mid-bg); color: var(--vq-mid-ink); }
.vq-cond__card--bad { background: var(--vq-bad-bg); color: var(--vq-bad-ink); }

.vq-cond__facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--vq-line); list-style: none; }
.vq-cond__facts li { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.vq-cond__facts .vq-i { color: var(--vq-accent-text); }
.vq-cond small { font-weight: 400; font-size: .9rem; color: var(--vq-muted); }

.vq-cond a { color: var(--vq-accent-text); text-underline-offset: 2px; }
.vq-pill { vertical-align: middle; display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; font-weight: 700; font-size: .9rem; line-height: 1.2; }
.vq-pill .vq-i { width: 1.1em; height: 1.1em; }
.vq-pill--ok { background: var(--vq-ok-bg); color: var(--vq-ok-ink); }
.vq-pill--mid { background: var(--vq-mid-bg); color: var(--vq-mid-ink); }
.vq-pill--bad { background: var(--vq-bad-bg); color: var(--vq-bad-ink); }

.vq-cond__callout { display: flex; gap: 12px; margin: 14px 0 0; padding: 12px 14px; background: var(--vq-mid-bg); color: var(--vq-mid-ink); font-size: .92rem; }
.vq-cond__callout .vq-i { margin-top: 2px; }
.vq-cond__callout p { margin: 0; }
.vq-cond__callout p + p { margin-top: 6px; }
.vq-cond__sources { margin: 12px 0 0; }
.vq-cond__sources summary { cursor: pointer; font-weight: 600; color: var(--vq-accent-text); min-height: 32px; display: flex; align-items: center; }
.vq-cond__sources summary:focus-visible { outline: 3px solid var(--vq-accent); outline-offset: 2px; }
.vq-cond__sources ul { margin: 8px 0 0; padding-left: 1.2em; font-size: .88rem; color: var(--vq-muted); }
.vq-cond__note { margin: 14px 0 0; font-size: .82rem; color: var(--vq-muted); }

/* One beach page: a single coast card with the rip current risk beside it. */
.vq-cond--line { margin: 18px 0; }
.vq-laside .vq-cond--line { margin: 0; padding: 18px 20px 14px; }
.vq-laside .vq-cond__lineRow { flex-direction: column; align-items: stretch; gap: 12px; }
.vq-cond__lineRow { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.vq-cond__rip { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.vq-cond__rip .vq-i { color: var(--vq-accent-text); }
.vq-cond__detail { margin: 12px 0 0; font-size: .88rem; color: var(--vq-muted); }

@media (max-width: 900px) {
	.vq-cond__coasts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
	.vq-cond { padding: 16px; }
	.vq-cond__card { gap: 8px; padding: 10px; }
	.vq-cond__card .vq-i { width: 22px; height: 22px; }
	.vq-cond__lab { font-size: .72rem; letter-spacing: .03em; }
	.vq-cond__word { font-size: 1.05rem; }
	.vq-cond__title { font-size: 1.2rem; }
}

/* The area filter's "More" button. A later, general .vq-more rule adds a
   bottom margin meant for the in-article "More" blocks, which pushed this one
   out of line with the other chips. */
.vq-chips .vq-more { margin: 0; }
.vq-chips .vq-more > summary { padding: .6rem 1.25rem; gap: .6rem; box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); }

/* ---------------------------------------------------------------------
   Island map (page-map.php, assets/map)
   --------------------------------------------------------------------- */
.vq-map { max-width: 1280px; margin: 0 auto; padding: 28px 24px 56px; }
.vq-map__head h1 { margin: 4px 0 0; }
.vq-map__head .vq-eyebrow { margin: 0; font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--vq-muted); }
.vq-map__intro { max-width: 46rem; margin-top: 12px; }
.vq-map__nojs { padding: 16px; background: var(--vq-notice-bg); }
.vq-map__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0 16px; }
.vq-map__bar .vq-chip { border: 0; font-family: inherit; }
.vq-map__area select { min-height: 44px; padding: 0 12px; background: var(--vq-surface); color: var(--vq-ink); border: 0; font: inherit; font-weight: 600; box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); }
.vq-map__count { margin: 0 0 0 auto; color: var(--vq-muted); font-size: .95rem; }
.vq-map__swap { display: none; min-height: 44px; padding: 0 16px; border: 0; background: var(--vq-surface); color: var(--vq-ink); font: inherit; font-weight: 600; box-shadow: 0 1px 4px rgba(38, 54, 46, .10); }

.vq-map__body { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 24px; align-items: stretch; }
.vq-map__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; max-height: 720px; overflow-y: auto; }
.vq-map__empty { padding: 16px; color: var(--vq-muted); }
.vq-map__stage { position: relative; min-height: 560px; height: 720px; background: #cfe6dc; box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); overflow: hidden; }
.vq-map__canvas { position: absolute; inset: 0; z-index: 0; }
.vq-map__credit { position: absolute; left: 0; bottom: 0; z-index: 2; margin: 0; padding: 2px 8px; font-size: .72rem; background: rgba(255, 251, 242, .88); color: var(--vq-muted); }

.vq-mcard { display: flex; gap: 14px; width: 100%; padding: 12px; text-align: left; border: 0; background: var(--vq-surface); color: var(--vq-ink); font: inherit; cursor: pointer; box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); }
.vq-mcard.is-selected { box-shadow: 0 0 0 2px var(--vq-accent), 0 4px 14px rgba(38, 54, 46, .12); }
.vq-mcard__thumb { flex: 0 0 104px; height: 104px; background: #ead6b7; display: flex; align-items: center; justify-content: center; font-size: .75rem; color: var(--vq-muted); text-align: center; overflow: hidden; }
.vq-mcard__thumb img { width: 100%; height: 100%; object-fit: cover; }
.vq-mcard__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.vq-mcard__eyebrow { margin: 0; font-size: .72rem; font-weight: 600; letter-spacing: .12em; color: var(--vq-muted); }
.vq-mcard__name { font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.15rem; line-height: 1.25; color: var(--vq-accent-text); }
.vq-mcard__cond { margin: 0; font-size: .9rem; font-weight: 600; }
.vq-mcard__cond--ok { color: var(--vq-ok-ink); }
.vq-mcard__cond--mid { color: var(--vq-mid-ink); }
.vq-mcard__cond--bad { color: var(--vq-bad-ink); }

.vq-mk { width: 0; height: 0; }
.vq-mk .vq-pin { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%); }
.vq-pin { position: relative; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border-radius: 50%; border: 3px solid #fffbf2; color: #26362e; font: inherit; font-weight: 600; cursor: pointer; box-shadow: 0 2px 6px rgba(38, 54, 46, .35); }
.vq-pin--stay { background: #e7b65b; }
.vq-pin--eat { background: #d98d7a; }
.vq-pin--beach { background: #087e8b; color: #fff; }
.vq-pin--do { background: #26362e; color: #f8f0df; }
.vq-pin--go { background: #9ba88a; }
.vq-pin--cluster { width: 46px; height: 46px; background: #26362e; color: #f8f0df; font-size: 1rem; }
.vq-pin.is-selected { width: 46px; height: 46px; border-color: #26362e; box-shadow: 0 3px 10px rgba(38, 54, 46, .45); z-index: 5; }
.vq-pin:focus-visible { outline: 3px solid #26362e; outline-offset: 2px; }
.vq-pin__tag { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 4px; padding: 2px 8px; white-space: nowrap; font-size: .75rem; font-weight: 600; pointer-events: none; }
.vq-pin__tag--ok { background: var(--vq-ok-bg); color: var(--vq-ok-ink); }
.vq-pin__tag--mid { background: var(--vq-mid-bg); color: var(--vq-mid-ink); }
.vq-pin__tag--bad { background: var(--vq-bad-bg); color: var(--vq-bad-ink); }

.vq-mprev { position: absolute; z-index: 10; left: 20px; top: 20px; width: 340px; max-height: calc(100% - 40px); overflow-y: auto; background: var(--vq-surface); box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 8px 24px rgba(38, 54, 46, .18); }
.vq-mprev[hidden] { display: none; }
.vq-mprev__close { position: absolute; top: 6px; right: 6px; width: 44px; height: 44px; border: 0; background: var(--vq-surface); color: var(--vq-ink); font-size: 1.5rem; line-height: 1; cursor: pointer; box-shadow: 0 1px 4px rgba(38, 54, 46, .2); }
.vq-mprev__photo { height: 132px; background: #ead6b7; display: flex; align-items: center; justify-content: center; font-size: .75rem; color: var(--vq-muted); overflow: hidden; }
.vq-mprev__photo img { width: 100%; height: 100%; object-fit: cover; }
.vq-mprev__body { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.vq-mprev__body h2 { margin: 0; font-size: 1.35rem; color: var(--vq-accent-text); }
.vq-mprev__body p { margin: 0; }
.vq-mprev__meta { font-size: .85rem; color: var(--vq-muted); }
.vq-mprev__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
.vq-mprev__actions .vq-btn { padding: 12px 8px; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 900px) {
	.vq-map { padding: 20px 16px 40px; }
	.vq-map__swap { display: inline-block; }
	.vq-map__count { margin-left: 0; }
	.vq-map__body { grid-template-columns: 1fr; }
	.vq-map__list { display: none; max-height: none; }
	.vq-map__body.is-list .vq-map__list { display: flex; }
	.vq-map__body.is-list .vq-map__stage { display: none; }
	.vq-map__stage { height: 70vh; min-height: 420px; }
	.vq-mprev { left: 0; right: 0; top: auto; bottom: 0; width: auto; max-height: 55%; }
	.vq-mprev__photo { display: none; }
	.vq-mprev__close { top: 0; right: 0; }
}

/* The "use Ctrl or Command and scroll" hint: a small note at the bottom, not a screen. */
.vq-map .maplibregl-cooperative-gesture-screen { inset: auto auto 16px 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); padding: 8px 14px; font-size: .875rem; line-height: 1.3; background: rgba(38, 54, 46, .9); color: #f8f0df; z-index: 3; }
.vq-mk:has(.is-selected) { z-index: 5; }

/* Groups of places: a small tag with a tail pointing at the spot. */
.vq-mk .vq-tag { position: absolute; left: 0; top: 0; transform: translate(-50%, calc(-100% - 8px)); display: flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border: 2px solid #fffbf2; background: #26362e; color: #f8f0df; font: inherit; font-size: .9375rem; font-weight: 600; cursor: pointer; box-shadow: 0 2px 6px rgba(38, 54, 46, .35); }
.vq-mk .vq-tag::after { content: ""; position: absolute; left: 50%; top: 100%; width: 0; height: 0; margin-left: -7px; border: 7px solid transparent; border-top-color: #fffbf2; }
.vq-mk .vq-tag::before { content: ""; position: absolute; left: 50%; top: 100%; width: 0; height: 0; margin: -2px 0 0 -5px; border: 5px solid transparent; border-top-color: #26362e; z-index: 1; }
.vq-mk .vq-tag--stay { background: #e7b65b; color: #26362e; }
.vq-mk .vq-tag--stay::before { border-top-color: #e7b65b; }
.vq-mk .vq-tag--eat { background: #d98d7a; color: #26362e; }
.vq-mk .vq-tag--eat::before { border-top-color: #d98d7a; }
.vq-mk .vq-tag--beach { background: #087e8b; color: #fff; }
.vq-mk .vq-tag--beach::before { border-top-color: #087e8b; }
.vq-mk .vq-tag--go { background: #9ba88a; color: #26362e; }
.vq-mk .vq-tag--go::before { border-top-color: #9ba88a; }
.vq-mk .vq-tag:focus-visible { outline: 3px solid #26362e; outline-offset: 2px; }

/* The key under the filters. */
.vq-legend { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0 0 16px; padding: 0; list-style: none; font-size: .875rem; color: #5a6459; }
.vq-legend li { display: flex; align-items: center; gap: 8px; margin: 0; }
.vq-legend__dot { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border: 2px solid #fffbf2; border-radius: 50%; box-shadow: 0 1px 3px rgba(38, 54, 46, .35); }
.vq-legend__tag { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 7px; border: 2px solid #fffbf2; background: #26362e; color: #f8f0df; font-size: .75rem; font-weight: 600; box-shadow: 0 1px 3px rgba(38, 54, 46, .35); }

/* Restaurant hours: weekly list on the left, season calendar on the right. */
.vq-hours--cal { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1.5rem 3rem; }
.vq-hours--cal > dl { flex: 0 0 auto; grid-template-columns: auto auto; }
.vq-hours--cal > dl dd { white-space: nowrap; }
.vq-hours--cal > .vq-ocal { flex: 1 1 17rem; max-width: 32rem; }
@media (max-width: 520px) { .vq-hours--cal > dl { grid-template-columns: auto auto; width: 100%; } .vq-hours--cal > dl dd { margin-bottom: 0; } }

.vq-ocal { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.vq-ocal__status { margin: 0; padding: .75rem 1rem; background: var(--vq-page); border-left: 4px solid var(--vq-accent); font-weight: 600; color: var(--vq-ink); }
.vq-ocal__status:empty { display: none; }
.vq-ocal__nav { display: flex; align-items: center; gap: .5rem; }
.vq-ocal__title { flex: 1; text-align: center; font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.125rem; color: var(--vq-ink); }
.vq-ocal__step { width: 2.75rem; height: 2.75rem; padding: 0; border: 1px solid var(--vq-line); background: var(--vq-surface); color: var(--vq-ink); font: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.vq-ocal__step:disabled { opacity: .35; cursor: default; }
.vq-ocal__step:focus-visible, .vq-ocal__day:focus-visible { outline: 3px solid var(--vq-ink); outline-offset: 2px; }
.vq-ocal__row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px; }
.vq-ocal__dow { text-align: center; font-size: .75rem; font-weight: 600; letter-spacing: .08em; color: var(--vq-muted); padding: .25rem 0; }
.vq-ocal__cell { min-width: 0; }
.vq-ocal__day { display: block; width: 100%; min-height: 2.75rem; padding: 0; border: 0; font: inherit; font-weight: 600; cursor: pointer; }
.vq-ocal__day--o { background: var(--vq-accent); color: var(--vq-accent-ink); }
.vq-ocal__day--c { background: repeating-linear-gradient(135deg, transparent 0 5px, var(--vq-line) 5px 6px); color: var(--vq-muted); font-weight: 400; }
.vq-ocal__day.is-today { box-shadow: inset 0 0 0 2px var(--vq-ink); }
.vq-ocal__day.is-selected { outline: 3px solid var(--vq-ink); outline-offset: 1px; }
.vq-ocal__note { margin: 0; font-size: .9375rem; color: var(--vq-ink); min-height: 1.5em; }
.vq-ocal__key { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin: 0; padding: 0; list-style: none; font-size: .8125rem; color: var(--vq-muted); }
.vq-ocal__key li { display: flex; align-items: center; gap: .4rem; margin: 0; }
.vq-ocal__sw { display: inline-block; width: 1rem; height: 1rem; }
.vq-ocal__sw--o { background: var(--vq-accent); }
.vq-ocal__sw--c { background: repeating-linear-gradient(135deg, transparent 0 3px, var(--vq-muted) 3px 4px); box-shadow: inset 0 0 0 1px var(--vq-line); }
.vq-ocal__sw--t { box-shadow: inset 0 0 0 2px var(--vq-ink); }
.vq-ocal__dates { margin: .25rem 0 0; padding: 0; list-style: none; font-size: .875rem; color: var(--vq-muted); display: flex; flex-direction: column; gap: .25rem; }
.vq-ocal__dates strong { color: var(--vq-ink); margin-right: .35rem; }
.vq-ocal__dates span { margin-left: .35rem; }
.vq-ocal__dates span::before { content: "\00b7\00a0"; }

.vq-map__report { margin: 1rem 0 0; font-size: .9375rem; color: var(--vq-muted); }
.vq-map__report a { color: var(--vq-accent-text); }

/* Map list cards: long names and condition lines wrap inside the card. */
.vq-map__list > li { min-width: 0; }
.vq-mcard { min-width: 0; box-sizing: border-box; white-space: normal; overflow: hidden; }
.vq-mcard__body { flex: 1 1 0; overflow-wrap: anywhere; word-break: normal; }
.vq-mcard__eyebrow, .vq-mcard__name, .vq-mcard__cond { white-space: normal; overflow-wrap: anywhere; max-width: 100%; }

/* ------------------------------------------------- hub header photo */
.vq-hubhero { position: relative; display: flex; align-items: flex-end; min-height: 320px; margin-bottom: 1.75rem; overflow: hidden; background: #26362e; color: #fff; }
.vq-hubhero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.vq-hubhero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 30, 25, .78) 0%, rgba(20, 30, 25, .35) 55%, rgba(20, 30, 25, 0) 100%); }
.vq-hubhero__text { position: relative; z-index: 1; padding: 2rem 2rem 1.75rem; max-width: 52rem; }
.vq-hubhero h1, .vq-hub .vq-hubhero h1 { color: #fff; margin: 0 0 .4rem; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.vq-hubhero .vq-archive__intro, .vq-hub .vq-hubhero .vq-archive__intro { color: rgba(255, 255, 255, .94); margin: 0; }
.vq-hubhero .vq-archive__intro a { color: #fff; text-decoration: underline; }
@media (max-width: 640px) {
	.vq-hubhero { min-height: 240px; }
	.vq-hubhero__text { padding: 1.25rem 1.25rem 1.1rem; }
}

/* ------------------------------------- paid and featured cards (hubs) */
.vq-hub .vq-grid { grid-auto-flow: dense; }
.vq-hub .vq-card--paid { box-shadow: 0 0 0 1.5px var(--vq-accent), 0 4px 14px rgba(38, 54, 46, .08); }
.vq-hub .vq-card--featured { box-shadow: 0 0 0 2px var(--vq-accent), 0 6px 20px rgba(38, 54, 46, .14); }
.vq-hub .vq-card--paid .vq-card__tag, .vq-hub .vq-card--featured .vq-card__tag { background: var(--vq-accent); color: var(--vq-accent-ink); font-weight: 600; }
.vq-hub .vq-card--wide { grid-column: span 2; }
.vq-hub .vq-card--wide .vq-card__media { aspect-ratio: 2 / 1; }
.vq-hub .vq-card--wide .vq-card__title { font-size: 1.4rem; }
.vq-hub .vq-card--wide .vq-card__desc { font-size: 1rem; }
@media (max-width: 640px) {
	.vq-hub .vq-card--wide { grid-column: auto; }
	.vq-hub .vq-card--wide .vq-card__media { aspect-ratio: 4 / 3; }
	.vq-hub .vq-card--wide .vq-card__title { font-size: 1.15rem; }
}

/* ------------------------------------------------ eateries: what is open */
.vq-openstrip { display: flex; flex-direction: column; gap: .9rem; padding: 1.1rem 1.25rem 1.25rem; background: var(--vq-surface); box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); }
.vq-openstrip__count { margin: 0; font-size: 1.15rem; font-family: var(--vq-font-serif); color: var(--vq-ink); }
.vq-openstrip__count strong { font-size: 1.6rem; color: var(--vq-accent-text); }
.vq-openstrip__soon { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem 1.25rem; }
.vq-openstrip__soon a { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--vq-ink); min-width: 0; }
.vq-openstrip__thumb { flex: 0 0 52px; height: 52px; background: var(--vq-page); overflow: hidden; }
.vq-openstrip__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vq-openstrip__text { display: flex; flex-direction: column; min-width: 0; }
.vq-openstrip__name { font-weight: 600; overflow-wrap: anywhere; }
.vq-openstrip__when { font-size: .875rem; color: var(--vq-accent-text); }
.vq-openstrip__soon a:hover .vq-openstrip__name { text-decoration: underline; }
@media (max-width: 1024px) { .vq-openstrip__soon { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .vq-openstrip__soon { grid-template-columns: 1fr; } }

/* ------------------------------------------------- stays finder */
.vq-finder { display: flex; flex-direction: column; gap: 1.1rem; margin: 0 0 1.75rem; padding: 1.5rem 1.75rem 1.4rem; background: var(--vq-surface); box-shadow: 0 2px 6px rgba(38, 54, 46, .10), 0 12px 32px rgba(38, 54, 46, .12); }
.vq-finder__title { margin: 0; font-family: var(--vq-font-serif); font-size: 1.5rem; line-height: 1.2; color: var(--vq-ink); }
.vq-finder__row { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: .5rem 1rem; align-items: start; }
.vq-finder__label { margin: .7rem 0 0; font-weight: 600; color: var(--vq-muted); }
.vq-finder__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.vq-finder .vq-chip { box-shadow: none; background: var(--vq-page); }
.vq-finder .vq-chip[aria-current="true"] { background: var(--vq-ink); color: var(--vq-surface); }
.vq-finder .vq-chip:hover { box-shadow: inset 0 0 0 2px var(--vq-accent); }
.vq-chip__n { font-weight: 400; font-size: .85rem; opacity: .7; }
.vq-finder__sum { margin: 0; padding-top: .9rem; border-top: 1px solid var(--vq-line); color: var(--vq-muted); }
.vq-finder__sum strong { color: var(--vq-ink); font-size: 1.15rem; }
.vq-finder__sum a { margin-left: .5rem; color: var(--vq-accent-text); font-weight: 600; }
.vq-hubhero--overlap { margin-bottom: 0; }
.vq-hubhero--overlap .vq-hubhero__text { padding-bottom: 5.5rem; }
.vq-hubhero--overlap + .vq-finder { position: relative; z-index: 2; margin: -3.25rem 1.5rem 1.75rem; }
@media (max-width: 640px) {
	.vq-finder { padding: 1.1rem 1rem 1.1rem; gap: .9rem; }
	.vq-finder__row { grid-template-columns: 1fr; }
	.vq-finder__label { margin: 0; }
	.vq-finder__chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .35rem; scrollbar-width: thin; }
	.vq-finder .vq-chip { flex: 0 0 auto; }
	.vq-hubhero--overlap .vq-hubhero__text { padding-bottom: 4.5rem; }
	.vq-hubhero--overlap + .vq-finder { margin: -2.75rem .6rem 1.25rem; }
}

.vq-finder ~ .vq-archive__count { display: none; }

/* ------------------------------------------------------- guides hub */
.vq-gstart { margin: 0 0 2.5rem; }
.vq-gstart > h2, .vq-guides__group > h2 { font-family: var(--vq-font-serif); margin: 0 0 1rem; }
.vq-gstart__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 1.5rem; min-height: 460px; }
.vq-gcard { position: relative; display: flex; flex-direction: column; background: var(--vq-surface); color: var(--vq-ink); text-decoration: none; overflow: hidden; box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); transition: box-shadow .2s ease; }
.vq-gcard:hover { box-shadow: 0 2px 6px rgba(38, 54, 46, .12), 0 10px 28px rgba(38, 54, 46, .16); }
.vq-gcard:focus-visible { outline: 3px solid var(--vq-accent); outline-offset: 2px; }
.vq-gcard__media { display: block; aspect-ratio: 3 / 2; background: #26362e; overflow: hidden; }
.vq-gcard__media--none { background: linear-gradient(135deg, #26362e, #2a6f7c); }
.vq-gcard__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.vq-gcard:hover .vq-gcard__img { transform: scale(1.03); }
.vq-gcard__body { display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.15rem 1.2rem; }
.vq-gcard__title { font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.2rem; line-height: 1.25; color: var(--vq-accent-text); }
.vq-gcard:hover .vq-gcard__title { text-decoration: underline; }
.vq-gcard__sum { font-size: .95rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.vq-gcard__meta { font-size: .8rem; color: var(--vq-muted); }
/* Start here: the photo fills the card and the words sit on it. */
.vq-gcard--lead, .vq-gcard--side { justify-content: flex-end; color: #fff; background: #26362e; }
.vq-gcard--lead { grid-row: 1 / span 2; }
.vq-gcard--lead .vq-gcard__media, .vq-gcard--side .vq-gcard__media { position: absolute; inset: 0; aspect-ratio: auto; }
.vq-gcard--lead::after, .vq-gcard--side::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 30, 25, .86) 0%, rgba(20, 30, 25, .45) 55%, rgba(20, 30, 25, .05) 100%); }
.vq-gcard--lead .vq-gcard__body, .vq-gcard--side .vq-gcard__body { position: relative; z-index: 1; padding: 1.5rem; }
.vq-gcard--lead .vq-gcard__title, .vq-gcard--side .vq-gcard__title { color: #fff; font-size: 1.35rem; }
.vq-gcard--lead .vq-gcard__title { font-size: clamp(1.7rem, 3vw, 2.3rem); line-height: 1.12; }
.vq-gcard--lead .vq-gcard__sum, .vq-gcard--side .vq-gcard__sum { color: rgba(255, 255, 255, .92); }
.vq-gcard--lead .vq-gcard__sum { font-size: 1.05rem; max-width: 34rem; }
.vq-gcard--side .vq-gcard__sum { -webkit-line-clamp: 2; }
.vq-gcard--lead .vq-gcard__meta, .vq-gcard--side .vq-gcard__meta { display: none; }
.vq-guides__cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.vq-guides__cards > li { display: flex; }
.vq-guides__cards .vq-gcard { width: 100%; }
@media (max-width: 1024px) {
	.vq-guides__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.vq-gstart__grid { grid-template-columns: 1fr; grid-template-rows: none; min-height: 0; }
	.vq-gcard--lead, .vq-gcard--side { min-height: 260px; }
	.vq-gcard--lead { grid-row: auto; min-height: 340px; }
}
@media (max-width: 640px) {
	.vq-guides__cards { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.vq-gcard, .vq-gcard__img { transition: none; }
	.vq-gcard:hover .vq-gcard__img { transform: none; }
}

/* Hub header image runs edge to edge, behind a transparent header if one is set. */
body:has(.vq-hubhero) { overflow-x: clip; }
.vq-hubhero {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: -2rem;
	min-height: 380px;
}
.vq-hubhero__text {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	/* Same left edge as the cards below (see .vq-hub). */
	padding-left: max(clamp(16px, 2.5vw, 40px), calc((100vw - 1680px) / 2));
	padding-right: max(clamp(16px, 2.5vw, 40px), calc((100vw - 1680px) / 2));
}
.vq-hubhero__text > * { max-width: 52rem; }
@media (max-width: 640px) {
	.vq-hubhero { min-height: 300px; }
}

/* ------------------------------------------------ collapsible boxes */
.vq-fold > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: .75rem 1rem; flex-wrap: wrap; }
.vq-fold > summary::-webkit-details-marker { display: none; }
.vq-fold > summary:focus-visible { outline: 2px solid var(--vq-accent); outline-offset: 4px; }
.vq-fold__hint { margin-left: auto; display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; font-weight: 600; color: var(--vq-accent-text); }
.vq-fold__hint::before { content: "Hide"; }
.vq-fold:not([open]) .vq-fold__hint::before { content: "Show"; }
.vq-fold__hint::after { content: ""; width: .5em; height: .5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(225deg) translateY(-1px); transition: transform .15s; }
.vq-fold:not([open]) .vq-fold__hint::after { transform: rotate(45deg) translateY(-2px); }
.vq-fold__peek { display: none; color: var(--vq-muted); font-size: .95rem; }
.vq-fold:not([open]) .vq-fold__peek { display: inline; }
.vq-fold__body { display: flex; flex-direction: column; gap: 1.1rem; }
.vq-fold[open] > .vq-fold__sum { margin-bottom: 1.1rem; }
.vq-openstrip__count { margin: 0; }
.vq-cond .vq-fold__body { display: block; }
.vq-cond .vq-fold > summary { flex-wrap: nowrap; }
.vq-cond .vq-fold[open] > .vq-fold__sum { margin-bottom: 16px; }
.vq-cond__stamp--end { margin: 12px 0 0; text-align: right; }
@media (prefers-reduced-motion: reduce) { .vq-fold__hint::after { transition: none; } }

/* The trip banner under the island map. */
.vq-map > .vq-band { margin-top: 2rem; }

/* ------------------------------------------------ booking buttons card */
.vq-bookcard { margin: 0; padding: 1.25rem 1.5rem; background: var(--vq-surface); box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); }
.vq-bookcard h2 { margin: 0 0 .75rem; font-family: var(--vq-font-serif); font-size: 1.15rem; }
.vq-bookcard__btns { display: flex; flex-direction: column; gap: .6rem; }
.vq-bookcard__btn { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: .65rem 1rem; background: #e7b65b; color: #26362e; font-weight: 600; text-align: center; text-decoration: none; }
.vq-bookcard__btn:hover { background: #dfaa45; }
.vq-bookcard__btn:focus-visible { outline: 2px solid var(--vq-ink); outline-offset: 2px; }
.vq-laside .vq-bookcard { margin: 0; }

/* ---- Weddings landing page (page-weddings.php) ---- */
.vq-wed{--wp:clamp(20px,4vw,64px);font-size:17px;line-height:1.7;color:var(--vq-ink);overflow-x:clip}
.vq-wed h1,.vq-wed h2,.vq-wed h3{font-family:'Fraunces',Georgia,serif;margin:0}
.vq-wed p{margin:0}
.vq-wed__wrap{max-width:1080px;margin:0 auto}
.vq-wed__hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-top:-2rem;min-height:clamp(520px,70vh,680px);box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--wp) clamp(48px,7vw,96px);color:#fffbf2;background:radial-gradient(ellipse 60% 55% at 72% 38%,rgba(231,182,91,.85) 0%,rgba(231,150,80,.35) 38%,rgba(231,150,80,0) 70%),linear-gradient(180deg,#2d7f99 0%,#1d5c70 42%,#123c49 100%)}
.vq-wed__heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vq-wed__hero::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,32,40,.78) 0%,rgba(10,32,40,.18) 55%,rgba(10,32,40,0) 100%)}
.vq-wed__heroin{position:relative;max-width:1080px;width:100%;margin:0 auto}
.vq-wed__hero h1{font-weight:300;font-size:clamp(42px,7.4vw,104px);line-height:.95;letter-spacing:-.025em;color:#fffbf2;max-width:11em;text-wrap:balance}
.vq-wed__cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;margin-top:clamp(28px,4vw,52px)}
.vq-wed__btn{display:inline-flex;align-items:center;min-height:56px;padding:0 34px;background:var(--vq-accent);color:var(--vq-ink);font-size:18px;font-weight:600;text-decoration:none;border:0;cursor:pointer}
.vq-wed__btn:hover,.vq-wed__btn:focus-visible{background:#fffbf2;color:var(--vq-ink)}
.vq-wed__heroalt{color:#fffbf2;font-weight:500;text-underline-offset:5px}
.vq-wed__heroalt:hover{color:var(--vq-accent)}
.vq-wed__sec{padding:clamp(56px,7vw,96px) var(--wp)}
.vq-wed__sec--tight{padding-top:clamp(16px,3vw,40px)}
.vq-wed__lede{padding-bottom:clamp(40px,5vw,72px)}
.vq-wed__lede p{max-width:980px;margin:0 auto 0 0;font-family:'Fraunces',Georgia,serif;font-weight:300;font-size:clamp(22px,2.6vw,34px);line-height:1.32;letter-spacing:-.012em;text-wrap:pretty}
.vq-wed__lede{max-width:1080px;margin:0 auto;box-sizing:content-box}
.vq-wed__lede p::first-letter{font-weight:400;float:left;font-size:5.6em;line-height:.8;padding:.06em .1em 0 0;color:var(--vq-accent-text)}
.vq-wed__lede + .vq-wed__sec{padding-top:0}
.vq-wed__rule{display:flex;align-items:baseline;gap:24px;padding-bottom:20px;border-bottom:1px solid var(--vq-ink);margin-bottom:clamp(28px,4vw,56px)}
.vq-wed__rule h2{font-weight:400;font-size:clamp(28px,3.4vw,46px);line-height:1.05;letter-spacing:-.02em}
.vq-wed__row{display:flex;flex-wrap:wrap;align-items:center;gap:40px clamp(32px,5vw,72px);margin-bottom:clamp(40px,5vw,72px)}
.vq-wed__row:last-child{margin-bottom:0}
.vq-wed__row--flip{flex-direction:row-reverse}
.vq-wed__fig{margin:0;position:relative;overflow:hidden;background:#d9c19a}
.vq-wed__fig--wide{flex:6 1 420px;aspect-ratio:4/3;min-height:260px}
.vq-wed__fig--tall{aspect-ratio:4/5;margin:0 0 24px}
.vq-wed__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vq-wed__fig--beach{background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(255,251,242,.55),rgba(255,251,242,0) 70%),linear-gradient(180deg,#8fd0cf 0%,#4aa6b0 38%,#e4cf9f 39%,#d9b878 100%)}
.vq-wed__fig--bio{background:radial-gradient(ellipse 45% 30% at 50% 66%,rgba(120,235,235,.9) 0%,rgba(60,190,205,.35) 45%,rgba(60,190,205,0) 75%),linear-gradient(180deg,#0a1d2a 0%,#0f2f3f 60%,#0a1d2a 100%)}
.vq-wed__fig--horses{background:linear-gradient(180deg,#f1d9a0 0%,#b9b36b 42%,#6f8a52 43%,#4d6a3f 100%)}
.vq-wed__fig--venues{background:linear-gradient(180deg,#e9d3a6 0%,#c8a56a 55%,#8a6a3c 100%)}
.vq-wed__fig--planning{background:linear-gradient(180deg,#a7d4cf 0%,#6bb0b3 50%,#2f7f8e 100%)}
.vq-wed__fig--real{background:linear-gradient(180deg,#f0cfa0 0%,#d89a6a 55%,#8c4f3e 100%)}
.vq-wed__fig--couple{background:linear-gradient(180deg,#d9c19a 0%,#a98a5e 100%)}
.vq-wed__text{flex:5 1 340px;max-width:520px}
.vq-wed__text h3{font-weight:400;font-size:clamp(24px,2.2vw,30px);line-height:1.15;letter-spacing:-.012em;margin-bottom:16px}
.vq-wed__sec--dark{background:#123c49;color:#f6efe0}
.vq-wed__sec--dark{position:relative;width:100vw;margin-left:calc(50% - 50vw);box-sizing:border-box}
.vq-wed__sec--dark h2,.vq-wed__sec--dark h3{color:#fffbf2}
.vq-wed__rule--split{justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:32px 64px;padding-bottom:28px;border-color:rgba(246,239,224,.4)}
.vq-wed__stats{display:flex;flex-wrap:wrap;gap:24px clamp(32px,5vw,80px)}
.vq-wed__stats p{line-height:1.1}
.vq-wed__n{display:block;font-family:'Fraunces',Georgia,serif;font-weight:300;font-size:clamp(34px,4vw,54px);letter-spacing:-.02em;color:var(--vq-accent)}
.vq-wed__nl{display:block;margin-top:8px;font-size:15px;line-height:1.4}
.vq-wed__cols{display:flex;flex-wrap:wrap;gap:44px clamp(32px,5vw,72px)}
.vq-wed__cols>div{flex:1 1 300px;max-width:460px}
.vq-wed__cols h3{font-weight:400;font-size:23px;line-height:1.2;margin-bottom:14px}
.vq-wed__cards{display:flex;flex-wrap:wrap;align-items:flex-start;gap:56px clamp(24px,3.5vw,56px)}
.vq-wed__card{flex:1 1 300px;min-width:0}
.vq-wed__card--2{margin-top:clamp(0px,5vw,72px)}
.vq-wed__card--3{margin-top:clamp(0px,10vw,144px)}
.vq-wed__card h3{font-weight:400;font-size:28px;line-height:1.1;letter-spacing:-.012em;margin-bottom:12px}
.vq-wed__card p{margin-bottom:18px}
.vq-wed__more{font-weight:600;text-underline-offset:5px}
.vq-wed__ext{display:block;margin-top:4px;font-size:14px;color:var(--vq-muted)}
.vq-wed__about{display:flex;flex-wrap:wrap;align-items:stretch;background:var(--vq-surface);box-shadow:0 1px 4px rgba(38,54,46,.1),0 4px 14px rgba(38,54,46,.06)}
.vq-wed__fig--about{flex:5 1 340px;min-height:420px;margin:0}
.vq-wed__abouttext{flex:7 1 420px;box-sizing:border-box;padding:clamp(32px,5vw,80px)}
.vq-wed__abouttext h2{font-weight:400;font-size:clamp(30px,3.4vw,48px);line-height:1.08;letter-spacing:-.018em;margin-bottom:24px}
.vq-wed__abouttext p{max-width:34em;margin-bottom:18px}
.vq-wed__abouttext p:last-child{margin-bottom:0}
.vq-wed__muted{color:var(--vq-muted)}
.vq-wed__inqhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px 64px}
.vq-wed__inqhead h2{flex:1 1 420px;max-width:760px;font-weight:300;font-size:clamp(28px,3.4vw,44px);line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.vq-wed__inqact{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.vq-wed__backup{color:#f6efe0;font-size:16px;text-underline-offset:4px}
.vq-wed__backup:hover{color:var(--vq-accent)}
.vq-wed__panel{margin-top:clamp(28px,4vw,48px);background:var(--vq-surface);color:var(--vq-ink);padding:clamp(12px,2vw,28px)}
.vq-wed__panel[hidden]{display:none}
.vq-wed__panel iframe{display:block;width:100%;border:0;min-height:600px}
.vq-wed a:focus-visible{outline:3px solid var(--vq-accent);outline-offset:3px}
@media (max-width:700px){.vq-wed{font-size:17px}.vq-wed__btn{width:100%;justify-content:center}.vq-wed__inqact{width:100%}}

/* ---------------------------------------------- hub header, split (0.29.0) */
body:has(.vq-hubsplit) { overflow-x: clip; }
.vq-hubsplit {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	width: 100vw;
	max-width: 100vw;
	margin: -2rem calc(50% - 50vw) 1.75rem;
	padding: 0;
	background: var(--vq-surface);
	border-bottom: 1px solid var(--vq-line);
	box-sizing: border-box;
}
.vq-hubsplit__text {
	flex: 1 1 460px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: clamp(2.25rem, 5vw, 4.5rem) clamp(1.25rem, 3vw, 3rem) clamp(2.25rem, 5vw, 4.5rem) max(clamp(16px, 2.5vw, 40px), calc((100vw - 1680px) / 2));
}
.vq-hubsplit--text .vq-hubsplit__text { padding-right: max(clamp(16px, 2.5vw, 40px), calc((100vw - 1680px) / 2)); }
.vq-hubsplit__eyebrow { margin: 0 0 .75rem; font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--vq-muted); }
.vq-hubsplit__bar { display: block; width: 44px; height: 3px; background: var(--vq-accent); margin-bottom: 1.4rem; }
.vq-hub .vq-hubsplit h1 { margin: 0 0 1rem; color: var(--vq-ink); text-shadow: none; font-size: clamp(2.4rem, 4.6vw, 4.2rem); line-height: 1.04; letter-spacing: -.02em; text-wrap: balance; }
.vq-hub .vq-hubsplit .vq-archive__intro { margin: 0 0 1.75rem; max-width: 30em; font-size: 1.15rem; color: var(--vq-muted); }
.vq-hubsplit .vq-archive__intro > :last-child { margin-bottom: 0; }
.vq-hubsplit__btns { display: flex; flex-wrap: wrap; gap: .85rem; }
.vq-hubsplit__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.6rem; background: var(--vq-ink); color: #fffbf2; border: 1px solid var(--vq-ink); font-weight: 600; text-decoration: none; }
.vq-hubsplit__btn:hover, .vq-hubsplit__btn:focus-visible { background: #3d4d44; color: #fffbf2; }
.vq-hubsplit__btn--alt { background: var(--vq-surface); color: var(--vq-ink); }
.vq-hubsplit__btn--alt:hover, .vq-hubsplit__btn--alt:focus-visible { background: var(--vq-page); color: var(--vq-ink); }
.vq-hubsplit__fig { flex: 1 1 520px; position: relative; margin: 0; min-height: 360px; overflow: hidden; background: #26362e; }
.vq-hubsplit__fig .vq-hubhero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
#vq-list { scroll-margin-top: 5rem; }
@media (max-width: 760px) {
	.vq-hubsplit__fig { min-height: 240px; order: -1; flex-basis: 100%; }
}

/* ----------------------------------------- quick things to know (0.29.0) */
.vq-tips, .vq-hubnotes { margin: 2.25rem 0; }
.vq-tips .vq-fold { background: transparent; box-shadow: none; padding: 0; }
.vq-tips__title { margin: 0; font-size: clamp(1.7rem, 2.6vw, 2.4rem); line-height: 1.1; letter-spacing: -.015em; }
.vq-tips .vq-fold > summary { padding: 0; }
.vq-tips .vq-fold[open] > .vq-fold__sum { margin-bottom: 1.1rem; }
.vq-tips .vq-fold__body { display: flex; flex-direction: column; gap: 1rem; }
.vq-tips__grid { display: flex; flex-wrap: wrap; background: var(--vq-surface); border: 1px solid var(--vq-line); }
.vq-tips__item { flex: 1 1 190px; box-sizing: border-box; padding: 1.35rem 1.35rem 1.5rem; border-left: 3px solid var(--vq-accent); }
.vq-tips__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--vq-accent); color: var(--vq-ink); margin-bottom: .85rem; }
.vq-tips__item h3 { margin: 0 0 .5rem; font-family: var(--vq-font-sans, inherit); font-size: 1.05rem; font-weight: 700; line-height: 1.25; }
.vq-tips__item p { margin: 0; font-size: .95rem; line-height: 1.5; color: var(--vq-muted); }
.vq-hub .vq-grid + .vq-tips, .vq-hub .vq-grid + .vq-hubnotes { margin-top: 2.25rem; }
.vq-hub .vq-tips + .vq-grid, .vq-hub .vq-hubnotes + .vq-grid { margin-top: 0; }

/* Tours and activities hub (0.30.0): activity tiles and the bay-night band */
.vq-acttiles { margin: 2rem 0 0; }
.vq-acttiles__title { margin: 0 0 1rem; font-size: clamp(1.7rem, 2.6vw, 2.4rem); line-height: 1.1; letter-spacing: -.015em; }
.vq-acttiles__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .75rem; }
.vq-acttile { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; min-height: 7.5rem; box-sizing: border-box; padding: 1rem; background: var(--vq-surface); border: 1px solid var(--vq-line); color: var(--vq-ink); text-decoration: none; }
.vq-acttile:hover { border-color: var(--vq-ink); color: var(--vq-ink); }
.vq-acttile[aria-current] { background: var(--vq-ink); border-color: var(--vq-ink); color: var(--vq-surface); }
.vq-acttile__name { font-size: 1rem; font-weight: 700; line-height: 1.2; }
.vq-acttile__n { font-size: .85rem; opacity: .85; }
.vq-hub .vq-acttiles + .vq-hub__bar { margin-top: 1.5rem; }

.vq-baynight { display: flex; flex-wrap: wrap; margin: 2.75rem 0 0; background: #123c49; color: #fffbf2; }
.vq-baynight__txt { flex: 1 1 400px; box-sizing: border-box; padding: clamp(1.75rem, 4vw, 3rem); }
.vq-baynight h2 { margin: 0 0 .85rem; color: #fffbf2; font-size: clamp(1.7rem, 2.6vw, 2.4rem); line-height: 1.1; letter-spacing: -.015em; }
.vq-baynight__txt p { margin: 0 0 1.4rem; max-width: 30em; font-size: 1.1rem; color: #e8e2d0; }
.vq-baynight__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.6rem; background: #e7b65b; color: #26362e; font-weight: 600; text-decoration: none; }
.vq-baynight__btn:hover { background: #f1c677; color: #26362e; }
.vq-baynight__moon { flex: 1 1 440px; box-sizing: border-box; padding: clamp(1.75rem, 4vw, 3rem); background: #0d2f3a; display: flex; flex-direction: column; justify-content: center; gap: 1rem; }
.vq-baynight__moon p { margin: 0; font-size: .95rem; color: #e8e2d0; }
.vq-baynight__row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.vq-moon { display: flex; flex-direction: column; align-items: center; gap: .3rem; padding: .6rem 0 .5rem; border: 1px solid rgba(255, 251, 242, .25); }
.vq-moon--good { border-color: #e7b65b; background: rgba(231, 182, 91, .22); }
.vq-moon__day { font-size: .8rem; font-weight: 600; }
.vq-moon__rate { font-size: .75rem; color: #f3e6bd; }
.vq-baynight__moon .vq-baynight__note { font-size: .85rem; opacity: .85; }
@media (max-width: 520px) { .vq-moon svg { width: 26px; height: 26px; } .vq-moon__day { font-size: .7rem; } }

/* Tools row on Eat and Tours (0.30.1): More filters on the left, count and sort on the right */
.vq-hubtools { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .5rem 1.5rem; margin: 1.25rem 0 1.5rem; }
.vq-hubtools > .vq-hubfilters { flex: 1 1 320px; min-width: 0; }
.vq-hubtools__right { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1.5rem; margin-left: auto; min-height: 44px; }
.vq-hubtools__right .vq-archive__count { margin: 0; }
.vq-hub .vq-acttiles + .vq-hubtools { margin-top: 1.5rem; }
.vq-hubfilters summary { list-style: none; }
.vq-hubfilters summary::-webkit-details-marker { display: none; }
.vq-hubfilters summary::after { content: ""; flex: none; width: .5em; height: .5em; margin: -.2em 0 0 .7rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s ease; }
.vq-hubfilters[open] > summary::after { margin-top: .2em; transform: rotate(-135deg); }
@media (prefers-reduced-motion: reduce) { .vq-hubfilters summary::after { transition: none; } }

/* Beaches and Attractions join the tools row; the conditions card gets the same arrow (0.30.2) */
.vq-hub__bar + .vq-hubtools { margin-top: 1rem; }
.vq-cond__sources summary { list-style: none; }
.vq-cond__sources summary::-webkit-details-marker { display: none; }
.vq-cond__sources summary::after { content: ""; flex: none; width: .5em; height: .5em; margin: -.2em 0 0 .6rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s ease; }
.vq-cond__sources[open] > summary::after { margin-top: .2em; transform: rotate(-135deg); }
@media (prefers-reduced-motion: reduce) { .vq-cond__sources summary::after { transition: none; } }

/* Tours hub: which activity is showing (0.30.3) */
.vq-acttiles__now { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1.5rem; margin: 1rem 0 0; font-size: .95rem; color: var(--vq-muted); }
.vq-acttiles__now strong { color: var(--vq-ink); }
.vq-acttiles__now a { font-weight: 600; text-underline-offset: 3px; }

/* ------------------------------------------------ Guides hub (0.31.0) */
.vq-gsearch { display: flex; align-items: center; gap: .6rem; width: min(100%, 460px); min-height: 52px; padding: 0 1rem; background: #fff; border: 1px solid #cdbf9f; color: var(--vq-muted); }
.vq-gsearch:focus-within { outline: 3px solid var(--vq-accent); outline-offset: 2px; }
.vq-gsearch input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 1rem; color: var(--vq-ink); padding: .75rem 0; outline: none; }
.vq-gjump { display: grid; grid-template-columns: repeat(var(--vq-gj, 4), minmax(0, 1fr)); gap: 1rem; margin: 2.5rem 0 .5rem; }
.vq-gjump[hidden], .vq-gsec[hidden], .vq-gstart[hidden], .vq-gnone[hidden], .vq-gsec li[hidden] { display: none; }
.vq-gjump__a { display: flex; align-items: center; gap: .85rem; padding: 1.1rem 1.25rem; background: var(--vq-surface); border: 1px solid var(--vq-line); color: var(--vq-ink); text-decoration: none; }
.vq-gjump__a:hover, .vq-gjump__a:focus-visible { border-color: var(--vq-accent-text); }
.vq-gjump__ic { display: inline-flex; flex: none; color: var(--vq-accent-text); }
.vq-gjump__t b { display: block; font-size: .95rem; line-height: 1.3; }
.vq-gjump__t small { display: block; font-size: .82rem; color: var(--vq-muted); }
.vq-gsec { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1.25rem 3.5rem; padding: 3.25rem 0; border-top: 1px solid var(--vq-line); scroll-margin-top: 1.5rem; }
.vq-gsec--tint { background: var(--vq-surface); border-top: 0; box-shadow: 0 0 0 100vmax var(--vq-surface); clip-path: inset(0 -100vmax); }
.vq-gsec__head { align-self: start; position: sticky; top: 1.5rem; }
.vq-gsec__badge { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; background: #123c49; color: var(--vq-accent); margin-bottom: 1rem; }
.vq-gsec__head h2 { margin: 0; font-family: var(--vq-font-serif); font-weight: 400; font-size: clamp(1.7rem, 2.4vw, 2.2rem); line-height: 1.15; }
.vq-gsec__head p { margin: .6rem 0 0; color: var(--vq-muted); font-size: .98rem; }
.vq-gsec__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-content: start; }
.vq-gsec__list > li { display: flex; }
.vq-grow { display: flex; gap: 1rem; width: 100%; padding: .75rem; background: var(--vq-surface); border: 1px solid var(--vq-line); color: var(--vq-ink); text-decoration: none; }
.vq-gsec--tint .vq-grow { background: var(--vq-page); }
.vq-grow:hover, .vq-grow:focus-visible { border-color: var(--vq-accent-text); }
.vq-grow__media { flex: none; display: block; width: 112px; height: 112px; background: #26362e; overflow: hidden; }
.vq-grow__media--none { background: linear-gradient(135deg, #26362e, #2a6f7c); }
.vq-grow__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vq-grow__body { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.vq-grow__title { font-family: var(--vq-font-serif); font-weight: 600; font-size: 1.15rem; line-height: 1.25; color: var(--vq-accent-text); }
.vq-grow:hover .vq-grow__title { text-decoration: underline; }
.vq-grow__sum { font-size: .92rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vq-grow__meta { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; font-size: .8rem; color: var(--vq-muted); }
.vq-gnone { margin: 2rem 0; font-size: 1.05rem; }
.vq-guides .vq-tips { margin-top: 0; }
body:has(.vq-gsec--tint) { overflow-x: clip; }
@media (max-width: 900px) {
	.vq-gjump { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vq-gsec { grid-template-columns: 1fr; gap: 1.25rem; padding: 2.25rem 0; }
	.vq-gsec__head { position: static; }
	.vq-gsec__list { grid-template-columns: 1fr; }
}
@media (max-width: 480px) { .vq-grow__media { width: 84px; height: 84px; } }

/* -------------------------------------------- Things to do hub (0.31.0) */
.vq-tbay { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: stretch; margin: 2rem 0 0; background: #0d2f3a; color: #fffbf2; }
.vq-tbay__art { display: flex; align-items: center; justify-content: center; padding: 1.5rem; min-height: 240px; }
.vq-tbay__art img { width: 100%; max-height: 260px; object-fit: contain; display: block; }
.vq-tbay__txt { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(1.5rem, 3vw, 2.5rem); border-left: 1px solid rgba(255, 255, 255, .18); }
.vq-tbay h2 { margin: 0 0 .6rem; color: #fffbf2; font-family: var(--vq-font-serif); font-weight: 400; font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.1; }
.vq-tbay p { margin: 0 0 1.25rem; color: #cfe0e3; max-width: 26em; }
.vq-tbay__btns { display: flex; flex-direction: column; gap: .7rem; align-items: stretch; width: min(100%, 330px); }
.vq-tbay__btn { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 0 1.5rem; background: var(--vq-accent); color: #26362e; font-weight: 700; text-decoration: none; }
.vq-tbay__btn:hover, .vq-tbay__btn:focus-visible { background: #f1c677; color: #26362e; }
.vq-tbay__link { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; color: #fffbf2; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.vq-tfeat { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin: 1.25rem 0 0; padding: 1rem 1.25rem; background: var(--vq-surface); border: 1px solid var(--vq-line); border-left: 4px solid var(--vq-accent); }
.vq-tfeat__tag { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--vq-muted); }
.vq-tfeat__txt { flex: 1 1 280px; min-width: 0; }
.vq-tfeat__txt h2 { margin: 0 0 .15rem; font-family: var(--vq-font-serif); font-weight: 500; font-size: 1.35rem; line-height: 1.2; }
.vq-tfeat__txt p { margin: 0; font-size: .95rem; color: var(--vq-ink); }
.vq-tfeat__txt .vq-tfeat__note { font-size: .8rem; font-style: italic; color: var(--vq-muted); margin-top: .2rem; }
.vq-tfeat__btn { display: inline-flex; align-items: center; min-height: 46px; padding: 0 1.4rem; background: var(--vq-accent); color: #26362e; font-weight: 700; text-decoration: none; }
.vq-tfeat__btn:hover, .vq-tfeat__btn:focus-visible { background: #f1c677; color: #26362e; }
.vq-tsec { margin: 2.75rem 0 0; scroll-margin-top: 1.5rem; }
.vq-tsec > h2 { margin: 0 0 .5rem; font-family: var(--vq-font-serif); font-weight: 400; font-size: clamp(1.7rem, 2.6vw, 2.3rem); line-height: 1.15; }
.vq-tsec__sub { margin: 0 0 1.1rem; color: var(--vq-muted); }
.vq-tact { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.vq-tact__card { position: relative; display: flex; flex-direction: column; background: var(--vq-surface); border: 1px solid var(--vq-line); }
.vq-tact__media { display: block; aspect-ratio: 3 / 2; background: linear-gradient(135deg, #26362e, #2a6f7c); overflow: hidden; }
.vq-tact__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.vq-tact__card:hover .vq-tact__media img { transform: scale(1.03); }
.vq-tact__body { display: flex; flex-direction: column; gap: .4rem; padding: 1rem 1.15rem 1.2rem; flex: 1; }
.vq-tact__body h3 { margin: 0; font-family: var(--vq-font-serif); font-weight: 500; font-size: 1.3rem; line-height: 1.2; }
.vq-tact__body h3 a { color: var(--vq-ink); text-decoration: none; }
.vq-tact__body h3 a::after { content: ""; position: absolute; inset: 0; }
.vq-tact__body p { margin: 0; font-size: .95rem; color: var(--vq-ink); }
.vq-tact__go { margin-top: auto; padding-top: .4rem; font-weight: 600; color: var(--vq-accent-text); text-decoration: underline; text-underline-offset: 3px; }
.vq-texp { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
.vq-texp__tile { display: flex; flex-direction: column; background: var(--vq-surface); border: 1px solid var(--vq-line); color: var(--vq-ink); text-decoration: none; height: 100%; }
.vq-texp__tile:hover, .vq-texp__tile:focus-visible { border-color: var(--vq-accent-text); }
.vq-texp__media { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; background: #26362e; overflow: hidden; color: var(--vq-accent); }
.vq-texp__media--none { background: #0d2f3a; }
.vq-texp__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vq-texp__label { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .8rem 1rem; font-weight: 700; }
.vq-tplan { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2.5rem; margin: 2.75rem 0 0; padding: 1.5rem clamp(1.25rem, 3vw, 2.25rem); background: #0d2f3a; color: #fffbf2; }
.vq-tplan h2 { margin: 0; color: #fffbf2; font-family: var(--vq-font-serif); font-weight: 400; font-size: clamp(1.6rem, 2.4vw, 2.1rem); }
.vq-tplan__links { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; flex: 1; }
.vq-tplan__a { display: flex; color: #fffbf2; text-decoration: none; padding-left: 1.25rem; border-left: 1px solid rgba(255, 255, 255, .25); }
.vq-tplan__a b { font-size: 1.05rem; }
.vq-tplan__a span { font-size: .9rem; color: #cfe0e3; }
.vq-tplan__a:hover b, .vq-tplan__a:focus-visible b { text-decoration: underline; }
@media (max-width: 800px) {
	.vq-tbay { grid-template-columns: 1fr; }
	.vq-tbay__txt { order: -1; border-left: 0; border-bottom: 1px solid rgba(255, 255, 255, .18); }
	.vq-tbay__art { min-height: 0; padding: 1rem 1.5rem; }
	.vq-tbay__art img { max-height: 190px; }
	.vq-tact { grid-template-columns: 1fr; }
	.vq-tplan__a { padding-left: 0; border-left: 0; }
}
.vq-gsearch { box-sizing: border-box; }
.vq-gsec--tint + .vq-gsec { border-top: 0; }

/* Things to do tweaks (0.31.1) */
.vq-things .vq-hubsplit { margin-bottom: 0; }
.vq-tbay { margin: 0; box-shadow: 0 0 0 100vmax #0d2f3a; clip-path: inset(0 -100vmax); }
body:has(.vq-tbay) { overflow-x: clip; }
.vq-tplan__a { flex-direction: row; align-items: center; gap: .85rem; }
.vq-tplan__ic { display: inline-flex; flex: none; color: var(--vq-accent); }
.vq-tplan__t { display: flex; flex-direction: column; gap: .1rem; }
.vq-tplan { margin-top: 2.75rem; }
.vq-tsec__more { margin: 1.25rem 0 0; }
.vq-tsec__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.6rem; background: var(--vq-ink); color: #fffbf2; font-weight: 600; text-decoration: none; }
.vq-tsec__btn:hover, .vq-tsec__btn:focus-visible { background: #3d4d44; color: #fffbf2; }
#vq-baynight { scroll-margin-top: 5rem; }
.vq-things { row-gap: 0; }

/* Footer: trip guide button next to My Trip (0.31.2) */
.vq-footer__btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.vq-hbtn--planlink { height: 48px; padding: 0 20px; background: transparent; color: #efeadd; border: 1px solid rgba(239, 234, 221, .55); font-size: 1rem; }
.vq-hbtn--planlink:hover, .vq-hbtn--planlink:focus-visible { background: rgba(239, 234, 221, .12); color: #fff; border-color: #efeadd; }

/* ---------------------------------------------- Plan your trip (0.32.0) */
.vq-plan { row-gap: 0; }
.vq-plan .vq-hubsplit { margin-bottom: 0; }
.vq-pfacts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; background: #123c49; color: #fffbf2; box-shadow: 0 0 0 100vmax #123c49; clip-path: inset(0 -100vmax); }
.vq-pfacts li { flex: 1 1 220px; padding: 1.3rem 1.5rem; border-left: 1px solid rgba(255, 255, 255, .18); }
.vq-pfacts li:first-child { border-left: 0; padding-left: 0; }
.vq-pfacts b { display: block; font-family: var(--vq-font-serif); font-weight: 400; font-size: 1.5rem; line-height: 1.2; color: var(--vq-accent); }
.vq-pfacts span { font-size: .92rem; color: #cfe0e3; }
body:has(.vq-pfacts) { overflow-x: clip; }
.vq-plan .vq-notices, .vq-plan .vq-notice { margin-top: 2rem; }
.vq-psteps { list-style: none; margin: 2.5rem 0 0; padding: 0; }
.vq-pstep { display: grid; grid-template-columns: 56px minmax(0, 1fr) 340px; gap: 0 2.25rem; align-items: start; padding: 2.25rem 0; border-top: 1px solid var(--vq-line); }
.vq-pstep:first-child { border-top: 0; }
.vq-pstep__num { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; background: #123c49; color: var(--vq-accent); font-family: var(--vq-font-serif); font-size: 1.6rem; }
.vq-pstep__body h2 { margin: 0; font-family: var(--vq-font-serif); font-weight: 400; font-size: clamp(1.6rem, 2.4vw, 1.95rem); line-height: 1.15; }
.vq-pstep__body p { margin: .5rem 0 1rem; max-width: 36em; color: var(--vq-ink); }
.vq-pstep__links { display: flex; flex-wrap: wrap; gap: .6rem; }
.vq-plink { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; background: var(--vq-surface); border: 1px solid #cdbf9f; color: var(--vq-ink); font-weight: 600; font-size: .95rem; text-decoration: none; }
.vq-plink:hover, .vq-plink:focus-visible { border-color: var(--vq-accent-text); }
.vq-plink--main { background: var(--vq-ink); border-color: var(--vq-ink); color: #fffbf2; }
.vq-plink--main:hover, .vq-plink--main:focus-visible { background: #3d4d44; color: #fffbf2; }
.vq-pstep__media { display: block; height: 190px; background: linear-gradient(135deg, #26362e, #2a6f7c); overflow: hidden; }
.vq-pstep__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vq-pwhen { margin: 1rem 0 0; padding: 3rem 0; background: var(--vq-surface); box-shadow: 0 0 0 100vmax var(--vq-surface); clip-path: inset(0 -100vmax); }
.vq-pwhen h2 { margin: 0; font-family: var(--vq-font-serif); font-weight: 400; font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.vq-pwhen__sub { margin: .5rem 0 0; max-width: 38em; color: var(--vq-muted); }
.vq-pwhen__months { list-style: none; margin: 1.5rem 0 .75rem; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; }
.vq-pwhen__m { padding: .65rem 0; text-align: center; font-size: .88rem; font-weight: 600; }
.vq-pwhen__m--busy { background: var(--vq-accent); }
.vq-pwhen__m--shoulder { background: #e2d6bc; }
.vq-pwhen__m--quiet { background: #d4dcd6; }
.vq-pwhen__key { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0 0 1.25rem; font-size: .9rem; }
.vq-pwhen__key i { display: inline-block; width: 14px; height: 14px; margin-right: .5rem; vertical-align: -2px; }
.vq-tsec__btn--alt { background: var(--vq-surface); color: var(--vq-ink); border: 1px solid #cdbf9f; }
.vq-tsec__btn--alt:hover, .vq-tsec__btn--alt:focus-visible { background: var(--vq-page); color: var(--vq-ink); }
.vq-ptools { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.vq-ptool { display: flex; flex-direction: column; gap: .4rem; height: 100%; padding: 1.25rem; background: var(--vq-surface); border: 1px solid var(--vq-line); color: var(--vq-ink); text-decoration: none; }
.vq-ptool:hover, .vq-ptool:focus-visible { border-color: var(--vq-accent-text); }
.vq-ptool b { font-size: 1.05rem; }
.vq-ptool span { font-size: .92rem; color: var(--vq-muted); }
.vq-ptrip { justify-content: space-between; margin-bottom: 3rem; }
.vq-ptrip p { margin: .35rem 0 0; color: #cfe0e3; }
@media (max-width: 860px) {
	.vq-pstep { grid-template-columns: 48px minmax(0, 1fr); gap: 1rem 1.25rem; }
	.vq-pstep__num { width: 48px; height: 48px; }
	.vq-pstep__media { grid-column: 1 / -1; height: 170px; }
	.vq-pfacts li:first-child { padding-left: 1.5rem; }
}
.vq-ptools > li { display: flex; }
.vq-ptool { height: auto; flex: 1; }
#vq-psteps { scroll-margin-top: 1.5rem; }
@media (max-width: 600px) { .vq-pwhen__months { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.vq-pnotes { margin-top: 1.75rem; }
.vq-pnotes:empty { display: none; }

/* ------------------------------------------------------- home page (0.33.0) */
body:has(.vq-home) { overflow-x: clip; }
.vq-home { max-width: 1320px; margin: 0 auto; padding: 1.5rem 1.25rem 0; display: flex; flex-direction: column; gap: 1.5rem; color: var(--vq-ink); }
.vq-hrow2 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(290px, 3fr); gap: 1.5rem; align-items: stretch; }
.vq-hbtn2 { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 1.4rem; background: var(--vq-accent); color: var(--vq-accent-ink); font-weight: 700; text-decoration: none; align-self: flex-start; }
.vq-hbtn2:hover, .vq-hbtn2:focus-visible { background: #f1c677; color: var(--vq-accent-ink); }
.vq-hcard { background: var(--vq-surface); padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; box-shadow: 0 1px 4px rgba(38, 54, 46, .10), 0 4px 14px rgba(38, 54, 46, .06); min-width: 0; }
.vq-hlab { margin: 0; font-family: inherit; font-size: .75rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--vq-muted); }
.vq-hlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.vq-hrow { display: flex; gap: .75rem; align-items: center; text-decoration: none; color: var(--vq-ink); }
.vq-hrow__img { flex: none; width: 64px; height: 64px; background: linear-gradient(135deg, #2a6f7c, #123c49); overflow: hidden; display: block; }
.vq-hrow__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vq-hrow__txt { display: flex; flex-direction: column; min-width: 0; }
.vq-hrow__txt b { font-size: 1rem; line-height: 1.3; }
.vq-hrow__txt small { color: var(--vq-muted); font-size: .85rem; }
.vq-hrow:hover b, .vq-hrow:focus-visible b { text-decoration: underline; }
.vq-hhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; }
.vq-hhead h2 { margin: 0; font-size: clamp(1.6rem, 2.4vw, 2rem); }

/* slider */
.vq-hslider { position: relative; min-height: 510px; background: #123c49; overflow: hidden; box-shadow: 0 0 9px rgba(0, 0, 0, .24); }
.vq-hslide { position: absolute; top: 0; right: 0; bottom: 0; left: 0; opacity: 0; transition: opacity .8s ease; display: flex; flex-direction: column; justify-content: flex-end; padding: 3rem 3rem 4rem; }
.vq-hslide.is-on { opacity: 1; z-index: 1; }
.vq-hslide::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0) 60%); }
.vq-hslide__img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.vq-hslide__txt { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; max-width: 36rem; }
.vq-hslide__txt h2 { margin: 0; color: #fff; font-size: clamp(2.2rem, 4vw, 3.5rem); line-height: 1.05; }
.vq-hslide__txt p { margin: 0; color: #fff; font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.4; }
.vq-hdots { position: absolute; left: 0; right: 0; bottom: 1rem; z-index: 3; display: flex; justify-content: center; align-items: center; gap: .25rem; }
.vq-hdots button { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; cursor: pointer; position: relative; }
.vq-hdots button::before { content: ""; position: absolute; top: 9px; left: 9px; width: 10px; height: 10px; border-radius: 50%; background: #fff; opacity: .5; }
.vq-hdots button[aria-current="true"]::before { opacity: 1; }
.vq-hdots button:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.vq-hdots .vq-hpause { margin-left: .5rem; }
.vq-hdots .vq-hpause::before { display: none; }
.vq-hpause span { position: absolute; top: 7px; left: 9px; width: 4px; height: 14px; background: #fff; box-shadow: 6px 0 0 #fff; opacity: .85; }
.vq-hslider.is-paused .vq-hpause span { width: 0; height: 0; background: transparent; box-shadow: none; border-left: 12px solid #fff; border-top: 7px solid transparent; border-bottom: 7px solid transparent; top: 7px; left: 10px; }
.vq-hslider:not(:has(.vq-hslide__img)) .vq-hslide { background: linear-gradient(135deg, #123c49, #2a6f7c); }

/* stays row */
.vq-hstays { gap: 1.25rem; }
.vq-hgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.vq-hplan { margin-top: auto; background: var(--vq-page); padding: 1.25rem 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.vq-hplan h3 { margin: 0 0 .25rem; font-size: 1.35rem; }
.vq-hplan p { margin: 0; color: var(--vq-muted); max-width: 38em; }
.vq-hplan .vq-hbtn2 { flex: none; }
.vq-hcard .vq-dirbox { margin: 0; }

/* bio-bay strip: full width, flush with the newsletter band */
.vq-hbay { display: flex; flex-wrap: wrap; background: #123c49; color: #fffbf2; box-shadow: 0 0 0 100vmax #123c49; clip-path: inset(0 -100vmax); margin-bottom: calc(-1.5rem - 1px); position: relative; }
.vq-hbay > * { position: relative; z-index: 1; }
.vq-hbay__txt { flex: 1 1 380px; box-sizing: border-box; padding: 2.5rem 2rem 2.5rem 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: .75rem; }
.vq-hbay h2 { margin: 0; color: #fffbf2; font-size: clamp(2rem, 3vw, 2.5rem); line-height: 1.1; }
.vq-hbay__txt p { margin: 0; color: #e8e2d0; font-size: 1.15rem; max-width: 30em; }
.vq-hbay__moon { flex: 1 1 380px; box-sizing: border-box; padding: 1.75rem 0 1.75rem 2rem; display: flex; flex-direction: column; justify-content: center; gap: .6rem; }
.vq-hbay__moon p { margin: 0; color: #e8e2d0; font-size: .95rem; }
.vq-hbay__moon .vq-hbay__note { font-size: .85rem; opacity: .85; }
.vq-hmoons { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .4rem; max-width: 460px; }
.vq-hmoon { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 0 5px; border: 1px solid rgba(255, 251, 242, .25); }
.vq-hmoon--good { border-color: var(--vq-accent); background: rgba(231, 182, 91, .22); }
.vq-hmoon__day { font-size: .75rem; font-weight: 600; }
.vq-hmoon__rate { font-size: .72rem; color: #f3e6bd; }

/* newsletter band */
.vq-hnews { position: relative; min-height: 560px; display: flex; align-items: center; justify-content: center; padding: 5rem 1.5rem; background: linear-gradient(135deg, #123c49, #2a6f7c); background-size: cover; background-position: center; color: #fff; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.vq-hnews::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(18, 60, 73, .5); }
.vq-hnews__in { position: relative; z-index: 1; max-width: 760px; width: 100%; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1rem; }
.vq-hnews__eyebrow { margin: 0; font-size: .8rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; color: #f8f0df; }
.vq-hnews h1 { margin: 0; color: #fff; font-weight: 300; font-size: clamp(2.2rem, 5vw, 3.5rem); line-height: 1.1; }
.vq-hnews__text, .vq-hnews__note { margin: 0; color: #f8f0df; }
.vq-hnews__text { font-size: 1.2rem; }
.vq-hnews__note { font-size: .9rem; }
.vq-hnews__form { display: flex; width: 100%; max-width: 560px; }
.vq-hnews__form input[type="email"] { flex: 1 1 auto; min-width: 0; min-height: 52px; padding: 0 1rem; border: 0; border-radius: 0; background: #fffbf2; color: #26362e; font: inherit; }
.vq-hnews__form button { flex: none; min-height: 52px; padding: 0 1.6rem; border: 0; border-radius: 0; background: var(--vq-accent); color: var(--vq-accent-ink); font: inherit; font-weight: 700; cursor: pointer; }
.vq-hnews__form button:hover { background: #f1c677; }
.vq-hnews__admin { margin: 0; font-size: .85rem; background: rgba(0, 0, 0, .35); padding: .4rem .7rem; }

/* getting here, weddings, things to do */
.vq-hsec { display: flex; flex-direction: column; gap: 1.25rem; padding-top: 1.5rem; }
.vq-hhere { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 1.25rem; }
.vq-hhere li { display: flex; }
.vq-hhere__card { flex: 1; display: flex; flex-direction: column; gap: .5rem; padding: 1.5rem; background: var(--vq-surface); border: 1px solid var(--vq-line); color: var(--vq-ink); text-decoration: none; }
.vq-hhere__card svg { color: var(--vq-accent-text); }
.vq-hhere__card b { font-family: var(--vq-display, inherit); font-size: 1.3rem; }
.vq-hhere__card span { color: var(--vq-muted); }
.vq-hhere__card:hover, .vq-hhere__card:focus-visible { border-color: var(--vq-accent); }
.vq-hwed { position: relative; min-height: 420px; display: flex; align-items: center; background: linear-gradient(90deg, #123c49, #2a6f7c); background-size: cover; background-position: center; color: #fff; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 0 max(1.25rem, calc(50vw - 660px)); }
.vq-hwed::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(90deg, rgba(18, 60, 73, .78), rgba(18, 60, 73, .15) 70%); }
.vq-hwed__in { position: relative; z-index: 1; max-width: 34rem; padding: 3rem 0; display: flex; flex-direction: column; align-items: flex-start; gap: .85rem; }
.vq-hwed__eyebrow { margin: 0; font-size: .8rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; color: #f8f0df; }
.vq-hwed h2 { margin: 0; color: #fff; font-weight: 300; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; }
.vq-hwed p { margin: 0; color: #f8f0df; font-size: 1.2rem; }
.vq-home > :last-child { margin-bottom: 4rem; }

@media (max-width: 960px) {
	.vq-hrow2 { grid-template-columns: 1fr; }
	.vq-hslider { min-height: 460px; }
	.vq-hslide { padding: 2rem 1.5rem 4rem; }
	.vq-hgrid { grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); }
	.vq-hbay::before { display: none; }
	.vq-hbay__txt { padding: 2rem 0 1rem; }
	.vq-hbay__moon { padding: 1rem 0 2rem; }
	.vq-hbay { box-shadow: 0 0 0 100vmax #123c49; }
}
@media (max-width: 600px) {
	.vq-hplan { flex-direction: column; align-items: flex-start; }
	.vq-hmoon svg { width: 24px; height: 24px; }
	.vq-hmoon__day { font-size: .68rem; }
	.vq-hmoon__rate { font-size: .64rem; }
	.vq-hnews__form { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { .vq-hslide { transition: none; } }

/* 0.33.3: the parent theme's reset styles img (height:auto) and buttons (pink on hover and focus). Win both on the home page. */
.vq-hslider .vq-hslide .vq-hslide__img { position: absolute !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover !important; object-position: center; }
.vq-hslider .vq-hdots button, .vq-hslider .vq-hdots button:hover, .vq-hslider .vq-hdots button:focus { background: transparent; border: 0; border-radius: 0; color: inherit; padding: 0; }
.vq-hslider .vq-hdots button:hover::before { opacity: 1; }
.vq-hslider .vq-hdots button:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.vq-hnews__form button, .vq-hnews__form button:focus { background: var(--vq-accent); color: var(--vq-accent-ink); border: 0; border-radius: 0; }
.vq-hnews__form button:hover, .vq-hnews__form button:focus-visible { background: #f1c677; color: var(--vq-accent-ink); }

/* 0.33.4: arrows instead of dots */
.vq-hslider .vq-harrow, .vq-hslider .vq-harrow:hover, .vq-hslider .vq-harrow:focus { position: absolute; top: 50%; z-index: 3; width: 40px; height: 56px; margin: -28px 0 0; padding: 0; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 0; background: rgba(0, 0, 0, .28); color: #fff; cursor: pointer; }
.vq-hslider .vq-harrow:hover, .vq-hslider .vq-harrow:focus-visible { background: rgba(0, 0, 0, .55); }
.vq-hslider .vq-harrow:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.vq-harrow--prev { left: 0; }
.vq-harrow--next { right: 0; }
.vq-hslider .vq-hpause, .vq-hslider .vq-hpause:hover, .vq-hslider .vq-hpause:focus { position: absolute; right: 12px; bottom: 12px; z-index: 3; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; }
.vq-hslider .vq-hpause:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.vq-hslide { padding-left: 4.5rem; padding-right: 4.5rem; }
@media (max-width: 960px) { .vq-hslide { padding-left: 3.25rem; padding-right: 3.25rem; padding-bottom: 3rem; } .vq-hslider .vq-harrow, .vq-hslider .vq-harrow:hover, .vq-hslider .vq-harrow:focus { width: 34px; height: 48px; margin-top: -24px; } }

/* 0.33.7: older Safari/WebKit: no reliance on the inset shorthand, and the slide photo always covers the whole slide */
.vq-hslider .vq-hslide .vq-hslide__img { min-width: 100%; min-height: 100%; display: block; }
.vq-hslider { background: #123c49; }

/* 0.33.8: scrolling Beaches and Guides lists, scroll hint, search button hover */
.vq-hcardhead { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.vq-hscroll { display: none; align-items: center; gap: .25rem; font-size: .75rem; font-weight: 600; color: var(--vq-muted); }
.vq-hcard.has-more .vq-hscroll { display: inline-flex; }
.vq-hlist--scroll { flex: 1 1 0; min-height: 0; overflow-y: auto; padding-right: .5rem; scrollbar-width: thin; scrollbar-color: var(--vq-line) transparent; }
.vq-hlist--scroll:focus-visible { outline: 2px solid var(--vq-ink); outline-offset: 2px; }
.vq-hcard .vq-dirbox { margin-top: 0; }
.vq-dirbox__form button, .vq-dirbox__form button:focus { background: var(--vq-accent, #DDB56A); color: var(--vq-ink); border: 0; border-radius: 0; }
.vq-dirbox__form button:hover, .vq-dirbox__form button:focus-visible { background: #f1c677; color: var(--vq-ink); }
@media (max-width: 960px) { .vq-hlist--scroll { flex: none; max-height: 420px; } }

/* 0.33.9: "Directory" label on the home page card matches Beaches and Guides */
.vq-hcard .vq-dirbox__eyebrow { margin: 0 0 .6rem; font-size: .75rem; font-weight: 600; letter-spacing: .15em; }

/* 0.33.10: parallax on the newsletter and weddings photos (the photo stays put while the page scrolls).
   Off on touch screens, where it is unreliable, and for visitors who prefer less motion. */
@media (hover: hover) and (min-width: 961px) and (prefers-reduced-motion: no-preference) {
	.vq-hnews.has-photo, .vq-hwed.has-photo { background-attachment: fixed; }
}

/* 0.33.10: shorter bands on phones */
@media (max-width: 600px) {
	.vq-hnews { min-height: 0; padding: 3.5rem 1.25rem; }
	.vq-hwed { min-height: 320px; }
	.vq-hwed__in { padding: 2.5rem 0; }
}

/* 0.33.11: slide photos are backgrounds, so they fill the slide in every browser */
.vq-hslider .vq-hslide .vq-hslide__img { position: absolute !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important; width: auto !important; height: auto !important; min-width: 0; min-height: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }

/* 0.34.0: stay pages. Keep reading toggle, and three ways onward under the contact buttons */
.vq-clamp { position: relative; overflow: hidden; transition: max-height .35s ease; }
.vq-clamp.is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2.2em; background: linear-gradient(0deg, var(--vq-page, #f8f0df), rgba(248, 240, 223, 0)); pointer-events: none; }
.vq-clamp__btn, .vq-clamp__btn:hover, .vq-clamp__btn:focus { align-self: flex-start; padding: 0; min-height: 44px; border: 0; border-radius: 0; background: transparent; color: var(--vq-accent-text); font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.vq-clamp__btn:hover, .vq-clamp__btn:focus-visible { color: var(--vq-ink); }
.vq-stay__next { display: flex; flex-direction: column; gap: 10px; padding-top: 6px; border-top: 1px solid var(--vq-line); }
.vq-stay__next h3 { margin: 12px 0 2px; font-size: 1.05rem; }
.vq-stay__next ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.vq-stay__next .vq-btn { text-align: center; }
.vq-stay__next-narrow { display: none; }
@media (max-width: 900px) {
	.vq-stay__next-wide { display: none; }
	.vq-stay__next-narrow { display: block; order: 4; }
	.vq-stay__next-narrow .vq-stay__next ul { flex-direction: row; flex-wrap: wrap; }
	.vq-stay__next-narrow .vq-stay__next li { flex: 1 1 180px; }
}
@media (prefers-reduced-motion: reduce) { .vq-clamp { transition: none; } }

/* 0.35.1: small link under the home page Directory search. */
.vq-hcard .vq-dirbox__more { margin: 10px 0 0; font-size: .875rem; line-height: 1.3; }
.vq-hcard .vq-dirbox__more a { text-decoration: none; }
.vq-hcard .vq-dirbox__more a:hover, .vq-hcard .vq-dirbox__more a:focus-visible { text-decoration: underline; }

/* 0.35.2: page not found. */
.vq-404 { max-width: 880px; margin: 0 auto; padding: 56px 24px 72px; }
.vq-404 h1 { margin: 0 0 .5rem; }
.vq-404__lead { margin: 0 0 1.75rem; font-size: 1.125rem; color: var(--vq-muted); }
.vq-404 .vq-dirbox { margin: 0 0 2rem; max-width: 520px; }
.vq-404__grid { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.vq-404__grid li { margin: 0; }
.vq-404__grid a { display: flex; align-items: center; min-height: 56px; padding: 0 18px; background: var(--vq-surface); box-shadow: 0 1px 3px rgba(38, 54, 46, .12); color: var(--vq-ink); font-weight: 600; text-decoration: none; }
.vq-404__grid a:hover, .vq-404__grid a:focus-visible { background: #e7b65b; color: #26362e; }
.vq-404__home { margin: 0; }
.vq-404__home a { color: var(--vq-accent-text, var(--vq-ink)); font-weight: 600; }
@media (max-width: 600px) { .vq-404 { padding: 36px 16px 56px; } }
