/* Homepage — loaded only on the front page.
   Ported 1:1 from the approved "Eight-page tree service site" homepage
   design (claude.ai design project, July 2026). Sitewide chrome (header,
   footer, buttons) lives in style.css.

   Tokens: gold #F4B83F · near-black #191B1F · green #395542
           cream #F5F1E8 · card border #E2E2E4 · body #222222 */

.ut-front-page .site-main {
	margin: 0 !important;
}

.ut-front-page .site-main > section {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: clamp(56px, 8vw, 96px) 24px;
}

.ut-fp-wrap {
	max-width: 1280px;
	margin: 0 auto;
}

.ut-fp-wrap--narrow {
	max-width: 900px;
}

.ut-front-page h1,
.ut-front-page h2,
.ut-front-page h3 {
	font-family: 'Squada One', Impact, sans-serif;
	font-weight: 400;
	text-transform: uppercase;
	color: #191B1F;
	margin-top: 0;
}

.ut-front-page .site-main h2 {
	font-size: clamp(30px, 4.4vw, 48px);
	line-height: 1.02;
	margin: 0;
}

.ut-front-page section p {
	font-family: 'News Cycle', Arial, sans-serif;
	color: #222222;
}

.ut-stars {
	color: #F4B83F;
	letter-spacing: 3px;
}

/* ── Hero ── */
.ut-front-page .site-main > .ut-fp-hero {
	background-color: #191B1F;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: clamp(72px, 10vw, 140px) min(5vw, 64px) clamp(120px, 13vw, 160px);
}

.ut-fp-hero__inner {
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.ut-fp-hero h1 {
	color: #FFFFFF;
	font-size: clamp(42px, 6.4vw, 88px);
	line-height: 0.96;
	letter-spacing: 0.5px;
	margin: 0;
	max-width: 15ch;
	text-wrap: balance;
}

.ut-front-page .ut-fp-hero .ut-fp-hero__sub {
	color: rgba(255, 255, 255, 0.92);
	font-size: clamp(17px, 2vw, 20px);
	line-height: 1.6;
	margin: 0;
	max-width: 640px;
	text-wrap: pretty;
}

.ut-fp-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.ut-fp-hero__trust {
	border-top: 1px solid rgba(255, 255, 255, 0.28);
	padding-top: 22px;
	margin-top: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 14px 40px;
	align-items: center;
}

.ut-fp-hero__trust-item {
	display: flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.9);
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.8px;
}

.ut-fp-hero__trust-item .ut-stars {
	font-size: 16px;
}

/* ── Quick-quote band ── */
.ut-front-page .site-main > .ut-fp-quote {
	background: #FFFFFF;
	padding: 0 24px;
}

.ut-fp-quote__card {
	max-width: 1280px;
	margin: -64px auto 0;
	position: relative;
	z-index: 10;
	display: flex;
	flex-wrap: wrap;
	box-shadow: 0 24px 60px rgba(17, 20, 18, 0.28);
}

.ut-fp-quote__info {
	flex: 1 1 300px;
	background: #395542;
	padding: clamp(32px, 4vw, 48px) clamp(28px, 3.5vw, 44px);
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ut-fp-quote__info h2 {
	color: #FFFFFF;
	font-size: clamp(30px, 3.6vw, 42px) !important;
	line-height: 1;
}

.ut-front-page .ut-fp-quote__info p {
	color: rgba(255, 255, 255, 0.88);
	font-size: 16px;
	line-height: 1.65;
	margin: 0;
	text-wrap: pretty;
}

.ut-fp-quote__info ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ut-fp-quote__info li {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #FFFFFF;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.5px;
}

.ut-fp-quote__info li svg {
	flex-shrink: 0;
}

.ut-fp-quote__talk {
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	padding-top: 20px;
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ut-fp-quote__eyebrow {
	color: rgba(255, 255, 255, 0.7);
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.ut-fp-quote__talk a {
	color: #F4B83F;
	text-decoration: none;
	font-family: 'Squada One', Impact, sans-serif;
	font-size: 28px;
	letter-spacing: 1px;
}

.ut-fp-quote__talk a:hover {
	color: #FFFFFF;
}

.ut-fp-quote__hours {
	color: rgba(255, 255, 255, 0.7);
	font-family: 'News Cycle', Arial, sans-serif;
	font-size: 14px;
}

.ut-fp-quote__form {
	flex: 2 1 420px;
	background: #FFFFFF;
	padding: clamp(20px, 3vw, 36px) clamp(18px, 2.5vw, 32px);
}

.ut-fp-quote__form iframe {
	width: 100%;
	height: 100%;
	min-height: 440px;
	border: none;
	display: block;
}

/* ── Services grid ── */
.ut-fp-services {
	background: #FFFFFF;
}

.ut-fp-services__head {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 40px;
}

.ut-front-page .ut-fp-services__head p {
	font-size: 17px;
	line-height: 1.7;
	margin: 0;
	max-width: 760px;
}

.ut-fp-services__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}

.ut-fp-service-card {
	background: #FFFFFF;
	border: 1px solid #E2E2E4;
	text-decoration: none;
	color: #222222;
	display: flex;
	flex-direction: column;
	transition: border-color 0.2s ease;
}

.ut-fp-service-card:hover {
	border-color: #395542;
}

.ut-fp-service-card > img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}

.ut-fp-service-card__body {
	padding: 22px 24px 26px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.ut-fp-service-card h3 {
	font-size: 25px;
	margin: 0;
	line-height: 1.05;
}

.ut-front-page .ut-fp-service-card p {
	font-size: 15px;
	line-height: 1.65;
	margin: 0;
}

.ut-fp-service-card__more {
	color: #395542;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-top: auto;
	padding-top: 8px;
}

.ut-fp-service-card--cta {
	background: #395542;
	border: none;
	padding: 34px 30px;
	justify-content: center;
	gap: 12px;
}

.ut-fp-service-card--cta h3 {
	color: #FFFFFF;
}

.ut-front-page .ut-fp-service-card--cta p {
	color: rgba(255, 255, 255, 0.85);
}

.ut-fp-service-card--cta a {
	color: #F4B83F;
	text-decoration: none;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-top: 8px;
}

.ut-fp-service-card--cta a:hover {
	color: #FFFFFF;
}

/* ── Why choose ── */
.ut-fp-why {
	background: #191B1F;
}

.ut-fp-why h2 {
	color: #FFFFFF;
	margin-bottom: 44px;
}

.ut-fp-why__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 36px 28px;
}

.ut-fp-why__item {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.ut-fp-why__item h3 {
	color: #FFFFFF;
	font-size: 24px;
	margin: 0;
	line-height: 1.05;
}

.ut-front-page .ut-fp-why__item p {
	color: rgba(255, 255, 255, 0.78);
	font-size: 15px;
	line-height: 1.65;
	margin: 0;
}

/* ── Reviews ── */
.ut-fp-reviews {
	background: #F5F1E8;
}

.ut-fp-reviews__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 44px;
	margin-bottom: 36px;
}

.ut-fp-reviews__score {
	display: flex;
	align-items: center;
	gap: 18px;
}

.ut-fp-reviews__number {
	font-family: 'Squada One', Impact, sans-serif;
	font-size: clamp(56px, 6vw, 76px);
	line-height: 1;
	color: #191B1F;
}

.ut-fp-reviews__score-meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ut-fp-reviews__score-meta .ut-stars {
	font-size: 22px;
	letter-spacing: 4px;
}

.ut-fp-reviews__score-meta span:last-child {
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #4A4E52;
}

.ut-fp-reviews__title {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
	min-width: 260px;
}

.ut-front-page .site-main .ut-fp-reviews__title h2 {
	font-size: clamp(26px, 3.4vw, 38px);
}

.ut-fp-reviews__title a {
	color: #395542;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	text-decoration: none;
}

.ut-fp-reviews__title a:hover {
	color: #191B1F;
}

.ut-fp-reviews__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 18px;
}

.ut-fp-review {
	background: #FFFFFF;
	border: 1px solid #E2E2E4;
	padding: 26px 28px;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ut-fp-review .ut-stars {
	font-size: 16px;
}

.ut-fp-review blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: 'News Cycle', Arial, sans-serif;
	font-size: 15px;
	line-height: 1.7;
	color: #4A4E52;
}

.ut-fp-review figcaption {
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #191B1F;
	margin-top: auto;
}

/* ── Service area ── */
.ut-fp-area {
	background: #FFFFFF;
}

.ut-fp-area__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 44px;
	align-items: start;
}

.ut-fp-area__copy {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ut-front-page .ut-fp-area__copy > p {
	font-size: 17px;
	line-height: 1.75;
	margin: 0;
	text-wrap: pretty;
}

.ut-fp-area__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.ut-fp-area__chips a {
	border: 1px solid #395542;
	color: #395542;
	text-decoration: none;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 11px 18px;
	transition: background 0.2s ease, color 0.2s ease;
}

.ut-fp-area__chips a:hover {
	background: #395542;
	color: #FFFFFF;
}

.ut-front-page .ut-fp-area__also {
	font-size: 14px;
	line-height: 1.8;
	margin: 0;
	color: #6B6F73;
}

.ut-fp-area__map {
	width: 100%;
	height: 100%;
	min-height: 440px;
	border: 1px solid #E2E2E4;
	display: block;
}

/* ── FAQ ── */
.ut-fp-faq {
	background: #F5F1E8;
}

.ut-fp-faq h2 {
	margin-bottom: 36px;
}

.ut-fp-faq__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ut-fp-faq__item {
	background: #FFFFFF;
	border: 1px solid #E2E2E4;
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ut-fp-faq__item h3 {
	font-size: 22px;
	margin: 0;
	line-height: 1.05;
}

.ut-front-page .ut-fp-faq__item p {
	font-size: 16px;
	line-height: 1.7;
	margin: 0;
}

.ut-fp-faq__item a {
	color: #395542;
	font-weight: 700;
}

/* ── Blog preview ── */
.ut-fp-blog {
	background: #FFFFFF;
}

.ut-fp-blog__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px 28px;
	margin-bottom: 36px;
}

.ut-fp-blog__head a {
	color: #395542;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	text-decoration: none;
}

.ut-fp-blog__head a:hover {
	color: #191B1F;
}

.ut-fp-blog__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
}

.ut-fp-post-card {
	text-decoration: none;
	color: #222222;
	display: flex;
	flex-direction: column;
	gap: 14px;
	border: 1px solid #E2E2E4;
	transition: border-color 0.2s ease;
}

.ut-fp-post-card:hover {
	border-color: #395542;
}

.ut-fp-post-card > img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
}

.ut-fp-post-card__body {
	padding: 0 24px 26px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ut-fp-post-card__date {
	color: #395542;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.ut-fp-post-card h3 {
	font-size: 23px;
	line-height: 1.05;
	margin: 0;
	color: #191B1F;
}

.ut-fp-post-card__more {
	color: #395542;
	font-family: 'News Cycle', Arial, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

/* ── Final CTA band ── */
.ut-front-page .site-main > .ut-fp-cta {
	background: #395542;
	padding: clamp(64px, 9vw, 110px) 24px;
	text-align: center;
}

.ut-fp-cta__inner {
	max-width: 900px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
}

.ut-front-page .site-main .ut-fp-cta h2 {
	color: #FFFFFF;
	font-size: clamp(32px, 5vw, 58px);
	text-wrap: balance;
}

.ut-front-page .ut-fp-cta p {
	color: rgba(255, 255, 255, 0.85);
	font-size: 17px;
	line-height: 1.6;
	margin: 0;
	max-width: 620px;
}

.ut-fp-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
}
