@import url('https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&display=swap');

:root {
	--sea: #00817b;
	--deep: #0c333a;
	--ink: #1b1c19;
	--muted: #667270;
	--sand: #f2efe9;
	--surface: #fbf9f4;
	--white: #fff;
	--line: #d6ddda;
	--gold: #d8b45d
}

* {
	box-sizing: border-box
}

html {
	scroll-behavior: smooth
}

body {
	margin: 0;
	background: #fff;
	color: var(--ink);
	font-family: "Google Sans", sans-serif;
	font-size: 16px;
	line-height: 1.65
}

body.menu-open {
	overflow: hidden
}

a {
	color: inherit;
	text-decoration: none
}

img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover
}

button {
	font: inherit
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0
}

h1,
h2,
h3 {
	margin: 0;
	color: var(--deep);
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 400;
	line-height: 1.12
}

h2 {
	font-size: clamp(44px, 4.6vw, 68px)
}

p {
	margin: 0
}

.eyebrow {
	margin-bottom: 18px;
	color: var(--sea);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase
}

.section {
	padding: clamp(90px, 10vw, 160px) clamp(24px, 5vw, 80px)
}

.site-header {
	position: fixed;
	z-index: 20;
	top: 0;
	left: 0;
	right: 0;
	height: 120px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 clamp(40px, 4.8vw, 92px);
	color: #fff;
	border-bottom: 1px solid transparent;
	transition: .35s
}

.site-header.is-scrolled {
	height: 78px;
	background: rgba(255, 255, 255, .94);
	color: var(--deep);
	border-color: var(--line);
	backdrop-filter: blur(15px);
	box-shadow: 0 8px 30px rgba(12, 51, 58, .06)
}

.logo {
	display: block
}

.logo img {
	width: auto;
	height: 78px;
	object-fit: contain
}

.site-header.is-scrolled .logo img {
	height: 62px
}

.header-wordmark {
	position: relative;
	z-index: 2;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 29px;
	letter-spacing: -.04em
}

.site-nav {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(28px, 2.7vw, 54px);
	pointer-events: none
}

.site-nav a {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	transition: .25s;
	pointer-events: auto
}

.site-nav a:not(.nav-cta):hover {
	color: var(--sea)
}

.nav-dropdown {
	position: relative;
	display: inline-flex;
	align-items: center;
	height: auto;
	pointer-events: auto
}

.nav-dropdown>a {
	display: inline-flex;
	align-items: center;
	gap: 8px
}

.nav-dropdown>a:before {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	order: 2;
	margin-top: -4px
}

.nav-dropdown-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 180px;
	padding: 0;
	background: rgba(34, 39, 37, .9);
	box-shadow: none;
	opacity: 0;
	pointer-events: none;
	transform: translateY(10px);
	transition: opacity .22s ease, transform .22s ease
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0)
}

.site-nav .nav-dropdown-menu a {
	display: block;
	padding: 16px 24px;
	color: #fff !important;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: .02em;
	text-transform: none;
	white-space: nowrap
}

.site-nav .nav-dropdown-menu a:hover,
.site-nav .nav-dropdown-menu a:focus-visible {
	background: transparent;
	color: #fff !important
}

.nav-cta {
	display: inline-flex;
	align-items: center;
	gap: 24px;
	justify-content: center;
	min-width: 176px;
	padding: 18px 42px;
	background: var(--sea);
	border: 1px solid rgba(216, 180, 93, .68);
	box-shadow: 0 14px 30px rgba(0, 129, 123, .24);
	color: var(--gold) !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	transition: .25s;
	position: absolute;
	right: clamp(40px, 4.3vw, 82px)
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 14px 25px;
	border: 1px solid var(--sea);
	background: transparent;
	color: var(--sea) !important;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase;
	transition: .25s
}

.nav-cta:hover {
	background: #006b65;
	border-color: var(--gold);
	box-shadow: 0 18px 38px rgba(0, 129, 123, .34);
	color: var(--gold) !important;
	transform: translateY(-2px)
}

.button:hover {
	background: var(--sea);
	color: #fff !important
}

.menu-toggle {
	display: none;
	border: 0;
	background: none;
	width: 42px;
	height: 42px
}

.menu-toggle span {
	display: block;
	width: 22px;
	height: 1px;
	margin: 6px auto;
	background: currentColor
}

.hero-media {
	position: relative;
	height: 100svh;
	min-height: 680px;
	overflow: hidden;
	background: #18343a
}

.hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none
}

.hero-youtube {
	left: 50%;
	top: 50%;
	width: max(100vw, 177.78svh);
	height: max(100svh, 56.25vw);
	border: 0;
	transform: translate(-50%, -50%)
}



.hero-copy {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 48%;
	width: min(1100px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	color: #fff;
	text-align: center
}

.eyebrow.light {
	color: #fff
}

.hero h1 {
	color: #fff;
	font-size: 80px;
	letter-spacing: -.03em
}

.hero h1 em {
	font-weight: 400
}

.hero-rule {
	display: block;
	width: 118px;
	height: 1px;
	margin: 42px auto 48px;
	background: rgba(255, 255, 255, .65)
}

.hero-copy>p:last-child {
	max-width: 850px;
	margin: auto;
	color: rgba(255, 255, 255, .9);
	font-size: clamp(16px, 1.15vw, 22px);
	font-weight: 300;
	line-height: 1.65
}

.scroll-cue {
	position: absolute;
	z-index: 3;
	left: 50%;
	bottom: 11%;
	width: 32px;
	height: 30px;
	transform: translateX(-50%)
}

.scroll-cue span {
	position: absolute;
	left: 7px;
	width: 16px;
	height: 16px;
	border-right: 3px solid #fff;
	border-bottom: 3px solid #fff;
	transform: rotate(45deg)
}

.scroll-cue span:first-child {
	top: 0
}

.scroll-cue span:last-child {
	top: 9px
}

.intro {
	display: grid;
	grid-template-columns: minmax(0, 840px) 80px minmax(0, 810px) 80px;
	gap: 0;
	align-items: stretch;
	width: 100%;
	max-width: 1810px;
	height: 796px;
	margin: 0;
	background: #f1efea;
	padding: 0
}

.intro-copy {
	grid-column: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	max-width: none;
	padding: 108px 90px 80px;
	background: #fbfaf7
}

.intro .eyebrow {
	margin-bottom: 27px;
	font-size: 11px;
	letter-spacing: .18em
}

.intro h2 {
	margin-bottom: 0;
	font-size: clamp(48px, 3.45vw, 66px);
	line-height: 1.12
}

.intro-rule {
	display: block;
	width: 80px;
	height: 1px;
	margin: 38px 0 38px;
	background: var(--sea)
}

.intro-copy>p:not(.eyebrow) {
	max-width: 650px;
	margin-bottom: 54px;
	color: #314448;
	font-size: clamp(16px, 1.16vw, 22px);
	font-weight: 300;
	line-height: 1.66
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	color: var(--deep);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase
}

.text-link span {
	font-size: 22px;
	transition: .25s
}

.text-link:hover span {
	transform: translateX(6px)
}

.intro-image {
	grid-column: 3;
	min-height: 0;
	height: 796px;
	padding: 0;
	background: var(--sand);
	overflow: hidden
}

.intro-image img {
	object-position: center
}

.accommodation {
	padding: clamp(70px, 8vw, 120px) 0 0;
	background: #fff;
	overflow: hidden
}

.stay-carousel {
	position: relative;
	width: 100%;
	touch-action: pan-y;
	cursor: grab
}

.stay-carousel.is-dragging {
	cursor: grabbing
}

.stay-carousel-track {
	display: flex;
	gap: 36px;
	transform: translate3d(0, 0, 0);
	transition: transform 1s cubic-bezier(.22, .61, .36, 1);
	will-change: transform
}

.stay-carousel.is-dragging .stay-carousel-track {
	transition: none
}

.stay-slide {
	position: relative;
	flex: 0 0 calc(100% - 190px);
	height: clamp(480px, 40vw, 665px);
	overflow: hidden;
	background: #172c30
}

.stay-slide:after {
	content: "";
	position: absolute;
	inset: 38% 0 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, .78), transparent)
}

.stay-slide img {
	transition: transform 1.4s cubic-bezier(.22, .61, .36, 1)
}

.stay-slide.is-active img {
	transform: scale(1.025)
}

.stay-slide span {
	position: absolute;
	z-index: 2;
	left: 24px;
	right: 24px;
	bottom: 62px;
	color: #fff;
	font-size: clamp(13px, 1.25vw, 21px);
	font-weight: 500;
	letter-spacing: .28em;
	text-align: center;
	text-transform: uppercase
}

.stay-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 47px
}

.stay-pagination button {
	width: 13px;
	height: 13px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #e3e3e1;
	cursor: pointer;
	transition: background .3s, transform .3s
}

.stay-pagination button.active {
	background: var(--sea);
	transform: scale(1.05)
}

.retreat-copy {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 32px 24px 75px;
	background: #fff;
	text-align: center
}

.retreat-copy h2 {
	margin-bottom: 30px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif;
	font-size: clamp(30px, 2.7vw, 48px);
	font-weight: 300;
	letter-spacing: .06em;
	text-transform: uppercase
}

.retreat-copy p {
	max-width: 760px;
	color: #26383c;
	font-size: clamp(16px, 1.1vw, 21px);
	font-weight: 300;
	line-height: 1.42
}

.retreat-copy a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 45px;
	padding: 14px 25px;
	border: 1px solid var(--sea);
	color: var(--sea);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase;
	transition: .25s
}

.retreat-copy a:hover {
	background: var(--sea);
	color: #fff
}

.experiences {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 28px;
	max-width: 1440px;
	margin: auto
}

.experience-intro {
	grid-column: span 12;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	margin-bottom: 35px
}

.experience-intro .eyebrow,
.experience-intro h2,
.experience-intro p {
	grid-column: 1
}

.experience-intro h2 {
	margin: 0;
	color: var(--sea);
	font-family: "Google Sans", sans-serif;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.12;
	text-transform: uppercase
}

.experience-intro>p:not(.eyebrow) {
	max-width: 620px;
	margin-top: 20px;
	color: #24383d;
	font-size: 17px;
	font-weight: 300
}

.experience-intro .text-link {
	grid-column: 2;
	grid-row: 1/4
}

.experience-card {
	position: relative;
	display: block;
	min-height: 360px;
	overflow: hidden;
	color: #fff
}

.experience-card:after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(12, 51, 58, .85), transparent 65%)
}

.experience-card img,
.experience-card:before {
	transition: transform .8s
}

.experience-card:hover img,
.experience-card:hover:before {
	transform: scale(1.05)
}

.experience-card div {
	position: absolute;
	z-index: 2;
	left: 32px;
	right: 32px;
	bottom: 30px
}

.experience-card h3 {
	margin-bottom: 8px;
	color: #fff;
	font-size: 30px
}

.experience-card b {
	font-size: 9px;
	letter-spacing: .16em;
	text-transform: uppercase
}

.feature-card {
	grid-column: span 8;
	min-height: 500px
}

.small-card {
	grid-column: span 4
}

.surf:before,
.dive:before,
.whale:before {
	content: "";
	position: absolute;
	inset: 0;
	background-position: center;
	background-size: cover
}

.surf:before {
	background-image: url("../assets/home/hero-resort.png");
	background-position: left
}

.dive:before {
	background-image: url("../assets/home/water-sports.png")
}

.whale:before {
	background-image: url("../assets/home/hero-resort.png");
	background-position: right
}

.dine {
	grid-column: span 4
}

.stay-banner {
	position: relative;
	height: 650px;
	color: #fff;
	overflow: hidden
}

.stay-banner:after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(12, 51, 58, .78)
}

.stay-banner>div {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 50%;
	width: min(760px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	text-align: center
}

.stay-banner p {
	margin-bottom: 20px;
	color: #8edbd5;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase
}

.stay-banner h2 {
	color: #fff;
	font-size: 80px
}

.stay-banner a {
	display: inline-block;
	margin-top: 42px;
	padding: 15px 34px;
	border: 1px solid #fff;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	transition: .25s
}

.stay-banner a:hover {
	background: #fff;
	color: var(--deep)
}

.site-footer {
	padding: 90px clamp(24px, 5vw, 80px) 30px;
	background: var(--deep);
	color: rgba(255, 255, 255, .72)
}

.footer-top {
	display: grid;
	grid-template-columns: 1.5fr repeat(3, 1fr);
	gap: 60px;
	max-width: 1440px;
	margin: auto
}

.footer-logo img {
	height: 120px
}

.footer-brand p {
	max-width: 340px;
	margin: 25px 0 30px;
	font-weight: 300
}

.footer-column {
	display: flex;
	flex-direction: column;
	gap: 12px
}

.footer-column h3 {
	margin: 0 0 16px;
	color: #8edbd5;
	font-family: "Google Sans", sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .17em;
	text-transform: uppercase
}

.footer-column a,
.footer-column p {
	font-size: 14px
}

.footer-column a:hover {
	color: #8edbd5
}

.footer-column.contact h3:nth-of-type(2) {
	margin-top: 22px
}

.socials {
	display: flex;
	gap: 10px
}

.socials a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, .25);
	font-size: 10px;
	text-transform: uppercase
}

.footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 25px;
	max-width: 1440px;
	margin: 70px auto 0;
	padding-top: 25px;
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase
}

@media(max-width:1050px) {
	.site-nav {
		position: fixed;
		inset: 0;
		display: grid;
		align-content: center;
		justify-items: center;
		gap: 22px;
		min-height: 100svh;
		padding: 110px 24px 48px;
		overflow-y: auto;
		background: rgba(255, 255, 255, .72);
		backdrop-filter: blur(12px);
		color: var(--deep);
		text-align: center;
		opacity: 0;
		pointer-events: none;
		transform: translateY(-10px);
		transition: .25s
	}

	.nav-dropdown {
		display: grid;
		gap: 0;
		height: auto;
		text-align: center
	}

	.nav-dropdown-menu {
		position: static;
		min-width: 0;
		padding: 0;
		background: transparent;
		box-shadow: none;
		opacity: 0;
		pointer-events: none;
		transform: translateY(-6px);
		max-height: 0;
		overflow: hidden;
		transition: opacity .2s ease, transform .2s ease, max-height .2s ease
	}

	.nav-dropdown.is-open {
		gap: 14px
	}

	.nav-dropdown.is-open .nav-dropdown-menu {
		opacity: 1;
		pointer-events: auto;
		transform: none;
		max-height: 80px
	}

	.site-nav .nav-dropdown-menu a {
		padding: 0;
		color: var(--sea) !important;
		font-size: 12px;
		letter-spacing: .18em;
		text-transform: uppercase
	}

	.site-nav .nav-dropdown-menu a:hover,
	.site-nav .nav-dropdown-menu a:focus-visible {
		background: transparent;
		color: var(--deep) !important
	}

	.site-header.menu-active .site-nav {
		opacity: 1;
		pointer-events: auto;
		transform: none
	}

	body.menu-open {
		overflow: hidden
	}

	.site-header>.nav-cta {
		display: none
	}

	.menu-toggle {
		position: absolute;
		z-index: 22;
		right: 24px;
		display: block;
		color: inherit
	}

	.intro {
		grid-template-columns: 1fr;
		height: auto;
		max-width: none;
		padding: 0
	}

	.intro-copy {
		grid-column: 1;
		max-width: none;
		padding: 90px 40px
	}

	.intro-image {
		grid-column: 1;
		min-height: 560px;
		height: 560px
	}

	.experiences {
		grid-template-columns: repeat(2, 1fr)
	}

	.experience-intro,
	.feature-card,
	.small-card,
	.dine {
		grid-column: span 1
	}

	.experience-intro {
		grid-column: span 2
	}

	.footer-top {
		grid-template-columns: repeat(2, 1fr)
	}
}

@media(max-width:700px) {
	body {
		overflow-x: hidden
	}

	.site-header {
		height: 76px;
		padding: 0 18px
	}

	.site-header.is-scrolled {
		height: 68px
	}

	.header-wordmark {
		font-size: 22px
	}

	.logo img {
		height: 65px
	}

	.menu-toggle {
		color: #fff
	}

	.site-header.is-scrolled .menu-toggle {
		color: var(--deep)
	}

	.hero-media {
		min-height: 620px
	}

	.hero-copy {
		top: 49%;
		width: calc(100% - 32px)
	}

	.hero-copy .eyebrow {
		font-size: 9px;
		letter-spacing: .14em
	}

	.hero h1 {
		font-size: 80px;
		line-height: 1.06
	}

	.hero-rule {
		width: 72px;
		margin: 30px auto
	}

	.hero-copy>p:last-child {
		max-width: 330px;
		font-size: 13px
	}

	.desktop-break {
		display: none
	}

	.scroll-cue {
		bottom: 8%;
		transform: translateX(-50%) scale(.75)
	}

	.section {
		padding: 78px 20px
	}

	.intro-copy {
		padding: 75px 22px
	}

	.intro h2 {
		font-size: 43px
	}

	.intro-rule {
		margin: 30px 0
	}

	.intro-copy>p:not(.eyebrow) {
		margin-bottom: 38px;
		font-size: 15px
	}

	.intro-image {
		min-height: 420px;
		height: 420px
	}

	.accommodation {
		padding: 60px 0 0
	}

	.stay-carousel-track {
		gap: 14px
	}

	.stay-slide {
		flex-basis: calc(100% - 44px);
		height: 430px
	}

	.stay-slide span {
		bottom: 35px;
		font-size: 15px;
		letter-spacing: .2em
	}

	.stay-pagination {
		margin-top: 27px
	}

	.stay-pagination button {
		width: 10px;
		height: 10px
	}

	.retreat-copy {
		padding: 28px 20px 80px
	}

	.retreat-copy h2 {
		margin-bottom: 22px;
		font-size: 28px
	}

	.retreat-copy p {
		font-size: 15px;
		line-height: 1.55
	}

	.retreat-copy a {
		min-width: 0;
		width: 100%;
		max-width: 360px;
		margin-top: 48px;
		padding: 18px 20px;
		font-size: 11px
	}

	.experiences {
		grid-template-columns: 1fr;
		gap: 18px
	}

	.experience-intro {
		display: block;
		grid-column: span 1
	}

	.experience-intro .text-link {
		margin-top: 25px
	}

	.experience-card,
	.feature-card {
		min-height: 360px
	}

	.stay-banner {
		height: 500px
	}

	.footer-top {
		grid-template-columns: 1fr
	}

	.footer-bottom {
		flex-direction: column
	}

	.footer-logo img {
		height: 100px
	}
}

@media(prefers-reduced-motion:reduce) {

	.stay-carousel-track,
	.stay-slide img {
		transition: none
	}
}

@media(min-width:1051px) {
	.site-header.is-scrolled {
		height: 104px;
		background: rgba(255, 255, 255, .96);
		box-shadow: 0 4px 18px rgba(12, 51, 58, .04)
	}

	.intro {
		margin-top: 128px
	}

	.intro-copy {
		padding: 145px 90px 70px
	}
}

.footer-top {
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(60px, 11vw, 180px);
	max-width: 1280px
}

.footer-column {
	gap: 18px
}

.footer-column h3 {
	margin-bottom: 14px;
	color: #dba83b;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em
}

.footer-column a,
.footer-column p {
	font-size: 16px
}

.footer-column.contact h3:nth-of-type(2) {
	margin-top: 18px
}

.socials {
	gap: 10px;
	margin-top: 0
}

.socials a {
	width: 34px;
	height: 34px;
	border-color: #dba83b;
	border-radius: 50%;
	color: rgba(255, 255, 255, .72)
}

.socials svg {
	width: 15px;
	height: 15px
}

.social-facebook svg {
	fill: currentColor
}

.social-instagram svg,
.social-whatsapp svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round
}

.social-instagram svg circle:last-child {
	fill: currentColor;
	stroke: none
}

.social-whatsapp svg path:last-child {
	fill: currentColor;
	stroke: none
}

@media(max-width:1050px) {
	.footer-top {
		grid-template-columns: repeat(2, 1fr);
		gap: 60px
	}
}

@media(max-width:700px) {
	.footer-top {
		grid-template-columns: 1fr;
		gap: 48px
	}
}

@media(min-width:1051px) {
	.site-nav {
		gap: clamp(12px, 1.25vw, 24px)
	}

	.site-nav a {
		font-size: 12px;
		letter-spacing: .18em
	}

	.nav-cta {
		font-size: 12px
	}
}

.hero-copy {
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	text-align: center
}

@media(max-width:700px) {
	.hero-copy {
		top: 50%
	}
}

.intro-image img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

@media(min-width:1051px) {
	.intro {
		grid-auto-rows: 796px
	}

	.intro-copy,
	.intro-image {
		height: 100%
	}

	.intro-image {
		height: auto
	}
}

.footer-top {
	grid-template-columns: 1.55fr repeat(3, 1fr);
	gap: clamp(55px, 8vw, 145px);
	max-width: 1550px
}

.footer-brand {
	align-self: start
}

.footer-logo img {
	height: 170px
}

.footer-brand p {
	max-width: 360px;
	margin: 24px 0 30px;
	font-size: 16px;
	line-height: 1.9
}

.footer-brand .button {
	min-width: 262px;
	justify-content: space-between;
	padding: 20px 24px
}

.footer-column {
	padding-top: 10px
}

@media(max-width:1050px) {
	.footer-top {
		grid-template-columns: repeat(2, 1fr);
		gap: 60px
	}
}

@media(max-width:700px) {
	.footer-top {
		grid-template-columns: 1fr;
		gap: 48px
	}

	.footer-logo img {
		height: 130px
	}

	.footer-brand .button {
		min-width: 0;
		width: max-content
	}
}

.eyebrow,
.intro .eyebrow,
.footer-column h3 {
	font-size: 14px
}

@media(max-width:700px) {

	.eyebrow,
	.intro .eyebrow,
	.footer-column h3 {
		font-size: 12px
	}
}

.site-header {
	height: 130px;
	background: #fff;
	color: var(--deep);
	border-color: var(--line)
}

.site-header.is-scrolled {
	height: 100px
}

.hero {
	padding-top: 130px
}

.hero-media {
	height: calc(100svh - 130px);
	min-height: 650px
}

.hero-shade {
	background: linear-gradient(90deg, rgba(5, 25, 30, .62), rgba(8, 32, 36, .3) 55%, rgba(8, 30, 34, .28))
}

.scroll-cue {
	display: none
}

@media(max-width:700px) {
	.site-header {
		height: 76px
	}

	.site-header.is-scrolled {
		height: 68px
	}

	.menu-toggle {
		color: var(--deep)
	}

	.site-header.menu-active .menu-toggle,
	.site-header.is-scrolled .menu-toggle {
		color: var(--deep)
	}

	.hero {
		padding-top: 76px
	}

	.hero-media {
		height: calc(100svh - 76px);
		min-height: 580px
	}
}

.stay-banner:after {
	background: rgba(12, 51, 58, .48)
}

.stay-banner p {
	font-size: 14px
}

@media(max-width:700px) {
	.stay-banner p {
		font-size: 12px
	}
}

.experience-intro .button {
	grid-column: 2;
	grid-row: 1/4;
	align-self: end
}

@media(max-width:700px) {
	.experience-intro .button {
		display: inline-flex;
		width: max-content;
		margin-top: 25px
	}
}

.intro-copy .button {
	align-self: flex-start
}

.footer-top {
	grid-template-columns: 1.35fr .8fr .8fr 1.5fr;
	gap: clamp(45px, 6vw, 110px)
}

.contact-item {
	display: grid;
	grid-template-columns: 22px 1fr;
	gap: 12px;
	align-items: start;
	margin-bottom: 8px
}

.contact-item>svg {
	width: 18px;
	height: 18px;
	margin-top: 3px;
	fill: none;
	stroke: #dba83b;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round
}

.contact-item p {
	line-height: 1.7
}

.contact-item strong {
	display: block;
	margin-bottom: 2px;
	color: #dba83b;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .15em;
	text-transform: uppercase
}

.contact-item a {
	display: block;
	font-size: 14px
}

@media(max-width:1050px) {
	.footer-top {
		grid-template-columns: repeat(2, 1fr)
	}
}

@media(max-width:700px) {
	.footer-top {
		grid-template-columns: 1fr
	}
}

.footer-brand>h3 {
	margin: 30px 0 16px;
	color: #dba83b;
	font-family: "Google Sans", sans-serif;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase
}

@media(max-width:700px) {
	.footer-brand>h3 {
		font-size: 12px
	}
}

.footer-bottom {
	justify-content: center;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 28px;
	text-align: center
}

.footer-bottom>a {
	color: rgba(255, 255, 255, .72);
	transition: color .25s
}

.footer-bottom>a:hover {
	color: #dba83b
}

.site-footer .footer-brand p {
	font-size: 17px
}

.site-footer .footer-column h3,
.site-footer .footer-brand>h3 {
	font-size: 15px
}

.site-footer .footer-column a,
.site-footer .footer-column p {
	font-size: 17px
}

.site-footer .footer-bottom {
	font-size: 13px
}

.contact-item p,
.contact-item a {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.7
}

.site-footer .contact-item strong {
	font-size: 15px
}

.site-footer .contact-item a {
	font-size: 17px
}

.site-nav a,
.site-nav .nav-cta {
	font-family: "Google Sans", sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .18em
}

@media(max-width:1050px) {

	.site-nav a,
	.site-nav .nav-cta {
		font-size: 12px
	}
}

.stay-banner p {
	color: #fff
}

@media(max-width:1050px) {
	.intro {
		margin-top: 72px
	}
}

@media(max-width:700px) {
	.intro {
		margin-top: 48px
	}
}

.intro {
	display: grid;
	grid-template-columns: minmax(320px, 38%) minmax(0, 1fr);
	grid-auto-rows: auto;
	gap: clamp(60px, 8vw, 150px);
	align-items: center;
	width: min(1500px, calc(100% - 80px));
	max-width: none;
	height: auto;
	margin: 0 auto;
	padding: 80px 0;
	background: #fff
}

.intro-copy {
	grid-column: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 500px;
	height: auto;
	padding: 0 20px;
	background: #fff;
	text-align: center
}

.intro .eyebrow {
	max-width: 390px;
	margin: 0 0 22px;
	color: var(--sea);
	font-size: clamp(14px, 1.1vw, 18px);
	font-weight: 400;
	letter-spacing: .22em;
	line-height: 1.5
}

.intro h2 {
	max-width: 430px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif;
	font-size: clamp(38px, 3.15vw, 58px);
	font-weight: 300;
	letter-spacing: .055em;
	line-height: 1.05;
	text-transform: uppercase
}

.intro-rule {
	width: 145px;
	height: 2px;
	margin: 55px auto 40px;
	background: var(--sea)
}

.intro-copy>p:not(.eyebrow) {
	max-width: 430px;
	margin: 0 auto 50px;
	color: #24383d;
	font-size: clamp(17px, 1.2vw, 23px);
	font-weight: 300;
	line-height: 1.42
}

.intro-link {
	display: inline-block;
	padding: 0 0 4px;
	border-bottom: 3px solid var(--sea);
	color: var(--sea);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase
}

.intro-image {
	grid-column: auto;
	width: 100%;
	height: clamp(420px, 32vw, 540px);
	min-height: 0;
	padding: 0;
	background: #f2efe9;
	overflow: hidden
}

.intro-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}

@media(max-width:1050px) {
	.intro {
		grid-template-columns: 1fr;
		gap: 50px;
		width: min(760px, calc(100% - 40px));
		padding: 90px 0
	}

	.intro-copy {
		grid-column: auto;
		min-height: 0;
		padding: 0 20px
	}

	.intro-rule {
		margin: 50px auto 38px
	}

	.intro-copy>p:not(.eyebrow) {
		margin-bottom: 48px
	}

	.intro-image {
		grid-column: auto;
		height: 480px;
		min-height: 0
	}
}

@media(max-width:700px) {
	.intro {
		width: calc(100% - 32px);
		margin-top: 0;
		padding: 70px 0
	}

	.intro-copy {
		padding: 0
	}

	.intro .eyebrow {
		font-size: 11px
	}

	.intro h2 {
		font-size: 36px
	}

	.intro-rule {
		width: 100px;
		margin: 38px auto 30px
	}

	.intro-copy>p:not(.eyebrow) {
		font-size: 15px;
		line-height: 1.55
	}

	.intro-link {
		font-size: 11px
	}

	.intro-image {
		height: 320px
	}
}

main>section+section {
	margin-top: 62px !important
}

.intro {
	padding-top: 60px;
	padding-bottom: 60px
}

.accommodation {
	padding-top: 60px
}

.experiences {
	padding-top: 60px;
	padding-bottom: 60px
}

@media(max-width:1050px) {
	main>section+section {
		margin-top: 62px !important
	}

	.intro {
		padding-top: 50px;
		padding-bottom: 50px
	}

	.accommodation {
		padding-top: 50px
	}

	.experiences {
		padding-top: 50px;
		padding-bottom: 50px
	}
}

@media(max-width:700px) {
	main>section+section {
		margin-top: 62px !important
	}

	.intro {
		padding-top: 36px;
		padding-bottom: 36px
	}

	.accommodation {
		padding-top: 36px
	}

	.experiences {
		padding-top: 36px;
		padding-bottom: 36px
	}
}

@media(min-width:1051px) {

	.site-header,
	.site-header.is-scrolled {
		height: 112px;
		padding: 0 5.5vw;
		background: rgba(34, 39, 37, .72);
		color: #fff;
		border: 0;
		box-shadow: none;
		backdrop-filter: blur(3px)
	}

	.header-logo img,
	.site-header.is-scrolled .header-logo img {
		height: 76px;
		filter: none
	}

	.site-nav {
		left: 180px;
		right: 270px;
		gap: clamp(14px, 1.45vw, 28px)
	}

	.site-nav a,
	.site-nav .nav-cta {
		position: relative;
		color: #fff !important;
		font-size: 12px;
		font-weight: 400;
		letter-spacing: .14em
	}

	.site-nav>a:after,
	.site-nav>.nav-dropdown>a:after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: -8px;
		height: 1px;
		background: currentColor;
		transform: scaleX(0);
		transform-origin: center;
		transition: transform .25s ease
	}

	.site-nav>a:hover:after,
	.site-nav>a:focus-visible:after,
	.site-nav>.nav-dropdown:hover>a:after,
	.site-nav>.nav-dropdown>a:focus-visible:after {
		transform: scaleX(1)
	}

	.site-nav a:not(.nav-cta):hover {
		color: #fff;
		opacity: 1
	}

	.nav-cta {
		right: 5.5vw;
		gap: 0;
		min-width: 168px;
		padding: 17px 24px;
		background: var(--sea);
		color: var(--gold) !important;
		font-weight: 700;
		letter-spacing: .1em
	}

	.nav-cta:before {
		content: none
	}

	.nav-cta:after {
		content: none
	}

	.nav-cta:hover {
		background: #006b65;
		color: var(--gold) !important;
		transform: translateY(-2px);
		opacity: 1
	}

	.hero {
		padding-top: 0
	}

	.hero-media {
		height: 100svh;
		min-height: 680px
	}
}

@media(max-width:700px) {
	.hero-media {
		height: calc(100svh - 76px);
		min-height: calc(100svh - 76px)
	}

	.hero-youtube {
		top: 50%;
		width: max(100vw, 924.45px);
		height: max(520px, 56.25vw)
	}
}

@media(min-width:1051px) and (max-width:1450px) {
	.site-nav {
		justify-content: center;
		left: 190px;
		right: 245px;
		gap: clamp(12px, 1.1vw, 20px)
	}

	.site-nav a {
		font-size: 11px;
		letter-spacing: .13em
	}

	.nav-cta {
		right: 4vw;
		white-space: nowrap
	}
}

body,
h1,
h2,
h3,
.site-nav a,
.button,
.intro-link,
.retreat-copy a,
.stay-slide span {
	font-family: "Google Sans", sans-serif;
}

h2,
.intro h2,
.retreat-copy h2 {
	font-size: 36px
}

.intro-copy>p:not(.eyebrow),
.retreat-copy p,
.experience-intro>p:not(.eyebrow) {
	font-size: 18px
}

.intro h2+p:not(.eyebrow) {
	margin-top: 40px
}

.button,
.intro-link,
.retreat-copy a,
.stay-banner a {
	font-size: 15px;
	text-transform: uppercase
}

.stay-slide span {
	font-size: 17px
}

.archery-card img {
	object-position: 30% center
}

@media(max-width:700px) {

	h2,
	.intro h2,
	.retreat-copy h2 {
		font-size: 36px
	}

	.intro-copy>p:not(.eyebrow),
	.retreat-copy p,
	.experience-intro>p:not(.eyebrow) {
		font-size: 18px
	}

	.button,
	.intro-link,
	.retreat-copy a,
	.stay-banner a {
		font-size: 15px
	}

	.stay-slide span {
		font-size: 17px
	}
}

.intro-copy>h2,
.retreat-copy>h2,
.experience-intro>h2 {
	font-size: 40px
}

.intro-copy {
	align-items: flex-start;
	text-align: left
}

.intro-copy>p:not(.eyebrow) {
	margin-left: 0;
	margin-right: 0
}

.intro-copy .intro-link {
	align-self: flex-start
}

.header-logo {
	position: relative;
	z-index: 2
}

.header-logo img {
	height: 104px
}

.site-header.is-scrolled .header-logo img {
	height: 88px
}

@media(max-width:700px) {
	.header-logo img {
		height: 70px
	}

	.site-header.is-scrolled .header-logo img {
		height: 62px
	}
}

*,
*::before,
*::after {
	font-family: "Google Sans", sans-serif !important;
}

.hero {
	padding-top: 0 !important
}

.offers-page main>section+section {
	margin-top: 0 !important
}

.things-page main>section+section {
	margin-top: 0 !important
}

.offers-hero {
	position: relative;
	height: clamp(520px, 100svh, 820px);
	min-height: 520px;
	overflow: hidden;
	background: #102b30
}

.things-hero {
	position: relative;
	height: clamp(520px, 100svh, 820px);
	min-height: 520px;
	overflow: hidden;
	background: #102b30
}

.things-hero:after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .36)
}

.things-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}

.things-hero-copy {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 54%;
	width: min(900px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	text-align: center
}

.things-hero-copy h1 {
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 80px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.things-intro {
	width: min(980px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(90px, 9vw, 135px) 0 clamp(62px, 6vw, 92px);
	text-align: center
}

.things-intro h2,
.activity-row-copy h2,
.kids-heading h2 {
	margin: 0 auto 30px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.things-intro p:not(.about-section-label),
.kids-heading p {
	max-width: 820px;
	margin: 0 auto;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.things-intro p:not(.about-section-label)+p {
	margin-top: 20px
}

.things-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	width: min(1380px, calc(100% - 48px));
	margin: 0 auto;
	padding-bottom: clamp(90px, 9vw, 135px)
}

.things-feature-card {
	position: relative;
	min-height: 420px;
	overflow: hidden;
	color: #fff;
	background: #102b30
}

.things-feature-card.large {
	grid-column: span 2
}

.things-feature-card:after {
	content: "";
	position: absolute;
	inset: 35% 0 0;
	background: linear-gradient(0deg, rgba(5, 22, 26, .86), transparent)
}

.things-feature-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease
}

.things-feature-card:hover img {
	transform: scale(1.04)
}

.things-feature-card div {
	position: absolute;
	z-index: 2;
	left: 30px;
	right: 30px;
	bottom: 28px
}

.things-feature-card h2 {
	margin: 0 0 12px;
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 30px;
	font-weight: 300;
	letter-spacing: .04em;
	text-transform: uppercase
}

.things-feature-card p {
	color: rgba(255, 255, 255, .88);
	font-size: 18px;
	font-weight: 300;
	line-height: 1.45
}

.coastal-activities {
	display: grid;
	gap: clamp(70px, 7vw, 110px);
	padding: clamp(90px, 9vw, 135px) clamp(24px, 5vw, 80px);
	background: #f7f8f5
}

.activity-row {
	display: grid;
	grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
	gap: clamp(44px, 5vw, 82px);
	align-items: center;
	width: min(1320px, 100%);
	margin: 0 auto
}

.activity-row.is-reversed {
	grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr)
}

.activity-row.is-reversed .activity-row-copy {
	grid-column: 2
}

.activity-row.is-reversed img {
	grid-column: 1;
	grid-row: 1
}

.activity-row-copy p:not(.about-section-label) {
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.58
}

.activity-row img {
	width: 100%;
	height: clamp(380px, 36vw, 560px);
	object-fit: cover;
	background: #e8ebe5
}

.kids-section {
	padding: clamp(90px, 9vw, 135px) clamp(24px, 5vw, 80px);
	background: #fff
}

.kids-heading {
	width: min(940px, 100%);
	margin: 0 auto 58px;
	text-align: center
}

.kids-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	width: min(1180px, 100%);
	margin: 0 auto
}

.kids-card {
	padding: clamp(32px, 4vw, 54px);
	border: 1px solid var(--line);
	background: #f7f8f5
}

.kids-card h3 {
	margin: 0 0 24px;
	color: #000;
	font-family: "Google Sans", sans-serif !important;
	font-size: 28px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.25;
	text-transform: uppercase
}

.kids-card p {
	margin-bottom: 32px;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.58
}

.things-overview {
	width: min(980px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(90px, 9vw, 135px) 0 clamp(62px, 6vw, 92px);
	text-align: center
}

.things-overview h2,
.family-experience-copy h2 {
	margin: 0 auto 30px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.things-overview p:not(.about-section-label),
.family-experience-copy>p {
	max-width: 820px;
	margin: 0 auto;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.experience-board {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 24px;
	width: min(1440px, calc(100% - 48px));
	margin: 0 auto;
	padding-bottom: clamp(90px, 9vw, 135px)
}

.experience-tile {
	position: relative;
	grid-column: span 4;
	min-height: 470px;
	overflow: hidden;
	background: #102b30;
	color: #fff
}

.experience-tile.feature {
	grid-column: span 8
}

.experience-tile.wide {
	grid-column: span 7
}

.experience-tile.quiet {
	display: flex;
	align-items: flex-end;
	grid-column: span 5;
	background: var(--deep)
}

.experience-tile:after {
	content: "";
	position: absolute;
	inset: 32% 0 0;
	background: linear-gradient(0deg, rgba(5, 22, 26, .88), transparent)
}

.experience-tile.quiet:after {
	content: none
}

.experience-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease
}

.experience-tile:hover img {
	transform: scale(1.04)
}

.experience-tile>div {
	position: absolute;
	z-index: 2;
	left: 32px;
	right: 32px;
	bottom: 30px
}

.experience-tile.quiet>div {
	position: static;
	padding: 42px
}

.experience-tile p {
	margin-bottom: 16px;
	color: #8edbd5;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: .2em;
	text-transform: uppercase
}

.experience-tile h2 {
	margin: 0 0 18px;
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 30px;
	font-weight: 300;
	letter-spacing: .04em;
	line-height: 1.2;
	text-transform: uppercase
}

.experience-tile span {
	display: block;
	max-width: 720px;
	color: rgba(255, 255, 255, .9);
	font-size: 18px;
	font-weight: 300;
	line-height: 1.52
}

.family-experience {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	align-items: stretch;
	background: #f7f8f5
}

.family-experience-media {
	min-height: 720px
}

.family-experience-media img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.family-experience-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(70px, 7vw, 120px) clamp(32px, 6vw, 100px)
}

.family-experience-copy h2,
.family-experience-copy>p,
.family-experience-copy .about-section-label {
	margin-left: 0;
	text-align: left
}

.family-notes {
	display: grid;
	gap: 24px;
	margin-top: 46px
}

.family-notes article {
	padding: 30px;
	background: #fff;
	border: 1px solid var(--line)
}

.family-notes h3 {
	margin: 0 0 18px;
	color: #000;
	font-family: "Google Sans", sans-serif !important;
	font-size: 22px;
	font-weight: 400;
	letter-spacing: .08em;
	line-height: 1.3;
	text-transform: uppercase
}

.family-notes p {
	margin: 0 0 24px;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.excursion-intro {
	width: min(920px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(90px, 9vw, 130px) 0 clamp(48px, 5vw, 72px);
	text-align: center
}

.excursion-intro h2 {
	margin: 0 0 28px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.excursion-intro p:not(.about-section-label) {
	max-width: 760px;
	margin: 0 auto;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.58
}

.excursion-mosaic {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	width: min(1320px, calc(100% - 48px));
	margin: 0 auto clamp(90px, 9vw, 130px)
}

.excursion-mosaic img {
	width: 100%;
	aspect-ratio: 1.42;
	height: auto;
	object-fit: cover;
	background: #edf0ea
}

.excursion-list {
	display: grid;
	gap: clamp(80px, 8vw, 120px);
	padding: clamp(90px, 9vw, 130px) clamp(24px, 5vw, 80px);
	background: #f7f8f5
}

.excursion-entry {
	display: grid;
	grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
	gap: clamp(44px, 5vw, 86px);
	align-items: center;
	width: min(1320px, 100%);
	margin: 0 auto
}

.excursion-entry:nth-child(even) {
	grid-template-columns: minmax(360px, .96fr) minmax(0, 1.04fr)
}

.excursion-entry:nth-child(even) .excursion-entry-images {
	grid-column: 2
}

.excursion-entry:nth-child(even) .excursion-entry-copy {
	grid-column: 1;
	grid-row: 1
}

.excursion-entry-images {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch
}

.excursion-entry-images img {
	width: 100%;
	aspect-ratio: 1.15;
	height: auto;
	object-fit: cover;
	background: #edf0ea
}

.excursion-entry-images img:nth-child(2) {
	height: auto;
	align-self: auto
}

.excursion-entry-copy {
	padding: clamp(28px, 3vw, 44px) 0
}

.excursion-entry-copy h2 {
	margin: 0 0 26px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.22;
	text-transform: uppercase
}

.excursion-entry-copy p {
	margin: 0;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.58
}

.excursion-entry-copy p+p {
	margin-top: 20px
}

.excursion-entry-copy .button {
	margin-top: 34px
}

.kids-entry {
	padding-top: clamp(30px, 4vw, 60px);
	border-top: 1px solid var(--line)
}

.offers-hero:after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .38)
}

.offers-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}

.offers-hero-copy {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 54%;
	width: min(900px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	text-align: center
}

.offers-hero-copy h1 {
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 80px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.offers-intro {
	display: grid;
	/*grid-template-columns: minmax(0, 1fr) minmax(360px, .52fr);*/
	gap: clamp(36px, 7vw, 112px);
	align-items: center;
	/*width: min(1240px, calc(100% - 48px));*/
	margin: 0 auto;
	/*padding: clamp(90px, 9vw, 135px) 0 clamp(78px, 8vw, 118px)*/
}

.offers-intro-copy {
	position: relative;
	padding-left: 0
}

.offers-intro .offers-kicker {
	margin: 0 0 18px;
	color: #dba83b;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase
}

.offers-intro h2,
.terms-heading h2 {
	margin: 0 0 28px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.offers-intro p:not(.about-section-label) {
	max-width: 700px;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.offers-intro .offers-closing {
	margin-top: 26px !important;
	color: var(--deep) !important;
	font-weight: 400 !important
}

.offers-contact-panel {
	display: grid;
	gap: 16px;
	padding: clamp(28px, 3.8vw, 46px);
	background: var(--deep);
	color: #fff;
	box-shadow: 0 24px 60px rgba(12, 51, 58, .12)
}

.offers-intro .offers-contact-panel>p {
	margin: 0 0 6px;
	color: #dba83b;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase
}

.offers-contact-link {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 16px;
	align-items: center;
	min-height: 94px;
	padding: 20px;
	border: 1px solid rgba(255, 255, 255, .15);
	background: rgba(255, 255, 255, .05);
	transition: background .25s ease, border-color .25s ease, transform .25s ease
}

.offers-contact-link:hover {
	transform: translateY(-2px);
	border-color: rgba(142, 219, 213, .55);
	background: rgba(255, 255, 255, .09)
}

.offers-contact-icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	background: rgba(142, 219, 213, .12)
}

.offers-contact-icon svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: #8edbd5;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round
}

.offers-contact-link strong,
.offers-contact-link em {
	display: block;
	font-style: normal
}

.offers-contact-link strong {
	margin-bottom: 4px;
	color: rgba(255, 255, 255, .7);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase
}

.offers-contact-link em {
	color: #fff;
	font-size: 21px;
	font-weight: 300;
	line-height: 1.25
}

.offer-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	width: min(1380px, calc(100% - 48px));
	margin: 0 auto;
	padding-bottom: clamp(90px, 9vw, 135px)
}

.offer-card {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	color: #fff;
	background: #102b30
}

.offer-card:after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(5, 22, 26, .84), rgba(5, 22, 26, .18) 58%, rgba(5, 22, 26, .38))
}

.offer-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease
}

.offer-card:hover img {
	transform: scale(1.04)
}

.offer-card>div {
	position: absolute;
	z-index: 2;
	left: 42px;
	right: 42px;
	bottom: 42px
}

.offer-card p {
	margin-bottom: 18px;
	color: #8edbd5;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .24em;
	text-transform: uppercase
}

.offer-card h2 {
	margin: 0 0 22px;
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 36px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.offer-card span {
	display: block;
	max-width: 560px;
	margin-bottom: 34px;
	color: rgba(255, 255, 255, .88);
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.offer-card .button {
	justify-content: space-between;
	width: min(332px, 100%);
	min-height: 68px;
	padding: 0 36px;
	border-color: #fff;
	background: transparent;
	color: #fff !important
}

.offer-card .button span {
	display: inline-flex;
	align-items: center;
	margin: 0;
	line-height: 1
}

.offer-card .button:hover {
	background: #fff;
	color: var(--deep) !important
}

.offer-toast {
	position: fixed;
	z-index: 40;
	left: 50%;
	bottom: 30px;
	width: min(520px, calc(100% - 32px));
	padding: 18px 22px;
	background: rgba(12, 51, 58, .96);
	color: #fff;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.45;
	text-align: center;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .2);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 18px);
	transition: opacity .25s ease, transform .25s ease
}

.offer-toast.is-visible {
	opacity: 1;
	transform: translate(-50%, 0)
}

.terms-section {
	padding: clamp(90px, 9vw, 135px) clamp(24px, 5vw, 80px);
	background: #f7f8f5
}

.terms-heading {
	width: min(900px, 100%);
	margin: 0 auto 58px;
	text-align: center
}

.terms-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	width: min(1280px, 100%);
	margin: 0 auto
}

.term-card {
	padding: clamp(28px, 3vw, 42px);
	background: #fff;
	border: 1px solid var(--line)
}

.term-card.wide {
	grid-column: span 2
}

.term-card h3 {
	margin: 0 0 20px;
	color: #000;
	font-family: "Google Sans", sans-serif !important;
	font-size: 22px;
	font-weight: 400;
	letter-spacing: .08em;
	line-height: 1.28;
	text-transform: uppercase
}

.term-card ul {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none
}

.term-card li {
	position: relative;
	padding-left: 22px;
	color: #24383d;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.48
}

.term-card li:before {
	content: "";
	position: absolute;
	left: 0;
	top: .62em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--sea)
}

@media(max-width:1050px) {
	.offers-hero {
		height: 640px
	}

	.offers-intro {
		grid-template-columns: 1fr;
		width: min(760px, calc(100% - 48px))
	}

	.things-hero {
		height: 640px
	}

	.things-feature-grid,
	.kids-grid {
		grid-template-columns: 1fr
	}

	.things-feature-card.large {
		grid-column: span 1
	}

	.activity-row,
	.activity-row.is-reversed {
		grid-template-columns: 1fr
	}

	.activity-row.is-reversed .activity-row-copy,
	.activity-row.is-reversed img {
		grid-column: auto;
		grid-row: auto
	}

	.experience-tile,
	.experience-tile.feature,
	.experience-tile.wide,
	.experience-tile.quiet {
		grid-column: span 6
	}

	.family-experience {
		grid-template-columns: 1fr
	}

	.family-experience-media {
		min-height: 520px
	}

	.excursion-mosaic {
		grid-template-columns: repeat(2, minmax(0, 1fr))
	}

	.excursion-entry,
	.excursion-entry:nth-child(even) {
		grid-template-columns: 1fr
	}

	.excursion-entry:nth-child(even) .excursion-entry-images,
	.excursion-entry:nth-child(even) .excursion-entry-copy {
		grid-column: auto;
		grid-row: auto
	}

	.offer-cards,
	.terms-grid {
		grid-template-columns: 1fr
	}

	.term-card.wide {
		grid-column: span 1
	}
}

@media(max-width:700px) {
	.offers-hero {
		height: 520px;
		min-height: 520px
	}

	.things-hero {
		height: 520px;
		min-height: 520px
	}

	.offers-intro {
		width: calc(100% - 32px);
		padding: 72px 0 52px
	}

	.offers-intro-copy {
		min-width: 0;
		width: 100%;
		max-width: calc(100vw - 32px);
		padding-left: 0
	}

	.offers-intro .offers-kicker {
		max-width: calc(100vw - 32px);
		margin-bottom: 14px;
		font-size: 11px;
		letter-spacing: .18em;
		line-height: 1.5;
		white-space: normal;
		overflow-wrap: anywhere
	}

	.offers-intro h2 {
		max-width: calc(100vw - 32px);
		font-size: 40px;
		white-space: normal;
		overflow-wrap: anywhere;
		text-wrap: balance
	}

	.offers-intro p:not(.about-section-label) {
		max-width: calc(100vw - 32px);
		white-space: normal;
		font-size: 17px
	}

	.offers-contact-panel {
		width: 100%;
		min-width: 0;
		max-width: calc(100vw - 32px);
		padding: 24px 18px
	}

	.offers-contact-link {
		grid-template-columns: 42px 1fr;
		gap: 14px;
		min-height: 86px;
		padding: 16px 14px
	}

	.offers-contact-icon {
		width: 42px;
		height: 42px
	}

	.offers-contact-link strong {
		font-size: 11px;
		line-height: 1.45
	}

	.offers-contact-link em {
		font-size: 19px
	}

	.things-intro {
		width: calc(100% - 32px);
		padding: 72px 0 52px
	}

	.things-overview {
		width: calc(100% - 32px);
		padding: 72px 0 52px
	}

	.excursion-intro {
		width: calc(100% - 32px);
		padding: 72px 0 42px
	}

	.excursion-mosaic {
		grid-template-columns: 1fr;
		gap: 12px;
		width: calc(100% - 32px);
		margin-bottom: 72px
	}

	.excursion-list {
		gap: 70px;
		padding: 72px 20px
	}

	.excursion-entry-images {
		grid-template-columns: 1fr;
		gap: 12px
	}

	.things-feature-grid {
		width: calc(100% - 32px);
		gap: 18px;
		padding-bottom: 72px
	}

	.things-feature-card {
		min-height: 360px
	}

	.experience-board {
		grid-template-columns: 1fr;
		width: calc(100% - 32px);
		gap: 18px;
		padding-bottom: 72px
	}

	.experience-tile,
	.experience-tile.feature,
	.experience-tile.wide,
	.experience-tile.quiet {
		grid-column: span 1;
		min-height: 420px
	}

	.experience-tile>div {
		left: 24px;
		right: 24px;
		bottom: 24px
	}

	.experience-tile.quiet>div {
		padding: 30px
	}

	.family-experience-media {
		min-height: 360px
	}

	.family-experience-copy {
		padding: 72px 20px
	}

	.family-notes article {
		padding: 24px
	}

	.coastal-activities,
	.kids-section {
		padding: 72px 20px
	}

	.activity-row img {
		height: 340px
	}

	.offer-cards {
		width: calc(100% - 32px);
		gap: 18px;
		padding-bottom: 72px
	}

	.offer-card {
		min-height: 460px
	}

	.offer-card>div {
		left: 24px;
		right: 24px;
		bottom: 28px
	}

	.offer-card h2,
	.offers-intro h2,
	.terms-heading h2,
	.things-intro h2,
	.things-overview h2,
	.excursion-intro h2,
	.excursion-entry-copy h2,
	.activity-row-copy h2,
	.kids-heading h2,
	.family-experience-copy h2 {
		font-size: 40px
	}

	.terms-section {
		padding: 72px 20px
	}
}


.about-page main>section+section {
	margin-top: 0 !important
}

.about-hero {
	position: relative;
	height: clamp(520px, 100svh, 820px);
	min-height: 520px;
	overflow: hidden;
	background: #f2efe9
}

.about-hero:after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .24)
}

.about-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}

.about-hero-copy {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 54%;
	width: min(900px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	text-align: center
}

.about-hero-copy h1 {
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 80px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.about-location {
	background: #fff;
	color: #021624
}

.about-location-copy {
	width: min(1320px, calc(100% - 40px));
	margin: 0 auto;
	padding: clamp(110px, 10vw, 170px) 0 clamp(90px, 8vw, 135px);
	text-align: center
}

.about-section-label {
	margin-bottom: 28px;
	color: var(--sea);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: .22em;
	line-height: 1.2
}

.about-location h1 {
	margin: 0 0 42px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap
}

.about-location-copy p:not(.about-section-label) {
	max-width: 650px;
	margin: 0 auto;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.42
}

.about-location-copy p:not(.about-section-label)+p {
	margin-top: 46px
}

.about-location-image {
	width: 100%;
	height: clamp(460px, 48vw, 760px);
	overflow: hidden
}

.about-location-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}

.vision-mission {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: 390px;
	padding: 0 clamp(24px, 5vw, 80px);
	background: linear-gradient(rgba(13, 22, 22, .86), rgba(13, 22, 22, .86)), url("../assets/about_us/Mission & vission Background image.png") center/cover;
	color: #fff
}

.vision-mission-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(52px, 5.6vw, 92px);
	width: min(1410px, 100%);
	margin: 0 auto
}

.vision-mission-item {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr);
	gap: 36px;
	align-items: center
}

.vision-mission-icon {
	display: grid;
	place-items: center;
	width: 132px;
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, .42);
	border-radius: 50%;
	background: rgba(255, 255, 255, .12)
}

.vision-mission-icon svg {
	width: 58px;
	height: 58px;
	fill: none;
	stroke: #fff;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round
}

.vision-mission-copy h2 {
	margin: 0 0 20px;
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 24px;
	font-weight: 600;
	letter-spacing: .28em;
	line-height: 1.2;
	text-transform: uppercase
}

.vision-mission-copy p {
	color: rgba(255, 255, 255, .92);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.5
}

.why-gartons {
	padding: clamp(90px, 9vw, 135px) clamp(24px, 5vw, 80px);
	background: #fff
}

.why-gartons-copy {
	width: min(980px, 100%);
	margin: 0 auto;
	text-align: center
}

.why-gartons-copy h2 {
	max-width: 780px;
	margin: 0 auto 34px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.22;
	text-transform: uppercase
}

.why-gartons-copy p:not(.about-section-label) {
	max-width: 760px;
	margin: 0 auto;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.why-gartons-copy p:not(.about-section-label)+p {
	margin-top: 28px
}

.why-gartons-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	width: min(1280px, 100%);
	margin: 64px auto 0
}

.why-gartons-card {
	position: relative;
	height: 380px;
	margin: 0;
	overflow: hidden;
	background: #102b30
}

.why-gartons-card:after {
	content: "";
	position: absolute;
	inset: 45% 0 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, .78), transparent)
}

.why-gartons-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s
}

.why-gartons-card:hover img {
	transform: scale(1.04)
}

.why-gartons-card figcaption {
	position: absolute;
	z-index: 2;
	left: 24px;
	right: 24px;
	bottom: 28px;
	color: #fff;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .16em;
	line-height: 1.35;
	text-align: center;
	text-transform: uppercase
}

.accommodation-page main>section+section {
	margin-top: 0 !important
}

.accommodation-hero {
	position: relative;
	height: clamp(520px, 100svh, 820px);
	min-height: 520px;
	overflow: hidden;
	background: #102b30
}

.accommodation-hero:after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .34)
}

.accommodation-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}

.accommodation-hero-copy {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 54%;
	width: min(900px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	text-align: center
}

.accommodation-hero-copy h1 {
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 80px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.room-selector-section {
	padding: clamp(90px, 9vw, 135px) clamp(24px, 5vw, 80px);
	background: #fff
}

.rooms-list-section {
	padding: clamp(90px, 9vw, 135px) clamp(24px, 5vw, 80px);
	background: #fff
}

.room-selector-copy {
	width: min(840px, 100%);
	margin: 0 auto 60px;
	text-align: center
}

.room-selector-copy h2 {
	margin: 0 0 30px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.room-selector-copy p:not(.about-section-label) {
	max-width: 650px;
	margin: 0 auto;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.42
}

.room-selector-panel {
	width: min(1280px, 100%);
	margin: 0 auto
}

.rooms-list {
	display: grid;
	gap: clamp(90px, 9vw, 140px);
	width: min(1380px, 100%);
	margin: 0 auto
}

.room-detail {
	display: grid;
	grid-template-columns: minmax(0, 1.14fr) minmax(360px, .86fr);
	gap: clamp(44px, 5vw, 86px);
	align-items: center
}

.room-detail.is-reversed {
	grid-template-columns: minmax(360px, .86fr) minmax(0, 1.14fr)
}

.room-detail.is-reversed .room-gallery {
	grid-column: 2
}

.room-detail.is-reversed .room-feature-copy {
	grid-column: 1;
	grid-row: 1
}

.room-gallery {
	display: grid;
	gap: 16px
}

.room-gallery-main {
	width: 100%;
	height: clamp(430px, 41vw, 620px);
	object-fit: cover;
	background: #f2efe9
}

.room-gallery-thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px
}

.room-gallery-thumbs img {
	width: 100%;
	aspect-ratio: 1.32;
	height: auto;
	object-fit: cover;
	background: #f2efe9
}

.room-selector-control {
	display: grid;
	grid-template-columns: 1fr minmax(260px, 420px);
	gap: 24px;
	align-items: center;
	margin-bottom: 34px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line)
}

.room-selector-control label {
	color: var(--sea);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .28em;
	text-transform: uppercase
}

.room-selector-control select {
	width: 100%;
	min-height: 54px;
	padding: 0 18px;
	border: 1px solid var(--line);
	background: #fff;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	outline: none
}

.room-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.28fr) minmax(320px, .72fr);
	gap: clamp(42px, 5vw, 78px);
	align-items: center
}

.room-feature-image {
	height: clamp(440px, 42vw, 620px);
	overflow: hidden;
	background: #f2efe9
}

.room-feature-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: opacity .25s ease
}

.room-feature-copy {
	text-align: left
}

.room-kicker {
	display: inline-flex;
	align-items: center;
	margin-bottom: 24px;
	padding: 11px 18px;
	border: 1px solid rgba(0, 129, 123, .28);
	background: rgba(0, 129, 123, .07);
	color: var(--sea);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase
}

.room-feature-copy h3 {
	margin: 0 0 30px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.room-feature-copy p:not(.room-kicker) {
	margin-bottom: 24px;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.room-price {
	display: inline-block;
	margin-bottom: 34px;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--sea);
	color: var(--sea);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase
}

.room-facilities {
	margin-bottom: 38px
}

.room-facilities h4 {
	margin: 0 0 18px;
	color: #000;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .24em;
	text-transform: uppercase
}

.room-facilities ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 18px;
	margin: 0;
	padding: 0;
	list-style: none
}

.room-facilities li {
	display: flex;
	gap: 10px;
	align-items: center;
	min-height: 30px;
	color: #24383d;
	font-size: 15px;
	font-weight: 300;
	line-height: 1.35
}

.facility-icon {
	display: grid;
	flex: 0 0 28px;
	place-items: center;
	width: 28px;
	height: 28px;
	border: 1px solid rgba(0, 129, 123, .32);
	border-radius: 50%;
	color: var(--sea)
}

.facility-icon svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round
}

.other-rooms {
	margin-top: clamp(80px, 8vw, 120px);
	padding-top: clamp(70px, 7vw, 95px);
	border-top: 1px solid var(--line);
	text-align: center
}

.other-rooms h2 {
	margin: 0 0 44px;
	color: var(--deep);
	font-family: "Playfair Display", Georgia, serif !important;
	font-size: clamp(36px, 3vw, 48px);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.1;
	text-transform: uppercase
}

.other-rooms-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(28px, 2.8vw, 44px);
	width: min(1460px, 100%);
	margin: 0 auto
}

.other-room-card {
	display: block;
	padding: 0;
	border: 0;
	background: transparent;
	color: #000;
	cursor: pointer;
	text-align: center
}

.other-room-card[hidden] {
	display: none
}

.other-room-card img {
	width: 100%;
	aspect-ratio: 1.5;
	height: auto;
	object-fit: cover;
	transition: transform .65s ease
}

.other-room-card:hover img,
.other-room-card:focus-visible img {
	transform: translateY(-4px)
}

.other-room-card span {
	display: block;
	margin-top: 22px;
	color: #000;
	font-family: "Playfair Display", Georgia, serif !important;
	font-size: clamp(26px, 2vw, 34px);
	font-style: italic;
	font-weight: 400;
	line-height: 1.2;
	text-transform: capitalize
}

@media(max-width:1050px) {
	.about-hero {
		height: 640px
	}

	.about-location-copy {
		padding: 100px 0 84px
	}

	.about-location-copy p:not(.about-section-label) {
		font-size: 18px
	}

	.vision-mission-inner {
		grid-template-columns: 1fr;
		width: min(780px, 100%);
		padding: 86px 0
	}

	.why-gartons-gallery {
		grid-template-columns: 1fr;
		width: min(680px, 100%)
	}

	.why-gartons-card {
		height: 420px
	}

	.accommodation-hero {
		height: 640px
	}

	.room-detail,
	.room-detail.is-reversed {
		grid-template-columns: 1fr
	}

	.room-detail.is-reversed .room-gallery,
	.room-detail.is-reversed .room-feature-copy {
		grid-column: auto;
		grid-row: auto
	}

	.room-feature {
		grid-template-columns: 1fr
	}

	.room-feature-copy {
		text-align: center
	}

	.room-feature-copy .button {
		margin: 0 auto
	}

	.room-facilities ul {
		width: min(560px, 100%);
		margin: 0 auto;
		text-align: left
	}

	.other-rooms-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: min(760px, 100%)
	}
}

@media(max-width:700px) {
	.about-hero {
		height: 520px;
		min-height: 520px
	}

	.about-location-copy {
		width: calc(100% - 32px);
		padding: 82px 0 72px
	}

	.about-section-label {
		margin-bottom: 24px;
		font-size: 12px
	}

	.about-location h1 {
		margin-bottom: 34px;
		font-size: 40px;
		letter-spacing: .06em;
		white-space: normal
	}

	.about-location-copy p:not(.about-section-label) {
		font-size: 18px;
		line-height: 1.55
	}

	.about-location-copy p:not(.about-section-label)+p {
		margin-top: 36px
	}

	.about-location-image {
		height: 360px
	}

	.vision-mission {
		min-height: 0;
		padding: 0 20px
	}

	.vision-mission-item {
		grid-template-columns: 1fr;
		gap: 28px;
		text-align: center
	}

	.vision-mission-icon {
		width: 132px;
		margin: 0 auto
	}

	.vision-mission-copy h2 {
		margin-bottom: 20px;
		font-size: 22px;
		letter-spacing: .18em
	}

	.vision-mission-copy p {
		font-size: 18px;
		line-height: 1.55
	}

	.why-gartons {
		padding: 72px 20px
	}

	.why-gartons-copy h2 {
		font-size: 40px
	}

	.why-gartons-gallery {
		gap: 18px;
		margin-top: 48px
	}

	.why-gartons-card {
		height: 320px
	}

	.why-gartons-card figcaption {
		font-size: 14px;
		letter-spacing: .12em
	}

	.accommodation-hero {
		height: 520px;
		min-height: 520px
	}

	.room-selector-section {
		padding: 72px 20px
	}

	.rooms-list-section {
		padding: 72px 20px
	}

	.room-selector-copy {
		margin-bottom: 46px
	}

	.room-selector-copy h2,
	.room-feature-copy h3 {
		font-size: 40px
	}

	.room-selector-control {
		grid-template-columns: 1fr;
		gap: 14px
	}

	.room-feature-image {
		height: 360px
	}

	.rooms-list {
		gap: 78px
	}

	.room-gallery-main {
		height: 360px
	}

	.room-gallery-thumbs {
		gap: 10px
	}

	.room-facilities ul {
		grid-template-columns: 1fr
	}

	.other-rooms {
		margin-top: 62px;
		padding-top: 56px
	}

	.other-rooms h2 {
		margin-bottom: 34px
	}

	.other-rooms-grid {
		grid-template-columns: 1fr;
		gap: 34px
	}

	.other-room-card span {
		margin-top: 16px
	}
}

.contact-page main>section+section {
	margin-top: 0 !important
}

.gallery-page main>section+section {
	margin-top: 0 !important
}

.book-now-page main>section+section {
	margin-top: 0 !important
}

.book-now-space {
	min-height: clamp(260px, 32vw, 460px);
	background: #fff
}

.gallery-hero img {
	object-position: center
}

.gallery-intro {
	width: min(980px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(90px, 9vw, 135px) 0 54px;
	text-align: center
}

.gallery-intro h2 {
	margin: 0 0 30px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.22;
	text-transform: uppercase
}

.gallery-intro p:not(.about-section-label) {
	max-width: 690px;
	margin: 0 auto;
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.55
}

.gallery-video {
	position: relative;
	width: min(980px, 100%);
	aspect-ratio: 16/9;
	margin: 48px auto 0;
	overflow: hidden;
	background: #102b30
}

.gallery-video iframe {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 100%;
	height: 100%;
	border: 0;
	pointer-events: none;
	transform: translate(-50%, -50%)
}

.gallery-video:after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2
}

.gallery-section {
	padding: 0 clamp(24px, 5vw, 80px) clamp(90px, 9vw, 135px);
	background: #fff
}

.gallery-filters {
	position: sticky;
	z-index: 8;
	top: 100px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	width: min(1320px, 100%);
	margin: 0 auto 44px;
	padding: 18px;
	background: rgba(255, 255, 255, .92);
	backdrop-filter: blur(16px)
}

.gallery-filters button {
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid rgba(0, 129, 123, .28);
	background: #fff;
	color: #24383d;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s, border-color .25s, color .25s
}

.gallery-filters button:hover,
.gallery-filters button.is-active {
	border-color: var(--sea);
	background: var(--sea);
	color: #fff
}

.gallery-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 240px;
	grid-auto-flow: dense;
	gap: 18px;
	width: min(1480px, 100%);
	margin: 0 auto
}

.gallery-item {
	position: relative;
	display: block;
	padding: 0;
	border: 0;
	background: #102b30;
	color: #fff;
	cursor: pointer;
	overflow: hidden;
	opacity: 1;
	transform: translateY(0);
	transition: opacity .25s ease, transform .25s ease
}

.gallery-item[hidden] {
	display: none
}

.gallery-item.is-large {
	grid-column: span 2;
	grid-row: span 2
}

.gallery-item.is-tall {
	grid-row: span 2
}

.gallery-item:before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(0deg, rgba(5, 22, 26, .72), rgba(5, 22, 26, .05) 62%);
	opacity: 0;
	transition: opacity .25s
}

.gallery-item:hover:before,
.gallery-item:focus-visible:before {
	opacity: 1
}

.gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .65s ease
}

.gallery-item:hover img,
.gallery-item:focus-visible img {
	transform: scale(1.045)
}

.gallery-lightbox {
	position: fixed;
	z-index: 90;
	inset: 0;
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr) 70px;
	place-items: center;
	padding: 52px;
	background: rgba(4, 18, 21, .92);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s
}

.gallery-lightbox.is-open {
	opacity: 1;
	pointer-events: auto
}

.gallery-lightbox figure {
	width: min(1080px, 100%);
	margin: 0;
	color: #fff;
	text-align: center
}

.gallery-lightbox img {
	width: 100%;
	max-height: 78svh;
	object-fit: contain
}

.gallery-lightbox figcaption {
	margin-top: 18px;
	color: rgba(255, 255, 255, .78);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase
}

.gallery-lightbox-close,
.gallery-lightbox-nav {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1px solid rgba(255, 255, 255, .5);
	background: transparent;
	color: #fff;
	cursor: pointer;
	transition: background .25s, color .25s
}

.gallery-lightbox-close {
	position: absolute;
	top: 24px;
	right: 24px;
	font-size: 30px;
	line-height: 1
}

.gallery-lightbox-nav {
	font-size: 24px
}

.gallery-lightbox-close:hover,
.gallery-lightbox-nav:hover {
	background: #fff;
	color: var(--deep)
}

.contact-hero {
	position: relative;
	height: clamp(520px, 100svh, 820px);
	min-height: 520px;
	overflow: hidden;
	background: #102b30
}

.contact-hero:after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .34)
}

.contact-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}

.contact-hero-copy {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 54%;
	width: min(900px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	text-align: center
}

.contact-hero-copy h1 {
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 80px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.contact-intro {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(320px, .65fr);
	gap: clamp(44px, 7vw, 120px);
	align-items: end;
	width: min(1320px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(90px, 9vw, 135px) 0 clamp(28px, 3vw, 44px)
}

.contact-intro h2,
.contact-map-heading h2 {
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.22;
	text-transform: uppercase
}

.contact-intro>p {
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.6
}

.contact-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, .74fr);
	gap: clamp(36px, 4.8vw, 72px);
	width: min(1320px, calc(100% - 48px));
	margin: 0 auto;
	padding-bottom: clamp(90px, 9vw, 135px)
}

.contact-form-panel {
	padding: clamp(34px, 4vw, 58px);
	background: #f7f8f5;
	border: 1px solid var(--line)
}

.contact-panel-label {
	margin-bottom: 32px;
	color: var(--sea);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase
}

.contact-form {
	display: grid;
	gap: 24px
}

.contact-field-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px
}

.contact-form label {
	display: grid;
	gap: 10px
}

.contact-form span {
	color: #000;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase
}

.contact-form input,
.contact-form textarea {
	width: 100%;
	border: 0;
	border-bottom: 1px solid rgba(12, 51, 58, .28);
	background: #fff;
	color: #24383d;
	font: inherit;
	font-size: 17px;
	font-weight: 300;
	outline: none;
	transition: border-color .25s
}

.contact-form input {
	height: 58px;
	padding: 0 16px
}

.contact-form textarea {
	min-height: 170px;
	padding: 16px;
	resize: vertical
}

.contact-form input:focus,
.contact-form textarea:focus {
	border-color: var(--sea)
}

.contact-submit {
	width: min(332px, 100%);
	min-height: 68px;
	justify-content: space-between;
	padding: 0 34px;
	background: var(--sea);
	color: #fff !important
}

.contact-submit:hover {
	background: var(--deep)
}

.contact-submit span {
	color: inherit;
	font-size: 18px;
	letter-spacing: 0
}

.contact-details-panel {
	display: grid;
	grid-template-rows: 330px auto;
	background: var(--deep);
	color: rgba(255, 255, 255, .78)
}

.contact-details-panel img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.contact-details-list {
	display: grid;
	gap: 26px;
	padding: clamp(34px, 4vw, 52px)
}

.contact-details-list article {
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(255, 255, 255, .12)
}

.contact-details-list article:last-child {
	padding-bottom: 0;
	border-bottom: 0
}

.contact-details-list h3 {
	margin: 0 0 8px;
	color: #dba83b;
	font-family: "Google Sans", sans-serif !important;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase
}

.contact-details-list p,
.contact-details-list a {
	color: rgba(255, 255, 255, .86);
	font-size: 17px;
	font-weight: 300;
	line-height: 1.6
}

.contact-details-list a:hover {
	color: #8edbd5
}

.dining-page main>section+section {
	margin-top: 0 !important
}

.dining-intro {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(420px, .85fr);
	gap: clamp(44px, 7vw, 120px);
	align-items: center;
	width: min(1320px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(72px, 7vw, 96px) 0
}

.dining-intro-copy h2,
.dining-feature-copy h2,
.dining-romantic h2 {
	margin: 0 0 28px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.dining-intro-copy p:not(.about-section-label),
.dining-feature-copy p,
.dining-romantic p:not(.about-section-label) {
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.58
}

.dining-intro-copy p+p,
.dining-feature-copy p+p,
.dining-romantic p+p {
	margin-top: 22px
}

.dining-intro-media {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px
}

.dining-intro-media img,
.dining-feature-media img,
.dining-romantic>img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #edf0ea
}

.dining-intro-media img {
	aspect-ratio: .82
}

.dining-intro-media img:nth-child(2) {
	margin-top: 54px
}

.dining-feature {
	display: grid;
	grid-template-columns: minmax(420px, .9fr) minmax(0, 1fr);
	gap: clamp(44px, 6vw, 96px);
	align-items: center;
	padding: clamp(72px, 7vw, 96px) clamp(24px, 5vw, 80px);
	background: #f7f8f5
}

.dining-feature-media {
	align-self: center;
	height: clamp(360px, 30vw, 500px);
	min-height: 0
}

.dining-feature-copy {
	width: min(640px, 100%)
}

.dining-romantic {
	display: grid;
	grid-template-columns: minmax(420px, .62fr) minmax(0, .9fr);
	min-height: 700px;
	margin-bottom: clamp(72px, 7vw, 96px);
	background: #f7f8f5;
	color: #fff
}

.dining-romantic>img {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
	height: calc(100% - 4cm);
	min-height: 0
}

.dining-romantic>div {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(70px, 7vw, 120px) clamp(32px, 6vw, 100px);
	background: #f7f8f5
}

.dining-romantic h2 {
	color: var(--sea)
}

.dining-romantic p:not(.about-section-label) {
	color: #24383d
}

.dining-romantic .about-section-label {
	color: #dba83b
}

.wedding-page main>section+section {
	margin-top: 0 !important
}

.wedding-hero {
	position: relative;
	height: clamp(520px, 100svh, 820px);
	min-height: 520px;
	overflow: hidden;
	background: #102b30
}

.wedding-hero:after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .38)
}

.wedding-hero img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top
}

.wedding-hero-copy {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 54%;
	width: min(900px, calc(100% - 40px));
	transform: translate(-50%, -50%);
	text-align: center
}

.wedding-hero-copy h1 {
	margin: 0;
	color: #fff;
	font-family: "Google Sans", sans-serif !important;
	font-size: 80px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.wedding-lead {
	max-width: 940px;
	margin: 0 auto clamp(48px, 5vw, 76px);
	color: #24383d;
	font-size: 21px;
	font-weight: 300;
	line-height: 1.58;
	text-align: center
}

.wedding-intro,
.wedding-planning {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(430px, .82fr);
	gap: clamp(44px, 7vw, 118px);
	align-items: center;
	width: min(1320px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(78px, 8vw, 122px) 0
}

.wedding-intro-copy h2,
.wedding-planning-copy h2,
.wedding-cta h2 {
	margin: 0 0 28px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase
}

.wedding-intro-copy p:not(.about-section-label),
.wedding-planning-copy p:not(.about-section-label),
.wedding-venues p,
.wedding-cta p:not(.about-section-label) {
	color: #24383d;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.58
}

.wedding-intro-copy p+p,
.wedding-planning-copy p+p {
	margin-top: 22px
}

.wedding-intro-media {
	display: grid;
	grid-template-columns: .9fr 1fr;
	gap: 16px;
	align-items: start
}

.wedding-intro-media img,
.wedding-planning-media img,
.wedding-gallery-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #edf0ea
}

.wedding-intro-media img {
	aspect-ratio: .78
}

.wedding-intro-media img:nth-child(2) {
	margin-top: 58px
}

.wedding-venues {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(12, 51, 58, .12);
	border-bottom: 1px solid rgba(12, 51, 58, .12);
	background: #f7f8f5
}

.wedding-venues article {
	min-height: 330px;
	padding: clamp(34px, 4vw, 58px);
	border-right: 1px solid rgba(12, 51, 58, .12)
}

.wedding-venues article:last-child {
	border-right: 0
}

.wedding-venues span {
	display: block;
	margin-bottom: 44px;
	color: #dba83b;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .18em
}

.wedding-venues h3 {
	margin: 0 0 18px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .04em;
	line-height: 1.1;
	text-transform: uppercase
}

.wedding-venues p {
	margin: 0;
	font-size: 16px
}

.wedding-planning {
	grid-template-columns: minmax(430px, .82fr) minmax(0, .92fr)
}

.wedding-planning-media {
	height: clamp(470px, 48vw, 670px)
}

.wedding-gallery-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	padding: 0 clamp(16px, 3vw, 32px) clamp(78px, 8vw, 122px)
}

.wedding-gallery-strip img {
	aspect-ratio: 1.18
}

.wedding-cta {
	width: min(1320px, calc(100% - 48px));
	margin: 0 auto clamp(78px, 8vw, 122px);
	padding: clamp(42px, 5vw, 72px) clamp(24px, 5vw, 80px);
	background: #f7f8f5;
	border-top: 1px solid rgba(12, 51, 58, .08);
	border-bottom: 1px solid rgba(12, 51, 58, .08)
}

.wedding-cta-copy {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 360px;
	padding: clamp(18px, 3vw, 42px) 0;
	text-align: center
}

.wedding-cta .about-section-label {
	color: #dba83b
}

.wedding-cta h2 {
	color: var(--sea)
}

.wedding-cta p:not(.about-section-label) {
	max-width: 720px;
	color: #24383d
}

.wedding-cta .button {
	margin-top: 34px;
	border-color: var(--sea);
	color: var(--sea)
}

.wedding-cta .button:hover {
	border-color: var(--sea);
	background: var(--sea);
	color: #fff
}

.contact-map-section {
	padding: clamp(82px, 8vw, 118px) clamp(24px, 5vw, 80px);
	background: #f7f8f5
}

.contact-map-heading {
	width: min(900px, 100%);
	margin: 0 auto 48px;
	text-align: center
}

.contact-map {
	display: block;
	width: min(1320px, 100%);
	height: clamp(420px, 46vw, 620px);
	margin: 0 auto;
	border: 0;
	background: #d6ddda
}

@media(max-width:1050px) {
	.dining-intro,
	.dining-feature,
	.dining-romantic,
	.wedding-intro,
	.wedding-planning,
	.wedding-cta {
		grid-template-columns: 1fr
	}

	.dining-romantic>img,
	.dining-romantic>div {
		grid-column: auto;
		grid-row: auto
	}

	.dining-feature-media,
	.dining-romantic>img {
		min-height: 480px
	}

	.dining-feature-media {
		height: 460px
	}

	.wedding-hero,
	.wedding-hero img {
		min-height: 560px
	}

	.wedding-venues {
		grid-template-columns: repeat(2, minmax(0, 1fr))
	}

	.wedding-venues article:nth-child(2) {
		border-right: 0
	}

	.wedding-venues article:nth-child(-n+2) {
		border-bottom: 1px solid rgba(12, 51, 58, .12)
	}

	.wedding-planning-media {
		order: 2;
		height: 520px
	}

	.wedding-cta-copy {
		min-height: 320px
	}

	.gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 220px
	}

	.gallery-filters {
		top: 86px
	}

	.gallery-lightbox {
		grid-template-columns: 58px minmax(0, 1fr) 58px;
		padding: 40px 22px
	}

	.contact-hero {
		height: 640px
	}

	.contact-intro,
	.contact-main {
		grid-template-columns: 1fr
	}

	.contact-details-panel {
		grid-template-rows: 420px auto
	}
}

@media(max-width:700px) {
	.dining-intro {
		width: calc(100% - 32px);
		padding: 56px 0
	}

	.dining-intro-media {
		grid-template-columns: 1fr
	}

	.dining-intro-media img:nth-child(2) {
		margin-top: 0
	}

	.dining-feature,
	.dining-romantic>div {
		padding: 56px 20px
	}

	.dining-romantic>img {
		width: calc(100% - 32px);
		height: 360px;
		min-height: 0;
		margin: 0 auto;
		object-fit: cover
	}

	.wedding-hero,
	.wedding-hero img {
		min-height: 520px
	}

	.wedding-hero img {
		object-position: center top
	}

	.wedding-hero-copy {
		top: 54%;
		left: 50%;
		width: calc(100% - 40px);
		transform: translate(-50%, -50%)
	}

	.wedding-hero-copy h1 {
		font-size: 48px
	}

	.wedding-intro,
	.wedding-planning {
		width: calc(100% - 32px);
		padding: 56px 0
	}

	.wedding-intro-media,
	.wedding-gallery-strip {
		grid-template-columns: 1fr
	}

	.wedding-intro-media img:nth-child(2) {
		margin-top: 0
	}

	.wedding-venues {
		grid-template-columns: 1fr
	}

	.wedding-venues article {
		min-height: auto;
		border-right: 0;
		border-bottom: 1px solid rgba(12, 51, 58, .12)
	}

	.wedding-venues article:last-child {
		border-bottom: 0
	}

	.wedding-venues span {
		margin-bottom: 28px
	}

	.wedding-venues h3 {
		font-size: 36px
	}

	.wedding-planning-media {
		height: 430px
	}

	.wedding-gallery-strip {
		padding: 0 16px 56px
	}

	.wedding-cta {
		width: calc(100% - 32px);
		margin-bottom: 56px;
		padding: 56px 20px
	}

	.wedding-cta-copy {
		min-height: auto;
		padding: 0
	}

	.dining-romantic {
		margin-bottom: 56px
	}

	.dining-intro-copy h2,
	.dining-feature-copy h2,
	.dining-romantic h2,
	.wedding-intro-copy h2,
	.wedding-planning-copy h2,
	.wedding-cta h2 {
		font-size: 36px
	}

	.gallery-intro {
		width: calc(100% - 32px);
		padding: 72px 0 42px
	}

	.gallery-intro h2 {
		font-size: 40px
	}

	.gallery-video {
		margin-top: 34px
	}

	.gallery-section {
		padding: 0 16px 72px
	}

	.gallery-filters {
		position: static;
		justify-content: flex-start;
		margin-bottom: 28px;
		padding: 12px;
		overflow-x: auto;
		flex-wrap: nowrap
	}

	.gallery-filters button {
		flex: 0 0 auto
	}

	.gallery-grid {
		grid-template-columns: 1fr;
		grid-auto-rows: 270px;
		gap: 14px
	}

	.gallery-item.is-large,
	.gallery-item.is-tall {
		grid-column: span 1;
		grid-row: span 1
	}

	.gallery-lightbox {
		grid-template-columns: 1fr 1fr;
		align-content: center;
		gap: 18px;
		padding: 60px 16px 24px
	}

	.gallery-lightbox figure {
		grid-column: span 2
	}

	.gallery-lightbox-nav.prev {
		justify-self: end
	}

	.gallery-lightbox-nav.next {
		justify-self: start
	}

	.contact-hero {
		height: 520px;
		min-height: 520px
	}

	.contact-hero-copy h1 {
		font-size: 80px
	}

	.contact-intro,
	.contact-main {
		width: calc(100% - 32px)
	}

	.contact-intro {
		padding: 72px 0 28px
	}

	.contact-intro h2,
	.contact-map-heading h2 {
		font-size: 40px
	}

	.contact-form-panel {
		padding: 30px 20px
	}

	.contact-field-row {
		grid-template-columns: 1fr;
		gap: 24px
	}

	.contact-details-panel {
		grid-template-rows: 300px auto
	}

	.contact-details-list {
		padding: 30px 24px
	}

	.contact-map-section {
		padding: 72px 20px
	}

	.contact-map {
		height: 430px
	}
}

@media(max-width:700px) {
	.offers-page .offers-intro,
	.offers-page .offers-intro-copy,
	.offers-page .offers-contact-panel {
		width: calc(100vw - 32px) !important;
		max-width: calc(100vw - 32px) !important
	}

	.offers-page .offers-intro h2,
	.offers-page .offers-intro p {
		width: calc(100vw - 48px) !important;
		max-width: calc(100vw - 48px) !important;
		white-space: normal !important;
		overflow-wrap: normal
	}

	.offers-page .offers-intro-copy>p:not(.offers-kicker) {
		width: min(320px, calc(100vw - 64px)) !important;
		max-width: min(320px, calc(100vw - 64px)) !important
	}

	.offers-page .offers-intro h2 {
		font-size: 40px !important;
		letter-spacing: .04em !important
	}

	.offers-page .offers-kicker {
		font-size: 10px !important;
		letter-spacing: .12em !important
	}
}

button[data-menu-toggle] {
	position: fixed !important;
	top: 18px;
	right: 18px;
	z-index: 40;
	display: inline-flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--deep);
	background: rgba(255, 255, 255, .82);
	border: 1px solid rgba(12, 51, 58, .12)
}

button[data-menu-toggle] span {
	display: block !important;
	width: 24px !important;
	height: 2px !important;
	margin: 3px 0 !important;
	background: currentColor !important
}

.site-header.menu-active button[data-menu-toggle] {
	background: transparent;
	border-color: transparent
}

@media(min-width:1051px) {
	button[data-menu-toggle] {
		display: none !important
	}
}

@media(max-width:700px) {
	.hero h1,
	.offers-hero-copy h1,
	.things-hero-copy h1,
	.about-hero-copy h1,
	.accommodation-hero-copy h1,
	.gallery-hero h1,
	.contact-hero-copy h1,
	.wedding-hero-copy h1 {
		font-size: clamp(26px, 8.5vw, 36px) !important;
		line-height: 1.12 !important;
		letter-spacing: .05em !important;
		overflow-wrap: anywhere
	}
}

@media(max-width:700px) {
	.retreat-copy a,
	.experience-intro .button {
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding: 14px 25px !important
	}

	.experience-intro {
		text-align: center
	}

	.experience-intro .button {
		align-self: center !important;
		justify-self: center !important
	}
}

.tour-cover {
	height: auto;
	margin-bottom: clamp(48px, 6vw, 86px);
	background: #102b30
}

.virtual-tour-embed {
	width: 100%;
	height: clamp(420px, 56vw, 720px);
	background: #102b30
}

.virtual-tour-embed iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0
}

.tour-cover:after {
	content: none
}

.tour-cover>a,
.tour-cover picture,
.tour-cover img {
	display: block;
	width: 100%
}

.tour-cover>a {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	line-height: 0;
	background: transparent !important
}

.tour-cover img {
	height: auto;
	object-fit: cover
}

@media(max-width:700px) {
	.virtual-tour-embed {
		height: 520px
	}

	.tour-cover {
		margin-bottom: 48px
	}

	.tour-cover img {
		width: 100%;
		min-height: 0
	}
}

@media(max-width:700px) {
	.site-footer,
	.footer-brand,
	.footer-column,
	.footer-column.contact,
	.footer-bottom {
		text-align: center
	}

	.footer-brand,
	.footer-column,
	.footer-column.contact {
		align-items: center
	}

	.footer-brand p {
		margin-left: auto;
		margin-right: auto
	}

	.socials {
		justify-content: center
	}

	.contact-item {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center
	}

	.footer-bottom {
		align-items: center
		justify-content: center
	}
}

@media(max-width:700px) {
	.things-page .things-hero {
		height: clamp(320px, 58svh, 460px);
		min-height: 320px
	}

	.things-page .things-hero img {
		object-position: 64% center
	}

	.things-page .things-hero-copy {
		top: 52%;
		width: calc(100% - 32px)
	}

	.things-page .things-hero-copy h1 {
		font-size: clamp(28px, 8.2vw, 34px) !important;
		line-height: 1.12 !important;
		letter-spacing: .04em !important
	}

	.site-footer .footer-brand {
		display: flex;
		flex-direction: column
	}

	.site-footer .footer-logo {
		display: block;
		width: max-content;
		max-width: 100%;
		margin-right: auto;
		margin-left: auto
	}

	.site-footer .footer-logo img {
		display: block;
		height: 120px;
		margin-right: auto;
		margin-left: auto
	}

	.site-footer .footer-column a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 32px
	}
}

@media(max-width:700px) {
	.hero-media,
	.about-hero,
	.accommodation-hero,
	.offers-hero,
	.things-hero,
	.contact-hero,
	.wedding-hero {
		height: 520px !important;
		min-height: 520px !important
	}

	.about-hero img,
	.accommodation-hero img,
	.offers-hero img,
	.things-hero img,
	.contact-hero img,
	.wedding-hero img {
		width: 100%;
		height: 100%;
		object-fit: cover
	}

	.wedding-hero img {
		height: 112% !important;
		object-position: center top !important;
		transform: translateY(62px)
	}

	.wedding-hero-copy {
		top: 64% !important
	}
}

@media(max-width:700px) {
	.contact-details-panel {
		display: block;
		background: #fff !important;
		color: var(--sea) !important
	}

	.contact-details-panel>img {
		display: none
	}

	.contact-details-list {
		padding: 34px 24px !important
	}

	.contact-details-list article {
		border-bottom-color: rgba(0, 126, 118, .18)
	}

	.contact-details-list h3,
	.contact-details-list p,
	.contact-details-list a {
		color: var(--sea) !important
	}

	.contact-details-list h3 {
		color: #dba83b !important
	}
}

@media(max-width:700px) {
	.accommodation-page .room-detail,
	.accommodation-page .room-detail.is-reversed {
		display: flex;
		flex-direction: column;
		align-items: stretch
	}

	.accommodation-page .room-feature-copy {
		display: contents
	}

	.accommodation-page .room-feature-copy h3 {
		order: 1;
		margin-bottom: 22px;
		text-align: center
	}

	.accommodation-page .room-feature-copy>p {
		order: 2;
		margin-bottom: 28px;
		text-align: center
	}

	.accommodation-page .room-facilities {
		order: 3;
		margin-bottom: 34px
	}

	.accommodation-page .room-gallery {
		order: 4;
		width: 100%;
		margin-bottom: 30px
	}

	.accommodation-page .room-feature-copy .button {
		order: 5;
		align-self: center;
		margin: 0 auto
	}
}

@media(max-width:700px) {
	.things-page .excursion-entry,
	.things-page .excursion-entry:nth-child(even) {
		display: flex;
		flex-direction: column
	}

	.things-page .excursion-entry-copy {
		order: 1;
		padding: 0;
		text-align: center
	}

	.things-page .excursion-entry-images {
		order: 2;
		width: 100%;
		margin-top: 28px
	}
}

@media(max-width:700px) {
	.offers-contact-panel {
		width: 100% !important;
		max-width: 100% !important;
		padding: 26px 18px !important;
		box-sizing: border-box;
		overflow: hidden
	}

	.offers-contact-link {
		grid-template-columns: 42px minmax(0, 1fr) !important;
		gap: 18px !important;
		width: min(100% - 36px, 330px);
		max-width: min(100% - 36px, 330px);
		min-height: 96px;
		margin-right: auto;
		margin-left: auto;
		padding: 18px 16px !important;
		box-sizing: border-box;
		border: 1px solid rgba(255, 255, 255, .34)
	}

	.offers-contact-link em {
		font-size: clamp(18px, 5.8vw, 23px) !important;
		line-height: 1.15;
		white-space: nowrap
	}
}

.contact-details-list article:first-child p,
.footer-column.contact .contact-item:first-of-type p {
	cursor: default;
	pointer-events: none
}

.offers-page .offers-intro {
	grid-template-columns: minmax(0, 740px) 388px;
	gap: clamp(64px, 7.8vw, 112px);
	align-items: center;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 77px clamp(24px, 2.5vw, 35px) 73px clamp(40px, 9.9vw, 140px);
	background: #fff
}

.offers-page .offers-intro-copy {
	max-width: 740px;
	padding: 0
}

.offers-page .offers-intro h2 {
	max-width: 720px;
	margin: 0 0 26px;
	color: var(--sea);
	font-family: "Google Sans", sans-serif !important;
	font-size: 40px;
	font-weight: 300;
	letter-spacing: .08em;
	line-height: 1.18;
	text-transform: uppercase
}

.offers-page .offers-intro p:not(.about-section-label) {
	max-width: 700px;
	color: #16333a;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.52
}

.offers-page .offers-intro .offers-closing {
	margin-top: 26px !important;
	color: #16333a !important;
	font-weight: 400 !important
}

.offers-page .offers-contact-panel {
	width: 388px;
	min-height: 337px;
	gap: 16px;
	align-content: start;
	padding: 48px 46px 46px;
	background: #0d3a41;
	box-shadow: 0 28px 64px rgba(12, 51, 58, .14)
}

.offers-page .offers-intro .offers-contact-panel>p {
	margin: 0 0 12px;
	color: #dba83b;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .28em;
	line-height: 1.2;
	text-transform: uppercase
}

.offers-page .offers-contact-link {
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 16px;
	min-height: 94px;
	padding: 20px;
	border: 1px solid rgba(255, 255, 255, .14);
	background: rgba(255, 255, 255, .045)
}

.offers-page .offers-contact-icon {
	width: 48px;
	height: 48px;
	background: rgba(142, 219, 213, .12)
}

.offers-page .offers-contact-link strong {
	margin-bottom: 4px;
	color: rgba(255, 255, 255, .72);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .17em;
	line-height: 1.2
}

.offers-page .offers-contact-link em {
	color: #fff;
	font-size: 21px;
	font-weight: 300;
	line-height: 1.25;
	white-space: nowrap
}

@media(max-width:1050px) {
	.offers-page .offers-intro {
		grid-template-columns: 1fr;
		gap: 42px;
		padding: 82px 24px 76px
	}

	.offers-page .offers-intro-copy,
	.offers-page .offers-contact-panel {
		width: min(760px, 100%);
		max-width: 760px;
		margin: 0 auto
	}
}

@media(max-width:700px) {
	.offers-page .offers-intro {
		width: 100% !important;
		max-width: none !important;
		padding: 68px 16px 56px
	}

	.offers-page .offers-intro-copy,
	.offers-page .offers-contact-panel {
		width: 100% !important;
		max-width: 100% !important
	}

	.offers-page .offers-intro h2,
	.offers-page .offers-intro p {
		width: auto !important;
		max-width: 100% !important
	}

	.offers-page .offers-intro h2 {
		font-size: 31px !important;
		letter-spacing: .04em !important;
		line-height: 1.18;
		overflow-wrap: anywhere
	}

	.offers-page .offers-contact-panel {
		min-height: 0;
		padding: 30px 18px !important
	}

	.offers-page .offers-contact-link {
		width: 100%;
		max-width: none;
		margin: 0;
		grid-template-columns: 42px minmax(0, 1fr) !important;
		padding: 16px 14px !important
	}

	.offers-page .offers-contact-link em {
		font-size: clamp(18px, 5.5vw, 21px) !important;
		white-space: normal
	}
}
