/* WordPress integration layer. The frozen static design remains in main.css/site-ui.css. */
:root {
	--rb-header-height: 76px;
	--rb-focus: #ff8a4d;
}

html {
	scroll-padding-top: calc(var(--rb-header-height) + 24px);
}

body {
	overflow-x: clip;
}

body.modal-open,
body.navigation-open {
	overflow: hidden;
}

img,
svg,
video,
iframe {
	max-width: 100%;
}

button,
input,
select,
textarea {
	font: inherit;
}

button {
	touch-action: manipulation;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--rb-focus);
	outline-offset: 4px;
}

.skip-link {
	position: fixed;
	left: 20px;
	top: -100px;
	z-index: 99999;
	padding: 12px 18px;
	background: var(--orange);
	color: #fff;
	font-weight: 700;
	transition: top .18s ease;
}

.skip-link:focus {
	top: 16px;
}

.site-header,
.mobile-nav,
.language-panel,
.contact-rail,
.search-dialog,
.quote-dialog {
	box-sizing: border-box;
}

.site-header .brand img,
.site-footer .brand img {
	object-fit: contain;
}

.site-header button,
.site-footer button,
.contact-rail button {
	font-family: inherit;
}

.equipment-menu[hidden],
.mobile-nav[hidden],
.language-panel[hidden],
.language-scrim[hidden],
.navigation-scrim[hidden] {
	display: none !important;
}

.search-dialog,
.quote-dialog {
	z-index: 1000;
}

.search-dialog[open],
.quote-dialog[open] {
	display: block;
}

.quote-dialog::backdrop {
	background: rgba(0, 0, 0, .78);
	backdrop-filter: blur(4px);
}

.rb-form-dependency {
	padding: 28px;
	border: 1px solid #4b4b4b;
	background: #1b1b1b;
}

.rb-form-dependency > p {
	margin: 0 0 22px;
	color: #d5d5d5;
}

.error-watermark {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	font-size: clamp(180px, 31vw, 520px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.09em;
	color: #272727;
	text-shadow: 0 0 70px rgba(239, 107, 37, .09);
}

.rb-default-main {
	min-height: 62vh;
	padding: calc(var(--rb-header-height) + 80px) 0 100px;
	background: var(--mist);
	color: var(--ink);
}

.rb-default-content {
	max-width: var(--content-max);
}

.rb-default-article {
	max-width: 900px;
}

.rb-default-article h1 {
	margin: 14px 0 34px;
	font-size: clamp(42px, 7vw, 82px);
	line-height: 1.02;
}

.rb-entry-content {
	font-size: 17px;
	line-height: 1.85;
}

.rb-entry-content > * + * {
	margin-top: 1.4em;
}

.rb-entry-content :where(h2, h3, h4) {
	margin-top: 1.65em;
	line-height: 1.15;
}

.rb-entry-content a:not(.button) {
	color: #a8400b;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wpforms-container .wpforms-field-label,
.wpforms-container .wpforms-field-label-inline {
	color: inherit;
}

.rb-lead-form .wpforms-field-container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
}

.rb-lead-form .wpforms-field {
	min-width: 0;
	padding: 0 !important;
}

.rb-lead-form .wpforms-field-hidden {
	display: none !important;
}

.rb-lead-form :where(.rb-field-business-type, .rb-field-country, .rb-field-message) {
	grid-column: 1 / -1;
}

.rb-lead-form .wpforms-field-label {
	margin: 0 0 8px !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .01em;
}

.rb-lead-form .wpforms-required-label {
	color: var(--orange) !important;
}

.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container input[type=number],
.wpforms-container select,
.wpforms-container textarea {
	width: 100% !important;
	max-width: none !important;
	min-height: 52px;
	padding: 13px 15px !important;
	border: 1px solid #565656 !important;
	border-radius: 0 !important;
	background: #181818 !important;
	color: #fff !important;
	box-shadow: none !important;
}

.wpforms-container textarea {
	min-height: 130px;
	resize: vertical;
}

.rb-lead-form .wpforms-field select {
	height: 52px !important;
	min-height: 52px !important;
	padding-top: 0 !important;
	padding-right: 42px !important;
	padding-bottom: 0 !important;
	line-height: normal !important;
	box-sizing: border-box;
}

/* The partnership form sits on a light panel and needs its own surface tokens. */
.partner-form-panel .rb-lead-form .wpforms-field-label,
.partner-form-panel .rb-lead-form .wpforms-field-label-inline {
	color: #202020 !important;
}

.partner-form-panel .wpforms-container input[type=text],
.partner-form-panel .wpforms-container input[type=email],
.partner-form-panel .wpforms-container input[type=tel],
.partner-form-panel .wpforms-container input[type=number],
.partner-form-panel .wpforms-container select,
.partner-form-panel .wpforms-container textarea {
	border-color: #b5b5af !important;
	background: #f7f7f5 !important;
	color: #202020 !important;
}

.partner-form-panel .wpforms-container :where(input, textarea)::placeholder {
	color: #6f6f6a !important;
	opacity: 1;
}

.partner-form-panel .wpforms-container select option {
	background: #fff;
	color: #202020;
}

.partner-form-panel .wpforms-container label.wpforms-error,
.partner-form-panel .wpforms-container em.wpforms-error {
	color: #9b2e12 !important;
}

.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus {
	border-color: var(--orange) !important;
	outline: 2px solid color-mix(in srgb, var(--orange), transparent 65%);
	outline-offset: 1px;
}

.wpforms-container button[type=submit],
.wpforms-container .wpforms-submit {
	min-height: 56px !important;
	padding: 16px 28px !important;
	border: 1px solid var(--orange) !important;
	border-radius: 0 !important;
	background: var(--orange) !important;
	color: #fff !important;
	font-weight: 700 !important;
}

.wpforms-container button[type=submit]:hover,
.wpforms-container .wpforms-submit:hover {
	background: #a8400b !important;
	border-color: #a8400b !important;
}

.rb-lead-form .wpforms-submit-container {
	padding-top: 24px !important;
}

.rb-lead-form .wpforms-confirmation-container-full {
	margin: 0 !important;
	padding: 22px 24px !important;
	border: 1px solid var(--orange) !important;
	border-radius: 0 !important;
	background: #181818 !important;
	color: #fff !important;
}

.wpforms-container label.wpforms-error,
.wpforms-container em.wpforms-error {
	color: #ff9c70 !important;
}

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

.admin-bar .mobile-nav,
.admin-bar .language-panel {
	margin-top: 32px;
}

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

	.admin-bar .mobile-nav,
	.admin-bar .language-panel {
		margin-top: 46px;
	}
}

@media (max-width: 767px) {
	:root {
		--rb-header-height: 72px;
	}

	.rb-default-main {
		padding-top: calc(var(--rb-header-height) + 48px);
		padding-bottom: 70px;
	}

	.rb-default-article h1 {
		font-size: 42px;
	}

	.rb-entry-content {
		font-size: 16px;
	}

	.mobile-nav {
		height: calc(100dvh - 130px - env(safe-area-inset-bottom, 0px));
		max-height: calc(100dvh - 130px - env(safe-area-inset-bottom, 0px));
	}

	.rb-lead-form .wpforms-field-container {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.rb-lead-form :where(.rb-field-business-type, .rb-field-country, .rb-field-message) {
		grid-column: auto;
	}
}

/* Accessible labels remain available to screen readers without affecting layout. */
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Keep enquiry contact details as legible as the surrounding body copy. */
.inquiry-contact a {
	font-size: 18px;
	line-height: 1.6;
	gap: 14px;
	min-height: 32px;
}
.inquiry-contact .icon {
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
}
@media (max-width: 767px) {
	.inquiry-contact a { font-size: 16px; gap: 10px; }
	.inquiry-contact .icon { width: 22px; height: 22px; flex-basis: 22px; }
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto !important;
	}

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
