/* Layout reconstructed from legacy WPBakery rows and columns. */
.bastide-section,
.bastide-row-inner {
	--bastide-grid-gap: clamp(1rem, 2.5vw, 2rem);
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	position: relative;
	width: 100%;
}

.bastide-section.bastide-row--grid {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1200px);
}

.bastide-grid__column {
	box-sizing: border-box;
	flex: 0 0 100%;
	max-width: 100%;
	min-width: 0;
	padding-inline: calc(var(--bastide-grid-gap) / 2);
}

.bastide-row-inner {
	margin-inline: calc(var(--bastide-grid-gap) / -2);
	width: calc(100% + var(--bastide-grid-gap));
}

@media (min-width: 48rem) {
	.bastide-grid__column--1-2 { flex-basis: 50%; max-width: 50%; }
	.bastide-grid__column--1-3 { flex-basis: 33.3333%; max-width: 33.3333%; }
	.bastide-grid__column--2-3 { flex-basis: 66.6667%; max-width: 66.6667%; }
	.bastide-grid__column--1-4 { flex-basis: 25%; max-width: 25%; }
	.bastide-grid__column--3-4 { flex-basis: 75%; max-width: 75%; }
}

.bastide-prose {
	color: inherit;
	line-height: 1.7;
}

.bastide-prose > :first-child { margin-top: 0; }
.bastide-prose > :last-child { margin-bottom: 0; }
.bastide-prose img { height: auto; max-width: 100%; }

.bastide-spacer {
	clear: both;
	max-height: 30rem;
	pointer-events: none;
	width: 100%;
}

.bastide-separator {
	border: 0;
	border-top: 1px solid rgba(64, 54, 48, .22);
	border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
	margin-block: 1.75rem;
	width: 100%;
}

/* Galleries and the dependency-free lightbox. */
.bastide-gallery {
	display: grid;
	gap: clamp(.65rem, 1.6vw, 1.25rem);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-block: 1.5rem;
}

@media (min-width: 40rem) {
	.bastide-gallery--columns-1 { grid-template-columns: 1fr; }
	.bastide-gallery--columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bastide-gallery--columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.bastide-gallery--columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.bastide-gallery--columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.bastide-gallery--columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

.bastide-gallery__item,
.bastide-single-image,
.room-card__media {
	margin: 0;
}

.bastide-gallery__link {
	background: #f1ede7;
	display: block;
	overflow: hidden;
}

.bastide-gallery__link img {
	aspect-ratio: 4 / 3;
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform .25s ease;
	width: 100%;
}

.bastide-gallery__link:hover img,
.bastide-gallery__link:focus-visible img {
	transform: scale(1.025);
}

.bastide-gallery__caption {
	font-size: .875rem;
	line-height: 1.4;
	margin-top: .4rem;
}

.bastide-gallery--slider {
	display: block;
	position: relative;
}

.bastide-gallery--slider .bastide-gallery__track {
	overflow: hidden;
	position: relative;
}

.bastide-gallery--slider .bastide-gallery__slide {
	display: none;
}

.bastide-gallery--slider .bastide-gallery__slide.is-active {
	display: block;
}

.bastide-gallery--slider .bastide-gallery__link img {
	aspect-ratio: 3 / 2;
}

.bastide-gallery__controls {
	align-items: center;
	display: flex;
	gap: .55rem;
	justify-content: center;
	margin-top: .75rem;
}

.bastide-gallery__previous,
.bastide-gallery__next,
.bastide-gallery__pause {
	align-items: center;
	background: #2e2927;
	border: 1px solid #2e2927;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 1.35rem;
	height: 2.75rem;
	justify-content: center;
	line-height: 1;
	padding: 0;
	transition: background-color .18s ease, border-color .18s ease;
	width: 2.75rem;
}

.bastide-gallery__pause {
	font-size: 1rem;
}

.bastide-gallery__previous:hover,
.bastide-gallery__next:hover,
.bastide-gallery__pause:hover {
	background: #d35c30;
	border-color: #d35c30;
}

.bastide-gallery__previous:focus-visible,
.bastide-gallery__next:focus-visible,
.bastide-gallery__pause:focus-visible {
	outline: 3px solid #d35c30;
	outline-offset: 3px;
}

.bastide-gallery__counter {
	font-variant-numeric: tabular-nums;
	min-width: 4.5rem;
	text-align: center;
}

/* Legacy pages pull their "click to enlarge" note upward by 50px. The
 * controls now occupy that space, so keep the note in normal flow. */
.bastide-gallery--slider + .bastide-prose {
	margin-top: .5rem !important;
}

.bastide-single-image img {
	display: block;
	height: auto;
	max-width: 100%;
}

.bastide-single-image.aligncenter img { margin-inline: auto; }
.bastide-single-image.alignright img { margin-left: auto; }

.bastide-lightbox {
	align-items: center;
	background: rgba(12, 12, 12, .94);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: clamp(1rem, 4vw, 3rem);
	position: fixed;
	z-index: 100000;
}

.bastide-lightbox[hidden] { display: none; }

.bastide-lightbox__figure {
	display: grid;
	margin: 0;
	max-height: 92vh;
	max-width: min(92vw, 100rem);
	place-items: center;
}

.bastide-lightbox__image {
	display: block;
	height: auto;
	max-height: 86vh;
	max-width: 100%;
	object-fit: contain;
}

.bastide-lightbox__close,
.bastide-lightbox__previous,
.bastide-lightbox__next {
	align-items: center;
	background: rgba(0, 0, 0, .52);
	border: 1px solid rgba(255, 255, 255, .6);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: flex;
	font: inherit;
	height: 2.75rem;
	justify-content: center;
	position: absolute;
	width: 2.75rem;
}

.bastide-lightbox__close { right: 1rem; top: 1rem; }
.bastide-lightbox__previous { left: 1rem; top: calc(50% - 1.375rem); }
.bastide-lightbox__next { right: 1rem; top: calc(50% - 1.375rem); }
.bastide-lightbox__close:focus-visible,
.bastide-lightbox__previous:focus-visible,
.bastide-lightbox__next:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.bastide-lightbox-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.bastide-gallery__link img,
	.bastide-gallery__previous,
	.bastide-gallery__next,
	.bastide-gallery__pause {
		transition: none;
	}
}

/* Home room cards reconstructed from image_with_text_over. */
.room-card {
	--bastide-card-overlay: rgba(0, 0, 0, .08);
	--bastide-card-hover: rgba(221, 153, 51, .46);
	background: #201b18;
	color: #fff;
	min-height: 18rem;
	overflow: hidden;
	position: relative;
}

.room-card__media,
.room-card__media img {
	height: 100%;
	inset: 0;
	position: absolute;
	width: 100%;
}

.room-card__media img { object-fit: cover; }

.room-card::after {
	background: var(--bastide-card-overlay);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	transition: background-color .25s ease;
}

.room-card:hover::after,
.room-card:focus-within::after { background: var(--bastide-card-hover); }

.room-card__overlay {
	display: flex;
	flex-direction: column;
	inset: 0;
	justify-content: flex-end;
	padding: clamp(1.1rem, 3vw, 2rem);
	position: absolute;
	z-index: 1;
}

.room-card__title {
	color: inherit;
	font-size: clamp(1.15rem, 2.2vw, 1.7rem);
	margin: 0;
	text-shadow: 0 1px 10px rgba(0, 0, 0, .8);
}

.room-card__content { margin-top: .65rem; }
.room-card__content h4 { margin: .3rem 0; }
.room-card__content a { color: #fff; text-underline-offset: .18em; }
.room-card__icon { font-size: 1.35rem; margin-bottom: .4rem; }

/* Buttons. */
.bastide-buttons { margin-block: 1rem; }
.bastide-buttons.has-text-align-center { text-align: center; }
.bastide-buttons.has-text-align-right { text-align: right; }

.bastide-button {
	--bastide-button-hover: #b64b25;
	align-items: center;
	background: #d35c30;
	border: 0;
	border-radius: .2rem;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-weight: 650;
	gap: .55rem;
	justify-content: center;
	line-height: 1.2;
	padding: .8rem 1.2rem;
	text-decoration: none;
	transition: background-color .18s ease, transform .18s ease;
}

.bastide-button:hover,
.bastide-button:focus-visible {
	background: var(--bastide-button-hover);
	color: #fff;
	transform: translateY(-1px);
}

.bastide-button--large { font-size: 1.05rem; padding: 1rem 1.5rem; }
.bastide-button__icon { font-size: 1.45em; line-height: .8; }

/* Partner logos. */
.home-referrals { padding-block: 1rem; width: 100%; }
.home-referrals__grid {
	align-items: center;
	display: grid;
	gap: clamp(1rem, 3vw, 2.5rem);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 42rem) {
	.home-referrals__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 64rem) {
	.home-referrals__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

.home-referrals__item { margin: 0; text-align: center; }
.home-referrals__item img { display: inline-block; height: auto; max-height: 5rem; max-width: 100%; width: auto; }

.bastide-quote {
	border-left: .3rem solid currentColor;
	font-size: 1.1rem;
	font-style: italic;
	margin: 1.5rem 0;
	padding: .75rem 1.25rem;
}

.bastide-icon-link {
	align-items: center;
	border-radius: 999px;
	color: inherit;
	display: inline-flex;
	height: 3rem;
	justify-content: center;
	width: 3rem;
}

.bastide-icon-link--bordered { border: 1px solid currentColor; }
.bastide-icon-link__svg { fill: currentColor; }

.bastide-icon-link .screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

.bastide-map-embed {
	aspect-ratio: 6 / 5;
	margin-block: 1.5rem;
	max-height: 36rem;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.bastide-map-embed iframe { border: 0; height: 100%; inset: 0; position: absolute; width: 100%; }

/* Secure contact form. */
.bastide-contact-form-wrap { margin-block: 1.5rem; }
.bastide-contact-form { display: grid; gap: 1rem; }
.bastide-contact-form__grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }

@media (min-width: 48rem) {
	.bastide-contact-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.bastide-contact-form__field { display: grid; gap: .4rem; }
.bastide-contact-form__field label,
.bastide-contact-form__consent label { font-weight: 600; }

.bastide-contact-form input[type="text"],
.bastide-contact-form input[type="email"],
.bastide-contact-form input[type="tel"],
.bastide-contact-form textarea {
	background: #fff;
	border: 1px solid #8b8179;
	border-radius: .2rem;
	box-sizing: border-box;
	color: #1c1815;
	font: inherit;
	padding: .75rem;
	width: 100%;
}

.bastide-contact-form input:focus,
.bastide-contact-form textarea:focus { border-color: #7c321d; outline: 3px solid rgba(211, 92, 48, .24); }
.bastide-contact-form__consent { align-items: flex-start; display: flex; gap: .65rem; }
.bastide-contact-form__consent input { flex: 0 0 auto; margin-top: .28rem; }
.bastide-contact-form__submit { justify-self: start; }

.bastide-contact-form__notice {
	border-left: .3rem solid;
	margin-bottom: 1rem;
	padding: .8rem 1rem;
}

.bastide-contact-form__notice--success { background: #edf8ef; border-color: #2f7a3c; color: #194d22; }
.bastide-contact-form__notice--error { background: #fff0ef; border-color: #a12d22; color: #711d16; }

.bastide-contact-form__honeypot {
	height: 1px;
	left: -10000px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.bastide-contact-form__legacy-anchor {
	display: block;
	height: 0;
	position: relative;
	top: -1rem;
}

@media (prefers-reduced-motion: reduce) {
	.bastide-gallery__link img,
	.room-card::after,
	.bastide-button { transition: none; }
	.bastide-gallery__link:hover img,
	.bastide-gallery__link:focus-visible img,
	.bastide-button:hover,
	.bastide-button:focus-visible { transform: none; }
}
