/**
 * AC installation and replacement visual pass.
 *
 * This page uses the default service-page renderer plus ACF and growth
 * modules. These rules give that mixed component stack one intentional
 * replacement-planning composition without changing its visible SEO copy.
 */

body.ccs-est1973.ccs-replacement-page .e73-inner-main {
	--e73-replacement-tint: #E7F1EA;
}

/* Compact the opening proof into one balanced decision card. */
@media (min-width: 768px) {
	body.ccs-est1973.ccs-replacement-page .e73-inner-main > .ccs-answer-card .ccs-answer-card__proof {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main > .fx-block.wysiwyg {
	background: linear-gradient(135deg, var(--e73-porcelain), var(--e73-cream)) !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main > .fx-block.wysiwyg .container > .row {
	margin-bottom: 0 !important;
	border-color: var(--e73-line) !important;
	background: rgba(255, 250, 238, .72) !important;
}

/* Replacement decision accordion: readable panels plus a properly framed
   comfort photograph, instead of an unbounded pale image wash. */
body.ccs-est1973.ccs-replacement-page .half-image-half-accordion {
	padding: clamp(22px, 3vw, 34px) !important;
	border: 2px solid var(--e73-ink) !important;
	border-radius: 18px;
	background: linear-gradient(135deg, var(--e73-replacement-tint), var(--e73-porcelain)) !important;
	box-shadow: var(--e73-shadow-card);
	overflow: hidden !important;
}

body.ccs-est1973.ccs-replacement-page .half-image-half-accordion .fx-accordion__bg {
	display: none !important;
}

body.ccs-est1973.ccs-replacement-page .half-image-half-accordion__wrapper {
	position: relative;
	z-index: 1;
	gap: clamp(18px, 3vw, 30px) !important;
}

body.ccs-est1973.ccs-replacement-page .half-image-half-accordion__image {
	border: 5px solid var(--e73-porcelain);
	outline: 2px solid var(--e73-ink);
	border-radius: var(--e73-radius-lg);
	background: var(--e73-paper);
	box-shadow: var(--e73-shadow-card);
	overflow: hidden;
}

body.ccs-est1973.ccs-replacement-page .half-image-half-accordion__image img {
	filter: saturate(.9) contrast(1.06);
}

body.ccs-est1973.ccs-replacement-page .half-image-half-accordion .fx-accordion__panel {
	margin-bottom: 10px !important;
	border: 1.5px solid var(--e73-ink) !important;
	border-radius: 10px !important;
	background: rgba(255, 250, 238, .94) !important;
	box-shadow: 4px 4px 0 rgba(42, 33, 26, .08) !important;
	overflow: hidden;
}

body.ccs-est1973.ccs-replacement-page .half-image-half-accordion .fx-accordion__panel__toggle {
	min-height: 58px;
	padding: 14px 62px 14px 20px !important;
	font-size: clamp(.95rem, 1.4vw, 1.15rem) !important;
	line-height: 1.2 !important;
}

/* Comfort Club: three equal perk tiles. The legacy flex sizing used each
   unbroken headline as its width and clipped the copy on phones. */
body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) {
	padding: clamp(26px, 3vw, 38px) !important;
	border: 2px solid var(--e73-ink) !important;
	border-radius: 18px;
	background: linear-gradient(145deg, var(--e73-teal), var(--e73-teal-2)) !important;
	box-shadow: var(--e73-shadow-card) !important;
	overflow: hidden;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button-flex,
body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .row.icons-button-flex {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 12px !important;
	width: 100%;
	margin: 20px 0 0 !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button-flex > [class*="col-"] {
	box-sizing: border-box;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	padding: 14px !important;
	border: 1px solid rgba(255, 250, 238, .28) !important;
	border-radius: 12px;
	background: rgba(255, 250, 238, .1) !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button__top {
	display: grid !important;
	grid-template-columns: 44px minmax(0, 1fr);
	align-items: center;
	gap: 10px !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button__image,
body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button__image img {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	object-fit: contain;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button__details,
body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button__title {
	min-width: 0 !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	color: var(--e73-porcelain) !important;
	font-size: 12.5px !important;
	line-height: 1.3 !important;
	white-space: normal !important;
	overflow-wrap: anywhere;
}

/* Keep the location directory and final conversion beat feeling like part of
   the same page rather than inherited generic blocks. */
body.ccs-est1973.ccs-replacement-page .fx-accordion--service-location {
	border: 2px solid var(--e73-line) !important;
	border-radius: 18px;
	background: linear-gradient(to bottom, var(--e73-porcelain), var(--e73-cream)) !important;
}

body.ccs-est1973.ccs-replacement-page .fx-accordion--service-location__map,
body.ccs-est1973.ccs-replacement-page .fx-location__map {
	border: 2px solid var(--e73-ink) !important;
	box-shadow: 5px 5px 0 rgba(42, 33, 26, .1);
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main > .full-width-cta {
	border: 2px solid var(--e73-ink) !important;
	border-radius: 18px;
	background-color: var(--e73-teal) !important;
	box-shadow: var(--e73-shadow-card) !important;
}

/* Long-form decision modules: equal usable columns, content-height cards,
   and a warm mobile fold instead of white fading across porcelain. */
body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth {
	background: linear-gradient(145deg, var(--e73-porcelain), var(--e73-cream)) !important;
	border-color: var(--e73-line) !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth:nth-of-type(even) {
	background: linear-gradient(145deg, var(--e73-cream), var(--e73-porcelain)) !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	align-items: start !important;
	gap: 18px !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid > div {
	align-self: start;
	min-width: 0;
	height: auto !important;
	min-height: 0 !important;
	padding: clamp(20px, 2.4vw, 28px) !important;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid .ccs-virtual-guide__links {
	columns: 1 !important;
	column-gap: 0;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid .ccs-virtual-guide__links a {
	overflow-wrap: anywhere;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid ul {
	min-width: 0;
	max-width: 100%;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid li {
	width: auto !important;
	max-width: 100%;
}

body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid li > a {
	display: block;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
}

/* Installation-specific Captain close: copy leads, illustration supports. */
body.ccs-est1973.ccs-replacement-page .ccs-captain-wrap {
	padding: 18px 0 6px !important;
}

body.ccs-est1973.ccs-replacement-page .ccs-captain-wrap > .container {
	max-width: none !important;
	padding: 0 !important;
}

body.ccs-est1973.ccs-replacement-page .ccs-captain {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 300px) !important;
	grid-template-areas: "copy media";
	align-items: center;
	gap: clamp(24px, 4vw, 52px) !important;
	min-height: 0 !important;
	padding: clamp(30px, 4vw, 46px) !important;
	border: 2px solid var(--e73-ink) !important;
	border-radius: 18px !important;
	background: linear-gradient(145deg, var(--e73-teal), var(--e73-teal-2)) !important;
	box-shadow: var(--e73-shadow-card) !important;
}

body.ccs-est1973.ccs-replacement-page .ccs-captain__copy {
	grid-area: copy;
	max-width: 600px;
}

body.ccs-est1973.ccs-replacement-page .ccs-captain__media {
	grid-area: media;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: auto !important;
}

body.ccs-est1973.ccs-replacement-page .ccs-captain__img {
	width: auto !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: 330px !important;
	object-fit: contain;
}

body.ccs-est1973.ccs-replacement-page .ccs-captain__headline {
	max-width: 18ch;
	font-size: clamp(1.75rem, 3vw, 2.6rem) !important;
	line-height: 1.08 !important;
}

body.ccs-est1973.ccs-replacement-page .ccs-captain__message {
	max-width: 52ch;
}

/* Finish the appended service directory with the same readable hierarchy. */
body.ccs-est1973.ccs-replacement-page .ccs-link-mesh ul,
body.ccs-est1973.ccs-replacement-page .ccs-seo-content--service-areas ul {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px !important;
}

body.ccs-est1973.ccs-replacement-page .ccs-seo-content h2,
body.ccs-est1973.ccs-replacement-page .ccs-link-mesh h2 {
	font-size: clamp(1.55rem, 2.5vw, 2.25rem) !important;
	line-height: 1.1 !important;
}

@media (max-width: 900px) {
	body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button-flex,
	body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .row.icons-button-flex {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid,
	body.ccs-est1973.ccs-replacement-page .e73-inner-main .ccs-city-depth__grid .ccs-virtual-guide__links {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (max-width: 767px) {
	body.ccs-est1973.ccs-replacement-page .half-image-half-accordion {
		padding: 18px !important;
	}

	body.ccs-est1973.ccs-replacement-page .half-image-half-accordion__image {
		margin-top: 20px;
	}

	body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) {
		padding: 24px 18px 26px !important;
	}

	body.ccs-est1973.ccs-replacement-page .e73-inner-main .fx-block.icons-buttons:has(a.btn-secondary) .icons-button-flex > [class*="col-"] {
		width: 100% !important;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-city-depth.ccs-foldable:not(.ccs-expanded)::after {
		background: linear-gradient(to bottom, rgba(255, 250, 238, 0), var(--e73-porcelain) 85%) !important;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-readmore {
		width: 100%;
		margin: -12px auto 22px;
		border: 2px solid var(--e73-ink);
		border-radius: var(--e73-radius-sm);
		background: var(--e73-porcelain);
		color: var(--e73-ink);
		font-family: var(--e73-font-slab);
		font-size: 13px;
		font-weight: 700;
		letter-spacing: .06em;
		text-transform: uppercase;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-readmore[aria-expanded="true"] {
		background: var(--e73-teal);
		color: var(--e73-porcelain);
	}

	body.ccs-est1973.ccs-replacement-page .ccs-captain {
		grid-template-columns: minmax(0, 1fr) !important;
		grid-template-areas:
			"copy"
			"media";
		gap: 22px !important;
		padding: 26px 20px 22px !important;
		text-align: left !important;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-captain__copy {
		text-align: left !important;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-captain__media {
		justify-content: center;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-captain__img {
		max-height: 245px !important;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-captain__headline {
		font-size: clamp(1.65rem, 8vw, 2.05rem) !important;
	}

	body.ccs-est1973.ccs-replacement-page .ccs-link-mesh ul,
	body.ccs-est1973.ccs-replacement-page .ccs-seo-content--service-areas ul {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.ccs-est1973.ccs-replacement-page .half-image-half-accordion__image img,
	body.ccs-est1973.ccs-replacement-page .ccs-captain__img {
		animation: none !important;
		transition: none !important;
	}
}
