/*
Theme Name: Borgo di Lazise
Author: Studio Indigo
Version: 1.0
Text Domain: borgolazise
*/

:root {
	--color-sage: #6f7d6a;
	--color-stone: #6b6762;
	--color-ink: #2f2f2c;
	--color-cream: #f7f4ee;
	--color-wine: #782d35;
	--color-white: #ffffff;
	--font-display: "Cormorant", Georgia, serif;
	--font-body: "Inter", Arial, sans-serif;
	--body-size: 18px;
	--body-line: 32px;
	--title-size: 50px;
	--title-line: 60px;
	--nav-size: 16px;
	--footer-size: 16px;
	--footer-bottom-size: 14px;
	--text: var(--color-ink);
	--bg: var(--color-white);
	--muted: var(--color-stone);
	--surface: var(--color-cream);
	--border: #ded8cc;
	--focus: var(--color-wine);
	--btn-bg: transparent;
	--btn-bg-hover: var(--color-wine);
	--btn-text: currentColor;
	--container: 1158px;
	--gutter: 30px;
}

body {
	font-family: var(--font-body);
	font-weight: 300;
	font-size: var(--body-size);
	line-height: var(--body-line);
	color: var(--color-ink);
	background: var(--color-white);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-display);
	font-weight: 400;
	line-height: var(--title-line);
	color: inherit;
}

h1,
h2 {
	font-size: var(--title-size);
}

.skip-link {
	position: absolute;
	top: var(--pad-x);
	left: var(--pad-x);
	z-index: 1000;
	display: inline-flex;
	padding: 10px 14px;
	background: var(--text);
	color: var(--bg);
	transform: translateY(calc(-100% - var(--pad-x)));
	transition: transform 0.2s ease;
}

.skip-link:focus {
	transform: translateY(0);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--focus);
	outline-offset: 4px;
}

.has-page-hero .siteHeader:not(.is-scrolled):not(.nav-open) a:focus-visible,
.has-page-hero .siteHeader:not(.is-scrolled):not(.nav-open) button:focus-visible {
	outline-color: var(--color-white);
}

.siteHeader,
.siteFooter {
	min-height: 0;
}

.siteHeader {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 50;
	width: 100%;
	color: var(--color-wine);
	background: var(--color-white);
	transition:
		background-color 0.45s ease,
		box-shadow 0.45s ease,
		color 0.45s ease;
}

.has-page-hero .siteHeader {
	color: var(--color-white);
	background: transparent;
}

.siteHeader.is-scrolled,
.nav-open .siteHeader {
	color: var(--color-wine);
	background: rgba(247, 244, 238, 0.96);
	box-shadow: 0 10px 34px rgba(47, 47, 44, 0.08);
	backdrop-filter: blur(10px);
}

body.admin-bar .siteHeader {
	top: 32px;
}

body:not(.has-page-hero) #main-content {
	padding-top: 120px;
}

.siteHeader__inner {
	display: flex;
	align-items: center;
	gap: 34px;
	width: 100%;
	min-height: 120px;
	padding-inline: clamp(24px, 5vw, 80px);
}

.siteHeader__brand,
.siteFooter__logo {
	display: inline-flex;
	flex: 0 0 auto;
	color: currentColor;
	line-height: 0;
}

.siteHeader__brand svg {
	width: 168px;
	height: auto;
}

.siteHeader__panel {
	display: flex;
	align-items: center;
	gap: 34px;
	margin-left: auto;
}

.siteHeader__nav {
	margin-left: 0;
}

.siteHeader__menu,
.siteFooter__menu,
.siteFooter__legalMenu {
	display: flex;
	align-items: center;
	gap: 30px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.siteHeader__menu {
	font-size: var(--nav-size);
	line-height: 1;
}

.siteHeader__booking {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 96px;
	min-height: 36px;
	padding: 8px 18px;
	border: 1px solid currentColor;
	font-size: var(--nav-size);
	line-height: 1;
}

.siteHeader__languages {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: var(--nav-size);
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.siteHeader__language {
	color: currentColor;
	text-decoration: none;
	opacity: 0.72;
	transition: opacity 0.25s ease;
}

.siteHeader__language:hover,
.siteHeader__language:focus-visible,
.siteHeader__language.is-current {
	opacity: 1;
}

.siteHeader__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 8px;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: currentColor;
	cursor: pointer;
}

.siteHeader__toggle span:not(.sr-only) {
	display: block;
	flex: 0 0 auto;
	width: 28px;
	height: 1px;
	background: currentColor;
	transition: transform 0.25s ease;
}

.nav-open .siteHeader__toggle span:nth-of-type(2) {
	transform: translateY(4.5px) rotate(35deg);
}

.nav-open .siteHeader__toggle span:nth-of-type(3) {
	transform: translateY(-4.5px) rotate(-35deg);
}

.pageHero {
	position: relative;
	display: grid;
	height: 680px;
	min-height: 680px;
	color: var(--color-white);
	background: var(--color-ink);
	overflow: hidden;
}

.home .pageHero {
	height: 100vh;
	height: 100dvh;
	min-height: 0;
}

.pageHero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, var(--hero-overlay-opacity, 0.25));
	pointer-events: none;
}

.pageHero__media,
.pageHero__image,
.pageHero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.pageHero__media {
	z-index: 0;
}

.pageHero__image,
.pageHero__video {
	object-fit: cover;
}

.pageHero__video {
	z-index: 1;
}

.pageHero__content {
	position: relative;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 160px var(--pad-x) 90px;
	text-align: center;
	transform: translateY(-32px);
}

.pageHero__inner {
	width: min(100%, 680px);
}

.pageHero__eyebrow {
	font-family: var(--font-display);
	font-size: var(--fs-20);
	line-height: 1.2;
	text-transform: uppercase;
}

.pageHero h1 {
	font-size: var(--title-size);
	line-height: var(--title-line);
}

.pageHero__subtitle {
	font-size: var(--body-size);
	line-height: var(--body-line);
}

.has-page-hero .siteHeader__brand,
.has-page-hero .siteHeader__panel,
.has-page-hero .siteHeader__toggle {
	animation: introHeaderIn 1.65s cubic-bezier(0.18, 0.56, 0.16, 1) both;
}

.has-page-hero .siteHeader__brand {
	animation-delay: 0.18s;
}

.has-page-hero .siteHeader__panel,
.has-page-hero .siteHeader__toggle {
	animation-delay: 0.42s;
}

.has-page-hero .pageHero::after {
	animation: introOverlayIn 2.2s ease both;
}

.has-page-hero .pageHero__media,
.has-page-hero .pageHero__video {
	animation: introMediaIn 2.8s cubic-bezier(0.18, 0.56, 0.16, 1) both;
}

.has-page-hero .pageHero--has-video .pageHero__media {
	animation: none;
}

.has-page-hero .pageHero--has-video .pageHero__video {
	animation: none;
}

.has-page-hero .pageHero__inner > * {
	animation: introCopyIn 1.85s cubic-bezier(0.18, 0.56, 0.16, 1) both;
}

.has-page-hero .pageHero__inner > *:nth-child(1) {
	animation-delay: 0.72s;
}

.has-page-hero .pageHero__inner > *:nth-child(2) {
	animation-delay: 1.05s;
}

.has-page-hero .pageHero__inner > *:nth-child(3) {
	animation-delay: 1.38s;
}

.has-page-hero .pageHero__inner > *:nth-child(4) {
	animation-delay: 1.72s;
}

@keyframes introHeaderIn {
	from {
		opacity: 0;
		transform: translateY(-18px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes introMediaIn {
	from {
		opacity: 0;
		transform: scale(1.025);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes introOverlayIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes introCopyIn {
	from {
		opacity: 0;
		transform: translateY(28px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.btn {
	min-height: 36px;
	padding: 10px 28px;
	border: 1px solid currentColor;
	background: transparent;
	font-family: var(--font-body);
	font-size: var(--fs-13);
	font-weight: 400;
	color: currentColor;
	line-height: 1;
	text-transform: uppercase;
}

.btn:hover {
	background: var(--color-wine);
	color: var(--color-white);
}

.btn--light:hover {
	background: var(--color-white);
	color: var(--color-wine);
}

.btn--light {
	min-height: 50px;
	padding-inline: 28px;
	background: rgba(247, 244, 238, 0.1);
	font-size: var(--fs-16);
	color: var(--color-white);
}

.btn--outline {
	min-height: 50px;
	padding-inline: 28px;
	font-size: var(--fs-16);
	color: var(--color-ink);
}

.btn--outline::after,
.btn--arrow::after {
	content: "→";
	margin-left: 12px;
	font-size: 1.1em;
	line-height: 1;
}

.sectionRule {
	display: block;
	width: 68px;
	height: 1px;
	margin-inline: auto;
	background: var(--color-wine);
}

.centeredContent {
	color: var(--color-ink);
}

.centeredContent--white {
	background: var(--color-white);
}

.centeredContent--cream {
	background: var(--color-cream);
}

.centeredContent__copy {
	max-width: 820px;
	margin-inline: auto;
	text-align: center;
}

.centeredContent__copy h2 {
	color: var(--color-wine);
}

.centeredContent__text {
	max-width: 820px;
	margin-inline: auto;
}

.centeredContent__gallery {
	margin-top: 82px;
}

.centeredContent__gallery--equal {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gutter);
}

.centeredContent__gallery--featured {
	display: grid;
	align-items: center;
	grid-template-columns: minmax(300px, 1fr) minmax(420px, 614px) minmax(300px, 1fr);
	gap: 18px;
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

.centeredContent__image {
	margin: 0;
	overflow: hidden;
}

.centeredContent__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.centeredContent__gallery--equal .centeredContent__image {
	aspect-ratio: 1 / 1;
}

.centeredContent__gallery--featured .centeredContent__image {
	height: 276px;
}

.centeredContent__gallery--featured .centeredContent__image:nth-child(2) {
	height: 424px;
}

.centeredContent__cta {
	margin-top: 42px;
	text-align: center;
}

.centeredContent__secondaryLink {
	margin-top: 22px;
	font-size: var(--fs-16);
	line-height: 1.4;
}

.textLink {
	color: var(--color-wine);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.textLink:hover {
	color: var(--color-ink);
}

.textMedia {
	overflow: hidden;
	color: var(--color-ink);
}

.textMedia--white {
	background: var(--color-white);
}

.textMedia--cream {
	background: var(--color-cream);
}

.textMedia__inner {
	--text-media-bleed: calc((100vw - min(calc(100vw - (var(--pad-x) * 2)), var(--container))) / 2);
	display: grid;
	align-items: stretch;
	grid-template-columns: minmax(0, 470px) minmax(0, 1fr);
	gap: clamp(30px, 3.2vw, 42px);
}

.textMedia--image-left .textMedia__inner {
	grid-template-columns: minmax(0, 1fr) minmax(0, 470px);
}

.textMedia--image-left .textMedia__media {
	order: -1;
}

.textMedia__copy {
	align-self: center;
	max-width: 500px;
	padding-block: 56px;
}

.textMedia--image-left .textMedia__copy {
	justify-self: end;
}

.textMedia__copy .sectionRule {
	margin-inline: 0;
}

.textMedia__copy h2 {
	color: var(--color-wine);
}

.textMedia__text {
	max-width: 500px;
}

.textMedia__cta {
	margin-top: 38px;
}

.textMedia__media {
	position: relative;
	width: calc(100% + var(--text-media-bleed));
	min-height: 500px;
	margin: 0;
	overflow: hidden;
}

.textMedia--image-right .textMedia__media {
	margin-right: calc(-1 * var(--text-media-bleed));
}

.textMedia--image-left .textMedia__media {
	margin-left: calc(-1 * var(--text-media-bleed));
}

.textMedia__media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.amenitiesBlock {
	padding-top: 0;
	color: var(--color-ink);
	background: var(--color-white);
}

.amenitiesBlock__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: clamp(42px, 8vw, 118px);
	row-gap: 56px;
	padding-inline: clamp(24px, 5vw, 92px);
}

.amenitiesBlock__item {
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
	color: var(--color-ink);
	font-size: var(--fs-16);
	line-height: 24px;
}

.amenitiesBlock__icon {
	flex: 0 0 auto;
	color: var(--color-sage);
	font-size: 24px;
}

.amenitiesBlock__label {
	min-width: 0;
}

.serviceItem {
	color: var(--color-ink);
}

.serviceItem__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	min-height: 360px;
	background: var(--color-cream);
}

.serviceItem--no-image .serviceItem__inner {
	grid-template-columns: 1fr;
}

.serviceItem__media {
	position: relative;
	min-height: 360px;
	margin: 0;
	overflow: hidden;
}

.serviceItem__media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.serviceItem__content {
	align-self: center;
	padding: clamp(56px, 7vw, 86px);
}

.serviceItem__title {
	font-family: var(--font-body);
	font-size: var(--fs-20);
	font-weight: 600;
	line-height: 32px;
	color: var(--color-wine);
}

.serviceItem__text {
	font-size: var(--body-size);
	line-height: var(--body-line);
}

.contactFormBlock {
	background: var(--color-white);
	color: var(--color-ink);
}

.contactFormBlock__inner {
	max-width: 1010px;
	margin-inline: auto;
}

.borgoContactForm__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--gutter);
}

.borgoContactForm__column {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.borgoContactForm label {
	display: block;
	font-size: var(--body-size);
	font-weight: 300;
	line-height: var(--body-line);
	color: var(--color-stone);
}

.borgoContactForm input:not([type="submit"]):not([type="checkbox"]),
.borgoContactForm textarea {
	width: 100%;
	margin-top: 8px;
	border: 1px solid #ede8df;
	border-radius: 0;
	background: rgba(247, 244, 238, 0.45);
	color: var(--color-ink);
	font-family: var(--font-body);
	font-size: var(--body-size);
	font-weight: 300;
	line-height: var(--body-line);
	transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.borgoContactForm input:not([type="submit"]):not([type="checkbox"]) {
	min-height: 50px;
	padding: 8px 14px;
}

.borgoContactForm textarea {
	min-height: 206px;
	padding: 12px 14px;
	resize: vertical;
}

.borgoContactForm input:not([type="submit"]):not([type="checkbox"]):hover,
.borgoContactForm textarea:hover {
	border-color: #d9d1c5;
	background: rgba(247, 244, 238, 0.7);
}

.borgoContactForm input:focus,
.borgoContactForm textarea:focus {
	border-color: var(--color-wine);
	background: var(--color-white);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(120, 45, 53, 0.12);
}

.borgoContactForm .wpcf7-not-valid {
	border-color: var(--color-wine) !important;
	background: rgba(120, 45, 53, 0.04) !important;
}

.borgoContactForm .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 2px;
}

.borgoContactForm .wpcf7-list-item {
	margin: 0;
}

.borgoContactForm input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 7px;
	accent-color: var(--color-wine);
}

.borgoContactForm a {
	color: var(--color-wine);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.borgoContactForm__actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 18px;
}

.borgoContactForm__actions::after {
	content: none;
}

.borgoContactForm input[type="submit"] {
	appearance: none;
	width: auto !important;
	min-width: 112px;
	min-height: 50px;
	padding: 10px 48px 10px 26px !important;
	border: 1px solid var(--color-stone) !important;
	border-radius: 0 !important;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%232f2f2c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 20px center !important;
	background-size: 18px 18px !important;
	color: var(--color-ink) !important;
	font-family: var(--font-body);
	font-size: var(--fs-16);
	font-weight: 400;
	line-height: 1 !important;
	text-align: left;
	text-transform: uppercase;
	cursor: pointer;
	opacity: 1 !important;
	transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.borgoContactForm input[type="submit"]:hover,
.borgoContactForm input[type="submit"]:focus-visible {
	border-color: var(--color-wine) !important;
	background-color: var(--color-wine) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E") !important;
	color: var(--color-white) !important;
	outline: 0;
	box-shadow: 0 0 0 3px rgba(120, 45, 53, 0.12);
}

.borgoContactForm input[type="submit"]:disabled {
	border-color: #d9d1c5 !important;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b6762' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E") !important;
	color: var(--color-stone) !important;
	cursor: not-allowed;
	opacity: 0.65 !important;
}

.borgoContactForm .wpcf7-not-valid-tip {
	margin-top: 8px;
	color: var(--color-wine);
	font-size: var(--fs-14);
	line-height: 20px;
}

.contactFormBlock .wpcf7-response-output {
	margin: 28px 0 0 !important;
	padding: 16px 18px !important;
	border: 1px solid var(--color-wine) !important;
	border-left-width: 4px !important;
	background: rgba(247, 244, 238, 0.55);
	color: var(--color-ink);
	font-size: var(--fs-16);
	line-height: 24px;
}

.contactFormBlock .wpcf7 form.sent .wpcf7-response-output,
.contactFormBlock .wpcf7-form.sent .wpcf7-response-output {
	border-color: var(--color-sage) !important;
	background: rgba(111, 125, 106, 0.1);
}

.contactFormBlock .wpcf7 form.invalid .wpcf7-response-output,
.contactFormBlock .wpcf7 form.unaccepted .wpcf7-response-output,
.contactFormBlock .wpcf7-form.invalid .wpcf7-response-output,
.contactFormBlock .wpcf7-form.unaccepted .wpcf7-response-output {
	border-color: var(--color-wine) !important;
	background: rgba(120, 45, 53, 0.07);
}

.contactFormBlock .wpcf7 form.failed .wpcf7-response-output,
.contactFormBlock .wpcf7 form.aborted .wpcf7-response-output,
.contactFormBlock .wpcf7 form.spam .wpcf7-response-output,
.contactFormBlock .wpcf7-form.failed .wpcf7-response-output,
.contactFormBlock .wpcf7-form.aborted .wpcf7-response-output,
.contactFormBlock .wpcf7-form.spam .wpcf7-response-output {
	border-color: #6b6762 !important;
	background: rgba(107, 103, 98, 0.09);
}

.faqBlock {
	padding-top: 0;
	background: var(--color-white);
	color: var(--color-ink);
}

.faqBlock__inner {
	max-width: 760px;
	margin-inline: auto;
}

.faqCategory {
	border-bottom: 1px solid rgba(120, 45, 53, 0.42);
}

.faqCategory + .faqCategory {
	margin-top: 54px;
}

.faqCategory__summary,
.faqItem__summary {
	list-style: none;
	cursor: pointer;
}

.faqCategory__summary::-webkit-details-marker,
.faqItem__summary::-webkit-details-marker {
	display: none;
}

.faqCategory__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 0 0 18px;
	font-family: var(--font-display);
	font-size: var(--fs-40);
	font-weight: 400;
	line-height: 50px;
	color: var(--color-wine);
}

.faqCategory__summary::after {
	content: "";
	flex: 0 0 auto;
	width: 46.668px;
	height: 24.042px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46.668' height='24.042' viewBox='0 0 46.668 24.042'%3E%3Cg transform='translate(-1030.852 -2083.479)'%3E%3Cg transform='translate(-1220.576 1319.097) rotate(-45)'%3E%3Cline x2='32' transform='translate(1051.5 2165.5)' fill='none' stroke='%23782d35' stroke-linecap='round' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(266.47 4381.576) rotate(-135)'%3E%3Cline x2='32' transform='translate(1051.5 2165.5)' fill='none' stroke='%23782d35' stroke-linecap='round' stroke-width='1'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
	transform: rotate(0deg);
	transition: transform 0.18s ease;
}

.faqCategory[open] > .faqCategory__summary::after {
	transform: rotate(180deg);
}

.faqCategory__summary:focus-visible,
.faqItem__summary:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 3px rgba(120, 45, 53, 0.12);
}

.faqCategory__items {
	padding-bottom: 34px;
}

.faqItem {
	border-top: 1px solid rgba(107, 103, 98, 0.22);
}

.faqItem__summary {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 28px;
	padding: 22px 0;
	color: var(--color-stone);
	font-family: var(--font-display);
	font-size: 30px;
	font-weight: 300;
	line-height: 38px;
}

.faqItem__summary::after {
	content: "";
	position: relative;
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	margin-top: 3px;
	color: var(--color-wine);
	background:
		linear-gradient(currentColor, currentColor) center / 1px 32px no-repeat,
		linear-gradient(currentColor, currentColor) center / 32px 1px no-repeat;
	transition: transform 0.18s ease;
}

.faqItem[open] > .faqItem__summary::after {
	transform: rotate(45deg);
}

.faqItem__answer {
	padding: 0 58px 24px 0;
	color: var(--color-stone);
	font-size: var(--body-size);
	line-height: var(--body-line);
}

.imageCta {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 700px;
	overflow: hidden;
	background: var(--color-cream);
	color: var(--color-wine);
}

.imageCta--negative {
	color: var(--color-white);
}

.imageCta--content-center {
	align-items: flex-start;
}

.imageCta__media,
.imageCta__overlay {
	position: absolute;
	inset: 0;
	margin: 0;
}

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

.imageCta__overlay {
	z-index: 1;
	background: var(--color-ink);
	opacity: var(--image-cta-overlay-opacity, 0.2);
	pointer-events: none;
}

.imageCta__content {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-block: 110px;
}

.imageCta__inner {
	max-width: 455px;
}

.imageCta--content-left .imageCta__inner {
	margin-right: auto;
	text-align: left;
}

.imageCta--content-center .imageCta__inner {
	max-width: 650px;
	margin-inline: auto;
	text-align: center;
}

.imageCta--content-center .imageCta__content {
	padding-top: 130px;
	padding-bottom: 180px;
}

.imageCta--content-right .imageCta__inner {
	margin-left: auto;
	text-align: left;
}

.imageCta--content-left .sectionRule,
.imageCta--content-right .sectionRule {
	margin-inline: 0;
}

.imageCta--negative .sectionRule {
	background: currentColor;
}

.imageCta h2 {
	color: inherit;
}

.imageCta:not(.imageCta--negative) .imageCta__text {
	color: var(--color-ink);
}

.imageCta__cta {
	margin-top: 34px;
}

.mosaicGallery {
	background: var(--color-white);
}

.mosaicGallery--cream {
	background: var(--color-cream);
}

.mosaicGallery--top-normal {
	padding-top: 120px;
}

.mosaicGallery--top-reduced {
	padding-top: 70px;
}

.mosaicGallery--top-none {
	padding-top: 0;
}

.mosaicGallery--bottom-normal {
	padding-bottom: 120px;
}

.mosaicGallery--bottom-reduced {
	padding-bottom: 70px;
}

.mosaicGallery--bottom-none {
	padding-bottom: 0;
}

.mosaicGallery__grid {
	display: grid;
	align-items: stretch;
	grid-template-columns: minmax(0, 1.48fr) minmax(0, 0.95fr);
	gap: var(--gutter);
}

.mosaicGallery__column,
.mosaicGallery__bottomPair {
	display: grid;
	gap: var(--gutter);
}

.mosaicGallery__column--narrow {
	display: flex;
	flex-direction: column;
}

.mosaicGallery__bottomPair {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mosaicGallery__image {
	position: relative;
	margin: 0;
	overflow: hidden;
}

.mosaicGallery__image img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mosaicGallery__image--wideTop {
	aspect-ratio: 1.48 / 1;
}

.mosaicGallery__image--small {
	aspect-ratio: 1 / 1.05;
}

.mosaicGallery__image--narrowTop {
	flex: 0 0 auto;
	aspect-ratio: 1.48 / 1;
}

.mosaicGallery__image--narrowBottom {
	flex: 1 1 auto;
	min-height: 0;
}

.pageContent__inner {
	max-width: 820px;
	margin-inline: auto;
}

.pageContent h1 {
	font-size: var(--title-size);
	line-height: var(--title-line);
}

.siteFooter {
	background: var(--color-cream);
	color: var(--color-wine);
}

.siteFooter__inner {
	display: grid;
	grid-template-columns: 1.4fr 1.3fr 0.8fr 0.8fr;
	gap: var(--space-md);
	padding: 46px 0 42px;
}

.siteFooter__logo svg {
	width: 168px;
	height: auto;
}

.siteFooter__brand {
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-size: var(--footer-size);
	line-height: var(--body-line);
}

.siteFooter__brand p {
	font-family: var(--font-body);
	font-size: var(--fs-14);
	line-height: 22px;
	color: var(--color-ink);
}

.siteFooter__contact,
.siteFooter__nav {
	font-size: var(--footer-size);
	line-height: var(--body-line);
}

.siteFooter__heading {
	font-weight: 600;
	color: var(--color-ink);
}

.siteFooter__menu {
	align-items: flex-start;
	flex-direction: column;
	gap: 7px;
}

.siteFooter__bottom {
	background: #ede8df;
	color: var(--color-stone);
}

.siteFooter__bottomInner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 16px 0;
	font-size: var(--footer-bottom-size);
	line-height: 22px;
	text-align: center;
}

.siteFooter__legalMenu {
	gap: 8px;
	justify-content: center;
}

.siteFooter__legalMenu li + li::before {
	content: "-";
	margin-right: 8px;
}

.wysiwyg > * + * {
	margin-top: var(--s0);
}

.wysiwyg ul,
.wysiwyg ol {
	padding-left: 1.4rem;
}

.reveal-ready [data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.8s cubic-bezier(0.18, 0.56, 0.16, 1), transform 1.8s cubic-bezier(0.18, 0.56, 0.16, 1);
}

.reveal-ready .pageHero__inner[data-reveal] {
	opacity: 1;
	transform: none;
	transition: none;
}

.reveal-ready [data-reveal].is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.pageHero__video {
		display: none;
	}

	.reveal-ready [data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.has-page-hero .siteHeader__brand,
	.has-page-hero .siteHeader__panel,
	.has-page-hero .siteHeader__toggle,
	.has-page-hero .pageHero::after,
	.has-page-hero .pageHero__media,
	.has-page-hero .pageHero__video,
	.has-page-hero .pageHero__inner > * {
		animation: none;
	}
}

@media (max-width: 782px) {
	body.admin-bar .siteHeader {
		top: 46px;
	}
}

@media (max-width: 790px) {
	body:not(.has-page-hero) #main-content {
		padding-top: 96px;
	}

	.siteHeader__inner {
		position: relative;
		align-items: center;
		justify-content: space-between;
		gap: 18px;
		min-height: 96px;
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.siteHeader__brand svg {
		width: 148px;
	}

	.siteHeader__toggle {
		display: inline-flex;
	}

	.siteHeader__panel {
		position: absolute;
		top: calc(100% - 8px);
		right: clamp(24px, 5vw, 80px);
		left: clamp(24px, 5vw, 80px);
		z-index: 30;
		display: none;
		align-items: flex-start;
		flex-direction: column;
		gap: 24px;
		margin-left: 0;
		padding: 28px;
		background: var(--color-cream);
		color: var(--color-wine);
		box-shadow: 0 18px 50px rgba(47, 47, 44, 0.12);
	}

	.nav-open .siteHeader__panel {
		display: flex;
	}

	.siteHeader__nav {
		width: 100%;
	}

	.siteHeader__menu {
		align-items: flex-start;
		flex-direction: column;
		gap: 18px;
		width: 100%;
	}

	.siteHeader__booking {
		min-height: 50px;
		margin-left: 0;
		padding-inline: 22px;
	}

	.siteHeader__languages {
		flex: 0 0 auto;
	}

	.pageHero__content {
		padding-top: 140px;
		padding-bottom: 90px;
		transform: translateY(-20px);
	}

	.pageHero h1 {
		font-size: var(--fs-40);
		line-height: 48px;
	}

	.pageContent h1 {
		font-size: var(--fs-32);
		line-height: 40px;
	}

	.centeredContent__gallery {
		margin-top: 54px;
	}

	.centeredContent__gallery--equal,
	.centeredContent__gallery--featured {
		display: grid;
		grid-template-columns: 1fr;
		gap: 18px;
		width: 100%;
		margin-left: 0;
	}

	.centeredContent__gallery--equal .centeredContent__image,
	.centeredContent__gallery--featured .centeredContent__image,
	.centeredContent__gallery--featured .centeredContent__image:nth-child(2) {
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.centeredContent__cta {
		margin-top: 42px;
	}

	.textMedia__inner {
		--text-media-bleed: 0px;
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.textMedia--image-left .textMedia__media {
		order: 0;
	}

	.textMedia--image-left .textMedia__inner {
		grid-template-columns: 1fr;
	}

	.textMedia__media,
	.textMedia--image-right .textMedia__media,
	.textMedia--image-left .textMedia__media {
		width: 100%;
		min-height: 360px;
		margin-inline: 0;
	}

	.textMedia__copy,
	.textMedia__text {
		max-width: none;
	}

	.textMedia__copy {
		padding-block: 0;
	}

	.textMedia--image-left .textMedia__copy {
		justify-self: stretch;
	}

	.amenitiesBlock__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 34px;
		padding-inline: 0;
	}

	.serviceItem__inner {
		grid-template-columns: 1fr;
	}

	.serviceItem__media {
		min-height: 300px;
	}

	.serviceItem__content {
		max-width: none;
		padding: 40px 28px;
	}

	.borgoContactForm__grid {
		grid-template-columns: 1fr;
	}

	.borgoContactForm__actions {
		justify-content: flex-start;
	}

	.faqBlock__inner {
		max-width: none;
	}

	.faqCategory__summary {
		font-size: var(--fs-32);
		line-height: 40px;
	}

	.faqItem__summary {
		font-size: var(--fs-24);
		line-height: 32px;
	}

	.faqItem__summary::after {
		width: 24px;
		height: 24px;
		background:
			linear-gradient(currentColor, currentColor) center / 1px 24px no-repeat,
			linear-gradient(currentColor, currentColor) center / 24px 1px no-repeat;
	}

	.faqItem__answer {
		padding-right: 0;
	}

	.imageCta {
		min-height: 560px;
	}

	.imageCta__content {
		padding-block: 82px;
	}

	.imageCta__inner,
	.imageCta--content-center .imageCta__inner {
		max-width: none;
	}

	.imageCta--content-center:not(.imageCta--negative) .imageCta__overlay {
		background:
			radial-gradient(circle at 50% 38%, rgba(247, 244, 238, 0.9) 0%, rgba(247, 244, 238, 0.72) 42%, rgba(247, 244, 238, 0.46) 100%);
		opacity: 1;
	}

	.imageCta--content-left .imageCta__inner,
	.imageCta--content-center .imageCta__inner,
	.imageCta--content-right .imageCta__inner {
		margin-inline: auto;
		text-align: center;
	}

	.imageCta--content-center .imageCta__content {
		padding-top: 82px;
		padding-bottom: 82px;
	}

	.imageCta--content-left .sectionRule,
	.imageCta--content-right .sectionRule {
		margin-inline: auto;
	}

	.mosaicGallery--top-normal {
		padding-top: 80px;
	}

	.mosaicGallery--top-reduced {
		padding-top: 44px;
	}

	.mosaicGallery--bottom-normal {
		padding-bottom: 80px;
	}

	.mosaicGallery--bottom-reduced {
		padding-bottom: 44px;
	}

	.mosaicGallery__grid,
	.mosaicGallery__bottomPair {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.mosaicGallery__column {
		gap: 18px;
	}

	.mosaicGallery__column--narrow {
		display: grid;
	}

	.mosaicGallery__image,
	.mosaicGallery__image--wideTop,
	.mosaicGallery__image--small,
	.mosaicGallery__image--narrowTop,
	.mosaicGallery__image--narrowBottom {
		aspect-ratio: 4 / 3;
	}

	.siteFooter__inner {
		grid-template-columns: 1fr 1fr;
	}

	.siteFooter__bottomInner {
		flex-direction: column;
	}
}

@media (max-width: 560px) {
	.siteHeader__inner {
		gap: 14px;
	}

	.pageHero h1 {
		font-size: var(--fs-36);
	}

	.imageCta {
		min-height: 500px;
	}

	.amenitiesBlock__list {
		grid-template-columns: 1fr;
	}

	.siteFooter__inner {
		grid-template-columns: 1fr;
	}
}
