/* Services and custom builds pages (build_services.py). Loaded after system.css.
   Every class is set from the block editor (Advanced > Additional CSS class) or comes from a block style. */

/* Hero whose H1 is a full sentence (/services/, /parts/): Group .his-page-hero--long */
.his-page-hero--long h1 { font-size: clamp(2.2rem, 4.2vw, 3.8rem); line-height: .98; }

/* Contact strip on interior pages: the homepage strip (Group .his-strip), stacked on phones instead of scrolling */
.his-strip--page ul { justify-content: center; overflow: visible; }
.his-strip--page li { flex: 1 1 auto; justify-content: center; white-space: normal; flex-wrap: wrap; }
.his-strip--page li strong { font-size: clamp(1.15rem, 1.7vw, 1.6rem); white-space: nowrap; }
@media (max-width: 781px) {
	.his-strip--page ul { flex-direction: column; overflow: visible; }
	.his-strip--page li { border-right: 0; border-bottom: 1px solid var(--his-line); white-space: normal; flex-wrap: wrap; justify-content: flex-start; padding: 16px var(--his-gutter); }
	.his-strip--page li:last-child { border-bottom: 0; }
}

/* Contact box (card .his-help): "Need our help?" + contact button + phone */
.wp-block-group.his-help { gap: 14px; padding: clamp(26px, 3vw, 40px); }
.his-help h2, .his-help h3 { font-family: var(--his-cond); font-weight: 800; text-transform: uppercase; font-size: clamp(1.8rem, 2.6vw, 2.4rem); line-height: 1; margin: 0; }
.his-help .is-style-eyebrow { margin: 6px 0 0 !important; }

/* Call-to-action band (Group .his-cta): sentence-length headings */
.his-cta .his-cta__title { font-size: clamp(1.9rem, 3.4vw, 3rem); line-height: 1.02; max-width: 30ch; margin-left: auto; margin-right: auto; }
.his-cta:not(.his-section-center) .his-cta__title { margin-left: 0; }
.his-cta .his-cta__title--long { font-size: clamp(1.5rem, 2.4vw, 2.2rem); max-width: 48ch; line-height: 1.1; }
.his-cta .wp-block-buttons { margin-top: 28px; }
.his-cta .is-style-lead { margin-left: auto; margin-right: auto; }
.his-cta .wp-block-columns { gap: clamp(30px, 5vw, 80px); }
.his-cta .his-cta__icon img { width: 96px; height: auto; }

/* Custom builds environments band (Cover .his-custom--page) */
.his-custom--page .his-custom__title { font-size: clamp(2rem, 3.8vw, 3.4rem); max-width: 24ch; margin-bottom: 36px; }
.his-custom--page .is-style-env::before { display: inline-block; vertical-align: middle; }
.his-custom--page .his-env-num { display: inline-block; vertical-align: middle; margin: 0 0 16px 14px !important; font-variation-settings: "wdth" 75, "wght" 600; letter-spacing: .16em; font-size: .8rem; color: var(--his-mint-soft) !important; }

/* Custom build project pages: gallery + details */
.his-build { gap: clamp(28px, 4vw, 64px) !important; }
.his-build-gallery.wp-block-gallery { gap: 12px !important; margin-top: clamp(28px, 4vw, 52px) !important; }
.his-build-gallery .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; }
.his-build__title { font-size: clamp(2rem, 3.6vw, 3.2rem); }
.his-build .is-style-arrows, .his-build-solo .is-style-arrows { margin-top: 22px; }
.his-build .is-style-arrows li, .his-build-solo .is-style-arrows li { font-size: 1rem; }

/* Audits: copy + leak estimator */
.his-audit-cols { gap: clamp(28px, 4vw, 64px) !important; margin-top: clamp(24px, 3vw, 40px) !important; }
.his-audit-copy h3 { font-size: 1.6rem; line-height: 1.05; margin-top: 1.4em; }
.his-audit-copy h3:first-child { margin-top: 0; }
.his-audit-copy > * + * { margin-top: 14px; }
.his-audit-calc .calc { margin-top: 0; position: sticky; top: 140px; }
.wp-block-image.his-logo { margin-top: 24px; }
.wp-block-image.his-logo img { width: 240px; height: auto; }

/* Maintenance: heading left, copy right */
.his-maint { gap: clamp(28px, 5vw, 80px) !important; }
.his-maint > .wp-block-column > * + * { margin-top: 16px; }

/* Parts: long copy in two columns */
.his-parts-cols { gap: clamp(28px, 4vw, 64px) !important; margin-top: clamp(24px, 3vw, 40px) !important; }
.his-parts-copy > * + * { margin-top: 14px; }
.his-parts-copy h3 { font-size: 1.6rem; line-height: 1.05; margin-top: 1.6em; }
.his-parts-copy h3:first-child { margin-top: 0; }
.his-parts-copy .his-parts-fluids { margin: 18px 0; }
.his-parts-side { display: flex; flex-direction: column; gap: 16px; }
.his-parts-side > * { margin: 0 !important; height: auto !important; }
.his-parts-note { margin-top: clamp(28px, 3vw, 44px) !important; font-size: clamp(1.02rem, 1.3vw, 1.15rem); color: var(--his-gray); }
.his-parts-note a { color: var(--his-green-text); text-decoration: underline; text-underline-offset: 3px; }

/* Split with a product cutout: Image style "Contain" in the photo column shows the whole product */
.his-split__photo:has(> .wp-block-image.is-style-contain) { background: #fff; border: 1px solid var(--his-line); border-right: 0; }
.his-split__photo > .wp-block-image.is-style-contain img { object-fit: contain; padding: clamp(16px, 3vw, 40px); box-sizing: border-box; }
@media (max-width: 781px) { .his-split__photo:has(> .wp-block-image.is-style-contain) { border-right: 1px solid var(--his-line); border-bottom: 0; } }

/* Heading whose highlighted words must stay on one line (e.g. "a HOLT a Go-to"): Heading class his-nowrap-mark */
.his-nowrap-mark mark { white-space: nowrap; }

/* Cards with more than one paragraph */
.is-style-card .is-style-eyebrow { margin-bottom: 0; }
