/*
 * About — `/about/`, page-scoped stylesheet.
 *
 * Every value traces to Swiftheat About.dc.html, measured with Chrome
 * DevTools. Reuses tokens.css wherever a matching token exists; one-off
 * values are commented with their measured source.
 *
 * This file only loads on this one page (see inc/enqueue.php's
 * is_page('about') condition) — it never loads alongside home.css,
 * archive-product.css or single-product.css, so the Industries bento-grid
 * below (independently rebuilt here, same content/pattern as Home's own
 * `.industries`) needs no extra specificity to avoid a cross-file clash.
 *
 * Heading/link/button selectors are written as 2-class compounds with
 * explicit colors from the start — the established Elementor Kit
 * collision defense used in every section this project has built.
 */

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

.about-hero {
	background: var(--color-indigo-hero);
	color: var(--text-on-dark);
	position: relative;
	overflow: hidden;
}

.about-hero__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	/* 80px is this element's own exact measured gap — same literal Single
	   Product's own hero uses, not a shared token. */
	gap: 80px;
	align-items: center;
	padding: 96px var(--gutter-desktop);
	box-sizing: border-box;
}

.about-hero__eyebrow {
	font-family: var(--font-mono);
	font-size: var(--fs-eyebrow);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--ls-eyebrow);
	color: var(--color-red);
	margin-bottom: 26px;
}

.about-hero .about-hero__title {
	font-family: var(--font-primary);
	font-size: var(--fs-h1-page);
	font-weight: var(--fw-extrabold);
	/* 1.0 is this element's own exact measured line-height — distinct
	   from --lh-tight (1.02), not a substitute for it. */
	line-height: 1;
	letter-spacing: var(--ls-tight);
	color: var(--text-on-dark);
	margin: 0 0 26px;
}

.about-hero__dot {
	color: var(--color-red);
}

.about-hero__desc {
	font-family: var(--font-primary);
	font-size: 18.5px;
	line-height: var(--lh-body);
	color: var(--text-on-dark-body-alt);
	max-width: 540px;
	margin: 0;
}

.about-hero__photo {
	position: relative;
	overflow: hidden;
	height: 420px;
	/* This element's own exact measured border/shadow — distinct from
	   --shadow-frame-hero (different rgba values), not a substitute. */
	border: 1px solid rgba(150, 156, 230, 0.3);
	box-shadow: 0 50px 100px rgba(3, 4, 30, 0.6);
	background: var(--color-indigo-hero);
}

.about-hero__photo-badge {
	position: absolute;
	top: 16px;
	right: 16px;
	font-family: var(--font-mono);
	font-size: var(--fs-micro);
	/* 0.14em is this element's own exact letter-spacing — reused as the
	   same literal by Our Journey's own tag label below, not a token. */
	letter-spacing: 0.14em;
	background: var(--color-indigo-hero);
	color: var(--text-on-dark);
	padding: 8px 12px;
	pointer-events: none;
}

/* ---- Our Story ----
 * Restructured from a single two-column row (narrow heading column
 * beside one long copy column, with the strengths strip nested inside
 * that copy column) into three full-width stacked chapters — a header
 * row (eyebrow/heading anchor + positioning paragraph), a full-width
 * 4-item strengths strip, and an editorial paragraph column with
 * divider rules — so the section uses the container's full width
 * instead of leaving one side empty. All values below are either
 * carried forward unchanged from the previous layout (paragraph gap,
 * 17.5px body size, strengths' border/icon treatment) or reuse this
 * section's own already-established 96px column gap. */

.about-story {
	background: var(--color-bg-white);
}

.about-story__inner {
	padding: var(--space-section-lg-top) var(--gutter-desktop);
	box-sizing: border-box;
}

.about-story__header {
	display: grid;
	/* Same "narrow anchor column + wider column" shape this section
	   already used, kept as the heading's own anchor — just paired with
	   the positioning paragraph instead of the full copy block. */
	grid-template-columns: minmax(280px, 380px) 1fr;
	gap: 96px;
	align-items: start;
	margin-bottom: 64px;
}

.about-story__eyebrow {
	font-family: var(--font-mono);
	font-size: var(--fs-eyebrow);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--ls-eyebrow);
	color: var(--color-red);
	margin-bottom: 20px;
}

.about-story .about-story__heading {
	font-family: var(--font-primary);
	font-size: var(--fs-h2-feature);
	font-weight: var(--fw-extrabold);
	letter-spacing: var(--ls-heading);
	line-height: var(--lh-heading);
	color: var(--color-navy);
	margin: 0;
}

.about-story__lead p {
	margin: 0;
	font-family: var(--font-primary);
	/* fs-body-large (19px) + navy, distinct from the muted 17.5px story
	   paragraphs below — gives the positioning paragraph the "strong
	   visual prominence" the brief asks for, using an existing token
	   rather than a new size. */
	font-size: var(--fs-body-large);
	font-weight: var(--fw-medium);
	line-height: var(--lh-body-loose);
	color: var(--color-navy);
}

.about-story__strengths {
	display: grid;
	/* Full-width 4-column strip now that it's decoupled from the old
	   narrow copy column — same 4-column pattern already used by this
	   page's own Our Journey/What We Do/Why Choose Swiftheat grids. */
	grid-template-columns: repeat(4, 1fr);
	gap: 18px 24px;
	margin-bottom: 64px;
}

.about-story__strength {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 14px;
	border-top: 1px solid var(--border-light);
}

.about-story__strength-icon {
	flex-shrink: 0;
	color: var(--color-red);
}

.about-story .about-story__strength-label {
	font-family: var(--font-primary);
	font-size: 15px;
	font-weight: var(--fw-semibold);
	color: var(--color-navy);
}

.about-story__body {
	display: flex;
	flex-direction: column;
	/* 24px paragraph gap is this element's own exact measured value,
	   carried forward unchanged from the previous layout. */
	gap: 24px;
	max-width: 640px;
}

.about-story__body p {
	margin: 0;
	font-family: var(--font-primary);
	/* 17.5px is this element's own exact measured size — distinct from
	   --fs-body (17px) and --fs-body-large (19px), not a substitute for
	   either. */
	font-size: 17.5px;
	line-height: var(--lh-body-loose);
	color: var(--text-body-muted);
}

.about-story__body p + p {
	/* Subtle divider between the four story points, per the brief's own
	   "editorial column with subtle separators" option — same
	   border-light token already used by the strengths strip above. */
	padding-top: 24px;
	border-top: 1px solid var(--border-light);
}

/* ---- Our Journey ---- */

.about-journey {
	background: var(--color-bg-neutral);
}

.about-journey__inner {
	padding: var(--space-section-standard) var(--gutter-desktop);
	box-sizing: border-box;
}

.about-journey__eyebrow,
.about-capabilities__eyebrow,
.about-process__eyebrow,
.about-industries__eyebrow {
	font-family: var(--font-mono);
	font-size: var(--fs-eyebrow);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--ls-eyebrow);
	color: var(--color-red);
	margin-bottom: 20px;
}

.about-journey .about-journey__heading {
	font-family: var(--font-primary);
	font-size: var(--fs-h2-sub);
	font-weight: var(--fw-extrabold);
	letter-spacing: var(--ls-heading);
	line-height: var(--lh-heading);
	color: var(--color-navy);
	margin: 0 0 72px;
}

.about-journey__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	/* No grid gap — spacing between cards comes entirely from each card's
	   own right-padding, matching the design's own markup exactly (its
	   grid declares no gap property at all). */
}

.about-journey__card {
	border-top: 2px solid var(--border-warm);
	padding: 28px 32px 0 0;
	position: relative;
}

.about-journey__dot {
	position: absolute;
	top: -7px;
	left: 0;
	width: 12px;
	height: 12px;
	background: var(--color-red);
	border-radius: 50%;
}

.about-journey__tag {
	font-family: var(--font-mono);
	font-size: 11.5px;
	letter-spacing: 0.14em;
	color: var(--text-faint-label);
	margin-bottom: 12px;
}

.about-journey .about-journey__title,
.about-process .about-process__title {
	font-family: var(--font-primary);
	font-size: var(--fs-card-title);
	font-weight: var(--fw-extrabold);
	color: var(--color-navy);
	margin-bottom: 10px;
}

.about-journey__desc,
.about-capabilities__desc,
.about-process__desc,
.about-benefits__desc {
	font-family: var(--font-primary);
	/* 14.5px / 1.65 line-height are this element's own exact measured
	   values — distinct from --fs-body-small (14px) and --lh-body (1.7),
	   not a substitute for either. Reused as the same literals across all
	   four card types on this page since every one measures identically. */
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--text-secondary);
}

.about-benefits__desc {
	color: var(--text-on-dark-body);
}

/* ---- What We Do (Capabilities) ---- */

.about-capabilities {
	background: var(--color-bg-white);
}

.about-capabilities__inner,
.about-process__inner,
.about-industries__inner {
	padding: var(--space-section-standard) var(--gutter-desktop);
	box-sizing: border-box;
}

.about-capabilities .about-capabilities__heading {
	font-family: var(--font-primary);
	font-size: var(--fs-h2-sub);
	font-weight: var(--fw-extrabold);
	letter-spacing: var(--ls-heading);
	line-height: var(--lh-heading);
	color: var(--color-navy);
	/* 52px is this element's own exact measured margin-bottom — the same
	   literal Single Product's own Applications heading uses. */
	margin: 0 0 52px;
}

.about-capabilities__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--gap-grid-4col);
}

.about-capabilities__card {
	background: var(--color-bg-white);
	border: 1px solid var(--border-light);
	border-radius: var(--radius-card);
	/* 34px is this element's own exact measured padding — distinct from
	   --pad-card (30px), not a substitute for it. */
	padding: 34px;
	box-shadow: var(--shadow-card-rest);
	transition: box-shadow var(--transition-standard), transform var(--transition-standard);
}

.about-capabilities__card:hover {
	/* This element's own exact measured hover shadow/lift — distinct from
	   --shadow-card-hover / --translate-card-hover, not a substitute for
	   either. */
	box-shadow: 0 20px 44px rgba(20, 40, 70, 0.12);
	transform: translateY(-5px);
}

.about-capabilities__icon {
	display: block;
	margin-bottom: 20px;
}

.about-capabilities .about-capabilities__title,
.about-benefits .about-benefits__title {
	font-family: var(--font-primary);
	/* 19px is this element's own exact measured size — the same literal
	   Related Products' own card title uses, not the --fs-card-title
	   (20px) token. */
	font-size: 19px;
	font-weight: var(--fw-extrabold);
	color: var(--color-navy);
	margin-bottom: 10px;
}

.about-benefits .about-benefits__title {
	color: var(--text-on-dark);
}

/* ---- Why Choose Swiftheat (Benefits) ---- */

.about-benefits {
	background: var(--color-navy);
	color: var(--text-on-dark);
	position: relative;
	overflow: hidden;
}

.about-benefits::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(143, 166, 201, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(143, 166, 201, 0.06) 1px, transparent 1px);
	background-size: 56px 56px;
	pointer-events: none;
}

.about-benefits__inner {
	max-width: var(--site-container);
	margin: 0 auto;
	padding: var(--space-section-standard) var(--gutter-desktop);
	box-sizing: border-box;
	position: relative;
}

.about-benefits__eyebrow {
	font-family: var(--font-mono);
	font-size: var(--fs-eyebrow);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--ls-eyebrow);
	color: var(--color-pink-accent);
	margin-bottom: 20px;
}

.about-benefits .about-benefits__heading {
	font-family: var(--font-primary);
	font-size: var(--fs-h2-sub);
	font-weight: var(--fw-extrabold);
	letter-spacing: var(--ls-heading);
	line-height: var(--lh-heading);
	color: var(--text-on-dark);
	margin: 0 0 52px;
}

.about-benefits__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap-grid-3col);
}

.about-benefits__card {
	border: 1px solid rgba(143, 166, 201, 0.25);
	padding: 30px 32px;
	transition: border-color var(--transition-standard), background var(--transition-standard);
}

.about-benefits__card:hover {
	border-color: rgba(255, 255, 255, 0.5);
	background: rgba(255, 255, 255, 0.04);
}

.about-benefits__num,
.about-process__num {
	font-family: var(--font-mono);
	font-size: var(--fs-utility);
	color: var(--color-red);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--ls-cta);
	margin-bottom: 14px;
}

/* ---- How We Work (Process) ---- */

.about-process {
	background: var(--color-bg-white);
}

.about-process__inner {
	/* 120px bottom is this element's own exact measured value — distinct
	   from the 130px top, both literal (this section's own padding is
	   asymmetric in the design). */
	padding: var(--space-section-lg-top) var(--gutter-desktop) 120px;
}

.about-process__header {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: end;
	margin-bottom: 72px;
}

.about-process .about-process__heading {
	font-family: var(--font-primary);
	font-size: var(--fs-h2-major);
	font-weight: var(--fw-extrabold);
	letter-spacing: var(--ls-heading);
	line-height: var(--lh-heading);
	color: var(--color-navy);
	margin: 0;
}

.about-process__lead {
	font-family: var(--font-primary);
	font-size: var(--fs-body);
	/* 1.75 is this element's own exact measured line-height — distinct
	   from --lh-body (1.7) and --lh-body-loose (1.8), not a substitute
	   for either. */
	line-height: 1.75;
	color: var(--text-body-muted);
	max-width: 520px;
	margin: 0;
}

.about-process__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.about-process__card {
	border-top: 1px solid var(--border-warm);
	padding: 28px 32px 44px 0;
	position: relative;
	transition: border-color var(--transition-standard);
}

.about-process__card:hover {
	border-color: var(--color-red);
}

.about-process__dot {
	position: absolute;
	top: -5px;
	left: 0;
	width: 9px;
	height: 9px;
	background: var(--color-navy);
	border-radius: 50%;
}

/* ---- Industries (independent rebuild of Home's own component, same
   content/pattern — see this file's own top docblock for why) ---- */

.about-industries {
	background: var(--color-bg-neutral);
	border-top: 1px solid var(--border-light);
}

.about-industries__inner {
	padding: var(--space-section-lg-top) var(--gutter-desktop);
}

.about-industries__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 40px;
	margin-bottom: 64px;
	flex-wrap: wrap;
}

.about-industries__intro {
	max-width: 680px;
}

.about-industries .about-industries__heading {
	font-family: var(--font-primary);
	font-size: var(--fs-h2-major);
	font-weight: var(--fw-extrabold);
	letter-spacing: var(--ls-heading);
	line-height: var(--lh-heading);
	color: var(--color-navy);
	margin: 0;
}

.about-industries .about-industries__cta {
	flex: none;
	font-family: var(--font-mono);
	font-size: var(--fs-eyebrow);
	font-weight: var(--fw-semibold);
	letter-spacing: 0.1em;
	color: var(--color-blue-link-dark);
	border-bottom: 2px solid var(--color-red);
	padding-bottom: 6px;
}

.about-industries .about-industries__cta:hover {
	color: var(--color-red);
}

.about-industries__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 300px;
	gap: var(--gap-grid-6col);
}

.about-industries__tile {
	position: relative;
	overflow: hidden;
	background: var(--color-navy);
}

.about-industries__tile--wide {
	grid-column: span 2;
}

.about-industries__tile-overlay {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	padding: 24px 28px;
	pointer-events: none;
	background: linear-gradient(rgba(8, 23, 41, 0.75), rgba(8, 23, 41, 0));
}

.about-industries__tile-name {
	font-size: 22px;
	font-weight: var(--fw-extrabold);
	color: var(--text-on-dark);
	text-shadow: 0 2px 12px rgba(8, 23, 41, 0.6);
}

.about-industries__tile-use {
	font-family: var(--font-mono);
	font-size: 11.5px;
	letter-spacing: var(--ls-meta);
	color: var(--text-on-dark-caption);
	margin-top: 6px;
	text-shadow: 0 2px 8px rgba(8, 23, 41, 0.6);
}

/* ---- Final CTA ---- */

.about-cta {
	background: var(--color-navy);
	color: var(--text-on-dark);
	position: relative;
	overflow: hidden;
	border-top: 1px solid var(--color-navy-raised);
}

.about-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(143, 166, 201, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(143, 166, 201, 0.06) 1px, transparent 1px);
	background-size: 56px 56px;
	pointer-events: none;
}

.about-cta__inner {
	max-width: var(--site-container);
	margin: 0 auto;
	padding: var(--space-section-standard) var(--gutter-desktop);
	box-sizing: border-box;
	text-align: center;
	position: relative;
}

.about-cta .about-cta__heading {
	font-family: var(--font-primary);
	font-size: var(--fs-h2-feature);
	font-weight: var(--fw-extrabold);
	letter-spacing: var(--ls-heading);
	line-height: var(--lh-heading);
	color: var(--text-on-dark);
	max-width: 860px;
	margin: 0 auto 24px;
}

.about-cta__desc {
	font-family: var(--font-primary);
	font-size: 18px;
	line-height: var(--lh-body);
	color: var(--text-on-dark-body);
	max-width: 640px;
	margin: 0 auto 44px;
}

.about-cta__actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

.about-cta .about-cta__button {
	display: inline-block;
	padding: var(--pad-button-primary);
	font-family: var(--font-primary);
	font-size: 15.5px;
	font-weight: var(--fw-extrabold);
	text-decoration: none;
	transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.about-cta .about-cta__button--primary {
	background: var(--color-red);
	color: var(--text-on-dark);
	border: 1px solid var(--color-red);
}

.about-cta .about-cta__button--primary:hover,
.about-cta .about-cta__button--primary:focus-visible {
	background: var(--text-on-dark);
	color: var(--color-navy);
	border-color: var(--text-on-dark);
}

.about-cta .about-cta__button--secondary {
	color: var(--text-on-dark);
	border: 1px solid rgba(255, 255, 255, 0.3);
}

.about-cta .about-cta__button--secondary:hover,
.about-cta .about-cta__button--secondary:focus-visible {
	border-color: var(--text-on-dark);
	background: rgba(255, 255, 255, 0.06);
	color: var(--text-on-dark);
}

/* ---- Responsive ----
 * The approved design has zero @media queries anywhere in the design
 * folder (confirmed by grep, same check repeated every section this
 * project has built). The collapses below reuse the same patterns already
 * established for every other section on this site. */

@media (max-width: 1024px) {
	.about-hero__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.about-hero__photo {
		order: -1;
	}

	.about-story__header {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.about-story__strengths {
		grid-template-columns: 1fr 1fr;
	}

	.about-journey__grid {
		grid-template-columns: 1fr 1fr;
		row-gap: 32px;
	}

	.about-journey__card {
		padding-right: 24px;
	}

	.about-capabilities__grid {
		grid-template-columns: 1fr 1fr;
	}

	.about-benefits__grid {
		grid-template-columns: 1fr 1fr;
	}

	.about-process__header {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.about-process__grid {
		grid-template-columns: 1fr 1fr;
		row-gap: 32px;
	}

	.about-process__card {
		padding-right: 24px;
	}

	.about-industries__grid {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: 260px;
	}

	.about-industries__tile--wide {
		grid-column: span 2;
	}
}

@media (max-width: 768px) {
	.about-hero__inner,
	.about-story__inner,
	.about-journey__inner,
	.about-capabilities__inner,
	.about-benefits__inner,
	.about-process__inner,
	.about-industries__inner,
	.about-cta__inner {
		padding-left: var(--gutter-mobile);
		padding-right: var(--gutter-mobile);
	}

	.about-hero .about-hero__title {
		font-size: 44px;
	}

	.about-journey__grid,
	.about-capabilities__grid,
	.about-benefits__grid,
	.about-process__grid,
	.about-story__strengths {
		grid-template-columns: 1fr;
	}

	.about-industries__grid {
		grid-template-columns: 1fr;
		grid-auto-rows: 220px;
	}

	.about-industries__tile--wide {
		grid-column: span 1;
	}

	.about-story .about-story__heading,
	.about-journey .about-journey__heading,
	.about-capabilities .about-capabilities__heading,
	.about-benefits .about-benefits__heading,
	.about-process .about-process__heading,
	.about-industries .about-industries__heading {
		font-size: 32px;
	}

	.about-cta .about-cta__heading {
		font-size: 36px;
	}

	.about-cta__actions {
		flex-direction: column;
	}

	.about-industries__header {
		flex-direction: column;
		align-items: flex-start;
	}
}
