/*
 * GAT: the Astro landing look on core block markup. Plain CSS, no build: edit this file directly.
 * Tokens live in theme.json (--wp--preset--*, --wp--custom--*), with the same values as the Astro
 * landing pages and GA Booking (astro-ga-main/src/styles/theme.css; `node tools/sync-theme-json.mjs`
 * copies them over). This file adds what theme.json can't express: block styles, the header/trust bar,
 * the custom blocks and breakpoints. Use the preset variables so editor Global Styles still apply.
 * Breakpoints as in Astro: 701px (tablet), 782px, 1024px (lg), 1200px (trust bar).
 * Loaded on the front end and in the editor (add_editor_style).
 */

:root {
	--gat-radius: var(--wp--custom--radius--surface, 0.75rem);
	--gat-radius-control: var(--wp--custom--radius--control, 0.5rem);
	--gat-ease: var(--wp--custom--ease, cubic-bezier(0.2, 0, 0, 1));
	--gat-card-border: var(--wp--custom--card-border, rgb(0 0 0 / 0.12));
	--gat-gutter: 1rem;
}

/* Heading sizes step at Astro's breakpoints instead of scaling fluidly: theme.json holds the large size,
   phones get the small one (Hero/SectionHeading/ClosingVideo: text-3xl tablet:text-6xl, text-2xl md:text-3xl,
   text-3xl tablet:text-5xl). :root:root wins over the presets WordPress prints on :root. */
:root:root {
	--wp--preset--font-size--2-x-large: 1.5rem;
	--wp--preset--font-size--3-x-large: 1.875rem;
	--wp--preset--font-size--hero: 1.875rem;
}

@media (min-width: 701px) {
	:root:root {
		--wp--preset--font-size--3-x-large: 3.125rem;
		--wp--preset--font-size--hero: 3.75rem;
	}
}

@media (min-width: 782px) {
	:root:root {
		--wp--preset--font-size--2-x-large: 1.875rem;
	}
}

/* Section headings at 24px on phones: 32px lines (text-2xl). */
@media (max-width: 781px) {
	h2.wp-block-heading:not([class*="-font-size"]) {
		line-height: 2rem;
	}
}

/* Full-width blocks sit inside the root padding (set on body); these margins put them 1rem from the window edge. */
body {
	--gat-edge-left: calc(var(--wp--style--root--padding-left, 0px) * -1 + var(--gat-gutter));
	--gat-edge-right: calc(var(--wp--style--root--padding-right, 0px) * -1 + var(--gat-gutter));
}

html {
	scroll-padding-top: 5rem;
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}

p:empty {
	display: none;
}

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

/* ---------- Buttons (CtaButton.astro) ---------- */

.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	transition: filter 150ms var(--gat-ease), background-color 150ms var(--gat-ease);
}

.wp-block-button__link:hover {
	filter: brightness(1.025);
}

.wp-block-button.is-size-small .wp-block-button__link {
	min-height: 40px;
	padding: 0 1rem;
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-button.is-style-black .wp-block-button__link {
	background: var(--wp--preset--color--black);
	color: var(--wp--preset--color--white);
}

.wp-block-button.is-style-white .wp-block-button__link {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--black);
}

.wp-block-button.is-style-silk .wp-block-button__link {
	background: var(--wp--preset--color--silk);
	color: var(--wp--preset--color--white);
}

.wp-block-button.is-style-gray .wp-block-button__link {
	background: var(--wp--preset--color--gray-surface);
	color: var(--wp--preset--color--black);
}

.wp-block-button:is(.is-style-black, .is-style-white, .is-style-gray, .is-style-silk) .wp-block-button__link:hover {
	filter: brightness(0.96);
}

/* ---------- Group styles ---------- */

.wp-block-group.is-style-card {
	padding: 1rem;
	border: 1px solid var(--gat-card-border);
	border-radius: var(--gat-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--preset--shadow--card);
}

.wp-block-group.is-style-section-frame,
.wp-block-group.is-style-dark-frame {
	margin-left: var(--gat-edge-left) !important;
	margin-right: var(--gat-edge-right) !important;
	padding: 2.5rem 1.25rem;
	border-radius: var(--gat-radius);
}

.wp-block-group.is-style-section-frame.alignfull,
.wp-block-group.is-style-dark-frame.alignfull {
	width: auto;
	max-width: none;
}

.wp-block-group.is-style-dark-frame {
	background: var(--wp--preset--color--black);
	color: var(--wp--preset--color--white);
}

.wp-block-group.is-style-dark-frame :where(p) {
	color: rgb(255 255 255 / 0.7);
}

@media (min-width: 782px) {
	.wp-block-group.is-style-section-frame,
	.wp-block-group.is-style-dark-frame {
		padding: 4rem 3rem;
	}
}

@media (max-width: 700px) {
	:root {
		--gat-gutter: 0px;
	}
}

/* ---------- Sections and headings (SectionHeading.astro) ---------- */

.gat-section {
	padding-block: 1.5rem;
}

.gat-section-heading {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.gat-section-heading > * {
	margin-block: 0 !important;
}

.gat-kicker,
.wp-block-heading.is-style-kicker {
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.5rem;
}

.gat-lead-muted {
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--small);
}

@media (min-width: 782px) {
	.gat-section {
		padding-block: 4rem;
	}

	.gat-section-heading {
		margin-bottom: 2rem;
	}

	.gat-lead-muted {
		font-size: var(--wp--preset--font-size--large);
		line-height: 1.75rem;
	}
}

/* ---------- Trust bar (ReassuranceBar.astro) ---------- */

.gat-trust-bar {
	gap: 1.5rem;
	padding: 0.5rem 1rem;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.25rem;
}

.gat-trust-bar__main {
	flex: 1 1 auto;
	gap: 0.75rem;
}

.gat-trust-bar__points {
	display: none !important;
}

.gat-customers {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-weight: 600;
	white-space: nowrap;
}

.gat-laurel {
	width: auto;
	height: 18px;
	color: currentColor;
}

.gat-points {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gat-points li {
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.gat-check {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
}

@media (min-width: 701px) {
	.gat-trust-bar {
		padding-inline: 2rem;
	}

	.gat-trust-bar .gat-customers span,
	.gat-trust-bar .gat-points {
		color: rgb(255 255 255 / 0.85);
	}
}

@media (min-width: 1200px) {
	.gat-trust-bar__main {
		flex: 0 1 auto;
		gap: 1.5rem;
	}

	.gat-trust-bar__points {
		display: flex !important;
		flex-wrap: nowrap;
		white-space: nowrap;
	}
}

/* Trustpilot badge (TrustpilotBadge.astro) and widgets */
.gat-tp-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: inherit;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.gat-tp-badge img {
	width: auto;
	height: 20px;
	transform: translateY(-2px);
}

.gat-tp-badge:hover {
	opacity: 0.9;
}

.gat-tp.is-dark .gat-tp-badge strong {
	display: none;
}

.gat-tp.is-light .gat-tp-badge {
	gap: 0.5rem;
	color: var(--wp--preset--color--silk);
	font-size: 1rem;
}

.gat-tp.is-light .gat-tp-badge img {
	height: 24px;
}

.gat-tp.aligncenter {
	display: flex;
	justify-content: center;
}

.gat-tp.is-micro .trustpilot-widget {
	min-width: 12rem;
	min-height: 20px;
}

.gat-tp.is-mini .trustpilot-widget {
	min-height: 150px;
}

@media (min-width: 1200px) {
	.gat-tp.is-dark .gat-tp-badge strong {
		display: inline;
	}
}

/* ---------- Header (Header.astro + Navbar.astro) ---------- */

.gat-trust-bar-part {
	position: relative;
	z-index: 51;
}

.gat-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: linear-gradient(to bottom, var(--wp--preset--color--silk) var(--gat-radius), var(--wp--preset--color--white) var(--gat-radius));
	transition: transform 240ms var(--gat-ease);
}

.admin-bar .gat-site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.gat-site-header[data-hidden='true'] {
	transform: translateY(-100%);
}

.gat-site-header[data-pinned='true'] {
	box-shadow: var(--wp--preset--shadow--header);
}

.gat-header {
	height: var(--wp--custom--header-height, 72px);
	padding-inline: 1rem;
	border-radius: var(--gat-radius) var(--gat-radius) 0 0;
	background: var(--wp--preset--color--white);
}

.gat-site-header[data-pinned='true'] .gat-header {
	border-radius: 0;
}

.gat-header__logo img {
	width: auto !important;
	max-height: 24px;
}

/* Logos from Settings → GAT: the light/gold version only on phones over the hero (below). */
.gat-header__logo .gat-logo--hero {
	display: none;
}

.gat-header__end {
	gap: 1.5rem;
}

.gat-header__nav {
	display: none;
}

.gat-menu__list {
	display: flex;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gat-menu.is-vertical .gat-menu__list {
	flex-direction: column;
	gap: 0.5rem;
}

.gat-menu a {
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.5rem;
	text-decoration: none;
}

.gat-menu a:hover,
.gat-menu .current-menu-item:not(.menu-item-type-custom) > a {
	color: var(--wp--preset--color--black);
}

.gat-menu__title {
	margin: 0 0 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.5rem;
}

@media (min-width: 782px) {
	.gat-header {
		padding-inline: 2rem;
	}
}

@media (min-width: 1024px) {
	.gat-header__nav {
		display: block;
	}
}

/* Landing on mobile: the header sits over the hero, logo in white (Astro heroOverlay). */
@media (max-width: 700px) {
	.gat-site-header.is-overlay {
		position: absolute;
		top: auto;
		inset-inline: 0;
		background: transparent;
	}

	.admin-bar .gat-site-header.is-overlay {
		top: auto;
	}

	.gat-site-header.is-overlay .gat-header {
		background: transparent;
	}

	/* No hero logo set: the header logo in white. */
	.gat-site-header.is-overlay .gat-header__logo:not(.has-hero-logo) img {
		filter: brightness(0) invert(1);
	}

	.gat-site-header.is-overlay:not([data-pinned='true']) .gat-header__logo.has-hero-logo .gat-logo--default {
		display: none;
	}

	.gat-site-header.is-overlay:not([data-pinned='true']) .gat-header__logo.has-hero-logo .gat-logo--hero {
		display: block;
		max-height: 22px;
	}

	.gat-site-header.is-overlay[data-pinned='true'] {
		position: fixed;
		top: 0;
		background: var(--wp--preset--color--white);
	}

	.gat-site-header.is-overlay[data-pinned='true'] .gat-header {
		background: var(--wp--preset--color--white);
	}

	.gat-site-header.is-overlay[data-pinned='true'] .gat-header__logo img {
		filter: none;
	}
}

/* ---------- Cover styles: hero and closing (Hero.astro, HeroVideoFrame.astro, ClosingVideo.astro) ---------- */

.gat-landing > .wp-block-post-content > * {
	margin-block-start: 0;
}

.wp-block-cover.is-style-hero,
.wp-block-cover.is-style-closing {
	width: auto;
	max-width: none;
	margin-left: var(--gat-edge-left) !important;
	margin-right: var(--gat-edge-right) !important;
	overflow: hidden;
	border-radius: var(--gat-radius);
	color: var(--wp--preset--color--white);
}

.wp-block-cover.is-style-hero .wp-block-cover__inner-container {
	max-width: 42rem;
	margin-inline: auto;
	padding-bottom: 6rem;
	text-align: center;
}

.wp-block-cover.is-style-hero h1 {
	margin-bottom: 1rem;
	line-height: 1.2;
	text-wrap: balance;
}

/* 60px on 64px lines from tablet (text-6xl); 30px on 36px lines on phones (text-3xl). */
@media (min-width: 701px) {
	.wp-block-cover.is-style-hero h1 {
		line-height: 1.07;
	}
}

.wp-block-cover.is-style-hero .gat-lead,
.wp-block-cover.is-style-hero p {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
}

.wp-block-cover.is-style-closing .wp-block-cover__inner-container {
	width: 100%;
	max-width: 75rem;
	margin-inline: auto;
	padding-bottom: 2rem;
}

.wp-block-cover.is-style-closing h2 {
	max-width: 42rem;
	line-height: 1.2;
}

.wp-block-cover.is-style-closing .wp-block-buttons {
	margin-top: 2rem;
}

.gat-landing .wp-block-cover.is-style-closing {
	margin-bottom: 2rem;
}

@media (min-width: 701px) {
	.wp-block-cover.is-style-hero .gat-lead,
	.wp-block-cover.is-style-hero p {
		font-size: var(--wp--preset--font-size--large);
		line-height: 1.75rem;
	}

	.wp-block-cover.is-style-closing .wp-block-cover__inner-container {
		padding-bottom: 3.5rem;
	}
}

@media (max-width: 700px) {
	.wp-block-cover.is-style-hero {
		min-height: calc(150vw - 76px) !important;
		border-radius: var(--gat-radius) var(--gat-radius) 0 0;
		background: var(--wp--preset--color--silk);
	}

	.wp-block-cover.is-style-hero .wp-block-cover__background {
		background: linear-gradient(180deg, rgb(0 0 0 / 0.04) 14%, rgb(0 0 0 / 0.2) 46%, rgb(0 0 0 / 0.58) 72%, rgb(0 0 0 / 0.9) 90%, #000 100%) !important;
	}

	.wp-block-cover.is-style-hero .wp-block-cover__inner-container {
		padding-bottom: 2rem;
	}

	.wp-block-cover.is-style-closing {
		min-height: calc(150vw - 36px) !important;
	}

	/* The hero sits right under the silk trust bar; its rounded top corners show silk. */
	.gat-landing .wp-block-post-content > .wp-block-cover.is-style-hero:first-child {
		box-shadow: 0 calc(-1 * var(--gat-radius)) 0 0 var(--wp--preset--color--silk);
	}
}

/* Booking search card overlapping the hero (GA Booking draws the card). */
.gat-finder {
	position: relative;
	z-index: 4;
}

/* ---------- Testimonials, scrolling (Testimonials.astro) ---------- */

.gat-testimonials {
	overflow: hidden;
}

.gat-testimonials > * + * {
	margin-block-start: 1.5rem;
}

.gat-marquee {
	overflow: hidden;
	max-width: none !important;
}

.gat-marquee__track {
	display: flex;
	gap: 0.75rem;
	width: max-content;
}

/* Only while assets/js/theme.js animates it (on screen, tab visible). */
.gat-marquee__track.is-running {
	will-change: transform;
}

.gat-marquee__card {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	box-sizing: border-box;
	width: 17.875rem;
	min-height: 13.6rem;
	padding: 2.5rem;
	border-radius: var(--gat-radius);
	background: var(--wp--preset--color--gray-surface);
	text-align: center;
}

.gat-stars {
	display: inline-flex;
	gap: 2px;
	justify-content: center;
}

.gat-stars svg {
	width: 1.25rem;
	height: 1.25rem;
}

.gat-quote {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: center;
	margin: 1.25rem 0;
	padding: 0;
	border: 0;
	font-size: 1rem;
	font-style: normal;
	line-height: 1.5rem;
}

.gat-quote__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0.25rem 0.75rem;
	margin: 0;
	color: #6b6b6b;
	font-size: var(--wp--preset--font-size--small);
}

.gat-quote__date {
	color: rgb(0 0 0 / 0.6);
	text-decoration: none;
	white-space: nowrap;
}

a.gat-quote__date:hover {
	text-decoration: underline;
}

@media (min-width: 782px) {
	.gat-marquee__track {
		gap: 1rem;
	}

	.gat-marquee__card {
		width: 21.25rem;
		min-height: 14.4rem;
	}

	.gat-quote {
		font-size: 1.125rem;
		line-height: 1.75rem;
	}
}

/* ---------- Testimonials, featured (FeaturedQuote.astro) ---------- */

.gat-featured {
	margin-top: 3rem;
	text-align: center;
}

.gat-stories {
	position: relative;
	max-width: 50rem;
	margin-inline: auto;
}

.gat-stories__controls {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin-bottom: 2rem;
}

.gat-stories__bars {
	display: flex;
	flex: 1 1 auto;
	gap: 0.5rem;
}

.gat-stories__bars button {
	display: flex;
	flex: 1 1 0;
	align-items: center;
	min-width: 0;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.gat-stories__bars button > span {
	display: block;
	width: 100%;
	height: 4px;
	overflow: hidden;
	border-radius: 999px;
	background: rgb(0 0 0 / 0.15);
}

.gat-stories__bars button > span > span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--wp--preset--color--gold);
	transform: scaleX(0);
	transform-origin: left;
}

.gat-stories__pause {
	flex-shrink: 0;
	padding: 0.25rem 0.5rem;
	border: 0;
	border-radius: var(--gat-radius-control);
	background: transparent;
	color: var(--wp--preset--color--gray);
	font: inherit;
	font-size: var(--wp--preset--font-size--xs);
	cursor: pointer;
}

.gat-stories__slides {
	display: grid;
}

.gat-stories__slide {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	align-items: center;
	grid-area: 1 / 1;
	margin: 0;
}

.gat-stories__slide.is-hidden {
	visibility: hidden;
}

.gat-stories__slide blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 1.5rem;
	font-style: normal;
	line-height: 2rem;
}

.gat-stories__slide figcaption {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.75rem;
	justify-content: center;
	color: #6b6b6b;
}

.gat-featured .wp-block-buttons {
	margin-top: 1.75rem;
}

@media (min-width: 782px) {
	.gat-featured {
		margin-top: 5rem;
	}

	.gat-stories__slide blockquote {
		font-size: 1.875rem;
		line-height: 2.5rem;
	}
}

/* Card layout (TestimonialStories.astro variant="card", a Trustpilot Mini TrustBox is set):
   bars on top, widget left (272px) and the quote right; stacked and centred on phones. */
.gat-stories.is-card .gat-stories__pause {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.gat-stories.is-card .gat-stories__pause:focus-visible {
	top: 0;
	right: 0;
	z-index: 10;
	width: auto;
	height: auto;
	padding: 0.5rem 1rem;
	clip-path: none;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--black);
}

.gat-stories__body {
	display: grid;
	gap: 2rem;
}

.gat-stories__tp {
	width: 15rem;
	max-width: 100%;
	margin-inline: auto;
	transform: translateY(-0.25rem);
}

/* The TrustBox is drawn at 150%: reserve the scaled height. */
.gat-stories__tp-box {
	height: 150px;
}

.gat-stories__tp .trustpilot-widget {
	width: 66.6667%;
	min-height: 100px;
	transform: scale(1.5);
	transform-origin: top left;
}

.gat-stories.is-card .gat-stories__slide {
	align-items: stretch;
	justify-content: flex-start;
	text-align: center;
}

.gat-stories.is-card .gat-stories__slide blockquote {
	width: 100%;
	font-weight: 400;
	letter-spacing: normal;
	text-wrap: wrap;
}

.gat-stories.is-card .gat-stories__slide figcaption {
	align-items: baseline;
	color: var(--wp--preset--color--black);
	font-size: var(--wp--preset--font-size--medium);
}

.gat-stories__name {
	border-radius: 0.125rem;
	color: inherit;
	text-decoration: underline;
	text-decoration-color: rgb(0 0 0 / 0.3);
	text-underline-offset: 4px;
}

.gat-stories__name:hover {
	text-decoration-color: currentColor;
}

.gat-stories__date {
	color: rgb(0 0 0 / 0.6);
	text-decoration: none;
	white-space: nowrap;
}

@media (max-width: 781px) {
	.gat-stories__tp .trustpilot-widget iframe {
		height: 100px !important;
	}
}

@media (min-width: 782px) {
	.gat-stories__body {
		grid-template-columns: 272px minmax(0, 1fr);
	}

	.gat-stories__tp {
		width: auto;
		margin-inline: 0;
		padding-right: 2rem;
	}

	.gat-stories__tp-box {
		height: 225px;
	}

	.gat-stories__tp .trustpilot-widget {
		min-height: 150px;
	}

	.gat-stories.is-card .gat-stories__slide {
		text-align: left;
	}

	.gat-stories.is-card .gat-stories__slide figcaption {
		justify-content: flex-start;
		font-size: var(--wp--preset--font-size--large);
	}
}

/* ---------- How it works (HowItWorks.astro) ---------- */

.gat-steps {
	gap: 1rem !important;
}

/* Media edge to edge at the top of the card (the card clips its corners); text padded below. */
.gat-step {
	--gat-step-pad: 1.25rem;
	height: 100%;
	padding: 0 0 var(--gat-step-pad) !important;
	overflow: hidden;
}

@media (min-width: 1024px) {
	.gat-step {
		--gat-step-pad: 1.5rem;
	}
}

.gat-step > * {
	margin-block: 0;
}

.gat-step .gat-step__media,
.gat-step .wp-block-video {
	margin: 0 0 var(--gat-step-pad);
	border-radius: 0;
}

.gat-step .gat-step__media img,
.gat-step .wp-block-video video {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.gat-step h3 {
	margin: 0 var(--gat-step-pad);
}

.gat-step p {
	margin: 0.5rem var(--gat-step-pad) 0;
	font-size: var(--wp--preset--font-size--small);
}

/* "Step 1" label above the heading (HowItWorks.astro stepLabel). */
.gat-step p.gat-step__label {
	margin: 0 var(--gat-step-pad) 0.5rem;
	font-weight: 500;
}

/* ---------- Example prices (PaidPricesPhotos.astro) ---------- */

.gat-prices__text {
	text-align: center;
}

.gat-prices__text .wp-block-buttons {
	justify-content: center;
}

.gat-prices__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 0.75rem !important;
}

.gat-price > * {
	margin-block: 0;
}

.gat-price figure {
	margin-bottom: 0.75rem;
}

.gat-price__label {
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--xs);
}

.gat-price__value {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
}

@media (min-width: 782px) {
	.gat-prices__text {
		text-align: left;
	}

	.gat-prices__text .wp-block-buttons {
		justify-content: flex-start;
	}

	.gat-prices__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 1rem !important;
	}
}

/* ---------- Gold price (GoldDesk.astro + GoldPriceChart.astro) ---------- */

.gat-desk {
	margin-block: 1.5rem;
}

.gat-desk h2 {
	color: var(--wp--preset--color--white);
}

.gat-desk__body {
	font-size: var(--wp--preset--font-size--small);
}

.gat-chart {
	margin: 0;
}

.gat-chart svg {
	display: block;
	width: 100%;
	height: auto;
}

.gat-chart__label {
	fill: var(--wp--preset--color--gray);
	font-family: inherit;
	font-size: 0.875rem;
}

.gat-chart__bar {
	transform-box: fill-box;
	transform-origin: center bottom;
}

.gat-chart figcaption {
	margin-top: 0.75rem;
	color: var(--wp--preset--color--gray);
	font-size: 12px;
	line-height: 16px;
	text-align: center;
}

@media (min-width: 782px) {
	.gat-desk {
		margin-block: 4rem;
	}

	.gat-desk__body {
		font-size: var(--wp--preset--font-size--large);
		line-height: 1.75rem;
	}
}

/* ---------- Price calculation (PriceCalculation.astro) ---------- */

.gat-calc .gat-section-heading {
	margin-bottom: 2rem;
}

@media (min-width: 782px) {
	.gat-calc .gat-section-heading {
		margin-bottom: 3rem;
	}
}

.gat-calc__steps {
	gap: 2rem !important;
}

.gat-calc__step > * {
	margin-block: 0;
}

.gat-calc__number {
	margin-bottom: 0.75rem !important;
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

.gat-calc__step h3 {
	font-size: var(--wp--preset--font-size--x-large);
}

.gat-calc__step h3 + p {
	margin-top: 0.5rem !important;
	font-size: var(--wp--preset--font-size--small);
}

/* ---------- FAQ (Faq.astro) ---------- */

.gat-faq {
	display: flex;
	flex-direction: column;
}

.gat-faq__row {
	padding-block: 1rem;
}

.gat-faq__row + .gat-faq__row {
	border-top: 1px solid var(--wp--preset--color--line);
}

.gat-faq__row summary {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.75rem;
	cursor: pointer;
	list-style: none;
}

.gat-faq__row summary::-webkit-details-marker {
	display: none;
}

.gat-faq__row summary span {
	flex: 1 1 0;
	min-width: 0;
}

.gat-faq__row summary svg {
	flex-shrink: 0;
	width: 1.5rem;
	height: 1.5rem;
	color: var(--wp--preset--color--gray);
	transition: transform 240ms var(--gat-ease), color 150ms var(--gat-ease);
}

.gat-faq__row[data-expanded='true'] summary svg,
.gat-faq__row:not([data-expanded])[open] summary svg {
	color: var(--wp--preset--color--black);
	transform: rotate(180deg);
}

.gat-faq__answer {
	padding: 0.5rem 3rem 0 0;
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--small);
}

.gat-faq__answer > * {
	margin-block: 0;
}

.gat-faq__answer > * + * {
	margin-top: 0.75rem;
}

.gat-faq__answer a {
	color: var(--wp--preset--color--black);
	text-underline-offset: 3px;
}

@media (min-width: 782px) {
	.gat-faq__row {
		padding-block: 1.25rem;
	}
}

/* Core Details with the "Accordion" style looks the same as the FAQ list. */
.wp-block-details.is-style-accordion summary {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	cursor: pointer;
}

.wp-block-details.is-style-accordion > :not(summary) {
	color: var(--wp--preset--color--gray);
}

/* ---------- Video testimonials ---------- */

.gat-video {
	margin: 0;
	overflow: hidden;
	border-radius: var(--gat-radius);
	background: var(--wp--preset--color--black);
}

.gat-video video {
	display: block;
	width: 100%;
	aspect-ratio: 9 / 16;
	object-fit: cover;
}

.gat-video.is-embed iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

.gat-video-grid {
	gap: 1.5rem 1rem !important;
}

.gat-video-grid > li > * {
	margin-block: 0 0.5rem;
}

/* ---------- Footer (Footer.astro, white) ---------- */

.gat-footer {
	padding: 3rem 1.25rem 1.5rem;
}

.gat-footer > * {
	margin-block: 0;
}

.gat-footer__head {
	gap: 1.5rem;
}

.gat-footer__logo img {
	width: auto !important;
	max-height: 22px;
}

.gat-footer__trust {
	gap: 1.5rem;
	width: 100%;
	color: var(--wp--preset--color--silk);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
}

.gat-footer__trust .gat-customers {
	font-weight: 500;
}

.gat-footer__trust .gat-laurel {
	height: 22px;
}

.gat-footer__grid {
	display: grid;
	gap: 2.5rem;
	margin-top: 3rem !important;
}

.gat-footer__grid > *,
.gat-footer__company > *,
.gat-footer__address > * {
	margin-block: 0;
}

.gat-footer__title,
.gat-menu__title {
	margin: 0 0 1rem;
	color: var(--wp--preset--color--black);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.5rem;
}

.gat-footer__address {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	font-style: normal;
}

.gat-footer :is(.gat-footer__address, .gat-footer__top-link, .gat-menu) {
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.5rem;
}

.gat-footer a {
	color: var(--wp--preset--color--gray);
	font-size: inherit;
	font-weight: 400;
	text-decoration: none;
	transition: color 150ms var(--gat-ease);
}

.gat-footer a:hover {
	color: var(--wp--preset--color--black);
}

.gat-footer__top-link {
	margin-top: 1.5rem !important;
}

.gat-footer__menus {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

.gat-footer__menus > * {
	margin: 0 !important;
}

.gat-footer .gat-menu.is-vertical .gat-menu__list {
	gap: 0.75rem;
}

.gat-footer__legal {
	max-width: 48rem;
	margin-top: 1.5rem !important;
	color: var(--wp--preset--color--gray);
	font-size: 0.75rem;
	line-height: 1.125rem;
}

.gat-footer__copyright {
	margin-top: 1.5rem !important;
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.25rem;
}

@media (min-width: 640px) {
	.gat-footer__menus {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 701px) {
	.gat-footer__logo img {
		max-height: 24px;
	}
}

@media (min-width: 782px) {
	.gat-footer {
		padding: 4rem 2rem;
	}

	.gat-footer__trust {
		width: auto;
		margin-left: auto;
	}

	.gat-footer__grid {
		gap: 2rem;
	}

	.gat-footer__menus {
		gap: 2rem;
	}
}

@media (min-width: 1024px) {
	.gat-footer__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.gat-footer__menus {
		grid-column: span 3;
	}

	.gat-footer__address {
		min-height: 3.75rem;
	}

	.gat-footer__top-link {
		margin-top: 3rem !important;
	}
}

/* ---------- Generic pages ---------- */

.gat-main:not(.gat-landing) {
	padding-block: 2.5rem 4rem;
}

/* ---------- Customer service (Asiakaspalvelu design: patterns/customer-service.php, template page-customer-service) ---------- */

.gat-service {
	--gat-service-ink: #bd8728;
	--gat-service-radius: 1rem;
	--gat-service-shadow: 29px 29px 30px rgb(12 12 13 / 0.05);
}

.gat-service .wp-block-post-content > * {
	margin-block: 0;
}

.gat-service .wp-block-post-content > * + * {
	margin-top: 3.5rem;
}

.gat-service-intro .wp-block-breadcrumbs {
	margin-bottom: 1.25rem;
	font-size: var(--wp--preset--font-size--xs);
}

.gat-service-intro .wp-block-breadcrumbs a {
	color: var(--gat-service-ink);
	text-decoration: none;
}

.gat-service-intro h1 {
	margin: 0 0 1.5rem;
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	font-weight: 600;
	line-height: 1.1;
}

.gat-service-lead {
	margin: 0;
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--medium);
}

.gat-service-popular h2 {
	margin: 0 0 1rem;
	font-size: var(--wp--preset--font-size--large);
}

.gat-service-pills {
	gap: 1rem;
}

.gat-service-pills .wp-block-button__link {
	min-height: 2.4rem;
	padding: 0.625rem 1.25rem;
	border-radius: 100px;
	background: var(--wp--preset--color--sand);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	line-height: 1.1;
}

/* Email panel with the example conversation. */
/* "Rounded section" style: as wide as the home page hero cover, 1rem from the window edge. */
.gat-service-email {
	background: linear-gradient(#004b45, var(--wp--preset--color--silk));
}

.gat-service-email > .wp-block-columns {
	gap: 2.5rem 5rem !important;
	margin: 0;
}

.gat-service-email h2 {
	margin: 0;
	color: rgb(255 255 255 / 0.6);
	font-size: clamp(1.5rem, 4vw, 2.5rem);
	font-weight: 300;
	line-height: 1.15;
	overflow-wrap: anywhere;
}

.gat-service-email h2 a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

.gat-service-email h2 a:hover {
	color: var(--wp--preset--color--white);
}

.gat-service-chat {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.gat-service-chat > .gat-service-message {
	align-items: center;
	gap: 0.75rem;
	margin: 0;
}

.gat-service-message > .gat-service-avatar {
	flex: 0 0 3.25rem;
	width: 3.25rem;
	margin: 0;
}

.gat-service-avatar img {
	display: block;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	object-fit: cover;
}

.gat-service-message > .gat-service-bubble {
	width: 22rem;
	max-width: calc(100% - 4rem);
	margin: 0;
	padding: 1rem;
	border-radius: 0.75rem;
	background: #004b45;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.4;
}

.gat-service-bubble > * {
	margin: 0;
}

.gat-service-bubble .gat-service-bubble__name {
	margin-bottom: 0.2rem;
	color: rgb(255 255 255 / 0.6);
	font-weight: 300;
	line-height: 1.5;
}

/* The messages come in one by one when the panel scrolls into view (class from assets/js/theme.js). */
.gat-service-chat.is-animated > .gat-service-message {
	opacity: 0;
	translate: 0 1.25rem;
}

.gat-service-chat.is-playing > .gat-service-message {
	animation: gat-service-message-in 350ms ease-out both;
}

.gat-service-chat.is-playing > .gat-service-message:nth-child(2) {
	animation-delay: 400ms;
}

.gat-service-chat.is-playing > .gat-service-message:nth-child(3) {
	animation-delay: 800ms;
}

.gat-service-chat.is-playing > .gat-service-message:nth-child(4) {
	animation-delay: 1200ms;
}

@keyframes gat-service-message-in {
	to {
		opacity: 1;
		translate: 0 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gat-service-chat.is-animated > .gat-service-message {
		opacity: 1;
		translate: none;
		animation: none;
	}
}

@media (max-width: 781px) {
	.gat-service-message > .gat-service-bubble {
		font-size: var(--wp--preset--font-size--small);
	}
}

/* Contact and media cards: text on the left, photo on the right. */
.gat-service-card {
	overflow: hidden;
	border-radius: var(--gat-service-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--gat-service-shadow);
}

.gat-service-card.is-dark {
	box-shadow: none;
}

.gat-service-card > .wp-block-columns {
	gap: 0 !important;
	margin: 0;
}

.gat-service-card__copy {
	padding: 2.5rem 1.5rem;
}

.gat-service-card__copy > * {
	margin-block: 0;
}

.gat-service-card__copy h2 {
	margin-bottom: 1rem;
	font-size: 1.5rem;
}

.gat-service-card.is-dark .gat-service-card__copy h2 {
	font-weight: 400;
}

.gat-service-card__copy p {
	font-size: var(--wp--preset--font-size--medium);
}

.gat-service-card__copy .wp-block-buttons {
	margin-top: 2rem;
}

.gat-service-contact {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.gat-service-card__copy .gat-service-contact {
	margin-top: 1.25rem;
}

.gat-service-card__copy .gat-service-contact.is-email {
	margin-top: 2rem;
}

.gat-service-contact::before {
	content: '';
	flex: 0 0 1.5rem;
	width: 1.5rem;
	height: 1.5rem;
	background: currentColor;
	mask: var(--gat-service-icon) center / contain no-repeat;
}

.gat-service-contact.is-email {
	--gat-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm320-280L160-640v400h640v-400L480-440Zm0-80 320-200H160l320 200Z'/%3E%3C/svg%3E");
}

.gat-service-contact.is-phone {
	--gat-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M798-120q-125 0-247-54.5T329-329Q229-429 174.5-551T120-798q0-18 12-30t30-12h162q14 0 25 9.5t13 22.5l26 140q2 16-1 27t-11 19l-97 98q20 37 47.5 71.5T387-386q31 31 65 57.5t72 48.5l94-94q9-9 23.5-13.5T670-390l138 28q14 4 23 14.5t9 23.5v162q0 18-12 30t-30 12Z'/%3E%3C/svg%3E");
}

.gat-service-contact a {
	color: inherit;
	text-underline-offset: 3px;
	overflow-wrap: anywhere;
}

.gat-service-card__media {
	align-self: stretch;
}

.gat-service-card__photo {
	height: 100%;
	margin: 0;
}

.gat-service-card__photo img {
	width: 100%;
	height: 100%;
	aspect-ratio: 697 / 535;
	object-fit: cover;
}

/* FAQ panel: the FAQ list block (the site's FAQ posts) on sand. */
.gat-service-faq {
	padding: 3rem 1.5rem;
	border-radius: var(--gat-service-radius);
}

.gat-service-faq h2 {
	margin: 0 0 1rem;
	font-size: 1.5rem;
}

.gat-faq__row {
	scroll-margin-top: 6rem;
}

/* Contact form panel (Gravity Forms). */
/* Full width with the "Rounded section" style, like the email panel. */
.gat-service-form h2 {
	margin: 0 0 1.5rem;
	font-size: 1.5rem;
}

.gat-service-form .gform_wrapper :is(.gfield_label, legend, .gfield_consent_label) {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
}

.gat-service-form .gform_wrapper :is(input:not([type='checkbox'], [type='radio'], [type='submit'], [type='button']), select, textarea) {
	width: 100%;
	min-height: 3.25rem;
	padding: 0.75rem;
	border: 0;
	border-radius: 4px;
	background: var(--wp--preset--color--white);
	box-shadow: 29px 29px 30px rgb(12 12 13 / 0.02);
	font: inherit;
}

.gat-service-form .gform_wrapper textarea {
	min-height: 9rem;
	resize: vertical;
}

.gat-service-form .gform_wrapper :is(input, select, textarea):focus-visible {
	outline: 2px solid #95621a;
	outline-offset: 3px;
}

.gat-service-form .gform_wrapper input[type='checkbox'] {
	width: 1.5rem;
	height: 1.5rem;
	accent-color: var(--gat-service-ink);
}

.gat-service-form .gform_wrapper .gform_footer :is(input[type='submit'], button) {
	min-height: 3.5rem;
	padding: 0.5rem 1.5rem;
	border: 0;
	border-radius: var(--gat-radius-control);
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--black);
	font-size: var(--wp--preset--font-size--medium);
	cursor: pointer;
}

@media (min-width: 782px) {
	.gat-service-intro {
		padding-top: 1.5rem;
	}

	.gat-service-card__copy {
		padding: 2rem;
	}

	.gat-service-card > .wp-block-columns {
		min-height: 27.5rem;
	}

	.gat-service-faq {
		padding: 5rem clamp(2.5rem, 11.12vw, 10rem) 6rem;
	}

	.gat-service-intro h1 {
		margin-bottom: 2rem;
	}

	.gat-service-lead {
		font-size: var(--wp--preset--font-size--large);
	}

	.gat-service-card__copy h2,
	.gat-service-faq h2,
	.gat-service-form h2 {
		font-size: var(--wp--preset--font-size--2x-large);
	}

}

@media (min-width: 1051px) {
	.gat-service-card__copy {
		padding: 0 5rem 0 3.25rem;
	}

	.gat-service-card > .wp-block-columns {
		min-height: 33.4rem;
	}
}

/* ---------- Editor only ---------- */

.gat-editor-dark {
	padding: 1rem;
	border-radius: var(--gat-radius);
	background: #000;
}

.gat-editor-static [data-gat-marquee] {
	transform: none !important;
}

.editor-styles-wrapper .gat-marquee {
	overflow-x: auto;
}

/* ---------- 404 (client/404.php: full gold page, the host at the bottom left) ---------- */

.gat-404 {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	min-height: 100dvh;
	margin-inline: calc(var(--wp--style--root--padding-left, 0px) * -1) calc(var(--wp--style--root--padding-right, 0px) * -1);
	overflow: hidden;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--black);
	text-align: center;
}

.gat-404 .gat-404__text {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	max-width: 32rem;
	margin: 0 auto;
	padding: 3rem 1rem 2rem;
}

.gat-404 .gat-404__text > * {
	margin: 0 0 0.75rem;
}

.gat-404 h1 {
	font-size: 2.25rem;
	font-weight: 600;
	line-height: 2.5rem;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.gat-404 .gat-404__text p {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.375;
	text-wrap: balance;
}

.gat-404 .wp-block-buttons {
	justify-content: center;
	margin-top: 1.5rem;
}

.gat-404__button .wp-block-button__link {
	padding: 0.75rem 2rem;
	border-radius: var(--gat-radius-control);
	background: var(--wp--preset--color--black);
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.75rem;
	white-space: nowrap;
	transition: color 0.5s var(--gat-ease);
}

.gat-404__button .wp-block-button__link::after {
	content: " →";
	display: inline-block;
	margin-right: -0.25rem;
	padding-left: 0.25rem;
}

.gat-404 .gat-404__image {
	width: 100%;
	margin: 0;
	padding-inline: 1rem;
}

.gat-404 .gat-404__image img {
	display: block;
	width: 100%;
	height: auto;
}

@media (hover: hover) {
	.gat-404__button .wp-block-button__link:hover {
		color: var(--wp--preset--color--gold);
	}
}

@media (min-width: 768px) {
	.gat-404 {
		justify-content: center;
	}

	.gat-404 .gat-404__text > * {
		margin-bottom: 1rem;
	}

	.gat-404 h1 {
		font-size: 3rem;
		line-height: 1;
	}

	.gat-404 .gat-404__text p {
		font-size: var(--wp--preset--font-size--large);
		line-height: 1.75rem;
	}

	.gat-404__button .wp-block-button__link {
		padding: 0.875rem 2.5rem;
		font-size: var(--wp--preset--font-size--x-large);
	}

	/* The host stands at the bottom, left of the text. */
	.gat-404 .gat-404__image {
		position: absolute;
		bottom: 0;
		left: 50%;
		max-width: 48rem;
		margin-left: -32rem;
		padding: 0;
		transform: translateX(-50%);
	}
}

@media (min-width: 1024px) {
	.gat-404 h1 {
		font-size: 4.5rem;
	}
}

@media (min-width: 1280px) {
	.gat-404 .gat-404__text p {
		font-size: var(--wp--preset--font-size--x-large);
	}

	.gat-404 .gat-404__image {
		margin-left: -40rem;
	}
}

/* Maintenance template: the page's own text (post content) in the 404 layout. */
.gat-404 .gat-404__text .wp-block-post-content > * {
	margin: 0 0 0.75rem;
}

.gat-404 .gat-404__text .wp-block-post-content > :last-child {
	margin-bottom: 0;
}

@media (min-width: 768px) {
	.gat-404 .gat-404__text .wp-block-post-content > * {
		margin-bottom: 1rem;
	}

	.gat-404 .gat-404__text .wp-block-post-content > :last-child {
		margin-bottom: 0;
	}
}

/* ---------- GA Locations city pages (inc/locations.php) ---------- */
/* Matches the city pages on the client theme: 26 facts, the plugin's city.css (reviews, map, intro, tags). */

/* Facts (module26-facts): a square black panel 1rem in from the edges, grey title, large gold numbers. */
.wp-block-group.is-style-dark-frame.gat-stats {
	margin-block: 1.5rem !important; /* Sides: the dark frame's 1rem window edge. */
	padding: 3.5rem 1rem;
	border-radius: 0;
	background: var(--wp--preset--color--black);
}

.gat-stats .gat-section-heading {
	max-width: 64rem;
	margin: 0 auto 2.5rem !important;
}

.gat-stats .gat-section-heading h2 {
	color: #a3a3a3;
	font-size: 2.25rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.025em;
}

.gat-stats .gat-section-heading {
	gap: 0.25rem;
}

.gat-stats .gat-section-heading p {
	color: #a3a3a3;
	font-size: var(--wp--preset--font-size--medium);
}

/* The whole panel width (as module26-facts), not the 75rem content column. */
.gat-stats .gat-stats__grid {
	display: grid;
	gap: 2.5rem;
	max-width: none;
	text-align: center;
}

.gat-stats__item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.gat-stats__item p {
	margin: 0;
}

.gat-stats p.gat-stats__value {
	color: var(--wp--preset--color--gold);
	font-size: 2.5rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.025em;
}

.gat-stats p.gat-stats__text {
	max-width: 20rem;
	margin-top: 0.75rem !important;
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.625;
}

/* Reviews: quote cards, three per row; a portrait video when the sheet has one. */
.gat-reviews__grid {
	display: grid;
	gap: 1rem;
	margin-top: 2rem;
}

.gat-review {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0;
	padding: 1.75rem;
	border-radius: var(--gat-radius);
	background: var(--wp--preset--color--gray-surface);
	text-align: center;
}

.gat-review__video {
	display: block;
	width: 100%;
	max-height: 28rem;
	margin-bottom: 0.25rem;
	border-radius: var(--gat-radius-control);
	background: var(--wp--preset--color--black);
	aspect-ratio: 9 / 16;
	object-fit: cover;
}

.gat-review__quote {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: center;
	margin: 1.25rem 0;
	padding: 0;
	border: 0;
	font-size: var(--wp--preset--font-size--medium);
	font-style: normal;
	line-height: 1.5rem;
}

.gat-review__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0.25rem 0.75rem;
	color: #6b6b6b;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5rem;
}

.gat-review__date {
	color: rgb(0 0 0 / 0.6);
}

.gat-price__note {
	margin: 0;
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--xs);
}

/* Map (Google Maps at the city's lat/lng) and the local intro: reading-size text. */
.gat-map .wp-block-column > p,
.gat-intro p {
	font-size: 1.0625rem;
	line-height: 1.7;
}

.gat-map .wp-block-buttons {
	margin-top: 1.5rem;
}

.gat-map__embed {
	overflow: hidden;
	border-radius: var(--gat-radius);
	background: var(--wp--preset--color--gray-surface);
	aspect-ratio: 4 / 3;
}

.gat-map__embed iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.gat-map__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--gat-radius);
}

/* Districts, nearby areas and cities: white pills; with the booking search on the page they search that area. */
.gat-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.gat-tags li {
	margin: 0;
	border: 1px solid var(--gat-card-border);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}

.gat-tags :is(a, span) {
	display: block;
	padding: 0.375rem 0.875rem;
	color: inherit;
	text-decoration: none;
}

.gat-tags a:is(:hover, :focus-visible) {
	text-decoration: underline;
}

.gat-nearby {
	text-align: center;
}

.gat-nearby h2 {
	font-size: 1.25rem;
	font-weight: 600;
}

.gat-nearby .gat-tags {
	justify-content: center;
}

.gat-faq__cta {
	font-weight: 600;
}

@media (min-width: 782px) {
	.wp-block-group.is-style-dark-frame.gat-stats {
		margin-block: 2rem !important;
		padding: 5rem 1.25rem;
	}

	.gat-stats .gat-section-heading {
		margin-bottom: 3.5rem !important;
	}

	.gat-stats .gat-stats__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem;
	}

	.gat-stats p.gat-stats__value {
		font-size: 5rem;
	}

	.gat-reviews__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gat-review__quote {
		font-size: var(--wp--preset--font-size--large);
		line-height: 1.75rem;
	}

	.gat-map__embed {
		aspect-ratio: 16 / 10;
	}
}

@media (min-width: 1024px) {
	.gat-stats .gat-stats__grid {
		gap: 3rem;
	}
}

/* ---------- T&C Version History (plugin) ---------- */

.tcvh-version-dates {
	color: var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--small);
}

.tcvh-history-list {
	padding-left: 1.25rem;
}

.tcvh-history-list li + li {
	margin-top: 0.5rem;
}

/* ---------- Book by phone (BookByPhone.astro) ---------- */

.gat-phone {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
	width: 100%;
	max-width: 48rem;
	margin-inline: auto !important;
	padding: 2.5rem 2rem;
	border-radius: var(--gat-radius);
	background: #f9f7f1;
}

.gat-phone__copy {
	min-width: 0;
	text-align: center;
}

.gat-phone__title {
	margin: 0;
	color: var(--wp--preset--color--silk);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 2rem;
}

.gat-phone__text {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--gray);
	font-weight: 400;
	font-size: 0.9375rem;
	line-height: 1.5rem;
}

.gat-phone__action {
	display: flex;
	flex-shrink: 0;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}

.gat-phone__action .wp-block-button__link {
	gap: 0.5rem;
	text-decoration: none;
}

.gat-phone__action svg {
	flex-shrink: 0;
}

.gat-phone__number {
	white-space: nowrap;
}

.gat-phone__hours {
	margin: 0;
	color: var(--wp--preset--color--gray);
	font-size: 0.875rem;
	line-height: 1.25rem;
	text-align: center;
}

@media (min-width: 768px) {
	.gat-phone__title {
		font-size: 1.875rem;
		line-height: 2.25rem;
	}
}

@media (min-width: 1024px) {
	.gat-phone {
		flex-direction: row;
		justify-content: space-between;
		gap: 1.5rem;
		padding: 1.5rem;
	}

	.gat-phone__copy {
		max-width: 32rem;
		text-align: left;
	}

	.gat-phone__title {
		font-size: 1.25rem;
		line-height: 1.75rem;
	}
}
