/**
 * Truck Windscreens & Repairs — homepage.
 *
 * Geometry is derived from the 3742px-wide design file: every length is
 * expressed as design pixels multiplied by --u, so the full-bleed layout keeps
 * the design's proportions at any desktop width.
 */

:root {
	--u: 0.0267237vw; /* 1 design px */
	--cream: #fff8eb;
	--ink: #24150c;
	--blue: #0099cd;
	--sky: #98d9f7;
	--navy: #293373;
	--rule: #24150c;
	--gut: calc(52 * var(--u));
	--radius: calc(94 * var(--u));

	/* type */
	--fs-display: calc(155 * var(--u));
	--lh-display: calc(167 * var(--u));
	--fs-h2: calc(160 * var(--u));
	--lh-h2: calc(182 * var(--u));
	--fs-h3: calc(82 * var(--u));
	--fs-label: calc(80 * var(--u));
	--fs-label-lg: calc(100 * var(--u));
	--fs-lead: calc(60 * var(--u));
	--lh-lead: calc(78 * var(--u));
	--fs-body: calc(50 * var(--u));
	--lh-body: calc(64 * var(--u));
	--fs-stmt: calc(84 * var(--u));
	--lh-stmt: calc(103 * var(--u));
	--fs-nav: calc(49 * var(--u));
	--fs-cta: calc(46 * var(--u));

	/* recurring metrics */
	--cta-row: calc(190 * var(--u));
	--col-third: 32.87%;
	--col-wide: 57.51%;
	--col-photo: 67.16%;
}

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

html {
	scroll-behavior: smooth;
}

body.twr-home {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: var(--fs-body);
	line-height: calc(var(--lh-body) / var(--fs-body));
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

body.twr-home .site-header,
body.twr-home .site-footer,
body.twr-home .skip-link {
	display: none !important;
}

/* Resets use :where() so component rules below always win on specificity. */

.twr :where(a) {
	color: inherit;
	text-decoration: none;
}

.twr :where(img) {
	display: block;
	max-width: 100%;
}

.twr :where(p, blockquote, h1, h2, h3, ul, li) {
	margin: 0;
}

.twr-h {
	font-weight: 400;
	font-size: var(--fs-h2);
	line-height: calc(var(--lh-h2) / var(--fs-h2));
	letter-spacing: 0;
	margin: 0;
}

.twr-cta {
	display: flex;
	align-items: center;
	font-size: var(--fs-cta);
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.twr-cta:hover {
	opacity: 0.6;
}

/* Rules and grid primitives
   ========================================================================== */

.twr-rule-t {
	border-top: 1px solid var(--rule);
}

.twr-rule-b {
	border-bottom: 1px solid var(--rule);
}

/* Header
   ========================================================================== */

.twr-header {
	display: grid;
	grid-template-columns: calc(2770 * var(--u)) 1fr;
	align-items: start;
	height: calc(501 * var(--u));
	padding: calc(65 * var(--u)) var(--gut) 0;
}

/* The logo is a lockup of the stripe mark and a custom wordmark, so it ships
   as artwork lifted from the design at native resolution. */

.twr-logo {
	display: block;
	width: calc(564 * var(--u));
}

.twr-logo img {
	width: 100%;
	height: auto;
}

.twr-nav {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: calc(70 * var(--u));
	padding-top: calc(5 * var(--u));
	font-size: var(--fs-nav);
	line-height: 1;
	font-weight: 400;
}

.twr-nav a:hover {
	opacity: 0.6;
}

/* Hero
   ========================================================================== */

.twr-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin: 0 var(--gut);
	height: calc(2204 * var(--u));
	border-radius: var(--radius);
	overflow: hidden;
	color: #fff;
	background: #1a100c;
}

.twr-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.twr-hero__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(10, 6, 4, 0.34) 0%, rgba(10, 6, 4, 0.05) 45%, rgba(10, 6, 4, 0.2) 100%),
		linear-gradient(180deg, rgba(10, 6, 4, 0) 38%, rgba(10, 6, 4, 0.52) 78%, rgba(10, 6, 4, 0.66) 100%);
}

.twr-hero__content {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: calc(60 * var(--u));
	padding: 0 calc(115 * var(--u)) calc(254 * var(--u));
}

.twr-hero__title {
	margin: 0;
	font-size: var(--fs-display);
	line-height: calc(var(--lh-display) / var(--fs-display));
	font-weight: 400;
	letter-spacing: -0.018em;
	text-transform: uppercase;
	max-width: calc(1400 * var(--u));
	color: #fff;
}

.twr-hero__copy {
	margin-top: calc(136 * var(--u));
	max-width: calc(1490 * var(--u));
	font-size: calc(48 * var(--u));
	line-height: calc(59 / 48);
}

.twr-hero__note {
	margin-top: calc(62 * var(--u));
	font-size: calc(48 * var(--u));
	line-height: calc(59 / 48);
}

.twr-hero__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}

.twr-hero__aside-title {
	font-size: var(--fs-display);
	line-height: calc(var(--lh-display) / var(--fs-display));
	font-weight: 400;
	letter-spacing: -0.018em;
	text-transform: uppercase;
	color: #fff;
}

.twr-hero__actions {
	display: flex;
	flex-direction: column;
	gap: calc(75 * var(--u));
	margin-top: calc(128 * var(--u));
}

.twr-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: calc(866 * var(--u));
	height: calc(111 * var(--u));
	padding: 0 calc(32 * var(--u)) 0 calc(30 * var(--u));
	background: var(--cream);
	color: var(--ink);
	border-radius: calc(24 * var(--u));
	font-size: calc(46 * var(--u));
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.twr-btn__arrow {
	width: calc(48 * var(--u));
	height: calc(28 * var(--u));
	flex: 0 0 auto;
	transition: transform 0.2s ease;
}

.twr-btn:hover {
	background: #fff;
}

.twr-btn:hover .twr-btn__arrow {
	transform: translateX(0.4em);
}

/* The service bar is a single row of labels with hairline separators sitting
   directly on the photo, evenly spaced across the hero's inner width. */

.twr-hero__bar {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: calc(88 * var(--u));
	margin: 0 calc(115 * var(--u)) calc(125 * var(--u));
}

.twr-hero__bar a {
	font-size: calc(48 * var(--u));
	line-height: 1;
	font-weight: 400;
	letter-spacing: -0.012em;
	text-transform: uppercase;
	white-space: nowrap;
}

.twr-hero__bar a:hover {
	opacity: 0.7;
}

.twr-hero__bar i {
	flex: 0 0 auto;
	width: 1.5px;
	height: 100%;
	background: rgba(255, 255, 255, 0.85);
}

/* Trusted by
   ========================================================================== */

.twr-trust {
	display: none;
}

.twr-trust__label {
	padding: calc(158 * var(--u)) var(--gut) calc(117 * var(--u));
	font-size: var(--fs-label);
	line-height: 1;
	font-weight: 400;
	letter-spacing: -0.02em;
}

/* The logo strip is a bleed carousel: equal 768px cells that run off both
   edges of the viewport, so the first and last cells are clipped. */

.twr-logos {
	height: calc(440 * var(--u));
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	overflow: hidden;
}

.twr-logos__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc(768 * var(--u));
	height: 100%;
	margin-left: calc(-36 * var(--u));
}

.twr-logos span {
	display: flex;
	align-items: center;
	justify-content: center;
	border-right: 1px solid var(--rule);
	font-size: calc(77 * var(--u));
	font-weight: 800;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

/* Inset photo bands
   ========================================================================== */

.twr-photo {
	position: relative;
	margin: 0 var(--gut);
	border-radius: var(--radius);
	overflow: hidden;
}

.twr-photo--video {
	height: auto;
	aspect-ratio: 16 / 9;
	margin-top: calc(66 * var(--u));
}

.twr-photo--video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.twr-photo--cutting {
	height: calc(1819 * var(--u));
	margin-top: calc(65 * var(--u));
}

.twr-photo--workshop {
	height: calc(1819 * var(--u));
	margin-top: calc(122 * var(--u));
}

.twr-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Section heading band (full bleed, rule beneath)
   ========================================================================== */

.twr-band__head {
	padding: calc(220 * var(--u)) var(--gut) calc(420 * var(--u));
}

/* Headings carry the design's explicit line breaks, so no measure is set. */

.twr-band__head .twr-h {
	max-width: none;
}

.twr-band__head--services {
	padding-top: calc(195 * var(--u));
	padding-bottom: calc(301 * var(--u));
}

.twr-band__head--downtime {
	padding-top: calc(119 * var(--u));
	padding-bottom: calc(551 * var(--u));
}

.twr-band__head--chip {
	padding-top: calc(183 * var(--u));
	padding-bottom: calc(551 * var(--u));
}

.twr-band__head--specialist {
	padding-top: calc(203 * var(--u));
	padding-bottom: calc(298 * var(--u));
}

/* Two column body with divider
   ========================================================================== */

.twr-cols {
	display: grid;
	border-top: 1px solid var(--rule);
}

.twr-cols--third {
	grid-template-columns: var(--col-third) 1fr;
}

.twr-cols--wide {
	grid-template-columns: var(--col-wide) 1fr;
	min-height: calc(1190 * var(--u));
}

.twr-cols--photo {
	grid-template-columns: var(--col-photo) 1fr;
}

.twr-cols__left {
	display: flex;
	flex-direction: column;
	gap: var(--lh-lead);
	padding: calc(53 * var(--u)) calc(120 * var(--u)) calc(80 * var(--u)) var(--gut);
}

.twr-cols__left p {
	max-width: calc(1420 * var(--u));
	font-size: var(--fs-lead);
	line-height: calc(var(--lh-lead) / var(--fs-lead));
}

.twr-cols__left--push {
	justify-content: space-between;
}

.twr-cols__right {
	border-left: 1px solid var(--rule);
}

.twr-cols--closed {
	border-bottom: 1px solid var(--rule);
}

/* Service rows */

/* Titles sit against the column rule; descriptions start on the x=2822
   module shared with the header nav and footer links. */

.twr-service {
	display: grid;
	grid-template-columns: calc(1538 * var(--u)) 1fr;
	align-items: start;
	min-height: calc(361 * var(--u));
	padding: calc(59 * var(--u)) var(--gut) calc(80 * var(--u)) calc(53 * var(--u));
	border-top: 1px solid var(--rule);
}

/* Rows whose description runs to two lines are taller in the design. */
.twr-service:nth-child(2),
.twr-service:nth-child(3),
.twr-service:nth-child(5),
.twr-service:nth-child(6) {
	min-height: calc(428 * var(--u));
}

.twr-service:first-child {
	border-top: 0;
}

.twr-service h3 {
	font-size: var(--fs-h3);
	line-height: calc(var(--lh-stmt) / var(--fs-stmt));
	font-weight: 400;
	letter-spacing: -0.02em;
}

.twr-service p {
	max-width: calc(850 * var(--u));
	padding-top: calc(14 * var(--u));
	font-size: var(--fs-body);
	line-height: calc(66 / 50);
}

/* Simple list rows (specialist) */

.twr-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.twr-list li {
	height: calc(361 * var(--u));
	padding: calc(59 * var(--u)) var(--gut) 0 calc(56 * var(--u));
	border-top: 1px solid var(--rule);
	font-size: var(--fs-stmt);
	line-height: calc(var(--lh-stmt) / var(--fs-stmt));
	font-weight: 400;
	letter-spacing: -0.02em;
}

.twr-list li:first-child {
	border-top: 0;
}

/* Right hand copy + stacked CTA rows */

.twr-side {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.twr-side__copy {
	flex: 1;
	padding: calc(63 * var(--u)) var(--gut) calc(80 * var(--u)) calc(53 * var(--u));
}

.twr-side__copy p {
	max-width: calc(1160 * var(--u));
	font-size: var(--fs-lead);
	line-height: calc(var(--lh-lead) / var(--fs-lead));
}

.twr-side__copy p + p {
	margin-top: var(--lh-lead);
}

/* Opening statement in a right-hand column, set larger than the body copy. */

.twr-side__copy .twr-side__lead {
	max-width: calc(1080 * var(--u));
	font-size: var(--fs-stmt);
	line-height: calc(var(--lh-stmt) / var(--fs-stmt));
	letter-spacing: -0.02em;
}

.twr-side__copy .twr-side__lead + p {
	margin-top: calc(104 * var(--u));
}

.twr-side__cta {
	display: flex;
	align-items: center;
	height: var(--cta-row);
	padding-left: calc(60 * var(--u));
	border-top: 1px solid var(--rule);
}

/* Left-hand column variant: text hugs the page gutter, copy spreads to fill. */

.twr-side--start .twr-side__copy {
	padding-top: calc(53 * var(--u));
	padding-bottom: calc(93 * var(--u));
	padding-left: var(--gut);
	padding-right: calc(120 * var(--u));
}

.twr-side--start .twr-side__copy p {
	max-width: calc(850 * var(--u));
}

/* The specialist column runs to a slightly wider measure. */

.twr-side--start .twr-side__copy--wide {
	padding-bottom: calc(105 * var(--u));
}

.twr-side--start .twr-side__copy--wide p {
	max-width: calc(870 * var(--u));
}

.twr-side__copy--spread {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: calc(120 * var(--u));
}

/* Paragraphs run on as line breaks; only marked ones get a blank line. */

.twr-side__copy--spread p + p {
	margin-top: 0;
}

.twr-side__copy--spread .twr-p-gap {
	margin-top: var(--lh-lead);
}

.twr-side__cta--start {
	padding-left: var(--gut);
}

/* Full width CTA row under a column block */

.twr-footrow {
	display: grid;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}

.twr-footrow--third {
	grid-template-columns: var(--col-third) 1fr;
}

.twr-footrow__cta {
	display: flex;
	align-items: center;
	height: var(--cta-row);
	padding-left: var(--gut);
}

.twr-footrow__rest {
	border-left: 1px solid var(--rule);
}

/* Photo + copy split
   ========================================================================== */

.twr-media {
	display: grid;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}

.twr-media--photo-left {
	grid-template-columns: var(--col-photo) 1fr;
}

.twr-media--photo-right {
	grid-template-columns: 32.82% 1fr;
}

.twr-media--quote {
	height: calc(1815 * var(--u));
}

.twr-media--experience {
	height: calc(2033 * var(--u));
}

.twr-media--insurance {
	height: calc(2032 * var(--u));
}

.twr-media__img {
	overflow: hidden;
}

.twr-media__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.twr-media__copy {
	display: flex;
	flex-direction: column;
}

/* Heading pinned to the top, copy pinned above the CTA rule. */

.twr-h--sm {
	font-size: calc(96 * var(--u));
	line-height: calc(120 / 96);
	letter-spacing: -0.01em;
}

.twr-media--photo-left .twr-media__copy {
	border-left: 1px solid var(--rule);
}

.twr-media--photo-right .twr-media__copy {
	border-right: 1px solid var(--rule);
}

.twr-media__copy-inner {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: calc(80 * var(--u)) var(--gut) calc(109 * var(--u)) calc(60 * var(--u));
}

.twr-media--photo-right .twr-media__copy-inner {
	padding-left: var(--gut);
	padding-right: calc(120 * var(--u));
}

.twr-media__copy-inner p {
	font-size: var(--fs-lead);
	line-height: calc(var(--lh-lead) / var(--fs-lead));
}

/* The design runs these paragraphs on as line breaks, with a single blank
   line only where marked. */

.twr-media__copy-inner p + p {
	margin-top: 0;
}

.twr-media__copy-inner .twr-p-gap {
	margin-top: var(--lh-lead);
}

.twr-media--quote .twr-media__text p {
	max-width: calc(860 * var(--u));
}

.twr-media--experience .twr-h,
.twr-media--experience .twr-media__text p {
	max-width: calc(1090 * var(--u));
}

.twr-media--experience .twr-media__copy-inner {
	padding-bottom: calc(61 * var(--u));
}

.twr-media--insurance .twr-media__copy-inner {
	padding-bottom: calc(113 * var(--u));
}

.twr-media--insurance .twr-h {
	max-width: calc(830 * var(--u));
}

.twr-media--insurance .twr-media__text p {
	max-width: calc(1050 * var(--u));
}

.twr-media__cta {
	display: flex;
	align-items: center;
	height: var(--cta-row);
	padding-left: calc(60 * var(--u));
	border-top: 1px solid var(--rule);
}

.twr-media--photo-right .twr-media__cta {
	padding-left: var(--gut);
}

/* Why — blue band
   ========================================================================== */

.twr-why {
	background: var(--blue);
	color: #fff;
}

.twr-why__head {
	padding: calc(56 * var(--u)) var(--gut) calc(258 * var(--u));
}

.twr-why__head .twr-h {
	color: #fff;
}

.twr-why__cols {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding-bottom: calc(116 * var(--u));
	border-top: 1px solid rgba(255, 255, 255, 0.75);
}

.twr-why__col {
	padding: calc(92 * var(--u)) calc(64 * var(--u)) 0 calc(63 * var(--u));
	border-left: 1px solid rgba(255, 255, 255, 0.75);
}

.twr-why__col:first-child {
	padding-left: var(--gut);
	border-left: 0;
}

.twr-why__col h3 {
	margin-bottom: calc(56 * var(--u));
	font-size: var(--fs-h3);
	line-height: calc(98 / 82);
	font-weight: 400;
	letter-spacing: -0.02em;
}

.twr-why__col p {
	font-size: calc(50 * var(--u));
	line-height: calc(68 / 50);
}

.twr-why__photos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.twr-why__photos img {
	width: 100%;
	height: calc(1206 * var(--u));
	object-fit: cover;
}

/* Testimonials
   ========================================================================== */

.twr-quotes__label {
	padding: calc(145 * var(--u)) var(--gut) calc(345 * var(--u));
	font-size: var(--fs-label-lg);
	line-height: 1;
	font-weight: 400;
	letter-spacing: -0.02em;
}

/* Testimonials are a bleed carousel of 1231px cards. */

.twr-quotes__viewport {
	height: calc(696 * var(--u));
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	overflow: hidden;
}

.twr-quotes__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc(1231 * var(--u));
	height: 100%;
	transition: transform 0.35s ease;
}

.twr-quote {
	padding: calc(59 * var(--u)) calc(120 * var(--u)) 0 calc(54 * var(--u));
	border-right: 1px solid var(--rule);
}

.twr-quote p {
	max-width: calc(830 * var(--u));
	font-size: var(--fs-lead);
	line-height: calc(var(--lh-lead) / var(--fs-lead));
}

.twr-quote cite {
	display: block;
	margin-top: var(--lh-lead);
	font-style: normal;
	font-size: var(--fs-lead);
	line-height: calc(var(--lh-lead) / var(--fs-lead));
}

.twr-quotes__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: calc(169 * var(--u));
	padding: 0 var(--gut);
	border-bottom: 1px solid var(--rule);
}

.twr-quotes__nav button {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	color: var(--ink);
	font-size: calc(70 * var(--u));
	line-height: 1;
	cursor: pointer;
}

.twr-quotes__nav button:disabled {
	opacity: 0.3;
	cursor: default;
}

/* Blue call to action
   ========================================================================== */

.twr-cta-band {
	background: var(--blue);
	color: #fff;
}

.twr-cta-band__head {
	padding: calc(117 * var(--u)) var(--gut) calc(378 * var(--u));
}

.twr-cta-band__head .twr-h {
	color: #fff;
}

.twr-cta-band__row {
	display: grid;
	grid-template-columns: var(--col-wide) 1fr;
	min-height: calc(974 * var(--u));
	border-top: 1px solid rgba(255, 255, 255, 0.6);
}

.twr-cta-band__main {
	padding: calc(54 * var(--u)) calc(120 * var(--u)) calc(200 * var(--u)) var(--gut);
}

.twr-cta-band__main p {
	max-width: calc(1530 * var(--u));
	font-size: var(--fs-lead);
	line-height: calc(var(--lh-lead) / var(--fs-lead));
}

.twr-cta-band__side {
	display: flex;
	flex-direction: column;
	border-left: 1px solid rgba(255, 255, 255, 0.6);
}

.twr-cta-band__side > p {
	flex: 1;
	max-width: calc(1215 * var(--u));
	padding: calc(55 * var(--u)) var(--gut) calc(80 * var(--u)) calc(54 * var(--u));
	font-size: var(--fs-stmt);
	line-height: calc(var(--lh-stmt) / var(--fs-stmt));
	letter-spacing: -0.02em;
}

.twr-cta-band__side a {
	display: flex;
	align-items: center;
	height: var(--cta-row);
	padding-left: calc(54 * var(--u));
	border-top: 1px solid rgba(255, 255, 255, 0.6);
	font-size: var(--fs-cta);
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

/* Footer
   ========================================================================== */

.twr-foot {
	display: grid;
	grid-template-columns: calc(1539 * var(--u)) calc(1229 * var(--u)) 1fr;
	align-items: start;
	min-height: calc(1166 * var(--u));
	padding: calc(64 * var(--u)) var(--gut) calc(240 * var(--u));
	background: var(--ink);
	color: #fff;
}

.twr-foot__col {
	display: flex;
	flex-direction: column;
	padding-top: calc(8 * var(--u));
	font-size: calc(48 * var(--u));
	line-height: calc(59 / 48);
}

.twr-foot__col a:hover {
	opacity: 0.65;
}

.twr-foot__gap {
	margin-top: calc(57 * var(--u));
}

/* Contact
   ========================================================================== */

.twr-band__head--contact {
	padding-top: calc(195 * var(--u));
	padding-bottom: calc(220 * var(--u));
}

.twr-band__head--form {
	padding-top: calc(160 * var(--u));
	padding-bottom: calc(80 * var(--u));
}

.twr-contact__details {
	display: flex;
	flex-direction: column;
}

.twr-contact__row {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: calc(361 * var(--u));
	padding: calc(59 * var(--u)) var(--gut) calc(50 * var(--u)) calc(56 * var(--u));
	border-top: 1px solid var(--rule);
}

.twr-contact__row:first-child {
	border-top: 0;
}

.twr-contact__row span {
	margin-bottom: calc(18 * var(--u));
	font-size: var(--fs-cta);
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.twr-contact__row strong {
	display: block;
	font-size: var(--fs-stmt);
	font-weight: 400;
	line-height: calc(var(--lh-stmt) / var(--fs-stmt));
	letter-spacing: -0.02em;
}

.twr-contact__row:hover {
	opacity: 0.65;
}

.twr-contact__row--static:hover {
	opacity: 1;
}

.twr-contact-form {
	border-top: 1px solid var(--rule);
}

.twr-form,
.twr-form-status {
	padding: 0 var(--gut);
}

.twr-form-status p {
	max-width: calc(1530 * var(--u));
	font-size: var(--fs-lead);
	line-height: calc(var(--lh-lead) / var(--fs-lead));
}

.twr-form-status p + p {
	margin-top: calc(40 * var(--u));
}

.twr-form-status--err {
	color: var(--ink);
}

.twr-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.twr-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid var(--rule);
}

.twr-form label {
	display: flex;
	flex-direction: column;
	gap: calc(22 * var(--u));
	padding: calc(48 * var(--u)) calc(40 * var(--u)) calc(36 * var(--u)) 0;
	border-bottom: 1px solid var(--rule);
}

.twr-form label:nth-child(odd) {
	padding-right: calc(60 * var(--u));
	border-right: 1px solid var(--rule);
}

.twr-form label:nth-child(even) {
	padding-left: calc(60 * var(--u));
}

.twr-form__wide {
	grid-column: 1 / -1;
}

.twr-form label.twr-form__wide:nth-child(odd),
.twr-form label.twr-form__wide:nth-child(even) {
	padding-right: 0;
	padding-left: 0;
	border-right: 0;
}

.twr-form span {
	font-size: var(--fs-cta);
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.twr-form input,
.twr-form textarea {
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--ink);
	font: inherit;
	font-size: var(--fs-lead);
	line-height: 1.3;
	border-radius: 0;
	outline: none;
	resize: none;
}

.twr-form input:focus,
.twr-form textarea:focus {
	opacity: 0.7;
}

.twr-form__submit {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: calc(100% + (2 * var(--gut)));
	height: var(--cta-row);
	margin: 0 0 0 calc(-1 * var(--gut));
	padding: 0 0 0 var(--gut);
	border: 0;
	border-top: 1px solid var(--rule);
	border-radius: 0;
	background: transparent;
	color: var(--ink);
	font: inherit;
	font-size: var(--fs-cta);
	font-weight: 400;
	letter-spacing: 0.02em;
	text-align: left;
	text-transform: uppercase;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.twr-form__submit:hover {
	opacity: 0.6;
}

.twr--contact .twr-photo--workshop {
	margin-bottom: calc(220 * var(--u));
}

/* Mobile
   ========================================================================== */

@media (max-width: 900px) {
	:root {
		--u: 1px;
		--gut: 20px;
		--radius: 16px;
		--cta-row: 52px;
		--fs-display: 28px;
		--lh-display: 32px;
		--fs-h2: 26px;
		--lh-h2: 30px;
		--fs-h3: 17px;
		--fs-label: 14px;
		--fs-label-lg: 16px;
		--fs-lead: 16px;
		--lh-lead: 24px;
		--fs-body: 16px;
		--lh-body: 24px;
		--fs-stmt: 18px;
		--lh-stmt: 24px;
		--fs-nav: 16px;
		--fs-cta: 14px;
	}

	.twr {
		overflow-wrap: break-word;
	}

	.twr-header {
		grid-template-columns: 1fr;
		height: auto;
		gap: 18px;
		padding: 20px var(--gut) 18px;
	}

	.twr-logo {
		width: 168px;
	}

	.twr-nav {
		gap: 0;
		padding-top: 0;
		line-height: 1.3;
	}

	.twr-nav a {
		display: inline-flex;
		align-items: center;
		min-height: 36px;
	}

	.twr-hero {
		height: auto;
		min-height: 0;
	}

	.twr-hero__content {
		grid-template-columns: 1fr;
		align-items: start;
		gap: 22px;
		padding: 72px var(--gut) 28px;
	}

	.twr-hero__title,
	.twr-hero__copy,
	.twr-hero__note {
		max-width: none;
	}

	.twr-hero__copy,
	.twr-hero__note {
		font-size: var(--fs-body);
		line-height: 1.45;
	}

	.twr-hero__copy {
		margin-top: 14px;
	}

	.twr-hero__note {
		margin-top: 10px;
	}

	.twr-hero__aside {
		align-items: flex-start;
		text-align: left;
	}

	.twr-hero__actions {
		margin-top: 16px;
		gap: 10px;
		width: 100%;
	}

	.twr-btn {
		width: 100%;
		height: 48px;
		padding: 0 16px;
		font-size: var(--fs-cta);
		letter-spacing: 0.04em;
	}

	.twr-btn__arrow {
		width: 22px;
		height: 14px;
	}

	.twr-hero__bar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px 14px;
		height: auto;
		margin: 0 var(--gut) 22px;
	}

	.twr-hero__bar a {
		font-size: 12px;
		letter-spacing: 0.02em;
		white-space: normal;
	}

	.twr-hero__bar i {
		display: none;
	}

	.twr-trust__label,
	.twr-quotes__label {
		padding: 28px var(--gut) 14px;
	}

	.twr-logos {
		height: auto;
	}

	.twr-logos__track {
		grid-auto-flow: row;
		grid-template-columns: 1fr 1fr;
		grid-auto-columns: auto;
		margin-left: 0;
	}

	.twr-logos span {
		height: 72px;
		font-size: 15px;
		letter-spacing: 0.04em;
		border-right: 0;
	}

	.twr-logos span:nth-child(even) {
		border-left: 1px solid var(--rule);
	}

	.twr-logos span:nth-child(n + 3) {
		border-top: 1px solid var(--rule);
	}

	.twr-logos span:last-child {
		grid-column: 1 / -1;
		border-left: 0;
	}

	.twr-photo--video,
	.twr-photo--cutting,
	.twr-photo--workshop {
		height: 220px;
		margin-top: 8px;
	}

	.twr-photo--video {
		height: auto;
		aspect-ratio: 16 / 9;
	}

	.twr-cols--wide,
	.twr-media--quote,
	.twr-media--experience,
	.twr-media--insurance,
	.twr-quotes__viewport,
	.twr-cta-band__row,
	.twr-foot,
	.twr-service,
	.twr-service:nth-child(2),
	.twr-service:nth-child(3),
	.twr-service:nth-child(5),
	.twr-service:nth-child(6) {
		height: auto;
		min-height: 0;
	}

	.twr-band__head {
		padding: 36px var(--gut) 22px;
	}

	.twr-cols,
	.twr-cols--third,
	.twr-cols--wide,
	.twr-cols--photo,
	.twr-footrow--third,
	.twr-media--photo-left,
	.twr-media--photo-right,
	.twr-why__cols,
	.twr-why__photos,
	.twr-quotes__track,
	.twr-cta-band__row,
	.twr-foot {
		/* minmax(0,…) so no item's min-content can widen the page. */
		grid-template-columns: minmax(0, 1fr);
	}

	.twr-cols__left,
	.twr-side__copy,
	.twr-side--start .twr-side__copy,
	.twr-side--start .twr-side__copy--wide,
	.twr-media__copy-inner,
	.twr-media--photo-right .twr-media__copy-inner,
	.twr-media--experience .twr-media__copy-inner,
	.twr-media--insurance .twr-media__copy-inner,
	.twr-cta-band__main {
		gap: 14px;
		padding: 22px var(--gut);
	}

	.twr-cols__left p,
	.twr-side__copy p,
	.twr-side--start .twr-side__copy p,
	.twr-side--start .twr-side__copy--wide p,
	.twr-media__copy-inner p,
	.twr-cta-band__main p,
	.twr-service p,
	.twr-quote p {
		max-width: none;
	}

	.twr-cols__right,
	.twr-media--photo-left .twr-media__copy,
	.twr-media--photo-right .twr-media__copy,
	.twr-footrow__rest,
	.twr-cta-band__side {
		border-left: 0;
		border-right: 0;
	}

	.twr-service {
		grid-template-columns: 1fr;
		gap: 6px;
		padding: 18px var(--gut);
	}

	.twr-list li {
		height: auto;
		padding: 16px var(--gut);
		font-size: var(--fs-body);
		line-height: 1.35;
	}

	.twr-side__copy .twr-side__lead,
	.twr-cta-band__side > p {
		max-width: none;
		font-size: var(--fs-stmt);
		line-height: 1.4;
	}

	.twr-side__copy .twr-side__lead + p,
	.twr-side__copy p + p,
	.twr-side__copy--spread .twr-p-gap {
		margin-top: 12px;
	}

	.twr-cta-band__side > p {
		padding: 20px var(--gut);
	}

	.twr-side__cta,
	.twr-media__cta,
	.twr-media--photo-right .twr-media__cta,
	.twr-footrow__cta,
	.twr-cta-band__side a {
		height: var(--cta-row);
		padding-left: var(--gut);
	}

	.twr-media__img img {
		height: 220px;
	}

	.twr-media--photo-right .twr-media__img {
		order: 2;
	}

	.twr-media__copy-inner {
		display: block;
	}

	.twr-h--sm {
		font-size: 22px;
		line-height: 1.25;
	}

	.twr-media__text {
		margin-top: 14px;
	}

	.twr-media__copy-inner p + p,
	.twr-media__copy-inner .twr-p-gap,
	.twr-side__copy p + p {
		margin-top: 12px;
	}

	.twr-why__head {
		padding: 32px var(--gut) 20px;
	}

	.twr-why__cols {
		padding-bottom: 4px;
	}

	.twr-why__col {
		padding: 0 var(--gut) 24px;
		border-left: 0;
	}

	.twr-why__col h3 {
		margin-bottom: 8px;
	}

	.twr-why__col p {
		font-size: var(--fs-body);
		line-height: 1.45;
	}

	.twr-why__photos img {
		height: 200px;
	}

	.twr-quotes__viewport {
		height: auto;
	}

	.twr-quotes__track {
		grid-auto-flow: row;
		grid-auto-columns: auto;
		transform: none !important;
	}

	.twr-quote {
		padding: 22px var(--gut);
		border-right: 0;
	}

	.twr-quote + .twr-quote {
		border-top: 1px solid var(--rule);
	}

	.twr-quote cite {
		margin-top: 12px;
	}

	.twr-quotes__nav {
		display: none;
	}

	.twr-cta-band__head {
		padding: 32px var(--gut) 20px;
	}

	.twr-cta-band__side > p {
		padding: 20px var(--gut);
	}

	.twr-foot {
		gap: 28px;
		padding: 36px var(--gut) 40px;
	}

	.twr-foot__col {
		padding-top: 0;
		font-size: var(--fs-body);
		line-height: 1.45;
	}

	.twr-foot__gap {
		margin-top: 16px;
	}

	.twr-contact__row {
		min-height: 0;
		padding: 18px var(--gut);
	}

	.twr-contact__row span {
		margin-bottom: 6px;
	}

	.twr-contact__row strong {
		font-size: 18px;
		line-height: 1.3;
	}

	.twr-form,
	.twr-form-status {
		padding: 0 var(--gut);
	}

	.twr--contact .twr-photo--workshop {
		margin-bottom: 48px;
	}

	.twr-form-status p {
		max-width: none;
	}

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

	.twr-form label,
	.twr-form label:nth-child(odd),
	.twr-form label:nth-child(even),
	.twr-form label.twr-form__wide:nth-child(odd),
	.twr-form label.twr-form__wide:nth-child(even) {
		gap: 8px;
		padding: 16px 0;
		border-right: 0;
	}
}

.twr-legal__body {
	max-width: calc(2100 * var(--u));
	padding: 0 var(--gut) calc(220 * var(--u));
}

.twr-legal__body p,
.twr-legal__body h2 {
	max-width: 42em;
}

.twr-legal__body h2 {
	margin: calc(72 * var(--u)) 0 calc(24 * var(--u));
	font-size: var(--fs-h3);
	font-weight: 400;
}

.twr-legal__body p + p {
	margin-top: calc(28 * var(--u));
}

.twr-legal__back {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	margin-top: calc(80 * var(--u));
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.twr-legal__back .twr-btn__arrow {
	width: 1.1em;
	height: 0.65em;
}

@media (max-width: 900px) {
	.twr-legal__body {
		padding-bottom: 64px;
	}

	.twr-legal__body h2 {
		margin: 28px 0 10px;
		font-size: 22px;
	}
}
