/*
 * WORTH Training: 2026 homepage (template-homepage.php).
 *
 * Built from the 2026 XD artboard (1920px wide, 152px side margins) using the
 * site's own type: Open Sans for headings/UI, Merriweather for body copy.
 * Sizes scale down fluidly with clamp(); note html is 62.5% in style.css, so px is used here.
 */

/* ---------------------------------------------------------------- Base + resets against style.css */

.wt-home {
	--wt-red: #cc092f;
	--wt-red-dark: #a8071f;
	--wt-ink: #000;
	--wt-navy: #0f1926;
	--wt-navy-card: #212b3b;
	--wt-border: rgba(112, 112, 112, .22);
	--wt-sans: 'Open Sans', sans-serif;
	--wt-serif: 'Merriweather', serif;
	--wt-gutter: clamp(20px, 4vw, 60px);
	--wt-section: clamp(64px, 7vw, 120px);
	display: block;
	overflow-x: clip;
	color: var(--wt-ink);
	font-family: var(--wt-sans);
	font-size: 16px;
	line-height: 1.5;
}

.wt-home *,
.wt-home *::before,
.wt-home *::after {
	box-sizing: border-box;
}

/* Resets use :where() so they only carry .wt-home's specificity (0,1,0): enough to beat
   style.css element rules (e.g. p { padding-bottom: 40px }), while any component class below wins. */
.wt-home section {
	/* Undo style.css `.home section { background: #fff; padding: 80px 30px 40px; }` */
	padding: 0;
	background: none;
}

.wt-home :where(h1, h2, h3, p, ul, ol, dl, dd, blockquote) {
	margin: 0;
	padding: 0;
}

.wt-home :where(ul, ol) {
	list-style: none;
	font-family: inherit;
	font-weight: inherit;
}

.wt-home :where(h1, h2, h3) {
	color: inherit;
	font-family: var(--wt-sans);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -.03em;
}

.wt-home :where(p) {
	font-family: var(--wt-serif);
	font-weight: 300;
	line-height: 1.65;
}

.wt-home :where(strong) {
	font-weight: 700;
}

.wt-home :where(blockquote) {
	border: 0;
	background: none;
	font-style: normal;
	quotes: none;
}

.wt-home :where(img) {
	display: block;
	max-width: 100%;
	height: auto;
}

.wt-home :where(a) {
	text-decoration: none;
}

.wt-home :where(.worth-icon) {
	display: block;
	flex: none;
}

.wt-container {
	width: min(1616px, 100% - 2 * var(--wt-gutter));
	margin-inline: auto;
}

/* ---------------------------------------------------------------- Shared pieces */

.wt-lead {
	font-size: clamp(16px, 1.15vw, 22px);
}

.wt-heading {
	font-size: clamp(32px, 2.8vw, 54px);
}

.wt-heading--xl {
	font-size: clamp(36px, 3.5vw, 67px);
	line-height: 1.16;
}

.wt-dot {
	color: var(--wt-red);
}

.wt-eyebrow {
	color: var(--wt-red);
	font-family: var(--wt-sans);
	font-size: clamp(18px, 1.77vw, 34px);
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1.2;
	text-transform: uppercase;
}

.wt-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
}

/* Pill chip */
.wt-chip {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 40px;
	padding: 6px 22px 6px 18px;
	border-radius: 999px;
	font-family: var(--wt-sans);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .01em;
	line-height: 1.3;
}

.wt-chip--light {
	background: rgba(240, 240, 240, .58);
	text-transform: uppercase;
}

.wt-chip--light .worth-icon {
	width: 14px;
	height: 18px;
	color: var(--wt-red);
}

.wt-chip--dark {
	min-height: 49px;
	padding: 8px 28px;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: clamp(15px, .94vw, 18px);
}

/* Pill buttons (XD style) */
.wt-btn,
.wt-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 57px;
	padding: 10px 28px;
	border-radius: 999px;
	color: #fff;
	font-family: var(--wt-sans);
	font-size: clamp(15px, .94vw, 18px);
	font-weight: 500;
	letter-spacing: -.01em;
	line-height: 1.2;
	white-space: nowrap;
	transition: background-color .2s ease, transform .2s ease;
}

.wt-btn:hover,
.wt-btn:focus-visible {
	color: #fff;
	transform: translateY(-1px);
}

.wt-btn .worth-icon--arrow {
	width: 19px;
	height: 19px;
}

.wt-btn .worth-icon--calendar {
	width: 21px;
	height: 22px;
}

.wt-btn--red {
	background: var(--wt-red);
}

.wt-btn--red:hover,
.wt-btn--red:focus-visible {
	background: var(--wt-red-dark);
}

.wt-btn--black {
	background: #000;
}

.wt-btn--dark {
	background: #1a1a1a;
}

.wt-btn--black:hover,
.wt-btn--black:focus-visible,
.wt-btn--dark:hover,
.wt-btn--dark:focus-visible {
	background: var(--wt-red);
}

.wt-home a:focus-visible {
	outline: 3px solid var(--wt-red);
	outline-offset: 3px;
}

.wt-dark a:focus-visible,
.wt-contact__panel a:focus-visible {
	outline-color: #fff;
}

/* Round arrow button */
.wt-circle-btn {
	display: grid;
	place-items: center;
	width: clamp(54px, 3.85vw, 74px);
	height: clamp(54px, 3.85vw, 74px);
	border-radius: 50%;
	background: var(--wt-red);
	color: #fff;
	transition: background-color .3s ease, color .3s ease;
}

.wt-circle-btn .worth-icon {
	width: 40%;
	height: 40%;
}

/* ---------------------------------------------------------------- Hero */

.wt-home .wt-hero {
	padding: clamp(40px, 4.3vw, 82px) 0 clamp(48px, 4.4vw, 84px);
}

.wt-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 49%);
	align-items: center;
	gap: 48px;
}

.wt-hero__title {
	margin-top: clamp(24px, 2.2vw, 42px);
	font-size: clamp(40px, 3.75vw, 72px);
	line-height: 1.04;
}

.wt-hero__title span {
	display: block;
	color: var(--wt-red);
}

.wt-hero .wt-lead {
	max-width: 560px;
	margin-top: clamp(18px, 1.5vw, 28px);
}

.wt-hero .wt-lead strong {
	color: var(--wt-red);
	font-weight: 700;
}

.wt-hero .wt-btn {
	margin-top: clamp(28px, 2.6vw, 50px);
}

.wt-stats {
	display: flex;
	gap: clamp(32px, 5vw, 96px);
	margin-top: clamp(40px, 3.8vw, 72px);
}

.wt-stats__value {
	font-size: clamp(34px, 2.45vw, 47px);
	font-weight: 600;
	letter-spacing: -.04em;
	line-height: 1;
}

.wt-stats__value span {
	color: var(--wt-red);
}

.wt-stats__label {
	margin-top: 10px;
	font-size: clamp(15px, 1.1vw, 21px);
	line-height: 1.25;
}

.wt-hero__media {
	position: relative;
	isolation: isolate;
}

/* Faint speedometer marks from the logo, as in the XD. */
.wt-hero__media::before,
.wt-hero__media::after {
	content: "";
	position: absolute;
	z-index: -1;
	width: 300px;
	height: 384px;
	background: url(../images/home/gauge.svg) center / contain no-repeat;
	opacity: .035;
	pointer-events: none;
}

.wt-hero__media::before {
	left: -180px;
	bottom: 40px;
	transform: rotate(-90deg);
}

.wt-hero__media::after {
	right: -150px;
	top: 170px;
	transform: rotate(90deg);
}

.wt-hero__image {
	width: 100%;
	aspect-ratio: 789 / 768;
	object-fit: cover;
	border-radius: 22px;
}

.wt-hero__card,
.wt-hero__card:visited {
	position: absolute;
	left: clamp(-56px, -2.9vw, -24px);
	bottom: 9%;
	display: flex;
	align-items: center;
	gap: clamp(16px, 1.6vw, 30px);
	width: min(397px, 80%);
	padding: clamp(16px, 1.5vw, 28px) clamp(18px, 1.6vw, 31px);
	border: 1px solid rgba(112, 112, 112, .29);
	border-radius: 26px;
	background: #fff;
	box-shadow: 0 20px 30px rgba(0, 0, 0, .06);
	color: var(--wt-ink);
	transition: transform .2s ease, box-shadow .2s ease;
}

.wt-hero__card:hover,
.wt-hero__card:focus-visible {
	color: var(--wt-ink);
	transform: translateY(-3px);
	box-shadow: 0 26px 40px rgba(0, 0, 0, .1);
}

.wt-hero__card-icon {
	display: grid;
	place-items: center;
	width: clamp(48px, 3.5vw, 66px);
	height: clamp(48px, 3.5vw, 66px);
	color: var(--wt-red);
}

.wt-hero__card-icon .worth-icon {
	width: 100%;
	height: 100%;
}

.wt-hero__card-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.wt-hero__card-eyebrow {
	font-size: clamp(13px, .89vw, 17px);
	font-weight: 500;
	opacity: .49;
	text-transform: uppercase;
}

.wt-hero__card-title {
	font-size: clamp(20px, 1.4vw, 27px);
	font-weight: 600;
	letter-spacing: -.03em;
	line-height: 1.15;
}

/* ---------------------------------------------------------------- Ticker */

.wt-ticker {
	overflow: hidden;
	background: #fafafa;
}

.wt-ticker__track {
	display: flex;
	width: max-content;
	animation: wt-ticker 60s linear infinite;
}

.wt-ticker:hover .wt-ticker__track {
	animation-play-state: paused;
}

.wt-ticker__list {
	display: flex;
	align-items: center;
	flex: none;
}

.wt-ticker__list li {
	display: flex;
	align-items: center;
	min-height: clamp(64px, 5.05vw, 97px);
	font-size: clamp(16px, 1.15vw, 22px);
	letter-spacing: -.01em;
	text-transform: uppercase;
	white-space: nowrap;
}

.wt-ticker__list li::after {
	content: "";
	width: 9px;
	height: 9px;
	margin: 0 clamp(24px, 2.1vw, 40px);
	border-radius: 50%;
	background: var(--wt-red);
}

@keyframes wt-ticker {
	to {
		transform: translateX(-50%);
	}
}

/* ---------------------------------------------------------------- Instructor + steps */

.wt-home .wt-instructor {
	padding: clamp(56px, 5.4vw, 104px) 0 clamp(64px, 6.5vw, 125px);
}

.wt-instructor__panel {
	display: grid;
	grid-template-columns: minmax(0, 472fr) minmax(0, 775fr);
	align-items: center;
	gap: clamp(32px, 4.2vw, 81px);
	max-width: 1394px;
	margin: 0 auto;
	padding: clamp(24px, 2.4vw, 45px) clamp(24px, 2.6vw, 49px);
	border-radius: 22px;
	background: rgba(242, 242, 242, .51);
}

.wt-instructor__image {
	width: 100%;
	aspect-ratio: 472 / 689;
	object-fit: cover;
	border-radius: 13px;
}

.wt-instructor__content {
	max-width: 720px;
}

.wt-instructor__name {
	margin-top: clamp(10px, 1.2vw, 22px);
	font-size: clamp(38px, 3.6vw, 69px);
	line-height: 1.05;
}

.wt-instructor .wt-lead {
	margin-top: clamp(18px, 1.6vw, 30px);
}

.wt-instructor .wt-lead + .wt-lead {
	margin-top: 1.2em;
}

.wt-instructor .wt-btn {
	margin-top: clamp(28px, 2.2vw, 42px);
}

.wt-steps {
	display: flex;
	justify-content: center;
	gap: clamp(16px, 2vw, 40px);
	margin-top: clamp(64px, 6vw, 114px);
}

.wt-steps__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: clamp(180px, 18vw, 340px);
	text-align: center;
}

.wt-steps__gauge {
	width: clamp(110px, 8.6vw, 166px);
	height: auto;
	color: #dcdcdc;
}

.wt-steps__number {
	fill: var(--wt-red);
	font-family: var(--wt-sans);
	font-size: 64px;
	font-weight: 700;
}

.wt-steps__label {
	margin-top: clamp(16px, 1.5vw, 28px);
	font-size: clamp(20px, 1.93vw, 37px);
	font-weight: 600;
	letter-spacing: -.03em;
	line-height: 1.15;
}

/* ---------------------------------------------------------------- Courses */

.wt-home .wt-courses {
	padding: clamp(24px, 2vw, 40px) 0 clamp(48px, 4.2vw, 80px);
}

.wt-course-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(24px, 2.7vw, 52px) clamp(20px, 2.5vw, 48px);
	margin-top: clamp(40px, 5.2vw, 100px);
}

.wt-course {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: clamp(20px, 2.65vw, 51px) clamp(20px, 2.75vw, 53px) clamp(28px, 3.1vw, 60px);
	border: 1px solid var(--wt-border);
	border-radius: 19px;
	background: #fff;
	box-shadow: 0 20px 20px rgba(0, 0, 0, .02);
	transition: background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.wt-course__media {
	position: relative;
}

.wt-course__image {
	width: 100%;
	aspect-ratio: 680 / 375;
	object-fit: cover;
	border-radius: 10px;
}

.wt-course__days {
	position: absolute;
	top: -16px;
	right: clamp(14px, 1.5vw, 29px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: clamp(64px, 4.2vw, 80px);
	height: clamp(74px, 4.8vw, 92px);
	border-radius: 7px;
	background: var(--wt-red);
	color: #fff;
	font-size: clamp(12px, .78vw, 15px);
	font-weight: 500;
	line-height: 1;
	text-transform: uppercase;
	transition: background-color .3s ease, color .3s ease;
}

.wt-course__days strong {
	font-size: clamp(28px, 1.77vw, 34px);
	font-weight: 600;
	line-height: 1.05;
}

.wt-course__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 24px;
	margin-top: clamp(28px, 2.2vw, 42px);
}

.wt-course__title {
	grid-column: 1;
	align-self: center;
	font-size: clamp(24px, 1.82vw, 35px);
	letter-spacing: -.035em;
}

.wt-course__link,
.wt-course__link:visited,
.wt-course__link:hover {
	color: inherit;
}

/* Whole card is the link. */
.wt-course__link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 19px;
}

.wt-course__text {
	grid-column: 1;
	max-width: 560px;
	margin-top: 12px;
	font-size: clamp(15px, 1.1vw, 20px);
	opacity: .65;
}

.wt-course .wt-circle-btn {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
}

/* Hover/focus state is the red card from the XD. */
.wt-course:hover,
.wt-course:focus-within {
	border-color: var(--wt-red);
	background: var(--wt-red);
	box-shadow: 0 24px 40px rgba(204, 9, 47, .18);
	color: #fff;
}

.wt-course:hover .wt-course__text,
.wt-course:focus-within .wt-course__text {
	opacity: .83;
}

.wt-course:hover .wt-circle-btn,
.wt-course:focus-within .wt-circle-btn,
.wt-course:hover .wt-course__days,
.wt-course:focus-within .wt-course__days {
	background: #fff;
	color: var(--wt-red);
}

.wt-course:hover .wt-circle-btn,
.wt-course:focus-within .wt-circle-btn {
	color: #000;
}

.wt-course__link:focus-visible {
	outline: none;
}

.wt-course:focus-within .wt-course__link::after {
	outline: 3px solid #000;
	outline-offset: 4px;
}

/* ---------------------------------------------------------------- Dark band: booking + testimonials */

.wt-dark {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-top: clamp(40px, 3.3vw, 64px);
	padding: clamp(64px, 9.8vw, 188px) 0 clamp(72px, 10.5vw, 202px);
	background: var(--wt-navy);
	color: #fff;
}

.wt-dark__gauge {
	position: absolute;
	z-index: -1;
	left: -157px;
	top: 940px;
	width: clamp(320px, 27vw, 520px);
	opacity: .08;
	pointer-events: none;
}

.wt-booking__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 923px);
	gap: clamp(40px, 4.6vw, 90px);
	align-items: start;
}

.wt-booking .wt-heading--xl {
	margin-top: clamp(28px, 2.6vw, 50px);
}

.wt-booking .wt-lead {
	max-width: 520px;
	margin-top: clamp(18px, 1.5vw, 28px);
	color: rgba(255, 255, 255, .65);
}

.wt-booking__intro .wt-btn {
	margin-top: clamp(28px, 2.6vw, 50px);
}

.wt-booking__events {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(32px, 3.4vw, 66px);
	min-width: 0;
}

/* Amelia renders its own UI; this only frames it on the navy band. */
.wt-booking__embed {
	width: 100%;
	min-width: 0;
	padding: clamp(8px, 1vw, 16px);
	border-radius: 15px;
	background: #fff;
	color: #191919;
}

.wt-booking__embed:empty {
	display: none;
}

.wt-home .wt-testimonials {
	margin-top: clamp(80px, 12vw, 230px);
}

.wt-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(14px, 1vw, 19px);
	margin-top: clamp(40px, 4.7vw, 90px);
}

.wt-testimonial {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding: clamp(36px, 3.8vw, 72px) clamp(24px, 2.6vw, 50px) clamp(32px, 3.1vw, 59px);
	border-radius: 25px;
	background: var(--wt-red);
	color: #fff;
}

.wt-testimonial:nth-child(2) {
	background: var(--wt-navy-card);
}

.wt-testimonial:nth-child(3) {
	background: #f6f6f6;
	color: #000;
}

.wt-testimonial__banner {
	position: absolute;
	z-index: -1;
	inset: 0 0 auto;
	height: clamp(120px, 8.1vw, 156px);
}

.wt-testimonial__banner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wt-testimonial__banner::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(33, 43, 59, .1) 0%, rgba(33, 43, 59, .7) 55%, var(--wt-navy-card) 100%);
}

.wt-testimonial__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 16px;
	align-items: start;
}

.wt-testimonial__name {
	font-family: var(--wt-sans);
	font-size: clamp(20px, 1.35vw, 26px);
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1.1;
}

.wt-testimonial__role {
	grid-column: 1;
	margin-top: 6px;
	font-family: var(--wt-sans);
	font-size: clamp(14px, .94vw, 18px);
	font-weight: 400;
	line-height: 1.1;
	opacity: .6;
}

.wt-stars {
	grid-column: 2;
	grid-row: 1 / span 2;
	display: flex;
	gap: 2px;
	color: #f8d12e;
}

.wt-stars .worth-icon {
	width: 17px;
	height: 17px;
}

.wt-testimonial__quote {
	flex: 1;
	margin-top: clamp(24px, 2.2vw, 40px);
}

.wt-testimonial__quote p {
	font-size: clamp(15px, 1.1vw, 20px);
	font-weight: 300;
	line-height: 1.75;
}

.wt-testimonial__avatar {
	display: grid;
	place-items: center;
	width: 65px;
	height: 65px;
	margin-top: clamp(28px, 2.4vw, 44px);
	border-radius: 50%;
	background: #fff;
	color: var(--wt-red);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .02em;
}

.wt-testimonial:nth-child(2) .wt-testimonial__avatar {
	background: var(--wt-red);
	color: #fff;
}

.wt-testimonial:nth-child(3) .wt-testimonial__avatar {
	background: var(--wt-navy);
	color: #fff;
}

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

/* The card straddles the start of the red newsletter band in footer.php. */
.wt-home .wt-contact {
	position: relative;
	isolation: isolate;
	padding: clamp(64px, 8.3vw, 160px) 0 clamp(48px, 5vw, 96px);
}

.wt-contact__card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 407fr) minmax(0, 1121fr);
	gap: clamp(16px, 1.4vw, 27px);
	margin-top: clamp(32px, 4.8vw, 93px);
	padding: clamp(14px, 1.6vw, 30px) clamp(14px, 1.6vw, 30px) clamp(14px, 1.6vw, 30px) clamp(14px, 1.75vw, 34px);
	border: 1px solid rgba(112, 112, 112, .38);
	border-radius: 13px;
	background: #fff;
}

.wt-contact__card::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 50%;
	bottom: calc(-1 * clamp(48px, 5vw, 96px) - 1px);
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: var(--wt-red);
}

.wt-contact__panel {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: clamp(460px, 32.8vw, 629px);
	padding: clamp(36px, 3.6vw, 70px) clamp(24px, 2.7vw, 52px);
	border-radius: 7px;
	background: var(--wt-red);
	color: #fff;
}

.wt-contact__bg {
	position: absolute;
	z-index: -2;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wt-contact__panel::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: rgba(204, 9, 47, .86);
}

.wt-contact__panel-title {
	font-size: clamp(28px, 2.03vw, 39px);
	letter-spacing: -.04em;
}

.wt-contact__panel-text {
	max-width: 280px;
	margin-top: 14px;
	font-size: clamp(14px, .99vw, 17px);
	line-height: 1.6;
	opacity: .8;
}

.wt-outline-btn,
.wt-outline-btn:visited {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	width: min(300px, 100%);
	min-height: clamp(60px, 4.3vw, 82px);
	padding: 10px 30px;
	border: 1px solid #fff;
	border-radius: 999px;
	background: rgba(204, 9, 47, .7);
	color: #fff;
	font-size: clamp(16px, .99vw, 19px);
	font-weight: 600;
	letter-spacing: -.03em;
	transition: background-color .2s ease, color .2s ease;
}

.wt-outline-btn:first-of-type {
	margin-top: auto;
}

.wt-outline-btn + .wt-outline-btn {
	margin-top: clamp(14px, 1.2vw, 23px);
}

.wt-outline-btn:hover,
.wt-outline-btn:focus-visible {
	background: #fff;
	color: var(--wt-red);
}

.wt-outline-btn .worth-icon {
	width: 22px;
	height: 22px;
}

/* Form area. Styled to the XD: small uppercase labels, grey filled fields in two columns,
   full-width message, submit at bottom right. Targets WPForms' classic markup
   (wpforms-full.min.css uses `div.wpforms-container-full .wpforms-form ...`, so the selectors
   below carry one more class), with plain fallbacks for any other forms plugin. */
.wt-contact__form {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(24px, 2.9vw, 56px);
	border: 1px solid rgba(112, 112, 112, .35);
	border-radius: 7px;
	font-family: var(--wt-sans);
}

/* WPForms centres itself with `margin: 24px auto`, which shrinks it inside this flex column. */
.wt-contact__form .wpforms-container {
	width: 100%;
	margin: 0;
}

.wt-contact__form .wpforms-container .wpforms-form .wpforms-field {
	padding: 0 0 22px;
}

.wt-contact__form .wpforms-container .wpforms-form .wpforms-field-label,
.wt-contact__form label:not([class*="wpforms"]) {
	display: block;
	margin: 0 0 8px;
	color: #000;
	font-family: var(--wt-sans);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase;
}

.wt-contact__form .wpforms-container .wpforms-form .wpforms-required-label {
	color: var(--wt-red);
	font-weight: 500;
}

.wt-contact__form .wpforms-container .wpforms-form .wpforms-field-sublabel {
	margin-top: 6px;
	font-size: 12px;
	text-transform: none;
	opacity: .6;
}

.wt-contact__form .wpforms-container .wpforms-form input[type="text"],
.wt-contact__form .wpforms-container .wpforms-form input[type="email"],
.wt-contact__form .wpforms-container .wpforms-form input[type="tel"],
.wt-contact__form .wpforms-container .wpforms-form input[type="url"],
.wt-contact__form .wpforms-container .wpforms-form input[type="number"],
.wt-contact__form .wpforms-container .wpforms-form select,
.wt-contact__form .wpforms-container .wpforms-form textarea,
.wt-contact__form input[type="text"],
.wt-contact__form input[type="email"],
.wt-contact__form input[type="tel"],
.wt-contact__form select,
.wt-contact__form textarea {
	width: 100%;
	max-width: 100%;
	height: 50px;
	padding: 12px 16px;
	border: 0;
	border-radius: 7px;
	background: #eff0f0;
	color: #000;
	font-family: var(--wt-sans);
	font-size: 16px;
	line-height: 1.4;
	transition: background-color .2s ease, box-shadow .2s ease;
}

.wt-contact__form .wpforms-container .wpforms-form textarea,
.wt-contact__form textarea {
	height: 96px;
	min-height: 50px;
	resize: vertical;
}

.wt-contact__form .wpforms-container .wpforms-form input:focus,
.wt-contact__form .wpforms-container .wpforms-form select:focus,
.wt-contact__form .wpforms-container .wpforms-form textarea:focus,
.wt-contact__form input:focus,
.wt-contact__form select:focus,
.wt-contact__form textarea:focus {
	outline: 0;
	background: #e7e8e8;
	box-shadow: 0 0 0 2px var(--wt-red);
}

/* Two columns with the XD's ~40px gutter; one column on phones (WPForms classic doesn't stack them). */
.wt-contact__form .wpforms-container .wpforms-form .wpforms-one-half {
	width: calc(50% - 20px);
}

.wt-contact__form .wpforms-container .wpforms-form .wpforms-one-half:not(.wpforms-first) {
	margin-left: 40px;
}

@media (max-width: 600px) {
	.wt-contact__form .wpforms-container .wpforms-form .wpforms-one-half,
	.wt-contact__form .wpforms-container .wpforms-form .wpforms-one-half:not(.wpforms-first) {
		float: none;
		width: 100%;
		margin-left: 0;
	}
}

/* Validation and confirmation messages */
.wt-contact__form .wpforms-container .wpforms-form label.wpforms-error,
.wt-contact__form .wpforms-container .wpforms-form em.wpforms-error {
	margin-top: 6px;
	color: var(--wt-red);
	font-size: 13px;
	font-weight: 500;
}

.wt-contact__form .wpforms-container .wpforms-form input.wpforms-error,
.wt-contact__form .wpforms-container .wpforms-form textarea.wpforms-error {
	box-shadow: 0 0 0 2px var(--wt-red);
}

.wt-contact__form .wpforms-confirmation-container-full {
	margin: 0;
	padding: 20px 24px;
	border: 0;
	border-left: 4px solid var(--wt-red);
	border-radius: 7px;
	background: #f6f6f6;
	color: #000;
	font-size: 17px;
}

/* Submit: red pill with an arrow, bottom right (the XD shows round arrow buttons there). */
.wt-contact__form .wpforms-container .wpforms-form .wpforms-submit-container,
.wt-contact__form .wpforms-submit-container {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	padding: 4px 0 0;
}

.wt-contact__form .wpforms-container .wpforms-form button[type="submit"],
.wt-contact__form button[type="submit"],
.wt-contact__form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 50px;
	padding: 10px 26px 10px 30px;
	border: 0;
	border-radius: 999px;
	background: var(--wt-red);
	color: #fff;
	font-family: var(--wt-sans);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .2s ease;
}

.wt-contact__form .wpforms-container .wpforms-form button[type="submit"]::after,
.wt-contact__form button[type="submit"]::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M12 2 10.6 3.4 16.2 9H0v2h16.2l-5.6 5.6L12 18l8-8z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M12 2 10.6 3.4 16.2 9H0v2h16.2l-5.6 5.6L12 18l8-8z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wt-contact__form .wpforms-container .wpforms-form button[type="submit"]:hover,
.wt-contact__form .wpforms-container .wpforms-form button[type="submit"]:focus-visible,
.wt-contact__form button[type="submit"]:hover,
.wt-contact__form input[type="submit"]:hover {
	border: 0;
	background: #000;
	color: #fff;
}

.wt-contact__form .wpforms-container .wpforms-form button[type="submit"]:focus-visible {
	outline: 3px solid var(--wt-red);
	outline-offset: 3px;
}

.wt-contact__fallback-title {
	font-family: var(--wt-sans);
	font-size: clamp(24px, 1.8vw, 34px);
	font-weight: 600;
	letter-spacing: -.03em;
	line-height: 1.2;
}

.wt-contact__fallback p + p {
	max-width: 560px;
	margin-top: 14px;
	font-size: clamp(16px, 1.05vw, 19px);
}

.wt-contact__fallback a {
	color: var(--wt-red);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Overlap the newsletter band (footer.php) by 1px so no sub-pixel seam shows between the two reds. */
.worth-homepage #newsletter {
	position: relative;
	margin-top: -1px;
}

/* ---------------------------------------------------------------- Responsive */

@media (max-width: 1100px) {
	.wt-booking__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.wt-booking .wt-lead {
		max-width: 640px;
	}

	.wt-testimonial-grid {
		grid-template-columns: minmax(0, 1fr);
		max-width: 640px;
	}

	.wt-dark__gauge {
		display: none;
	}
}

@media (max-width: 999px) {
	.wt-hero__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.wt-hero__media {
		max-width: 640px;
	}

	.wt-hero__card {
		left: 16px;
		bottom: 16px;
	}

	.wt-hero__media::before,
	.wt-hero__media::after {
		display: none;
	}

	.wt-instructor__panel {
		grid-template-columns: minmax(0, 1fr);
		max-width: 640px;
	}

	.wt-instructor__photo {
		max-width: 360px;
	}

	.wt-contact__card {
		grid-template-columns: minmax(0, 1fr);
	}

	.wt-contact__panel {
		min-height: 0;
	}

	.wt-outline-btn:first-of-type {
		margin-top: 32px;
	}
}

@media (max-width: 800px) {
	.wt-course-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.wt-steps {
		flex-direction: column;
		align-items: center;
		gap: 40px;
	}
}

/* In-page links such as the hero "Ask Us" button (#contact). On desktop the header is sticky,
   so land the section heading ~50px below it (the section's own top padding counts toward that). */
@media screen and (min-width: 881px) {
	.wt-home .wt-contact {
		scroll-margin-top: calc(210px - clamp(64px, 8.3vw, 160px));
	}
}

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

@media (prefers-reduced-motion: reduce) {
	.wt-ticker__track {
		animation: none;
	}

	.wt-home *,
	.wt-home *::before,
	.wt-home *::after {
		transition-duration: .01ms !important;
	}
}
