

:root{
  /* ---- brand colors ---- */
  --c-primary:        #0B5D3B;
  --c-primary-dark:   #08412A;
  --c-primary-light:  #E8F3EC;
  --c-secondary:      #222222;
  --c-secondary-soft: #3A3F3D;
  --c-accent:         #FF6B35;
  --c-accent-dark:    #E2531F;
  --c-bg:             #FFFFFF;
  --c-bg-alt:         #F6F8F6;
  --c-text:           #20231F;
  --c-text-muted:     #5C6660;
  --c-border:         #E7EBE7;
  --c-light-muted:    rgba(255,255,255,.78);

  /* ---- type ---- */
  --font-heading: 'Manrope', sans-serif;
  --font-body: 'Inter', sans-serif;

  /* ---- shape / motion ---- */
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --shadow-sm: 0 4px 16px rgba(20,30,24,.06);
  --shadow-md: 0 14px 36px rgba(20,30,24,.10);
  --shadow-lg: 0 24px 60px rgba(20,30,24,.16);
  --ease: cubic-bezier(.22,.61,.36,1);
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
  font-family: var(--font-body);
  color: var(--c-text);
  background: var(--c-bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  padding-top: 38px;
  overflow-x: hidden;
}

main, .site-footer{ overflow-x: clip; }
h1,h2,h3,h4,h5,h6{
  font-family: var(--font-heading);
  color: var(--c-secondary);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
h2{ font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.7rem); font-weight: 800; }
h3{ font-size: 1.25rem; font-weight: 700; }
p{ margin-bottom: 0; }
a{ text-decoration: none; color: var(--c-primary); }
img{ max-width: 100%; display: block; }
:focus-visible{ outline: 3px solid var(--c-accent); outline-offset: 2px; }

.skip-link{
  position: absolute; left: -9999px; top: 0; z-index: 2000;
  background: var(--c-accent); color:#fff; padding: .75rem 1.25rem; font-weight:700; border-radius: 0 0 var(--radius-sm) 0;
}
.skip-link:focus{ left: 0; }

.text-accent{ color: var(--c-accent); }
.text-light{ color: #fff; }
.text-light-muted{ color: var(--c-light-muted); }

/* ---- buttons ---- */
.btn{ border-radius: var(--radius-sm); font-weight: 600; padding: .65rem 1.4rem; transition: transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease); }
.btn-lg{ padding: .9rem 1.9rem; font-size: 1.02rem; }
.btn:active{ transform: translateY(1px); }

.btn-accent{
  background: var(--c-accent); border: none; color: #fff;
  box-shadow: 0 10px 24px rgba(255,107,53,.32);
  position: relative; overflow: hidden;
}
.btn-accent:hover{ background: var(--c-accent-dark); color:#fff; transform: translateY(-2px); box-shadow: 0 16px 32px rgba(255,107,53,.4); }
/* ripple */
.btn-accent::after{
  content:""; position:absolute; inset:0; border-radius: inherit;
  background: radial-gradient(circle, rgba(255,255,255,.55) 0%, transparent 60%);
  opacity:0; transform: scale(0); transition: transform .5s var(--ease), opacity .5s var(--ease);
}
.btn-accent:active::after{ opacity:1; transform: scale(2.2); transition: 0s; }

.btn-primary-brand{ background: var(--c-primary); border:none; color:#fff; }
.btn-primary-brand:hover{ background: var(--c-primary-dark); color:#fff; transform: translateY(-2px); }

.btn-outline-light{ border: 1.5px solid rgba(255,255,255,.65); color:#fff; backdrop-filter: blur(4px); }
.btn-outline-light:hover{ background:#fff; color: var(--c-secondary); }

.eyebrow{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family: var(--font-heading); font-weight:700; font-size:.78rem;
  letter-spacing: .12em; text-transform: uppercase; color: var(--c-primary);
  background: var(--c-primary-light); padding: .35rem .85rem; border-radius: 999px; margin-bottom: 1rem;
}
.eyebrow-light{ background: rgba(255,255,255,.14); color:#fff; backdrop-filter: blur(6px); }

.section{ padding: clamp(3.5rem, 3rem + 2vw, 6rem) 0; }
.section-alt{ background: var(--c-bg-alt); }
.section-dark{ background: var(--c-secondary); }
.section-head{ max-width: 720px; margin-inline:auto; margin-bottom: 3rem; }
.section-sub{ color: var(--c-text-muted); font-size: 1.05rem; }



/* Prevent ANY child from punching out of the fixed header */
.site-header{
  position: fixed; top:0; left:0; right:0; z-index: 1030;
  overflow: hidden;              
  max-width: 100vw;
}

.topbar{
  background: var(--c-secondary);
  color: #d7dad8;
  font-size: .85rem;
  padding: .45rem 0;
  overflow: hidden;               
}

/* Inner wrapper */
.topbar-inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  flex-wrap: nowrap;
  min-width: 0;
  overflow: hidden;
}

.topbar-left{
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
}

.topbar-pill{
  background: var(--c-accent);
  color: #fff;
  padding: .18rem .6rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .75rem;
  white-space: nowrap;
  flex-shrink: 0;
}

.topbar-item{
  white-space: nowrap;
  font-size: .78rem;
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.topbar-item i{ color: var(--c-accent); margin-right: .3rem; }

/* Right holds phone + social + button */
.topbar-right{
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-shrink: 0;                
  min-width: 0;
}

.topbar-social{
  display: flex;
  gap: .5rem;
  flex-shrink: 0;
}
.topbar-social a{ color: #d7dad8; font-size: .9rem; }
.topbar-social a:hover{ color: var(--c-accent); }

.topbar-phone{
  color: #fff;
  font-weight: 600;
  white-space: nowrap;
  font-size: .82rem;
  flex-shrink: 1;
}
.topbar-phone i{ color: var(--c-accent); margin-right: .3rem; }

/* Topbar CTA button always hidden by default, shown selectively */
.topbar-call-btn{
  display: none;
  padding: .22rem .75rem;
  font-size: .75rem;
  flex-shrink: 0;
  white-space: nowrap;
}

/* =========================================================
   2. NAVIGATION 
========================================================= */

.main-nav{
  position: relative;
  z-index: 1031;
  background: transparent;
  padding: 1rem 0;
  transition: background .35s var(--ease), padding .35s var(--ease), box-shadow .35s var(--ease);
  overflow: visible;             
}
.main-nav.scrolled{
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-sm);
  padding: .5rem 0;
}


.navbar-brand{
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-shrink: 0;
  min-width: 0;
}
.brand-icon{
  flex-shrink: 0;
}


/* Nav links  */
.main-nav .nav-link{
  font-weight: 600;
  color: var(--c-secondary);
  font-size: .9rem;
  padding: .48rem .75rem !important;
  position: relative;
  white-space: nowrap;
}
.main-nav:not(.scrolled) .nav-link{ color: #fff; }
.main-nav .nav-link::after{
  content: "";
  position: absolute;
  left: .75rem; right: .75rem; bottom: .22rem;
  height: 2px;
  background: var(--c-accent);
  transform: scaleX(0);
  transition: transform .25s var(--ease);
}
.main-nav .nav-link:hover::after{ transform: scaleX(1); }

/* CTA button in nav */
.nav-cta{
  padding: .52rem 1.15rem !important;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Hamburger */
.navbar-toggler{
  border: none;
  color: var(--c-secondary);
  font-size: 1.55rem;
  padding: .25rem .4rem;
  flex-shrink: 0;
}
.main-nav:not(.scrolled) .navbar-toggler{ color: #fff; }
.navbar-toggler:focus{ box-shadow: none; }

/* Collapsed mobile menu panel */
.navbar-collapse.show,
.navbar-collapse.collapsing{
  background: #fff;
  border-radius: var(--radius-md);
  margin-top: .65rem;
  padding: 1rem;
  box-shadow: var(--shadow-md);
}
.navbar-collapse.show .nav-link,
.navbar-collapse.collapsing .nav-link{ color: var(--c-secondary) !important; }

/* =========================================================
   BREAKPOINTS — header & topbar
========================================================= */

/* 1280px */
@media (max-width: 1280px){
  .main-nav .nav-link{ padding: .44rem .6rem !important; font-size: .86rem; }
  .nav-cta{ padding: .48rem .95rem !important; }
  .topbar-inner{ gap: .5rem; }
}

/* ── 1100px*/
@media (max-width: 1100px){
  .header-logo{ width: 170px; height: 100px; }
  .main-nav .nav-link{ padding: .4rem .48rem !important; font-size: .82rem; }
  .nav-cta{ padding: .44rem .8rem !important; font-size: .82rem; }
  .topbar-left{ gap: .5rem; }
  .topbar-right{ gap: .5rem; }
}

/* ── 1040px: the critical fix zone ── */
@media (max-width: 1040px){
  .header-logo{ width: 170px; height: 100px; }
  .main-nav .nav-link{ padding: .38rem .38rem !important; font-size: .8rem; }
  .nav-cta{ padding: .4rem .7rem !important; font-size: .8rem; }
  .topbar-social{ display: none !important; }
}

/*  992px
   */
@media (max-width: 991.98px){
  .main-nav{ padding: .75rem 0; }
  .main-nav.scrolled{ padding: .4rem 0; }
  .header-logo{ width: 160px; height: 100px; }
  .navbar-collapse.show .nav-cta,
  .navbar-collapse.collapsing .nav-cta{
    display: block;
    width: 100%;
    text-align: center;
    padding: .75rem 1rem !important;
    font-size: .95rem;
    margin-top: .5rem;
  }

  /* Topbar: show Call Now button, hide phone number text */
  .topbar-call-btn{ display: inline-flex; }
  .topbar-phone{ display: none; }
  .topbar-pill{ display: flex; }  
  .topbar-inner{ gap: .5rem; }
}

/* ── 768px */
@media (max-width: 767.98px){
  .topbar-pill{ display: none; }
  .topbar-left{ display: inline-flex; }
  .topbar-right{ margin-left: auto; gap: .4rem; }
  .topbar-phone{ display: none; }
  .navbar-brand{ min-width: 0; max-width: calc(100% - 56px); }
  .brand-text strong{ font-size: 1rem; }
}

/* ── 480px */
@media (max-width: 480px){
  .topbar-right{ gap: .3rem; }
  .header-logo{ width: 140px; height: 90px; }
  .brand-text strong{ font-size: .92rem; }
  .topbar-social{ display: none !important; }
}

/* ── 360px */
@media (max-width: 360px){
  .brand-text{ display: none; }
  .topbar-call-btn{ padding: .16rem .5rem; }
}

/* =========================================================
   MOBILE STICKY BUTTONS 
========================================================= */
.mobile-sticky-bar{
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 1040;
  background: #fff;
  box-shadow: 0 -8px 24px rgba(0,0,0,.12);
  padding: .55rem .75rem calc(.55rem + env(safe-area-inset-bottom));
  gap: .55rem;
  display: none;                 
  overflow: hidden;
  max-width: 100vw;
}
.mobile-sticky-btn{
  flex: 1 1 0;                   
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .78rem .5rem;
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: .88rem;
  background: var(--c-primary);
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}
.mobile-sticky-accent{ background: var(--c-accent); }

@media (max-width: 767.98px){
  body{ padding-bottom: 68px; }
}
@media (max-width: 380px){
  .mobile-sticky-btn{ font-size: .8rem; gap: .3rem; padding: .72rem .35rem; }
}


/* =========================================================
   3. HERO
========================================================= */
.hero{ position: relative; color:#fff; padding-top: 7.5rem; padding-bottom: 0; overflow:hidden; }
.hero-media{ position:absolute; inset:0; z-index:-1; }
.hero-img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(115deg, rgba(8,30,20,.92) 0%, rgba(8,30,20,.74) 38%, rgba(11,30,22,.42) 70%, rgba(11,30,22,.28) 100%);
}
.hero-content{ padding-bottom: 5rem; padding-top: 1.5rem; }
.hero-title{ color:#fff; font-size: clamp(2.3rem, 1.9rem + 2.6vw, 3.8rem); font-weight:800; margin-bottom:1.3rem; }
.hero-sub{ font-size: 1.12rem; color: var(--c-light-muted); max-width: 620px; margin-bottom: 2rem; }
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom: 2rem; }
.hero-badges{ display:flex; gap:.85rem; flex-wrap:wrap; }
.hero-badge{
  display:inline-flex; align-items:center; gap:.45rem;
  background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(6px); padding:.5rem .9rem; border-radius:999px; font-size:.85rem; font-weight:600;
}
.hero-badge small{ opacity:.75; font-weight:500; }

.hero-stats{
  position:relative; background: rgba(8,22,16,.55); backdrop-filter: blur(8px);
  border-top: 1px solid rgba(255,255,255,.14); padding: 1.8rem 0;
}
.stat-number{ font-family: var(--font-heading); font-weight:800; font-size: clamp(1.8rem, 1.5rem + 1vw, 2.6rem); color:#fff; }
.stat-label{ font-size:.82rem; color: var(--c-light-muted); text-transform:uppercase; letter-spacing:.06em; font-weight:600; margin-top:.2rem; }

/* =========================================================
   4. TRUST BAR
========================================================= */
.trust-bar{ background:#fff; border-bottom:1px solid var(--c-border); padding: 1.1rem 0; }
.trust-row{ display:flex; flex-wrap:wrap; justify-content:center; gap: 1.6rem 2.4rem; }
.trust-chip{ display:flex; align-items:center; gap:.5rem; font-weight:600; font-size:.86rem; color: var(--c-secondary-soft); white-space:nowrap; }
.trust-chip i{ color: var(--c-primary); font-size:1.05rem; }

/* =========================================================
   5. WHY CHOOSE US
========================================================= */
.why-card{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md);
  padding: 2rem 1.6rem; height:100%; transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.why-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: transparent; }
.why-icon{
  width:58px; height:58px; border-radius: var(--radius-sm); display:grid; place-items:center;
  background: var(--c-primary-light); color: var(--c-primary); font-size:1.5rem; margin-bottom:1.1rem;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.why-card:hover .why-icon{ background: var(--c-primary); color:#fff; }
.why-card h3{ margin-bottom:.5rem; }
.why-card p{ color: var(--c-text-muted); font-size:.95rem; }

/* =========================================================
   6. SERVICES
========================================================= */
.service-card{
  background:#fff; border-radius: var(--radius-md); overflow:hidden; height:100%;
  box-shadow: var(--shadow-sm); transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  border: 1px solid var(--c-border);
}
.service-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-lg); }
.service-img{ position:relative; height: 190px; overflow:hidden; }
.service-img img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.service-card:hover .service-img img{ transform: scale(1.08); }
.service-icon{
  position:absolute; bottom: -22px; left: 1.4rem; width:48px; height:48px; border-radius:14px;
  background: var(--c-accent); color:#fff; display:grid; place-items:center; font-size:1.25rem;
  box-shadow: 0 8px 18px rgba(255,107,53,.35);
}
.service-body{ padding: 2rem 1.4rem 1.5rem; }
.service-body h3{ margin-bottom:.5rem; }
.service-body p{ color: var(--c-text-muted); font-size:.94rem; margin-bottom: 1rem; min-height: 3.4em; }
.service-link{
  background:none; border:none; padding:0; color: var(--c-primary); font-weight:700; font-size:.9rem;
  display:inline-flex; align-items:center; gap:.4rem; cursor:pointer; transition: gap .2s var(--ease), color .2s var(--ease);
}
.service-link:hover{ gap:.7rem; color: var(--c-accent); }

/* =========================================================
   7. BEFORE / AFTER SLIDER
========================================================= */
.ba-slider{ max-width: 920px; }
.ba-slider-inner{
  position:relative; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow:hidden;
  box-shadow: var(--shadow-lg); cursor: ew-resize; user-select:none;
}
.ba-img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.ba-before{ filter: grayscale(.25) brightness(.85) sepia(.12); }
.ba-after-wrap{ position:absolute; inset:0; width:55%; overflow:hidden; border-right: 3px solid #fff; }
.ba-after-wrap .ba-img{ width: 100%; max-width: none; height:100%; object-fit: cover; position: absolute; top:0; left:0; right:0; bottom:0; }
.ba-handle{
  position:absolute; top:50%; left:55%; transform: translate(-50%,-50%);
  width:46px; height:46px; border-radius:50%; background:#fff; color: var(--c-secondary);
  display:grid; place-items:center; box-shadow: var(--shadow-md); font-size:1.1rem; pointer-events:none;
}
.ba-tag{ position:absolute; top:1rem; padding:.3rem .8rem; border-radius:999px; font-weight:700; font-size:.78rem; color:#fff; letter-spacing:.04em; text-transform:uppercase; }
.ba-tag-before{ left:1rem; background: rgba(34,34,34,.75); }
.ba-tag-after{ right:1rem; background: var(--c-primary); }
.ba-hint{ text-align:center; margin-top:1rem; color: var(--c-text-muted); font-size:.85rem; }

/* =========================================================
   8. PROCESS
========================================================= */
.process-track{ display:grid; grid-template-columns: repeat(2,1fr); gap: 2.2rem 1.8rem; }
@media (min-width: 768px){ .process-track{ grid-template-columns: repeat(3,1fr); } }
@media (min-width: 1100px){ .process-track{ grid-template-columns: repeat(6,1fr); gap: 1rem; } }
.process-step{ position:relative; text-align:center; padding: 1.6rem 1rem; }
.process-num{ font-family: var(--font-heading); font-weight:800; font-size:.85rem; color: var(--c-accent); letter-spacing:.1em; margin-bottom:.6rem; }
.process-icon{ font-size:2rem; color:#fff; display:block; margin-bottom:.9rem; }
.process-step h3{ color:#fff; font-size:1.05rem; margin-bottom:.4rem; }
.process-step p{ color: var(--c-light-muted); font-size:.86rem; }
.process-step:not(:last-child)::after{
  content:""; position:absolute; top:2.3rem; left:100%; width: 1.8rem; height:1px; background: rgba(255,255,255,.2);
  display:none;
}
@media (min-width:1100px){ .process-step:not(:last-child)::after{ display:block; } }

/* =========================================================
   9. PROJECTS / MASONRY GALLERY
========================================================= */
.gallery-filters{ display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin-bottom: 2.4rem; }
.filter-btn{
  border:1.5px solid var(--c-border); background:#fff; color: var(--c-secondary-soft);
  font-weight:600; font-size:.86rem; padding:.5rem 1.15rem; border-radius:999px; cursor:pointer;
  transition: all .25s var(--ease);
}
.filter-btn:hover{ border-color: var(--c-primary); color: var(--c-primary); }
.filter-btn.active{ background: var(--c-primary); border-color: var(--c-primary); color:#fff; }

.masonry-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 1rem; grid-auto-flow: dense; }
@media (min-width:768px){ .masonry-grid{ grid-template-columns: repeat(3,1fr); } }
.masonry-item{ position:relative; border-radius: var(--radius-md); overflow:hidden; aspect-ratio: 1/1; box-shadow: var(--shadow-sm); }
.masonry-item.tall{ grid-row: span 2; aspect-ratio: 1/2.1; }
@media (max-width: 767px){ .masonry-item.tall{ aspect-ratio:1/1; grid-row:auto; } }
.masonry-item img{ width:100%; height:100%; object-fit:cover; transition: transform .5s var(--ease); }
.masonry-item:hover img{ transform: scale(1.1); }
.masonry-item.hide{ display:none; }
.masonry-overlay{
  position:absolute; inset:0; background: linear-gradient(to top, rgba(8,20,14,.82), transparent 55%);
  color:#fff; display:flex; align-items:flex-end; padding: 1rem; font-weight:600; font-size:.88rem;
  opacity:0; transition: opacity .3s var(--ease); gap:.4rem;
}
.masonry-item:hover .masonry-overlay{ opacity:1; }

/* =========================================================
   10. REVIEWS
========================================================= */
.review-stars-big{ color: var(--c-accent); font-size:1.1rem; margin-top:.6rem; }
.review-stars-big strong{ color: var(--c-secondary); margin-left:.3rem; }
.reviewSwiper{ padding-bottom: 1rem; }
.review-card{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md);
  padding: 1.9rem; height: 100%; min-height: 260px; display:flex; flex-direction:column; box-shadow: var(--shadow-sm);
}
.review-stars{ color: var(--c-accent); margin-bottom: .9rem; font-size:.95rem; }
.review-card p{ color: var(--c-secondary-soft); font-size:.95rem; flex-grow:1; }
.review-author{ display:flex; align-items:center; gap:.75rem; margin-top:1.2rem; }
.review-avatar{
  width:42px; height:42px; border-radius:50%; background: var(--c-primary); color:#fff;
  display:grid; place-items:center; font-weight:700; font-size:.85rem; flex-shrink:0;
}
.review-author small{ color: var(--c-text-muted); }
.swiper-pagination-bullet{ background: var(--c-border); opacity:1; width:9px; height:9px; }
.swiper-pagination-bullet-active{ background: var(--c-primary); }

/* =========================================================
   11. VIDEO SECTION
========================================================= */
.video-section{ position:relative; min-height: 480px; display:flex; align-items:center; overflow:hidden; }
.video-poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.video-overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(8,20,14,.55), rgba(8,20,14,.78)); }
.video-content{ position:relative; z-index:1; width:100%; }
.play-btn{
  width:88px; height:88px; border-radius:50%; background: var(--c-accent); color:#fff;
  display:inline-grid; place-items:center; font-size:2rem; box-shadow: 0 0 0 0 rgba(255,107,53,.55);
  animation: pulse 2.4s infinite;
}
@keyframes pulse{
  0%{ box-shadow: 0 0 0 0 rgba(255,107,53,.5); }
  70%{ box-shadow: 0 0 0 26px rgba(255,107,53,0); }
  100%{ box-shadow: 0 0 0 0 rgba(255,107,53,0); }
}

/* =========================================================
   12. INSURANCE CLAIMS
========================================================= */
.insurance-steps{ display:flex; flex-direction:column; gap:1.3rem; }
.insurance-step{ display:flex; gap:1rem; align-items:flex-start; }
.insurance-step i{ font-size:1.4rem; color: var(--c-accent); background: var(--c-primary-light); width:52px; height:52px; border-radius: var(--radius-sm); display:grid; place-items:center; flex-shrink:0; }
.insurance-step h3{ font-size:1.02rem; margin-bottom:.2rem; }
.insurance-step p{ color: var(--c-text-muted); font-size:.92rem; }
.img-frame{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); }

/* =========================================================
   13. FINANCING
========================================================= */
.finance-card{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md);
  padding: 2.2rem 1.6rem; text-align:center; height:100%; position:relative; transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.finance-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.finance-featured{ border-color: var(--c-primary); box-shadow: var(--shadow-md); }
.finance-badge{ position:absolute; top:-13px; left:50%; transform: translateX(-50%); background: var(--c-accent); color:#fff; font-size:.72rem; font-weight:700; padding:.3rem .9rem; border-radius:999px; letter-spacing:.04em; text-transform:uppercase; }
.finance-icon{ font-size:2rem; color: var(--c-primary); margin-bottom:1rem; }
.finance-price{ font-family: var(--font-heading); font-weight:800; font-size:2.2rem; color: var(--c-secondary); margin: .4rem 0; }
.finance-price span{ font-size:1rem; font-weight:600; color: var(--c-text-muted); }
.finance-card p{ color: var(--c-text-muted); font-size:.92rem; }
.finance-disclaimer{ color: var(--c-text-muted); font-size:.78rem; max-width:700px; margin-inline:auto; }

/* =========================================================
   14. SERVICE AREA MAP
========================================================= */
.city-list{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns: repeat(2,1fr); gap:.7rem 1rem; }
.city-list li{ font-weight:600; color: var(--c-secondary-soft); font-size:.95rem; }
.city-list i{ color: var(--c-accent); margin-right:.5rem; }
.ms-map-wrap{ display:flex; justify-content:center; }
.ms-map{ width:100%; max-width: 420px; height:auto; }
.ms-shape{ fill: var(--c-primary-light); stroke: var(--c-primary); stroke-width:2; }
.ms-pin circle{ fill: var(--c-accent); stroke:#fff; stroke-width:2; cursor:pointer; transition: r .2s var(--ease); }
.ms-pin:hover circle{ r:9; }
.ms-pin .pin-main{ fill: var(--c-primary); }
.ms-pin text{ font-family: var(--font-body); font-size:11px; font-weight:600; fill: var(--c-secondary); text-anchor:middle; pointer-events:none; }
.ms-pin .pin-main-label{ font-weight:800; fill: var(--c-primary); font-size:12px; }

/* =========================================================
   15. FAQ
========================================================= */
.faq-accordion{ max-width: 820px; }
.accordion-item{ border:1px solid var(--c-border); border-radius: var(--radius-sm) !important; margin-bottom: .9rem; overflow:hidden; }
.accordion-button{ font-family: var(--font-heading); font-weight:700; font-size:1rem; color: var(--c-secondary); padding: 1.1rem 1.3rem; }
.accordion-button:not(.collapsed){ background: var(--c-primary-light); color: var(--c-primary); box-shadow:none; }
.accordion-button:focus{ box-shadow:none; }
.accordion-button::after{ filter: hue-rotate(0deg); }
.accordion-body{ color: var(--c-text-muted); font-size:.95rem; padding: 0 1.3rem 1.3rem; }

/* =========================================================
   16. LEAD GENERATION BAND
========================================================= */
.lead-gen{ position:relative; padding: 5rem 0; overflow:hidden; }
.lead-gen-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lead-gen-overlay{ position:absolute; inset:0; background: linear-gradient(120deg, rgba(8,30,20,.92), rgba(11,93,59,.78)); }
.lead-gen-content{ position:relative; z-index:1; max-width: 760px; margin-inline:auto; }
.lead-gen-content h2{ font-size: clamp(1.7rem, 1.4rem + 1.4vw, 2.4rem); margin: .6rem 0 1rem; }

/* =========================================================
   17. CONTACT
========================================================= */
.contact-form{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg); padding: 2rem; box-shadow: var(--shadow-sm); }
.form-label{ font-weight:600; font-size:.88rem; color: var(--c-secondary-soft); }
.form-control, .form-select{ border-radius: var(--radius-sm); border:1.5px solid var(--c-border); padding:.65rem .9rem; font-size:.95rem; }
.form-control:focus, .form-select:focus{ border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(11,93,59,.12); }
.form-microcopy{ text-align:center; font-size:.8rem; color: var(--c-text-muted); margin-top:.8rem; margin-bottom:0; }
.office-card{ background: var(--c-secondary); color:#fff; border-radius: var(--radius-lg); padding: 2rem; }
.office-card h3{ color:#fff; margin-bottom:1rem; }
.office-card h4{ color:#fff; font-size:1rem; margin: 1.5rem 0 .8rem; }
.office-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.9rem; }
.office-list a{ color:#fff; }
.office-list i{ color: var(--c-accent); margin-right:.6rem; width:18px; }
.hours-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; font-size:.9rem; }
.hours-list li{ display:flex; justify-content:space-between; color: rgba(255,255,255,.85); border-bottom: 1px solid rgba(255,255,255,.1); padding-bottom:.4rem; }
.map-frame{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); height: 220px; }
.map-frame iframe{ width:100%; height:100%; border:0; }

/* =========================================================
   18. FINAL CTA
========================================================= */
.final-cta{ position:relative; padding: 5.5rem 0; text-align:center; overflow:hidden; }
.final-cta-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.final-cta-overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(8,20,14,.82), rgba(8,20,14,.9)); }
.final-cta .container{ position:relative; z-index:1; }
.final-cta h2{ font-size: clamp(1.9rem, 1.5rem + 1.6vw, 2.8rem); margin-bottom: .8rem; }
.final-cta p{ max-width:560px; margin: 0 auto 2rem; font-size:1.05rem; }
.final-cta-buttons{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* =========================================================
   19. FOOTER
========================================================= */
.site-footer{ background: var(--c-secondary); color: rgba(255,255,255,.8); }
.footer-top{ padding: 4rem 0 2.5rem; }
.footer-logo{ height: 130px; margin-bottom: 1.1rem; }
.footer-about{ font-size:.92rem; color: rgba(255,255,255,.65); max-width:340px; }
.footer-social{ display:flex; gap:.7rem; margin-top:1.2rem; }
.footer-social a{ width:38px; height:38px; border-radius:50%; background: rgba(255,255,255,.08); color:#fff; display:grid; place-items:center; transition: background .25s var(--ease), transform .25s var(--ease); }
.footer-social a:hover{ background: var(--c-accent); transform: translateY(-3px); }
.site-footer h4{ color:#fff; font-size:1rem; margin-bottom: 1.1rem; }
.footer-links{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.65rem; font-size:.9rem; }
.footer-links a{ color: rgba(255,255,255,.7); }
.footer-links a:hover{ color: var(--c-accent); }
.footer-links i{ color: var(--c-accent); margin-right:.45rem; }
.footer-bottom{ border-top: 1px solid rgba(255,255,255,.1); padding: 1.2rem 0; font-size:.82rem; }
.footer-bottom a{ color: rgba(255,255,255,.65); }
.footer-bottom a:hover{ color: var(--c-accent); }

/* =========================================================
   FLOATING / STICKY CTAS
========================================================= */
.floating-ctas{ position:fixed; right: 1.6rem; bottom: 1.6rem; z-index: 1040; flex-direction:column; gap:.75rem; }
.fab{
  width:58px; height:58px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:1.35rem;
  box-shadow: var(--shadow-lg); transition: transform .25s var(--ease);
}
.fab:hover{ transform: scale(1.08); }
.fab-call{ background: var(--c-primary); }
.fab-estimate{ background: var(--c-accent); }

/* ---- exit intent modal ---- */
.exit-modal-content{ border-radius: var(--radius-lg); border:none; padding: 1rem; }
.exit-modal-icon{ font-size: 2.6rem; color: var(--c-primary); margin-bottom: .8rem; }

/* =========================================================
   RESPONSIVE TUNING (non-header sections)
========================================================= */
@media (max-width: 575.98px){
  .hero{ padding-top: 6.2rem; }
  .page-hero{ padding-top: 7rem; }
  .hero-title{ font-size: clamp(2rem, 1.6rem + 4vw, 2.6rem); }
  .hero-cta .btn{ width:100%; }
  .hero-cta{ flex-direction: column; }
  .final-cta-buttons .btn{ width:100%; }
  .final-cta-buttons{ flex-direction:column; }
  .city-list{ grid-template-columns: 1fr 1fr; }
}

/* lazy-load fade-in */
img[loading="lazy"]{ background: var(--c-bg-alt); }

/* =========================================================
   MULTI-PAGE ARCHITECTURE — SHARED INNER-PAGE COMPONENTS
   (services / about / projects / insurance-claims / reviews /
   faq / contact — all reuse the design tokens & components
   above; this block adds only what those pages need that the
   homepage didn't already define)
========================================================= */

/* ---- active nav state ---- */
.main-nav .nav-link.active{ color: var(--c-accent); }
.main-nav .nav-link.active::after{ transform: scaleX(1); background: var(--c-accent); }
.main-nav:not(.scrolled) .nav-link.active{ color: var(--c-accent); }

/* ---- breadcrumb ---- */
.breadcrumb-row{ position:relative; z-index:1; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-size:.85rem; font-weight:600; margin-bottom: 1.2rem; }
.breadcrumb-row a{ color: rgba(255,255,255,.78); }
.breadcrumb-row a:hover{ color:#fff; }
.breadcrumb-row .bi-chevron-right{ font-size:.65rem; color: rgba(255,255,255,.5); }
.breadcrumb-row .crumb-current{ color:#fff; opacity:.92; }

/* ---- inner page hero (shorter than homepage hero, no stat strip) ---- */
.page-hero{ position:relative; color:#fff; padding: 9.5rem 0 4.5rem; overflow:hidden; }
.page-hero .hero-media{ position:absolute; inset:0; z-index:-1; }
.page-hero .hero-img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.page-hero .hero-overlay{ position:absolute; inset:0; background: linear-gradient(120deg, rgba(8,30,20,.93) 0%, rgba(8,30,20,.8) 45%, rgba(11,30,22,.55) 100%); }
.page-hero-title{ color:#fff; font-size: clamp(2rem, 1.6rem + 2.2vw, 3.1rem); font-weight:800; margin-bottom:1rem; max-width: 760px; }
.page-hero-sub{ font-size:1.08rem; color: var(--c-light-muted); max-width: 620px; margin-bottom: 0; }
@media (max-width: 575.98px){ .page-hero{ padding-top: 7.6rem; } }

/* ---- generic CTA banner (final-cta variant reused across inner pages) ---- */
.cta-banner{ position:relative; padding: 4.5rem 0; text-align:center; overflow:hidden; }
.cta-banner-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cta-banner-overlay{ position:absolute; inset:0; background: linear-gradient(120deg, rgba(8,30,20,.93), rgba(11,93,59,.82)); }
.cta-banner .container{ position:relative; z-index:1; }
.cta-banner h2{ font-size: clamp(1.7rem, 1.4rem + 1.4vw, 2.4rem); margin-bottom:.7rem; }
.cta-banner p{ max-width:560px; margin:0 auto 1.8rem; font-size:1.02rem; }
.cta-banner-buttons{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ---- light (on-white) stat strip, for About / Contact pages ---- */
.stats-strip-light{ background: var(--c-primary); border-radius: var(--radius-lg); padding: 2.4rem 1.5rem; }
.stats-strip-light .stat-number{ color:#fff; }
.stats-strip-light .stat-label{ color: rgba(255,255,255,.82); }

/* ---- about: timeline ---- */
.about-timeline{ position:relative; max-width: 760px; margin-inline:auto; padding-left: 2.2rem; }
.about-timeline::before{ content:""; position:absolute; left: 7px; top:6px; bottom:6px; width:2px; background: var(--c-border); }
.timeline-item{ position:relative; padding-bottom: 2.2rem; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-dot{ position:absolute; left: -2.2rem; top:4px; width:16px; height:16px; border-radius:50%; background: var(--c-accent); border:3px solid #fff; box-shadow: 0 0 0 2px var(--c-accent); }
.timeline-year{ font-family: var(--font-heading); font-weight:800; color: var(--c-primary); font-size:.92rem; letter-spacing:.04em; margin-bottom:.2rem; }
.timeline-item h3{ font-size:1.08rem; margin-bottom:.3rem; }
.timeline-item p{ color: var(--c-text-muted); font-size:.92rem; }

/* ---- about: team ---- */
.team-card{ text-align:center; }
.team-photo{ width: 100%; aspect-ratio: 1/1; border-radius: var(--radius-md); overflow:hidden; margin-bottom: 1rem; box-shadow: var(--shadow-sm); }
.team-photo img{ width:100%; height:100%; object-fit:cover; transition: transform .5s var(--ease); }
.team-card:hover .team-photo img{ transform: scale(1.06); }
.team-card h3{ margin-bottom:.15rem; font-size:1.05rem; }
.team-role{ color: var(--c-accent); font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.5rem; display:block; }
.team-card p{ color: var(--c-text-muted); font-size:.88rem; }

/* ---- about: values ---- */
.value-pill{ display:inline-flex; align-items:center; gap:.5rem; background:#fff; border:1px solid var(--c-border); border-radius:999px; padding:.55rem 1.1rem; font-weight:600; font-size:.88rem; color: var(--c-secondary-soft); margin:.3rem; }
.value-pill i{ color: var(--c-accent); }

/* ---- projects: detailed project card ---- */
.project-detail-card{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); transition: box-shadow .3s var(--ease), transform .3s var(--ease); height:100%; }
.project-detail-card:hover{ box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.project-detail-img{ position:relative; height: 230px; overflow:hidden; }
.project-detail-img img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.project-detail-card:hover .project-detail-img img{ transform: scale(1.07); }
.project-detail-tag{ position:absolute; top:1rem; left:1rem; background: var(--c-primary); color:#fff; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:.3rem .8rem; border-radius:999px; }
.project-detail-body{ padding: 1.6rem; }
.project-detail-meta{ display:flex; flex-wrap:wrap; gap: .5rem 1.2rem; font-size:.82rem; color: var(--c-text-muted); margin-bottom:1rem; }
.project-detail-meta span{ display:inline-flex; align-items:center; gap:.35rem; font-weight:600; }
.project-detail-meta i{ color: var(--c-primary); }
.project-cs{ margin-top:1rem; padding-top:1rem; border-top:1px solid var(--c-border); }
.project-cs h4{ font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; color: var(--c-primary); margin-bottom:.3rem; font-weight:800; }
.project-cs p{ font-size:.88rem; color: var(--c-text-muted); margin-bottom: .8rem; }
.project-quote{ background: var(--c-primary-light); border-radius: var(--radius-sm); padding: 1rem 1.1rem; font-size:.86rem; font-style:italic; color: var(--c-secondary-soft); margin-top:1rem; }
.project-quote cite{ display:block; margin-top:.5rem; font-style:normal; font-weight:700; font-size:.8rem; color: var(--c-primary); }

/* ---- reviews: video placeholder card ---- */
.video-review-card{ position:relative; border-radius: var(--radius-md); overflow:hidden; aspect-ratio: 4/3; box-shadow: var(--shadow-sm); }
.video-review-card img{ width:100%; height:100%; object-fit:cover; }
.video-review-card .video-review-overlay{ position:absolute; inset:0; background: linear-gradient(0deg, rgba(8,20,14,.7), rgba(8,20,14,.15)); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; }
.video-review-overlay .play-btn{ width:58px; height:58px; font-size:1.3rem; }
.video-review-overlay span{ color:#fff; font-weight:700; font-size:.85rem; text-align:center; padding:0 1rem; }

/* ---- reviews: rating breakdown bars ---- */
.rating-bar-row{ display:flex; align-items:center; gap:.8rem; margin-bottom:.55rem; font-size:.85rem; font-weight:600; color: var(--c-secondary-soft); }
.rating-bar-row .bar-track{ flex:1; height:8px; border-radius:999px; background: var(--c-border); overflow:hidden; }
.rating-bar-row .bar-fill{ height:100%; background: var(--c-accent); border-radius:999px; }
.rating-summary-num{ font-family: var(--font-heading); font-weight:800; font-size:3.4rem; color: var(--c-secondary); line-height:1; }

/* ---- faq: search + category pills (reuses .filter-btn for pills) ---- */
.faq-search-wrap{ max-width: 560px; margin: 0 auto 2rem; position:relative; }
.faq-search-wrap input{ width:100%; padding: .85rem 1.2rem .85rem 2.8rem; border-radius: 999px; border:1.5px solid var(--c-border); font-size:.95rem; }
.faq-search-wrap input:focus{ outline:none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(11,93,59,.12); }
.faq-search-wrap i{ position:absolute; left: 1.1rem; top:50%; transform: translateY(-50%); color: var(--c-text-muted); }
.faq-no-results{ text-align:center; color: var(--c-text-muted); padding: 2rem 0; display:none; }
.faq-category-label{ font-family: var(--font-heading); font-weight:800; font-size:1.1rem; color: var(--c-secondary); margin: 2.4rem 0 1rem; }
.faq-category-label:first-of-type{ margin-top:0; }

/* ---- services page: alternating detail rows ---- */
.service-detail{ padding: 3.5rem 0; border-bottom: 1px solid var(--c-border); }
.service-detail:last-child{ border-bottom:none; }
.service-detail-img{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); }
.service-benefit-list{ list-style:none; padding:0; margin: 1.3rem 0; display:flex; flex-direction:column; gap:.7rem; }
.service-benefit-list li{ display:flex; align-items:flex-start; gap:.6rem; font-size:.94rem; color: var(--c-secondary-soft); }
.service-benefit-list i{ color: var(--c-primary); font-size:1.05rem; margin-top:.15rem; flex-shrink:0; }
.service-meta-row{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.2rem; }
.service-meta-chip{ background: var(--c-primary-light); color: var(--c-primary); font-weight:700; font-size:.78rem; padding:.35rem .85rem; border-radius:999px; }

/* ---- insurance-claims page: numbered detail steps (larger than homepage mini-steps) ---- */
.claim-step{ display:flex; gap:1.4rem; align-items:flex-start; padding: 1.6rem 0; border-bottom:1px solid var(--c-border); }
.claim-step:last-child{ border-bottom:none; }
.claim-step-num{ flex-shrink:0; width:54px; height:54px; border-radius:50%; background: var(--c-primary); color:#fff; display:grid; place-items:center; font-family: var(--font-heading); font-weight:800; font-size:1.2rem; }
.claim-step h3{ margin-bottom:.35rem; }
.claim-step p{ color: var(--c-text-muted); font-size:.94rem; }

/* ---- contact page: response-time / emergency banner ---- */
.response-banner{ display:flex; align-items:center; gap:1.2rem; background: var(--c-primary-light); border-radius: var(--radius-md); padding: 1.4rem 1.6rem; }
.response-banner i{ font-size:2rem; color: var(--c-primary); flex-shrink:0; }
.response-banner h3{ font-size:1.05rem; margin-bottom:.2rem; }
.response-banner p{ color: var(--c-text-muted); font-size:.88rem; margin:0; }

/* ---- generic two-col content section spacing helper ---- */
.lede{ font-size:1.08rem; color: var(--c-text-muted); max-width: 720px; }