/*
Theme Name: Grow Child
Template: blocksy
Version: 1.45
*/

/*
 * Grow Child stylesheet
 *
 * 1. Shared layout and page shell
 * 2. Reusable Grow Studio patterns
 * 3. Alcantíl Home page
 * 4. Alcantíl FAQ page
 * 5. Responsive and accessibility overrides
 *
 * Keep project-specific page styles in their named section. Reusable pattern
 * styles belong in section 2 so new pages can use them without page-ID hooks.
 */

/* Josefin Sans is used by the FAQ form; these local subsets share one variable font across weights 300–400. */
@font-face {
	font-family: "Josefin Sans";
	font-style: normal;
	font-weight: 300 400;
	font-display: swap;
	src: url("assets/fonts/josefin-sans-vietnamese.woff2") format("woff2");
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
	font-family: "Josefin Sans";
	font-style: normal;
	font-weight: 300 400;
	font-display: swap;
	src: url("assets/fonts/josefin-sans-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Josefin Sans";
	font-style: normal;
	font-weight: 300 400;
	font-display: swap;
	src: url("assets/fonts/josefin-sans-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* -------------------------------------------------------------------------- */
/* 1. Shared layout and page shell                                            */
/* -------------------------------------------------------------------------- */

/*
 * Keep the 16px page frame separate from the padding around readable content.
 * Direct page sections use both values; content inside a frame uses only the
 * content padding because its parent already supplies the outer edge spacing.
 */
:root {
	--grow-page-edge-spacing: 16px;
	--grow-content-padding: 24px;
	--grow-content-edge-spacing: calc(var(--grow-page-edge-spacing) + var(--grow-content-padding));
	--theme-container-edge-spacing: calc(100vw - (2 * var(--grow-content-edge-spacing)));
}

/* Blocksy gives fluid containers their own desktop value, so keep it in sync. */
.ct-container-fluid {
	--theme-container-edge-spacing: calc(100vw - (2 * var(--grow-content-edge-spacing)));
}

/* Keep the global site shell on the same fixed gutter at wide desktop sizes. */
.ct-header .ct-container,
.ct-footer .ct-container {
	max-width: none;
}

@media (min-width: 690px) {
	:root {
		--grow-content-padding: 48px;
	}
}

@media (min-width: 1000px) {
	:root {
		--grow-content-padding: 100px;
	}
}

/*
 * Pages use full-width pattern backgrounds. The patterns themselves provide the
 * shared content gutter, so Blocksy's centered page wrapper must not add another one.
 */
body.page .site-main > [class*="ct-container"],
body.page .site-main > [class*="ct-container"] > article.page {
	margin-inline: 0;
	max-width: none;
	width: 100%;
}

/* -------------------------------------------------------------------------- */
/* 2. Reusable Grow Studio patterns                                           */
/* -------------------------------------------------------------------------- */

/* Patterns are full-width vertical layout containers with padding-based spacing. */
.entry-content > [class*="grow-"],
.editor-styles-wrapper .is-root-container > [class*="grow-"] {
	/* Let the pattern padding define the gutter instead of Blocksy's 1280px cap. */
	--theme-block-width: 100%;
	--wp--style--global--content-size: 100%;
	display: flex;
	flex-direction: column;
	margin-block: 0 !important;
	margin-inline: 0 !important;
	width: 100%;
}

/* Shared hero hooks keep the native Cover block comfortable at smaller widths. */
.grow-hero--image-overlay {
	min-height: clamp(32rem, 60vw, 42.5rem) !important;
}

.grow-hero--image-overlay .wp-block-heading {
	text-wrap: balance;
}

/* Immersive wordmark hero: edge-to-edge full-height image, centered title, and anchored scroll cue. */
.grow-hero--immersive-wordmark {
	min-height: clamp(38rem, 100svh, 53.125rem) !important;
	overflow: hidden;
}

.grow-hero--immersive-wordmark .wp-block-cover__inner-container {
	align-self: stretch;
	min-height: inherit;
	position: relative;
	width: 100%;
}

.grow-hero-wordmark__content {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: clamp(38rem, 100svh, 53.125rem);
	position: relative;
}

.grow-hero-wordmark__title {
	max-width: none !important;
	text-wrap: nowrap;
	white-space: nowrap;
	width: 100%;
}

.grow-hero-wordmark__scroll-cue {
	bottom: 2rem;
	left: 50%;
	margin: 0 !important;
	position: absolute;
	right: auto;
	transform: translateX(-50%);
	width: auto;
	z-index: 2;
}

.grow-hero-wordmark__scroll-cue .wp-block-button__link {
	align-items: center;
	display: flex;
	font-size: 1.5rem;
	height: 4rem;
	justify-content: center;
	line-height: 1;
	padding: 0;
	width: 4rem;
}

/* Carry the full hero height through Gutenberg's nested block-list wrappers. */
.editor-styles-wrapper .grow-hero-wordmark__content > .block-editor-inner-blocks,
.editor-styles-wrapper .grow-hero-wordmark__content > .block-editor-inner-blocks > .block-editor-block-list__layout {
	min-height: inherit;
	width: 100%;
}

.editor-styles-wrapper .grow-hero-wordmark__content > .block-editor-inner-blocks > .block-editor-block-list__layout {
	position: relative;
}

.grow-section-intro--centered .wp-block-heading {
	text-wrap: balance;
}

.grow-media-text--split .wp-block-heading,
.grow-feature-columns--three .wp-block-heading,
.grow-intro-features--three .wp-block-heading {
	text-wrap: balance;
}

.grow-media-text--split .grow-media-text__media {
	min-height: clamp(22rem, 42vw, 32.5rem) !important;
}

/* Static feature spotlight inspired by a carousel panel, with every field editor-owned. */
/* Feature, card, FAQ, gallery, and lead-capture pattern refinements. */
.grow-feature-spotlight .wp-block-heading {
	text-wrap: balance;
}

.grow-feature-spotlight__pills {
	align-items: center;
}

.grow-feature-spotlight__pill > p,
.grow-feature-spotlight__benefit > p {
	margin: 0;
}

.grow-feature-spotlight__benefit {
	align-items: center;
}

.grow-feature-spotlight__marker {
	align-items: center;
	border: 1px solid currentColor;
	border-radius: 50%;
	display: flex;
	flex: 0 0 2rem;
	font-size: 0.6875rem;
	font-weight: 600;
	height: 2rem;
	justify-content: center;
	letter-spacing: 0.04em;
	width: 2rem;
}

.grow-feature-spotlight__media {
	min-height: clamp(20rem, 40vw, 27.5rem) !important;
}

.grow-image-cards--four .wp-block-column {
	display: flex;
}

.grow-image-cards--four .grow-image-card {
	width: 100%;
}

.grow-faq__list .wp-block-details {
	border-bottom: 1px solid var(--theme-border-color);
	padding-bottom: 1.25rem;
}

.grow-faq__list .wp-block-details summary {
	cursor: pointer;
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	font-weight: 600;
}

.grow-faq__list .wp-block-details > p {
	line-height: 1.65;
	margin-left: 4.25rem;
	max-width: 60rem;
}

.grow-map-feature__visual {
	min-height: clamp(22rem, 45vw, 33.75rem) !important;
}

.grow-gallery-ribbon {
	overflow: hidden;
}

.grow-gallery-ribbon__track {
	flex-wrap: nowrap !important;
	overflow-x: auto;
	padding-bottom: 1.5rem;
	scrollbar-width: thin;
}

/* JavaScript duplicates the editor-owned items, then moves this track as one loop. */
.grow-gallery-ribbon.is-carousel-ready .grow-gallery-ribbon__track {
	margin-inline: 0 !important;
	overflow: visible;
	touch-action: pan-y;
	transform: translate3d(0, 0, 0);
	will-change: transform;
}

.grow-gallery-ribbon__track > .wp-block-column {
	flex-basis: 9rem !important;
	min-width: 9rem;
}

.grow-gallery-ribbon__item {
	min-height: 19rem !important;
	width: 100%;
}

.grow-lead-capture .wp-block-heading {
	text-wrap: balance;
}

.grow-lead-capture__benefit {
	align-items: flex-start;
}

.grow-lead-capture__benefit-marker {
	flex: 0 0 1.5rem;
}

.grow-lead-capture__logo-placeholder {
	align-items: center;
	border: 3px solid currentColor;
	border-radius: 50%;
	display: flex;
	height: 5rem;
	justify-content: center;
	margin-inline: auto;
	width: 5rem;
}

.grow-lead-capture__form-placeholder .wp-block-shortcode {
	border: 1px dashed currentColor;
	border-radius: 0.25rem;
	min-height: 12rem;
	padding: 4.5rem 1rem 1rem;
	text-align: center;
}

.grow-destination-cards__track,
.grow-editorial-feature__cards {
	align-items: flex-start !important;
}

.grow-editorial-feature__visual {
	border-radius: 0 !important;
}

.grow-editorial-feature__visual > .wp-block-cover__background {
	opacity: 0 !important;
}

.grow-editorial-feature--dark .wp-block-heading {
	text-wrap: balance;
}

.grow-figma-button a:hover {
	background: var(--theme-palette-color-2) !important;
}

/* -------------------------------------------------------------------------- */
/* 3. Alcantíl Home page                                                      */
/* -------------------------------------------------------------------------- */

/* Alcantíl Home uses core blocks; these hooks only express Figma-specific proportions. */
body.home {
	background: var(--theme-palette-color-7);
}

.grow-alcantil-hero-frame,
.grow-alcantil-adventure-frame,
.grow-site-plan-frame,
.grow-alcantil-name-story-frame,
.grow-alcantil-faq-hero-frame,
.grow-alcantil-faq-contact-frame {
	/* The frame itself supplies the 16px page edge. */
	--grow-content-edge-spacing: var(--grow-content-padding);
	box-sizing: border-box;
}

/* Keep the name story in the same 16px rounded frame used by the Figma page. */
.grow-alcantil-name-story-frame {
	padding-inline: var(--grow-page-edge-spacing) !important;
}

.grow-alcantil-name-story__wordmark {
	margin: 0 auto;
	max-width: 57.25rem;
	width: 100%;
}

.grow-alcantil-name-story__wordmark img {
	display: block;
	height: auto;
	width: 100%;
}

.grow-alcantil-name-story__definitions p,
.grow-alcantil-name-story__summary {
	margin-block: 0 !important;
}

.grow-alcantil-name-story__definitions strong {
	color: var(--theme-palette-color-13);
	font-weight: 700;
}

.grow-alcantil-name-story__summary {
	max-width: 53rem;
}

/*
 * Gutenberg can rewrite CSS custom properties saved in block padding fields.
 * Keep page spacing on stable project classes so editor saves cannot remove it.
 */
.grow-alcantil-intro,
.grow-alcantil-life,
.grow-alcantil-faq-section {
	padding-inline: var(--grow-content-edge-spacing) !important;
}

.grow-alcantil-hero__wordmark-image-group,
.grow-alcantil-site-plan,
.grow-alcantil-faq-contact {
	padding-inline: var(--grow-content-padding) !important;
}

/* Adventure uses its first inner Group as the stable content inset. */
.grow-alcantil-adventure {
	padding-inline: 0 !important;
}

.grow-alcantil-adventure > .wp-block-cover__inner-container > .wp-block-group {
	padding-inline: var(--grow-content-padding) !important;
}

/* Include each frame's outer padding within the one-viewport hero region. */
.grow-alcantil-hero-frame,
.grow-alcantil-faq-hero-frame {
	height: 100svh;
	max-height: 100svh;
	min-height: 100svh;
	/* Complete the image frame with the same one-rem gutter beneath the Cover. */
	padding-bottom: 1rem !important;
}

.grow-alcantil-hero,
.grow-alcantil-faq-hero {
	flex: 1 1 auto;
	height: 100%;
	max-height: 100%;
	min-height: 0 !important;
}

.grow-alcantil-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.35), transparent 45%) !important;
}

.grow-alcantil-hero__content {
	gap: 1rem;
}

.grow-hero--immersive-wordmark .wp-block-cover__inner-container {
	align-items: center;
	justify-content: center;
	display: flex;
}

.grow-alcantil-hero__wordmark-image {
	margin: 0;
	max-width: min(80vw, 66.25rem);
	width: 100%;
}

.grow-alcantil-hero__wordmark-image img {
	display: block;
	height: auto;
	width: 100%;
}

.grow-alcantil-hero__location {
	margin: 0;
}

.grow-scroll-button img {
	display: block;
	height: 2rem;
	width: 2rem;
}

.grow-hero-wordmark__scroll-cue .wp-block-button a:hover {
	background-color: rgba(83, 48, 21, 0.8)!important;
}

.grow-alcantil-intro .wp-block-heading,
.grow-alcantil-life .wp-block-heading,
.grow-alcantil-site-plan .wp-block-heading {
	text-wrap: balance;
}

.grow-alcantil-ribbon__track {
	margin-inline: auto !important;
	max-width: max-content !important;
	padding-inline: 1rem;
	width: max-content;
}

.grow-alcantil-ribbon__track > .wp-block-column {
	flex-basis: 9.0625rem !important;
	min-width: 9.0625rem;
}

.grow-alcantil-adventure__mark,
.grow-alcantil-adventure__map,
.grow-alcantil-site-plan__image {
	margin-block: 0;
}

.grow-alcantil-adventure__map img {
	display: block;
	margin-inline: auto;
	max-height: 34rem;
	object-fit: contain;
	width: 100%;
}

.grow-alcantil-destinations .wp-block-cover {
	overflow: hidden;
}

/* Keep editor-rebuilt adventure copy spaced identically in every card. */
.grow-alcantil-destinations .grow-destination-card__copy {
	display: grid;
	gap: 0.25rem;
	margin-top: 1rem;
}

.grow-alcantil-destinations .grow-destination-card__copy > .wp-block-heading,
.grow-alcantil-destinations .grow-destination-card__copy > p {
	margin-block: 0 !important;
}

.grow-figma-button .wp-block-button__link {
	align-items: center;
	display: inline-flex;
	gap: 0.625rem;
	padding: 0.75rem 1rem;
	text-transform: uppercase;
}

.grow-figma-button img {
	height: 2.34375rem;
	width: 2.34375rem;
}

.grow-alcantil-site-plan__image {
	aspect-ratio: 1248 / 547;
	border-radius: 1rem;
	overflow: hidden;
	position: relative;
}

.grow-alcantil-site-plan__image img {
	display: block;
	height: 205.91%;
	left: -28.02%;
	max-width: none;
	position: absolute;
	top: -9.05%;
	width: 129.98%;
}

.grow-alcantil-adventure__mark img {
		transform: translateX(-16px) !important;
	}

.grow-map-column {
	display: flex;
	justify-content: flex-end;
}

/* -------------------------------------------------------------------------- */
/* 4. Alcantíl FAQ page                                                       */
/* -------------------------------------------------------------------------- */

/* Alcantíl FAQ reuses core Cover, Details, Image, Heading, and Shortcode blocks. */
body.page-id-93 {
	background: var(--theme-palette-color-7);
}

.grow-alcantil-faq-hero-frame,
.grow-alcantil-faq-contact-frame {
	box-sizing: border-box;
}

.grow-alcantil-faq-hero__content {
	min-height: 100%;
}

.grow-alcantil-faq-list {
	counter-reset: alcantil-faq;
}

.grow-alcantil-faq-list .wp-block-details {
	counter-increment: alcantil-faq;
	padding-block: 0;
}

.grow-alcantil-faq-list .wp-block-details summary {
	align-items: center;
	display: grid;
	font-size: 1.5rem;
	font-weight: 700;
	gap: 1rem;
	grid-template-columns: 3.125rem minmax(0, 1fr) 3rem;
	line-height: 1.2;
	list-style: none;
	padding-block: 1.25rem;
}

.grow-alcantil-faq-list .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.grow-alcantil-faq-list .wp-block-details summary::before {
	color: var(--theme-palette-color-13);
	content: counter(alcantil-faq, decimal-leading-zero);
	font-size: 2rem;
	font-weight: 700;
}

.grow-alcantil-faq-list .wp-block-details summary::after {
	background: url("/wp-content/uploads/2026/08/faq-caret-down.svg") center / 1.5rem no-repeat;
	content: "";
	height: 3rem;
	transition: transform 180ms ease;
	width: 3rem;
}

.grow-alcantil-faq-list .wp-block-details[open] summary::after {
	transform: rotate(180deg);
}

.grow-alcantil-faq-list .wp-block-details > p {
	font-size: 1rem;
	line-height: 1.2;
	margin: -0.5rem 3rem 1.25rem 4.125rem;
	max-width: none;
}

.grow-faq-item summary {
	padding: 0px !important;
}

.grow-faq-item {
	padding-top: 24px !important;
	padding-bottom: 20px !important;
}

.grow-alcantil-faq-contact__inner > .wp-block-image {
	margin-bottom: 1.5rem;
}

.grow-alcantil-faq-contact {
	min-height: 54.375rem !important;
	padding-block: 2.5rem !important;
}

.grow-alcantil-faq-contact__inner {
	gap: 0;
}

.grow-alcantil-faq-contact__inner > p {
	font-family: "Poppins", sans-serif;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	line-height: normal;
	margin-bottom: 0.75rem !important;
}

.grow-alcantil-faq-contact__inner > .wp-block-heading {
	font-family: "Poppins", sans-serif;
	font-size: 3rem !important;
	font-weight: 300 !important;
	line-height: 1.2 !important;
	margin-bottom: 1.5rem !important;
}

.grow-alcantil-faq-contact__inner > .wp-block-heading strong {
	font-weight: 700;
}

.grow-alcantil-faq-form .fluentform {
	margin-inline: auto;
	max-width: 59.5625rem;
}

.grow-alcantil-faq-form fieldset {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grow-alcantil-faq-form .ff-el-group {
	border-bottom: 1px solid rgba(251, 245, 241, 0.7);
	box-sizing: border-box;
	margin-bottom: 0;
	min-height: 6.125rem;
	padding-block: 0.5rem;
}

.grow-alcantil-faq-form .ff-el-group:nth-of-type(1),
.grow-alcantil-faq-form .ff-el-group:nth-of-type(3) {
	border-right: 1px solid rgba(251, 245, 241, 0.7);
	padding-right: 1.5rem;
}

.grow-alcantil-faq-form .ff-el-group:nth-of-type(2),
.grow-alcantil-faq-form .ff-el-group:nth-of-type(4) {
	padding-left: 1.5rem;
}

.grow-alcantil-faq-form .ff-el-group:nth-of-type(n + 5) {
	grid-column: 1 / -1;
}

label {
	cursor: default !important;
}

#ff_3_questions_or_comments {
	min-height: 8.5rem;
}

.grow-alcantil-faq-form .ff-el-input--label label {
	color: var(--theme-palette-color-7);
	font-family: "Josefin Sans", sans-serif;
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 2.5rem;
	margin-bottom: 0;
	text-transform: uppercase;
}

.grow-alcantil-faq-form .ff-el-form-control {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--theme-palette-color-7) !important;
	font-family: "Josefin Sans", sans-serif;
	font-size: 1.3rem;
	font-weight: 300;
	line-height: 2.08rem;
	max-height: 34px !important;
	padding: 0px !important;
}

.grow-alcantil-faq-form textarea.ff-el-form-control {
	height: auto;
	min-height: 2.58rem;
	overflow-y: hidden;
	resize: none;
}

.grow-alcantil-faq-form .ff-el-form-control::placeholder {
	color: rgba(251, 245, 241, 0.78);
	opacity: 1;
}

.grow-alcantil-faq-form .ff-btn-submit {
	background: var(--theme-palette-color-13) !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: var(--theme-palette-color-7) !important;
	font-family: "Poppins", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	padding: 0.75rem 2.5rem !important;
}

.grow-alcantil-faq-form .ff_submit_btn_wrapper {
	border-bottom: 0;
	grid-column: 1 / -1;
	min-height: 0;
	padding-bottom: 0;
	padding-top: 1rem;
	text-align: center;
}

.grow-alcantil-faq-form .grow-alcantil-faq-form__note {
	border-bottom: 0;
	font-family: "Josefin Sans", sans-serif;
	font-size: 1.3rem;
	font-weight: 300;
	line-height: 2.08rem;
	min-height: 0;
	padding-top: 24px;
	padding-bottom: 24px;
	text-align: center;
}

.grow-alcantil-faq-form .grow-alcantil-faq-form__note p {
	margin: 0;
}

.grow-alcantil-faq-form .error,
.grow-alcantil-faq-form .text-danger {
	color: #ffb4b5 !important;
}

/* -------------------------------------------------------------------------- */
/* 5. Responsive and accessibility overrides                                  */
/* -------------------------------------------------------------------------- */

/* Keep the four-card reusable pattern balanced on tablet-width screens. */
@media (min-width: 782px) and (max-width: 999.98px) {
	.grow-image-cards--four > .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.grow-image-cards--four > .wp-block-columns > .wp-block-column {
		flex-basis: calc(50% - 0.5rem) !important;
	}
}

/* Desktop-only expanding card interaction for destination-style patterns. */
@media (min-width: 782px) {
	.grow-editorial-feature--dark {
		min-height: clamp(58rem, 77vw, 67.8125rem) !important;
	}

	/* Keep card wrapping from resizing the full-section Cover background. */
	.grow-alcantil-destinations {
		block-size: 30rem;
		overflow-anchor: none;
	}

	/* The first card is active until hover or keyboard focus moves inside another card. */
	.grow-destination-cards__feature,
	.grow-editorial-feature__card-feature {
		flex-basis: 28% !important;
	}

	.grow-destination-cards__item,
	.grow-editorial-feature__card {
		flex-basis: 18% !important;
		padding-top: 2.5rem;
	}

	.grow-destination-cards__feature,
	.grow-destination-cards__item,
	.grow-editorial-feature__card-feature,
	.grow-editorial-feature__card {
		transition: flex-basis 300ms ease, padding-top 300ms ease;
	}

	.grow-destination-cards__feature .wp-block-cover,
	.grow-destination-cards__item .wp-block-cover,
	.grow-editorial-feature__card-feature .wp-block-cover,
	.grow-editorial-feature__card .wp-block-cover {
		transition: min-height 300ms ease;
	}

	.grow-editorial-feature__card-feature .wp-block-cover {
		min-height: 16.25rem !important;
	}

	.grow-destination-cards__item .grow-destination-card__copy,
	.grow-editorial-feature__card .grow-destination-card__copy {
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		pointer-events: none;
		transform: translateY(0.5rem);
		visibility: hidden;
	}

	.grow-destination-card__copy {
		max-height: 12rem;
		opacity: 1;
		/* Height switches immediately; only compositor-friendly properties animate. */
		transition: opacity 180ms ease, transform 220ms ease;
		will-change: opacity, transform;
	}

	.grow-destination-cards__track:has(.grow-destination-cards__item:is(:hover, :focus-within, .is-active)) .grow-destination-cards__feature,
	.grow-editorial-feature__cards:has(.grow-editorial-feature__card:is(:hover, :focus-within, .is-active)) .grow-editorial-feature__card-feature {
		flex-basis: 18% !important;
		padding-top: 2.5rem;
	}

	.grow-destination-cards__track .grow-destination-cards__item:is(:hover, :focus-within, .is-active),
	.grow-editorial-feature__cards .grow-editorial-feature__card:is(:hover, :focus-within, .is-active) {
		flex-basis: 28% !important;
		padding-top: 0;
	}

	.grow-destination-cards__track:has(.grow-destination-cards__item:is(:hover, :focus-within)) .grow-destination-cards__feature .wp-block-cover {
		min-height: 19.375rem !important;
	}

	.grow-editorial-feature__cards:has(.grow-editorial-feature__card:is(:hover, :focus-within)) .grow-editorial-feature__card-feature .wp-block-cover {
		min-height: 18.75rem !important;
	}

	.grow-destination-cards__track .grow-destination-cards__item:is(:hover, :focus-within) .wp-block-cover,
	.grow-editorial-feature__cards .grow-editorial-feature__card:is(:hover, :focus-within) .wp-block-cover {
		min-height: 16.25rem !important;
	}

	.grow-destination-cards__track:has(.grow-destination-cards__item:is(:hover, :focus-within)) .grow-destination-cards__feature .grow-destination-card__copy,
	.grow-editorial-feature__cards:has(.grow-editorial-feature__card:is(:hover, :focus-within, .is-active)) .grow-editorial-feature__card-feature .grow-destination-card__copy {
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		pointer-events: none;
		transform: translateY(0.5rem);
		visibility: hidden;
	}

	.grow-destination-cards__track .grow-destination-cards__item:is(:hover, :focus-within) .grow-destination-card__copy,
	.grow-editorial-feature__cards .grow-editorial-feature__card:is(:hover, :focus-within, .is-active) .grow-destination-card__copy {
		max-height: 12rem;
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
		visibility: visible;
	}

	/*
	 * Keep Home card image viewports stable while their columns widen. Resizing
	 * both axes makes object-fit: cover rescale the image like a brief zoom.
	 */
	.grow-alcantil-destinations .wp-block-cover,
	.grow-alcantil-destinations:has(.grow-editorial-feature__card:is(:hover, :focus-within)) .grow-editorial-feature__card-feature .wp-block-cover,
	.grow-alcantil-destinations .grow-editorial-feature__card:is(:hover, :focus-within) .wp-block-cover {
		min-height: 18.75rem !important;
		transition: none;
	}
}

/* Respect visitors who ask the operating system to minimize animation. */
@media (prefers-reduced-motion: reduce) {
	.grow-destination-cards__feature,
	.grow-destination-cards__item,
	.grow-editorial-feature__card-feature,
	.grow-editorial-feature__card,
	.grow-destination-card__copy,
	.grow-destination-cards .wp-block-cover,
	.grow-editorial-feature__cards .wp-block-cover {
		transition: none;
	}
}

/* Mobile sizing, stacking, and horizontal-scroll refinements. */
@media (max-width: 689.98px) {
	.grow-hero-frame {
		padding: 0.5rem !important;
	}

	.grow-hero--immersive-wordmark {
		min-height: calc(100svh - 1rem) !important;
	}

	.grow-hero-wordmark__content {
		min-height: calc(100svh - 1rem);
	}

	.grow-hero-wordmark__title {
		font-size: clamp(2.5rem, 13vw, 3.25rem) !important;
		letter-spacing: 0.04em !important;
		white-space: nowrap;
	}

	.grow-hero-wordmark__scroll-cue {
		bottom: 0.75rem;
	}

	.grow-hero-wordmark__scroll-cue .wp-block-button__link {
		height: 3.5rem;
		width: 3.5rem;
	}

	/* Keep the arrow's positioning box inside the outer one-viewport frame. */
	.grow-alcantil-hero.grow-hero--immersive-wordmark,
	.grow-alcantil-hero.grow-hero--immersive-wordmark > .wp-block-cover__inner-container,
	.grow-alcantil-faq-hero.grow-hero--immersive-wordmark,
	.grow-alcantil-faq-hero.grow-hero--immersive-wordmark > .wp-block-cover__inner-container {
		height: 100%;
		max-height: 100%;
		min-height: 0 !important;
	}

	.grow-lead-capture__form-placeholder .wp-block-shortcode {
		min-height: 9rem;
		padding-top: 3rem;
	}

	.grow-destination-cards__item,
	.grow-editorial-feature__card {
		padding-top: 0;
	}

	.grow-faq__list .wp-block-details > p {
		margin-left: 0;
	}

	.grow-hero--image-overlay .wp-block-buttons {
		align-items: stretch;
		flex-direction: column;
	}

	.grow-hero--image-overlay .wp-block-button,
	.grow-hero--image-overlay .wp-block-button__link {
		width: 100%;
	}

	.grow-alcantil-hero-frame,
	.grow-alcantil-adventure-frame,
	.grow-alcantil-name-story-frame,
	.grow-site-plan-frame {
		padding-inline: var(--grow-page-edge-spacing) !important;
	}

	.grow-alcantil-hero-frame,
	.grow-alcantil-faq-hero-frame {
		padding-bottom: var(--grow-page-edge-spacing) !important;
	}

	.grow-alcantil-intro,
	.grow-alcantil-name-story,
	.grow-alcantil-life,
	.grow-alcantil-site-plan {
		padding-block: 3.5rem !important;
	}

	.grow-alcantil-name-story {
		padding-inline: var(--grow-content-padding) !important;
	}

	.grow-alcantil-name-story__definitions p {
		font-size: clamp(1rem, 7vw, 1.5rem) !important;
	}

	.grow-alcantil-ribbon {
		padding-bottom: 3.5rem !important;
	}

	.grow-alcantil-adventure {
		padding-block: 3.5rem !important;
	}

	.grow-alcantil-adventure__mark {
		width: 5rem !important;
	}

	.grow-alcantil-destinations {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		overflow: visible;
	}

	/* Phones show every Adventure card and its copy in reading order. */
	.grow-alcantil-destinations > .wp-block-column,
	.grow-alcantil-destinations > .grow-editorial-feature__card-feature {
		flex-basis: auto !important;
		min-width: 0;
		padding-top: 0 !important;
		width: 100%;
	}

	.grow-alcantil-faq-hero-frame,
	.grow-alcantil-faq-contact-frame {
		padding: var(--grow-page-edge-spacing) !important;
	}

	.grow-alcantil-hero__location {
		font-size: 0.875rem !important;
	}

	.grow-alcantil-faq-section {
		padding-block: 3.5rem !important;
	}

	.grow-alcantil-faq-list .wp-block-details summary {
		font-size: 1.05rem;
		gap: 0.75rem;
		grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem;
		padding-block: 1rem;
	}

	.grow-alcantil-faq-list .wp-block-details summary::before {
		font-size: 1.35rem;
	}

	.grow-alcantil-faq-list .wp-block-details summary::after {
		height: 2.5rem;
		width: 2.5rem;
	}

	.grow-alcantil-faq-list .wp-block-details > p {
		font-size: 0.9375rem;
		line-height: 1.5;
		margin: -0.25rem 0 1rem 3.25rem;
	}

	.grow-alcantil-faq-contact {
		min-height: 0 !important;
		padding-block: 3.5rem !important;
	}

	.grow-alcantil-faq-form fieldset {
		display: block;
	}

	.grow-alcantil-faq-contact__inner > .wp-block-heading {
		font-size: clamp(2rem, 10vw, 2.5rem) !important;
	}

	.grow-alcantil-faq-form .ff-el-group {
		min-height: 5rem;
	}

	.grow-alcantil-faq-form .ff-el-group:nth-of-type(1),
	.grow-alcantil-faq-form .ff-el-group:nth-of-type(2),
	.grow-alcantil-faq-form .ff-el-group:nth-of-type(3),
	.grow-alcantil-faq-form .ff-el-group:nth-of-type(4) {
		border-right: 0;
		padding-inline: 0;
	}

	.grow-alcantil-faq-form .ff-el-input--label label {
		font-size: 1.125rem;
		line-height: 2rem;
	}

	.grow-alcantil-faq-form .ff-el-form-control,
	.grow-alcantil-faq-form .grow-alcantil-faq-form__note {
		font-size: 1.0625rem;
		line-height: 1.75rem;
	}

	.grow-alcantil-faq-form .grow-alcantil-faq-form__note {
		min-height: 0;
	}
}
