/* Homepage, /services/ comparison table and sticky mobile bar (SEO overhaul Plan 3, Tasks 11 and 12).
   Selectors are doubled or prefixed on purpose: page templates colour links and headings at the same
   specificity as a single class and load later, so a bare component rule can lose silently. */

/* ---------- Hero collage ---------- */
.fp-hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:600px;background:#111827;color:#fff;overflow:hidden}
.fp-hero .fp-hero-collage{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr 1fr;gap:3px;z-index:0}
.fp-hero .fp-hero-collage__img{width:100%;height:100%;object-fit:cover;display:block}
.fp-hero .fp-hero-collage__img:first-child{grid-column:1 / -1}
.fp-hero .fp-hero-collage[data-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr}
.fp-hero .fp-hero-collage[data-count="2"]{grid-template-rows:1fr}
.fp-hero .fp-hero-collage[data-count="2"] .fp-hero-collage__img:first-child{grid-column:auto}
.fp-hero .fp-hero-collage[data-count="3"]{grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr}
.fp-hero__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(17,24,39,.58) 0%,rgba(17,24,39,.68) 100%)}
.fp-hero .fp-hero__body{position:relative;z-index:2;text-align:center;padding:64px 16px;max-width:900px}
.fp-hero .fp-hero__eyebrow{color:#FAB528;font-size:1.9rem;margin:0 0 .75rem}
.fp-hero h1{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35);font-size:clamp(2.2rem,6vw,3.75rem);font-weight:800;line-height:1.1;text-transform:uppercase;letter-spacing:-.01em;margin:0 0 1.25rem}
.fp-hero h1 span{color:#FAB528}
.fp-hero .fp-hero__methods{color:#f3f4f6;font-size:1.05rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin:0 0 1.5rem}
.fp-hero .fp-hero__actions{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:center;align-items:center;margin:0}
.fp-hero .fp-hero__btn{color:#111827;background:#FAB528}
.fp-hero a.fp-hero__link{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:4px;padding:12px 4px}
@media (min-width:768px){
.fp-hero .fp-hero-collage{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr}
.fp-hero .fp-hero-collage__img:first-child{grid-column:1;grid-row:1 / span 2}
.fp-hero .fp-hero-collage[data-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr}
.fp-hero .fp-hero-collage[data-count="1"] .fp-hero-collage__img:first-child{grid-row:auto}
.fp-hero .fp-hero-collage[data-count="2"]{grid-template-columns:2fr 1fr;grid-template-rows:1fr}
.fp-hero .fp-hero-collage[data-count="2"] .fp-hero-collage__img:first-child{grid-row:auto}
.fp-hero .fp-hero-collage[data-count="3"]{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.fp-hero .fp-hero__eyebrow{font-size:3rem;transform:rotate(-2deg)}
}

/* ---------- Sections ---------- */
.fp-home-proof,.fp-home-methods,.fp-home-serve,.fp-home-why,.fp-home-how,.fp-home-contact{padding:56px 16px}
.fp-home-proof,.fp-home-methods{background:#fff}
.fp-home-serve,.fp-home-how{background:#f9fafb}
.fp-home-why{background:#fff}
.fp-home-contact{background:#f9fafb}
.fp-home-proof h2,.fp-home-methods h2,.fp-home-serve h2,.fp-home-why h2,.fp-home-how h2{color:#111827;font-size:clamp(1.6rem,3vw,2.25rem);font-weight:800;text-align:center;line-height:1.2;margin:0 0 1rem}
.fp-home-proof .fp-work{padding:24px 0 0}
.fp-home-proof .fp-home-proof__text,.fp-home-methods .fp-home-lead,.fp-home-serve p{max-width:760px;margin:0 auto 1rem;color:#374151;line-height:1.7;font-size:1.05rem;text-align:center}
.fp-home-proof .fp-home-proof__text a,.fp-home-methods .fp-home-lead a,.fp-home-serve p a{color:#0A6CB6;font-weight:700;text-decoration:underline}

/* method cards */
.fp-home-methods .fp-home-cards{display:grid;grid-template-columns:1fr;gap:24px;max-width:1200px;margin:32px auto 0}
.fp-home-methods a.fp-home-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;text-decoration:none;color:#111827;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:box-shadow .3s,transform .3s}
.fp-home-methods a.fp-home-card:hover{box-shadow:0 12px 28px rgba(0,0,0,.14);transform:translateY(-4px)}
.fp-home-methods a.fp-home-card img{width:100%;height:200px;object-fit:cover;display:block}
.fp-home-methods a.fp-home-card .fp-home-card__name{display:block;padding:20px 20px 6px;font-size:1.2rem;font-weight:800;color:#111827}
.fp-home-methods a.fp-home-card .fp-home-card__min{display:block;padding:0 20px 20px;color:#4b5563;font-size:.95rem;line-height:1.5}
@media (min-width:640px){.fp-home-methods .fp-home-cards{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.fp-home-methods .fp-home-cards{grid-template-columns:repeat(4,1fr)}}

/* who we serve */
.fp-home-serve .fp-home-serve__list{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;list-style:none;margin:0 auto 2.5rem;padding:0;max-width:960px}
.fp-home-serve .fp-home-serve__list a{display:inline-block;background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:10px 18px;font-weight:700;color:#111827;text-decoration:none}
.fp-home-serve .fp-home-serve__list a:hover{border-color:#8A6000;color:#8A6000}

/* why choose */
.fp-home-why .fp-home-why__badge{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 12px;color:#111827;font-weight:800;font-size:1.1rem}
.fp-home-why .fp-home-why__badge a{color:#0A6CB6;text-decoration:underline}
.fp-home-why .fp-home-why__star{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#FAB528;color:#111827;font-size:.9rem}
.fp-home-why .fp-home-why__grid{display:grid;grid-template-columns:1fr;gap:28px;max-width:960px;margin:32px auto 0}
.fp-home-why .fp-home-why__grid h3{color:#111827;font-size:1.2rem;font-weight:800;margin:0 0 .5rem}
.fp-home-why .fp-home-why__grid p{color:#4b5563;line-height:1.65;margin:0}
@media (min-width:768px){.fp-home-why .fp-home-why__grid{grid-template-columns:1fr 1fr;gap:36px 48px}}

/* how it works */
.fp-home-how .fp-home-how__steps{list-style:none;counter-reset:fpstep;display:grid;grid-template-columns:1fr;gap:24px;max-width:1100px;margin:32px auto 0;padding:0}
.fp-home-how .fp-home-how__steps li{counter-increment:fpstep;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px}
.fp-home-how .fp-home-how__steps li::before{content:counter(fpstep);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#FAB528;color:#111827;font-weight:800;margin-bottom:10px}
.fp-home-how .fp-home-how__steps h3{color:#111827;font-size:1.1rem;font-weight:800;margin:0 0 .4rem}
.fp-home-how .fp-home-how__steps p{color:#4b5563;line-height:1.6;margin:0}
@media (min-width:768px){.fp-home-how .fp-home-how__steps{grid-template-columns:repeat(4,1fr)}}

/* contact */
.fp-home-contact .fp-home-contact__box{display:flex;flex-direction:column;max-width:1100px;margin:0 auto;background:#fff;border-radius:16px;box-shadow:0 20px 40px rgba(0,0,0,.12);overflow:hidden}
.fp-home-contact .fp-home-contact__photo{position:relative;height:220px}
.fp-home-contact .fp-home-contact__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fp-home-contact .fp-home-contact__form{padding:32px 24px}
.fp-home-contact .fp-home-contact__form h2{color:#111827;font-size:1.9rem;font-weight:800;margin:0 0 .75rem}
.fp-home-contact .fp-home-contact__form > p{color:#4b5563;margin:0 0 1.5rem}
@media (min-width:768px){
.fp-home-contact .fp-home-contact__box{flex-direction:row}
.fp-home-contact .fp-home-contact__photo,.fp-home-contact .fp-home-contact__form{width:50%;height:auto}
.fp-home-contact .fp-home-contact__form{padding:40px}
}
/* Google's required reCAPTCHA disclosure. Unscoped so it also styles the note on
   /request-a-quote/, where form 17998 is embedded from page content rather than a template. */
.fp-recaptcha-note{font-size:.75rem;color:#6b7280;margin:12px 0 0}
.fp-recaptcha-note a{color:#0A6CB6;text-decoration:underline}
.fp-home-contact .fp-recaptcha-note{font-size:.75rem;color:#6b7280;margin:12px 0 0}
.fp-home-contact .fp-recaptcha-note a{color:#0A6CB6;text-decoration:underline}
body.home .grecaptcha-badge{visibility:hidden!important}

/* ---------- /services/ method table (scrolls inside its own box on phones) ---------- */
.fp-table-scroll{overflow-x:auto;margin:1rem 0 1.5rem;-webkit-overflow-scrolling:touch}
.fp-table-scroll table.fp-method-table{width:100%;min-width:560px;border-collapse:collapse;font-size:.95rem}
.fp-table-scroll table.fp-method-table th,.fp-table-scroll table.fp-method-table td{border:1px solid #e5e7eb;padding:10px 12px;text-align:left;vertical-align:top;color:#374151}
.fp-table-scroll table.fp-method-table thead th{background:#111827;color:#fff}
.fp-table-scroll table.fp-method-table tbody th{background:#f9fafb;font-weight:700;color:#111827;white-space:nowrap}
.fp-table-scroll table.fp-method-table caption{caption-side:bottom;text-align:left;color:#4b5563;font-size:.85rem;padding-top:6px}
.fp-table-scroll table.fp-method-table td a{color:#0A6CB6;font-weight:700;text-decoration:underline}

/* ---------- Sticky mobile quote/call bar ---------- */
.fp-sticky-cta{display:none}
@media (max-width:767px){
.fp-sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9990;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#111827;box-shadow:0 -6px 20px rgba(0,0,0,.25)}
.fp-sticky-cta a.fp-sticky-cta__quote,.fp-sticky-cta a.fp-sticky-cta__call{flex:1;text-align:center;font-weight:800;padding:12px 8px;border-radius:10px;text-decoration:none;font-size:15px;color:#111827}
.fp-sticky-cta a.fp-sticky-cta__quote{background:#FAB528}
.fp-sticky-cta a.fp-sticky-cta__call{background:#fff}
body.fp-has-sticky-cta{padding-bottom:72px}
}
