/*
Theme Name: RTH Child
Description: GeneratePress child theme for Road Trip Home Animal Rescue
Author: Kimberly
Template: generatepress
Version: 1.0.0
*/

:root {
	--color-gold: #bb9449;
	--color-gold-hover: #a8853f;
	--color-gold-pale: #f4e4c4;
	--color-gold-deep: #7a591c;
	--color-brick: #a53d3d;
	--color-orange: #F69B03;
	--color-orange-dark: #f08f12;
	--color-orange-deep: #d18303; /* Meets 3:1 on white, unlike --color-orange. */
	--color-olive: #475138;
	--color-olive-deep: #323d20;
	--color-olive-grey: #5b6048;
	--color-green-dark: #2e3c2d;
	--color-green-darker: #1c2415;
	--color-pale-green: #e5f0d5;
	--color-mist-light: #eef4f2;
	--color-mist-border: #e3ebe8;
	--color-mint: #e7f0d7;

	--color-scroll-thumb: #e5e5e5;
	--color-scroll-track: #f8f8f8;

	--color-off-white: #fbfcf8;
	--color-hairline: #e4e6dc;
	--color-field-border: #919971; /* Form controls only: --color-hairline is 1.26:1, below the 3:1 a control boundary needs. */
	--color-placeholder: #606060;
	--color-white-hover: #f0f0f0;
	--color-gray: #0a142f;

	--font-heading: 'Poppins', sans-serif;
	--font-display: 'Lexend', sans-serif;
	--font-body: 'Courier Prime', monospace;
	--font-alt: 'Inter', sans-serif;
	--font-mono: 'JetBrains Mono', monospace;

	/* Desktop runs type 20% smaller; see the min-width:1024px block below. */
	--fs-scale: 1;

	--fs-h1: clamp(2.5rem, 5vw, 4rem);
	--fs-h2: clamp(1.75rem, 3.5vw, 2.5rem);
	--fs-h3: 1.3125rem;
	--fs-body: 1.125rem;
	--fs-small: 0.9375rem;

	--space-xs: 0.5rem;
	--space-sm: 1rem;
	--space-md: 1.5rem;
	--space-lg: 2.5rem;
	--space-xl: 4rem;
	--space-2xl: 6rem;

	--container: 1200px;
	--header-gutter: clamp(30px, calc(22.5vw - 234px), 173px);
	--header-bar-h: 104px;
	--header-logo: clamp(150px, calc(21.9vw - 25.3px), 237.53px);
	--header-clear: calc(var(--space-md) + 2.375rem + var(--space-sm) + var(--header-bar-h));

	--radius: 1.5rem;
	--radius-lg: 2.5rem;
	--radius-pill: 100px;
}

/* Decrease type size on desktop */
@media (min-width: 1024px) {
	:root {
		--fs-scale: 0.8;
	}
}

body {
	font-family: var(--font-body);
	color: black;
	font-size: calc(var(--fs-body) * var(--fs-scale));
	background-color: white;
}

/* Imagify wraps every image in a <picture>, which would otherwise become the
   flex/grid item in place of the <img> and break size rules that resolve
   against the parent. See rth_imagify_keep_img_class() in functions.php. */
picture {
	display: contents;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	color: black;
	font-weight: 800;
	line-height: 1.1;
}

.rth-container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--space-md);
}

.rth-full-bleed #page {
	max-width: none;
}

.rth-full-bleed #main {
	margin-inline: 0;
}

.rth-section {
	padding-block: var(--space-2xl);
}

.rth-subheading {
	margin: 0 0 var(--space-md);
	font-family: var(--font-display); /* Lexend */
	font-weight: 600;
	font-size: calc(clamp(2.5rem, 5vw, 3.9375rem) * var(--fs-scale)); /* 63px on desktop */
	line-height: 1.222; /* 77 / 63 */
	letter-spacing: 0;
	color: var(--color-green-dark);
}

.rth-prose p {
	font-family: var(--font-mono); /* JetBrains Mono */
	font-weight: 400;
	font-size: calc(1.375rem * var(--fs-scale)); /* 22px */
	line-height: 1.818; /* 40 / 22 */
	letter-spacing: 0;
	color: black;
}

.rth-prose strong,
.rth-prose b {
	font-weight: 500;
}

.rth-page-title {
	margin: 0;
	font-family: var(--font-display); /* Lexend */
	font-weight: 600;
	font-size: calc(clamp(2.5rem, 4.74vw, 5.6875rem) * var(--fs-scale)); /* 91px */
	line-height: 1.099; /* 100 / 91 */
	letter-spacing: 0;
	text-align: center;
	color: black;
}

.rth-section__heading {
	font-family: var(--font-display); /* Lexend */
	font-weight: 600;
	font-size: calc(clamp(2.5rem, 5vw, 3.9375rem) * var(--fs-scale)); /* 63px on desktop */
	line-height: 1.222; /* 77 / 63 */
	letter-spacing: 0;
	color: var(--color-green-dark);
	text-align: center;
	margin: 0 0 var(--space-lg);
}

.btn {
	display: inline-block;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: calc(1.1875rem * var(--fs-scale));
	letter-spacing: 0.5px;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-green-darker);
	background: var(--color-orange);
	border-radius: var(--radius-pill);
	padding: 0.85em 2em;
	transition: background-color 0.2s ease;
}

.btn:hover,
.btn:focus {
	background: var(--color-orange-dark);
	color: var(--color-green-darker);
}

.rth-hero {
	position: relative;
	margin: 0;
}

.rth-hero__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1590 / 538;
	object-fit: cover;
	border-radius: var(--radius);
}

.rth-hero__donate {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}

.rth-hero__donate .btn {
	font-size: calc(clamp(1.5rem, 3.5vw, 2.5rem) * var(--fs-scale)); /* 40px */
	padding: 0.45em 1.8em;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.rth-hero__donate {
		position: static;
		display: flex;
		justify-content: center;
		transform: none;
		margin-top: var(--space-md);
	}
}

.rth-btn-olive {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1.125rem 2.5rem;
	background: var(--color-olive);
	color: white;
	border-radius: 10px;
	font-family: var(--font-display); /* Lexend */
	font-weight: 600;
	font-size: calc(clamp(1.125rem, 1.875vw, 2.25rem) * var(--fs-scale)); /* 36px */
	line-height: 0.733; /* 26.4 / 36 */
	letter-spacing: 0.5px;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
}

.rth-btn-olive:hover,
.rth-btn-olive:focus {
	background: var(--color-olive-deep);
	color: white;
}

.rth-card {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-mint);
	border-radius: var(--radius);
	font-family: var(--font-display); /* Lexend */
	font-weight: 600;
	font-size: calc(clamp(1.125rem, 1.51vw, 1.8125rem) * var(--fs-scale)); /* 29px */
	line-height: normal;
	letter-spacing: 0;
	text-align: center;
	color: black;
}

body.home #page {
	max-width: 100%;
	padding: 0;
}

body.home .site-content {
	display: block;
	max-width: 100%;
	width: 100%;
	padding: 0;
	margin: 0;
}

body.home #main {
	width: 100%;
	margin: 0;
}

body.home #main > * {
	margin-bottom: 0;
}

body:not(.home) {
	position: relative;
}

body:not(.home)::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 408.42px;
	/* Behind in-flow content, above the body's own background. */
	z-index: -1;
	background: linear-gradient(to bottom, var(--color-pale-green) 0%, rgba(229, 240, 213, 0) 100%);
	pointer-events: none;
}

/* Site header */
.rth-header {
	position: relative;
	z-index: 10;
	max-width: 1800px;
	margin-inline: auto;
	background: transparent;
	padding-block: var(--space-md) calc((var(--header-logo) - var(--header-bar-h)) / 2);
}

.rth-header__top {
	display: flex;
	justify-content: flex-end;
	padding-inline: var(--header-gutter);
	margin-bottom: var(--space-sm);
}

.rth-header__email {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--font-alt);
	font-weight: 400;
	font-size: calc(1.375rem * var(--fs-scale));
	line-height: 1.727; /* 38 / 22 */
	letter-spacing: normal;
	color: black;
	text-decoration: none;
}

.rth-header__email:hover,
.rth-header__email:focus {
	color: black;
	text-decoration: underline;
}

.rth-header .rth-header__mail {
	flex: 0 0 auto;
	width: 29.98px;
	height: 23.32px;
}

@media (max-width: 360px) {
	.rth-header__email {
		font-size: calc(1rem * var(--fs-scale));
	}
}

.rth-header__bar {
	position: relative;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: var(--space-md);
	min-height: var(--header-bar-h);
	margin-inline: var(--header-gutter);
	padding-inline: clamp(16px, calc(6.25vw - 48px), 64px);
	background: var(--color-gold);
	border-radius: var(--radius-pill);
}

.rth-header__logo {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	line-height: 0;
}

.rth-header .rth-header__logo-img {
	width: var(--header-logo);
	height: var(--header-logo);
	max-width: none;
	object-fit: contain;
}

.rth-nav {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
}

.rth-nav__list {
	display: flex;
	flex: 1 1 auto;
	align-items: stretch;
	gap: clamp(24px, calc(7.24vw - 50.1px), 75px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rth-nav--left .rth-nav__list {
	justify-content: flex-start;
}

.rth-nav--right .rth-nav__list {
	justify-content: flex-end;
}

.rth-nav__item {
	position: relative;
	display: flex;
	align-items: center;
}

.rth-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--font-alt);
	font-weight: 700;
	font-size: calc(clamp(17px, calc(0.798vw + 8.83px), 20px) * var(--fs-scale));
	line-height: normal;
	letter-spacing: normal;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--color-green-darker);
	text-decoration: none;
}

.rth-nav__link:hover,
.rth-nav__link:focus {
	color: var(--color-green-darker);
	text-decoration: underline;
	text-underline-offset: 6px;
}

.rth-nav__item--current > .rth-nav__link .rth-nav__caret {
	stroke: var(--color-green-darker);
}

.rth-nav__item--current > .rth-nav__link:hover:not(:focus-visible) {
	text-decoration: none;
}

.rth-nav__item--current > .rth-nav__link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.75rem;
	height: 3px;
	background: var(--color-green-darker);
	border-radius: 2px;
}

.rth-nav__submenu .rth-nav__subitem--current > a {
	font-weight: 700;
	box-shadow: inset 3px 0 0 var(--color-gold);
}

.rth-nav__caret {
	flex: 0 0 auto;
	width: 14.36px;
	height: 8.37px;
	fill: none;
	stroke: var(--color-green-darker);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.rth-nav__submenu {
	--submenu-offset: -2rem;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 20;
	min-width: 13rem;
	margin: var(--submenu-offset) 0 0;
	padding: 1rem 0;
	list-style: none;
	background: white;
	border-radius: 1rem;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
	opacity: 0;
	visibility: hidden;
	/* Hiding lags so a brief slip off the link doesn't close the menu. */
	transition: opacity 0.15s ease, visibility 0s linear 0.25s;
}

.rth-nav__item--parent:hover .rth-nav__submenu,
.rth-nav__item--parent:focus-within .rth-nav__submenu {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.15s ease, visibility 0s;
}

.rth-nav__submenu a {
	display: block;
	padding: 0.5rem 1.25rem;
	font-family: var(--font-alt);
	font-weight: 500;
	font-size: calc(1rem * var(--fs-scale));
	white-space: nowrap;
	color: var(--color-green-dark);
	text-decoration: none;
}

.rth-nav__submenu a:hover,
.rth-nav__submenu a:focus {
	background: var(--color-mint);
	color: var(--color-green-dark);
}

body.home .rth-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

body.home.admin-bar .rth-header {
	top: 32px;
}

/* Mobile nav */
.rth-header__mobile,
.rth-drawer {
	display: none;
}

.rth-header__toggle,
.rth-drawer__close,
.rth-drawer__expand {
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.rth-header__toggle:hover,
.rth-header__toggle:focus,
.rth-header__toggle:active {
	background: var(--color-gold-hover);
	color: var(--color-green-darker);
}

.rth-drawer__close:hover,
.rth-drawer__close:focus,
.rth-drawer__close:active,
.rth-drawer__expand:hover,
.rth-drawer__expand:focus,
.rth-drawer__expand:active {
	background: transparent;
	color: var(--color-green-darker);
}

.rth-header__bars,
.rth-header__bars::before,
.rth-header__bars::after {
	display: block;
	width: 26px;
	height: 3px;
	border-radius: 2px;
	background: currentColor;
}

.rth-header__bars {
	position: relative;
}

.rth-header__bars::before,
.rth-header__bars::after {
	content: '';
	position: absolute;
	left: 0;
}

.rth-header__bars::before {
	top: -9px;
}

.rth-header__bars::after {
	top: 9px;
}

/* Below tablet the split nav can't hold at any type size — swap to a drawer. */
@media (max-width: 1023px) {
	:root {
		--header-clear: calc(var(--space-md) + 2.375rem + var(--space-sm) + 92px);
	}

	.rth-header {
		padding-bottom: var(--space-md);
	}

	.rth-header__bar {
		display: none;
	}

	.rth-header__mobile {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--space-md);
		margin-inline: var(--header-gutter);
	}

	.rth-header__mobile-logo {
		display: block;
		line-height: 0;
	}

	.rth-header__mobile-logo img {
		width: 92px;
		height: 92px;
		max-width: none;
		object-fit: contain;
	}

	.rth-header__toggle {
		width: 52px;
		height: 52px;
		flex: 0 0 auto;
		background: var(--color-gold);
		border-radius: 12px;
		color: var(--color-green-darker);
	}

	.rth-drawer {
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		width: min(86vw, 320px);
		z-index: 100;
		overflow-y: auto;
		overscroll-behavior: contain;
		/* Top padding clears the absolutely positioned close button. */
		padding: 5rem var(--space-md) var(--space-2xl);
		background: var(--color-gold);
		text-align: left;
		box-shadow: -10px 0 30px rgba(0, 0, 0, 0.22);
	}

	.rth-drawer[hidden] {
		display: none;
	}

	.rth-drawer__close {
		position: absolute;
		top: var(--space-md);
		right: var(--space-md);
		width: 44px;
		height: 44px;
		color: var(--color-green-darker);
	}

	.rth-drawer__close svg {
		width: 26px;
		height: 26px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2.5;
		stroke-linecap: round;
	}

	.rth-drawer__list,
	.rth-drawer__submenu {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.rth-drawer__row {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
	}

	.rth-drawer__link {
		display: block;
		padding: 0.7rem 0.25rem;
		font-family: var(--font-alt);
		font-weight: 700;
		font-size: calc(1.25rem * var(--fs-scale));
		text-transform: uppercase;
		color: var(--color-green-darker);
		text-decoration: none;
	}

	.rth-drawer__link:hover,
	.rth-drawer__link:focus {
		color: var(--color-green-darker);
		text-decoration: underline;
		text-underline-offset: 5px;
	}

	.rth-drawer__item--current > .rth-drawer__row .rth-drawer__link,
	.rth-drawer__item--current > .rth-drawer__row .rth-drawer__link:hover,
	.rth-drawer__item--current > .rth-drawer__row .rth-drawer__link:focus {
		text-decoration: underline;
		text-decoration-thickness: 3px;
		text-underline-offset: 5px;
	}

	.rth-drawer__submenu .rth-drawer__subitem--current > a,
	.rth-drawer__submenu .rth-drawer__subitem--current > a:hover,
	.rth-drawer__submenu .rth-drawer__subitem--current > a:focus {
		font-weight: 700;
		color: var(--color-green-darker);
	}

	.rth-drawer__expand {
		width: 40px;
		height: 40px;
		flex: 0 0 auto;
	}

	.rth-drawer__expand .rth-nav__caret {
		transition: transform 0.2s ease;
	}

	.rth-drawer__expand[aria-expanded='true'] .rth-nav__caret {
		transform: rotate(180deg);
	}

	.rth-drawer__submenu {
		padding: 0 0 0.5rem var(--space-md);
	}

	.rth-drawer__submenu a {
		display: block;
		padding: 0.45rem 0;
		font-family: var(--font-alt);
		font-weight: 500;
		font-size: calc(1.0625rem * var(--fs-scale));
		color: var(--color-green-darker);
		text-decoration: none;
	}

	.rth-drawer__submenu a:hover,
	.rth-drawer__submenu a:focus {
		color: var(--color-green-darker);
		text-decoration: underline;
		text-underline-offset: 4px;
	}

	body.rth-drawer-open {
		overflow: hidden;
	}
}

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

/* Site footer */
.rth-footer {
	position: relative;
	z-index: 0;
	background-color: white;
	background-image: var(--footer-bg);
	background-repeat: no-repeat;
	background-position: bottom center;
	background-size: 100% auto;
	padding-top: calc(var(--space-2xl) + 100px);
}

.rth-footer::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	aspect-ratio: 1920 / 755;
	background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0) 100%);
	pointer-events: none;
}

.rth-footer__inner {
	margin-inline: clamp(20px, 10.6vw, 183px);
}

/* Newsletter */
.rth-footer__newsletter {
	text-align: center;
	margin-bottom: var(--space-2xl);
}

.rth-footer__newsletter-heading {
	max-width: 1250px;
	margin-inline: auto;
}

/* Brand row */
.rth-footer__brand {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	flex-wrap: wrap;
}

.rth-footer__logo img {
	width: 157.82px;
	height: 164.86px;
	max-width: none;
	object-fit: contain;
}

.rth-footer__social {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rth-footer__social svg {
	display: block;
	width: 60px;
	height: 60px;
	transition: transform 0.2s ease;
}

.rth-footer__social a:hover svg,
.rth-footer__social a:focus svg {
	transform: scale(1.08);
}

/* Columns */
.rth-footer__cols {
	display: grid;
	grid-template-columns: 1fr 1fr 1.4fr;
	gap: var(--space-xl);
	margin-top: var(--space-lg);
	padding-top: var(--space-lg);
	border-top: 1px solid var(--color-hairline);
}

.rth-footer__heading {
	font-family: var(--font-alt); /* Inter */
	font-weight: 600;
	font-size: calc(clamp(1.375rem, 2.2vw, 2rem) * var(--fs-scale)); /* 32px on desktop */
	line-height: normal;
	letter-spacing: 0;
	color: black;
	margin: 0 0 var(--space-md);
}

.rth-footer__goal,
.rth-footer__links li,
.rth-footer__links a,
.rth-footer__contact {
	font-family: var(--font-mono); /* JetBrains Mono */
	font-weight: 400;
	font-size: calc(clamp(1rem, 1.35vw, 1.375rem) * var(--fs-scale)); /* 22px on desktop */
	line-height: 2.273; /* 50 / 22 */
	letter-spacing: 0;
	color: black;
}

.rth-footer__goal {
	margin: 0;
	max-width: 22ch;
}

.rth-footer__links,
.rth-footer__contact {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rth-footer__links a,
.rth-footer__contact a {
	color: black;
	text-decoration: none;
}

.rth-footer__links a:hover,
.rth-footer__links a:focus,
.rth-footer__contact a:hover,
.rth-footer__contact a:focus {
	color: black;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.rth-footer__contact-row {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	margin-bottom: var(--space-xs);
}

.rth-footer .rth-footer__contact-icon {
	flex: 0 0 auto;
	width: 1.35em;
	height: 1em;
	margin-top: calc((1lh - 1em) / 2);
}

.rth-footer__address-part {
	white-space: nowrap;
}

/* Copyright bar */
.rth-footer__bar {
	position: relative;
	margin-top: var(--space-2xl);
	padding: var(--space-sm) var(--space-md);
	background: var(--color-gold);
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	text-align: center;
}

.rth-footer__bar p {
	margin: 0;
	font-family: var(--font-mono);
	font-size: calc(var(--fs-body) * var(--fs-scale)); /* 18px */
	line-height: 1.6;
	color: var(--color-green-darker);
}

.rth-footer__paw {
	position: absolute;
	right: var(--space-lg);
	top: 0;
	transform: translateY(-50%);
	width: 76px;
	height: 76px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	line-height: 0;
}

.rth-footer__paw:hover,
.rth-footer__paw:focus,
.rth-footer__paw:active {
	background: transparent;
}

.rth-footer__paw svg {
	display: block;
	width: 76px;
	height: 76px;
	filter: drop-shadow(0 10px 26px rgba(0, 0, 0, 0.25));
}

@media (max-width: 900px) {
	.rth-footer__cols {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-lg);
	}
}

@media (max-width: 700px) {
	.rth-footer__bar p {
		padding-right: 6.5rem;
	}
}

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

	.rth-footer__brand {
		justify-content: center;
	}

	/* Scales with the viewport instead of pinning at the 40px floor, so the
	   longest word still fits the column and never breaks mid-word. The 2.5rem
	   ceiling matches that floor, so nothing jumps at the breakpoint. */
	.rth-footer__newsletter-heading {
		font-size: calc(clamp(1.5rem, 6.8vw, 2.5rem) * var(--fs-scale));
	}
}

/*
 * Gravity Forms, shared by every form. .gform_wrapper.gform-theme matches the
 * specificity of the page-stylesheet overrides, which win the tie by loading later.
 */
.gform_wrapper.gform-theme {
	--gf-color-danger: var(--color-brick);
	/* Gravity Forms builds these tints from its own RGB triple, not --gf-color-danger. */
	--gf-form-validation-bg-color: color-mix(in srgb, var(--color-brick) 3%, transparent);
	--gf-form-validation-border-color: color-mix(in srgb, var(--color-brick) 25%, transparent);
	--gf-form-validation-heading-icon-bg-color: color-mix(in srgb, var(--color-brick) 5%, transparent);
	--gf-form-validation-outline-color-focus: color-mix(in srgb, var(--color-brick) 65%, transparent);
}

.gform_wrapper.gform-theme .gform_required_legend,
.gform_wrapper.gform-theme .gfield--type-checkbox .gfield_label {
	display: none;
}

.gform_wrapper.gform-theme input[type='text'],
.gform_wrapper.gform-theme input[type='email'],
.gform_wrapper.gform-theme input[type='tel'],
.gform_wrapper.gform-theme select,
.gform_wrapper.gform-theme textarea {
	width: 100%;
	color: black;
	background: white;
	border: 1px solid var(--color-field-border);
}

.gform_wrapper.gform-theme input::placeholder,
.gform_wrapper.gform-theme textarea::placeholder {
	color: var(--color-placeholder);
	opacity: 1; /* Firefox dims placeholders by default. */
}

.gform_wrapper.gform-theme :is(.gfield_checkbox, .gfield_radio) .gchoice {
	display: flex;
	align-items: center;
}

/* Both footer classes, to outrank Gravity Forms' framework button rule. */
.gform_wrapper.gform-theme .gform-footer.gform_footer input[type='submit'].gform_button.button {
	block-size: auto;
	padding: 1.125rem 2.25rem;
	font-family: var(--font-display); /* Lexend */
	font-weight: 600;
	font-size: calc(1.375rem * var(--fs-scale)); /* 22px */
	line-height: 1.2;
	letter-spacing: 0;
	color: white;
	background: var(--color-olive);
	border: 0;
	border-radius: 12px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.gform_wrapper.gform-theme .gform-footer.gform_footer input[type='submit'].gform_button.button:hover,
.gform_wrapper.gform-theme .gform-footer.gform_footer input[type='submit'].gform_button.button:focus {
	background: var(--color-olive-deep);
}

/* Opting out of the framework also drops Gravity Forms' error colours. */
.gform-theme__disable-framework .gform_wrapper.gform-theme :is(.gform_validation_errors, .gform_submission_error, .gfield_validation_message) {
	color: var(--color-brick);
}

/* Every form sets its own field border, which hides Gravity Forms' error border. */
.gform_wrapper.gform-theme .gfield_error [aria-invalid='true'] {
	border-color: var(--color-brick);
}

/* Newsletter form */
.rth-footer__form {
	max-width: 46rem;
	margin-inline: auto;
}

.rth-footer .gform_wrapper {
	--gf-ctrl-btn-bg-color-primary: var(--color-gold);
	--gf-ctrl-btn-bg-color-hover-primary: var(--color-gold-hover);
	--gf-ctrl-btn-bg-color-focus-primary: var(--color-gold-hover);
	--gf-ctrl-btn-border-color-primary: var(--color-gold);
	--gf-ctrl-btn-border-color-hover-primary: var(--color-gold-hover);
	--gf-ctrl-btn-border-color-focus-primary: var(--color-gold-hover);
	--gf-ctrl-btn-color-primary: var(--color-green-darker);
	--gf-ctrl-btn-color-hover-primary: var(--color-green-darker);
	--gf-ctrl-btn-color-focus-primary: var(--color-green-darker);
	--gf-ctrl-btn-radius: var(--radius-pill);
	--gf-ctrl-btn-font-family: var(--font-alt); /* Inter */
	--gf-ctrl-btn-font-size: calc(clamp(1rem, 1.5vw, 1.5rem) * var(--fs-scale)); /* 24px on desktop */
	--gf-ctrl-btn-font-size-md: calc(clamp(1rem, 1.5vw, 1.5rem) * var(--fs-scale));
	--gf-ctrl-btn-font-weight: 700;
	--gf-ctrl-btn-text-transform: uppercase;
	--gf-ctrl-btn-padding-x: 1.5rem;
	--gf-ctrl-btn-padding-x-md: 1.5rem;
	/* Sizes the button to the input's height, which its padding alone dictates. */
	--gf-ctrl-btn-padding-y: 0.9375rem;
	--gf-ctrl-btn-size: auto;
	--gf-ctrl-btn-size-md: auto;
	/* Fixed 38px control height would clip the 24px text; let padding size it. */
	--gf-ctrl-size: auto;
	--gf-ctrl-size-md: auto;
	--gf-ctrl-border-color: var(--color-field-border);
	--gf-ctrl-border-color-focus: var(--color-gold-deep);
	--gf-ctrl-radius: var(--radius-pill);
	--gf-ctrl-outline-width-focus: 0;
	--gf-field-gap-x: var(--space-sm);
	--gf-form-gap-y: 0;
	/* Defaults to the form gap, which would leave the error box touching the field. */
	--gf-form-validation-margin-y: 0 var(--space-sm);
}

.rth-footer .gform_wrapper .gform_fields {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	grid-template-columns: none;
}

.rth-footer .gform_wrapper .gfield--type-text,
.rth-footer .gform_wrapper .gfield--type-email {
	flex: 1 1 auto;
	min-width: 0;
	grid-column: auto;
}

.rth-footer .gform_wrapper .gfield--type-submit {
	flex: 0 0 auto;
	width: auto;
	grid-column: auto;
	padding: 0;
}

.rth-footer .gform_wrapper .gfield_label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.rth-footer .gform_wrapper input[type='text'],
.rth-footer .gform_wrapper input[type='email'] {
	padding: 0.75rem 1.25rem 0.75rem 2.5rem;
	border-radius: var(--radius-pill);
	font-family: var(--font-alt); /* Inter */
	font-weight: 500;
	font-size: calc(clamp(1rem, 1.5vw, 1.5rem) * var(--fs-scale)); /* 24px on desktop */
	line-height: normal;
	letter-spacing: 0;
	text-align: left;
}

.rth-footer .gform_wrapper input[type='text']:focus,
.rth-footer .gform_wrapper input[type='email']:focus {
	border-color: var(--color-gold-deep);
}

.rth-footer .rth-footer__form .gform-theme.gform_wrapper input[type='submit'] {
	letter-spacing: 0;
	cursor: pointer;
}

.rth-footer .gform_wrapper .gform_footer {
	margin: 0;
	padding: 0;
}

.rth-footer .gform_wrapper .gform_validation_errors,
.rth-footer .gform_wrapper .gfield_validation_message {
	font-family: var(--font-alt);
	font-size: calc(0.8125rem * var(--fs-scale));
	border-radius: var(--radius);
}

.rth-footer .gform_confirmation_message {
	font-family: var(--font-mono);
	font-size: calc(0.9375rem * var(--fs-scale));
	color: var(--color-green-dark);
}

@media (max-width: 480px) {
	.rth-footer .gform_wrapper .gform_fields {
		flex-wrap: wrap;
	}

	.rth-footer .gform_wrapper .gfield--type-submit {
		width: 100% !important;
	}

	.rth-footer .gform_wrapper input[type='submit'] {
		width: 100% !important;
	}
}
