/*
 * Grand Atelier — component styles. Tokens (colors, fonts, sizes) live in
 * theme.json and are used here through the --wp--preset--* variables.
 */

:root {
	--ga-gutter: clamp(18px, 4vw, 48px);
	--ga-mono: var(--wp--preset--font-family--mono);
	--ga-serif: var(--wp--preset--font-family--serif);
	--ga-line: var(--wp--preset--color--line);
}

body {
	-webkit-font-smoothing: antialiased;
	text-wrap: pretty;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

:where(.wp-site-blocks) > * {
	margin-block-start: 0;
}

/* Footer stays at the bottom on short pages. */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wp-site-blocks > main {
	flex: 1;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* ---------- Buttons ---------- */

.ga-btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.ga-btn {
	border: 0;
	font-family: inherit;
	cursor: pointer;
	padding: 11px 20px;
	font-size: var(--wp--preset--font-size--s);
	line-height: 1.2;
}

.ga-btn--dark {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.ga-btn--dark:hover,
.ga-btn--dark:focus-visible {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-dark);
}

.wp-block-button.is-style-accent .wp-block-button__link {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-dark);
}

.wp-block-button.is-style-accent .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--line-strong);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
	background: transparent;
}

/* ---------- Text styles ---------- */

.is-style-eyebrow {
	font-family: var(--ga-mono);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	line-height: 1.4;
}

.wp-block-group.is-style-card {
	background: var(--wp--preset--color--surface);
	padding: 22px 24px;
}

/* ---------- Header ---------- */

/* The template-part wrapper is what sticks (the header fills it exactly). */
.wp-site-blocks > :has(> .ga-header) {
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .wp-site-blocks > :has(> .ga-header) {
	top: var(--wp-admin--admin-bar--height, 0px);
}

.ga-header {
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--ga-line);
}

.ga-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 20px var(--ga-gutter);
}

.ga-logo {
	font-family: var(--ga-serif);
	font-size: 23px;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
	white-space: nowrap;
}

.ga-logo em {
	font-style: italic;
}

.ga-logo:hover {
	color: var(--wp--preset--color--contrast);
}

.ga-header__panel {
	display: flex;
	align-items: center;
	gap: 26px;
}

.ga-nav__list,
.ga-lang,
.ga-footer__list,
.ga-footer__legal {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ga-nav__list {
	display: flex;
	gap: 26px;
	font-size: var(--wp--preset--font-size--s);
}

.ga-nav__list a {
	color: var(--wp--preset--color--contrast-2);
}

.ga-nav__list a:hover,
.ga-nav__list .current-menu-item > a {
	color: var(--wp--preset--color--accent);
}

.ga-lang {
	display: flex;
	gap: 7px;
	font-family: var(--ga-mono);
	font-size: var(--wp--preset--font-size--xs);
}

.ga-lang a {
	color: var(--wp--preset--color--muted);
}

.ga-lang a[aria-current],
.ga-lang a:hover {
	color: var(--wp--preset--color--contrast);
}

.ga-burger {
	display: none;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.ga-burger__lines,
.ga-burger__lines::before,
.ga-burger__lines::after {
	display: block;
	width: 22px;
	height: 2px;
	margin: 0 auto;
	background: currentColor;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.ga-burger__lines {
	position: relative;
}

.ga-burger__lines::before,
.ga-burger__lines::after {
	content: "";
	position: absolute;
	left: 0;
}

.ga-burger__lines::before {
	top: -6px;
}

.ga-burger__lines::after {
	top: 6px;
}

.ga-header.is-open .ga-burger__lines {
	background: transparent;
}

.ga-header.is-open .ga-burger__lines::before {
	transform: translateY(6px) rotate(45deg);
}

.ga-header.is-open .ga-burger__lines::after {
	transform: translateY(-6px) rotate(-45deg);
}

@media (max-width: 1099px) {
	.ga-header__inner {
		padding-block: 14px;
	}

	.ga-logo {
		font-size: 20px;
	}

	.ga-burger {
		display: block;
	}

	.ga-header__panel {
		display: none;
		position: fixed;
		inset: var(--ga-header-h, 64px) 0 0;
		flex-direction: column;
		align-items: stretch;
		gap: 28px;
		padding: 28px var(--ga-gutter) 40px;
		background: var(--wp--preset--color--base);
		overflow-y: auto;
	}

	.ga-header.is-open .ga-header__panel {
		display: flex;
	}

	.ga-nav__list {
		flex-direction: column;
		gap: 0;
	}

	.ga-nav__list a {
		display: block;
		padding: 14px 0;
		border-bottom: 1px solid var(--ga-line);
		font-family: var(--ga-serif);
		font-size: 26px;
		line-height: 1.2;
		color: var(--wp--preset--color--contrast);
	}

	.ga-lang {
		gap: 18px;
		font-size: var(--wp--preset--font-size--s);
	}

	.ga-header__cta {
		padding: 16px;
		font-size: var(--wp--preset--font-size--m);
	}

	.ga-menu-open {
		overflow: hidden;
	}
}

/* ---------- Page header band ---------- */

.ga-page-header {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 44px var(--ga-gutter) 36px;
	border-bottom: 1px solid var(--ga-line);
}

.ga-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.ga-breadcrumb a {
	color: inherit;
}

.ga-breadcrumb a:hover {
	color: var(--wp--preset--color--accent);
}

.ga-page-header__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--xxxl);
}

.ga-page-header__intro {
	margin: 0;
	max-width: 70ch;
	font-size: var(--wp--preset--font-size--m);
	color: var(--wp--preset--color--contrast-3);
}

.ga-main {
	padding-block: 44px var(--wp--preset--spacing--60);
}

.ga-main--flush {
	padding-block: 0;
}

/* ---------- Footer ---------- */

.ga-footer {
	margin-top: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--on-dark-muted);
	font-size: 15px;
	line-height: 1.6;
}

.ga-footer a {
	color: #EAE4DA;
}

.ga-footer a:hover {
	color: var(--wp--preset--color--accent-soft);
}

.ga-footer__main {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr 1fr;
	gap: 40px;
	padding: 52px var(--ga-gutter);
}

.ga-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ga-footer__name {
	font-family: var(--ga-serif);
	font-size: 26px;
	line-height: 1.2;
	color: var(--wp--preset--color--on-dark);
}

.ga-footer__tagline {
	margin: 0;
	max-width: 34ch;
}

.ga-footer__col {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.ga-footer__label {
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--on-dark-faint);
}

.ga-footer__list {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.ga-footer__bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 20px;
	padding: 16px var(--ga-gutter);
	background: var(--wp--preset--color--dark-2);
	font-size: 13px;
	color: var(--wp--preset--color--on-dark-faint);
}

.ga-footer__legal {
	display: flex;
	gap: 20px;
}

.ga-footer__bar a {
	color: var(--wp--preset--color--on-dark-faint);
}

.ga-footer__bar a:hover {
	color: var(--wp--preset--color--on-dark);
}

@media (max-width: 900px) {
	.ga-footer__main {
		grid-template-columns: 1fr 1fr;
	}

	.ga-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 520px) {
	.ga-footer__main {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-block: 40px;
	}
}

/* ---------- Content blocks ---------- */

.is-style-more-link {
	font-family: var(--ga-mono);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.4;
}

.is-style-more-link a {
	color: var(--wp--preset--color--accent);
}

.is-style-more-link a:hover {
	color: var(--wp--preset--color--contrast);
}

.wp-block-group.is-style-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.wp-block-group.is-style-card > * {
	margin: 0;
}

/* Amenities: two-column grid with hairlines between cells. */
.wp-block-list.is-style-amenities {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	margin-top: 6px;
	padding: 0;
	list-style: none;
	background: var(--ga-line);
	border: 1px solid var(--ga-line);
}

.wp-block-list.is-style-amenities li {
	padding: 17px 20px;
	background: var(--wp--preset--color--base);
	font-size: 15px;
	line-height: 1.4;
	color: var(--wp--preset--color--contrast-2);
}

@media (max-width: 520px) {
	.wp-block-list.is-style-amenities {
		grid-template-columns: 1fr;
	}
}

/* Rows: label left, value right, a line under each row. */
.wp-block-table.is-style-rows {
	margin: 0;
}

.wp-block-table.is-style-rows table {
	width: 100%;
	border-collapse: collapse;
}

.wp-block-table.is-style-rows td {
	padding: 15px 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line-strong);
	font-size: var(--wp--preset--font-size--m);
	line-height: 1.4;
	color: var(--wp--preset--color--contrast-2);
}

.wp-block-table.is-style-rows td:last-child {
	padding-left: 16px;
	text-align: right;
	white-space: nowrap;
}

.wp-block-table.ga-rows-muted td {
	padding-block: 14px;
	border-bottom-color: var(--ga-line);
}

.wp-block-table.ga-rows-muted td:last-child {
	color: var(--wp--preset--color--muted);
}

/* Mosaic gallery: one tall image + four small. */
.wp-block-gallery.is-style-mosaic.has-nested-images {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-auto-rows: 200px;
	gap: 12px;
}

.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image {
	width: auto !important;
	height: 100%;
	margin: 0;
}

.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:first-child {
	grid-row: span 2;
}

.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 700px) {
	.wp-block-gallery.is-style-mosaic.has-nested-images {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: 130px;
		gap: 8px;
	}

	.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:first-child {
		grid-column: span 2;
		grid-row: span 2;
	}
}

/* Image that fills its column (height follows the neighbouring content). */
.wp-block-image.is-style-fill {
	height: 100%;
	margin: 0;
}

.wp-block-image.is-style-fill img {
	width: 100%;
	height: 100%;
	min-height: 280px;
	object-fit: cover;
}

/* ---------- Front page ---------- */

.ga-section {
	padding-block: var(--wp--preset--spacing--60);
}

.wp-block-columns.ga-intro,
.wp-block-columns.ga-cols {
	gap: var(--wp--preset--spacing--60);
}

.wp-block-columns.alignwide.ga-section {
	margin-block: 0;
}

.ga-intro h2 {
	font-size: clamp(30px, 3.4vw, 40px);
}

.ga-intro__image img {
	max-height: 440px;
}

/* Hero */
.wp-block-cover.ga-hero {
	min-height: clamp(420px, 55vw, 620px);
	padding: 0 var(--ga-gutter) calc(56px + 40px);
}

.ga-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}

.ga-hero__content {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 720px;
}

.ga-hero__content > * {
	margin: 0;
}

.ga-hero .is-style-eyebrow {
	color: #E8E2D8;
}

.ga-hero h1 {
	line-height: 1.02;
	color: var(--wp--preset--color--on-dark);
}

.ga-hero__lead {
	max-width: 50ch;
	font-size: var(--wp--preset--font-size--l);
	line-height: 1.55;
	color: #EAE4DA;
}

/* Booking bar, overlapping the hero */
.ga-booking-bar {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr 1fr 110px 110px 1.2fr 220px;
	margin-top: -40px !important;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--ga-line);
	box-shadow: var(--wp--preset--shadow--card);
}

.ga-booking-bar__field {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 18px 24px;
	border-right: 1px solid var(--ga-line);
}

.ga-booking-bar__field label,
.ga-booking-bar__label {
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.ga-booking-bar__field input,
.ga-booking-bar__field select {
	box-sizing: border-box;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 17px;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.ga-booking-bar__field:focus-within {
	background: var(--wp--preset--color--base);
}

.ga-booking-bar__field input:focus,
.ga-booking-bar__field select:focus {
	outline: none;
}

.ga-booking-bar__toggle {
	display: flex !important;
	align-items: center;
	gap: 10px;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 16px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--wp--preset--color--contrast) !important;
	cursor: pointer;
}

.ga-booking-bar__toggle input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--wp--preset--color--accent);
	cursor: pointer;
}

.ga-booking-bar__submit {
	border: 0;
	padding: 0 16px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-dark);
	font: inherit;
	font-size: var(--wp--preset--font-size--m);
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.ga-booking-bar__submit:hover,
.ga-booking-bar__submit:focus-visible {
	background: var(--wp--preset--color--contrast);
}

@media (max-width: 1100px) {
	.ga-booking-bar {
		grid-template-columns: 1fr 1fr;
		gap: 1px;
		background: var(--ga-line);
	}

	.ga-booking-bar__field {
		padding: 12px 14px;
		border: 0;
		background: var(--wp--preset--color--surface);
	}

	.ga-booking-bar__field--check,
	.ga-booking-bar__submit {
		grid-column: span 2;
	}

	.ga-booking-bar__submit {
		padding: 16px;
	}
}

/* Rating badges */
.ga-ratings {
	gap: 18px 36px !important;
	align-items: baseline !important;
	padding-top: 32px;
	font-size: 15px;
	color: var(--wp--preset--color--contrast-3);
}

.ga-ratings > p {
	margin: 0;
}

.ga-ratings > p + p {
	padding-left: 36px;
	border-left: 1px solid var(--ga-line);
}

.ga-ratings strong {
	margin-right: 9px;
	font-family: var(--ga-serif);
	font-size: 30px;
	font-weight: 400;
	line-height: 1;
	color: var(--wp--preset--color--contrast);
}

@media (max-width: 700px) {
	.ga-ratings > p:last-child {
		flex-basis: 100%;
		padding-left: 0;
		border-left: 0;
		font-size: var(--wp--preset--font-size--s);
	}
}

/* Section heading row: title left, link right */
.ga-section-head {
	margin-bottom: 18px;
}

.ga-section-head > * {
	margin: 0;
}

.ga-gallery-preview {
	padding-bottom: var(--wp--preset--spacing--60);
}

/* Review cards */
.ga-review__source {
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}

.ga-review__text {
	font-size: var(--wp--preset--font-size--m);
	line-height: 1.6;
	color: var(--wp--preset--color--contrast-2);
}

.ga-review__meta {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
}

.ga-cols > .wp-block-column > * + *,
.ga-split__text > * + * {
	margin-top: 18px;
}

.ga-cols .ga-review + .ga-review {
	margin-top: 12px;
}

/* Text + full-bleed image split */
.wp-block-columns.ga-split {
	gap: 0;
	margin-block: 0;
}

.ga-split__text {
	padding: var(--wp--preset--spacing--60) var(--ga-gutter);
}

@media (max-width: 781px) {
	.ga-split__media .wp-block-image.is-style-fill img {
		max-height: 360px;
	}
}

/* Dark call-to-action band */
.ga-cta {
	padding-block: 56px;
}

.ga-cta__text > * {
	margin: 0;
}

.ga-cta__text h2 {
	font-size: clamp(28px, 3vw, 36px);
	color: var(--wp--preset--color--on-dark);
}

.ga-cta__text p {
	margin-top: 8px;
	font-size: var(--wp--preset--font-size--m);
	color: var(--wp--preset--color--on-dark-muted);
}

.ga-cta .wp-block-button__link {
	padding: 17px 32px;
}

.ga-cta .is-style-accent .wp-block-button__link:hover {
	background: var(--wp--preset--color--on-dark);
	color: var(--wp--preset--color--contrast);
}

/* ---------- Subpages ---------- */

.ga-cols-sidebar {
	gap: var(--wp--preset--spacing--50) !important;
}

.ga-stack > * + * {
	margin-top: 18px;
}

.ga-stack-lg > * + * {
	margin-top: 28px;
}

/* Table header row (price table): mono labels over a dark rule. */
.wp-block-table.is-style-rows thead {
	border: 0;
}

.wp-block-table.is-style-rows th {
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--contrast);
	font-family: var(--ga-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: left;
	color: var(--wp--preset--color--muted);
}

.wp-block-table.ga-rows-3 td,
.wp-block-table.ga-rows-3 th {
	width: 22%;
	padding-block: 18px;
	text-align: left;
}

.wp-block-table.ga-rows-3 th {
	padding-block: 12px;
}

.wp-block-table.ga-rows-3 td:first-child,
.wp-block-table.ga-rows-3 th:first-child {
	width: auto;
}

.wp-block-table.ga-rows-3 td:last-child {
	padding-left: 0;
	text-align: left;
}

/* Photo with a fixed height, cropped (sidebar images). */
.wp-block-image.ga-img-fixed img {
	width: 100%;
	height: 300px;
	object-fit: cover;
}

.wp-block-table.ga-rows-3 td {
	border-bottom-color: var(--ga-line);
}

/* Tiles: value + label in a hairline grid (discounts, fees). */
.ga-tiles {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 1px !important;
	background: var(--ga-line);
	border: 1px solid var(--ga-line);
}

.ga-tiles > .wp-block-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 22px;
	background: var(--wp--preset--color--surface);
}

.ga-tiles > .wp-block-group > * {
	margin: 0;
}

.ga-tile__value {
	font-family: var(--ga-serif);
	font-size: 24px;
	line-height: 1.1;
	color: var(--wp--preset--color--contrast);
}

.ga-tile__label {
	font-size: 15px;
	line-height: 1.5;
	color: var(--wp--preset--color--contrast-3);
}

@media (max-width: 520px) {
	.ga-tiles {
		grid-template-columns: 1fr;
	}
}

/* Outlined box (calculator teaser, "can't find the answer?"). */
.wp-block-group.is-style-outline-box {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px;
	border: 1px solid var(--wp--preset--color--contrast);
}

.wp-block-group.is-style-outline-box > * {
	margin: 0;
}

.is-style-outline-box h2,
.is-style-outline-box h3,
.is-style-card h2,
.is-style-card h3 {
	font-size: 24px;
}

.is-style-outline-box p,
.is-style-card p {
	font-size: 15px;
	line-height: 1.6;
}

.is-style-card p.is-style-more-link,
.is-style-card p.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.4;
}

.is-style-outline-box .wp-block-buttons,
.is-style-outline-box .wp-block-button,
.is-style-outline-box .wp-block-button__link {
	width: 100%;
}

.is-style-outline-box .wp-block-button__link {
	padding: 14px;
	font-size: 15px;
}

.ga-sub-h2 {
	font-size: 28px !important;
}

/* FAQ accordion (core Details block) */
.wp-block-details.is-style-faq {
	margin: 0;
	border-bottom: 1px solid var(--ga-line);
}

.wp-block-details.is-style-faq:first-child {
	border-top: 1px solid var(--ga-line);
}

.wp-block-details.is-style-faq summary {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0;
	list-style: none;
	font-size: 17px;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.wp-block-details.is-style-faq summary::-webkit-details-marker {
	display: none;
}

.wp-block-details.is-style-faq summary::after {
	content: "+";
	font-family: var(--ga-mono);
	color: var(--wp--preset--color--muted);
}

.wp-block-details.is-style-faq[open] summary::after {
	content: "−";
}

.wp-block-details.is-style-faq summary:hover {
	color: var(--wp--preset--color--accent);
}

.wp-block-details.is-style-faq > :not(summary) {
	margin: 0 0 20px;
	max-width: 62ch;
	font-size: 16px;
	line-height: 1.65;
}

/* Cards with photo on top (surroundings). */
.ga-cards {
	gap: 16px !important;
}

.ga-cards .is-style-card {
	height: 100%;
}

.ga-cards .wp-block-image {
	margin: -22px -24px 6px;
}

.ga-cards .wp-block-image img {
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.ga-note {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

/* Bottom row: note left, button right. */
.ga-foot-row {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding-top: 28px;
	border-top: 1px solid var(--ga-line);
}

.ga-foot-row > p {
	margin: 0;
	font-size: var(--wp--preset--font-size--m);
}

/* ---------- Gallery ---------- */

.ga-gallery__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 28px;
}

.ga-gallery__filters button {
	padding: 9px 16px;
	border: 1px solid var(--wp--preset--color--line-strong);
	background: transparent;
	font: inherit;
	font-size: var(--wp--preset--font-size--s);
	color: var(--wp--preset--color--contrast-3);
	cursor: pointer;
}

.ga-gallery__filters button:hover {
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
}

.ga-gallery__filters button[aria-pressed="true"] {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--on-dark);
}

.ga-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 240px;
	grid-auto-flow: dense;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ga-gallery__item {
	margin: 0;
	overflow: hidden;
}

.ga-gallery__item[hidden] {
	display: none;
}

.ga-gallery__item.is-large {
	grid-column: span 2;
	grid-row: span 2;
}

.ga-gallery__item.is-wide {
	grid-column: span 2;
}

.ga-gallery__grid.is-filtered .ga-gallery__item {
	grid-column: auto;
	grid-row: auto;
}

.ga-gallery__item a {
	display: block;
	height: 100%;
	cursor: zoom-in;
}

.ga-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.ga-gallery__item a:hover img {
	transform: scale(1.03);
}

@media (max-width: 900px) {
	.ga-gallery__grid {
		grid-template-columns: repeat(2, 1fr);
		grid-auto-rows: 160px;
		gap: 8px;
	}
}

.ga-lightbox {
	width: 100vw;
	max-width: 100vw;
	height: 100vh;
	max-height: 100vh;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(20, 18, 15, 0.96);
	color: var(--wp--preset--color--on-dark);
}

.ga-lightbox[open] {
	display: grid;
	grid-template-columns: 72px 1fr 72px;
	align-items: center;
}

.ga-lightbox::backdrop {
	background: rgba(20, 18, 15, 0.96);
}

.ga-lightbox__figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	margin: 0;
	max-height: 100vh;
	padding: 56px 0 24px;
}

.ga-lightbox__figure img {
	max-width: 100%;
	max-height: calc(100vh - 140px);
	object-fit: contain;
}

.ga-lightbox figcaption {
	display: flex;
	gap: 18px;
	font-size: var(--wp--preset--font-size--s);
	color: var(--wp--preset--color--on-dark-muted);
}

.ga-lightbox__count {
	font-family: var(--ga-mono);
	font-size: var(--wp--preset--font-size--xs);
}

.ga-lightbox button {
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--on-dark);
	font-family: var(--ga-mono);
	cursor: pointer;
}

.ga-lightbox__nav {
	height: 100%;
	font-size: 22px;
	opacity: 0.7;
}

.ga-lightbox__nav:hover {
	opacity: 1;
}

.ga-lightbox__close {
	position: absolute;
	top: 12px;
	right: 16px;
	width: 44px;
	height: 44px;
	font-size: 30px;
}

@media (max-width: 700px) {
	.ga-lightbox[open] {
		grid-template-columns: 1fr;
	}

	.ga-lightbox__nav {
		position: absolute;
		bottom: 16px;
		height: 44px;
		width: 44px;
	}

	.ga-lightbox__nav--prev {
		left: 16px;
	}

	.ga-lightbox__nav--next {
		right: 16px;
	}
}

/* ---------- Map ---------- */

.ga-map {
	display: flex;
	min-height: 420px;
	background: var(--wp--preset--color--muted-bg);
}

.ga-map__placeholder {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 14px;
	max-width: 44ch;
	padding: 32px;
}

.ga-map__placeholder p {
	margin: 0;
	font-size: 15px;
}

.ga-map__placeholder .is-style-eyebrow {
	font-size: var(--wp--preset--font-size--xs);
}

.ga-map__external {
	font-size: var(--wp--preset--font-size--s);
	color: var(--wp--preset--color--contrast-3);
}

.ga-map iframe {
	flex: 1;
	width: 100%;
	min-height: 420px;
	border: 0;
}

/* ---------- Forms ---------- */

.ga-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ga-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

@media (max-width: 600px) {
	.ga-form__row {
		grid-template-columns: 1fr;
	}
}

.ga-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.ga-field label {
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.ga-field input,
.ga-field textarea,
.ga-field select {
	box-sizing: border-box;
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--ga-line);
	border-radius: 0;
	background: var(--wp--preset--color--surface);
	font: inherit;
	font-size: 15px;
	color: var(--wp--preset--color--contrast);
}

.ga-field input::placeholder,
.ga-field textarea::placeholder {
	color: var(--wp--preset--color--line-strong);
	color: #B5AEA3;
}

.ga-field input:focus,
.ga-field textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--contrast);
}

.ga-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
}

.ga-form__submit {
	padding: 15px 28px;
	border: 0;
	font: inherit;
	font-size: 15px;
	cursor: pointer;
}

.ga-form__hint,
.ga-form__privacy {
	margin: 0;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

.ga-form__privacy a {
	color: var(--wp--preset--color--contrast-3);
	text-decoration: underline;
}

.ga-form__notice {
	margin: 0;
	padding: 14px 16px;
	font-size: 15px;
}

.ga-form__notice--success {
	background: #E4ECDD;
	color: #2F4A25;
}

.ga-form__notice--error {
	background: #F3E1D8;
	color: #7A3417;
}

/* ---------- Contact details ---------- */

.ga-details {
	margin: 0;
}

.ga-details > div {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--ga-line);
	font-size: 15px;
}

.ga-details dt {
	color: var(--wp--preset--color--muted);
}

.ga-details dd {
	margin: 0;
	color: var(--wp--preset--color--contrast);
}

/* ---------- Plain text pages (house rules, privacy) ---------- */

.ga-prose h2 {
	margin-top: 2em;
	font-size: 28px;
}

/* ---------- Booking (MotoPress Hotel Booking) ---------- */

.mphb-hide,
.mphb-remove-coupon,
.mphb-required-fields-tip,
.mphb-login-form-wrap,
.mphb-customer-account-login {
	display: none !important;
}

/* Calendars: the inline availability calendar and the date-field popups. */
.mphb-calendar .datepick,
.datepick-popup .datepick {
	width: 100% !important;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-family: var(--wp--preset--font-family--sans);
	color: var(--wp--preset--color--contrast);
}

.datepick-popup .datepick {
	width: auto !important;
	padding: 16px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--ga-line);
	box-shadow: var(--wp--preset--shadow--card);
}

.mphb-calendar .datepick-nav,
.datepick-popup .datepick-nav {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 12px;
	background: transparent;
}

.mphb-calendar .datepick-cmd,
.datepick-popup .datepick-cmd {
	float: none;
	width: auto;
	padding: 7px 13px;
	border: 1px solid var(--wp--preset--color--line-strong);
	background: transparent;
	font-family: var(--ga-mono);
	font-size: 12px;
	color: var(--wp--preset--color--contrast-3);
	text-decoration: none;
}

.mphb-calendar .datepick-cmd:hover,
.datepick-popup .datepick-cmd:hover {
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
	background: transparent;
}

.mphb-calendar .datepick-cmd.datepick-disabled,
.datepick-popup .datepick-cmd.datepick-disabled {
	opacity: 0.35;
}

.mphb-calendar,
.mphb-calendar .datepick,
.mphb-calendar .datepick-month-row,
.mphb-calendar .datepick-month {
	height: auto !important;
}

.mphb-calendar .datepick-month-row,
.datepick-popup .datepick-month-row {
	display: flex;
	gap: 32px;
}

.mphb-calendar .datepick-month,
.datepick-popup .datepick-month {
	flex: 1;
	width: auto !important;
	border: 0;
	background: transparent;
}

.mphb-calendar .datepick-month-header,
.datepick-popup .datepick-month-header {
	height: auto;
	margin-bottom: 10px;
	padding: 0;
	background: transparent;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 24px;
	font-weight: 400;
	text-align: left;
	color: var(--wp--preset--color--contrast);
}

.mphb-calendar .datepick-month-header select,
.datepick-popup .datepick-month-header select {
	width: auto;
	margin: 0 6px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
	color: inherit;
	appearance: none;
	cursor: pointer;
}

.mphb-calendar .datepick-month table,
.datepick-popup .datepick-month table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 5px;
	background: transparent;
}

.mphb-calendar .datepick-month th,
.datepick-popup .datepick-month th {
	padding: 4px 0;
	border: 0;
	background: transparent;
	font-family: var(--ga-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.mphb-calendar .datepick-month th a,
.datepick-popup .datepick-month th a,
.mphb-calendar .datepick-month th span,
.datepick-popup .datepick-month th span {
	color: inherit;
	background: transparent;
}

.mphb-calendar .datepick-month td,
.datepick-popup .datepick-month td {
	padding: 0;
	border: 0;
	background: transparent;
}

.mphb-calendar .datepick-month td > *,
.datepick-popup .datepick-month td > * {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0;
	border: 1px solid var(--ga-line);
	background: var(--wp--preset--color--surface);
	font-size: 15px;
	line-height: 1.1;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.datepick-popup .datepick-month td > * {
	width: 40px;
	height: 40px;
	font-size: 14px;
}

.mphb-calendar .datepick-month td > .mphb-extra-date,
.datepick-popup .datepick-month td > .datepick-other-month {
	visibility: hidden;
}

.mphb-calendar .mphb-date-cell .mphb-date-cell__price,
.mphb-calendar .mphb-price {
	display: block;
	margin-top: 3px;
	font-family: var(--ga-mono);
	font-size: 10px;
	color: var(--wp--preset--color--muted);
}

/* Booked / unavailable / past days */
.mphb-calendar .datepick-month td > .mphb-booked-date,
.mphb-calendar .datepick-month td > .mphb-past-date,
.mphb-calendar .datepick-month td > .mphb-not-available-date,
.datepick-popup .datepick-month td > .mphb-booked-date,
.datepick-popup .datepick-month td > .mphb-past-date,
.datepick-popup .datepick-month td > .datepick-unselectable {
	border-color: transparent;
	background: var(--wp--preset--color--muted-bg);
	color: #B5AEA3;
	text-decoration: line-through;
}

/* Arrival / departure day of a stay: half-open cell */
.mphb-calendar .datepick-month td > .mphb-date-check-in {
	background: linear-gradient(135deg, var(--wp--preset--color--surface) 50%, var(--wp--preset--color--muted-bg) 50%);
	text-decoration: none;
}

.mphb-calendar .datepick-month td > .mphb-date-check-out {
	background: linear-gradient(135deg, var(--wp--preset--color--muted-bg) 50%, var(--wp--preset--color--surface) 50%);
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

/* Selection */
.datepick-popup .datepick-month td > a:hover,
.mphb-calendar .datepick-month td > a:hover {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--surface);
}

.mphb-calendar .datepick-month td > .datepick-selected,
.datepick-popup .datepick-month td > .datepick-selected,
.datepick-popup .datepick-month td > .mphb-selected-date {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--on-dark) !important;
}

.datepick-popup .datepick-month td > .datepick-highlight,
.datepick-popup .datepick-month td > .mphb-hover-date {
	border-color: var(--wp--preset--color--accent-soft);
	background: var(--wp--preset--color--accent-soft);
	color: #2A1E17;
}

.datepick-popup .datepick-ctrl {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 10px;
	background: transparent;
}

.datepick-popup .datepick-ctrl .datepick-cmd {
	float: none;
}

@media (max-width: 700px) {
	.mphb-calendar .datepick-month-row {
		flex-direction: column;
		gap: 16px;
	}

	.mphb-calendar .datepick-month td > * {
		height: 42px;
		font-size: 13px;
	}
}

/* Booking form (sidebar on the booking page) */
.ga-booking-form .mphb-booking-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.ga-booking-form .mphb-booking-form > p {
	margin: 0;
}

.mphb-booking-form label,
.mphb_sc_checkout-form label,
.mphb_sc_checkout-form .mphb-adults-chooser label {
	display: block;
	margin-bottom: 7px;
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.mphb-booking-form label abbr,
.mphb_sc_checkout-form label abbr {
	border: 0;
	text-decoration: none;
	color: var(--wp--preset--color--accent);
}

.mphb-booking-form br {
	display: none;
}

/* One apartment: the guest's name is asked once, under "Adataid". */
.mphb_sc_checkout-form .mphb-guest-name-wrapper {
	display: none;
}

.mphb-booking-form input[type="text"],
.mphb_sc_checkout-form input[type="text"],
.mphb_sc_checkout-form input[type="email"],
.mphb_sc_checkout-form input[type="tel"],
.mphb_sc_checkout-form select,
.mphb_sc_checkout-form textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--ga-line);
	border-radius: 0;
	background: var(--wp--preset--color--surface);
	font: inherit;
	font-size: 15px;
	color: var(--wp--preset--color--contrast);
}

.mphb-booking-form input[type="text"]:focus,
.mphb_sc_checkout-form input:focus,
.mphb_sc_checkout-form select:focus,
.mphb_sc_checkout-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--contrast);
}

.mphb-booking-form input[type="submit"],
.mphb_sc_checkout-form input[type="submit"],
.mphb_sc_checkout-form button[type="submit"],
.mphb-booking-cancellation-form input[type="submit"] {
	width: 100%;
	padding: 16px;
	border: 0;
	border-radius: 0;
	background: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--m);
	color: var(--wp--preset--color--on-dark);
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.mphb-booking-form input.mphb-confirm-reservation,
.mphb_sc_checkout-form input[type="submit"] {
	background: var(--wp--preset--color--accent);
}

.mphb-booking-form input[type="submit"]:hover,
.mphb_sc_checkout-form input[type="submit"]:hover {
	background: var(--wp--preset--color--contrast);
}

.mphb-booking-form input.mphb-reserve-btn:hover {
	background: var(--wp--preset--color--accent);
}

.mphb-reserve-room-section {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 14px;
	background: #E4ECDD;
}

.mphb-reserve-room-section p {
	margin: 0;
	font-size: 15px;
	color: #2F4A25;
}

.mphb-errors-wrapper {
	margin: 0;
	padding: 12px 14px;
	background: #F3E1D8;
	font-size: 14px;
	color: #7A3417;
}

.mphb-errors-wrapper:empty {
	display: none;
}

/* Checkout */
.mphb_sc_checkout-wrapper,
.mphb_sc_booking_confirmation,
.mphb_sc_booking_cancellation {
	max-width: 880px;
}

.mphb_sc_checkout-form section,
.mphb_sc_checkout-form .mphb-checkout-section {
	margin: 0 0 var(--wp--preset--spacing--50);
}

.mphb_sc_checkout-form h3,
.mphb_sc_checkout-form h4,
.mphb_sc_booking_confirmation h3,
.mphb_sc_booking_confirmation h4 {
	margin: 0 0 16px;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 26px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast);
}

.mphb_sc_checkout-form h4 {
	font-size: 20px;
}

.mphb_sc_checkout-form p {
	margin: 0 0 14px;
}

.mphb-checkout-section.mphb-booking-details,
.mphb-booking-details ul {
	padding: 0;
	list-style: none;
}

.mphb_sc_checkout-form .mphb-customer-details,
.mphb_sc_checkout-form .mphb-room-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}

.mphb_sc_checkout-form .mphb-customer-details > h3,
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-note,
.mphb_sc_checkout-form .mphb-customer-details > p:has(textarea) {
	grid-column: 1 / -1;
}

@media (max-width: 600px) {
	.mphb_sc_checkout-form .mphb-customer-details {
		grid-template-columns: 1fr;
	}
}

.mphb_sc_checkout-form .mphb-services-details-list,
.mphb_sc_checkout-form .mphb_sc_checkout-services-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mphb_sc_checkout-form .mphb-services-details-list label,
.mphb_sc_checkout-form .mphb_sc_checkout-service-item label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: inherit;
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--contrast-2);
}

.mphb_sc_checkout-form label.mphb-checkbox-label,
.mphb_sc_checkout-form .mphb-terms-and-conditions-accept label {
	display: flex;
	gap: 10px;
	font-family: inherit;
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--contrast-2);
}

.mphb_sc_checkout-form .mphb-checkout-text,
.mphb-checkout-text,
.mphb-checkout-text-wrapper {
	margin: 18px 0;
	padding: 16px 18px;
	border-left: 3px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--surface);
	font-size: 15px;
}

/* Price breakdown table */
.mphb-price-breakdown {
	width: 100%;
	margin: 0 0 18px;
	border: 0;
	border-collapse: collapse;
	font-size: 15px;
}

.mphb-price-breakdown th,
.mphb-price-breakdown td {
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--ga-line);
	background: transparent;
	font-weight: 400;
	text-align: left;
	color: var(--wp--preset--color--contrast-3);
}

.mphb-price-breakdown td:last-child,
.mphb-price-breakdown th:last-child {
	text-align: right;
}

.mphb-price-breakdown .mphb-price-breakdown-group th,
.mphb-price-breakdown thead th {
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.mphb-price-breakdown tfoot th,
.mphb-price-breakdown tfoot td,
.mphb-price-breakdown .mphb-price-breakdown-total th,
.mphb-price-breakdown .mphb-price-breakdown-total td {
	border-bottom: 0;
	border-top: 1px solid var(--wp--preset--color--contrast);
	font-size: 18px;
	color: var(--wp--preset--color--contrast);
}

.mphb-price-breakdown .mphb-price-breakdown-coupon td,
.mphb-price-breakdown .mphb-price-breakdown-coupon th {
	color: var(--wp--preset--color--accent);
}

.mphb-price-breakdown-expand {
	color: var(--wp--preset--color--contrast);
}

.mphb-total-price {
	margin: 18px 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 26px;
	color: var(--wp--preset--color--contrast);
}

.mphb-total-price strong {
	font-weight: 400;
}

/* ---------- Reviews (ga-reviews plugin) ---------- */

.ga-summary {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 22px 24px;
	background: var(--wp--preset--color--surface);
}

.ga-summary__row {
	display: grid;
	grid-template-columns: 110px 1fr auto;
	align-items: center;
	gap: 14px;
}

.ga-summary__label {
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.ga-summary__bar {
	height: 4px;
	background: var(--ga-line);
}

.ga-summary__bar span {
	display: block;
	height: 100%;
	background: var(--wp--preset--color--accent);
}

.ga-summary__value {
	font-size: 14px;
	color: var(--wp--preset--color--contrast-3);
	white-space: nowrap;
}

.ga-summary__value strong {
	font-family: var(--ga-serif);
	font-size: 22px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast);
}

.ga-reviews__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ga-reviews .ga-review[hidden] {
	display: none;
}

.ga-reviews__more {
	margin-top: 18px;
	border: 1px solid var(--wp--preset--color--line-strong);
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

.ga-reviews__more:hover {
	border-color: var(--wp--preset--color--contrast);
}

/* Slider: one row, two cards visible (one on phones), arrows below */
.ga-reviews.is-slider .ga-reviews__list {
	flex-direction: row;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.ga-reviews.is-slider .ga-reviews__list::-webkit-scrollbar {
	display: none;
}

.ga-reviews.is-slider .ga-review {
	flex: 0 0 calc(50% - 8px);
	margin: 0;
	scroll-snap-align: start;
}

.ga-cols .ga-reviews.is-slider .ga-review + .ga-review {
	margin-top: 0;
}

.ga-reviews__nav {
	display: flex;
	gap: 8px;
	margin-top: 16px;
}

.ga-reviews__arrow {
	width: 44px;
	height: 44px;
	border: 1px solid var(--wp--preset--color--line-strong);
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font-size: 18px;
	cursor: pointer;
}

.ga-reviews__arrow:hover:not(:disabled) {
	border-color: var(--wp--preset--color--contrast);
}

.ga-reviews__arrow:disabled {
	opacity: 0.35;
	cursor: default;
}

.ga-home-reviews .wp-block-column:first-child > * + * {
	margin-top: 24px;
}

@media (max-width: 700px) {
	.ga-reviews.is-slider .ga-review {
		flex-basis: 88%;
	}
}

.ga-review .ga-review__source {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.ga-review__when {
	color: var(--wp--preset--color--muted);
}

.ga-review .ga-review__title {
	margin: 0;
	font-family: var(--ga-serif);
	font-size: 22px;
	line-height: 1.25;
	color: var(--wp--preset--color--contrast);
}

.ga-review blockquote.ga-review__text {
	margin: 0;
	padding: 0;
	border: 0;
}

.ga-review blockquote.ga-review__text p {
	margin: 0;
	font-size: var(--wp--preset--font-size--m);
	line-height: 1.6;
	color: var(--wp--preset--color--contrast-2);
}

.ga-reviews:not(.is-compact) blockquote.ga-review__text p {
	font-size: 17px;
}

.ga-review__negative {
	font-size: 15px;
	color: var(--wp--preset--color--contrast-3);
}

.ga-review__negative::before {
	content: "− ";
}

.ga-review__reply {
	margin-top: 4px;
	padding: 12px 14px;
	border-left: 2px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--base);
	font-size: 15px;
}

.ga-review__reply p {
	margin: 0;
}

.ga-review__reply-label {
	margin-bottom: 4px !important;
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* Review form (hidden page from the e-mail link) */
.ga-review-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 720px;
}

.ga-review-form h2 {
	margin: 0;
}

.ga-review-form__stay {
	display: flex;
	gap: 12px;
	align-items: baseline;
	margin: 0;
	font-size: 16px;
	color: var(--wp--preset--color--contrast);
}

.ga-review-form fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.ga-review-form legend {
	margin-bottom: 8px;
	padding: 0;
	font-family: var(--ga-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* Star rating: radios in reverse order so ":checked ~ label" fills to the left. */
.ga-stars {
	display: inline-flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 4px;
}

.ga-stars legend {
	flex-basis: 100%;
}

.ga-stars input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ga-stars label {
	font-size: 34px;
	line-height: 1;
	color: var(--wp--preset--color--line-strong);
	cursor: pointer;
	transition: color 0.1s ease;
}

.ga-stars--small label {
	font-size: 22px;
}

.ga-stars label:hover,
.ga-stars label:hover ~ label,
.ga-stars input:checked ~ label {
	color: var(--wp--preset--color--accent);
}

.ga-stars input:focus-visible + label {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

fieldset.ga-stars {
	display: flex;
	flex-wrap: wrap;
}

.ga-review-form__categories {
	display: grid;
	gap: 6px;
}

.ga-review-form__category {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 6px 0;
	border-bottom: 1px solid var(--ga-line);
	font-size: 15px;
	color: var(--wp--preset--color--contrast-2);
}

.ga-check {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 15px;
	color: var(--wp--preset--color--contrast-2);
}

.ga-check input {
	margin-top: 4px;
}

.ga-review-form .ga-form__submit {
	align-self: flex-start;
}

/* Card text sizes win over the generic ".is-style-card p". */
.ga-review p.ga-review__source {
	font-size: 11px;
	line-height: 1.4;
}

.ga-review p.ga-review__meta {
	font-size: 13px;
}

/* Chosen stay in the availability calendar (assets/js/booking-calendar.js). */
.mphb-calendar .datepick-month td > .ga-range-start,
.mphb-calendar .datepick-month td > .ga-range-end {
	border-color: var(--wp--preset--color--accent) !important;
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--on-dark) !important;
	text-decoration: none;
}

.mphb-calendar .datepick-month td > .ga-range {
	border-color: var(--wp--preset--color--accent-soft) !important;
	background: var(--wp--preset--color--accent-soft) !important;
	color: #2A1E17 !important;
}

.mphb-calendar .datepick-month td > .ga-range-start *,
.mphb-calendar .datepick-month td > .ga-range-end *,
.mphb-calendar .datepick-month td > .ga-range * {
	color: inherit !important;
}

.mphb-calendar.ga-calendar-pick {
	cursor: pointer;
}

.mphb-calendar .datepick-month td > .mphb-available-date:hover {
	border-color: var(--wp--preset--color--contrast);
}
