/*
 * Canvas build v5
 *
 * The earlier release added a canvas page class on top of a legacy layout.
 * This file is deliberately self-contained: it establishes the proportions,
 * image blending, content rhythm and contact/form module shown in the
 * approved long-form renders.
 */

:root {
	--canvas-black: #020906;
	--canvas-deep: #03110d;
	--canvas-green: #56f184;
	--canvas-green-soft: rgba(86, 241, 132, .22);
	--canvas-line: rgba(86, 241, 132, .22);
	--canvas-copy: #f4f8f5;
	--canvas-muted: #bac5be;
}

html,
body {
	background: var(--canvas-black);
}

body {
	background: var(--canvas-black);
}

body::before,
body::after {
	display: none;
}

/* Shared canvas header --------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	min-height: 58px;
	height: 58px;
	background: rgba(2, 9, 6, .97);
	border-bottom: 1px solid rgba(86, 241, 132, .18);
	backdrop-filter: blur(16px);
}

/* WordPress adds an administrator toolbar on authenticated test sessions.
 * Reserve its exact height so the visual header is never hidden behind it. */
.admin-bar .site-header {
	top: 32px;
}


.site-shell {
	width: min(calc(100% - clamp(36px, 10.65vw, 112px)), 1328px);
}

.site-header .header-shell {
	width: min(calc(100% - clamp(36px, 10.65vw, 112px)), 1328px);
	min-height: 58px;
	grid-template-columns: max-content minmax(0, 1fr) max-content;
	gap: clamp(18px, 2vw, 30px);
}

.canvas-brand {
	gap: 8px;
}

.canvas-brand > svg {
	width: 29px;
	height: 29px;
	color: var(--canvas-green);
}

.canvas-brand strong {
	font-size: 13px;
	font-weight: 760;
	letter-spacing: -.03em;
}

.canvas-brand em {
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .17em;
	color: var(--canvas-green);
}

.site-header .site-navigation {
	justify-self: center;
	margin: 0;
}

.site-header .primary-menu {
	gap: clamp(11px, 1.55vw, 24px);
}

.site-header .primary-menu a {
	min-height: 58px;
	color: #eff6f1;
	font-size: clamp(9px, .83vw, 11px);
	font-weight: 600;
}

.site-header .header-actions {
	gap: 16px;
}

.site-header .header-contact-stack {
	display: grid;
	gap: 2px;
	padding: 0;
	border: 0;
	background: transparent;
}

.site-header .header-contact-stack a {
	color: #edf6ef;
	font-size: 9px;
	font-weight: 650;
	line-height: 1.25;
}

.site-header .header-contact-stack .icon {
	width: 11px;
	height: 11px;
	color: var(--canvas-green);
}

.site-header .button-small {
	min-height: 31px;
	padding-inline: 15px;
	border-radius: 3px;
	font-size: 9px;
	font-weight: 750;
	box-shadow: 0 8px 28px rgba(62, 242, 113, .18);
}

.site-header .button-small .icon {
	width: 13px;
	height: 13px;
}

/* Shared footer ---------------------------------------------------------- */
.site-footer {
	padding: 28px 0 12px;
	background: var(--canvas-black);
	border-top: 1px solid var(--canvas-line);
}

.site-footer .approved-footer-grid {
	display: grid;
	grid-template-columns: 1.7fr .9fr .9fr 1.25fr;
	gap: clamp(22px, 4vw, 64px);
	padding: 0;
}

.site-footer .approved-footer-grid h2 {
	margin: 0 0 11px;
	color: var(--canvas-green);
	font-size: 10px;
	font-weight: 760;
	letter-spacing: .02em;
}

.site-footer .approved-footer-grid > div:not(.approved-footer-brand) a {
	display: block;
	margin: 0 0 8px;
	color: #c5d0c8;
	font-size: 10px;
	line-height: 1.32;
}

.site-footer .approved-footer-brand p {
	max-width: 220px;
	margin: 12px 0 0;
	color: #b9c5bd;
	font-size: 10px;
	line-height: 1.48;
}

.site-footer .approved-footer-contact a:last-child {
	max-width: 230px;
}

.site-footer .approved-footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	margin-top: 20px;
	padding-top: 10px;
	color: #7e8d83;
	font-size: 9px;
	border-top: 1px solid rgba(86, 241, 132, .18);
}

/* Global canvas page shell ---------------------------------------------- */
.canvas-locked-page {
	overflow: hidden;
	background: var(--canvas-black);
}

.canvas-locked-page .eyebrow {
	color: var(--canvas-green);
	font-size: 10px;
	font-weight: 820;
	letter-spacing: .3em;
	text-transform: uppercase;
}

.canvas-locked-hero {
	position: relative;
	display: grid;
	align-items: center;
	min-height: clamp(410px, 42vw, 610px);
	border-bottom: 1px solid var(--canvas-line);
	background-image:
		linear-gradient(90deg, #020906 0%, rgba(2, 9, 6, .98) 28%, rgba(2, 9, 6, .64) 47%, rgba(2, 9, 6, .10) 73%, rgba(2, 9, 6, .24) 100%),
		linear-gradient(0deg, rgba(2, 9, 6, .76) 0%, transparent 42%),
		var(--canvas-page-art);
	background-repeat: no-repeat;
	background-position: center, center, center top;
	background-size: cover, cover, cover;
}

.canvas-locked-hero-copy {
	width: min(calc(100% - clamp(36px, 10.65vw, 112px)), 1328px);
	max-width: 1328px;
	margin-inline: auto;
	padding-block: clamp(50px, 6.7vw, 88px) clamp(42px, 5vw, 64px);
}

.canvas-locked-hero-copy > * {
	max-width: 530px;
}

.canvas-locked-hero-copy h1 {
	margin: 13px 0 17px;
	color: var(--canvas-copy);
	font-size: clamp(46px, 5.15vw, 76px);
	font-weight: 780;
	line-height: .98;
	letter-spacing: -.065em;
}

.canvas-rule {
	width: 64px;
	height: 2px;
	margin: 0 0 17px;
	background: var(--canvas-green);
}

.canvas-locked-hero-copy > p:not(.eyebrow) {
	max-width: 480px;
	margin: 0 0 24px;
	color: var(--canvas-muted);
	font-size: 14px;
	line-height: 1.5;
}

.canvas-locked-page .button {
	min-height: 42px;
	padding: 0 18px;
	border-radius: 3px;
	font-size: 10px;
	font-weight: 780;
}

.canvas-locked-page .button-primary {
	box-shadow: 0 13px 29px rgba(61, 238, 112, .19);
}

/* Default composition: one integrated hero followed by breathable
 * information panels.  Unlike the failed generic renderer, this does not
 * repeat the hero image as a row of boxed thumbnails. */
.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audiences {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	padding-block: clamp(54px, 6vw, 90px);
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience {
	position: relative;
	min-height: 234px;
	overflow: hidden;
	border: 1px solid var(--canvas-line);
	border-radius: 7px;
	background: linear-gradient(125deg, rgba(4, 23, 17, .98), rgba(3, 15, 11, .93));
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience::after {
	position: absolute;
	inset: 0;
	z-index: 0;
	content: '';
	opacity: .20;
	background: var(--canvas-page-art) right center / auto 125% no-repeat;
	mask-image: linear-gradient(90deg, transparent 30%, #000 100%);
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-icon,
.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-copy {
	position: relative;
	z-index: 1;
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-icon {
	padding: 30px 30px 0;
	color: var(--canvas-green);
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-icon svg {
	width: 37px;
	height: 37px;
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-copy {
	padding: 16px 30px 28px;
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-copy h2 {
	margin: 0 0 9px;
	color: var(--canvas-copy);
	font-size: 25px;
	line-height: 1.03;
	letter-spacing: -.045em;
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-copy p {
	max-width: 42ch;
	margin: 0;
	color: var(--canvas-muted);
	font-size: 13px;
	line-height: 1.48;
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-copy ul {
	display: flex;
	flex-wrap: wrap;
	gap: 5px 17px;
	margin: 14px 0 0;
	padding: 0;
	color: #dbe5de;
	font-size: 11px;
	list-style: none;
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-copy li::before {
	margin-right: 7px;
	content: '•';
	color: var(--canvas-green);
}

.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audience-art {
	display: none;
}

/* Secure Data Destruction gets the pricing promise requested by the owner. */
.canvas-secure-pricing {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 0;
	margin: -20px auto clamp(56px, 7vw, 95px);
	overflow: hidden;
	border: 1px solid rgba(86, 241, 132, .34);
	border-radius: 7px;
	background: linear-gradient(110deg, rgba(4, 29, 21, .96), rgba(2, 14, 10, .94));
}

.canvas-secure-price,
.canvas-secure-includes {
	padding: 30px 34px;
}

.canvas-secure-price {
	border-right: 1px solid var(--canvas-line);
}

.canvas-secure-price span,
.canvas-secure-includes p {
	display: block;
	margin-bottom: 5px;
	color: var(--canvas-green);
	font-size: 10px;
	font-weight: 820;
	letter-spacing: .22em;
	text-transform: uppercase;
}

.canvas-secure-price strong {
	display: block;
	color: var(--canvas-copy);
	font-size: 42px;
	line-height: 1;
	letter-spacing: -.055em;
}

.canvas-secure-price small,
.canvas-secure-includes li {
	color: var(--canvas-muted);
	font-size: 13px;
	line-height: 1.45;
}

.canvas-secure-includes ul {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.canvas-secure-includes li::before {
	margin-right: 9px;
	content: '✓';
	color: var(--canvas-green);
}

/* Common process, drop-off and symmetrical request module --------------- */
.canvas-locked-process {
	padding-block: clamp(48px, 6vw, 82px) clamp(40px, 5vw, 68px);
}

.canvas-locked-process .section-heading {
	margin-bottom: 28px;
	text-align: center;
}

.canvas-locked-process .section-heading .eyebrow {
	margin-bottom: 7px;
}

.canvas-locked-process .section-heading h2 {
	color: var(--canvas-copy);
	font-size: clamp(28px, 3.1vw, 42px);
	line-height: 1;
	letter-spacing: -.055em;
}

.canvas-locked-process-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(18px, 3vw, 42px);
}

.canvas-locked-process-grid article {
	position: relative;
	min-height: 125px;
}

.canvas-locked-process-grid article:not(:first-child)::before {
	position: absolute;
	top: 20px;
	left: calc(-1 * clamp(18px, 3vw, 42px) + 8px);
	width: calc(100% - 8px);
	height: 1px;
	content: '';
	background: rgba(86, 241, 132, .6);
}

.canvas-locked-process-grid span {
	position: relative;
	z-index: 1;
	display: block;
	width: max-content;
	margin-bottom: 11px;
	padding-right: 12px;
	color: var(--canvas-green);
	background: var(--canvas-black);
	font-size: clamp(24px, 2.4vw, 33px);
	font-weight: 500;
	line-height: 1;
}

.canvas-locked-process-grid h3 {
	margin: 0 0 7px;
	color: var(--canvas-copy);
	font-size: 13px;
	line-height: 1.15;
}

.canvas-locked-process-grid p {
	margin: 0;
	color: var(--canvas-muted);
	font-size: 11px;
	line-height: 1.45;
}

.canvas-locked-dropoff {
	display: grid;
	grid-template-columns: 62px minmax(240px, .95fr) minmax(310px, 1.05fr);
	align-items: center;
	gap: 22px;
	min-height: 100px;
	margin-bottom: 14px;
	padding: 18px 27px;
	overflow: hidden;
	border: 1px solid rgba(86, 241, 132, .3);
	border-radius: 7px;
	background:
		linear-gradient(90deg, rgba(5, 23, 17, .97), rgba(3, 16, 11, .93) 65%, rgba(3, 12, 9, .62)),
		var(--canvas-page-art) right 54% / auto 460px no-repeat;
}

.canvas-locked-dropoff > svg {
	width: 50px;
	height: 50px;
	color: var(--canvas-green);
}

.canvas-locked-dropoff h2 {
	margin: 0 0 4px;
	color: var(--canvas-copy);
	font-size: 22px;
	line-height: 1;
	letter-spacing: -.04em;
}

.canvas-locked-dropoff p {
	margin: 0;
	color: var(--canvas-muted);
	font-size: 12px;
	line-height: 1.42;
}

.canvas-locked-checks {
	display: grid;
	gap: 8px;
	padding-left: 30px;
	border-left: 1px solid var(--canvas-line);
}

.canvas-locked-checks span {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #e2ebe4;
	font-size: 12px;
}

.canvas-locked-checks svg {
	width: 15px;
	height: 15px;
	color: var(--canvas-green);
}

.canvas-locked-request {
	display: grid;
	grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
	min-height: 318px;
	margin-bottom: clamp(44px, 6vw, 82px);
	overflow: hidden;
	border: 1px solid rgba(86, 241, 132, .3);
	border-radius: 7px;
	background: #03110d;
}

.canvas-locked-contact-stack {
	display: grid;
	grid-template-columns: 44% 56%;
	min-width: 0;
	border-right: 1px solid var(--canvas-line);
}

.canvas-locked-contact-image {
	min-height: 100%;
	overflow: hidden;
	border-right: 1px solid var(--canvas-line);
	background: #020906;
}

.canvas-locked-contact-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 58% center;
}

.canvas-locked-contact-lines {
	display: grid;
	grid-template-rows: repeat(4, 1fr);
}

.canvas-locked-contact-lines > * {
	display: flex;
	align-items: center;
	gap: 13px;
	min-width: 0;
	padding: 13px 18px;
	border-bottom: 1px solid var(--canvas-line);
	color: var(--canvas-copy);
	font-size: 12px;
	line-height: 1.34;
}

.canvas-locked-contact-lines > *:last-child {
	border-bottom: 0;
}

.canvas-locked-contact-lines svg {
	flex: 0 0 auto;
	width: 25px;
	height: 25px;
	color: var(--canvas-green);
}

.canvas-locked-contact-lines span {
	overflow-wrap: anywhere;
}

.canvas-locked-contact-lines small {
	display: block;
	margin-bottom: 3px;
	color: var(--canvas-green);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.canvas-locked-request .service-request-form-panel {
	margin: 0;
	padding: 27px 29px 22px;
	border: 0;
	border-radius: 0;
	background: rgba(2, 10, 7, .62);
}

.canvas-locked-request .service-request-form-panel > h2 {
	margin: 0 0 4px;
	color: var(--canvas-copy);
	font-size: 24px;
	line-height: 1;
	letter-spacing: -.045em;
}

.canvas-locked-request .service-request-form-panel > p {
	margin: 0 0 16px;
	color: var(--canvas-muted);
	font-size: 11px;
}

.canvas-locked-request .pickup-form {
	display: grid;
	gap: 8px;
}

.canvas-locked-request .form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.canvas-locked-request .form-grid .form-field-wide {
	grid-column: 1 / -1;
}

.canvas-locked-request input,
.canvas-locked-request textarea,
.canvas-locked-request select {
	width: 100%;
	min-height: 31px;
	padding: 7px 10px;
	color: var(--canvas-copy);
	font-size: 10px;
	border: 1px solid rgba(86, 241, 132, .32);
	border-radius: 4px;
	background: rgba(2, 11, 8, .72);
	box-shadow: none;
}

.canvas-locked-request textarea {
	min-height: 47px;
	resize: vertical;
}

.canvas-locked-request .form-upload-field {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	padding: 4px 0 0;
	color: var(--canvas-muted);
	font-size: 9px;
}

.canvas-locked-request .form-upload-field input[type='file'] {
	min-height: 0;
	padding: 0;
	color: var(--canvas-muted);
	border: 0;
	background: transparent;
}

.canvas-locked-request input::placeholder,
.canvas-locked-request textarea::placeholder {
	color: #849288;
	opacity: 1;
}

.canvas-locked-request input:focus-visible,
.canvas-locked-request textarea:focus-visible,
.canvas-locked-request select:focus-visible {
	outline: 2px solid var(--canvas-green);
	outline-offset: 2px;
}

.canvas-locked-request .button-submit {
	justify-content: center;
	width: 100%;
	min-height: 34px;
	margin: 0;
	font-size: 10px;
}

.canvas-locked-request .form-footnote {
	display: none;
}

/* Who We Serve: this page is the exact list/photographic composition of its
 * approved canvas, not the default information-card composition. */
.canvas-locked-page--who-we-serve .canvas-locked-hero {
	/* The approved canvas is 1014px wide.  Keep its 37.35% hero ratio as it
	 * scales down instead of holding a desktop-height hero on a tablet. */
	/* `theme.css` previously supplied an explicit 370px height here.  Reset
	 * that legacy declaration as well as min-height; changing min-height alone
	 * cannot alter a specified height. */
	height: clamp(280px, 37.35vw, 600px);
	min-height: 0;
	background-image:
		linear-gradient(90deg, #020906 0%, rgba(2, 9, 6, .94) 26%, rgba(2, 9, 6, .22) 48%, rgba(2, 9, 6, 0) 72%, rgba(2, 9, 6, .04) 100%),
		linear-gradient(0deg, rgba(2, 9, 6, .28) 0%, transparent 40%),
		var(--canvas-page-art);
}

/* Supersede the old Part 1 lock, which capped this page at 1190px and
 * allowed the legacy hero-copy width to spill outside of the shell. */
.canvas-locked-page--who-we-serve .site-shell,
.canvas-locked-page--who-we-serve .canvas-locked-hero-copy {
	width: min(calc(100% - clamp(36px, 10.65vw, 112px)), 1328px);
	max-width: 1328px;
}

.canvas-locked-page--who-we-serve .canvas-locked-hero-copy {
	padding-block: clamp(17px, 3.6vw, 36px) clamp(17px, 2.4vw, 24px);
}

.canvas-locked-page--who-we-serve .canvas-locked-hero-copy > * {
	max-width: clamp(220px, 26vw, 415px);
}

.canvas-locked-page--who-we-serve .canvas-locked-hero-copy h1 {
	margin: 9px 0 11px;
	font-size: clamp(28px, 3.75vw, 48px);
	line-height: 1.01;
}

.canvas-locked-page--who-we-serve .canvas-rule {
	width: 58px;
	margin-bottom: 10px;
}

.canvas-locked-page--who-we-serve .canvas-locked-hero-copy > p:not(.eyebrow) {
	max-width: clamp(230px, 28vw, 450px);
	margin-bottom: 16px;
	font-size: clamp(7px, 1.08vw, 11px);
	line-height: 1.45;
}

.canvas-locked-page--who-we-serve .canvas-locked-hero .button {
	min-height: clamp(25px, 3.35vw, 34px);
	padding-inline: clamp(11px, 1.58vw, 16px);
	font-size: clamp(7px, .89vw, 9px);
}

.canvas-locked-page--who-we-serve .canvas-locked-audiences {
	padding: 0;
}

.canvas-locked-page--who-we-serve .canvas-locked-audience {
	display: grid;
	grid-template-columns: clamp(96px, 13.02vw, 132px) minmax(190px, .77fr) minmax(250px, 1.23fr);
	height: clamp(84px, 11.45vw, 190px);
	overflow: hidden;
	border-bottom: 1px solid rgba(86, 241, 132, .18);
	background: linear-gradient(90deg, rgba(2, 11, 8, .98), rgba(2, 11, 8, .94) 52%, rgba(2, 11, 8, .08));
}

.canvas-locked-page--who-we-serve .canvas-locked-audience:first-child {
	border-top: 1px solid rgba(86, 241, 132, .18);
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-icon {
	display: grid;
	place-items: center;
	color: var(--canvas-green);
	border-right: 1px solid rgba(86, 241, 132, .18);
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-icon svg {
	width: clamp(43px, 5.72vw, 58px);
	height: clamp(43px, 5.72vw, 58px);
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-copy {
	z-index: 1;
	padding: clamp(9px, 1.28vw, 13px) clamp(12px, 1.58vw, 16px) clamp(6px, .89vw, 9px);
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-copy h2 {
	margin: 0 0 4px;
	color: var(--canvas-copy);
	font-size: clamp(16px, 2.07vw, 21px);
	line-height: 1;
	letter-spacing: -.045em;
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-copy p {
	max-width: 298px;
	margin: 0;
	color: var(--canvas-muted);
	font-size: clamp(7px, .89vw, 9px);
	line-height: 1.34;
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-copy ul {
	display: flex;
	flex-wrap: wrap;
	gap: 3px 11px;
	margin: 6px 0 0;
	padding: 0;
	color: #dce6df;
	font-size: clamp(6px, .79vw, 8px);
	list-style: none;
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-copy li::before {
	margin-right: 5px;
	content: '•';
	color: var(--canvas-green);
}

.canvas-locked-page--who-we-serve .canvas-locked-audience-art {
	min-height: 100%;
	background-image: url('../images/who-row-business.png');
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}

.canvas-locked-page--who-we-serve .canvas-locked-audience--2 .canvas-locked-audience-art { background-image: url('../images/who-row-school.png'); }
.canvas-locked-page--who-we-serve .canvas-locked-audience--3 .canvas-locked-audience-art { background-image: url('../images/who-row-organization.png'); }
.canvas-locked-page--who-we-serve .canvas-locked-audience--4 .canvas-locked-audience-art { background-image: url('../images/who-row-resident.png'); }

.canvas-locked-page--who-we-serve .canvas-locked-process {
	padding-block: clamp(7px, .99vw, 10px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process .section-heading {
	margin-bottom: clamp(5px, .66vw, 7px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process .section-heading .eyebrow {
	margin-bottom: 5px;
	font-size: clamp(5px, .66vw, 7px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process .section-heading h2 {
	font-size: clamp(14px, 1.78vw, 18px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process-grid {
	gap: clamp(13px, 1.7vw, 17px);
	padding-inline: clamp(0px, 9.95vw, 132px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process-grid article {
	min-height: clamp(60px, 8.53vw, 86px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process-grid article:not(:first-child)::before {
	top: 17px;
	left: -19px;
	width: calc(100% - 7px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process-grid span {
	margin-bottom: 5px;
	padding-right: 7px;
	font-size: clamp(15px, 1.97vw, 20px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process-grid h3 {
	margin-bottom: 4px;
	font-size: clamp(7px, .89vw, 9px);
}

.canvas-locked-page--who-we-serve .canvas-locked-process-grid p {
	font-size: clamp(6px, .79vw, 8px);
	line-height: 1.28;
}

.canvas-locked-page--who-we-serve .canvas-locked-dropoff {
	grid-template-columns: clamp(48px, 6.31vw, 64px) minmax(180px, .82fr) minmax(260px, 1.18fr);
	min-height: clamp(67px, 9.07vw, 92px);
	margin-bottom: 9px;
	padding: clamp(8px, 1.05vw, 11px) clamp(16px, 2.37vw, 24px);
}

.canvas-locked-page--who-we-serve .canvas-locked-dropoff > svg {
	width: clamp(36px, 5.92vw, 60px);
	height: clamp(36px, 5.92vw, 60px);
}

.canvas-locked-page--who-we-serve .canvas-locked-dropoff h2 { font-size: clamp(14px, 1.97vw, 20px); }
.canvas-locked-page--who-we-serve .canvas-locked-dropoff p,
.canvas-locked-page--who-we-serve .canvas-locked-checks span { font-size: clamp(7px, .99vw, 10px); }
.canvas-locked-page--who-we-serve .canvas-locked-checks { gap: 7px; padding-left: 28px; }

.canvas-locked-page--who-we-serve .canvas-locked-request {
	grid-template-columns: minmax(0, 1.03fr) minmax(0, 1.31fr);
	min-height: clamp(272px, 26.8vw, 354px);
	margin-bottom: 0;
}

.canvas-locked-page--who-we-serve .canvas-locked-contact-stack {
	grid-template-columns: 50% 50%;
}

.canvas-locked-page--who-we-serve .canvas-locked-contact-image img {
	object-position: 57% center;
}

.canvas-locked-page--who-we-serve .canvas-locked-contact-lines > * {
	gap: 12px;
	padding: 8px 15px;
	font-size: 11px;
	line-height: 1.25;
}

.canvas-locked-page--who-we-serve .canvas-locked-contact-lines svg {
	width: 22px;
	height: 22px;
}

.canvas-locked-page--who-we-serve .canvas-locked-contact-lines small {
	margin-bottom: 3px;
	font-size: 8px;
}

.canvas-locked-page--who-we-serve .canvas-locked-request .service-request-form-panel {
	padding: 18px 22px 15px;
}

.canvas-locked-page--who-we-serve .canvas-locked-request .service-request-form-panel > h2 {
	margin-bottom: 3px;
	font-size: 20px;
}

.canvas-locked-page--who-we-serve .canvas-locked-request .service-request-form-panel > p {
	margin-bottom: 10px;
	font-size: 9px;
}

.canvas-locked-page--who-we-serve .canvas-locked-request .pickup-form,
.canvas-locked-page--who-we-serve .canvas-locked-request .form-grid { gap: 6px; }
.canvas-locked-page--who-we-serve .canvas-locked-request input,
.canvas-locked-page--who-we-serve .canvas-locked-request select { min-height: 25px; padding: 5px 7px; font-size: 8px; }
.canvas-locked-page--who-we-serve .canvas-locked-request textarea { min-height: 37px; padding: 5px 7px; font-size: 8px; }
.canvas-locked-page--who-we-serve .canvas-locked-request .button-submit { min-height: 27px; font-size: 8px; }

body:has(.canvas-locked-page--who-we-serve) .site-footer {
	padding-block: 23px 9px;
}

/* Home: retain the approved content but bring it into the same photographic,
 * unboxed system as every interior page. */
.approved-home {
	background: var(--canvas-black);
}

.approved-home-hero {
	min-height: clamp(500px, 50vw, 700px);
	border-bottom: 1px solid var(--canvas-line);
	background-image:
		linear-gradient(90deg, #020906 0%, rgba(2, 9, 6, .98) 32%, rgba(2, 9, 6, .58) 51%, rgba(2, 9, 6, .06) 78%, rgba(2, 9, 6, .20) 100%),
		linear-gradient(0deg, rgba(2, 9, 6, .74), transparent 46%),
		url('../images/hero-home-approved.png');
	background-position: center, center, center;
	background-size: cover, cover, cover;
}

.approved-home-copy {
	padding-block: clamp(74px, 8vw, 120px);
}

.approved-home-copy h1 {
	max-width: 9.3ch;
	font-size: clamp(51px, 5.7vw, 82px);
}

.approved-home-copy > p:not(.eyebrow) {
	max-width: 500px;
	font-size: 15px;
}

.approved-home-proof {
	background: #05140f;
	border-bottom: 1px solid var(--canvas-line);
}

.approved-home-proof-grid > div {
	min-height: 84px;
	padding: 18px 24px;
}

.approved-home-proof-grid strong { font-size: 13px; }
.approved-home-proof-grid svg { width: 27px; height: 27px; }

.approved-home-services {
	padding-block: clamp(70px, 8vw, 115px);
}

.approved-home-services .section-heading h2 {
	color: var(--canvas-copy);
}

.approved-home-service-grid a {
	min-height: 122px;
	border-color: var(--canvas-line);
	border-radius: 7px;
	background: linear-gradient(135deg, rgba(5, 25, 19, .95), rgba(2, 11, 8, .8));
}

.approved-home-request {
	grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
	gap: 0;
	min-height: 318px;
	margin-bottom: clamp(44px, 6vw, 82px);
	overflow: hidden;
	border: 1px solid rgba(86, 241, 132, .3);
	border-radius: 7px;
}

.approved-home-request > .service-request-form-panel {
	padding: 28px;
	border: 0;
	border-radius: 0;
	background: rgba(2, 10, 7, .72);
}

.approved-home-request .service-request-form-panel > h2 {
	margin: 0 0 4px;
	color: var(--canvas-copy);
	font-size: 24px;
	line-height: 1;
	letter-spacing: -.045em;
}

.approved-home-request .service-request-form-panel > p {
	margin: 0 0 16px;
	color: var(--canvas-muted);
	font-size: 11px;
}

.approved-home-request .pickup-form,
.approved-home-request .form-grid {
	display: grid;
	gap: 8px;
}

.approved-home-request .form-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.approved-home-request .form-grid .form-field-wide {
	grid-column: 1 / -1;
}

.approved-home-request input,
.approved-home-request textarea,
.approved-home-request select {
	width: 100%;
	min-height: 31px;
	padding: 7px 10px;
	color: var(--canvas-copy);
	font-size: 10px;
	border: 1px solid rgba(86, 241, 132, .32);
	border-radius: 4px;
	background: rgba(2, 11, 8, .72);
	box-shadow: none;
}

.approved-home-request textarea { min-height: 47px; resize: vertical; }
.approved-home-request input::placeholder,
.approved-home-request textarea::placeholder { color: #849288; opacity: 1; }
.approved-home-request input:focus-visible,
.approved-home-request textarea:focus-visible,
.approved-home-request select:focus-visible { outline: 2px solid var(--canvas-green); outline-offset: 2px; }
.approved-home-request .button-submit { justify-content: center; width: 100%; min-height: 34px; margin: 0; font-size: 10px; }
.approved-home-request .form-footnote { display: none; }

@media (max-width: 960px) {
	.site-header .header-shell { gap: 16px; }
	.site-header .primary-menu { gap: 12px; }
	.site-header .header-contact-stack { display: none; }
	.canvas-locked-page:not(.canvas-locked-page--who-we-serve) .canvas-locked-audiences { grid-template-columns: 1fr; }
	.canvas-locked-request,
	.canvas-locked-page--who-we-serve .canvas-locked-request,
	.approved-home-request { grid-template-columns: 1fr; }
	.canvas-locked-contact-stack { min-height: 310px; border-right: 0; border-bottom: 1px solid var(--canvas-line); }
	.canvas-locked-page--who-we-serve .canvas-locked-contact-stack { min-height: 310px; }
	.canvas-locked-page--who-we-serve .canvas-locked-request { min-height: 0; }
}

@media (max-width: 720px) {
	.site-header { height: 68px; }
	.site-header .header-shell { min-height: 68px; }
	.site-header .site-navigation { position: absolute; top: 100%; right: 18px; left: 18px; }
	.site-header .primary-menu a { min-height: 42px; }
	.site-header .header-actions { margin-left: auto; }
	.site-header .button-small { min-height: 33px; padding-inline: 13px; }
	.site-header .button-small .icon { display: none; }
	.canvas-locked-hero { min-height: 570px; align-items: end; background-position: center, center, 60% top; background-size: cover, cover, auto 100%; }
	.canvas-locked-hero-copy { padding-block: 236px 46px; }
	.canvas-locked-hero-copy h1 { font-size: clamp(42px, 12vw, 60px); }
	.canvas-locked-process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
	.canvas-locked-process-grid article { min-height: 140px; padding-top: 13px; border-top: 1px solid var(--canvas-line); }
	.canvas-locked-process-grid article:not(:first-child)::before { display: none; }
	.canvas-locked-dropoff { grid-template-columns: 44px 1fr; padding: 20px; }
	.canvas-locked-dropoff > svg { width: 38px; height: 38px; }
	.canvas-locked-dropoff h2 { font-size: 20px; }
	.canvas-locked-checks { grid-column: 1 / -1; padding: 15px 0 0; border-top: 1px solid var(--canvas-line); border-left: 0; }
	.canvas-locked-contact-stack,
	.canvas-locked-page--who-we-serve .canvas-locked-contact-stack { grid-template-columns: 1fr; }
	.canvas-locked-contact-image { min-height: 225px; border-right: 0; border-bottom: 1px solid var(--canvas-line); }
	.canvas-locked-contact-lines > * { min-height: 67px; }
	.canvas-locked-request .service-request-form-panel { padding: 24px 18px; }
	.canvas-locked-page--who-we-serve .canvas-locked-hero { min-height: 600px; background-position: center, center, 64% top; }
	.canvas-locked-page--who-we-serve .canvas-locked-hero-copy { padding-block: 275px 44px; }
	.canvas-locked-page--who-we-serve .canvas-locked-audience { grid-template-columns: 67px 1fr; height: auto; min-height: 132px; }
	.canvas-locked-page--who-we-serve .canvas-locked-audience-art { display: none; }
	.canvas-locked-page--who-we-serve .canvas-locked-audience-copy { padding: 19px 16px; }
	.canvas-locked-page--who-we-serve .canvas-locked-process-grid { padding-inline: 0; }
	.canvas-locked-page--who-we-serve .canvas-locked-dropoff { grid-template-columns: 44px 1fr; }
	.canvas-secure-pricing { grid-template-columns: 1fr; margin-top: 0; }
	.canvas-secure-price { border-right: 0; border-bottom: 1px solid var(--canvas-line); }
	.site-footer .approved-footer-grid { grid-template-columns: 1fr 1fr; }
	.site-footer .approved-footer-brand { grid-column: 1 / -1; }
	.site-footer .approved-footer-bottom { display: grid; }
}

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

@media (max-width: 430px) {
	.site-shell { width: calc(100% - 36px); }
	.canvas-locked-process-grid { grid-template-columns: 1fr; }
	.canvas-locked-process-grid article { min-height: 112px; }
	.canvas-locked-request .form-grid { grid-template-columns: 1fr; }
	.canvas-locked-request .form-grid .form-field-wide { grid-column: auto; }
	.approved-home-request .form-grid { grid-template-columns: 1fr; }
	.approved-home-request .form-grid .form-field-wide { grid-column: auto; }
	.site-footer .approved-footer-grid { grid-template-columns: 1fr; }
}
