.frame {
	background: var(--color-frame);
	position: relative;
	overflow: hidden;
}

.cover {
	object-fit: cover;
	width: 100%;
	max-width: none;
	height: 100%;
	position: absolute;
	inset: 0;
}

.media-box {
	position: absolute;
	left: -.2778%;
	top: -16.1963%;
	width: 100.5556%;
	max-width: none;
	height: 118.5276%;
}

.shade {
	pointer-events: none;
	background: var(--color-shade);
	position: absolute;
	inset: 0;
}

.hero {
	color: var(--color-white);
	background: var(--color-hero);
	height: 100svh;
	min-height: 560px;
	position: relative;
	overflow: hidden;
	display: block;
}

.hero-text {
	pointer-events: none;
	position: absolute;
	inset: 0;
}

.olive {
	color: var(--color-olive);
}

.zoom .cover {
	transition: transform 1.2s cubic-bezier(.2, .6, .2, 1);
}

.sec-head {
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
	min-width: 0;
	display: flex;
}

.sec-head.is-center {
	text-align: center;
	align-items: center;
}

.sec-head-row {
	flex-direction: row;
	align-items: flex-end;
	gap: 56px;
	display: flex;
}

.sec-head-row > .sec-head {
	flex: 1 1 0;
}

.text-link.is-large {
	gap: 3.036px;
}

.text-link.is-large .text-link-line:before,
.text-link.is-large .text-link-line:after {
	border-top-width: .759px;
}

@media (hover: hover) {
	.zoom:hover .cover,
	a:hover .zoom .cover {
		transform: scale(1.03);
	}
}

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

.image-cta h2 {
	margin: 0;
	color: inherit;
}

.image-cta {
	color: var(--color-white);
	background: var(--color-hero);
	height: 815px;
	position: relative;
	overflow: hidden;
}

.image-cta .media-box {
	left: -2.0972%;
	top: -1.227%;
	width: 104.194%;
	height: 103.558%;
}

.image-cta .shade {
	background: var(--color-cta-shade);
}

.image-cta-inner {
	padding: 0 var(--spacing-page);
	text-align: center;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 48px;
	display: flex;
	position: absolute;
	inset: 0;
}

.image-cta .t72.cta-title {
	line-height: 1.1;
	max-width: 786px;
}

.image-cta .text-link {
	align-self: center;
}

@media (width<=1279px) {
	.image-cta {
		height: 900px;
	}

	.image-cta-inner {
		gap: 40px;
	}

	.image-cta .t72.cta-title {
		line-height: 1;
	}
}

@media (width<=767px) {
	.hero {
		min-height: 600px;
	}

	.sec-head {
		gap: 12px;
	}

	.image-cta {
		height: 640px;
	}

	.image-cta-inner {
		gap: 48px;
	}

	.image-cta .t72.cta-title {
		max-width: 314px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.zoom .cover {
		transition-duration: .01ms;
	}
}

/* Hero logo slot and captions, shared by Home and Our Story. */
.home-hero-logo {
	pointer-events: none;
	aspect-ratio: 399 / 103;
	width: 399px;
	height: auto;
	position: absolute;
	bottom: 28px;
	left: 50%;
	transform: translate(calc(-50% - 8.5px));
}

.home-hero-logo img {
	visibility: hidden;
	width: 100%;
	height: auto;
}

.home-hero-caption {
	color: var(--color-cream);
	margin: 0;
	position: absolute;
}

.home-hero-caption.is-left {
	bottom: 22px;
	left: var(--spacing-page);
}

.home-hero-caption.is-right {
	right: var(--spacing-page);
	width: 155px;
	bottom: 24px;
}

/* Divider rule, used by Bold's lists and the FAQ. */
.rule {
	border: 0;
	border-top: 1px solid var(--color-divider);
	width: 100%;
	height: 0;
	margin: 0;
}

/* FAQ accordion, shared by Bold and Our Story. */
.villa-faq h2,
.villa-faq p {
	margin: 0;
}

.villa-faq {
	background: var(--color-white);
	gap: 72px;
	padding: 100px var(--spacing-page) 150px;
}

.villa-faq h2 {
	max-width: 382px;
}

.faq-list {
	flex-direction: column;
	gap: 32px;
	width: min(1004px, 100%);
	display: flex;
}

.faq-item {
	flex-direction: column;
	gap: 32px;
	display: flex;
}

.faq-q {
	appearance: none;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
	background: none;
	border: 0;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	width: 98.1076%;
	min-height: 44px;
	padding: 0;
	display: flex;
}

.faq-text {
	flex-direction: column;
	gap: 16px;
	min-width: 0;
	display: flex;
}

.faq-text .t28 {
	white-space: nowrap;
}

.faq-a {
	max-width: 426px;
}

html.azuma-js .faq-item:not(.is-open) .faq-a {
	display: none;
}

.faq-icon {
	flex-shrink: 0;
	place-items: center;
	width: 14px;
	height: 14px;
	display: grid;
}

.faq-icon img {
	grid-area: 1 / 1;
	max-width: none;
}

.faq-icon .for-closed,
html.azuma-js .faq-item:not(.is-open) .for-open {
	display: none;
}

html.azuma-js .faq-item:not(.is-open) .for-closed {
	display: block;
}

@media (width<=1279px) {
	.home-hero-logo {
		display: none;
	}

	.home-hero p.home-hero-caption {
		line-height: 26px;
	}

	.home-hero .home-hero-caption.is-left {
		bottom: 48px;
		left: 48px;
	}

	.home-hero .home-hero-caption.is-right {
		width: 150px;
		bottom: 48px;
		right: 48px;
	}

	.faq-q {
		width: 100%;
	}

	.faq-text .t28 {
		white-space: normal;
	}
}

@media (width>=768px) and (width<=1279px) {
	.home-hero {
		height: 1040px;
		min-height: 0;
	}

	.villa-faq {
		gap: 48px;
		padding: 100px var(--spacing-page) 120px;
	}

	.faq-list,
	.faq-item {
		gap: 16px;
	}
}

@media (width<=767px) {
	.home-hero {
		height: 780px;
		min-height: 0;
	}

	.home-hero p.home-hero-caption,
	.home-hero .home-hero-caption.is-right {
		text-align: center;
		width: auto;
		font-size: 16px;
		line-height: 28px;
		left: 0;
		right: 0;
	}

	.home-hero .home-hero-caption.is-left {
		bottom: 61px;
	}

	.home-hero .home-hero-caption.is-right {
		bottom: 33px;
	}

	.villa-faq {
		gap: 40px;
		padding: 72px var(--spacing-page) 96px;
	}

	.faq-list,
	.faq-item {
		gap: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home-hero-logo img {
		visibility: visible;
		transition: opacity .5s !important;
	}

	.home-hero-logo.is-away img {
		opacity: 0;
	}
}
