/* ==========================================================================
   AHM Industrial — Homepage & archive sections
   Hero, about, services, solutions, projects, process, why-us, team,
   testimonials, blog, CTA, single-post layouts.
   ========================================================================== */

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

.ahm-hero {
	position: relative;
	display: flex;
	overflow: hidden;
	align-items: center;
	min-height: min( 92vh, 900px );
	padding-block: clamp( 120px, 9rem + 6vw, 220px ) clamp( 80px, 5rem + 4vw, 140px );
	background-color: var( --ahm-dark );
	background-position: center;
	background-size: cover;
	color: rgba( 255, 255, 255, 0.76 );
}

.ahm-hero__bg {
	position: absolute;
	z-index: 0;
	inset: 0;
}

.ahm-hero__bg img,
.ahm-hero__bg video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Layered scrim so headline text always reads */
.ahm-hero__scrim {
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient( 100deg, rgba( 10, 17, 25, 0.94 ) 0%, rgba( 10, 17, 25, 0.78 ) 46%, rgba( 10, 17, 25, 0.45 ) 100% );
}

.ahm-hero__scrim::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient( 135deg, rgba( 255, 91, 27, 0.06 ) 0 2px, transparent 2px 16px );
}

.ahm-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
}

.ahm-hero__content {
	max-width: 760px;
}

.ahm-hero__title {
	margin-bottom: 22px;
	color: var( --ahm-white );
	font-size: var( --ahm-fs-display );
	letter-spacing: -0.035em;
}

.ahm-hero__text {
	max-width: 560px;
	margin-bottom: 38px;
	font-size: 1.0625rem;
	line-height: 1.85;
}

.ahm-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 20px;
	align-items: center;
}

/* Trust strip pinned to the bottom of the hero */
.ahm-hero__strip {
	display: grid;
	gap: 24px 30px;
	margin-top: clamp( 48px, 3rem + 3vw, 84px );
	padding-top: 36px;
	border-top: 1px solid rgba( 255, 255, 255, 0.14 );
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
}

.ahm-hero__strip-item {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}

.ahm-hero__strip-icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: var( --ahm-radius );
	background-color: rgba( 255, 91, 27, 0.16 );
	color: var( --ahm-primary );
}

.ahm-hero__strip-icon svg {
	width: 23px;
	height: 23px;
}

.ahm-hero__strip-title {
	margin-bottom: 4px;
	color: var( --ahm-white );
	font-family: var( --ahm-font-heading );
	font-size: 1rem;
	font-weight: 600;
}

.ahm-hero__strip-text {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.65;
}

/* Optional slider dots for a multi-slide hero */
.ahm-hero__dots {
	position: absolute;
	z-index: 3;
	right: 40px;
	bottom: 40px;
	display: flex;
	gap: 10px;
}

.ahm-hero__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: rgba( 255, 255, 255, 0.3 );
	cursor: pointer;
	transition: all var( --ahm-transition );
}

.ahm-hero__dot.is-active {
	width: 30px;
	border-radius: var( --ahm-radius-pill );
	background-color: var( --ahm-primary );
}

/* --------------------------------------------------------------------------
   Documentary / video feature
   -------------------------------------------------------------------------- */

.ahm-documentary {
	position: relative;
	background-color: var( --ahm-cream );
}

.ahm-documentary__grid {
	display: grid;
	gap: 30px 60px;
	align-items: center;
	grid-template-columns: 1fr 1.15fr;
}

.ahm-documentary__title {
	font-size: var( --ahm-fs-h2 );
}

/* Video that lazily swaps in an iframe when the play button is clicked */
.ahm-video {
	position: relative;
	display: grid;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	place-items: center;
	border-radius: var( --ahm-radius-lg );
	background-color: var( --ahm-dark-2 );
	background-position: center;
	background-size: cover;
	cursor: pointer;
}

.ahm-video::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba( 10, 17, 25, 0.42 );
	transition: background-color var( --ahm-transition );
}

.ahm-video:hover::before {
	background-color: rgba( 10, 17, 25, 0.56 );
}

.ahm-video > * {
	position: relative;
	z-index: 2;
}

.ahm-video.is-playing::before,
.ahm-video.is-playing .ahm-play,
.ahm-video.is-playing .ahm-video__meta {
	display: none;
}

.ahm-video iframe {
	position: absolute;
	z-index: 3;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ahm-video__meta {
	position: absolute;
	z-index: 2;
	bottom: 20px;
	left: 22px;
	color: var( --ahm-white );
	font-family: var( --ahm-font-heading );
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   About
   -------------------------------------------------------------------------- */

.ahm-about__grid {
	display: grid;
	gap: 40px 64px;
	align-items: center;
	grid-template-columns: 1fr 1fr;
}

.ahm-about__media {
	position: relative;
}

.ahm-about__media-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto auto;
}

.ahm-about__media-grid .ahm-frame:first-child {
	grid-row: span 2;
	aspect-ratio: 3 / 4.4;
}

.ahm-about__media-grid .ahm-frame {
	aspect-ratio: 4 / 3;
}

.ahm-about__title {
	font-size: var( --ahm-fs-h2 );
}

.ahm-about__text {
	margin-bottom: 28px;
}

.ahm-about__stats {
	display: grid;
	gap: 24px 30px;
	margin: 34px 0;
	padding: 28px 0;
	border-block: 1px solid var( --ahm-border );
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
}

.ahm-about__stat-value {
	color: var( --ahm-primary );
	font-family: var( --ahm-font-heading );
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
}

.ahm-about__stat-label {
	margin: 8px 0 0;
	font-size: 0.9375rem;
}

/* Signature / owner block */
.ahm-about__signer {
	display: flex;
	flex-wrap: wrap;
	gap: 18px 26px;
	align-items: center;
	margin-top: 34px;
}

.ahm-about__signer img {
	width: 62px;
	height: 62px;
	border-radius: 50%;
	object-fit: cover;
}

.ahm-about__signer-name {
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 1.0625rem;
	font-weight: 600;
}

.ahm-about__signer-role {
	color: var( --ahm-muted );
	font-size: 0.875rem;
}

/* --------------------------------------------------------------------------
   Services
   -------------------------------------------------------------------------- */

.ahm-services__grid {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
}

.ahm-services__grid--3 {
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
}

/* Solutions list — numbered rows that expand on hover */
.ahm-solutions {
	border-top: 1px solid var( --ahm-border );
}

.ahm-solution {
	position: relative;
	display: grid;
	gap: 20px 32px;
	align-items: center;
	padding: 30px 26px;
	border-bottom: 1px solid var( --ahm-border );
	grid-template-columns: 84px 1.1fr 1.5fr auto;
	transition: background-color var( --ahm-transition );
}

.ahm-solution:hover {
	background-color: var( --ahm-cream );
}

.ahm-solution__num {
	color: var( --ahm-primary );
	font-family: var( --ahm-font-heading );
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.ahm-solution__title {
	margin: 0;
	font-size: 1.375rem;
}

.ahm-solution__title a {
	color: inherit;
}

.ahm-solution__title a:hover {
	color: var( --ahm-primary );
}

.ahm-solution__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.75;
}

/* --------------------------------------------------------------------------
   Manufacture / capability showcase
   -------------------------------------------------------------------------- */

.ahm-manufacture {
	position: relative;
	background-color: var( --ahm-dark );
	color: rgba( 255, 255, 255, 0.72 );
}

.ahm-manufacture__grid {
	display: grid;
	gap: 40px 60px;
	align-items: center;
	grid-template-columns: 1fr 1.1fr;
}

.ahm-manufacture__tiles {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
}

.ahm-tile {
	position: relative;
	overflow: hidden;
	padding: 30px 28px;
	border: 1px solid rgba( 255, 255, 255, 0.1 );
	border-radius: var( --ahm-radius );
	background-color: rgba( 255, 255, 255, 0.04 );
	transition: all var( --ahm-transition );
}

.ahm-tile:hover {
	border-color: rgba( 255, 91, 27, 0.4 );
	background-color: rgba( 255, 91, 27, 0.08 );
	transform: translateY( -5px );
}

.ahm-tile__icon {
	margin-bottom: 20px;
	color: var( --ahm-primary );
}

.ahm-tile__icon svg {
	width: 34px;
	height: 34px;
}

.ahm-tile__title {
	margin-bottom: 8px;
	color: var( --ahm-white );
	font-size: 1.0625rem;
}

.ahm-tile__text {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.7;
}

/* --------------------------------------------------------------------------
   Projects
   -------------------------------------------------------------------------- */

.ahm-projects__grid {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
}

.ahm-project {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var( --ahm-radius-lg );
	background-color: var( --ahm-dark );
}

.ahm-project__media {
	aspect-ratio: 4 / 5;
}

.ahm-project__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier( 0.25, 0.8, 0.25, 1 );
}

.ahm-project:hover .ahm-project__media img {
	transform: scale( 1.08 );
}

.ahm-project__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient( 180deg, transparent 34%, rgba( 10, 17, 25, 0.9 ) 100% );
	transition: background var( --ahm-transition );
}

.ahm-project__body {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 30px 28px;
	color: rgba( 255, 255, 255, 0.75 );
}

.ahm-project__cat {
	display: inline-flex;
	margin-bottom: 12px;
	color: var( --ahm-primary );
	font-family: var( --ahm-font-heading );
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ahm-project__title {
	margin-bottom: 10px;
	color: var( --ahm-white );
	font-size: 1.375rem;
	line-height: 1.3;
}

.ahm-project__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	font-size: 0.8125rem;
}

.ahm-project__meta span {
	display: inline-flex;
	gap: 7px;
	align-items: center;
}

.ahm-project__meta svg {
	width: 13px;
	height: 13px;
	color: var( --ahm-primary );
}

/* Arrow badge that fades in on hover */
.ahm-project__arrow {
	position: absolute;
	top: 22px;
	right: 22px;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background-color: var( --ahm-primary );
	color: var( --ahm-white );
	opacity: 0;
	transform: scale( 0.7 ) rotate( -30deg );
	transition: all var( --ahm-transition );
}

.ahm-project:hover .ahm-project__arrow {
	opacity: 1;
	transform: scale( 1 ) rotate( 0deg );
}

.ahm-project__arrow svg {
	width: 17px;
	height: 17px;
}

/* Filter buttons for the projects archive */
.ahm-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-bottom: 48px;
}

.ahm-filters button,
.ahm-filters a {
	padding: 11px 24px;
	border: 1px solid var( --ahm-border );
	border-radius: var( --ahm-radius-pill );
	background: none;
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: all var( --ahm-transition );
}

.ahm-filters button:hover,
.ahm-filters a:hover,
.ahm-filters .is-active {
	border-color: var( --ahm-primary );
	background-color: var( --ahm-primary );
	color: var( --ahm-white );
}

/* --------------------------------------------------------------------------
   Work process
   -------------------------------------------------------------------------- */

.ahm-process__grid {
	display: grid;
	gap: 40px 60px;
	align-items: center;
	grid-template-columns: 1.05fr 1fr;
}

.ahm-steps {
	display: grid;
	gap: 26px;
	counter-reset: ahm-step;
}

.ahm-step {
	position: relative;
	display: flex;
	gap: 24px;
	align-items: flex-start;
	padding-bottom: 26px;
	border-bottom: 1px solid var( --ahm-border );
}

.ahm-step:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.ahm-step__num {
	display: grid;
	flex: none;
	place-items: center;
	width: 56px;
	height: 56px;
	border: 1px dashed rgba( 255, 91, 27, 0.5 );
	border-radius: 50%;
	background-color: var( --ahm-primary-soft );
	color: var( --ahm-primary );
	font-family: var( --ahm-font-heading );
	font-size: 1.125rem;
	font-weight: 700;
	transition: all var( --ahm-transition );
}

.ahm-step:hover .ahm-step__num {
	border-style: solid;
	background-color: var( --ahm-primary );
	color: var( --ahm-white );
}

.ahm-step__title {
	margin-bottom: 8px;
	font-size: 1.1875rem;
}

.ahm-step__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.8;
}

/* Horizontal 3-across variant with a connecting line */
.ahm-steps--row {
	position: relative;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 30px;
}

.ahm-steps--row .ahm-step {
	flex-direction: column;
	padding-bottom: 0;
	border-bottom: 0;
	text-align: center;
}

.ahm-steps--row .ahm-step__num {
	margin-inline: auto;
	width: 76px;
	height: 76px;
	background-color: var( --ahm-white );
	font-size: 1.375rem;
}

.ahm-steps--row::before {
	content: "";
	position: absolute;
	z-index: 0;
	top: 38px;
	right: 14%;
	left: 14%;
	height: 1px;
	background-image: linear-gradient( 90deg, var( --ahm-border ) 50%, transparent 50% );
	background-size: 12px 1px;
}

.ahm-steps--row .ahm-step > * {
	position: relative;
	z-index: 1;
}

/* --------------------------------------------------------------------------
   Why choose us
   -------------------------------------------------------------------------- */

.ahm-why__grid {
	display: grid;
	gap: 40px 60px;
	align-items: center;
	grid-template-columns: 1fr 1.05fr;
}

.ahm-why__features {
	display: grid;
	gap: 30px 36px;
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
}

/* Employee count callout with avatar stack */
.ahm-employee-callout {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 26px;
	align-items: center;
	padding: 26px 30px;
	border-radius: var( --ahm-radius );
	background-color: var( --ahm-cream );
}

.ahm-employee-callout__value {
	color: var( --ahm-primary );
	font-family: var( --ahm-font-heading );
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
}

.ahm-employee-callout__label {
	margin: 0;
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 1rem;
	font-weight: 600;
}

.ahm-employee-callout__text {
	margin: 4px 0 0;
	font-size: 0.875rem;
}

/* --------------------------------------------------------------------------
   FAQ
   -------------------------------------------------------------------------- */

.ahm-faq__grid {
	display: grid;
	gap: 40px 60px;
	align-items: start;
	grid-template-columns: 1fr 1.2fr;
}

.ahm-faq__aside {
	position: sticky;
	top: calc( var( --ahm-header-h ) + 24px );
}

/* --------------------------------------------------------------------------
   Team
   -------------------------------------------------------------------------- */

.ahm-team__grid {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
}

.ahm-member {
	position: relative;
	overflow: hidden;
	border-radius: var( --ahm-radius-lg );
	background-color: var( --ahm-cream );
	text-align: center;
}

.ahm-member__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1 / 1.12;
	background-color: var( --ahm-border );
}

.ahm-member__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s cubic-bezier( 0.25, 0.8, 0.25, 1 );
}

.ahm-member:hover .ahm-member__media img {
	transform: scale( 1.06 );
}

/* Social rail slides in from the right on hover */
.ahm-member__socials {
	position: absolute;
	top: 50%;
	right: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	opacity: 0;
	transform: translate( 20px, -50% );
	transition: all var( --ahm-transition );
}

.ahm-member:hover .ahm-member__socials {
	opacity: 1;
	transform: translate( 0, -50% );
}

.ahm-member__socials a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background-color: var( --ahm-white );
	color: var( --ahm-heading );
	transition: all var( --ahm-transition );
}

.ahm-member__socials a svg {
	width: 15px;
	height: 15px;
}

.ahm-member__socials a:hover {
	background-color: var( --ahm-primary );
	color: var( --ahm-white );
}

.ahm-member__body {
	padding: 24px 22px 28px;
}

.ahm-member__name {
	margin-bottom: 4px;
	font-size: 1.1875rem;
}

.ahm-member__name a {
	color: inherit;
}

.ahm-member__name a:hover {
	color: var( --ahm-primary );
}

.ahm-member__role {
	margin: 0;
	color: var( --ahm-primary );
	font-family: var( --ahm-font-heading );
	font-size: 0.875rem;
	font-weight: 600;
}

.ahm-member__email {
	display: inline-block;
	margin-top: 12px;
	color: var( --ahm-text );
	font-size: 0.875rem;
}

/* --------------------------------------------------------------------------
   Testimonials
   -------------------------------------------------------------------------- */

.ahm-testimonials {
	position: relative;
}

.ahm-testimonials__grid {
	display: grid;
	gap: 40px 60px;
	align-items: center;
	grid-template-columns: 1fr 1.25fr;
}

.ahm-quote {
	position: relative;
	height: 100%;
	padding: 40px 36px;
	border: 1px solid var( --ahm-border );
	border-radius: var( --ahm-radius-lg );
	background-color: var( --ahm-white );
	transition: all var( --ahm-transition );
}

.ahm-quote:hover {
	border-color: transparent;
	box-shadow: var( --ahm-shadow-lg );
}

.ahm-quote__mark {
	position: absolute;
	top: 28px;
	right: 32px;
	color: var( --ahm-primary );
	opacity: 0.16;
}

.ahm-quote__mark svg {
	width: 52px;
	height: 52px;
}

.ahm-quote__text {
	position: relative;
	margin-bottom: 28px;
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.75;
}

.ahm-quote__author {
	display: flex;
	gap: 16px;
	align-items: center;
	padding-top: 24px;
	border-top: 1px solid var( --ahm-border );
}

.ahm-quote__avatar {
	flex: none;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	object-fit: cover;
}

.ahm-quote__name {
	margin-bottom: 2px;
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 1.0625rem;
	font-weight: 600;
}

.ahm-quote__role {
	color: var( --ahm-muted );
	font-size: 0.875rem;
}

/* Aggregate rating summary */
.ahm-rating-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 22px;
	align-items: center;
	margin-top: 30px;
	padding: 22px 26px;
	border-radius: var( --ahm-radius );
	background-color: var( --ahm-cream );
}

.ahm-rating-summary__score {
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
}

.ahm-rating-summary__text {
	margin: 0;
	font-size: 0.875rem;
}

/* Horizontal scroll-snap slider used for testimonials and logos */
.ahm-slider {
	display: flex;
	gap: 30px;
	overflow-x: auto;
	padding-bottom: 8px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.ahm-slider::-webkit-scrollbar {
	display: none;
}

.ahm-slider > * {
	flex: 0 0 calc( 50% - 15px );
	scroll-snap-align: start;
}

.ahm-slider--3 > * {
	flex: 0 0 calc( 33.333% - 20px );
}

.ahm-slider-nav {
	display: flex;
	gap: 10px;
	margin-top: 32px;
}

.ahm-slider-nav button {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid var( --ahm-border );
	border-radius: 50%;
	background: none;
	color: var( --ahm-heading );
	cursor: pointer;
	transition: all var( --ahm-transition );
}

.ahm-slider-nav button:hover {
	border-color: var( --ahm-primary );
	background-color: var( --ahm-primary );
	color: var( --ahm-white );
}

.ahm-slider-nav button svg {
	width: 15px;
	height: 15px;
}

/* Client logo strip */
.ahm-logos {
	display: grid;
	gap: 30px;
	align-items: center;
	grid-template-columns: repeat( 5, minmax( 0, 1fr ) );
}

.ahm-logos img {
	width: 100%;
	max-width: 150px;
	margin-inline: auto;
	filter: grayscale( 1 );
	opacity: 0.55;
	transition: all var( --ahm-transition );
}

.ahm-logos img:hover {
	filter: grayscale( 0 );
	opacity: 1;
}

/* --------------------------------------------------------------------------
   Blog grid
   -------------------------------------------------------------------------- */

.ahm-blog__grid {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
}

/* Two-column layout with sidebar, used on archives and singles */
.ahm-with-sidebar {
	display: grid;
	gap: 40px 46px;
	align-items: start;
	grid-template-columns: minmax( 0, 1fr ) 350px;
}

.ahm-with-sidebar--left {
	grid-template-columns: 350px minmax( 0, 1fr );
}

.ahm-with-sidebar--left .ahm-sidebar {
	order: -1;
}

/* --------------------------------------------------------------------------
   CTA band
   -------------------------------------------------------------------------- */

.ahm-cta {
	position: relative;
	overflow: hidden;
	background-color: var( --ahm-primary );
	color: rgba( 255, 255, 255, 0.9 );
}

.ahm-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient( 135deg, rgba( 255, 255, 255, 0.08 ) 0 2px, transparent 2px 16px );
}

.ahm-cta__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 26px 48px;
	align-items: center;
	justify-content: space-between;
}

.ahm-cta__title {
	max-width: 720px;
	margin: 0;
	color: var( --ahm-white );
	font-size: var( --ahm-fs-h2 );
}

.ahm-cta__text {
	max-width: 560px;
	margin: 14px 0 0;
}

/* Dark variant with a split image */
.ahm-cta--dark {
	background-color: var( --ahm-dark );
	color: rgba( 255, 255, 255, 0.72 );
}

.ahm-cta--dark::before {
	background-image: repeating-linear-gradient( 135deg, rgba( 255, 91, 27, 0.08 ) 0 2px, transparent 2px 16px );
}

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

.ahm-contact__grid {
	display: grid;
	gap: 40px 60px;
	align-items: start;
	grid-template-columns: 1fr 1.25fr;
}

.ahm-contact__cards {
	display: grid;
	gap: 20px;
}

.ahm-contact-card {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	padding: 26px 28px;
	border: 1px solid var( --ahm-border );
	border-radius: var( --ahm-radius );
	transition: all var( --ahm-transition );
}

.ahm-contact-card:hover {
	border-color: transparent;
	box-shadow: var( --ahm-shadow );
}

.ahm-contact-card__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: var( --ahm-radius );
	background-color: var( --ahm-primary-soft );
	color: var( --ahm-primary );
}

.ahm-contact-card__icon svg {
	width: 24px;
	height: 24px;
}

.ahm-contact-card__title {
	margin-bottom: 6px;
	font-size: 1.0625rem;
}

.ahm-contact-card__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.7;
}

.ahm-contact-card__text a {
	color: inherit;
}

.ahm-contact-card__text a:hover {
	color: var( --ahm-primary );
}

.ahm-contact__form-wrap {
	padding: 40px 38px;
	border-radius: var( --ahm-radius-lg );
	background-color: var( --ahm-cream );
}

.ahm-map {
	overflow: hidden;
	border-radius: var( --ahm-radius-lg );
	line-height: 0;
	filter: grayscale( 0.35 );
}

.ahm-map iframe {
	width: 100%;
	height: 460px;
	border: 0;
}

/* Inline form notices */
.ahm-notice {
	padding: 15px 20px;
	border-radius: var( --ahm-radius );
	font-size: 0.9375rem;
}

.ahm-notice--success {
	background-color: rgba( 34, 160, 90, 0.1 );
	color: #1a7a45;
}

.ahm-notice--error {
	background-color: rgba( 207, 46, 46, 0.1 );
	color: #b02525;
}

/* --------------------------------------------------------------------------
   Single post / project / service body
   -------------------------------------------------------------------------- */

.ahm-entry__thumb {
	overflow: hidden;
	margin-bottom: 34px;
	border-radius: var( --ahm-radius-lg );
}

.ahm-entry__thumb img {
	width: 100%;
	object-fit: cover;
}

.ahm-entry__meta {
	margin-bottom: 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var( --ahm-border );
}

.ahm-entry__content > * + * {
	margin-top: 1.25em;
}

.ahm-entry__content h2,
.ahm-entry__content h3,
.ahm-entry__content h4 {
	margin-top: 1.8em;
}

.ahm-entry__content > *:first-child {
	margin-top: 0;
}

.ahm-entry__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 30px;
	align-items: center;
	justify-content: space-between;
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid var( --ahm-border );
}

.ahm-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	align-items: center;
}

.ahm-tags__label {
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 0.9375rem;
	font-weight: 600;
}

.ahm-tags a {
	padding: 7px 16px;
	border: 1px solid var( --ahm-border );
	border-radius: var( --ahm-radius-pill );
	color: var( --ahm-text );
	font-size: 0.8125rem;
	transition: all var( --ahm-transition );
}

.ahm-tags a:hover {
	border-color: var( --ahm-primary );
	background-color: var( --ahm-primary );
	color: var( --ahm-white );
}

/* Author bio */
.ahm-author-box {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	margin-top: 44px;
	padding: 32px 30px;
	border-radius: var( --ahm-radius );
	background-color: var( --ahm-cream );
}

.ahm-author-box img {
	flex: none;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	object-fit: cover;
}

.ahm-author-box__name {
	margin-bottom: 8px;
	font-size: 1.1875rem;
}

.ahm-author-box__bio {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.8;
}

/* Project fact sheet */
.ahm-factsheet {
	display: grid;
	gap: 0;
	overflow: hidden;
	border: 1px solid var( --ahm-border );
	border-radius: var( --ahm-radius );
}

.ahm-factsheet__row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	align-items: baseline;
	justify-content: space-between;
	padding: 16px 22px;
	border-bottom: 1px solid var( --ahm-border );
	font-size: 0.9375rem;
}

.ahm-factsheet__row:last-child {
	border-bottom: 0;
}

.ahm-factsheet__label {
	color: var( --ahm-muted );
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.ahm-factsheet__value {
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-weight: 600;
	text-align: right;
}

/* Related items strip */
.ahm-related {
	margin-top: 64px;
	padding-top: 48px;
	border-top: 1px solid var( --ahm-border );
}

.ahm-related__title {
	margin-bottom: 32px;
	font-size: var( --ahm-fs-h3 );
}

/* --------------------------------------------------------------------------
   404 / empty states
   -------------------------------------------------------------------------- */

.ahm-empty {
	max-width: 620px;
	margin-inline: auto;
	padding-block: 40px;
	text-align: center;
}

.ahm-empty__code {
	color: var( --ahm-primary );
	font-family: var( --ahm-font-heading );
	font-size: clamp( 5rem, 3rem + 12vw, 11rem );
	font-weight: 800;
	line-height: 0.9;
	letter-spacing: -0.05em;
}

.ahm-empty__title {
	margin-bottom: 14px;
	font-size: var( --ahm-fs-h2 );
}

.ahm-empty__text {
	margin-bottom: 32px;
}

.ahm-empty .search-form {
	max-width: 420px;
	margin: 0 auto 28px;
}

/* --------------------------------------------------------------------------
   Search results
   -------------------------------------------------------------------------- */

.ahm-search-count {
	margin-bottom: 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid var( --ahm-border );
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 1.0625rem;
	font-weight: 600;
}

.ahm-search-results {
	display: grid;
	gap: 24px;
}

.ahm-result {
	padding: 28px 30px;
	border: 1px solid var( --ahm-border );
	border-radius: var( --ahm-radius );
	transition: all var( --ahm-transition );
}

.ahm-result:hover {
	border-color: transparent;
	box-shadow: var( --ahm-shadow );
}

.ahm-result__title {
	margin-bottom: 12px;
	font-size: 1.375rem;
}

.ahm-result__title a {
	color: inherit;
}

.ahm-result__title a:hover {
	color: var( --ahm-primary );
}

.ahm-result__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	align-items: center;
	margin-bottom: 14px;
	color: var( --ahm-muted );
	font-size: 0.8125rem;
}

.ahm-result__excerpt {
	margin-bottom: 16px;
	font-size: 0.9375rem;
}

/* --------------------------------------------------------------------------
   Structural helpers used by the templates
   -------------------------------------------------------------------------- */

/* min-width:0 lets grid children shrink instead of overflowing on long words */
.ahm-main {
	min-width: 0;
}

/* Two-across blog grid, used when a sidebar takes the third column */
.ahm-blog__grid--2 {
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
}

.ahm-about__body,
.ahm-testimonials__aside,
.ahm-footer__col {
	min-width: 0;
}

/* Section heading with its own spacing removed, for use inside a column */
.ahm-section-head--flush {
	margin-bottom: 34px;
}

.ahm-footer__empty {
	font-size: 0.9375rem;
	font-style: italic;
	opacity: 0.7;
}

/* Borderless socials for the top bar */
.ahm-socials--bare a {
	width: 30px;
	height: 30px;
	border: 0;
}

.ahm-socials--bare a:hover {
	background: none;
	color: var( --ahm-primary );
	transform: none;
}

.ahm-brand__logo {
	width: auto;
	max-height: 46px;
	object-fit: contain;
}

.ahm-widget-post__body {
	min-width: 0;
}

.ahm-form__title {
	margin-bottom: 4px;
	font-size: 1.5rem;
}

/* The response node is invisible until JS fills it with a notice */
.ahm-form__response:empty {
	display: none;
}

.ahm-empty__icon {
	display: inline-grid;
	place-items: center;
	width: 96px;
	height: 96px;
	margin-bottom: 26px;
	border-radius: 50%;
	background-color: var( --ahm-primary-soft );
	color: var( --ahm-primary );
}

.ahm-service-points {
	margin-top: 40px;
	padding: 32px 30px;
	border-radius: var( --ahm-radius );
	background-color: var( --ahm-cream );
}

.ahm-service-points h2 {
	margin-bottom: 20px;
	font-size: var( --ahm-fs-h3 );
}

/* Multi-page post links */
.ahm-page-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var( --ahm-border );
	color: var( --ahm-heading );
	font-family: var( --ahm-font-heading );
	font-size: 0.9375rem;
	font-weight: 600;
}

.ahm-page-links a,
.ahm-page-links > span:not( :first-child ) {
	display: grid;
	place-items: center;
	min-width: 38px;
	height: 38px;
	padding-inline: 10px;
	border: 1px solid var( --ahm-border );
	border-radius: 6px;
	color: var( --ahm-heading );
}

.ahm-page-links a:hover {
	border-color: var( --ahm-primary );
	background-color: var( --ahm-primary );
	color: var( --ahm-white );
}

/* Blank canvas template has no header, so content needs its own breathing room */
.ahm-canvas .ahm-site-content {
	min-height: 100vh;
}

/* --------------------------------------------------------------------------
   Elementor interoperability
   -------------------------------------------------------------------------- */

/* Let Elementor's own container widths win inside its sections */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con.e-con-boxed > .e-con-inner {
	max-width: var( --ahm-container );
}

/* Elementor buttons pick up the theme's pill shape */
.elementor-button {
	border-radius: var( --ahm-radius-pill );
	font-family: var( --ahm-font-heading );
	font-weight: 600;
}

/* Our custom widgets render edge-to-edge inside Elementor columns */
.elementor-widget-ahm-service-card .ahm-iconbox,
.elementor-widget-ahm-project-card .ahm-project,
.elementor-widget-ahm-team-member .ahm-member,
.elementor-widget-ahm-testimonial .ahm-quote {
	height: 100%;
}

/* Canvas template still gets the theme's typography */
.elementor-template-canvas body {
	font-family: var( --ahm-font-body );
}
