/*
 * Layout layer inspired by drsteemers.com: cream background, forest green,
 * Fraunces serif headings, white cards with hairline borders, dark green
 * sections and green rounded CTA bands. Loaded after style.css.
 */

:root {
	--serif: "Fraunces", Georgia, "Times New Roman", serif;
	--green: #1e6b3c;
	--green-dark: #17562f;
	--green-ink: #14201a;
	--green-pale: #b8dcc4;
	--cream: #f6f4ee;
	--wrap: 1400px;
}
.wrap { padding: 0 32px; }
.prose > * { max-width: 880px; }
.prose > .cta-inline, .glance { max-width: 880px; }

/* Page hero with the quick quote form on the right */
.page-hero { padding: 64px 0 72px; }
.page-hero-img { padding: 72px 0 80px; }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: center; }
.page-hero-grid .hero-form { max-width: 480px; justify-self: end; width: 100%; }
.page-hero .hero-ticks { margin: 18px 0 26px; }
.hero-inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 72px; }
.hero .hero-form { max-width: 480px; justify-self: end; width: 100%; }

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

body { font-family: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--cream); }
h1, h2, h3, .h3, .qf-title, .cta-inline-title, .cta-phone, .float-card strong, .brand-text, .glance-title {
	font-family: var(--serif); letter-spacing: -.01em; font-weight: 700;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.08; }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); line-height: 1.15; }
a { color: var(--green); }
a:hover { color: var(--green-dark); }
:focus-visible { outline-color: var(--green); }

/* Eyebrow: small caps with a leading rule */
.eyebrow { color: var(--green); font-size: .78rem; letter-spacing: .16em; }
.eyebrow::before { background: currentColor; width: 28px; height: 2px; }
.eyebrow-light { color: var(--green-pale); }

/* Buttons */
.btn-accent { background: var(--green); color: #fff; box-shadow: none; }
.btn-accent:hover { background: var(--green-dark); color: #fff; box-shadow: 0 10px 22px -10px rgba(30, 107, 60, .6); }
.btn-outline { --b: var(--green-ink); color: var(--green-ink); }
.btn-outline:hover { background: var(--green-ink); color: #fff; }
.btn-glass { background: transparent; --b: rgba(255, 255, 255, .7); backdrop-filter: none; }
.btn-dark { background: var(--green-ink); }

/* Top bar + header */
.topbar { background: var(--green-ink); color: #c8d5cc; }
.topbar .ico { color: var(--green-pale); }
.site-header { background: rgba(246, 244, 238, .94); border-bottom: 1px solid var(--line); }
.site-header.is-scrolled { box-shadow: 0 8px 24px -18px rgba(20, 32, 26, .5); }
.header-inner { min-height: 84px; }
.brand-logo { height: 74px; width: auto; display: block; }
.site-header .brand:has(.brand-logo) .brand-text { display: none; }
.segments-wide h2.center { text-align: left; }
.main-nav > ul > li > a { font-weight: 600; }
.main-nav > ul > li > a:hover, .main-nav > ul > li > a[aria-current="page"] { background: transparent; color: var(--green); }
.header-phone {
	background: var(--green); color: #fff; padding: 12px 22px; border-radius: 999px; font-size: 1rem; gap: 10px;
	transition: background .2s;
}
.header-phone:hover { background: var(--green-dark); color: #fff; }
.header-phone .pulse { width: auto; height: auto; background: none; }
.header-phone .pulse::after { display: none; }
.header-phone .ico { width: 18px; height: 18px; }
.header-phone > span:last-child { display: inline; }
.header-phone small { display: none; }
.header-quote { background: transparent; color: var(--green-ink); border: 2px solid var(--green-ink); }
.header-quote:hover { background: var(--green-ink); color: #fff; }
.mega { border-color: var(--line); }
.mega-ico { background: #e8f2eb; color: var(--green); }
.nav-toggle { background: #fff; border-color: var(--line); }

/* Hero */
.hero { background: var(--green-ink); }
.hero::before { background: linear-gradient(90deg, rgba(14, 24, 18, .9) 0%, rgba(14, 24, 18, .74) 45%, rgba(14, 24, 18, .35) 100%); }
.hero-blob, .hero-wave { display: none; }
.hero-inner { padding-top: 90px; padding-bottom: 90px; }
.hero-badge { background: none; border: 0; padding: 0; backdrop-filter: none; color: var(--green-pale); font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hero-badge::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.hero-badge .stars { display: none; }
.grad-text { background: none; -webkit-background-clip: initial; background-clip: initial; color: #fff; }
.hero-lead { color: #dfe7e1; }
.hero-ticks .ico { color: var(--green-pale); background: rgba(184, 220, 196, .15); }
.hero .quote-form::before { display: none; }
.quote-form { border-radius: 18px; border: 1px solid var(--line); }
.qf-field input, .qf-field select, .qf-field textarea { background: #fff; border-color: var(--line); border-radius: 10px; }
.qf-field input:focus, .qf-field select:focus, .qf-field textarea:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(30, 107, 60, .12); }
.qf-field label { text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; }
.qf-note .ico { color: var(--green); }

/* Trust strip: full-width white bar */
.trust { margin-top: 0; background: #fff; border-bottom: 1px solid var(--line); }
.trust-grid { background: none; box-shadow: none; border: 0; border-radius: 0; padding: 6px 0; }
.trust-item + .trust-item { border-left-color: var(--line); }
.trust-ico { background: #e8f2eb; color: var(--green); box-shadow: none; width: 44px; height: 44px; border-radius: 12px; }

/* Sections */
.section-soft, .section-white { background: #fff; }
.section-dark { background: var(--green-ink); color: #c8d5cc; }
.section-head { text-align: left; margin: 0 0 44px; max-width: 760px; }
.section-head.head-row { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.section-head.head-row > div { max-width: 720px; }
.section-head .link-arrow { white-space: nowrap; }
.prose-center { text-align: left; margin-left: 0; }
.prose-center > * { margin-left: 0; }

/* Service cards: uniform white cards */
.bento, .bento-even { grid-template-columns: repeat(4, 1fr); }
.bento .svc-lg { grid-column: auto; }
.svc-card { border-radius: 18px; border-color: var(--line); box-shadow: none; }
.svc-card:hover { box-shadow: var(--shadow); border-color: var(--line); }
.svc-img, .svc-lg .svc-img { aspect-ratio: 4 / 3; }
.svc-ico { display: none; }
.svc-body { padding: 20px 20px 22px; }
.svc-card h3, .svc-card .h3 { font-size: 1.3rem; }
.svc-link { color: var(--green); }

/* Why section (dark, numbered steps) */
.why .split { gap: 64px; }
.why h2 { color: #fff; }
.why .split-copy > p { color: #c8d5cc; }
.steps-grid { list-style: none; padding: 0; margin: 28px 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; }
.steps-grid h3 { color: #fff; font-family: inherit; font-size: 1rem; font-weight: 800; letter-spacing: 0; margin-bottom: 4px; }
.steps-grid p { color: #aebdb3; font-size: .95rem; margin: 0; }
.why .split-media::before { display: none; }
.why .split-media img { border-radius: 22px; aspect-ratio: 4 / 4.2; }
.float-card { left: -22px; right: auto; bottom: 28px; animation: none; }
.float-card strong { color: var(--green); font-size: 1.7rem; }
.float-ico { background: #e8f2eb; color: var(--green); }

/* Reviews (light) */
.section-white .review { background: var(--cream); border: 1px solid var(--line); backdrop-filter: none; }
.section-white .review:hover { background: var(--cream); }
.section-white .review blockquote p { color: var(--green-ink); }
.section-white .review figcaption { color: var(--green-ink); }
.section-white .review figcaption small { color: var(--muted); }
.avatar { background: var(--green); }

/* Areas, FAQ, misc */
.chip .ico { color: var(--green); }
.faq-item { border-color: var(--line); }
.faq-item[open] .faq-plus { background: var(--green); }
.faq-plus::before, .faq-plus::after { background: var(--green); }
.faq-plus { background: #e8f2eb; }
.stat strong { background: none; color: var(--green); -webkit-background-clip: initial; background-clip: initial; font-family: var(--serif); }
.prose ul li::before { background: var(--green); }
.mini-trust span { background: #fff; border: 1px solid var(--line); }
.mini-trust .ico, .area-grid .ico { color: var(--green); }
.area-grid li { border-color: var(--line); }
.contact-card { background: #fff; border: 1px solid var(--line); }
.thanks-ico { background: var(--green); }
.glance { background: #fff; border-color: var(--line); border-left-color: var(--green); }
.segment { border-color: var(--line); box-shadow: none; }

/* Page hero */
.page-hero { background: var(--green-ink); }
.page-hero-img::before { background: linear-gradient(90deg, rgba(14, 24, 18, .92), rgba(14, 24, 18, .7) 55%, rgba(14, 24, 18, .35)); }
.crumbs { color: #aebdb3; }
.crumbs a:hover { color: var(--green-pale); }
.page-lead { color: #dfe7e1; }

/* Green rounded CTA bands */
.cta-inline { background: var(--green); border: 0; border-radius: 22px; }
.cta-inline p { color: #dcebe1; }
.cta-inline .cta-inline-title { color: #fff; }
.cta-inline .btn-accent { background: #fff; color: var(--green-ink); }
.cta-inline .btn-accent:hover { background: var(--cream); color: var(--green-ink); }
.cta-inline .btn-outline { --b: rgba(255, 255, 255, .8); color: #fff; }
.cta-inline .btn-outline:hover { background: #fff; color: var(--green-ink); }

.cta-final { background: var(--cream); padding: 90px 0; color: #dcebe1; }
.cta-final-inner { background: var(--green); border-radius: 28px; padding: 56px; }
.cta-final h2 { color: #fff; }
.cta-final .eyebrow-light { color: var(--green-pale); }
.ticks .ico { color: var(--green-pale); }
.cta-phone { color: #fff; }
.cta-phone .ico { color: var(--green-pale); }
.cta-phone:hover { color: var(--green-pale); }
.cta-final .quote-form { border: 0; }

/* Footer */
.site-footer { background: var(--green-ink); color: #a9b8ae; }
.site-footer a:hover { color: var(--green-pale); }
.footer-logo { flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-logo .brand-logo { height: 84px; }
.footer-logo .brand-text { font-size: 1.5rem; color: #fff; }
.footer-phone .ico { color: var(--green-pale); }
.footer-bottom { border-top-color: rgba(255, 255, 255, .08); }

/* Mobile bar */
.mb-call { background: var(--green) !important; color: #fff !important; }
.mb-quote { background: var(--green-ink) !important; }

@media (max-width: 1200px) {
	.header-phone > span:last-child { display: none; }
	.header-phone { padding: 12px; }
}

@media (max-width: 960px) {
	.wrap { padding: 0 20px; }
	.page-hero-grid { grid-template-columns: 1fr; gap: 36px; }
	.page-hero-grid .hero-form, .hero .hero-form { justify-self: stretch; max-width: none; }
	.contact-cards { grid-template-columns: 1fr; }
	.site-header { background: var(--cream); }
	.brand-logo { height: 54px; }
	.header-inner { min-height: 72px; }
	.bento, .bento-even { grid-template-columns: 1fr 1fr; }
	.steps-grid { grid-template-columns: 1fr 1fr; }
	.cta-final-inner { padding: 40px 28px; }
	.float-card { left: 12px; }
	.main-nav { background: var(--cream); }
}

@media (max-width: 600px) {
	.wrap { padding: 0 16px; }
	.page-hero, .page-hero-img { padding: 48px 0 56px; }
	.bento, .bento-even { grid-template-columns: 1fr; }
	.steps-grid { grid-template-columns: 1fr; }
	.cta-final { padding: 56px 0; }
	.cta-final-inner { padding: 30px 18px; border-radius: 22px; }
	.section-head.head-row { align-items: flex-start; }
	.brand-logo { height: 48px; }
}
