/*
 * NOWP Release 0.1 production frontend.
 *
 * This file intentionally contains no admin canvas, validation, source-status,
 * phase-label, or guarded-preview presentation.
 */

:root {
	--nowp-button-radius: 0;
	--nowp-surface-radius: 0;
	--nowp-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--nowp-type-kicker-size: clamp(0.75rem, 0.72rem + 0.12vw, 0.8125rem);
	--nowp-type-kicker-weight: 700;
	--nowp-type-kicker-line-height: 1.3;
	--nowp-type-kicker-tracking: 0.12em;
	--nowp-type-h1-size: clamp(2rem, 1.55rem + 2.25vw, 3.25rem);
	--nowp-type-h1-weight: 700;
	--nowp-type-h1-line-height: 1.1;
	--nowp-type-h1-tracking: -0.02em;
	--nowp-type-h2-size: clamp(1.75rem, 1.57rem + 0.9vw, 2.25rem);
	--nowp-type-h2-weight: 700;
	--nowp-type-h2-line-height: 1.18;
	--nowp-type-h2-tracking: -0.015em;
	--nowp-type-h3-size: clamp(1.1875rem, 1.12rem + 0.34vw, 1.375rem);
	--nowp-type-h3-weight: 600;
	--nowp-type-h3-line-height: 1.35;
	--nowp-type-h3-tracking: -0.01em;
	--nowp-type-body-size: clamp(1rem, 0.98rem + 0.09vw, 1.0625rem);
	--nowp-type-body-weight: 400;
	--nowp-type-body-line-height: 1.75;
	--nowp-type-body-tracking: 0;
	--nowp-type-small-size: 0.875rem;
	--nowp-type-small-weight: 400;
	--nowp-type-small-line-height: 1.6;
	--nowp-type-small-tracking: 0;
	--nowp-type-button-size: 0.9375rem;
	--nowp-type-button-weight: 700;
	--nowp-type-button-line-height: 1.2;
	--nowp-type-button-tracking: 0;
}

/* Group Transfers page: page-owned surfaces and reference composition. */
.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-section-tone--group-beige {
	--nowp-item-surface: var(--nowp-surface-card);
	background: #eee8df;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-section-tone--group-warm {
	--nowp-item-surface: var(--nowp-surface-card);
	background: #f7f5f1;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-section-tone--group-seo-gradient {
	background: linear-gradient(to bottom, #ffffff 0%, #f3eee6 100%);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-hero__subtitle {
	max-width: 840px;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-facts {
	background: linear-gradient(to bottom, transparent 0, transparent 80px, #eee8df 80px, #eee8df 100%);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-trust {
	background: #eee8df;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-fact-value {
	font-size: var(--nowp-type-h3-size);
	font-weight: var(--nowp-type-h3-weight);
	letter-spacing: var(--nowp-type-h3-tracking);
	line-height: var(--nowp-type-h3-line-height);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-intro {
	padding: 80px 24px;
	background: #ffffff;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-intro-title {
	font-size: var(--nowp-type-h2-size);
	font-weight: var(--nowp-type-h2-weight);
	letter-spacing: var(--nowp-type-h2-tracking);
	line-height: var(--nowp-type-h2-line-height);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-intro-text {
	font-size: var(--nowp-type-body-size);
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	line-height: var(--nowp-type-body-line-height);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request {
	padding: 90px 24px;
	background: #f7f5f1;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request-inner {
	width: min(100%, 1180px);
	margin-inline: auto;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request-heading {
	max-width: 820px;
	margin: 0 auto 44px;
	text-align: center;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request-kicker {
	display: inline-block;
	margin: 0 0 14px;
	color: #b89d77;
	font-size: var(--nowp-type-kicker-size);
	font-weight: var(--nowp-type-kicker-weight);
	letter-spacing: var(--nowp-type-kicker-tracking);
	line-height: var(--nowp-type-kicker-line-height);
	text-transform: uppercase;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request-heading h2 {
	margin: 0 0 18px;
	color: #111111;
	font-size: var(--nowp-type-h2-size);
	font-weight: var(--nowp-type-h2-weight);
	letter-spacing: var(--nowp-type-h2-tracking);
	line-height: var(--nowp-type-h2-line-height);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request-heading p {
	margin: 0;
	color: #4f4a44;
	font-size: var(--nowp-type-body-size);
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	line-height: var(--nowp-type-body-line-height);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request-box {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 40px;
	border: 1px solid #e8e1d8;
	background: #f4f4f2;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo {
	padding: 110px 24px 120px;
	border-top: 1px solid rgba(17, 17, 17, 0.05);
	background: linear-gradient(to bottom, #ffffff 0%, #f3eee6 100%);
	overflow: hidden;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo::before {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at top center, rgba(214, 195, 165, 0.12) 0%, rgba(214, 195, 165, 0) 46%);
	content: "";
	pointer-events: none;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-inner {
	position: relative;
	z-index: 1;
	width: min(100%, 980px);
	margin-inline: auto;
	text-align: center;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-title {
	max-width: 980px;
	margin: 0 auto 34px;
	font-size: var(--nowp-type-h2-size);
	font-weight: var(--nowp-type-h2-weight);
	letter-spacing: var(--nowp-type-h2-tracking);
	line-height: var(--nowp-type-h2-line-height);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-text {
	max-width: 760px;
	margin: 0 auto;
	text-align: left;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-text p {
	margin: 0 0 24px;
	color: #4f4a44;
	font-size: var(--nowp-type-body-size);
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	line-height: var(--nowp-type-body-line-height);
	text-align: left;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-text p:last-child {
	margin-bottom: 0;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-cta {
	position: relative;
	width: min(100%, 760px);
	margin: 54px auto 0;
	padding: 34px 28px;
	border: 1px solid rgba(214, 195, 165, 0.45);
	background: transparent;
	text-align: center;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-cta::before {
	position: absolute;
	top: 0;
	right: 28px;
	left: 28px;
	height: 1px;
	background: linear-gradient(to right, rgba(214, 195, 165, 0), rgba(214, 195, 165, 0.8), rgba(214, 195, 165, 0));
	content: "";
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-cta-text {
	margin: 0 0 22px;
	color: #4f4a44;
	font-size: var(--nowp-type-body-size);
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	line-height: var(--nowp-type-body-line-height);
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-actions {
	display: flex;
	justify-content: center;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-btn {
	display: inline-flex;
	min-width: 220px;
	align-items: center;
	justify-content: center;
	padding: 16px 32px;
	border: 1px solid transparent;
	background: #d6c3a5;
	color: #111111;
	font-size: var(--nowp-type-button-size);
	font-weight: var(--nowp-type-button-weight);
	letter-spacing: var(--nowp-type-button-tracking);
	line-height: var(--nowp-type-button-line-height);
	text-decoration: none;
}

.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-btn:hover {
	background: #cbb392;
	color: #111111;
}

@media (max-width: 767px) {
	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-facts {
		margin-top: 0;
		padding: 24px 18px 36px;
		background: #eee8df;
	}

	/* Group Transfers' fact values are enumerated lists ("Ramstein ·
	   Kaiserslautern · Landstuhl · KMC Area"), much longer than the other
	   pages' short distance/time values -- three columns wrapped one of
	   them to seven lines, so this page keeps two instead. */
	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-facts-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-fact-box:last-child {
		grid-column: 1 / -1;
		border-right: 0;
	}

	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-fact-box:nth-child(2) {
		border-right: 0;
	}

	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-fra-trust {
		padding: 0 18px 48px;
	}

	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .nowp-intro,
	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request {
		padding: 60px 18px;
	}

	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-request-box {
		padding: 24px 18px;
	}

	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo {
		padding: 70px 18px 80px;
	}

	.nowp-production-shell .nowp-page[data-nowp-page="rat_group_transfers"] .rat-grp-seo-cta {
		margin-top: 40px;
		padding: 24px 18px;
	}
}

/* Brand-neutral long-form documents such as legal and policy pages. */
.nowp-production-shell .nowp-component.nowp-rich-text {
	padding: var(--nowp-rich-text-padding-block-start) var(--nowp-rich-text-padding-inline) var(--nowp-rich-text-padding-block-end);
	background: var(--nowp-rich-text-background);
	color: var(--nowp-rich-text-color);
}

/* Deliberate exception to the platform's pixel-based container widths
   (900-1180px elsewhere): long-form legal text reads better at a fixed
   character-count measure, so --nowp-rich-text-max-width is set in ch. */
.nowp-production-shell .nowp-rich-text__inner {
	width: min(100%, var(--nowp-rich-text-max-width));
	margin-inline: auto;
}

/* No kicker above the title by design: content_page is a plain document
   (legal/policy text), not a marketing section, so it skips the
   kicker + title + subtitle pattern the other components share. */
.nowp-production-shell .nowp-rich-text__header {
	padding-bottom: var(--nowp-rich-text-section-gap);
	border-bottom: 1px solid var(--nowp-rich-text-divider-color);
}

.nowp-production-shell .nowp-rich-text__title {
	margin: 0;
	color: var(--nowp-rich-text-title-color);
}

.nowp-production-shell .nowp-rich-text__intro {
	margin: var(--nowp-rich-text-paragraph-gap) 0 0;
	color: var(--nowp-rich-text-muted-color);
}

.nowp-production-shell .nowp-rich-text__meta {
	margin: var(--nowp-rich-text-meta-gap) 0 0;
	color: var(--nowp-rich-text-muted-color);
	font-size: var(--nowp-type-small-size);
	line-height: var(--nowp-type-small-line-height);
}

.nowp-production-shell .nowp-rich-text__meta span {
	font-weight: 600;
}

.nowp-production-shell .nowp-rich-text__section {
	padding-top: var(--nowp-rich-text-section-gap);
}

.nowp-production-shell .nowp-rich-text__heading,
.nowp-production-shell .nowp-rich-text__subsection h3 {
	color: var(--nowp-rich-text-heading-color);
}

.nowp-production-shell .nowp-rich-text__heading {
	margin: 0 0 var(--nowp-rich-text-paragraph-gap);
}

.nowp-production-shell .nowp-rich-text__section > :is(p, ul, ol),
.nowp-production-shell .nowp-rich-text__subsection > :is(p, ul, ol) {
	margin: 0 0 var(--nowp-rich-text-paragraph-gap);
}

.nowp-production-shell .nowp-rich-text :is(p, li, td) {
	font-size: var(--nowp-type-body-size);
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	line-height: var(--nowp-type-body-line-height);
}

.nowp-production-shell .nowp-rich-text :is(ul, ol) {
	padding-left: var(--nowp-rich-text-list-indent);
}

.nowp-production-shell .nowp-rich-text li + li {
	margin-top: var(--nowp-rich-text-list-item-gap);
}

.nowp-production-shell .nowp-rich-text__table {
	width: 100%;
	margin: 0 0 var(--nowp-rich-text-paragraph-gap);
	border-collapse: collapse;
}

.nowp-production-shell .nowp-rich-text__table th,
.nowp-production-shell .nowp-rich-text__table td {
	padding: 10px 16px;
	border-bottom: 1px solid var(--nowp-rich-text-divider-color);
	text-align: left;
	vertical-align: top;
}

.nowp-production-shell .nowp-rich-text__table th {
	color: var(--nowp-rich-text-heading-color);
	font-weight: 700;
	border-bottom-width: 2px;
}

.nowp-production-shell .nowp-rich-text__table td:first-child,
.nowp-production-shell .nowp-rich-text__table th:first-child {
	padding-left: 0;
}

.nowp-production-shell .nowp-rich-text__table td:last-child,
.nowp-production-shell .nowp-rich-text__table th:last-child {
	padding-right: 0;
}

.nowp-production-shell .nowp-rich-text__subsection {
	padding-top: var(--nowp-rich-text-subsection-gap);
}

.nowp-production-shell .nowp-rich-text__subsection h3 {
	margin: 0 0 var(--nowp-rich-text-paragraph-gap);
}

.nowp-production-shell .nowp-rich-text a {
	color: var(--nowp-rich-text-link-color);
	text-decoration: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

.nowp-production-shell .nowp-rich-text a:hover {
	color: var(--nowp-rich-text-link-hover-color);
}

.nowp-production-shell .nowp-rich-text a:focus-visible {
	outline: 3px solid var(--nowp-rich-text-focus-color);
	outline-offset: 3px;
}

.nowp-production-shell .nowp-rich-text strong {
	font-weight: 700;
}

.nowp-standalone-body {
	margin: 0;
	overflow-x: hidden;
	background: #ffffff;
	font-family: var(--nowp-font-family);
}

.nowp-production-shell .rat-container,
.nowp-production-shell .rat-final-cta-container,
.nowp-production-shell .rat-group-request-container {
	position: relative;
	width: min(1120px, calc(100% - 40px));
	margin-inline: auto;
}

.nowp-production-shell .rat-final-cta-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }

.nowp-production-shell .rat-btn {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	padding: 0 28px;
	border: 1px solid var(--nowp-hero-button-background);
	border-radius: var(--nowp-button-radius);
	text-decoration: none;
}

.nowp-production-shell .rat-btn-primary { background: var(--nowp-hero-button-background); color: var(--nowp-hero-button-color); }
.nowp-production-shell .rat-btn-secondary { background: transparent; color: inherit; }

.nowp-production-shell .rat-booking,
.nowp-production-shell .rat-group-request-section { padding: clamp(70px, 9vw, 120px) 0; }
.nowp-production-shell .rat-booking-header,
.nowp-production-shell .rat-group-heading { max-width: 760px; margin: 0 auto 42px; text-align: center; }
.nowp-production-shell .rat-booking-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 0; list-style: none; }
.nowp-production-shell .rat-booking-card { padding: 28px; border: 1px solid rgba(17, 17, 17, 0.12); border-radius: var(--nowp-surface-radius); background: var(--nowp-surface-card); }

.nowp-production-shell .rat-trust {
	padding: 90px 20px;
	border-top: 1px solid rgba(0, 0, 0, 0.03);
	background: var(--nowp-section-muted);
}

.nowp-production-shell .rat-trust .rat-container {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}

.nowp-production-shell .rat-trust-header {
	max-width: 760px;
	margin: 0 auto 50px;
	text-align: center;
}

.nowp-production-shell .rat-trust-kicker {
	margin: 0 0 12px;
	color: #c2a97e;
	text-transform: uppercase;
}

.nowp-production-shell .rat-trust-heading {
	margin: 0 0 16px;
	color: #111111;
}

.nowp-production-shell .rat-trust-subtitle {
	margin: 0;
	color: #555555;
}

.nowp-production-shell .rat-trust-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nowp-production-shell .rat-trust-item {
	padding: 32px 28px;
	border-radius: 18px;
	background: var(--nowp-item-surface, var(--nowp-surface-card));
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.nowp-production-shell .rat-trust-icon {
	display: flex;
	width: 48px;
	height: 48px;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	border-radius: 50%;
	background: rgba(194, 169, 126, 0.14);
	color: #c2a97e;
}

.nowp-production-shell .rat-trust-title {
	margin: 0 0 12px;
	color: #111111;
}

.nowp-production-shell .rat-trust-text {
	margin: 0;
	color: #555555;
}

.nowp-production-shell .rat-final-cta { padding: 72px 0; background: #111827; color: #fff; }
.nowp-production-shell .rat-final-cta-container { text-align: center; }
.nowp-production-shell .rat-final-cta-actions { justify-content: center; }

.nowp-production-shell .rat-booking-steps { padding: 0; list-style: none; }
.nowp-production-shell .rat-booking-step { display: flex; gap: 12px; align-items: center; margin: 12px 0; }
.nowp-production-shell .rat-booking-step span { display: inline-grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border-radius: 50%; background: #d6c3a5; color: #111; }

.nowp-production-shell .rat-group-request-section {
	padding: 80px 20px;
	background: var(--nowp-section-muted);
}

.nowp-production-shell .rat-group-request-container {
	width: 100%;
	max-width: 1280px;
}

.nowp-production-shell .rat-group-request-box {
	padding: 40px;
	border: 1px solid #e8e1d8;
	border-radius: var(--nowp-surface-radius);
	background: var(--nowp-surface-card);
	box-shadow: none;
}

.nowp-production-shell div.rat-group-heading {
	max-width: 800px;
	margin: 0 auto 50px;
	text-align: center;
}

.nowp-production-shell div.rat-group-heading > .rat-subtitle {
	display: block;
	margin: 0 0 10px;
	color: #8a8175;
	text-transform: none;
}

.nowp-production-shell div.rat-group-heading h2 {
	margin: 0 0 14px;
	color: #111111;
}

.nowp-production-shell div.rat-group-heading p {
	margin: 0;
	color: #6b6b6b;
}

.nowp-production-shell .rat-group-form .rat-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 25px;
	row-gap: 20px;
}

.nowp-production-shell .rat-group-form .rat-field-full { grid-column: 1 / -1; }
.nowp-production-shell .rat-group-form .rat-field { position: relative; margin-bottom: 0; }
.nowp-production-shell .rat-group-form .rat-field p { margin: 0; }

.nowp-production-shell .rat-group-form h3 {
	margin: 0 0 18px;
	color: var(--nowp-black);
}

.nowp-production-shell .rat-group-form label {
	display: block;
	margin-bottom: 3px;
	color: var(--nowp-text);
}

.nowp-production-shell .rat-group-form input,
.nowp-production-shell .rat-group-form select,
.nowp-production-shell .rat-group-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 15px;
	border: 1px solid #e8e1d8;
	border-radius: var(--nowp-surface-radius);
	background-color: var(--nowp-surface-field);
	color: #1f1f1f;
	font: inherit;
	appearance: none;
	-webkit-appearance: none;
}

.nowp-production-shell .rat-group-form textarea {
	min-height: 180px;
	resize: vertical;
}

.nowp-production-shell .rat-group-form input:focus,
.nowp-production-shell .rat-group-form select:focus,
.nowp-production-shell .rat-group-form textarea:focus {
	border-color: var(--nowp-gold);
	outline: none;
	box-shadow: 0 0 0 2px rgba(214, 195, 165, 0.18);
}

.nowp-production-shell .rat-group-form .rat-field select {
	padding-right: 44px;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--nowp-text) 50%),
		linear-gradient(135deg, var(--nowp-text) 50%, transparent 50%);
	background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
	background-repeat: no-repeat;
	background-size: 6px 6px, 6px 6px;
}

.nowp-production-shell .rat-form-step-2[hidden] { display: none; }
.nowp-production-shell .rat-form-nav { margin-top: 28px; }
.nowp-production-shell .rat-form-nav-next { display: flex; justify-content: flex-start; }
.nowp-production-shell .rat-form-nav p { margin: 0; }

/* Step-one check before the step change (group-form.js): a missing required
   field is outlined and carries a tip; one message sits above the button. */
.nowp-production-shell .rat-group-form .rat-field--missing input,
.nowp-production-shell .rat-group-form .rat-field--missing select { border-color: #b3261e; }
.nowp-production-shell .rat-group-form .rat-field-tip { display: block; margin-top: 4px; color: #b3261e; font-size: var(--nowp-type-small-size); }
.nowp-production-shell .rat-group-form .rat-form-step-message { margin: 20px 0 0; color: #b3261e; }

.nowp-production-shell .rat-next-step,
.nowp-production-shell .rat-prev-step,
.nowp-production-shell .rat-group-form input[type="submit"] {
	display: inline-flex;
	min-width: 220px;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	padding: 0 30px;
	border: 1px solid var(--nowp-gold);
	border-radius: var(--nowp-button-radius);
	background: var(--nowp-gold);
	color: var(--nowp-black);
	cursor: pointer;
}

.nowp-production-shell .rat-next-step,
.nowp-production-shell .rat-prev-step {
	font-family: inherit;
}

.nowp-production-shell .rat-next-step:hover,
.nowp-production-shell .rat-prev-step:hover,
.nowp-production-shell .rat-group-form input[type="submit"]:hover {
	border-color: var(--nowp-gold-dark);
	background: var(--nowp-gold-dark);
	color: var(--nowp-white);
}

.nowp-production-shell .rat-legal {
	margin: 26px 0 22px;
	color: var(--nowp-text);
}

.nowp-production-shell .rat-legal .wpcf7-list-item { margin: 0; }
.nowp-production-shell .rat-legal .wpcf7-list-item label { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: var(--nowp-text); }
.nowp-production-shell .rat-legal input[type="checkbox"] { width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; padding: 0; appearance: auto; -webkit-appearance: checkbox; }
.nowp-production-shell .rat-group-form .wpcf7-hidden,
.nowp-production-shell .rat-group-form br { display: none; }

.nowp-production-shell .rat-group-form .rat-form-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 24px;
	flex-wrap: wrap;
}

.nowp-production-shell .rat-group-form .rat-form-actions-right {
	display: flex;
	align-items: stretch;
	gap: 12px;
	margin-left: auto;
}

.nowp-production-shell .rat-group-form .rat-form-actions button,
.nowp-production-shell .rat-group-form .rat-form-actions input[type="submit"] {
	height: 48px;
	min-height: 48px;
	padding: 0 26px;
	border: 0;
	border-radius: var(--nowp-button-radius);
}

.nowp-production-shell .rat-group-form .rat-whatsapp-submit { background: #25d366; color: var(--nowp-white); }
.nowp-production-shell .rat-group-form .rat-whatsapp-submit:hover { background: #1ebe5d; }
.nowp-production-shell .rat-form-actions-right .wpcf7-spinner { display: none; }

@media (max-width: 1024px) {
	.nowp-production-shell .rat-trust { padding: 75px 20px; }
	.nowp-production-shell .rat-trust-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}

@media (max-width: 767px) {
	.nowp-production-shell .rat-trust { padding: 60px 16px; }
	.nowp-production-shell .rat-trust-header { margin-bottom: 36px; }
	.nowp-production-shell .rat-trust-grid { grid-template-columns: 1fr; gap: 16px; }
	.nowp-production-shell .rat-trust-item { padding: 26px 22px; border-radius: 16px; }
}

@media (max-width: 720px) {
	.nowp-production-shell .rat-trust-grid,
	.nowp-production-shell .rat-booking-grid,
	.nowp-production-shell .rat-group-form .rat-form-grid { grid-template-columns: 1fr; }
	.nowp-production-shell .rat-final-cta-actions { flex-direction: column; align-items: stretch; }
	.nowp-production-shell .rat-group-request-box { padding: 24px; }
	.nowp-production-shell .rat-group-form .rat-form-actions,
	.nowp-production-shell .rat-group-form .rat-form-actions-right { flex-direction: column; align-items: stretch; margin-left: 0; }
	.nowp-production-shell .rat-group-form .rat-form-actions button,
	.nowp-production-shell .rat-group-form .rat-form-actions input[type="submit"] { width: 100%; min-width: 0; }
}

.nowp-standalone-body *,
.nowp-standalone-body *::before,
.nowp-standalone-body *::after,
.nowp-production-shell *,
.nowp-production-shell *::before,
.nowp-production-shell *::after {
	box-sizing: border-box;
}

.nowp-standalone-body .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
	white-space: nowrap;
}

.nowp-standalone-body .nowp-skip-link:focus {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 100001;
	width: auto;
	height: auto;
	padding: 10px 14px;
	overflow: visible;
	clip: auto;
	background: #ffffff;
	color: #111111;
	white-space: normal;
}

.nowp-standalone-body .nowp-standalone-shell,
.nowp-standalone-body .nowp-standalone-main {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.nowp-standalone-body .nowp-standalone-shell {
	min-height: 100vh;
	overflow: clip;
	background: #ffffff;
	font-family: var(--nowp-font-family);
}

/* Solid is the default state, transparent is granted. fixed-header.js only
   ever adds the at-top state, so every way that script can fail — not loading,
   erroring, being blocked, JS switched off — leaves a readable header instead
   of an invisible one over a bright hero image. The literal fallback in var()
   covers the same principle one level down: a missing brand token would make
   the declaration invalid at computed-value time and fall back to transparent,
   which is exactly the failure this file is meant to rule out. */
.nowp-standalone-body .nowp-site-header {
	position: fixed;
	top: 0;
	z-index: 1000;
	width: 100%;
	border-bottom: 0;
	background: var(--nowp-header-fixed-background, #0d1014);
	color: #ffffff;
	transition: 0.3s ease-in-out;
	transition-property: background-color, color, box-shadow, min-height, left, padding;
}

/* .nowp-header-at-top sits on <html>: set before first paint by the inline
   bootstrap in Assets::print_header_state_bootstrap(), then owned by
   fixed-header.js. --solid pages (no hero) never take part — there is no
   image behind their header to reveal. */
.nowp-header-at-top .nowp-standalone-body .nowp-site-header:not(.nowp-site-header--solid) {
	background: transparent;
}

/* General-sibling combinator, kept deliberately. fixed-header.js no longer
   injects a node between the header and <main> (the sentinel that once broke
   the adjacent-sibling version of this rule is gone), but `~` does not care
   what sits in between — so this rule cannot be broken again by anything that
   later ends up there. */
.nowp-standalone-body .nowp-site-header--solid ~ .nowp-standalone-main {
	padding-top: 76px;
}

.admin-bar.nowp-standalone-body .nowp-site-header {
	top: 32px;
}

.nowp-standalone-body .nowp-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(94%, 1160px);
	min-height: 76px;
	margin-inline: auto;
	gap: 32px;
}

.nowp-standalone-body .nowp-site-brand,
.nowp-standalone-body .nowp-footer-logo {
	color: #ffffff;
	text-decoration: none;
	white-space: nowrap;
}

.nowp-standalone-body .nowp-site-brand span,
.nowp-standalone-body .nowp-footer-logo span {
	color: #d6c3a5;
}

.nowp-standalone-body .nowp-desktop-nav {
	display: flex;
	align-items: center;
	gap: 0;
	margin-left: auto;
}

.nowp-standalone-body .nowp-nav-links,
.nowp-standalone-body .nowp-footer-links {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nowp-standalone-body .nowp-nav-links a {
	color: rgba(255, 255, 255, 0.92);
	padding: 0.5em 0.8em;
	text-decoration: none;
}

.nowp-standalone-body .nowp-nav-links li {
	margin: 0 14px;
}

.nowp-standalone-body .nowp-nav-item--has-children {
	position: relative;
}

.nowp-standalone-body .nowp-nav-item--has-children > a::after {
	display: inline-block;
	margin-left: 0.45em;
	border: solid currentcolor;
	border-width: 0 1px 1px 0;
	padding: 3px;
	content: "";
	transform: translateY(-2px) rotate(45deg);
}

.nowp-standalone-body .nowp-nav-submenu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1;
	display: flex;
	min-width: 190px;
	margin: 0;
	padding: 10px 0;
	border: 1px solid rgba(214, 195, 165, 0.28);
	background: var(--nowp-header-fixed-background, #0d1014);
	box-shadow: 0 18px 45px rgba(0, 0, 0, 0.25);
	list-style: none;
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
	visibility: hidden;
	flex-direction: column;
}

.nowp-standalone-body .nowp-nav-submenu li {
	margin: 0;
}

.nowp-standalone-body .nowp-nav-submenu a {
	display: block;
	padding: 10px 18px;
	white-space: nowrap;
}

.nowp-standalone-body .nowp-nav-item--has-children:hover > .nowp-nav-submenu,
.nowp-standalone-body .nowp-nav-item--has-children:focus-within > .nowp-nav-submenu {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}

.nowp-standalone-body .nowp-nav-links a:hover,
.nowp-standalone-body .nowp-nav-links a:focus-visible {
	color: #d6c3a5;
}

.nowp-standalone-body .nowp-header-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	margin-left: 5px;
	padding: 13px 22px;
	border-radius: var(--nowp-button-radius);
	background: #d6c3a5;
	color: #111111;
	text-decoration: none;
	white-space: nowrap;
}

.nowp-standalone-body .nowp-mobile-nav {
	display: none;
	position: relative;
}

.nowp-standalone-body .nowp-mobile-nav summary {
	display: grid;
	width: 44px;
	height: 44px;
	padding: 0;
	cursor: pointer;
	list-style: none;
	place-items: center;
}

.nowp-standalone-body .nowp-mobile-nav summary::-webkit-details-marker {
	display: none;
}

.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"],
.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"]::before,
.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"]::after {
	display: block;
	width: 24px;
	height: 2px;
	background: #ffffff;
	content: "";
}

.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"] {
	position: relative;
}

.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"]::before,
.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"]::after {
	position: absolute;
}

.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"]::before {
	top: -7px;
}

.nowp-standalone-body .nowp-mobile-nav summary > span[aria-hidden="true"]::after {
	top: 7px;
}

.nowp-standalone-body .nowp-mobile-nav nav {
	position: absolute;
	top: calc(100% + 16px);
	right: 0;
	width: min(86vw, 340px);
	padding: 22px;
	border: 1px solid rgba(214, 195, 165, 0.28);
	border-radius: var(--nowp-surface-radius);
	background: #0d1014;
	box-shadow: 0 18px 45px rgba(0, 0, 0, 0.25);
}

.nowp-standalone-body .nowp-mobile-nav .nowp-nav-links {
	align-items: stretch;
	flex-direction: column;
	gap: 0;
}

.nowp-standalone-body .nowp-mobile-nav .nowp-nav-links a {
	display: block;
	padding: 12px 4px;
}

.nowp-standalone-body .nowp-mobile-nav .nowp-nav-submenu {
	position: static;
	min-width: 0;
	padding: 0 0 4px 16px;
	border: 0;
	background: transparent;
	box-shadow: none;
	opacity: 1;
	pointer-events: auto;
	transform: none;
	visibility: visible;
}

.nowp-standalone-body .nowp-mobile-nav .nowp-nav-submenu a {
	padding-block: 9px;
}

.nowp-standalone-body .nowp-mobile-nav .nowp-header-cta {
	width: 100%;
	margin-top: 16px;
}

.nowp-production-shell .nowp-airport-overview {
	padding: clamp(72px, 8vw, 112px) 24px;
}

.nowp-production-shell .nowp-airport-overview__inner {
	width: min(100%, 1160px);
	margin-inline: auto;
}

.nowp-production-shell .nowp-airport-overview__kicker {
	display: block;
	margin-bottom: 12px;
	color: var(--nowp-gold-dark);
}

.nowp-production-shell .nowp-airport-overview__title {
	max-width: 760px;
	margin: 0;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-airport-overview__intro {
	max-width: 900px;
	margin: 20px 0 0;
	color: var(--nowp-text);
	line-height: var(--nowp-type-body-line-height);
}

.nowp-production-shell .nowp-airport-overview__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 38px 0 0;
	padding: 0;
	list-style: none;
}

.nowp-production-shell .nowp-airport-card {
	margin: 0;
}

.nowp-production-shell .nowp-airport-card__link {
	display: flex;
	height: 100%;
	min-height: 250px;
	padding: clamp(24px, 3vw, 34px);
	border: 1px solid rgba(17, 17, 17, 0.12);
	background: var(--nowp-surface-card);
	box-shadow: 0 10px 28px rgba(17, 17, 17, 0.07);
	color: var(--nowp-black);
	text-decoration: none;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
	flex-direction: column;
}

.nowp-production-shell .nowp-airport-card__link:hover,
.nowp-production-shell .nowp-airport-card__link:focus-visible {
	border-color: var(--nowp-gold-dark);
	box-shadow: 0 16px 36px rgba(17, 17, 17, 0.12);
	transform: translateY(-4px);
}

.nowp-production-shell .nowp-airport-card__iata {
	color: var(--nowp-gold-dark);
	font-weight: 700;
	letter-spacing: 0.12em;
}

.nowp-production-shell .nowp-airport-card__title {
	margin: 10px 0 22px;
}

.nowp-production-shell .nowp-airport-card__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0 0 24px;
}

.nowp-production-shell .nowp-airport-card__facts dt {
	margin-bottom: 5px;
	color: var(--nowp-text);
	font-size: var(--nowp-type-small-size);
}

.nowp-production-shell .nowp-airport-card__facts dd {
	margin: 0;
	font-weight: 700;
}

.nowp-production-shell .nowp-airport-card__cta {
	margin-top: auto;
	color: var(--nowp-gold-dark);
	font-weight: 700;
}

@media (max-width: 767px) {
	.nowp-production-shell .nowp-airport-overview__grid {
		grid-template-columns: 1fr;
	}

	.nowp-production-shell .nowp-airport-card__link {
		min-height: 0;
	}
}

.nowp-production-shell {
	--nowp-black: #111111;
	--nowp-white: #ffffff;
	--nowp-gold: #d6c3a5;
	--nowp-gold-dark: #b89d77;
	--nowp-text: #4f4a44;
	--nowp-section-light: #ffffff;
	--nowp-section-muted: #f7f5f1;
	--nowp-surface-card: #ffffff;
	--nowp-surface-nested: #f3efe9;
	--nowp-surface-field: #fcfbf8;
	--nowp-button-radius: 0;
	--nowp-surface-radius: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	overflow: clip;
	background: var(--nowp-section-light);
	color: var(--nowp-text);
	font-family: var(--nowp-font-family);
}

.nowp-production-shell .nowp-page,
.nowp-production-shell .nowp-component {
	width: 100%;
	max-width: none;
	margin: 0;
}

.nowp-production-shell h1,
.nowp-production-shell h2,
.nowp-production-shell h3,
.nowp-production-shell p,
.nowp-production-shell ul,
.nowp-production-shell figure {
	margin-top: 0;
}

.nowp-production-shell .nowp-component {
	position: relative;
	padding: 88px 24px;
}

.nowp-production-shell .nowp-production-kicker,
.nowp-production-shell .rat-section-kicker,
.nowp-production-shell .rat-booking-kicker,
.nowp-production-shell .rat-fra-faq-kicker,
.nowp-production-shell .rat-fra-seo-kicker {
	display: block;
	margin: 0 auto 13px;
	color: var(--nowp-gold-dark);
	text-align: center;
	text-transform: uppercase;
}

.nowp-production-shell .nowp-production-title,
.nowp-production-shell .rat-title,
.nowp-production-shell .rat-booking-heading,
.nowp-production-shell .rat-fra-faq-title,
.nowp-production-shell .rat-fra-seo-title {
	max-width: 920px;
	margin: 0 auto 18px;
	color: var(--nowp-black);
	text-align: center;
}

.nowp-production-shell .nowp-production-text,
.nowp-production-shell .rat-subtitle,
.nowp-production-shell .rat-booking-subtitle,
.nowp-production-shell .rat-fra-faq-subtitle,
.nowp-production-shell .rat-fra-seo-text {
	max-width: 850px;
	margin: 0 auto 20px;
	color: var(--nowp-text);
	text-align: center;
}

.nowp-production-shell .nowp-intro-kicker,
.nowp-production-shell .nowp-booking-kicker,
.nowp-production-shell .nowp-group-kicker {
	display: inline-block;
	margin-bottom: 14px;
	color: var(--nowp-gold);
	text-transform: uppercase;
}

.nowp-production-shell .nowp-production-button,
.nowp-production-shell .nowp-group-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 26px;
	border-radius: var(--nowp-button-radius);
	background: var(--nowp-gold);
	color: var(--nowp-black);
	text-decoration: none;
}

@keyframes nowpHeroArrowFloat {
	0%,
	100% {
		transform: translateX(-50%) translateY(0);
	}

	50% {
		transform: translateX(-50%) translateY(8px);
	}
}

.nowp-production-shell .rat-fra-facts {
	z-index: 5;
	margin-top: -80px;
	padding: 0 24px 40px;
	scroll-margin-top: 96px;
	background: linear-gradient(
		to bottom,
		transparent 0,
		transparent 80px,
		var(--nowp-section-muted) 80px,
		var(--nowp-section-muted) 100%
	);
}

.admin-bar.nowp-standalone-body .nowp-production-shell .rat-fra-facts {
	scroll-margin-top: 128px;
}

.nowp-production-shell .rat-fra-facts-inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	width: min(100%, 1180px);
	margin: 0 auto;
	overflow: hidden;
	background: var(--nowp-surface-card);
	border: 1px solid rgba(17, 17, 17, 0.06);
	box-shadow: 0 22px 60px rgba(0, 0, 0, 0.1);
}

.nowp-production-shell .rat-fra-fact-box {
	padding: 30px 34px;
	text-align: center;
}

.nowp-production-shell .rat-fra-fact-box:not(:last-child) {
	border-right: 1px solid rgba(17, 17, 17, 0.08);
}

.nowp-production-shell .rat-fra-fact-label {
	display: block;
	margin: 0 0 10px;
	color: #8b857c;
	text-transform: uppercase;
}

.nowp-production-shell .rat-fra-fact-value {
	display: block;
	margin: 0;
	color: var(--nowp-black);
}

.nowp-production-shell .rat-fra-trust {
	padding: 10px 24px 70px;
	background: var(--nowp-section-muted);
}

.nowp-production-shell .rat-fra-trust-inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	width: min(100%, 1180px);
	margin-inline: auto;
	padding: 0;
	gap: 24px;
	list-style: none;
}

.nowp-production-shell .rat-fra-trust-item {
	min-width: 0;
	padding: 34px 26px;
	border: 1px solid rgba(17, 17, 17, 0.07);
	border-radius: var(--nowp-surface-radius);
	background: var(--nowp-surface-card);
	box-shadow: 0 10px 24px rgba(17, 17, 17, 0.05);
	text-align: center;
}

.nowp-production-shell .rat-fra-trust-icon {
	display: grid;
	width: 42px;
	height: 42px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: rgba(214, 195, 165, 0.18);
	color: var(--nowp-gold-dark);
	place-items: center;
}

.nowp-production-shell .rat-fra-trust-item h3 {
	margin: 0 0 10px;
	color: var(--nowp-black);
}

.nowp-production-shell .rat-fra-trust-item p {
	margin: 0;
	color: #5f5a53;
}

.nowp-production-shell .nowp-intro {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	padding: 80px 24px;
	background: var(--nowp-section-light);
}

.nowp-production-shell .nowp-intro-inner {
	width: min(100%, 900px);
	max-width: 100%;
	min-width: 0;
	margin-inline: auto;
	text-align: center;
}

.nowp-production-shell .nowp-intro-kicker {
	color: #8a704c;
}

.nowp-production-shell .nowp-intro-title {
	margin: 0 0 24px;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-booking-title,
.nowp-production-shell .nowp-group-title {
	margin: 0 0 24px;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-intro-text {
	margin: 0 0 18px;
	color: var(--nowp-text);
}

.nowp-production-shell .nowp-intro-text:last-child {
	margin-bottom: 0;
}

.nowp-production-shell .nowp-booking {
	padding: 90px 24px;
	background: var(--nowp-section-muted);
}

.nowp-production-shell .nowp-booking-inner {
	width: min(100%, 1180px);
	margin-inline: auto;
	text-align: center;
}

.nowp-production-shell .nowp-booking-subtitle {
	max-width: 760px;
	margin: 0 auto 34px;
	color: var(--nowp-text);
}

.nowp-production-shell .nowp-chbs-slot:empty {
	display: none;
}

/* WooCommerce Checkout: NOWP renders the page shell, WooCommerce's own
   [woocommerce_checkout] shortcode renders the form itself inside
   .nowp-woocommerce-slot. Its foreign CSS (WooCommerce core, WooCommerce
   PayPal Payments, and CHBS' own global stylesheet, which sets
   font-family:'Lato' with no fallback on several selectors reachable here)
   loads after ours, so matching specificity alone won't win — the !important
   is deliberate and scoped tightly to this one slot, not a general override. */
.nowp-woocommerce-slot,
.nowp-woocommerce-slot * {
	font-family: var(--nowp-font-family) !important;
}

.nowp-production-shell .nowp-checkout-title {
	margin: 0 0 24px;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-checkout-inner {
	width: min(100%, 900px);
	margin-inline: auto;
	padding: 48px 24px 90px;
}

/* CHBS' own CSS hides every direct child of .woocommerce-order on the
   order-received view except its own .woocommerce-notice (its stripped
   thankyou.php template's defense against other plugins adding broken
   content there) — the summary below is a direct child of that same
   element, so it needs the same kind of explicit exception CHBS grants
   its own notice. */
body.woocommerce-order-received .chbs-main > .woocommerce-order > .nowp-booking-summary {
	display: block;
}

.nowp-production-shell .nowp-booking-summary {
	margin-top: 32px;
	padding: 28px;
	border: 1px solid rgba(17, 17, 17, 0.12);
	border-radius: var(--nowp-surface-radius);
	background: var(--nowp-surface-nested);
}

.nowp-production-shell .nowp-booking-summary__title {
	margin: 0 0 18px;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-booking-summary__list {
	margin: 0;
}

.nowp-production-shell .nowp-booking-summary__row {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding: 10px 0;
	border-top: 1px solid rgba(17, 17, 17, 0.1);
}

.nowp-production-shell .nowp-booking-summary__row:first-child {
	border-top: none;
	padding-top: 0;
}

.nowp-production-shell .nowp-booking-summary__row dt {
	color: var(--nowp-text);
}

.nowp-production-shell .nowp-booking-summary__row dd {
	margin: 0;
	font-weight: 600;
	text-align: right;
	color: var(--nowp-black);
}

@media (max-width: 480px) {
	.nowp-production-shell .nowp-booking-summary__row {
		flex-direction: column;
		gap: 4px;
	}

	.nowp-production-shell .nowp-booking-summary__row dd {
		text-align: left;
	}
}

/* Google Maps consent notice: shared placeholder shown above the
   Maps-dependent fields in Contact and the CHBS widget while consent is
   missing. (The group form uses no Maps since 29.08.2026.) */
.nowp-production-shell .nowp-maps-consent-notice {
	margin-bottom: 24px;
	padding: 20px 24px;
	background: var(--nowp-surface-nested);
	border: 1px solid var(--nowp-gold-dark);
	border-radius: var(--nowp-surface-radius);
	text-align: left;
}

.nowp-production-shell .nowp-maps-consent-notice p {
	margin: 0 0 14px;
	color: var(--nowp-text);
}

.nowp-production-shell .nowp-maps-consent-notice p:last-child {
	margin-bottom: 0;
}

.nowp-production-shell .nowp-maps-consent-notice .nowp-maps-consent-alt {
	font-size: var(--nowp-type-small-size);
}

.nowp-production-shell .nowp-maps-consent-notice .nowp-maps-consent-button {
	margin-bottom: 14px;
	border: none;
	font-family: inherit;
	cursor: pointer;
}

.nowp-production-shell :is(.rat-contact-form-box, .nowp-chbs-slot) input:disabled {
	background: var(--nowp-surface-nested);
	color: var(--nowp-text);
	opacity: 0.6;
	cursor: not-allowed;
}

/* Second layer under the `inert` attribute on the CHBS slot while Maps
   consent is missing. The attribute itself is what locks the widget — the
   browser enforces it without CSS or JavaScript. This rule only mirrors it
   for engines that predate `inert`; it is never the thing holding the lock. */
.nowp-production-shell [inert] {
	pointer-events: none;
	user-select: none;
}

.nowp-production-shell .nowp-chbs-slot[inert] {
	opacity: 0.6;
	cursor: not-allowed;
}

.nowp-production-shell .nowp-group {
	padding: 90px 24px;
	background: var(--nowp-section-light);
}

.nowp-production-shell .nowp-group-inner {
	width: min(100%, 1180px);
	margin-inline: auto;
}

.nowp-production-shell .nowp-group-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: stretch;
	gap: 48px;
}

.nowp-production-shell .nowp-group-media {
	min-height: 440px;
	margin: 0;
	overflow: hidden;
	border-radius: 20px;
	box-shadow: none;
}

.nowp-production-shell .nowp-group-media img {
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
}

.nowp-production-shell .nowp-group-content {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	justify-content: center;
}

.nowp-production-shell .nowp-group-title,
.nowp-production-shell .nowp-group-text {
	text-align: left;
}

.nowp-production-shell .nowp-group-text {
	margin: 0 0 24px;
	color: var(--nowp-text);
}

.nowp-production-shell .nowp-group-list {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.nowp-production-shell .nowp-group-item {
	display: flex;
	align-items: center;
	margin-bottom: 12px;
	gap: 12px;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-group-item > span {
	display: grid;
	width: 25px;
	height: 25px;
	flex: 0 0 25px;
	border-radius: 50%;
	background: rgba(214, 195, 165, 0.24);
	color: #987e59;
	place-items: center;
}

.nowp-production-shell .nowp-group-badge {
	margin: 35px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #625d56;
	text-align: center;
}

.nowp-production-shell .nowp-group-action-note {
	margin: 12px 0 0;
	padding: 0;
	background: transparent;
	color: #666666;
}

.nowp-production-shell .rat-routes-section,
.nowp-production-shell .rat-booking,
.nowp-production-shell .rat-fra-faq,
.nowp-production-shell .rat-fra-seo {
	padding: 88px 24px;
}

.nowp-production-shell .rat-routes-section,
.nowp-production-shell .rat-fra-faq {
	background: var(--nowp-section-muted);
}

.nowp-production-shell .rat-booking,
.nowp-production-shell .rat-fra-seo {
	background: var(--nowp-section-light);
}

/* Airport Page Data controls composition; rendered sections alternate automatically. */
.nowp-production-shell .nowp-component.nowp-section-tone--muted {
	--nowp-item-surface: var(--nowp-surface-card);
	background: var(--nowp-section-muted);
}

.nowp-production-shell .nowp-component.nowp-section-tone--light {
	--nowp-item-surface: var(--nowp-surface-nested);
	background: var(--nowp-section-light);
}

/* Shared FAQ presentation for every NOWP page. */
.nowp-production-shell .nowp-component.rat-fra-faq {
	padding: 90px 24px;
}

.nowp-production-shell .rat-fra-faq-inner {
	max-width: 980px;
}

.nowp-production-shell .rat-routes-container,
.nowp-production-shell .rat-container,
.nowp-production-shell .rat-fra-faq-inner,
.nowp-production-shell .rat-fra-seo-inner {
	width: min(100%, 1180px);
	margin-inline: auto;
}

.nowp-production-shell .nowp-production-list {
	margin: 32px auto 0;
	padding: 0;
	list-style: none;
}

.nowp-production-shell .nowp-production-list--cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 980px;
	gap: 20px;
}

.nowp-production-shell .nowp-production-list--cards > li {
	padding: 28px;
	border: 1px solid rgba(17, 17, 17, 0.07);
	border-radius: var(--nowp-surface-radius);
	background: var(--nowp-surface-card);
}

.nowp-production-shell .nowp-production-item-title {
	margin: 0 0 12px;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-production-item-text {
	margin: 0;
	color: var(--nowp-text);
}

.nowp-production-shell .nowp-production-list--steps {
	display: grid;
	margin-top: 20px;
	gap: 12px;
}

.nowp-production-shell .nowp-production-list--steps li {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--nowp-text);
}

.nowp-production-shell .nowp-production-step-number {
	display: grid;
	width: 30px;
	height: 30px;
	flex: 0 0 30px;
	border-radius: 50%;
	background: rgba(214, 195, 165, 0.25);
	color: #806c4e;
	place-items: center;
}

.nowp-production-shell .rat-fra-seo-cta {
	width: 100%;
	max-width: none;
	padding: 86px 24px;
	background: #111111;
	color: #ffffff;
	text-align: center;
}

.nowp-production-shell .rat-fra-seo-cta .nowp-production-title,
.nowp-production-shell .rat-fra-seo-cta .nowp-production-text {
	color: #ffffff;
}

.nowp-production-shell .nowp-production-cta {
	margin: 28px 0 0;
	text-align: center;
}

.nowp-production-shell .rat-fra-seo {
	background: var(--nowp-section-light);
	color: var(--nowp-text);
}

.nowp-production-shell .rat-fra-seo-kicker,
.nowp-production-shell .rat-fra-seo-title {
	color: var(--nowp-text);
	text-align: center;
}

.nowp-production-shell .rat-fra-seo-text,
.nowp-production-shell .rat-fra-seo-text p {
	color: var(--nowp-text);
	text-align: left;
}

.nowp-production-shell .rat-fra-seo-text {
	max-width: 860px;
	margin-inline: auto;
}

.nowp-production-shell .rat-fra-seo-text p {
	margin-bottom: 18px;
}

.nowp-production-shell .rat-seo-subheading {
	margin: 36px 0 14px;
	color: var(--nowp-black);
	text-align: left;
}

.nowp-production-shell .rat-seo-more {
	margin-top: 28px;
}

.nowp-production-shell .rat-seo-more summary {
	display: list-item;
	width: fit-content;
	padding: 0;
	cursor: pointer;
	color: #9b825d;
}

.nowp-production-shell .rat-seo-hidden {
	padding: 0;
}

.nowp-production-shell .rat-seo-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin-top: 36px;
	text-align: center;
}

.nowp-production-shell .rat-seo-btn-secondary {
	border-color: #d6c3a5;
	background: var(--nowp-surface-nested);
	color: #111111;
}

.nowp-production-shell .nowp-faq-list {
	display: flex;
	max-width: 980px;
	margin: 34px auto 0;
	flex-direction: column;
	gap: 16px;
	text-align: left;
}

.nowp-production-shell .nowp-faq-item {
	overflow: hidden;
	margin: 0;
	border: 1px solid rgba(17, 17, 17, 0.06);
	border-radius: var(--nowp-surface-radius);
	background: var(--nowp-item-surface, var(--nowp-surface-card));
}

.nowp-production-shell .nowp-faq-item summary {
	position: relative;
	padding: 24px 68px 24px 24px;
	cursor: pointer;
	list-style: none;
	color: var(--nowp-black);
}

.nowp-production-shell .nowp-faq-item summary::-webkit-details-marker {
	display: none;
}

.nowp-production-shell .nowp-faq-item summary::after {
	position: absolute;
	top: 50%;
	right: 22px;
	display: grid;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(214, 195, 165, 0.18);
	color: #b89d73;
	content: "+";
	place-items: center;
	transform: translateY(-50%);
}

.nowp-production-shell .nowp-faq-item[open] summary::after {
	content: "−";
}

.nowp-production-shell .nowp-faq-item summary:focus-visible {
	outline: 3px solid rgba(184, 157, 115, 0.6);
	outline-offset: -3px;
}

.nowp-production-shell .nowp-faq-answer {
	padding: 0 24px 22px;
}

.nowp-production-shell .nowp-faq-answer p {
	margin: 0;
	color: var(--nowp-text);
}

@media (max-width: 767px) {
	.nowp-production-shell .nowp-component.rat-fra-faq {
		padding: 60px 18px;
	}
}

.nowp-standalone-body .nowp-site-footer {
	position: relative;
	width: 100%;
	padding: 78px 20px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	background: #0d1014;
	color: rgba(255, 255, 255, 0.78);
}

.nowp-standalone-body .nowp-site-footer::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(214, 195, 165, 0.45), transparent);
	content: "";
}

.nowp-standalone-body .nowp-footer-container {
	display: grid;
	grid-template-columns: 1.35fr 1fr 1fr 1fr;
	width: min(100%, 1280px);
	margin-inline: auto;
	gap: 42px;
}

.nowp-standalone-body .nowp-footer-col {
	min-width: 0;
}

.nowp-standalone-body .nowp-footer-brand {
	padding-top: 30px;
	padding-right: 10px;
}

.nowp-standalone-body .nowp-footer-logo {
	display: inline-block;
	margin-bottom: 16px;
}

.nowp-standalone-body .nowp-footer-brand p {
	max-width: 340px;
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
}

.nowp-standalone-body .nowp-footer-heading {
	margin: 0 0 18px;
	color: #d6c3a5;
	text-transform: uppercase;
}

.nowp-standalone-body .nowp-footer-links {
	align-items: stretch;
	flex-direction: column;
	gap: 0;
}

.nowp-standalone-body .nowp-footer-links li {
	margin-bottom: 13px;
}

.nowp-standalone-body .nowp-footer-links a {
	color: rgba(255, 255, 255, 0.74);
	text-decoration: none;
}

.nowp-standalone-body .nowp-footer-bottom {
	margin-top: 52px;
	padding: 18px 20px 20px;
	border-top: 1px solid rgba(214, 195, 165, 0.24);
	text-align: center;
}

.nowp-standalone-body .nowp-footer-bottom p {
	margin: 0;
	color: rgba(255, 255, 255, 0.5);
}

@media (max-width: 1080px) {
	.nowp-standalone-body .nowp-desktop-nav {
		display: none;
	}

	.nowp-standalone-body .nowp-mobile-nav {
		display: block;
		margin-left: auto;
	}

	.nowp-production-shell .rat-fra-trust-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nowp-production-shell .rat-fra-trust {
		padding: 10px 20px 56px;
	}

	.nowp-production-shell .nowp-intro {
		padding: 70px 20px;
	}

	.nowp-production-shell .nowp-intro-title {
	}

	.nowp-production-shell .nowp-intro-text {
	}

	.nowp-production-shell .rat-fra-facts {
		margin-top: -50px;
		padding: 0 20px 34px;
		background: linear-gradient(
			to bottom,
			transparent 0,
			transparent 50px,
			var(--nowp-section-muted) 50px,
			var(--nowp-section-muted) 100%
		);
	}

	.nowp-production-shell .rat-fra-fact-box {
		padding: 26px 22px;
	}

	.nowp-production-shell .rat-fra-fact-value {
	}

	.nowp-standalone-body .nowp-footer-container {
		grid-template-columns: 1fr 1fr;
		gap: 36px 30px;
	}
}

@media (max-width: 782px) {
	.admin-bar.nowp-standalone-body .nowp-site-header {
		top: 46px;
	}
}

@media (max-width: 767px) {
	.nowp-standalone-body .nowp-site-header__inner {
		width: min(calc(100% - 32px), 1280px);
		min-height: 68px;
	}

	.nowp-standalone-body .nowp-site-header--solid ~ .nowp-standalone-main {
		padding-top: 68px;
	}

	.nowp-standalone-body .nowp-site-brand {
	}

	.nowp-production-shell .nowp-component {
		padding: 66px 18px;
	}

	/* .nowp-component.nowp-rich-text (2 classes) outranks the single-class rule
	   above at any specificity-equal breakpoint, so it needs its own override. */
	.nowp-production-shell .nowp-component.nowp-rich-text {
		padding: 64px 18px;
	}

	.nowp-production-shell .rat-fra-facts {
		margin-top: 0;
		padding: 24px 18px 36px;
		overflow: visible;
		scroll-margin-top: 84px;
		background: var(--nowp-section-muted);
	}

	.admin-bar.nowp-standalone-body .nowp-production-shell .rat-fra-facts {
		scroll-margin-top: 132px;
	}

	.nowp-production-shell .rat-fra-facts-inner {
		width: 100%;
		max-width: 100%;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		margin: 0 auto;
	}

	.nowp-production-shell .rat-fra-trust-inner,
	.nowp-production-shell .nowp-group-grid,
	.nowp-production-shell .nowp-production-list--cards {
		grid-template-columns: 1fr;
	}

	.nowp-production-shell .rat-fra-trust {
		padding: 0 18px 48px;
	}

	.nowp-production-shell .rat-fra-trust-inner {
		gap: 18px;
	}

	.nowp-production-shell .rat-fra-trust-item {
		padding: 30px 22px;
	}

	.nowp-production-shell .rat-fra-trust-item h3 {
	}

	.nowp-production-shell .rat-fra-trust-item p {
	}

	.nowp-production-shell .rat-fra-fact-box {
		width: 100%;
		max-width: 100%;
		padding: 16px 8px;
	}

	.nowp-production-shell .rat-fra-fact-box:not(:last-child) {
		border-right: 1px solid #e8e1d8;
	}

	.nowp-production-shell .rat-fra-fact-value {
		font-size: 0.8125rem;
		line-height: 1.3;
	}

	.nowp-production-shell .nowp-intro-title,
	.nowp-production-shell .nowp-booking-title,
	.nowp-production-shell .nowp-group-title,
	.nowp-production-shell .nowp-production-title,
	.nowp-production-shell .rat-title,
	.nowp-production-shell .rat-booking-heading,
	.nowp-production-shell .rat-fra-faq-title,
	.nowp-production-shell .rat-fra-seo-title {
	}

	.nowp-production-shell .nowp-intro {
		padding: 66px 18px;
	}

	.nowp-production-shell .nowp-intro-title {
	}

	.nowp-production-shell .nowp-group-media {
		min-height: 280px;
		border-radius: 16px;
	}

	.nowp-production-shell .nowp-group-title,
	.nowp-production-shell .nowp-group-text {
		text-align: left;
	}

	.nowp-production-shell .rat-fra-seo-cta,
	.nowp-production-shell .rat-fra-seo {
		padding-right: 18px;
		padding-left: 18px;
	}

	.nowp-production-shell .nowp-faq-item summary {
		padding: 20px 58px 20px 18px;
	}

	.nowp-production-shell .nowp-faq-answer {
		padding: 0 18px 18px;
	}

	.nowp-standalone-body .nowp-site-footer {
		padding: 56px 20px 0;
	}

	.nowp-standalone-body .nowp-footer-container {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.nowp-standalone-body .nowp-footer-brand {
		padding-top: 0;
		padding-right: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nowp-production-shell .rat-fra-trust-item {
		transition: none;
	}
}

/* Canonical cross-brand typography roles. Keep this layer after responsive layout rules. */
.nowp-production-shell .rat-trust-kicker,
.nowp-production-shell .nowp-production-kicker,
.nowp-production-shell .rat-section-kicker,
.nowp-production-shell .rat-booking-kicker,
.nowp-production-shell .rat-fra-faq-kicker,
.nowp-production-shell .rat-fra-seo-kicker,
.nowp-production-shell .nowp-intro-kicker,
.nowp-production-shell .nowp-booking-kicker,
.nowp-production-shell .nowp-group-kicker,
.nowp-production-shell div.rat-group-heading > .rat-subtitle,
.nowp-standalone-body .nowp-footer-heading,
.nowp-production-shell .rat-fra-fact-label {
	font-size: var(--nowp-type-kicker-size);
	font-weight: var(--nowp-type-kicker-weight);
	letter-spacing: var(--nowp-type-kicker-tracking);
	line-height: var(--nowp-type-kicker-line-height);
}

.nowp-production-shell .nowp-rich-text__title {
	font-size: var(--nowp-type-h1-size);
	font-weight: var(--nowp-type-h1-weight);
	letter-spacing: var(--nowp-type-h1-tracking);
	line-height: var(--nowp-type-h1-line-height);
}

.nowp-production-shell .rat-trust-heading,
.nowp-production-shell .nowp-production-title,
.nowp-production-shell .rat-title,
.nowp-production-shell .rat-booking-heading,
.nowp-production-shell .rat-fra-faq-title,
.nowp-production-shell .rat-fra-seo-title,
.nowp-production-shell .nowp-intro-title,
.nowp-production-shell .nowp-booking-title,
.nowp-production-shell .nowp-group-title,
.nowp-production-shell div.rat-group-heading h2,
.nowp-production-shell .nowp-rich-text__heading {
	font-size: var(--nowp-type-h2-size);
	font-weight: var(--nowp-type-h2-weight);
	letter-spacing: var(--nowp-type-h2-tracking);
	line-height: var(--nowp-type-h2-line-height);
}

.nowp-production-shell .rat-trust-title,
.nowp-production-shell .rat-fra-trust-item h3,
.nowp-production-shell .nowp-production-item-title,
.nowp-production-shell .rat-seo-subheading,
.nowp-production-shell .nowp-faq-item summary,
.nowp-production-shell .rat-group-form h3,
.nowp-production-shell .rat-fra-fact-value,
.nowp-production-shell .nowp-rich-text__subsection h3 {
	font-size: var(--nowp-type-h3-size);
	font-weight: var(--nowp-type-h3-weight);
	letter-spacing: var(--nowp-type-h3-tracking);
	line-height: var(--nowp-type-h3-line-height);
}

.nowp-standalone-body .nowp-site-brand,
.nowp-standalone-body .nowp-footer-logo {
	font-size: var(--nowp-type-h3-size);
	font-weight: var(--nowp-type-h3-weight);
	letter-spacing: var(--nowp-type-h3-tracking);
	line-height: var(--nowp-type-h3-line-height);
}

.nowp-production-shell .rat-trust-subtitle,
.nowp-production-shell .rat-trust-text,
.nowp-production-shell .rat-fra-trust-item p,
.nowp-production-shell .nowp-production-text,
.nowp-production-shell .rat-subtitle,
.nowp-production-shell .rat-booking-subtitle,
.nowp-production-shell .rat-fra-faq-subtitle,
.nowp-production-shell .rat-fra-seo-text,
.nowp-production-shell .nowp-intro-text,
.nowp-production-shell .nowp-booking-subtitle,
.nowp-production-shell .nowp-group-text,
.nowp-production-shell .nowp-group-item,
.nowp-production-shell .nowp-production-item-text,
.nowp-production-shell .nowp-production-list--steps li,
.nowp-production-shell .nowp-faq-answer p,
.nowp-production-shell div.rat-group-heading p,
.nowp-production-shell .rat-group-form input,
.nowp-production-shell .rat-group-form select,
.nowp-production-shell .rat-group-form textarea {
	font-size: var(--nowp-type-body-size);
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	line-height: var(--nowp-type-body-line-height);
}

.nowp-production-shell .nowp-group-badge,
.nowp-production-shell .nowp-group-action-note,
.nowp-production-shell .rat-group-form label,
.nowp-production-shell .rat-legal,
.nowp-production-shell .rat-legal .wpcf7-list-item label,
.nowp-standalone-body .nowp-footer-brand p,
.nowp-standalone-body .nowp-footer-links a,
.nowp-standalone-body .nowp-footer-bottom p {
	font-size: var(--nowp-type-small-size);
	font-weight: var(--nowp-type-small-weight);
	letter-spacing: var(--nowp-type-small-tracking);
	line-height: var(--nowp-type-small-line-height);
}

.nowp-production-shell .rat-btn,
.nowp-production-shell .nowp-production-button,
.nowp-production-shell .nowp-group-cta,
.nowp-production-shell .rat-next-step,
.nowp-production-shell .rat-prev-step,
.nowp-production-shell .rat-group-form input[type="submit"],
.nowp-production-shell .rat-group-form .rat-form-actions button,
.nowp-standalone-body .nowp-header-cta,
.nowp-standalone-body .nowp-nav-links a {
	font-size: var(--nowp-type-button-size);
	font-weight: var(--nowp-type-button-weight);
	letter-spacing: var(--nowp-type-button-tracking);
	line-height: var(--nowp-type-button-line-height);
}

/* Compact shared route and booking-process cards. */
.nowp-production-shell .nowp-component--most_requested_transfers .nowp-production-list--cards {
	max-width: 1080px;
	gap: 14px;
}

.nowp-production-shell .nowp-component--most_requested_transfers .nowp-production-list--cards > li {
	padding: clamp(18px, 2vw, 22px);
}

.nowp-production-shell .nowp-component--most_requested_transfers .nowp-production-item-title {
	margin-bottom: 8px;
	font-size: clamp(0.9375rem, 0.9rem + 0.15vw, 1rem);
	font-weight: var(--nowp-type-h3-weight);
	line-height: 1.3;
}

.nowp-production-shell .nowp-component--most_requested_transfers .nowp-production-item-text {
	font-size: var(--nowp-type-small-size);
	line-height: var(--nowp-type-small-line-height);
}

.nowp-production-shell .nowp-component--how_booking_works .nowp-production-list--cards > li,
.nowp-production-shell .nowp-component--how_booking_works .rat-booking-card {
	display: flex;
	flex-direction: column;
}

.nowp-production-shell .nowp-component--how_booking_works .nowp-production-item-title,
.nowp-production-shell .nowp-component--how_booking_works .rat-booking-card-title {
	min-height: 1.35em;
	margin: 0 0 14px;
	font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
	font-weight: var(--nowp-type-h3-weight);
	line-height: 1.35;
}

.nowp-production-shell .nowp-component--how_booking_works .nowp-production-list--steps,
.nowp-production-shell .nowp-component--how_booking_works .rat-booking-steps {
	width: 100%;
	margin-top: 0;
}

.nowp-production-shell .nowp-component--how_booking_works .rat-booking-actions {
	margin-top: auto;
}

.nowp-standalone-body .nowp-footer-bottom p {
	font-size: 0.75rem;
	line-height: 1.5;
}

/* Generic Hero. */
.nowp-production-shell .nowp-hero {
	position: relative;
	display: grid;
	place-items: center;
	padding-inline: 1.5rem;
	overflow: hidden;
	background: linear-gradient(135deg, var(--nowp-hero-background-start) 0%, var(--nowp-hero-background-middle) 50%, var(--nowp-hero-background-end) 100%);
	color: var(--nowp-hero-title-color);
	text-align: center;
}

.nowp-production-shell .nowp-hero--full {
	min-height: 100svh;
	padding-block: 0;
}

.nowp-production-shell .nowp-hero--overlay-directional .nowp-hero__overlay {
	background: linear-gradient(90deg, rgba(var(--nowp-hero-overlay-rgb), 0.68) 0%, rgba(var(--nowp-hero-overlay-rgb), 0.48) 38%, rgba(var(--nowp-hero-overlay-rgb), 0.22) 65%, rgba(var(--nowp-hero-overlay-rgb), 0.10) 100%);
	opacity: 1;
}

.nowp-production-shell .nowp-hero--align-left {
	text-align: left;
}

.nowp-production-shell .nowp-hero--align-left .nowp-hero__content {
	width: min(100%, 1300px);
	box-sizing: border-box;
	padding: 165px 40px 90px;
}

.nowp-production-shell .nowp-hero--align-left .nowp-hero__title {
	max-width: 760px;
	margin-bottom: 22px;
}

.nowp-production-shell .nowp-hero__title-break {
	display: block;
}

.nowp-production-shell .nowp-hero--align-left .nowp-hero__subtitle {
	max-width: 690px;
	margin: 0 0 34px;
	opacity: 0.92;
	white-space: nowrap;
}

.nowp-production-shell .nowp-hero--align-left .nowp-hero__actions {
	justify-content: flex-start;
}

.nowp-production-shell .nowp-hero--align-left .nowp-hero__button {
	min-height: 50px;
	padding: 0 28px;
	border: 1px solid var(--nowp-hero-button-secondary-border);
}

.nowp-production-shell .nowp-hero--align-left .nowp-hero__button--secondary {
	background: transparent;
}

.nowp-production-shell .nowp-hero--standard {
	min-height: calc(100svh - 76px);
	padding: 0;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__overlay {
	background: linear-gradient(
		to bottom,
		rgba(var(--nowp-hero-overlay-rgb), 0.16) 0%,
		rgba(var(--nowp-hero-overlay-rgb), 0.22) 35%,
		rgba(var(--nowp-hero-overlay-rgb), 0.48) 100%
	);
	opacity: 1;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: min(calc(100% - 48px), 980px);
	min-height: calc(100svh - 76px);
	padding: 110px 0 120px;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__kicker {
	display: inline-block;
	margin-bottom: 14px;
	font-size: var(--nowp-type-kicker-size);
	font-weight: var(--nowp-type-kicker-weight);
	letter-spacing: var(--nowp-type-kicker-tracking);
	line-height: var(--nowp-type-kicker-line-height);
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__title {
	max-width: 920px;
	margin-bottom: 20px;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__subtitle {
	max-width: 820px;
	margin: 0 0 34px;
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	opacity: 0.95;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__actions {
	align-items: center;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__button {
	min-width: 190px;
	min-height: 0;
	padding: 16px 34px;
	border: 1px solid transparent;
	border-radius: var(--nowp-button-radius);
	letter-spacing: var(--nowp-type-button-tracking);
	line-height: var(--nowp-type-button-line-height);
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__button:hover {
	background: var(--nowp-hero-title-color);
	transform: translateY(-1px);
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__button:focus-visible {
	outline-offset: 4px;
}

/* Keep the control 28px above the 80px desktop Quick Facts overlap. */
.nowp-production-shell .nowp-hero--standard .nowp-hero__scroll {
	inset-block-end: 108px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0.95;
	text-decoration: none;
	animation: nowpHeroArrowFloat 2.2s ease-in-out infinite;
}

.nowp-production-shell .nowp-hero--standard .nowp-hero__scroll span {
	width: 14px;
	height: 14px;
	border-color: rgb(from var(--nowp-hero-arrow-color) r g b / 0.92);
}

.nowp-production-shell .nowp-hero--compact {
	min-height: clamp(32rem, 70vh, 44rem);
	padding-block: clamp(7rem, 14vw, 11rem) clamp(6rem, 12vw, 9rem);
}

.nowp-production-shell .nowp-hero__media,
.nowp-production-shell .nowp-hero__overlay {
	position: absolute;
	inset: 0;
}

/* Hero stack: media 0, overlay 1, content 2, scroll control 3. */
.nowp-production-shell .nowp-hero__media {
	z-index: 0;
}

.nowp-production-shell .nowp-hero__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nowp-production-shell .nowp-hero__overlay {
	z-index: 1;
	background: var(--nowp-hero-overlay-color);
	opacity: var(--nowp-hero-overlay-opacity);
}

.nowp-production-shell .nowp-hero__content {
	position: relative;
	z-index: 2;
	width: min(100%, 54rem);
}

.nowp-production-shell .nowp-hero__kicker {
	margin: 0 0 1rem;
	color: var(--nowp-hero-kicker-color);
	text-transform: uppercase;
}

.nowp-production-shell .nowp-hero__title {
	margin: 0;
	color: var(--nowp-hero-title-color);
	font-size: var(--nowp-type-h1-size);
	font-weight: var(--nowp-type-h1-weight);
	letter-spacing: var(--nowp-type-h1-tracking);
	line-height: var(--nowp-type-h1-line-height);
}

.nowp-production-shell .nowp-hero__subtitle {
	max-width: 44rem;
	margin: 1.5rem auto 2rem;
	color: var(--nowp-hero-subtitle-color);
	font-size: var(--nowp-type-body-size);
	line-height: var(--nowp-type-body-line-height);
	opacity: var(--nowp-hero-subtitle-opacity);
}

.nowp-production-shell .nowp-hero__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
}

.nowp-production-shell .nowp-hero__trust-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 1.25rem;
	color: var(--nowp-hero-title-color);
	font-size: var(--nowp-type-small-size);
	font-weight: var(--nowp-type-button-weight);
	text-decoration: underline;
	text-underline-offset: 3px;
	opacity: 0.92;
}

.nowp-production-shell .nowp-hero__trust-badge:hover {
	opacity: 1;
}

.nowp-production-shell .nowp-hero__trust-badge-icon {
	color: var(--nowp-hero-kicker-color);
}

.nowp-production-shell .nowp-hero__button {
	display: inline-flex;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.5rem;
	background: var(--nowp-hero-button-background);
	color: var(--nowp-hero-button-color);
	font-size: var(--nowp-type-button-size);
	font-weight: var(--nowp-type-button-weight);
	text-decoration: none;
}

.nowp-production-shell .nowp-hero__button:hover {
	background: var(--nowp-hero-button-background-hover);
	color: var(--nowp-hero-button-color);
}

.nowp-production-shell .nowp-hero__button--secondary {
	border: 1px solid var(--nowp-hero-button-secondary-border);
	background: var(--nowp-hero-button-secondary-background);
	color: var(--nowp-hero-button-secondary-color);
}

.nowp-production-shell .nowp-hero__scroll {
	position: absolute;
	inset-block-end: 2rem;
	inset-inline-start: 50%;
	z-index: 3;
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	color: var(--nowp-hero-arrow-color);
	transform: translateX(-50%);
}

.nowp-production-shell .nowp-hero__scroll span {
	width: 0.8rem;
	height: 0.8rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
}

.nowp-production-shell :is(.nowp-hero__button, .nowp-hero__scroll):focus-visible {
	outline: 3px solid var(--nowp-hero-focus-color);
	outline-offset: 3px;
}

@media (min-width: 768px) and (max-width: 1080px) {
	.nowp-production-shell .nowp-hero--full {
		min-height: 92vh;
	}

	.nowp-production-shell .nowp-hero--align-left .nowp-hero__content {
		padding: 150px 32px 72px;
	}

	.nowp-production-shell .nowp-hero--align-left .nowp-hero__title {
		max-width: 680px;
		margin-bottom: 18px;
	}

	.nowp-production-shell .nowp-hero--align-left .nowp-hero__subtitle {
		max-width: 620px;
		margin-bottom: 28px;
	}

	/* Quick Facts overlaps by 50px at this breakpoint: 50px + the 28px clearance. */
	.nowp-production-shell .nowp-hero--standard .nowp-hero__scroll {
		inset-block-end: 78px;
	}
}

@media (max-width: 767px) {
	.nowp-production-shell .nowp-hero--overlay-directional .nowp-hero__overlay {
		background: linear-gradient(to bottom, rgba(var(--nowp-hero-overlay-rgb), 0.32) 0%, rgba(var(--nowp-hero-overlay-rgb), 0.18) 30%, rgba(var(--nowp-hero-overlay-rgb), 0.14) 58%, rgba(var(--nowp-hero-overlay-rgb), 0.36) 100%);
	}

	/* Safety net against a future subtitle growing long again: caps it at
	   three lines on small screens instead of pushing the button further
	   down or off-screen. */
	.nowp-production-shell .nowp-hero__subtitle {
		display: -webkit-box;
		overflow: hidden;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
	}

	.nowp-production-shell .nowp-hero--align-left {
		place-items: start center;
		padding: 66px 18px;
	}

	.nowp-production-shell .nowp-hero--align-left .nowp-hero__content {
		padding: 92px 18px 36px;
	}

	.nowp-production-shell .nowp-hero--align-left .nowp-hero__title {
		max-width: 330px;
		margin-bottom: 16px;
	}

	.nowp-production-shell .nowp-hero--align-left .nowp-hero__subtitle {
		max-width: 300px;
		margin-bottom: 20px;
		white-space: normal;
	}

	.nowp-production-shell .nowp-hero--align-left .nowp-hero__actions {
		gap: 10px;
	}

	.nowp-production-shell .nowp-hero__trust-badge {
		margin-top: 14px;
		font-size: 0.8125rem;
	}

	/* 68svh rather than a full viewport. With the subtitle hidden below, a
	   full-height stage left ~350px of empty image under the button and
	   pushed Quick Facts off the first screen entirely — measured at
	   390x844. At this height the facts row is visible without scrolling. */
	.nowp-production-shell .nowp-hero--standard {
		min-height: calc(68svh - 68px);
	}

	/* `safe center` centers while the content fits and falls back to
	   flex-start the moment it would overflow. This rule failed in both
	   directions before: plain `center` pushed the button off-screen on long
	   titles, plain `flex-start` fixed that but left the content stuck under
	   the header. `safe center` does not depend on the copy staying short,
	   so neither failure can return through a longer text alone. */
	.nowp-production-shell .nowp-hero--standard .nowp-hero__content {
		justify-content: safe center;
		width: calc(100% - 36px);
		min-height: calc(68svh - 68px);
		padding: 96px 0 88px;
	}

	/* Kicker, title and button carry the message on small screens. Hidden
	   visually rather than with display:none so the text stays in the
	   accessibility tree: it currently repeats what the title already says,
	   but a future brand could put something essential here, and display:none
	   would silently drop it for screen readers with nothing visible to
	   reveal the loss. Absolute positioning also takes it out of flow, so the
	   layout above matches what display:none would produce. */
	.nowp-production-shell .nowp-hero--standard .nowp-hero__subtitle {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		border: 0;
		white-space: nowrap;
	}

	/* Per-page crop, deliberately not a global rule: bottom-anchoring moves
	   the title off the gangway crowd (Cologne) and off the lit tower head
	   (Hahn), but the same value makes Saarbrücken worse by pulling its
	   bright sunset band behind the text. Only these two images benefit.
	   Does not scale past a handful of pages — see TODO.md. */
	.nowp-production-shell .nowp-hero[data-nowp-page="rat_cologne_airport_transfer"] .nowp-hero__image,
	.nowp-production-shell .nowp-hero[data-nowp-page="rat_hahn_airport_transfer"] .nowp-hero__image {
		object-position: 50% 100%;
	}

	.nowp-production-shell .nowp-hero--standard .nowp-hero__button {
		width: auto;
		max-width: 260px;
	}

	.nowp-production-shell .nowp-hero--standard .nowp-hero__scroll {
		/* Quick Facts no longer overlaps on mobile. */
		inset-block-end: 22px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nowp-production-shell .nowp-hero--standard .nowp-hero__button {
		transition: none;
	}

	.nowp-production-shell .nowp-hero--standard .nowp-hero__scroll {
		animation: none;
	}
}

.nowp-production-shell .rat-contact-option-link {
	display: inline-flex;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.5rem;
	background: var(--nowp-hero-button-background);
	color: var(--nowp-hero-button-color);
	font-size: var(--nowp-type-button-size);
	font-weight: var(--nowp-type-button-weight);
	text-decoration: none;
}

.nowp-production-shell .rat-contact-options,
.nowp-production-shell .rat-contact-form-section,
.nowp-production-shell .rat-contact-trust {
	padding: clamp(4rem, 8vw, 7rem) 1.5rem;
}

.nowp-production-shell .rat-contact-options-container,
.nowp-production-shell .rat-contact-form-container,
.nowp-production-shell .rat-contact-trust-container {
	width: min(100%, 72rem);
	margin-inline: auto;
}

.nowp-production-shell .rat-contact-options-container {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(2rem, 3vw, 2.75rem);
}

.nowp-production-shell .rat-contact-option {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: clamp(1.75rem, 3vw, 2.25rem) 1.5rem;
	background: var(--nowp-item-surface, var(--nowp-surface-card));
	box-shadow: 0 12px 32px rgba(17, 17, 17, 0.08);
	text-align: center;
}

.nowp-production-shell .rat-contact-icon {
	width: 3rem;
	height: 3rem;
	object-fit: contain;
}

.nowp-production-shell .rat-contact-option h3 {
	margin: 1.25rem 0 0.625rem;
	font-size: var(--nowp-type-h3-size);
}

.nowp-production-shell .rat-contact-option p {
	margin: 0 0 1.125rem;
	line-height: 1.7;
}

.nowp-production-shell .rat-contact-option-link {
	margin-top: auto;
	background: transparent;
	color: var(--nowp-gold-dark);
	text-decoration: none;
	transition: color 160ms ease;
}

.nowp-production-shell .rat-contact-option-link:hover {
	color: var(--nowp-black);
}

.nowp-production-shell .rat-contact-form-heading,
.nowp-production-shell .rat-contact-trust-heading {
	max-width: 48rem;
	margin: 0 auto 2.5rem;
	text-align: center;
}

.nowp-production-shell .rat-contact-form-kicker,
.nowp-production-shell .rat-contact-trust-kicker {
	display: block;
	margin-bottom: 0.75rem;
	font-size: var(--nowp-type-kicker-size);
	font-weight: var(--nowp-type-kicker-weight);
	letter-spacing: var(--nowp-type-kicker-tracking);
	text-transform: uppercase;
}

.nowp-production-shell .rat-contact-trust-kicker {
	color: var(--nowp-gold-dark);
}

.nowp-production-shell .rat-contact-form-heading h2,
.nowp-production-shell .rat-contact-trust-heading h2 {
	margin: 0;
	font-size: var(--nowp-type-h2-size);
}

.nowp-production-shell .rat-contact-form-heading p,
.nowp-production-shell .rat-contact-trust-heading p {
	margin: 1rem 0 0;
	line-height: var(--nowp-type-body-line-height);
}

.nowp-production-shell .rat-contact-form-box {
	padding: clamp(1.25rem, 4vw, 3rem);
	background: var(--nowp-item-surface, var(--nowp-surface-card));
	box-shadow: 0 12px 36px rgba(17, 17, 17, 0.08);
}

.nowp-production-shell .rat-contact-form-box .rat-contact-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1rem;
	row-gap: 0.9375rem;
}

.nowp-production-shell .rat-contact-form-box .rat-field-full {
	grid-column: 1 / -1;
}

.nowp-production-shell .rat-contact-form-box .rat-field > p,
.nowp-production-shell .rat-contact-form-box .rat-legal > p,
.nowp-production-shell .rat-contact-form-box .rat-contact-actions p {
	margin: 0;
}

.nowp-production-shell .rat-contact-form-box .rat-field > p > br,
.nowp-production-shell .rat-contact-form-box .rat-contact-actions br {
	display: none;
}

.nowp-production-shell .rat-contact-form-box .wpcf7-form-control-wrap {
	display: block;
}

.nowp-production-shell .rat-contact-form-box .rat-field:not(.nowp-floating-field) label {
	display: block;
	margin-bottom: 0.375rem;
	font-size: 0.8125rem;
	font-weight: 600;
}

.nowp-production-shell .rat-contact-form-box .nowp-form-section-title {
	grid-column: 1 / -1;
	margin: 0.5rem 0 0;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #e8e1d8;
	color: #8a8175;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.nowp-production-shell .rat-contact-form-box .nowp-form-section-title:first-child {
	margin-top: 0;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-field {
	position: relative;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-field > p > label {
	position: absolute;
	z-index: 2;
	inset-block-start: 1.5rem;
	inset-inline-start: 1rem;
	max-width: calc(100% - 3rem);
	margin: 0;
	overflow: hidden;
	color: #5f5951;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	pointer-events: none;
	text-overflow: ellipsis;
	transform: translateY(-50%);
	transform-origin: left top;
	transition: color 150ms ease, font-size 150ms ease, transform 150ms ease;
	white-space: nowrap;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-field:is(.is-focused, .is-filled) > p > label {
	inset-block-start: 0.375rem;
	color: #8a8175;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1;
	transform: none;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-field--textarea > p > label {
	inset-block-start: 1rem;
	transform: none;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-field--textarea:is(.is-focused, .is-filled) > p > label {
	inset-block-start: 0.375rem;
}

.nowp-production-shell .rat-contact-form-box :is(input:not([type="submit"]):not([type="checkbox"]):not([type="hidden"]), select, textarea) {
	width: 100%;
	min-height: 3rem;
	box-sizing: border-box;
	padding: 1rem 1rem 0.25rem;
	border: 1px solid #e8e1d8;
	border-radius: var(--nowp-surface-radius, 0);
	background: #fcfbf8;
	color: #111111;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.25;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-fields-ready :is(input, textarea)::placeholder {
	color: transparent;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-field:not(.is-focused, .is-filled) input[type="date"] {
	color: transparent;
}

.nowp-production-shell .rat-contact-form-box .nowp-floating-field:not(.is-focused, .is-filled) input[type="date"]::-webkit-datetime-edit {
	opacity: 0;
}

.nowp-production-shell .rat-contact-form-box textarea {
	min-height: 7.5rem;
	padding-top: 1.375rem;
	resize: vertical;
}

.nowp-production-shell .rat-contact-form-box :is(input, select, textarea):focus-visible,
.nowp-production-shell :is(.rat-contact-option-link, .rat-contact-whatsapp-btn):focus-visible {
	outline: 3px solid #8d7048;
	outline-offset: 3px;
}

.nowp-production-shell .rat-contact-form-box .wpcf7-submit {
	min-height: 3rem;
	padding: 0.75rem 1.75rem;
	border: 1px solid #d6c3a5;
	border-radius: var(--nowp-surface-radius, 0);
	background: #d6c3a5;
	color: #111111;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.25;
	cursor: pointer;
}

.nowp-production-shell .rat-contact-route-estimate {
	grid-column: 1 / -1;
	padding: 1.25rem;
	border: 1px solid #d6c3a5;
	background: #f8f5f0;
}

.nowp-production-shell .rat-contact-route-estimate-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.nowp-production-shell .rat-contact-route-item,
.nowp-production-shell .rat-contact-price-estimate {
	padding: 1rem;
	background: var(--nowp-item-surface, var(--nowp-surface-card));
}

.nowp-production-shell .rat-contact-route-item p,
.nowp-production-shell .rat-contact-price-estimate p {
	margin: 0;
}

.nowp-production-shell .rat-contact-route-label,
.nowp-production-shell .rat-contact-price-label {
	display: inline-block;
	margin-bottom: 0.35rem;
	font-size: var(--nowp-type-small-size);
	font-weight: 600;
}

.nowp-production-shell .rat-contact-price-estimate {
	margin-top: 1rem;
	border-left: 3px solid #d6c3a5;
}

.nowp-production-shell .rat-contact-price-note {
	margin-top: 0.75rem;
	font-size: var(--nowp-type-small-size);
	font-weight: 600;
}

.nowp-production-shell .rat-contact-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1rem;
}

.nowp-production-shell .rat-contact-actions p {
	margin: 0;
}

.nowp-production-shell .rat-contact-whatsapp-btn {
	display: inline-flex;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 0.75rem 1.75rem;
	border-radius: var(--nowp-surface-radius, 0);
	background: #25d366;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}

.nowp-production-shell .rat-contact-trust-grid {
	display: grid;
	margin: 0;
	padding: 0;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	list-style: none;
	align-items: stretch;
}

.nowp-production-shell .rat-contact-trust-item {
	display: flex;
	height: 100%;
	flex-direction: column;
	padding: 1.75rem;
	border-top: 3px solid #d6c3a5;
	background: var(--nowp-item-surface, var(--nowp-surface-card));
}

.nowp-production-shell .rat-contact-trust-item h3 {
	min-height: 3.75rem;
	margin: 0 0 0.75rem;
	font-size: var(--nowp-type-h3-size);
}

.nowp-production-shell .rat-contact-trust-item p {
	margin: 0;
	line-height: 1.7;
}

/* Shared NOWP card interaction pattern. */
.nowp-production-shell :is(.rat-trust-item, .rat-fra-trust-item, .rat-contact-trust-item, .rat-contact-option) {
	transition: transform var(--nowp-card-hover-duration, 250ms) var(--nowp-card-hover-easing, ease), box-shadow var(--nowp-card-hover-duration, 250ms) var(--nowp-card-hover-easing, ease);
}

@media (hover: hover) and (pointer: fine) {
	.nowp-production-shell :is(.rat-trust-item, .rat-fra-trust-item, .rat-contact-trust-item, .rat-contact-option):hover {
		box-shadow: var(--nowp-card-hover-shadow, 0 16px 36px rgba(17, 17, 17, 0.1));
		transform: translateY(var(--nowp-card-hover-translate-y, -4px));
	}
}

@media (prefers-reduced-motion: reduce) {
	.nowp-production-shell :is(.rat-trust-item, .rat-fra-trust-item, .rat-contact-trust-item, .rat-contact-option) {
		transition: none;
	}

	.nowp-production-shell :is(.rat-trust-item, .rat-fra-trust-item, .rat-contact-trust-item, .rat-contact-option):hover {
		transform: none;
	}
}

@media (max-width: 1024px) {
	.nowp-production-shell .rat-contact-trust-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 800px) {
	.nowp-production-shell .rat-contact-options-container {
		grid-template-columns: 1fr;
	}

	.nowp-production-shell .rat-contact-form-box .rat-contact-form-grid {
		grid-template-columns: 1fr;
		row-gap: 1.125rem;
	}

	.nowp-production-shell .rat-contact-form-box .rat-field-full {
		grid-column: auto;
	}

	.nowp-production-shell .rat-contact-route-estimate-inner {
		grid-template-columns: 1fr;
	}

	.nowp-production-shell .rat-contact-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.nowp-production-shell .rat-contact-actions :is(.wpcf7-submit, .rat-contact-whatsapp-btn) {
		width: 100%;
	}
}

@media (max-width: 768px) {
	.nowp-production-shell .rat-contact-trust-grid {
		grid-template-columns: 1fr;
	}

	.nowp-production-shell .rat-contact-trust-item h3 {
		min-height: 0;
	}
}

.nowp-standalone-body .nowp-whatsapp-float {
	position: fixed;
	inset-block-end: clamp(1rem, 4vw, 2rem);
	inset-inline-end: clamp(1rem, 4vw, 2rem);
	z-index: 999;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 3.5rem;
	block-size: 3.5rem;
	border-radius: 50%;
	background: #25d366;
	color: #ffffff;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
}

.nowp-standalone-body .nowp-whatsapp-float:focus-visible {
	outline: 3px solid var(--nowp-gold, #d6c3a5);
	outline-offset: 3px;
}

/* Keep the floating action clear of Frankfurt quick facts at collision widths. */
@media (max-width: 430px) {
	.nowp-standalone-body:has(.rat-fra-facts) .nowp-whatsapp-float {
		inset-block-end: 6.5rem;
	}
}

@media (min-width: 900px) and (max-width: 1080px) {
	.nowp-standalone-body:has(.rat-fra-facts) .nowp-whatsapp-float {
		inset-block-end: 9rem;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.nowp-standalone-body .nowp-whatsapp-float {
		transition: transform 150ms ease;
	}

	.nowp-standalone-body .nowp-whatsapp-float:hover {
		transform: scale(1.05);
	}
}
