:root{
  --ink:#1f2a24;
  --muted:#647169;
  --paper:#fbfaf6;
  --soft:#f0f4ef;
  --accent:#7a8d6a;
  --accent-dark:#4f6546;
  --line:#dce3dc;
  --white:#fff;
  --shadow:0 18px 50px rgba(31,42,36,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
}
a{color:inherit}
.wrap{width:min(1120px,calc(100% - 40px));margin:0 auto}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,250,246,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(220,227,220,.8);
}
.nav-wrap{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:-.02em}
.brand-mark{
  display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:var(--ink);color:var(--white);font-size:13px;letter-spacing:.08em
}
.custom-logo{max-height:52px;width:auto}
.primary-nav{display:flex;align-items:center;gap:22px}
.menu{list-style:none;display:flex;gap:22px;margin:0;padding:0}
.menu a{text-decoration:none;font-weight:600;font-size:14px}
.menu-toggle{display:none;border:0;background:transparent;font-weight:700}
.hero{padding:96px 0 72px;background:linear-gradient(180deg,#f7f6f0 0%,#fbfaf6 100%)}
.hero-grid,.split{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800;color:var(--accent-dark);margin:0 0 12px}
h1,h2,h3{line-height:1.08;letter-spacing:-.035em;margin-top:0}
h1{font-size:clamp(44px,7vw,78px);max-width:850px;margin-bottom:22px}
h2{font-size:clamp(32px,4vw,50px);margin-bottom:18px}
h3{font-size:24px;margin-bottom:12px}
.hero-lede{font-size:21px;color:var(--muted);max-width:680px;margin-bottom:30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  border:0;border-radius:999px;padding:14px 22px;background:var(--ink);color:var(--white);
  font-weight:800;cursor:pointer;transition:.2s ease
}
.btn:hover{transform:translateY(-1px);opacity:.94}
.btn-small{padding:10px 16px;font-size:14px}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-light{background:var(--white);color:var(--ink)}
.full{width:100%;margin-top:8px}
.trust-row{display:flex;flex-wrap:wrap;gap:18px;color:var(--muted);font-weight:600;font-size:14px}
.hero-card{
  background:var(--ink);color:var(--white);padding:42px;border-radius:28px;box-shadow:var(--shadow)
}
.hero-card p{color:#dbe3dc}
.hero-card a{color:#fff;font-weight:800}
.hero-card-badge{
  display:inline-block;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:32px
}
.section{padding:88px 0}
.section-soft{background:var(--soft)}
.section-dark{background:var(--ink);color:var(--white)}
.section-dark .eyebrow{color:#b9c8b0}
.section-dark p{color:#dbe3dc}
.cards{display:grid;gap:20px;margin-top:34px}
.cards.three{grid-template-columns:repeat(3,1fr)}
.card{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 8px 24px rgba(31,42,36,.05)}
.card p{color:var(--muted);margin-bottom:0}
.note{padding:18px 20px;background:var(--white);border-left:4px solid var(--accent);border-radius:12px}
.estimator{background:var(--white);padding:30px;border-radius:24px;box-shadow:var(--shadow)}
.estimator label{display:block;font-weight:800;font-size:14px;margin:16px 0 7px}
.estimator select{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;color:var(--ink)
}
.estimate-result{margin-top:16px;padding:16px;border-radius:14px;background:var(--soft);font-weight:800}
.fine-print,.muted{color:var(--muted);font-size:13px}
.area-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.area-row span{padding:12px 16px;background:var(--white);border:1px solid var(--line);border-radius:999px;font-weight:800}
.cta-section{padding-top:0}
.cta-box{
  background:var(--accent-dark);color:var(--white);padding:42px;border-radius:28px;
  display:flex;align-items:center;justify-content:space-between;gap:28px
}
.cta-box .eyebrow{color:#d8e3d1}
.cta-box h2{margin-bottom:8px}
.cta-box p{margin-bottom:0;color:#e9efe6}
.site-footer{padding:54px 0 24px;border-top:1px solid var(--line);background:#f5f4ef}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}
.footer-brand{font-size:20px;font-weight:900}
.site-footer p{color:var(--muted)}
.site-footer a{font-weight:700}
.copyright{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.content-wrap{max-width:800px}
.entry-content{font-size:18px}
@media(max-width:800px){
  .hero{padding-top:62px}
  .hero-grid,.split,.cards.three,.footer-grid{grid-template-columns:1fr}
  .primary-nav{
    display:none;position:absolute;left:20px;right:20px;top:70px;padding:18px;background:var(--white);
    border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch
  }
  .primary-nav.open{display:flex}
  .menu{flex-direction:column}
  .menu-toggle{display:block}
  .cta-box{align-items:flex-start;flex-direction:column}
  .brand-text{font-size:14px}
}

/* v2 — approved navy brand direction */
:root{--navy:#031b33;--blue:#07529b;--ice:#f5f8fb}
.topbar{background:var(--navy);color:#fff;font-size:13px;padding:9px 0}
.topbar-inner{display:flex;justify-content:space-between;gap:20px}
.site-header{background:#fff}
.nav-wrap{min-height:118px}
.site-logo{width:220px;max-height:100px;object-fit:contain;display:block}
.brand{flex-shrink:0}
.hero-v2{
  position:relative;min-height:560px;padding:0;
  background:
    linear-gradient(90deg,rgba(2,18,33,.92) 0%,rgba(2,18,33,.72) 42%,rgba(2,18,33,.18) 72%,rgba(2,18,33,.05) 100%),
    linear-gradient(135deg,#203344,#899b9f);
  display:flex;align-items:center;color:#fff;overflow:hidden
}
.hero-v2:after{
  content:"";position:absolute;inset:0 0 0 52%;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.0));
  border-left:1px solid rgba(255,255,255,.12)
}
.hero-content{position:relative;z-index:2}
.hero-v2 .hero-copy{max-width:720px}
.hero-v2 h1{text-transform:uppercase;font-size:clamp(48px,6vw,78px);letter-spacing:.01em;margin-bottom:22px}
.hero-v2 .hero-lede{color:#fff;max-width:620px}
.light{color:#d9e9f7!important}
.btn-blue{background:var(--blue)}
.btn-outline-light{background:transparent;border:2px solid rgba(255,255,255,.8);color:#fff}
.values{background:#fff;border-bottom:1px solid var(--line);padding:30px 0}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.value{display:flex;gap:18px;padding:10px 34px;border-right:1px solid var(--line)}
.value:first-child{padding-left:0}.value:last-child{border-right:0}
.value-icon{font-size:30px;color:var(--blue);font-weight:900}
.value h3{text-transform:uppercase;font-size:16px;letter-spacing:.02em;margin:0 0 6px}
.value p{font-size:14px;color:var(--muted);margin:0}
.services-v2{background:#fff}
.service-card{padding:0;overflow:hidden}
.service-photo{height:210px;background-size:cover;background-position:center}
.residential-photo{background:linear-gradient(135deg,#dfe7e5,#f6f3eb)}
.onetime-photo{background:linear-gradient(135deg,#e7e0d4,#f9f7f2)}
.commercial-photo{background:linear-gradient(135deg,#cad8e2,#eef2f5)}
.service-body{padding:26px}
.service-body ul{padding-left:20px;color:var(--muted)}
.text-link{font-weight:900;color:var(--blue);text-decoration:none}
.cta-box{background:var(--blue)}
@media(max-width:800px){
  .topbar-inner{justify-content:center}.topbar-inner span:last-child{display:none}
  .nav-wrap{min-height:88px}.site-logo{width:160px;max-height:76px}
  .hero-v2{min-height:520px}
  .hero-v2:after{display:none}
  .value-grid{grid-template-columns:1fr}.value{border-right:0;border-bottom:1px solid var(--line);padding:20px 0}
  .value:last-child{border-bottom:0}
}

/* v3 polish */
.site-logo{width:250px;max-height:112px}
.hero-v3{
  min-height:590px;padding:0;display:flex;align-items:center;color:#fff;
  background:
    linear-gradient(90deg,rgba(2,18,33,.93) 0%,rgba(2,18,33,.82) 38%,rgba(2,18,33,.28) 64%,rgba(2,18,33,.08) 100%),
    url('../images/hero.jpg') center/cover no-repeat;
}
.hero-v3 .hero-copy{max-width:700px}
.hero-v3 h1{text-transform:uppercase;font-size:clamp(50px,6vw,82px);letter-spacing:.01em;margin-bottom:22px}
.residential-photo-real{background:url('../images/residential.jpg') center/cover no-repeat}
.onetime-photo-real{background:url('../images/onetime.jpg') center/cover no-repeat}
.commercial-photo-real{background:url('../images/commercial.jpg') center/cover no-repeat}
.footer-logo{width:210px;height:auto;display:block;margin-bottom:12px}
.copyright{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:800px){
  .site-logo{width:175px}
  .hero-v3{min-height:520px;background-position:62% center}
}

/* v4 service-card spacing correction */
.service-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.service-card .service-photo{
  display:block;
  flex:0 0 210px;
  width:100%;
}
.service-card .service-body{
  padding:30px 26px 28px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.service-card .service-body h3{
  margin-top:0;
  margin-bottom:14px;
}
.service-card .service-body .text-link{
  margin-top:auto;
  padding-top:12px;
}

/* v4 estimator */
.estimator-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.estimator-grid .field-full{grid-column:1/-1}
.estimate-summary{
  margin-top:18px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--soft);
}
.estimate-summary .estimate-price{
  font-size:28px;
  font-weight:900;
  color:var(--navy);
  margin:4px 0 8px;
}
.estimate-summary ul{
  margin:10px 0 0;
  padding-left:20px;
  color:var(--muted);
}
@media(max-width:640px){
  .estimator-grid{grid-template-columns:1fr}
  .estimator-grid .field-full{grid-column:auto}
}

/* v5 permanent service card alignment */
.services-grid{
  align-items:stretch;
}
.service-card{
  display:grid !important;
  grid-template-rows:210px 1fr;
  height:100%;
  overflow:hidden;
}
.service-card .service-photo{
  height:210px !important;
  min-height:210px !important;
  max-height:210px !important;
  width:100%;
  overflow:hidden;
  display:block;
}
.service-card .service-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.service-card .service-body{
  padding:34px 30px 30px !important;
  margin:0 !important;
  display:flex !important;
  flex-direction:column;
  min-height:330px;
}
.service-card .service-body h3{
  margin:0 0 18px !important;
  line-height:1.15;
}
.service-card .service-body p{
  margin-top:0;
}
.service-card .service-body .text-link{
  margin-top:auto;
  padding-top:16px;
}

/* v5 estimate output */
.price-levels{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:14px;
}
.price-level{
  padding:16px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.price-level strong{
  display:block;
  color:var(--navy);
  margin-bottom:6px;
}
.price-level .range{
  font-size:22px;
  font-weight:900;
  color:var(--navy);
}
.estimator-note{
  margin-top:12px;
  font-size:.95rem;
  color:var(--muted);
}
@media(max-width:760px){
  .price-levels{grid-template-columns:1fr}
  .service-card{grid-template-rows:200px auto}
  .service-card .service-photo{
    height:200px !important;
    min-height:200px !important;
    max-height:200px !important;
  }
  .service-card .service-body{min-height:0}
}

/* v5.1 exact service-card geometry correction
   All three cards share one identical upper-section height,
   divider height/position, and lower-content starting point. */

.services-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:stretch;
}

.service-card{
  display:grid !important;
  grid-template-rows: 310px 34px 1fr !important;
  height:100%;
  min-width:0;
  overflow:hidden;
  border-radius:18px;
}

/* Upper photo + summary area */
.service-card .service-photo{
  grid-row:1;
  height:310px !important;
  min-height:310px !important;
  max-height:310px !important;
  margin:0 !important;
  overflow:hidden;
}

/* The existing navy separator is forced to the same geometry on every card.
   Covers common markup/class variants without changing the visual design. */
.service-card .service-divider,
.service-card .divider,
.service-card > .navy-bar,
.service-card > .service-bar{
  grid-row:2;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:0 !important;
  padding:0 !important;
  width:100% !important;
}

/* If the theme divider is implemented as a pseudo/border sibling, normalize
   the boundary immediately before the lower body as well. */
.service-card .service-body{
  grid-row:3;
  box-sizing:border-box;
  padding:34px 30px 30px !important;
  margin:0 !important;
  min-height:360px;
  display:flex !important;
  flex-direction:column;
  border-top:34px solid var(--navy);
}

/* Avoid double divider if an explicit divider element exists. */
.service-card:has(.service-divider) .service-body,
.service-card:has(.divider) .service-body,
.service-card:has(.navy-bar) .service-body,
.service-card:has(.service-bar) .service-body{
  border-top:0;
}

.service-card .service-body h3{
  margin:0 0 22px !important;
  padding:0 !important;
  line-height:1.15;
}
.service-card .service-body p{
  margin-top:0;
}
.service-card .service-body .text-link{
  margin-top:auto;
  padding-top:18px;
}

@media(max-width:900px){
  .services-grid{grid-template-columns:1fr}
  .service-card{
    grid-template-rows:280px 30px auto !important;
  }
  .service-card .service-photo{
    height:280px !important;
    min-height:280px !important;
    max-height:280px !important;
  }
  .service-card .service-divider,
  .service-card .divider,
  .service-card > .navy-bar,
  .service-card > .service-bar{
    height:30px !important;
    min-height:30px !important;
    max-height:30px !important;
  }
  .service-card .service-body{
    min-height:0;
    border-top-width:30px;
  }
}

/* v5.2 estimator polish: keep soil labels aligned on one line */
.price-level strong{
  font-size:0.92rem !important;
  line-height:1.1 !important;
  white-space:nowrap;
  margin-bottom:8px !important;
}
.price-level{
  text-align:center;
}
.price-level .range{
  line-height:1.1;
}
@media(max-width:760px){
  .price-level strong{
    white-space:normal;
    font-size:0.95rem !important;
  }
}

/* v5.4 top-row estimator alignment only */
.estimator-grid > div:not(.field-full){
  display:flex;
  flex-direction:column;
}
.estimator-grid > div:not(.field-full) > label{
  min-height:24px;
  display:flex;
  align-items:flex-end;
  margin-bottom:8px;
  line-height:1.15;
}
.estimator-grid > div:not(.field-full) > select{
  height:48px;
  min-height:48px;
  box-sizing:border-box;
}
@media(max-width:640px){
  .estimator-grid > div:not(.field-full) > label{
    min-height:0;
  }
}


/* v5.6 estimator tracking fields + required button state */
.estimator .tracking-field label{
  min-height:24px;
  display:flex;
  align-items:flex-end;
  margin-bottom:8px;
  line-height:1.15;
}
.estimator .tracking-field select{
  height:48px;
  min-height:48px;
  box-sizing:border-box;
}
#estimateButton:disabled,
#estimateButton[aria-disabled="true"]{
  opacity:.38;
  cursor:not-allowed;
  transform:none;
  filter:saturate(.45);
}
#estimateButton.is-ready{
  opacity:1;
  filter:none;
}
#estimateButton.is-ready:hover{
  transform:translateY(-1px);
  opacity:.94;
}
@media(max-width:640px){
  .estimator .tracking-field label{min-height:0}
}


/* v5.8 — trust section emphasis + locked alignment */
.values{
  padding:64px 0 68px !important;
  background:linear-gradient(180deg,#f7fafc 0%,#eef4f8 100%) !important;
  border-top:1px solid rgba(3,27,51,.06);
  border-bottom:1px solid rgba(3,27,51,.10) !important;
}
.values-intro{
  max-width:760px;
  margin:0 auto 30px;
  text-align:center;
}
.values-intro .eyebrow{
  margin-bottom:8px;
}
.values-intro h2{
  margin:0;
  color:var(--navy);
  font-size:clamp(28px,3.5vw,42px);
}
.value-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
  align-items:stretch !important;
}
.value{
  display:grid !important;
  grid-template-rows:64px auto !important;
  align-content:start !important;
  justify-items:center !important;
  gap:18px !important;
  min-width:0;
  height:100%;
  padding:30px 24px 32px !important;
  border:1px solid rgba(3,27,51,.10) !important;
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 30px rgba(3,27,51,.08);
  text-align:center !important;
}
.value:first-child,.value:last-child{padding-left:24px !important}
.value-icon{
  width:64px !important;
  height:64px !important;
  min-width:64px !important;
  min-height:64px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 auto !important;
  border-radius:50%;
  background:rgba(7,82,155,.09);
  color:var(--blue) !important;
  font-size:30px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.value-copy{
  width:100%;
  max-width:310px;
  margin:0 auto;
}
.value h3{
  min-height:44px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  margin:0 0 10px !important;
  text-align:center !important;
  line-height:1.25 !important;
}
.value p{
  margin:0 !important;
  text-align:center !important;
  line-height:1.55;
}

/* v5.8 — lock service-card text baselines so copy stays aligned */
.services-v2 > .wrap > .eyebrow,
.services-v2 > .wrap > h2{
  position:relative;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}
.service-card .service-body h3{
  min-height:48px;
  display:flex;
  align-items:flex-start;
}
.service-card .service-body > p{
  min-height:88px;
  margin-bottom:18px !important;
  line-height:1.55;
}
.service-card .service-body > ul{
  margin-top:0;
}

/* v5.8 estimator service-type routing field */
.estimator-grid .field-full{
  grid-column:1/-1;
}
.estimator select{
  box-sizing:border-box;
}
#serviceType{
  width:100%;
}

@media(max-width:900px){
  .value-grid{
    grid-template-columns:1fr !important;
  }
  .value{
    max-width:620px;
    width:100%;
    margin:0 auto;
    border:1px solid rgba(3,27,51,.10) !important;
    padding:28px 22px 30px !important;
  }
  .value h3{min-height:0}
}
@media(max-width:760px){
  .service-card .service-body h3,
  .service-card .service-body > p{
    min-height:0;
  }
}


/* v5.9 — service-card text + bottom alignment
   Lock every card to the same internal rows so headings, descriptions,
   bullet lists, and bottom links do not "travel" when copy wraps. */
.services-v2 .cards.three{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:24px !important;
  align-items:stretch !important;
}
.services-v2 .service-card{
  height:100% !important;
  align-self:stretch !important;
}
.services-v2 .service-card .service-body{
  display:grid !important;
  grid-template-rows:56px 108px minmax(132px,1fr) 44px !important;
  align-items:start !important;
  min-height:410px !important;
  height:100% !important;
  padding:34px 30px 28px !important;
}
.services-v2 .service-card .service-body h3{
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  align-self:start !important;
  line-height:1.15 !important;
}
.services-v2 .service-card .service-body > p{
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  align-self:start !important;
  line-height:1.55 !important;
}
.services-v2 .service-card .service-body > ul{
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 0 0 20px !important;
  align-self:start !important;
}
.services-v2 .service-card .service-body .text-link{
  margin:0 !important;
  padding:12px 0 0 !important;
  align-self:end !important;
  display:flex !important;
  align-items:flex-end !important;
  min-height:44px !important;
}

/* v5.9 — estimator pair alignment
   Reserve identical label height so wrapped labels still place both
   select boxes on the exact same top and bottom lines. */
.estimator-grid > div:not(.field-full) > label,
.estimator .tracking-field label{
  min-height:46px !important;
  height:46px !important;
  display:flex !important;
  align-items:flex-end !important;
  margin:16px 0 8px !important;
  line-height:1.15 !important;
}
.estimator-grid > div:not(.field-full) > select,
.estimator .tracking-field select{
  height:52px !important;
  min-height:52px !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* The two bottom tracking fields form one clean row and finish on the
   same baseline immediately above the estimate button. */
.estimator .tracking-field{
  display:grid !important;
  grid-template-rows:46px 52px !important;
  align-content:end !important;
}
#estimateButton{
  margin-top:22px !important;
}

/* Full-width estimator fields stay visually separate from paired rows. */
.estimator-grid .field-full > label{
  min-height:0 !important;
  height:auto !important;
}

@media(max-width:900px){
  .services-v2 .cards.three{
    grid-template-columns:1fr !important;
  }
  .services-v2 .service-card .service-body{
    grid-template-rows:auto auto auto auto !important;
    min-height:0 !important;
    row-gap:18px;
  }
  .services-v2 .service-card .service-body .text-link{
    min-height:0 !important;
    padding-top:4px !important;
  }
}

@media(max-width:640px){
  /* Keep paired estimator fields aligned even in the narrow estimator card. */
  .estimator-grid > div:not(.field-full) > label,
  .estimator .tracking-field label{
    min-height:46px !important;
    height:46px !important;
  }
}


/* v6.0 — transparent footer logo treatment */
.site-footer img[src*="bear-essentials-logo-footer.png"],
.footer-logo{
  background:transparent !important;
  mix-blend-mode:multiply;
  box-shadow:none !important;
  border:0 !important;
}


/* v6.1 GOLD — final lock for service-image containment + estimator labels */

/* The service artwork contains text inside the image itself.
   Use CONTAIN, never COVER, so no wording can be cropped off the right edge. */
.services-v2 .service-card .service-photo,
.services-v2 .service-card .residential-photo-real,
.services-v2 .service-card .onetime-photo-real,
.services-v2 .service-card .commercial-photo-real{
  background-size:contain !important;
  background-repeat:no-repeat !important;
  background-position:center center !important;
  background-color:#fff !important;
}

/* Preserve identical artwork boxes across all three cards. */
.services-v2 .service-card .service-photo{
  width:100% !important;
  height:310px !important;
  min-height:310px !important;
  max-height:310px !important;
}

/* Bottom estimator pair: fixed, visible labels with identical geometry. */
.estimator .tracking-field{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-end !important;
  min-width:0 !important;
}

.estimator .tracking-field label{
  display:flex !important;
  align-items:flex-end !important;
  width:100% !important;
  min-height:52px !important;
  height:52px !important;
  margin:0 0 8px !important;
  padding:0 !important;
  line-height:1.15 !important;
  font-weight:800 !important;
  color:var(--ink) !important;
  opacity:1 !important;
  visibility:visible !important;
  overflow:visible !important;
}

.estimator .tracking-field select{
  display:block !important;
  width:100% !important;
  height:52px !important;
  min-height:52px !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Keep the entire two-column estimator row aligned top and bottom. */
.estimator-grid{
  align-items:end !important;
}

#estimateButton{
  margin-top:22px !important;
}

/* GOLD baseline — avoid later generic rules changing the approved geometry. */
@media(max-width:900px){
  .services-v2 .service-card .service-photo{
    height:280px !important;
    min-height:280px !important;
    max-height:280px !important;
    background-size:contain !important;
  }
}

@media(max-width:640px){
  .estimator .tracking-field label{
    min-height:52px !important;
    height:52px !important;
  }
}


/* v6.2 GOLD — enlarge service artwork without cropping text
   The source graphics no longer contain the unused black lower area.
   They now fill the card width so the photo and embedded wording are larger. */
.services-v2 .service-card{
  grid-template-rows:auto 34px 1fr !important;
}

.services-v2 .service-card .service-photo,
.services-v2 .service-card .residential-photo-real,
.services-v2 .service-card .onetime-photo-real,
.services-v2 .service-card .commercial-photo-real{
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:1.84 / 1 !important;
  background-size:100% auto !important;
  background-repeat:no-repeat !important;
  background-position:center top !important;
  background-color:#fff !important;
}

/* Slightly increase the visual emphasis of the service section overall. */
.services-v2 .service-card .service-divider{
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
}

@media(max-width:900px){
  .services-v2 .service-card{
    grid-template-rows:auto 30px auto !important;
  }
  .services-v2 .service-card .service-photo{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:1.84 / 1 !important;
    background-size:100% auto !important;
  }
}


/* v6.5 GOLD — website lead capture after estimate */
.lead-capture[hidden]{
  display:none !important;
}
.lead-capture{
  margin-top:22px;
  padding:24px;
  border:1px solid rgba(3,27,51,.12);
  border-radius:18px;
  background:#fff;
}
.lead-capture-intro{
  margin-bottom:18px;
}
.lead-capture-intro .eyebrow{
  margin-bottom:6px;
}
.lead-capture-intro h3{
  margin:0 0 8px;
  color:var(--navy);
}
.lead-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 16px;
}
.lead-grid .field-full{
  grid-column:1/-1;
}
.lead-form label{
  display:block;
  min-height:0 !important;
  height:auto !important;
  margin:14px 0 7px !important;
  font-weight:800;
  font-size:14px;
  line-height:1.25;
}
.lead-form input,
.lead-form textarea{
  width:100%;
  box-sizing:border-box;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--ink);
  font:inherit;
}
.lead-form input{
  min-height:52px;
}
.lead-form textarea{
  resize:vertical;
  min-height:104px;
}
.lead-form input:focus,
.lead-form textarea:focus{
  outline:2px solid rgba(7,82,155,.18);
  border-color:var(--blue);
}
.optional{
  color:var(--muted);
  font-weight:600;
}
.lead-honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
#leadSubmitButton{
  margin-top:18px;
}
#leadSubmitButton:disabled{
  opacity:.62;
  cursor:not-allowed;
}
.lead-privacy{
  margin:10px 2px 0;
}
.lead-form-status{
  margin-top:14px;
  font-weight:800;
  line-height:1.4;
}
.lead-form-status.is-success{
  padding:14px 16px;
  border-radius:12px;
  background:#eef7f0;
}
.lead-form-status.is-error{
  padding:14px 16px;
  border-radius:12px;
  background:#fff1f0;
}

@media(max-width:640px){
  .lead-grid{
    grid-template-columns:1fr;
  }
  .lead-grid .field-full{
    grid-column:auto;
  }
  .lead-capture{
    padding:20px 16px;
  }
}


/* v6.8 GOLD — balanced footer layout */
.footer-grid-balanced{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(240px,1.15fr) minmax(0,1fr) !important;
  gap:42px !important;
  align-items:center !important;
  padding-top:34px !important;
  padding-bottom:28px !important;
}
.footer-column{
  min-width:0;
}
.footer-services{
  text-align:left;
  justify-self:start;
}
.footer-brand{
  text-align:center;
  justify-self:center;
  max-width:360px;
}
.footer-brand .footer-logo{
  display:block;
  margin:0 auto 14px !important;
  max-width:230px;
  width:100%;
  height:auto;
}
.footer-brand p{
  margin:0 auto;
  max-width:330px;
  line-height:1.55;
}
.footer-contact{
  text-align:left;
  justify-self:end;
  min-width:260px;
}
.footer-contact p,
.footer-services p{
  margin:10px 0 0;
  line-height:1.5;
}
.site-footer .copyright{
  padding-left:24px !important;
  padding-right:24px !important;
}

@media(max-width:860px){
  .footer-grid-balanced{
    grid-template-columns:1fr !important;
    gap:28px !important;
    text-align:center !important;
  }
  .footer-services,
  .footer-brand,
  .footer-contact{
    justify-self:center !important;
    text-align:center !important;
    min-width:0;
    max-width:520px;
  }
}
