/* ============================================================
   XTERMAPRO — v29 Hotfix Stylesheet
   Loaded AFTER upgrade.css so it wins on conflicts.
   ============================================================ */

/* ── STOP HORIZONTAL SCROLL ON iOS SAFARI (v60) ──
   Minimal lock. The body already had overflow-x:hidden; adding the
   same to html plus position:relative on body is the canonical
   iOS Safari fix and contains any rubber band without clipping
   in page text. Earlier (v59) we also clipped sections and direct
   body children which was clipping legitimate content (stat tiles,
   etc.); those rules were removed. */
html{overflow-x:hidden !important;max-width:100%;}
body{overflow-x:hidden !important;position:relative;width:100%;max-width:100%;}

/* ── Mobile: keep the stat tiles inside their cells (v60) ──
   The hero stats bar uses .stat-val at 36px which is too wide for
   unbreakable strings like "Same-Day" on a phone, so the text was
   spilling sideways. Shrink the value and centre the whole tile so
   it always fits inside its grid cell. */
@media(max-width:620px){
  .stats-inner .stat{
    padding:18px 12px;
    gap:10px;
    justify-content:center;
    text-align:left;
  }
  .stats-inner .stat-ico{
    width:42px;height:42px;font-size:18px;
  }
  .stats-inner .stat-ico.fa-stat i{font-size:18px;}
  .stats-inner .stat-val{
    font-size:22px;line-height:1.05;
    word-break:break-word;
  }
  .stats-inner .stat-lbl{font-size:10px;letter-spacing:.06em;}
}

/* ── Global light container ── */
.container,
.interior-hero-wrap,
.entity-wrap,
.breadcrumb-wrap{
  max-width:1180px;margin:0 auto;padding:0 22px;
}

/* ── Interior hero (dark gradient) ── */
.interior-hero{
  background:linear-gradient(135deg, #0d1a0e 0%, #1e4220 60%, #2e5c32 100%);
  color:#fff;
  padding:80px 0 70px;
  text-align:center;
  overflow:hidden;
  position:relative;
}
/* Kill the angled dark shape from style.css that was clipping hero content */
.interior-hero::before,
.interior-hero::after{
  content:none !important;
  display:none !important;
  background:none !important;
  clip-path:none !important;
}
.interior-hero .interior-hero-wrap,
.interior-hero .container{
  position:relative;
  z-index:3;
  max-width:1180px;
  margin:0 auto;
  padding:0 22px;
}
.interior-hero h1{
  font-size:44px;line-height:1.15;margin:0 0 16px;
  color:#fff;font-weight:800;
}
.interior-hero .lead{
  font-size:18px;line-height:1.7;color:rgba(255,255,255,0.88);
  max-width:780px;margin:0 auto 18px;
}
.interior-hero .price-anchor{margin:14px auto 18px;}
.interior-hero .contact-btn-row{max-width:680px;margin:18px auto 22px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.interior-hero .trust-bar{
  list-style:none;padding:0;margin:18px 0 0;
  display:flex;flex-wrap:wrap;gap:22px;justify-content:center;
  font-size:13px;color:rgba(255,255,255,0.82);font-weight:600;
}
.interior-hero .trust-bar li{display:flex;align-items:center;gap:8px;}
.interior-hero .trust-bar i{color:#c8961e;}

/* ── Entity intro block (light card, works on any bg) ── */
.interior-hero + .entity-block,
.entity-block{
  background:#fff;
  border:1px solid #eee;
  border-left:4px solid #c8961e;
  color:#22303a;
  padding:26px 30px;border-radius:10px;
  max-width:1180px;margin:36px auto;
  box-shadow:0 6px 22px rgba(0,0,0,0.06);
}
.entity-block p{color:#22303a;font-size:16px;line-height:1.75;margin:0;}
.entity-block .eb-label{
  color:#c8961e;font-size:12px;font-weight:800;
  letter-spacing:0.12em;text-transform:uppercase;margin-bottom:10px;
}
.entity-wrap{max-width:1180px;margin:0 auto;}

/* ── Sign / signs of pest grid ── */
.sign-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;margin-top:28px;
}
.sign-card{
  background:#fff;border:1px solid #eef0ec;border-radius:10px;
  padding:26px 22px;text-align:left;
  transition:box-shadow .2s, transform .2s;
}
.sign-card:hover{box-shadow:0 10px 30px rgba(30,66,32,0.08);transform:translateY(-2px);}
.sign-card i{font-size:26px;color:#c8961e;margin-bottom:12px;display:block;}
.sign-card h3{font-size:17px;color:#1e4220;margin:0 0 8px;font-weight:700;}
.sign-card p{color:#4a5259;font-size:14px;line-height:1.65;margin:0;}

/* ── Process list (used on raccoon and squirrel pages inside .process-section dark bg) ── */
.process-list{
  counter-reset:step;list-style:none;padding:0;margin:28px auto 0;
  max-width:820px;
}
.process-list li{
  counter-increment:step;position:relative;
  background:#fff;border-radius:10px;padding:22px 22px 22px 70px;
  margin-bottom:12px;color:#394049;line-height:1.7;font-size:15px;
  border:1px solid #eef0ec;
}
.process-list li::before{
  content:counter(step);
  position:absolute;left:20px;top:20px;
  width:36px;height:36px;border-radius:50%;
  background:#c8961e;color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:16px;
}
.process-list li strong{color:#1e4220;}

/* ── IPM info section on commercial page (light bg, dark text) ── */
.ipm-section{background:#fff;padding:60px 0;}
.ipm-section .container{max-width:980px;}
.ipm-section h2{color:#1e4220;text-align:center;margin-bottom:18px;font-size:30px;}
.ipm-section p{color:#394049;font-size:16px;line-height:1.8;margin:0 0 14px;}

/* ── Generic info section (light cream bg, dark readable text) ──
   Used on raccoon and squirrel pages for the Signs and Why sections. */
.info-section{background:#f6f4ef;padding:60px 0;}
.info-section .container{max-width:1180px;}
.info-section h2{color:#1e4220;text-align:center;margin-bottom:20px;font-size:30px;}
.info-section p{color:#394049;font-size:16px;line-height:1.8;margin:0 0 14px;}

/* ── Hide all decorative icons inside sign-cards (user preference) ── */
.sign-card > i,
.sign-card > i.fas,
.sign-card > i.fa-solid,
.sign-card > i[class*="fa-"]{
  display:none !important;
}

/* ── Boost faint process text so step descriptions read clearly on dark bg ── */
.process-section .sh p{color:rgba(255,255,255,0.78) !important;}
.process-section .ps h4{color:#fff !important;}
.process-section .ps p{color:rgba(255,255,255,0.78) !important;}

/* ── Process section heading is white on dark bg even when not wrapped in .sh.
   Raccoon and squirrel pages place the h2 directly inside .container. ── */
.process-section > .container > h2,
.process-section > h2{
  color:#fff !important;
  text-align:center;
  margin-bottom:22px;
}

/* ── Why us (default light theme, cream bg) ── */
.why-us{background:#fff;padding:70px 0;}
.why-us h2{color:#1e4220;text-align:center;margin-bottom:8px;}
.why-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;margin-top:28px;
}
.why-card{
  background:#f9f8f4;border-radius:10px;padding:26px 22px;
  border-top:3px solid #c8961e;
}
.why-card h3{font-size:17px;color:#1e4220;margin:0 0 10px;font-weight:700;}
.why-card p{color:#4a5259;font-size:14px;line-height:1.7;margin:0;}

/* ── Reviews section (default light theme, cream bg) ── */
.reviews-section{background:#f6f4ef;padding:70px 0;}
.reviews-section h2{color:#1e4220;text-align:center;margin-bottom:8px;}
.review-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:20px;margin-top:28px;
}
.review-card{
  background:#fff;border-radius:10px;padding:26px 24px;
  border:1px solid #eef0ec;
  box-shadow:0 2px 10px rgba(0,0,0,0.03);
}
.review-card .stars{color:#f5b400;font-size:18px;letter-spacing:2px;margin-bottom:10px;}
.review-card p{color:#394049;font-size:15px;line-height:1.7;font-style:italic;margin:0 0 14px;}
.review-card .review-meta{font-size:12px;color:#7a8087;font-weight:600;letter-spacing:0.04em;}

/* ── Industries grid (commercial page default light) ── */
.industries-section{background:#fff;padding:70px 0;}
.industries-section h2{color:#1e4220;text-align:center;margin-bottom:8px;}
.ind-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;margin-top:28px;
}
.ind-card{
  background:#f9f8f4;border-radius:10px;padding:26px 22px;
  border-left:4px solid #c8961e;
  transition:transform .18s;
}
.ind-card:hover{transform:translateY(-3px);}
.ind-card i{font-size:26px;color:#c8961e;margin-bottom:10px;display:block;}
.ind-card h3{font-size:16px;color:#1e4220;margin:0 0 8px;font-weight:700;}
.ind-card p{color:#4a5259;font-size:14px;line-height:1.65;margin:0;}

/* ── Programs grid (commercial page default light) ── */
.programs-section{background:#f6f4ef;padding:70px 0;}
.programs-section h2{color:#1e4220;text-align:center;margin-bottom:8px;}
.program-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:22px;margin-top:28px;
}
.program-card{
  background:#fff;border-radius:12px;padding:28px 26px;
  border:1px solid #eef0ec;
  text-align:left;
}
.program-card.featured{
  border:2px solid #c8961e;
  box-shadow:0 10px 28px rgba(200,150,30,0.14);
  transform:translateY(-4px);
}
.program-card h3{font-size:20px;color:#1e4220;margin:0 0 6px;font-weight:800;}
.program-card .price-anchor{margin:0 0 16px;}
.program-card ul{list-style:none;padding:0;margin:0 0 16px;}
.program-card li{
  padding:8px 0 8px 24px;position:relative;
  color:#394049;font-size:14px;line-height:1.5;
  border-bottom:1px dashed #eef0ec;
}
.program-card li::before{
  content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;left:0;top:9px;color:#c8961e;font-size:12px;
}
.program-card .program-fit{
  color:#7a8087;font-size:13px;font-style:italic;margin:0;
  padding-top:8px;border-top:1px solid #eef0ec;
}

/* ── Price anchor ── */
.interior-hero .price-anchor{
  background:rgba(255,255,255,0.12);color:#fff;
  border:1px solid rgba(200,150,30,0.5);
  font-size:14px;padding:10px 20px;border-radius:8px;display:inline-block;
}
.interior-hero .price-anchor strong{color:#ffd76a;font-size:18px;margin:0 6px;}
.interior-hero .price-anchor span{
  color:rgba(255,255,255,0.78);font-size:12px;font-weight:500;
  letter-spacing:0.02em;text-transform:none;
}
section:not(.interior-hero) .price-anchor{
  background:rgba(200,150,30,0.12);color:#1e4220;
  border:1px solid rgba(200,150,30,0.3);
  display:inline-block;padding:8px 16px;border-radius:8px;
}
section:not(.interior-hero) .price-anchor strong{color:#1e4220;font-size:18px;}
section:not(.interior-hero) .price-anchor span{
  color:#7a8087;font-size:12px;font-weight:500;
  letter-spacing:0.02em;text-transform:none;
}

/* ── Final CTA (dark gradient, works across site) ── */
.cta-final{
  background:linear-gradient(135deg, #0d1a0e 0%, #1e4220 60%, #2e5c32 100%);
  color:#fff;padding:70px 0;text-align:center;
  border-top:1px solid rgba(200,150,30,0.25);
}
.cta-final h2{color:#fff !important;font-size:30px;margin:0 0 12px;}
.cta-final p{color:rgba(255,255,255,0.88);font-size:17px;margin:0 0 24px;}
.cta-final .contact-btn-row{max-width:680px;margin:0 auto;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.contact-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:8px;font-weight:700;font-size:15px;text-decoration:none;transition:transform .15s, background .15s;}
.contact-btn.btn-call{background:#c8961e;color:#fff;}
.contact-btn.btn-call:hover{background:#b3821a;transform:translateY(-1px);}
.contact-btn.btn-sms{background:#25D366;color:#fff;}
.contact-btn.btn-sms:hover{background:#1ebe5a;transform:translateY(-1px);}
.contact-btn.btn-wa{background:rgba(255,255,255,0.08);color:#fff;border:1px solid rgba(200,150,30,0.4);}
.contact-btn.btn-wa:hover{background:rgba(200,150,30,0.15);transform:translateY(-1px);}

/* ── Breadcrumbs (light cream, readable on cream body) ── */
.breadcrumbs{
  background:#f6f4ef;
  border-bottom:1px solid #eef0ec;
  color:#7a8087;
  padding:12px 0;
}
.breadcrumbs a{color:#1e4220;font-weight:600;}
.breadcrumbs a:hover{color:#c8961e;text-decoration:underline;}
.breadcrumbs .sep{color:#c8cdd0;margin:0 6px;}
.breadcrumbs .current{color:#22303a;font-weight:700;}
.breadcrumb-wrap{max-width:1180px;margin:0 auto;padding:0 22px;}

/* ── Author bio (light card) ── */
.author-bio{
  background:#fff;border-left:4px solid #c8961e;
  padding:26px 28px;border-radius:10px;
  max-width:1180px;margin:40px auto;
  box-shadow:0 4px 20px rgba(0,0,0,0.05);
}
.author-bio .container{padding:0;max-width:none;}
.author-bio h3{color:#1e4220;font-size:18px;margin:0 0 10px;}
.author-bio p{color:#394049;font-size:15px;line-height:1.7;margin:0;}
.author-bio strong{color:#1e4220;}

/* ── Neighborhood section (dark bg, already styled in style.css) ── */
.neigh-section h2{color:#fff;}
.neigh-section p{color:rgba(255,255,255,0.82);}
.neigh-section .container{max-width:1180px;}

/* ── Trust bar (outside hero) ── */
.trust-bar{list-style:none;padding:0;margin:0;
  display:flex;flex-wrap:wrap;gap:18px;
}
.trust-bar li{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;}

/* ── FAQ accordion animation (beats style.css display:none) ── */
.faq-q{cursor:pointer;}
.faq-q i{
  transition:transform .2s ease;
  color:#c8961e;font-size:14px;
  margin-left:10px;flex-shrink:0;
}
.faq-item.open .faq-q i,
.faq-q.open i{transform:rotate(180deg);}
/* Force faq-a to be displayed so max-height can animate. */
body .faq-a,
.faq-section .faq-a,
.faq-item .faq-a{
  display:block !important;
  max-height:0;overflow:hidden;
  padding:0 22px;
  transition:max-height .3s ease, padding .2s ease;
}
body .faq-item.open .faq-a,
.faq-section .faq-item.open .faq-a,
.faq-item.open .faq-a,
.faq-q.open + .faq-a{max-height:1000px;padding:14px 22px 22px;}
.faq-q.open span, .faq-q.open .faq-q-icon{transform:rotate(45deg);}

/* FAQ section on commercial-style light pages */
.faq-section{background:#f6f4ef;padding:60px 0;}
.faq-section h2{color:#1e4220;text-align:center;margin-bottom:28px;}
.faq-section .container{max-width:880px;}
.faq-section .faq-item{background:#fff;border:1px solid #eef0ec;border-radius:8px;overflow:hidden;margin-bottom:10px;}
.faq-section .faq-q{background:#fff;color:#1e4220;border:none;width:100%;text-align:left;padding:18px 22px;font-size:15px;font-weight:700;display:flex;justify-content:space-between;align-items:center;}
.faq-section .faq-q:hover{background:#faf9f4;}
.faq-section .faq-a{background:#faf9f4;color:#394049;font-size:15px;line-height:1.7;}
.faq-section .faq-a p{color:#394049;margin:0;}

/* ── Sticky call killed site wide (v62) ──
   The gold 24/7 Call bar was showing on narrow browser widths and
   clashed with the mobile sticky CTA. Removed globally. The three
   button mobile sticky CTA (.mobile-sticky-cta) stays. */
.sticky-call{display:none !important;}

/* ── Logo rendering ── */
.brand-logo-img,
.footer-logo{
  max-height:52px;width:auto;height:auto;
  image-rendering:-webkit-optimize-contrast;
  image-rendering:crisp-edges;
}
.footer-logo{max-height:64px;margin-bottom:14px;}

/* ── Responsive ── */
@media (max-width:720px){
  .interior-hero h1{font-size:30px;}
  .interior-hero .lead{font-size:15px;}
}

/* ── Nav link wrapping (prevent Protection Plan two-line stack) ── */
.nav-links a,
.nav .nav-links a,
.nav-item > a{
  white-space:nowrap !important;
}
.nav-links{
  flex-wrap:nowrap !important;
}
@media (max-width:1200px){
  .nav-links a,
  .nav .nav-links a{
    padding:8px 10px !important;
    font-size:13px !important;
    letter-spacing:.02em !important;
  }
}
@media (max-width:1040px){
  .nav-links a,
  .nav .nav-links a{
    padding:8px 8px !important;
    font-size:12px !important;
  }
}

/* ── Stat icons: consistent gold-framed tiles on dark bars ── */
.stat-ico,
.stat-ico.fa-stat{
  width:58px !important;
  height:58px !important;
  background:rgba(200,150,30,.12) !important;
  border:1px solid rgba(200,150,30,.35) !important;
  border-radius:12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.stat-ico i,
.stat-ico.fa-stat i{
  color:var(--gold) !important;
  font-size:26px !important;
  line-height:1 !important;
}

/* ── Hide any remaining pest icon decorations sitewide ── */
.rpc-ico,
.pci,
.pest-pick .fa-bug,
.pest-pick .fa-spider,
.pest-pick .fa-paw,
.pest-pick .fa-mouse,
.pest-pick .fa-mosquito,
.pest-pick .fa-locust,
.pest-pick .fa-tree,
.pest-card > i,
.related-pest-card > i,
.sign-card > i.fa-paw,
.ind-card > i.fa-utensils,
.ind-card > i.fa-warehouse,
.ind-card > i.fa-hotel,
.ind-card > i.fa-hospital,
.ind-card > i.fa-building,
.ind-card > i.fa-school,
.stat-ico.fa-stat .fa-bug,
.stat-ico.fa-stat .fa-paw,
.stat-ico.fa-stat .fa-mouse,
.stat-ico.fa-stat .fa-spider,
.stat-ico.fa-stat .fa-mosquito,
.stat-ico.fa-stat .fa-locust{
  display:none !important;
}

/* ── Contrast safety: make sure no default text becomes invisible ──
   Reset inherited near-black default text on sections that override
   backgrounds to light cream so it reads crisply. */
.why-us, .why-us h2, .why-us p,
.reviews-section, .reviews-section h2,
.industries-section, .industries-section h2,
.programs-section, .programs-section h2,
.faq-section{color:inherit;}

/* ── Commercial page alternating sections: make the two white sections
   slightly distinguishable from the cream sections so the page has
   the same rhythm as the rest of the site ── */
.industries-section{background:#fff;}
.why-us{background:#fff;}
.reviews-section{background:#f6f4ef;}
.programs-section{background:#f6f4ef;}
.faq-section{background:#fff;}
.faq-section .faq-item{background:#fff;border:1px solid #eef0ec;}

/* ── Footer social icons row ────────────────────────────────────── */
.f-socials{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
  flex-wrap:wrap;
}
.f-socials-label{
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  margin-right:4px;
}
.f-social{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:16px;
  transition:background .15s ease, color .15s ease, transform .15s ease;
  text-decoration:none;
}
.f-social:hover,
.f-social:focus{
  background:var(--gold, #c9a646);
  color:#0d1a0e;
  transform:translateY(-1px);
}
.f-social i{display:inline-block;}

/* ── Fix: interior hero paragraph stuck to left edge ──────────────
   style.css gives .interior-hero p a max-width of 580px but no auto
   margin, so the paragraph block hugs the left despite the hero's
   text-align:center. Center the block and its inline text. */
.interior-hero p{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
  max-width:780px;
}
.interior-hero .container > p,
.interior-hero .interior-hero-wrap > p{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
  max-width:780px;
}
.interior-hero .call-cta{
  margin-left:auto;
  margin-right:auto;
}

/* ── Unlinked city chips (no dedicated page yet but we do service) ── */
.neigh-chip-static{
  cursor:default;
  opacity:.72;
}
.neigh-chip-static:hover{
  background:rgba(255,255,255,.04);
  color:inherit;
  transform:none;
}

/* ── Global FAQ contrast fix ──
   Ensure FAQ answer panels on every page use the cream background with dark
   slate text so the copy is readable regardless of whether the page is
   wrapped in .faq-section or falls back to style.css defaults. */
.faq-a,
body .faq-a,
.faq-item .faq-a{
  background:#faf9f4 !important;
}
.faq-a,
.faq-a p,
.faq-a li,
.faq-a span,
.faq-a a,
body .faq-a p,
.faq-item .faq-a p{
  color:#394049 !important;
}
.faq-a a{
  color:#1e4220 !important;
  font-weight:700;
}
.faq-a a:hover{
  color:#c8961e !important;
}

/* ── Bed bugs FAQ section (matches commercial/protection FAQ styling) ── */
#faq{background:#f6f4ef;padding:60px 0;}
#faq .container{max-width:880px;}
#faq h2{color:#1e4220;text-align:center;margin-bottom:28px;}

/* ── Hide mobile sticky call per user preference ── */
@media (max-width:720px){
  .sticky-call{display:none !important;}
}

/* ── Mobile header call bar: stack content, shrink phone ── */
@media (max-width:600px){
  .hc-head{
    flex-direction:column !important;
    align-items:center !important;
    text-align:center !important;
    gap:6px !important;
    padding:14px 18px !important;
  }
  .hc-head > *{margin:0 !important;}
  .hc-head-num,
  .hc-head a.hc-head-num{
    font-size:24px !important;
    line-height:1.15 !important;
    word-break:keep-all;
  }
  .hc-head-sub,
  .hc-head .hc-head-sub{
    font-size:12px !important;
  }
}

/* ── FAQ question: let text shrink/wrap so mobile doesn't clip ── */
.faq-q{
  min-width:0 !important;
  align-items:flex-start !important;
  gap:12px;
}
.faq-q > span:first-child,
.faq-q .faq-q-text{
  min-width:0 !important;
  flex:1 1 auto !important;
  white-space:normal !important;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.4;
}
.faq-q i,
.faq-q .faq-q-icon{
  flex:0 0 auto !important;
  margin-top:2px;
}
@media (max-width:600px){
  .faq-section .faq-q,
  .faq-q{
    font-size:14px !important;
    padding:14px 16px !important;
  }
}

/* v47 - 2x2 reviews grid on desktop to fit 4 real reviews cleanly */
@media (min-width: 901px) {
  .reviews-section .rv-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    max-width: 1000px;
    margin: 0 auto;
  }
}

/* v48 - Author bio card for blog posts */
.author-bio-section{background:#f6f4ef;padding:48px 0;}
.author-bio-card{max-width:780px;margin:0 auto;background:#fff;border:1.5px solid #eaeaea;border-radius:14px;padding:28px;display:flex;gap:22px;align-items:flex-start;box-shadow:0 4px 18px rgba(0,0,0,.04);}
.author-bio-avatar{flex:0 0 72px;width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#1e4220,#2a5a2d);color:#fff;font-size:32px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.author-bio-body{flex:1 1 auto;min-width:0;}
.author-bio-label{font-size:12px;letter-spacing:1.5px;color:#c8961e;font-weight:700;text-transform:uppercase;margin-bottom:6px;}
.author-bio-name{font-size:20px;color:#22303a;margin:0 0 10px 0;font-weight:700;}
.author-bio-text{color:#394049;line-height:1.6;font-size:15px;margin:0 0 14px 0;}
.author-bio-meta{display:flex;flex-wrap:wrap;gap:8px;}
.author-bio-badge{background:#f6f4ef;color:#1e4220;font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px;border:1px solid #e4e1d8;}
@media (max-width: 600px){
  .author-bio-card{flex-direction:column;padding:22px;}
  .author-bio-avatar{flex:0 0 64px;width:64px;height:64px;font-size:28px;}
}

/* ── v51: Mobile sticky CTA bar (phones only) ── */
.mobile-sticky-cta{display:none;}
@media (max-width: 900px){
  .mobile-sticky-cta{
    display:flex;
    position:fixed;
    bottom:0;left:0;right:0;
    z-index:9999;
    background:#0e1a0e;
    border-top:1px solid rgba(200,150,30,0.35);
    box-shadow:0 -4px 14px rgba(0,0,0,0.35);
    padding:8px;
    gap:6px;
    padding-bottom:calc(8px + env(safe-area-inset-bottom));
  }
  .mobile-sticky-cta .msc-btn{
    flex:1;
    display:flex;align-items:center;justify-content:center;
    gap:6px;padding:12px 6px;
    border-radius:8px;
    font-weight:700;font-size:13px;
    text-decoration:none;color:#fff;
    min-height:44px;line-height:1;
  }
  .mobile-sticky-cta .msc-btn i{font-size:16px;}
  .mobile-sticky-cta .msc-call{background:#c8961e;}
  .mobile-sticky-cta .msc-call:active{background:#b3821a;}
  .mobile-sticky-cta .msc-text{background:#1d7a3f;}
  .mobile-sticky-cta .msc-text:active{background:#176334;}
  .mobile-sticky-cta .msc-wa{background:#25D366;}
  .mobile-sticky-cta .msc-wa:active{background:#1ebe5a;}
  body{padding-bottom:72px;}
}

/* ── v52: Related Services section ── */
.related-services{background:#f6f4ef;padding:56px 0;border-top:1px solid #eef0ec;}
.related-services .rs-head{text-align:center;max-width:680px;margin:0 auto 32px;}
.related-services .rs-head h2{color:#1e4220;font-size:30px;margin:8px 0 12px;}
.related-services .rs-head p{color:#4a5560;font-size:16px;line-height:1.6;}
.rs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1080px;margin:0 auto;}
.rs-card{
  display:block;background:#fff;border:1px solid #e4e1d8;border-radius:12px;
  padding:22px 22px 20px;text-decoration:none;color:inherit;
  transition:transform .15s, box-shadow .15s, border-color .15s;
}
.rs-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(30,66,32,0.12);border-color:#c8961e;}
.rs-card-title{color:#1e4220;font-size:18px;font-weight:800;margin-bottom:8px;}
.rs-card-blurb{color:#4a5560;font-size:14px;line-height:1.5;margin-bottom:14px;}
.rs-card-arrow{color:#c8961e;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0.3px;}
.rs-card-arrow::after{content:" →";}
@media (max-width: 900px){
  .rs-grid{grid-template-columns:1fr;}
  .related-services{padding:40px 0;}
}

/* v54 exit intent CSS removed in v57 (SAVE25 overlay deprecated) */

/* ── v55: City page enrichment ── */
.city-neighbourhoods .sh.c{max-width:680px;margin:0 auto 22px;}
.city-neighbourhoods .sh.c h2{font-size:28px;margin:8px 0 12px;}
.city-neigh-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:900px;margin:0 auto;}
.city-neighbourhoods .area-pill{
  background:#fff;border:1px solid #e4e1d8;color:#1e4220;
  padding:10px 18px;border-radius:999px;font-weight:700;font-size:14px;
}
.city-profile{padding:56px 0;}
.city-profile .cp-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.city-profile .cp-text h2{font-size:28px;margin:8px 0 14px;}
.city-profile .cp-text p{font-size:16px;margin:0 0 18px;}
.city-profile .cp-list{margin:0 0 4px;padding:0;}
.city-profile .cp-list li{color:#22303a;font-size:15px;line-height:1.55;margin-bottom:8px;}
.city-profile .cp-map iframe{display:block;box-shadow:0 10px 30px rgba(30,66,32,0.12);}
@media (max-width: 900px){
  .city-profile .cp-grid{grid-template-columns:1fr;gap:30px;}
  .city-profile{padding:40px 0;}
}
/* Native details based FAQ on city pages */
.faq-section .faq-list details.faq-item{
  background:#fff;border:1px solid #eef0ec;border-radius:10px;
  margin-bottom:10px;overflow:hidden;transition:box-shadow .15s;
}
.faq-section .faq-list details.faq-item[open]{box-shadow:0 4px 18px rgba(0,0,0,0.08);border-color:#d9d3c5;}
.faq-section .faq-list details.faq-item summary{
  list-style:none;cursor:pointer;
  padding:18px 56px 18px 22px;
  font-weight:700;color:#1e4220;font-size:16px;
  position:relative;line-height:1.4;
}
.faq-section .faq-list details.faq-item summary::-webkit-details-marker{display:none;}
.faq-section .faq-list details.faq-item summary::after{
  content:"+";position:absolute;top:50%;right:20px;
  transform:translateY(-50%);
  width:28px;height:28px;border-radius:50%;
  background:#f6f4ef;color:#c8961e;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:700;transition:transform .2s, background .2s, color .2s;
}
.faq-section .faq-list details.faq-item[open] summary::after{
  content:"+";transform:translateY(-50%) rotate(45deg);background:#c8961e;color:#fff;
}
.faq-section .faq-list details.faq-item .faq-answer{padding:0 22px 20px;}
.faq-section .faq-list details.faq-item .faq-answer p{color:#4a5560;font-size:15px;line-height:1.6;margin:0;}

/* v58: Humanized hero. Small price label + primary Call CTA + small secondary text links. */
.hero-price-label{
  display:inline-flex;align-items:center;gap:6px;
  font-size:14px;color:rgba(255,255,255,0.85);
  margin:8px 0 14px;letter-spacing:0.3px;
}
.hero-price-label i{color:#c8961e;font-size:13px;}
.hero-price-label strong{color:#ffd76a;font-weight:800;margin:0 2px;}
section:not(.interior-hero):not(.hero) .hero-price-label{color:#4a5560;}
section:not(.interior-hero):not(.hero) .hero-price-label strong{color:#1e4220;}

.hero-secondary-links{
  font-size:14px;color:rgba(255,255,255,0.75);
  margin:14px 0 0;text-align:center;
  letter-spacing:0.2px;
}
.hero-secondary-links a{
  color:#25D366;font-weight:700;text-decoration:none;
  border-bottom:1px dotted rgba(37,211,102,0.5);
  padding-bottom:1px;
}
.hero-secondary-links a:hover{
  color:#1ebe5a;border-bottom-color:#1ebe5a;
}
.interior-hero .hero-price-label{justify-content:center;width:100%;}
.interior-hero .hero-secondary-links{margin-top:16px;}
@media (max-width:600px){
  .hero-price-label{font-size:13px;}
  .hero-secondary-links{font-size:13px;}
}

/* ── Icon-only Text us / WhatsApp / Email buttons (v61) ──
   Replaces the plain underlined "Text us" / "WhatsApp" / "email"
   text links inside .hero-secondary-links with small circular icon
   buttons. Keeps the "Prefer to text?" intro as plain text.
   The dotted underline rule above does not apply here because
   .hsl-icon overrides text-decoration and border-bottom. */
.hero-secondary-links .hsl-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;
  margin:0 4px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:50%;
  color:#7bc47f;
  font-size:15px;
  text-decoration:none !important;
  border-bottom:1px solid rgba(255,255,255,0.18) !important;
  padding:0;
  vertical-align:middle;
  transition:background .15s, color .15s, border-color .15s, transform .12s;
}
.hero-secondary-links .hsl-icon:hover,
.hero-secondary-links .hsl-icon:focus{
  background:rgba(255,255,255,0.16);
  border-color:rgba(255,255,255,0.32) !important;
  color:#fff;
  transform:translateY(-1px);
}
.hero-secondary-links .hsl-icon-wa{color:#25D366;}
.hero-secondary-links .hsl-icon-wa:hover,
.hero-secondary-links .hsl-icon-wa:focus{color:#34E075;}

/* On the rare light hero variant the dark icons show through better */
section:not(.interior-hero):not(.hero) .hero-secondary-links .hsl-icon{
  background:rgba(30,66,32,0.08);
  border-color:rgba(30,66,32,0.18);
  color:#1e4220;
  border-bottom:1px solid rgba(30,66,32,0.18) !important;
}
section:not(.interior-hero):not(.hero) .hero-secondary-links .hsl-icon:hover{
  background:rgba(30,66,32,0.16);color:#0d1a0e;
}
section:not(.interior-hero):not(.hero) .hero-secondary-links .hsl-icon-wa{color:#1ebe5a;}

@media(max-width:600px){
  .hero-secondary-links .hsl-icon{width:36px;height:36px;font-size:16px;margin:0 3px;}
}
