/* ==========================================================================
   SEO content sections (Home + Services pages)
   Brand: Raleway, warm brown #766351, light stone #f7f5f2, dark #1b1915
   ========================================================================== */

.ahp-section {
	--ahp-brown: #766351;
	--ahp-brown-dark: #5c4d3f;
	--ahp-sand: #b9a48d;
	--ahp-stone: #f7f5f2;
	--ahp-line: #e6e1da;
	--ahp-ink: #1b1915;
	position: relative;
	padding: 100px 0;
	font-family: 'Raleway', sans-serif;
	color: #4a4540;
}
.ahp-bg-light {
	background: #f7f5f2;
}

/* Typography ------------------------------------------------------------- */

.ahp-eyebrow {
	font-family: 'Raleway', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--ahp-brown);
	margin: 0 0 14px;
}
.ahp-section .ahp-h1,
.ahp-section .ahp-title {
	font-family: 'Raleway', sans-serif;
	text-transform: uppercase;
	color: #111;
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.3;
	margin: 0 0 6px;
}
.ahp-section .ahp-h1 {
	font-size: 36px;
}
.ahp-section .ahp-title {
	font-size: 30px;
}
.ahp-section .under-title {
	margin-left: auto;
	margin-right: auto;
}
.ahp-line {
	display: block;
	width: 60px;
	height: 2px;
	background: var(--ahp-brown);
	margin: 18px 0 26px;
}
.ahp-section h3 {
	font-family: 'Raleway', sans-serif;
	font-size: 18px;
	font-weight: 600;
	text-transform: uppercase;
	color: #111;
	letter-spacing: 0.04em;
	line-height: 1.4;
	margin: 0 0 14px;
}
.ahp-text p {
	font-family: 'Raleway', sans-serif;
	font-size: 16px;
	line-height: 1.85;
	margin: 0 0 16px;
}
.ahp-text p:last-child {
	margin-bottom: 0;
}
.ahp-text a,
.ahp-faq-answer a {
	color: var(--ahp-brown);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ahp-narrow {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
}
.ahp-lead-first p:first-child {
	font-size: 21px;
	line-height: 1.6;
	font-style: italic;
	color: var(--ahp-brown);
	margin-bottom: 22px;
}

/* Buttons ---------------------------------------------------------------- */

.ahp-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin-top: 36px;
}
.ahp-buttons-left {
	justify-content: flex-start;
}
.ahp-btn,
.ahp-btn:visited {
	display: inline-block;
	padding: 15px 26px;
	background: #766351;
	border: 1px solid #766351;
	color: #fff !important;
	font-family: 'Raleway', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.ahp-btn:hover,
.ahp-btn:focus {
	background: #5c4d3f;
	border-color: #5c4d3f;
	color: #fff !important;
}
.ahp-btn-outline,
.ahp-btn-outline:visited {
	background: transparent;
	color: #766351 !important;
}
.ahp-btn-outline:hover,
.ahp-btn-outline:focus {
	background: #766351;
	color: #fff !important;
}
.ahp-btn-light,
.ahp-btn-light:visited {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.8);
	color: #fff !important;
}
.ahp-btn-light:hover,
.ahp-btn-light:focus {
	background: #fff;
	border-color: #fff;
	color: #1b1915 !important;
}

/* Images ----------------------------------------------------------------- */

.ahp-cover {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Photo with an offset outline frame behind it */
.ahp-framed {
	position: relative;
	z-index: 0;
	aspect-ratio: 4 / 3;
	margin: 0 24px 24px 0;
}
.ahp-framed::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 24px;
	left: 24px;
	right: -24px;
	bottom: -24px;
	border: 1px solid #b9a48d;
}
.ahp-framed-left {
	margin: 0 0 24px 24px;
}
.ahp-framed-left::before {
	left: -24px;
	right: 24px;
}
.ahp-framed-tall {
	aspect-ratio: 4 / 5;
}

/* Homepage: intro -------------------------------------------------------- */

.ahp-intro-text {
	padding-right: 50px;
}

/* Homepage: why choose us tiles ----------------------------------------- */

.ahp-tiles {
	list-style: none;
	margin: 30px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	text-align: left;
}
.ahp-tiles li {
	display: flex;
	align-items: center;
	gap: 20px;
	margin: 0;
	padding: 28px 26px;
	background: #fff;
	border-bottom: 2px solid transparent;
	box-shadow: 0 1px 2px rgba(27, 25, 21, 0.04);
	transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.ahp-tiles li:hover {
	border-bottom-color: #766351;
	transform: translateY(-3px);
	box-shadow: 0 12px 30px rgba(27, 25, 21, 0.08);
}
.ahp-tile-num {
	flex-shrink: 0;
	font-size: 30px;
	font-weight: 300;
	line-height: 1;
	color: #b9a48d;
}
.ahp-tile-text {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	color: #222;
}

/* Homepage: vision ------------------------------------------------------- */

.ahp-vision-text {
	padding-left: 60px;
}

/* Service cards ---------------------------------------------------------- */

.ahp-cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
	margin-top: 54px;
	text-align: left;
}
.ahp-card {
	background: #fff;
	display: flex;
	flex-direction: column;
	box-shadow: 0 1px 3px rgba(27, 25, 21, 0.06);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.ahp-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(27, 25, 21, 0.1);
}
.ahp-card-media {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #e9e4dd;
}
.ahp-card-media img {
	transition: transform 0.6s ease;
}
.ahp-card:hover .ahp-card-media img {
	transform: scale(1.05);
}
.ahp-card-num {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 10px 18px;
	background: #766351;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.1em;
}
.ahp-card-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 34px 34px 30px;
}
.ahp-card .ahp-card-text p {
	font-size: 15px;
	line-height: 1.8;
	margin: 0 0 14px;
}
.ahp-card-link,
.ahp-card-link:visited {
	align-self: flex-start;
	margin-top: auto;
	padding-top: 10px;
	color: #766351;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}
.ahp-card-link:hover {
	color: #5c4d3f;
}
.ahp-card-link i {
	margin-left: 10px;
	transition: transform 0.25s ease;
}
.ahp-card-link:hover i,
.ahp-card:hover .ahp-card-link i {
	transform: translateX(5px);
}

/* Homepage: approach + team --------------------------------------------- */

.ahp-approach {
	padding-right: 50px;
	align-self: center;
}
.ahp-team-card {
	position: relative;
	height: 100%;
	min-height: 460px;
	display: flex;
	align-items: flex-end;
	background: #1b1915 center / cover no-repeat;
	color: #fff;
}
.ahp-team-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(27, 25, 21, 0.6) 0%, rgba(27, 25, 21, 0.9) 60%);
}
.ahp-team-inner {
	position: relative;
	padding: 48px 44px;
}
.ahp-team-card .ahp-title {
	color: #fff;
	font-size: 26px;
}
.ahp-team-card .ahp-eyebrow {
	color: #d8c7b3;
}
.ahp-team-card .ahp-line {
	background: #d8c7b3;
}
.ahp-team-card .ahp-text p {
	color: rgba(255, 255, 255, 0.88);
}

/* Reviews heading above existing testimonials --------------------------- */

.ahp-reviews-intro {
	padding-top: 90px !important;
}
.ahp-reviews-intro .ahp-eyebrow {
	font-family: 'Raleway', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.28em;
	color: #766351;
}
.ahp-reviews-intro .ahp-title {
	font-family: 'Raleway', sans-serif;
	text-transform: uppercase;
	color: #111;
	font-size: 30px;
	font-weight: 400;
	letter-spacing: 0.04em;
}
.ahp-reviews-intro .under-title {
	margin-left: auto;
	margin-right: auto;
}
.ahp-reviews-intro p {
	font-family: 'Raleway', sans-serif;
	font-size: 16px;
	line-height: 1.85;
}

/* Homepage: local -------------------------------------------------------- */

.ahp-local {
	padding: 130px 0;
	background: #1b1915 center / cover no-repeat;
	background-attachment: fixed;
}
.ahp-local::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(27, 25, 21, 0.35);
}
.ahp-local .container {
	position: relative;
}
.ahp-local-box {
	max-width: 620px;
	padding: 56px 54px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.2);
}

/* FAQ -------------------------------------------------------------------- */

.ahp-faq-side {
	padding-right: 50px;
}
.ahp-faq-side > p:not(.ahp-eyebrow) {
	font-size: 16px;
	line-height: 1.8;
}
.ahp-faq-phone {
	font-size: 20px !important;
	font-weight: 600;
	margin-top: 10px;
}
.ahp-faq-phone i {
	color: #766351;
	margin-right: 8px;
	font-size: 16px;
}
.ahp-faq-phone a {
	color: #111;
	text-decoration: none;
}
.ahp-faq-phone a:hover {
	color: #766351;
}
.ahp-faq-list {
	border-top: 1px solid #ddd5cb;
}
.ahp-faq-item {
	border-bottom: 1px solid #ddd5cb;
}
.ahp-faq-item summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: baseline;
	gap: 22px;
	padding: 26px 60px 26px 0;
	position: relative;
}
.ahp-faq-item summary::-webkit-details-marker {
	display: none;
}
.ahp-faq-item summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 38px;
	height: 38px;
	border: 1px solid #cbbfb0;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	font-weight: 300;
	line-height: 1;
	color: #766351;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.ahp-faq-item summary:hover::after,
.ahp-faq-item[open] summary::after {
	background: #766351;
	border-color: #766351;
	color: #fff;
}
.ahp-faq-item[open] summary::after {
	content: "\2212";
}
.ahp-faq-num {
	flex-shrink: 0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: #b9a48d;
}
.ahp-faq-item summary h3 {
	font-size: 17px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	margin: 0;
	transition: color 0.2s ease;
}
.ahp-faq-item summary:hover h3,
.ahp-faq-item[open] summary h3 {
	color: #766351;
}
.ahp-faq-answer {
	padding: 0 60px 28px 44px;
}
.ahp-faq-answer p {
	font-size: 15px;
	line-height: 1.85;
	margin: 0 0 12px;
}
.ahp-faq-answer p:last-child {
	margin-bottom: 0;
}

/* Contact section -------------------------------------------------------- */

.ahp-cta {
	padding: 120px 0;
	background: #1b1915 center / cover no-repeat;
	color: #ddd;
}
.ahp-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(27, 25, 21, 0.82);
}
.ahp-cta .container {
	position: relative;
}
.ahp-cta .ahp-eyebrow {
	color: #d8c7b3;
}
.ahp-cta .ahp-title {
	color: #fff;
}
.ahp-cta .under-title,
.ahp-cta .under-title:before,
.ahp-cta .under-title:after {
	background: #b9a48d;
}
.ahp-cta .ahp-text p {
	color: rgba(255, 255, 255, 0.82);
}
.ahp-contact-line {
	list-style: none;
	padding: 44px 0 0;
	margin: 50px auto 0;
	max-width: 860px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	text-align: left;
}
.ahp-contact-line li {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 0;
}
.ahp-contact-line i {
	flex-shrink: 0;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(185, 164, 141, 0.6);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #d8c7b3;
	font-size: 15px;
}
.ahp-contact-line small {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #b9a48d;
	margin-bottom: 2px;
}
.ahp-contact-line a {
	color: #fff;
	font-size: 16px;
	text-decoration: none;
}
.ahp-contact-line a:hover {
	color: #d8c7b3;
}

/* --------------------------------------------------------------------------
   Services page
   -------------------------------------------------------------------------- */

.ahp-hero {
	background: #1b1915 center / cover no-repeat;
	color: #fff;
	padding: 150px 0 140px;
}
.ahp-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(20, 17, 13, 0.55), rgba(20, 17, 13, 0.75));
}
.ahp-hero .container {
	position: relative;
}
.ahp-hero .ahp-eyebrow {
	color: #d8c7b3;
}
.ahp-hero .ahp-h1 {
	color: #fff;
	font-size: 42px;
}
.ahp-hero .under-title,
.ahp-hero .under-title:before,
.ahp-hero .under-title:after {
	background: #fff;
}
.ahp-hero .ahp-text p {
	color: #f1ede8;
	font-size: 17px;
}

.ahp-why-text {
	padding-left: 60px;
}
.ahp-list {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}
.ahp-list li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	font-size: 15px;
	line-height: 1.7;
	margin: 0;
	padding: 16px 0;
	border-bottom: 1px solid #ece7e0;
	background: none;
}
.ahp-list li:first-child {
	padding-top: 0;
}
.ahp-list li i {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	margin-top: 1px;
	border-radius: 50%;
	background: #f1ece6;
	color: #766351;
	font-size: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ahp-list strong {
	color: #111;
	font-weight: 700;
}
.ahp-callout {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 30px;
	margin-top: 28px;
}
.ahp-callout a {
	color: #766351;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}
.ahp-callout a:hover {
	color: #5c4d3f;
}
.ahp-callout i {
	margin-right: 8px;
}

/* Alternating image / text rows */
.ahp-service-list {
	margin-top: 60px;
	display: grid;
	gap: 40px;
}
.ahp-service {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: #fff;
	scroll-margin-top: 30px;
	box-shadow: 0 1px 3px rgba(27, 25, 21, 0.06);
}
.ahp-service:nth-child(even) .ahp-service-media {
	order: 2;
}
.ahp-service-media {
	min-height: 380px;
	overflow: hidden;
	background: #e9e4dd;
}
.ahp-service-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 56px 54px;
}
.ahp-service-num {
	font-size: 46px;
	font-weight: 200;
	line-height: 1;
	color: #b9a48d;
	margin-bottom: 18px;
}
.ahp-service h3 {
	font-size: 22px;
	margin: 0;
}
.ahp-service .ahp-text p {
	font-size: 15px;
}
.ahp-service .ahp-card-link {
	margin-top: 22px;
}

/* Expertise band */
.ahp-expertise {
	background: #766351;
	color: #fff;
}
.ahp-expertise .ahp-eyebrow {
	color: #eadfd2;
}
.ahp-expertise .ahp-title {
	color: #fff;
}
.ahp-expertise .under-title,
.ahp-expertise .under-title:before,
.ahp-expertise .under-title:after {
	background: #eadfd2;
}
.ahp-expertise .ahp-text p {
	color: rgba(255, 255, 255, 0.9);
	font-size: 17px;
}
.ahp-expertise .ahp-text a {
	color: #fff;
}

/* Process steps */
.ahp-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin-top: 60px;
	text-align: left;
	counter-reset: ahp-step;
}
.ahp-steps::before {
	content: "";
	position: absolute;
	top: 32px;
	left: 16%;
	right: 16%;
	height: 1px;
	background: #ddd5cb;
}
.ahp-step {
	position: relative;
	padding: 0 10px;
	text-align: center;
	counter-increment: ahp-step;
}
.ahp-step::before {
	content: "0" counter(ahp-step);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 26px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #766351;
	color: #766351;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.05em;
	box-shadow: 0 0 0 10px #fff;
	transition: background 0.25s ease, color 0.25s ease;
}
.ahp-step:hover::before {
	background: #766351;
	color: #fff;
}
.ahp-step .ahp-text p {
	font-size: 15px;
	line-height: 1.8;
}

/* Showroom */
.ahp-showroom-text {
	padding-right: 50px;
}
.ahp-address {
	margin: 24px 0 0;
	font-size: 15px;
	font-weight: 600;
	color: #222;
}
.ahp-address i {
	color: #766351;
	margin-right: 8px;
}
.ahp-map {
	background: #eee;
}
.ahp-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1199px) {
	.ahp-tiles {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 991px) {
	.ahp-section {
		padding: 80px 0;
	}
	.ahp-intro-text,
	.ahp-vision-text,
	.ahp-why-text,
	.ahp-approach,
	.ahp-faq-side,
	.ahp-showroom-text {
		padding-left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
		padding-right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
	}
	.ahp-intro-text,
	.ahp-why-text,
	.ahp-showroom-text {
		margin-bottom: 56px;
	}
	.ahp-why-text {
		margin-top: 56px;
		margin-bottom: 0;
	}
	.ahp-vision-text {
		margin-bottom: 56px;
	}
	.ahp-framed,
	.ahp-framed-tall {
		aspect-ratio: 16 / 10;
	}
	.ahp-approach {
		margin-bottom: 40px;
	}
	.ahp-team-card {
		min-height: 420px;
	}
	.ahp-faq-side {
		margin-bottom: 40px;
	}
	.ahp-local {
		background-attachment: scroll;
	}
	.ahp-service,
	.ahp-service:nth-child(even) {
		grid-template-columns: 1fr;
	}
	.ahp-service:nth-child(even) .ahp-service-media {
		order: 0;
	}
	.ahp-service-media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
	.ahp-steps {
		grid-template-columns: 1fr;
		gap: 44px;
	}
	.ahp-steps::before {
		display: none;
	}
}

@media (max-width: 767px) {
	.ahp-section {
		padding: 64px 0;
	}
	.ahp-section .ahp-h1,
	.ahp-hero .ahp-h1 {
		font-size: 27px;
	}
	.ahp-section .ahp-title,
	.ahp-reviews-intro .ahp-title {
		font-size: 23px;
	}
	.ahp-reviews-intro {
		padding-top: 64px !important;
	}
	.ahp-section .under-title:before,
	.ahp-section .under-title:after,
	.ahp-reviews-intro .under-title:before,
	.ahp-reviews-intro .under-title:after {
		width: 80px;
	}
	.ahp-lead-first p:first-child {
		font-size: 18px;
	}
	.ahp-framed {
		margin: 0 14px 14px 0;
	}
	.ahp-framed::before {
		top: 14px;
		left: 14px;
		right: -14px;
		bottom: -14px;
	}
	.ahp-framed-left {
		margin: 0 0 14px 14px;
	}
	.ahp-framed-left::before {
		left: -14px;
		right: 14px;
	}
	.ahp-tiles,
	.ahp-cards {
		grid-template-columns: 1fr;
	}
	.ahp-tiles li {
		padding: 22px 20px;
	}
	.ahp-card-body {
		padding: 26px 22px 24px;
	}
	.ahp-team-inner {
		padding: 36px 26px;
	}
	.ahp-local {
		padding: 70px 0;
	}
	.ahp-local-box {
		padding: 36px 26px;
	}
	.ahp-buttons {
		flex-direction: column;
		align-items: stretch;
	}
	.ahp-btn {
		text-align: center;
	}
	.ahp-faq-item summary {
		gap: 14px;
		padding: 20px 50px 20px 0;
	}
	.ahp-faq-item summary::after {
		width: 32px;
		height: 32px;
	}
	.ahp-faq-item summary h3 {
		font-size: 16px;
	}
	.ahp-faq-answer {
		padding: 0 0 22px 0;
	}
	.ahp-cta {
		padding: 80px 0;
	}
	.ahp-contact-line {
		grid-template-columns: 1fr;
		gap: 18px;
		max-width: 280px;
	}
	.ahp-contact-line li {
		justify-content: flex-start;
	}
	.ahp-hero {
		padding: 90px 0 80px;
	}
	.ahp-service-body {
		padding: 30px 24px 34px;
	}
	.ahp-service-num {
		font-size: 36px;
	}
}
