/* Desktop/Laptop (exclude iPad landscape): shrink About hero block proportionally ~20% */
@media (min-width:1281px) {
  /* Services page hero: manual desktop sizing (wider + taller) */
  .services-page .services-hero-block {
    max-width: 955px !important; /* widen by 10px for desktop */
    padding-bottom: 25px !important; /* shortened by another 20px */
    margin-left: auto;
    margin-right: auto;
  }
  /* Desktop: keep only body paragraph visible; hide other children for staged rebuild */
  .services-page .services-hero-card > *:not(.services-subhead-desktop) { visibility:hidden !important; opacity:0 !important; }
  /* Reintroduce credentials bubble title (desktop) */
  .services-page .services-hero-card::before {
    content:"SERVICES CREDENTIALS" !important; /* wording retained */
    font-size:0.46rem !important; /* +15% from 0.40rem */
    letter-spacing:0.20em !important; /* slight tracking tighten for smaller size */
  }
  .services-page .services-hero-card::after { content:"" !important; display:none !important; }
  /* Preserve equal heights, trimmed by another 50px (total -100px) */
  .services-page .services-hero-card,
  .services-page .services-hero-image { min-height:420px !important; }
  /* Nudge entire Services hero section down slightly on desktop */
  body.services-page .sub-hero { margin-top: 17px; }
  /* Match About page hero top edge to Services page */
  body.about-page .sub-hero { margin-top: 17px; }
  .about-page .stack-block:last-of-type { margin-bottom: 0; padding-bottom: 0; }
  .about-page .about-hero-block {
    transform: none; /* removed scale(0.8) - let max-width control size */
    transform-origin: top center;
  }
  /* Move the 4 service cards - adjusted positioning */
  .about-page .services-grid {
    position: relative;
    top: -25px;
  }
  /* Move the estimate CTA card - adjusted positioning */
  .about-page .about-estimate-cta {
    position: relative;
    top: -85px;
    margin-bottom: -85px;
  }
  /* Hover effect for estimate CTA buttons to match service card blue */
  .about-page .about-estimate-cta .btn:hover {
    background: #c5e0ff !important;
    color: #08323a !important;
    box-shadow: 0 10px 24px rgba(0,0,0,0.12);
  }
  /* Tighten space before footer on desktop (calibrated) */
  .about-page .stack-block:last-of-type {
    margin-bottom: 0;
    padding-bottom: 0;
  }
}  /* Ultra-wide: apply same shrink to maintain visual balance */
  @media (min-width:2000px) {
    /* Services page hero: manual ultra-wide sizing (wider + taller) */
    .services-page .services-hero-block {
      max-width: 955px !important; /* keep ultra-wide consistent */
      padding-bottom: 25px !important;
      margin-left: auto;
      margin-right: auto;
    }
    /* Ultra-wide: keep only body paragraph visible; hide other children */
    .services-page .services-hero-card > *:not(.services-subhead-desktop) { visibility:hidden !important; opacity:0 !important; }
    /* Reintroduce credentials bubble title (ultra-wide) */
    .services-page .services-hero-card::before {
      content:"SERVICES CREDENTIALS" !important; /* wording retained */
      font-size:0.60rem !important; /* +15% from 0.52rem */
      letter-spacing:0.24em !important; /* proportionally reduced tracking */
    }
    .services-page .services-hero-card::after { content:"" !important; display:none !important; }
    .services-page .services-hero-card,
    .services-page .services-hero-image { min-height:420px !important; }
    /* Nudge entire Services hero section down slightly on ultra-wide */
    body.services-page .sub-hero { margin-top: 17px; }
    .about-page .stack-block:last-of-type { margin-bottom: 0; padding-bottom: 0; }
    .about-page .about-hero-block {
      transform: none; /* removed scale(0.8) - let max-width control size */
      transform-origin: top center;
    }
    /* Move the 4 service cards - adjusted positioning */
    .about-page .services-grid {
      position: relative;
      top: -25px;
    }
    /* Move the estimate CTA card - adjusted positioning */
    .about-page .about-estimate-cta {
      position: relative;
      top: -85px;
      margin-bottom: -85px;
    }
    /* Hover effect for estimate CTA buttons to match service card blue */
    .about-page .about-estimate-cta .btn:hover {
      background: #c5e0ff !important;
      color: #08323a !important;
      box-shadow: 0 10px 24px rgba(0,0,0,0.12);
    }
  }
  /* iPad portrait specific adjustment: shift About page estimate CTA upward */
  @media (min-width:768px) and (max-width:1366px) and (orientation:portrait) {
    .about-page .about-estimate-cta {
      position: relative; /* isolate movement without affecting siblings */
      top: -30px; /* visual lift only on iPad portrait */
    }
  }
  /* Laptop-only About page: widen container and equalize column heights */
  @media (min-width:1281px){
    /* Ensure wide containers on About page remain centered in laptop band */
    body.about-page .container.container-wide{
      margin-left:auto;
      margin-right:auto;
      float:none;
    }
    /* Center the company highlights grid within its container */
    body.about-page .services-grid{
      justify-content:center;
      margin-left:auto;
      margin-right:auto;
    }
    body.about-page .stack-block{
      margin-left:auto;
      margin-right:auto;
    }
    /* About page sub-hero: match Services page top margin */
    body.about-page .sub-hero{
      margin:17px auto 0 auto;
    }
  }
  body.contact-page .contact-inline-meta--bubble{
    display:none;
  }
/* Contact page callout and info card styles */
.contact-callout {
  background: linear-gradient(90deg, #e0f2ff 0%, #f0f8ff 100%);
  border-radius: 16px;
  padding: 1.2rem 2rem;
  margin: 1.5rem auto 2.5rem auto;
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 1.18rem;
  font-weight: 500;
  box-shadow: 0 2px 12px rgba(11,114,255,.07);
  max-width: 700px;
}
.callout-icon {
  font-size: 2rem;
  margin-right: 0.5rem;
}
.contact-info-card {
  background: #f8fbff;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(11,114,255,.07);
  padding: 1.5rem 2rem;
  max-width: 420px;
  margin: 2.5rem auto 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.contact-row {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 1.08rem;
}
.contact-icon {
  font-size: 1.5rem;
}
.contact-label {
  font-weight: 600;
  color: #0b72ff;
}
.contact-link {
  color: #0f2f42;
  text-decoration: none;
  font-weight: 500;
}
.contact-link:hover {
  text-decoration: underline;
  color: #45b7f6;
}

.contact-hero-inner{
  max-width:900px;
  margin:0 auto;
  text-align:center;
}
.contact-hero-card{
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  align-items:stretch;
}
.contact-hero-card-body{
  display:flex;
  flex-direction:column;
  gap:0.85rem;
  align-items:center;
}
.contact-hero-card-body .action-heading{
  margin-bottom:0.2rem;
}
.contact-hero-subhead{
  max-width:72ch;
  margin:0.5rem auto 0;
}
.contact-hero-card .contact-hero-quick-card{
  margin-top:1.25rem;
}
:root{
  --max-width:1100px;
  --accent:#0b72ff;
  --muted:#666;
  --bg:#ffffff;
  --radius:8px;
  --rgs-blue-grad: linear-gradient(90deg,#45b7f6 0%,#0b72ff 50%,#45b7f6 100%);
  /* Default left shift for large desktop hero alignment */
  --hero-offset: -9.5%;
  --rgs-android-shrink:1;
  --rgs-android-comp:1;
  --rgs-android-gap:0px;
}

/* Pause all animations until consent is accepted */
body.rgs-paused .divider-wave,
body.rgs-paused .hero-bubble,
body.rgs-paused .page-divider::before,
body.rgs-paused .page-content-blue,
body.rgs-paused .site-footer::before {
  animation-play-state: paused !important;
}

/* Hide hero content until consent is accepted */
body.rgs-paused .hero-canvas,
body.rgs-paused .hero-content-wrapper {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* GPU acceleration and compositor layer hints for smooth animations */
.hero-canvas {
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.divider-wave {
  will-change: transform;
  transform: translateZ(0);
}

.hero-bubble {
  will-change: transform, opacity;
  transform: translateZ(0);
}

.page-divider::before {
  will-change: transform;
  transform: translateZ(0);
}

.page-content-blue {
  will-change: opacity;
  transform: translateZ(0);
}

.site-footer::before {
  will-change: opacity;
  transform: translateZ(0);
}

*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;color:#111;background:#fff;}
.container{max-width:var(--max-width);margin:0 auto;padding:1rem}
/* Wider container option for feature sections that need more horizontal room */
.container-wide{max-width:1680px;padding-left:2rem;padding-right:2rem}
@media (min-width: 1536px){
  .container-wide{padding-left:2.5rem;padding-right:2.5rem}
}
.site-header {
  background: #d1d5db; /* slightly darker gray than previous */
  border-bottom: 1px solid #cbd5e1;
  box-shadow: 0 3px 20px rgba(0,0,0,0.06);
  position: sticky;
  top: 0;
  z-index: 500;
  backdrop-filter: blur(10px);
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  min-height: 80px;
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
  padding-left: 1rem;
  padding-right: 1rem;
  max-width: 100%;
}

/* Laptop band (approx 12–15.5in): shrink hero card ~10% only */
@media (min-width:1281px) and (max-width:1535px){
  .hero-cta .hero-bubble{transform:scale(0.9);transform-origin:center right;}
}

/* Laptop-only centering for About page sections */
@media (min-width:1281px){
  /* Laptop-only: ensure About heading spans both columns and centers */
  body.about-page .sub-hero .action-heading{
    grid-column:1 / -1 !important;
    text-align:center !important;
  }
  body.about-page main.page-blue > section.container,
  body.about-page main.page-blue > section.container-wide{
    margin-left:auto;
    margin-right:auto;
  }
  body.about-page .services-grid{
    justify-content:center;
    margin-left:auto;
    margin-right:auto;
  }
  /* Laptop-only: shift founder credentials content downward by ~50px */
  body.about-page .sub-hero .about-subhead-desktop{
    padding-top: calc(50px + 1.28rem) !important; /* add ~50px on top of current laptop padding */
  }
}

/* =============================================================
   Laptop band (approx 12–15.5") — subtle hero shrink
   Keeps phones/tablets unaffected
   ============================================================= */
@media (min-width:1281px) and (max-width:1535px){
  /* Nudge the hero video and bubble down ~10% for this band */
  .hero-cta .hero-media{ transform:scale(0.9); transform-origin:center left; }
  .hero-cta .hero-bubble{ transform:scale(0.9); transform-origin:center right; }
  /* Preserve crispness on canvas/video */
  .hero-cta .hero-canvas{ image-rendering:auto; }
}

/* =============================================================
   Android-specific polish (Huawei, Pixel, etc.)
   Keeps the refined iPhone portrait treatment intact while
   removing the extreme scale/offset rules that were tuned for
   iOS-only breakpoints.
   ============================================================= */
@media (max-width:520px){
  html.rgs-android{
    --android-scale: var(--rgs-android-shrink, 1);
    --android-gap: var(--rgs-android-gap, 0px);
    width:100% !important;
    overflow-x:hidden !important;
  }
  html.rgs-android body{
    width:auto !important;
    margin:0 !important;
    overflow-x:hidden !important;
  }
  html.rgs-android .site-header .container{
    flex-wrap:wrap !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;
    padding:0.35rem 0.75rem !important;
    min-height:64px !important;
    gap:0.4rem !important;
  }
  html.rgs-android .header-left{
    order:1 !important;
    width:auto !important;
    margin:0 !important;
    gap:0.45rem !important;
    justify-content:flex-start !important;
    flex:1 1 auto !important;
    min-width:0 !important;
  }
  html.rgs-android .brand{
    font-size:1.32rem !important;
    letter-spacing:0.005em !important;
    white-space:nowrap !important;
  }
  html.rgs-android .header-tagline{
    order:3 !important;
    width:100% !important;
    font-size:0.92rem !important;
    padding:0.2rem 0 !important;
    text-align:center !important;
  }
  html.rgs-android .nav-toggle{
    order:2 !important;
    margin-left:auto !important;
    align-self:center !important;
    flex:0 0 auto !important;
    padding:0.15rem 0.25rem !important;
    min-width:2.25rem !important;
  }
  html.rgs-android .idaho-logo-wrap{
    width:48px !important;
    height:48px !important;
    padding:2px !important;
  }
  html.rgs-android .idaho-logo{
    width:32px !important;
    height:32px !important;
  }
  html.rgs-android .hero-cta{margin-top:0 !important;}
  html.rgs-android .hero-cta > .container.hero-inner{
    width:100% !important;
    max-width:560px !important;
    padding:0 !important;
    margin:0 auto !important;
    box-sizing:border-box !important;
  }
  html.rgs-android .hero-content-wrapper{
    padding:0 !important;
    gap:1.2rem !important;
    transform:none !important;
    width:100% !important;
    margin:0 auto !important;
    flex-direction:column !important;
    align-items:center !important;
  }
  html.rgs-android .hero-bubble-section{padding:0 !important;transform:none !important;}
  html.rgs-android .hero-bubble{
    width:100% !important;
    max-width:90% !important;
    padding:2.1rem 2rem !important;
    margin:0 auto !important;
    transform:none !important;
    gap:1.4rem !important;
  }
  html.rgs-android .hero-bubble .cta-heading{
    font-size:1.05rem !important;
  }
  html.rgs-android .hero-bubble .primary-ctas{
    gap:1rem !important;
  }
  html.rgs-android .hero-bubble .cta-primary{
    padding:1.5rem 2rem !important;
  }
  html.rgs-android .hero-bubble .cta-primary .label{
    font-size:1rem !important;
  }
  html.rgs-android .hero-media{
    width:100% !important;
    max-width:100% !important;
    margin:0 auto !important;
    left:0 !important;
    right:0 !important;
    padding:0 !important;
    transform:none !important;
  }
  html.rgs-android .hero-video-wrap{
    width:100% !important;
    padding:0 calc(0.75rem * var(--android-scale, 1)) !important;
    box-sizing:border-box !important;
    margin:0 auto !important;
  }
  html.rgs-android .hero-video{
    width:100% !important;
    max-width:520px !important;
    min-width:0 !important;
    border-radius:12px !important;
    margin:0 auto !important;
  }
  html.rgs-android .hero-canvas{
    width:100% !important;
    min-width:0 !important;
    max-width:520px !important;
    margin:0 auto !important;
    transform:none !important;
    display:block !important;
    min-height:0 !important;
    height:auto !important;
    aspect-ratio:16 / 9 !important; /* preserve iPhone video proportions */
  }
  html.rgs-android .site-header{
    overflow:visible !important;
  }
  html.rgs-android .site-header .main-nav{
    padding:0 0.35rem !important;
    gap:0.3rem !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    max-width:100% !important;
    left:0 !important;
    right:0 !important;
  }
  html.rgs-android .site-header .main-nav a{
    font-size:0.92rem !important;
    padding:0.45rem 0.55rem !important;
    min-width:0 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    flex:1 1 0 !important;
    text-align:center !important;
  }

}

/* Honor Magic 5 Lite viewport is ~360px (1080px / 3.0 DPR).
   When the runtime bucket detects <=380 CSS px, apply tighter spacing everywhere. */
@media (max-width:520px){
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-cta > .container.hero-inner{
    padding:0 0.5rem !important;
    max-width:360px !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-bubble{
    padding:calc(1rem * var(--android-scale, 1)) calc(0.75rem * var(--android-scale, 1)) !important;
    max-width:360px !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-bubble .cta-heading{font-size:1.05rem !important;}
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-bubble .cta-primary{
    padding:calc(0.7rem * var(--android-scale, 1)) calc(0.75rem * var(--android-scale, 1)) !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-bubble .cta-primary .label{font-size:0.88rem !important;}
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-video-wrap{
    padding:0 0.5rem !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-video,
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-canvas{
    max-width:360px !important;
    min-height:0 !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-media{margin:0 auto !important;}

  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .regional-hero[class*="regional-hero--"] .hero-content{
    padding:0.65rem 0.65rem !important;
    max-width:360px !important;
    text-align:center !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .regional-hero[class*="regional-hero--"] .hero-content h1{
    font-size:1.8rem !important;
    line-height:1.1 !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .regional-hero[class*="regional-hero--"] .hero-tagline{
    font-size:0.88rem !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .regional-hero[class*="regional-hero--"] .hero-cta-btn{
    width:auto !important;
    min-width:0 !important;
    font-size:0.9rem !important;
    padding:0.72rem 1.25rem !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .regional-showcase[class*="regional-showcase--"] .coverage-card,
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .regional-showcase[class*="regional-showcase--"] .coupon-card,
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .regional-showcase[class*="regional-showcase--"] .weather-widget{
    padding:0.7rem 0.75rem !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .coverage-panel .stat{
    padding:0.45rem !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .blue-headline{
    font-size:1.75rem !important;
  }
  html.rgs-android:is(.rgs-width-380,.rgs-width-360,.rgs-width-340) .hero-bubble .secondary-ctas{
    gap:0.35rem !important;
  }
}
/* Header left section: logo + brand */
.header-left {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-left: 2rem;
}

.brand {
  font-weight: 700;
  background: linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-decoration: none;
  font-size: 1.68rem; /* +20% from 1.4rem */
  letter-spacing: 0.02em;
  margin-right: 0;
}

/* Header center tagline */
.header-tagline {
  margin: 0;
  color: #08323a;
  font-size: 1.05rem;
  font-weight: 600;
  text-align: center;
  flex-grow: 1;
  padding: 0 1rem;
  opacity: 0.9;
}

/* Laptop: prevent initial reflow by absolutely centering tagline */
@media (min-width:1281px){
  .site-header{ position:relative; }
  .site-header .header-tagline{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    margin:0;
    text-align:center;
    white-space:nowrap;
    pointer-events:none; /* ensure nav remains clickable under overlap */
  }
}

.main-nav {
  margin-left: 0;
  margin-right: 2rem;
  display: flex;
  gap: 0.5rem;
  padding: 0.4rem;
  border-radius: 10px;
  background: rgba(227,245,255,0.5);
}
.main-nav a {
  color: #08323a;
  background: rgba(255,255,255,0.8);
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  transition: all 0.2s ease;
  min-width: 90px;
  text-align: center;
  border: 1px solid transparent;
}
.main-nav a:hover, .main-nav a:focus {
  background: linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(11,114,255,0.2);
}
.nav-toggle {
  display: none;
  background: transparent;
  border: 0;
  font-size: 1.6rem;
  margin-left: 1.2rem;
  color: var(--accent);
  cursor: pointer;
}
.hero{padding:1.6rem 0;text-align:center;background:transparent}
.hero h1{margin:0 0 .5rem;font-size:2rem}
.hero .lead{color:var(--muted);margin-bottom:1rem}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:6px;text-decoration:none}
.hero-cta{background:#ffffff;color:#08323a;padding:0;margin-top:-3rem}
.hero-cta > .container.hero-inner{padding-top:0;padding-left:4rem;padding-right:4rem}
.hero-cta .hero-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem}
.top-ctas{display:flex;gap:.9rem;justify-content:center;margin-top:1rem;flex-wrap:wrap}
.cta-pill{display:inline-flex;align-items:center;gap:.6rem;background:#cfeff6;color:#08323a;padding:.65rem 1.3rem;border-radius:10px;text-decoration:none;box-shadow:0 4px 0 rgba(0,0,0,0.06);font-weight:600;min-width:150px;justify-content:center;font-size:1.05rem}
.cta-pill .icon{font-size:1.15rem}
.cta-pill:hover{transform:translateY(-2px);box-shadow:0 8px 10px rgba(0,0,0,0.08)}
.cta-pill:active{transform:translateY(0);box-shadow:0 4px 0 rgba(0,0,0,0.06)}

/* Main navigation CTAs (Homeowner/Builder) - larger and more prominent */
.main-ctas{display:flex;gap:1.2rem;justify-content:center;margin-top:.8rem;flex-wrap:wrap}
.cta-pill-large{display:inline-flex;align-items:center;gap:1rem;background:#cfeff6;color:#08323a;padding:1rem 2.5rem;border-radius:12px;text-decoration:none;box-shadow:0 4px 0 rgba(0,0,0,0.06);font-weight:700;min-width:220px;justify-content:center;font-size:1.25rem}
.cta-pill-large .icon{font-size:1.75rem}
.cta-pill-large:hover{transform:translateY(-2px);box-shadow:0 8px 10px rgba(0,0,0,0.08)}
.cta-pill-large:active{transform:translateY(0);box-shadow:0 4px 0 rgba(0,0,0,0.06)}

.hero-tiles{margin-top:1.5rem}
.tile{background:#cfeff6;border-radius:12px;padding:0;display:block;box-shadow:0 6px 18px rgba(0,0,0,0.08);overflow:hidden;text-decoration:none}
.tile-inner{background:transparent;padding:1.6rem 1.2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4rem}
.tile-icon{font-size:2rem;margin-bottom:.2rem}
.tile h2{margin:.2rem 0 .2rem;font-size:1.15rem;color:#08323a}
.tile .muted{color:#08323a;font-size:.95rem;margin-bottom:.8rem}
.tile-cta{display:inline-block;background:#dff7fb;color:#08323a;padding:.6rem 1rem;border-radius:8px;font-weight:700}

/* hover/focus states: change background and elevate shadow without translating layout (avoids seams) */
.tile:hover,
.tile:focus-within{
  background:#bfeef6;
  box-shadow:0 10px 24px rgba(0,0,0,0.10);
}
.tile:focus-visible{outline:3px solid rgba(2,120,138,0.18);outline-offset:3px}

/* Layout for two-column tiles */
.hero-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}

.features{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;padding:2rem 0}
.entry-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:2rem 0}
.card{background:#fff;border:1px solid #eee;padding:1.2rem;border-radius:8px;text-align:center}

.step{background:#fff;border:1px solid #f0f0f0;padding:1rem;border-radius:8px;margin-bottom:1rem}
.step label{display:block;margin-top:.6rem}
.step input,.step select,.step textarea{width:100%;padding:.5rem;margin-top:.25rem}
.actions{margin-top:1rem;display:flex;gap:.5rem;justify-content:flex-end}
.actions .btn{min-width:120px}
#review pre{background:#f7f9ff;padding:1rem;border-radius:6px;overflow:auto}

/* Estimate wizard styles */
.estimate-page{max-width:900px;padding-bottom:2rem}

/* Regional CTA image grid expand/collapse */
/* Force 4 columns across all devices; use higher specificity and !important to defeat stray overrides */
.cta-grid{display:grid; grid-template-columns:repeat(4,1fr) !important; gap:0;}
/* Ensure grid items can shrink within tracks (prevents implicit 2-col fallback on small containers) */
.cta-grid .cta-item{min-width:0;}
/* Use !important to override inline display on tiles */
.cta-grid--collapsed > .cta-item:nth-child(n+5){display:none !important}

/* Extra safety: in the CTA section, lock 4 columns explicitly */
.regional-cta .cta-grid{ grid-template-columns:repeat(4,1fr) !important; }

/* CTA expand/collapse toggle button */
.cta-toggle{background:#ffffff;color:#0b72ff;border:1px solid #ffffff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;border-radius:30px;height:2.3rem;padding:0 1.15rem;font-size:.88rem;line-height:1;text-align:center;box-shadow:0 4px 12px rgba(0,0,0,.18);transition:background .25s,box-shadow .25s,transform .25s,color .25s}
.cta-toggle .label{display:inline-block;line-height:1;padding:0 .15rem;transform:translateY(3px)}
.cta-toggle:hover{background:#e6f2ff;box-shadow:0 6px 18px rgba(0,0,0,.25);transform:translateY(-2px)}
.cta-toggle:active{transform:translateY(0);box-shadow:0 3px 8px rgba(0,0,0,.25)}
.cta-toggle:focus-visible{outline:3px solid rgba(255,255,255,.8);outline-offset:3px}
.estimate-title{margin-top:.5rem;margin-bottom:.75rem;text-align:center;font-size:2rem;background:linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.estimate-progress{margin:.5rem 0 1.5rem}
.estimate-progress-track{width:100%;height:12px;background:#eef5ff;border-radius:999px;overflow:hidden;border:1px solid #e1edff;box-shadow:inset 0 2px 6px rgba(11,114,255,.08)}
.estimate-progress-fill{height:100%;background:linear-gradient(90deg,#45b7f6,#0b72ff);width:25%;transition:width .4s ease;box-shadow:0 0 12px rgba(11,114,255,.5)}
.estimate-progress-text{color:#08323a;font-weight:700;margin-top:.5rem;text-align:center;font-size:1rem}

/* Card container for the form */
.estimate-page form{background:#bae6fd;border:1px solid #e6f0ff;border-radius:20px;box-shadow:0 16px 48px rgba(11,114,255,.12);padding:1.4rem 1.4rem 1.2rem}
@media (min-width: 640px){ .estimate-page form{padding:2rem 2.4rem 1.8rem} }

.step{animation:fadeIn .3s ease}
.step h2{font-size:1.5rem;margin-bottom:1.2rem;color:#08323a;font-weight:800}
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width: 640px){ .grid.two{grid-template-columns:1fr} }
.grid.two .field{display:flex;flex-direction:column}
.grid.three{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}
@media (max-width: 640px){ .grid.three{grid-template-columns:1fr} }
.grid.three .field{display:flex;flex-direction:column}
.field{margin:1rem 0}
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field input[type="number"], .field input[type="date"], .field input[type="url"], .field textarea, .field select{width:100%;padding:.75rem;border:1px solid #e5e7eb;border-radius:10px;font-size:1rem;transition:all .2s ease;background:#fafcff}
.field input:focus, .field textarea:focus, .field select:focus{outline:none;border-color:#0b72ff;box-shadow:0 0 0 3px rgba(11,114,255,.15)}
.field #state{text-transform:uppercase}
.field .hint{font-size:.85rem;color:#6b7280;margin:.35rem 0 0}
.label{display:block;font-weight:700;margin-bottom:.5rem;color:#08323a;font-size:1rem}

.linear-feet-helper{margin-top:.5rem;background:#f0f8ff;border:1px solid #dbe9ff;border-radius:12px;padding:1rem 1.1rem}
.linear-feet-helper .hint{margin:0 0 .7rem;color:#32505a}

/* Aesthetic custom checkbox card */
.checkbox-card{position:relative;display:flex;align-items:center;gap:.7rem;cursor:pointer;padding:.6rem .75rem;border:1px solid #e5e7eb;border-radius:12px;background:#ffffff;transition:all .2s ease;user-select:none;width:100%;justify-content:flex-start}
.linear-feet-helper .checkbox-card{width:100%}
.checkbox-card:hover{box-shadow:0 10px 24px rgba(0,0,0,0.08);border-color:#b3d9ff;transform:translateY(-1px)}
.checkbox-card input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.checkbox-ui{width:22px;height:22px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;display:inline-block;transition:all .2s ease;box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}
.checkbox-card input:focus-visible + .checkbox-ui{box-shadow:0 0 0 3px rgba(11,114,255,.25), inset 0 1px 2px rgba(0,0,0,.05);border-color:#0b72ff}
.checkbox-card input:checked + .checkbox-ui{background:linear-gradient(135deg,#45b7f6 0%, #0b72ff 100%);border-color:#0b72ff;box-shadow:0 0 0 3px rgba(11,114,255,.22), inset 0 0 0 2px #ffffff}
.checkbox-card .checkbox-text{font-weight:700;color:#08323a;position:absolute;left:50%;transform:translateX(-50%);text-align:center;width:90%;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.95rem}

/* Linear feet grouped cards */
.lf-group{display:grid;gap:.75rem;margin-top:.35rem}
@media (min-width:640px){
  .lf-group{grid-template-columns:1fr 1fr}
}
.lf-card{position:relative;border:1px solid #e5e7eb;background:#fff;border-radius:12px;padding:.9rem 1rem;display:flex;flex-direction:column;justify-content:center;min-height:64px;transition:box-shadow .2s ease,border-color .2s ease}
.lf-card:hover{box-shadow:0 10px 24px rgba(0,0,0,0.06);border-color:#d0d7e2}
.lf-card:focus-within{border-color:#0b72ff;box-shadow:0 0 0 3px rgba(11,114,255,.15)}

.lf-card.lf-input input[type="number"]{border:none;outline:none;background:transparent;padding:.15rem 2.6rem .25rem 0;margin:0;font-size:1.05rem;caret-color:#0b72ff;border-bottom:1px solid #e5e7eb;appearance:textfield;-moz-appearance:textfield}
.lf-card.lf-input input[type="number"]::-webkit-outer-spin-button,.lf-card.lf-input input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.lf-card.lf-input input[type="number"]:focus{border-bottom-color:#0b72ff}
.lf-card.lf-input input[type="number"]::placeholder{color:#6b7280}
.lf-card.lf-input::after{content:'ft';position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:#9ca3af;font-weight:700;letter-spacing:.5px}
.lf-card.lf-input .hint{margin:.35rem 0 0}

.lf-card.lf-unsure{position:relative;align-items:flex-start}
.lf-card.lf-unsure .checkbox-card{border:0;box-shadow:none;background:transparent;padding:0;width:100%;justify-content:flex-start}
.lf-card.lf-unsure .checkbox-ui{margin-left:.1rem}

.checkbox-inline{display:inline-flex;align-items:center;gap:.6rem;margin-top:.5rem;font-weight:600;color:#32505a}

.radio-grid{display:grid;gap:.8rem}
.radio-grid.one{grid-template-columns:1fr}
.radio-grid.two{grid-template-columns:1fr 1fr}
.radio-grid.three{grid-template-columns:1fr 1fr 1fr}
.radio-grid.four{grid-template-columns:repeat(4,1fr)}
@media (max-width: 640px){
  .radio-grid.three{grid-template-columns:1fr}
  .radio-grid.four{grid-template-columns:1fr 1fr}
}

.radio-wrap{cursor:pointer}
.radio-wrap input{display:none}
.radio-card{border:2px solid #e5e7eb;border-radius:12px;padding:1.1rem;text-align:center;background:#fafcff;transition:all .2s ease;font-weight:700;color:#08323a;font-size:1rem}
.radio-wrap input:checked + .radio-card{border-color:#0b72ff;background:#f0f8ff;box-shadow:0 0 0 3px rgba(11,114,255,.2)}
.radio-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,0.1);border-color:#b3d9ff}

/* Checkbox option cards for multi-select (reuses radio-card styling pattern) */
.checkbox-wrap{cursor:pointer}
.checkbox-wrap input{display:none}
.checkbox-option-card{border:2px solid #e5e7eb;border-radius:12px;padding:1.1rem;text-align:center;background:#fafcff;transition:all .2s ease;font-weight:700;color:#08323a;font-size:1rem}
.checkbox-wrap input:checked + .checkbox-option-card{border-color:#0b72ff;background:#f0f8ff;box-shadow:0 0 0 3px rgba(11,114,255,.2)}
.checkbox-option-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,0.1);border-color:#b3d9ff}

.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media (max-width: 640px){ .location-grid{grid-template-columns:1fr} }
.location-box{cursor:pointer}
.location-box input{display:none}
.location-card{border:2px solid #e5e7eb;border-radius:12px;padding:1rem;text-align:center;background:#fafcff;transition:all .2s ease;font-weight:600;color:#08323a;font-size:.95rem}
.location-box input:checked + .location-card{border-color:#0b72ff;background:#f0f8ff;box-shadow:0 0 0 3px rgba(11,114,255,.2)}
.location-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,0.08);border-color:#b3d9ff}

.swatch-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.6rem}
@media (max-width: 640px){ .swatch-grid{grid-template-columns:repeat(4,1fr)} }
.swatch{display:block;cursor:pointer}
.swatch input{display:none}
.swatch span{display:block;width:100%;height:52px;border:2px solid #e5e7eb;border-radius:12px;background:var(--sw);transition:all .2s ease}
.swatch .sw-other{display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#ef4444,#f59e0b,#3b82f6);color:#fff;font-weight:800;font-size:.85rem}
.swatch input:checked + span{border-color:#0b72ff;box-shadow:0 0 0 3px rgba(11,114,255,.25);transform:scale(1.05)}
.swatch span:hover{transform:scale(1.08);box-shadow:0 6px 18px rgba(0,0,0,.12)}

.field-error, input.field-error{outline:2px solid #ef4444;outline-offset:2px;border-radius:10px;animation:shake .3s ease}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

.field input::placeholder, .field textarea::placeholder{color:#94a3b8;opacity:1}
/* Global form control styling for consistency across pages (e.g., contact page) */
form input[type="text"], form input[type="email"], form input[type="tel"], form input[type="number"], form input[type="date"], form input[type="url"], form textarea, form select{
  width:100%;
  padding:.75rem;
  border:1px solid #e5e7eb;
  border-radius:10px;
  font-size:1rem;
  transition:all .2s ease;
  background:#fafcff;
}
form input:focus, form textarea:focus, form select:focus{
  outline:none;
  border-color:#0b72ff;
  box-shadow:0 0 0 3px rgba(11,114,255,.15);
}
form input::placeholder, form textarea::placeholder, .email-modal-card textarea::placeholder{color:#94a3b8;opacity:1}

.actions{margin-top:1.8rem;display:flex;gap:.8rem;justify-content:flex-end}
.actions .btn{min-width:140px;padding:.75rem 1.5rem;font-weight:700;border-radius:10px;transition:all .2s ease;border:none;font-size:1rem}
.actions .btn.prev{background:#f3f4f6;color:#374151}
.actions .btn.prev:hover{background:#e5e7eb;transform:translateY(-1px)}
.actions .btn:not(.prev){background:linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%);color:#fff;box-shadow:0 6px 18px rgba(11,114,255,.3)}
.actions .btn:not(.prev):hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(11,114,255,.4)}

/* Success modal */
.estimate-modal{position:fixed;inset:0;z-index:1000;display:block}
.estimate-modal[hidden]{display:none}
.estimate-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px)}
.estimate-modal-card{position:relative;z-index:1001;max-width:500px;margin:10vh auto;background:#fff;border-radius:20px;padding:1.6rem 1.6rem 1.3rem;box-shadow:0 28px 72px rgba(0,0,0,.3);text-align:center;animation:modalPop .3s ease}
@keyframes modalPop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.estimate-modal-card h3{margin:.3rem 0 .5rem;font-size:1.7rem;font-weight:800;color:#08323a}
.estimate-modal-card p{color:#374151;margin:0 0 1rem;line-height:1.6}
/* Base hidden state for mobile-only call button (contact page) */
.call-now-btn{display:none}
.check-circle{width:72px;height:72px;margin:0 auto .6rem;border-radius:999px;background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#059669;font-weight:800;font-size:2rem;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(5,150,105,.2)}
.call-popover{position:fixed;z-index:2000}
.call-popover[hidden]{display:none}
.call-popover-card{background:#ffffff;border:1px solid #e6f0ff;border-radius:12px;box-shadow:0 16px 40px rgba(11,114,255,.18);padding:0.9rem 1rem;min-width:260px}
.call-popover-title{font-weight:800;color:#08323a;margin:0 0 .25rem;font-size:1rem}
.call-popover-number{font-weight:800;letter-spacing:.3px;color:#0b72ff;margin:0 0 .7rem}
.call-popover-actions{display:flex;gap:.6rem;justify-content:flex-end}
.call-popover .btn{background:#f3f4f6;color:#111;border:none;border-radius:8px;padding:.5rem .8rem;font-weight:700;cursor:pointer}
.call-popover .btn.copy{background:linear-gradient(135deg,#45b7f6 0%, #0b72ff 100%);color:#fff;box-shadow:0 6px 16px rgba(11,114,255,.22)}
.call-popover .btn.close{background:#e5e7eb}

/* Email modal styling (desktop/tablet) */
.email-modal{position:fixed;inset:0;z-index:1500;display:block}
.email-modal[hidden]{display:none}
.email-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(2px)}
.email-modal-card{position:relative;z-index:1501;max-width:640px;margin:8vh auto;background:#bae6fd;border-radius:16px;padding:1.2rem 1.2rem 1rem;box-shadow:0 28px 72px rgba(0,0,0,.3);animation:modalPop .25s ease}
.email-modal-card h3{margin:.2rem 0 1rem;font-size:1.4rem;font-weight:800;color:#08323a}
/* When email-modal-card is used as page content (not in modal), reset z-index to stay under header */
main .email-modal-card{z-index:auto}
.email-status{margin-top:.6rem;font-size:.95rem}
.email-status.success{color:#059669}
.email-status.error{color:#b91c1c}
.features article{background:#fafafa;padding:1rem;border-radius:var(--radius);border:1px solid #f0f0f0}
.testimonial{padding:2rem 0}
.site-footer{
  /* Blue footer immediately - no animation delay */
  background:linear-gradient(90deg,#45b7f6 0%,#0b72ff 50%,#45b7f6 100%);
  color:rgba(255,255,255,0.95);
  border-top:0;
  margin-top:0;
  padding:1.25rem 0;
  position:relative;
  overflow:hidden;
}

/* Gradient overlay - visible immediately */
.site-footer::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#45b7f6 0%,#0b72ff 50%,#45b7f6 100%);
  opacity:1;
  z-index:0;
  pointer-events:none;
}

.site-footer > .container{position:relative;z-index:1}
.site-footer a{color:inherit;text-decoration:none}
.site-footer a:hover{opacity:0.9}
.site-footer .footer-cta{font-weight:700;padding:0.3rem 0.75rem;background:rgba(255,255,255,0.15);border-radius:6px;transition:background .2s}
.site-footer .footer-cta:hover{background:rgba(255,255,255,0.25);opacity:1}
/* Legal line */
.site-footer .legal{margin:.25rem 0 0 0;font-size:.9rem;opacity:.95}

@keyframes footerTextColor{
  from{color:#08323a}
  to{color:rgba(255,255,255,0.95)}
}

/* =============================================
   Return visits: render hero/wave statically
   When body has .rgs-no-anim, disable the initial
   entrance animations and force final states.
   ============================================= */
body.rgs-no-anim .divider-wave{animation:none !important;transform:translateX(0) scaleY(1) !important}
body.rgs-no-anim .page-divider::before{animation:none !important;transform:translateY(0) !important}
body.rgs-no-anim .page-content-blue{animation:none !important;opacity:1 !important}
body.rgs-no-anim .hero-bubble{animation:none !important;opacity:1 !important;transform:translateY(0) !important}
body.rgs-no-anim .site-footer{animation:none !important}
body.rgs-no-anim .site-footer::before{animation:none !important;opacity:1 !important}

/* =============================================
   Blue section content styles
   ============================================= */

/* Consistent max-width wrapper for all blue content */
.page-content-blue .container{max-width:2025px;margin:0 auto}

/* Semi-transparent frosted bubble container for text sections */
.content-bubble{
  background:rgba(8,20,40,0.18); /* neutral slate overlay to reduce blue */
  border:1px solid rgba(255,255,255,0.14);
  border-radius:10px;
  padding:1rem 1rem;
  box-shadow:none;
}

/* Lightweight panels to add subtle distinction without the bubbly look */
.panel{background:rgba(8,20,40,0.16);border:1px solid rgba(255,255,255,0.16);border-radius:10px;padding:.75rem}
.panel-alt{background:rgba(8,20,40,0.22);border-color:rgba(255,255,255,0.22)}
.panel.services-grid{padding:.75rem}

/* Section headers: eyebrow + accent rule */
.section-header{display:flex;flex-direction:column;gap:.4rem;color:#fff}
.section-header.small{gap:.35rem}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.95}
.accent-hr{width:48px;height:2px;background:linear-gradient(90deg,#45b7f6,#0b72ff);border-radius:2px}

/* Services header inside grid spans all columns */
.services-grid .section-header{grid-column:1/-1;margin:.25rem .25rem .25rem}

/* Hero tagline at top of blue section */
.blue-hero{text-align:left;padding:1.25rem .75rem .75rem;color:#fff}
.blue-headline{font-size:clamp(5.3rem,4.06rem+5.3vw,8.74rem);font-weight:900;margin:0 0 .75rem;line-height:1.05;letter-spacing:-0.02em;color:#fff;text-wrap:balance}
.blue-subhead{font-size:1.18rem;line-height:1.58;margin:0 0 1.15rem;opacity:0.99;font-weight:400}
.blue-subhead:last-of-type{margin-bottom:0}

/* Service cards grid */
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:.5rem .5rem;max-width:1500px;margin:0 auto}
@media (max-width:1100px){.services-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}
@media (max-width:640px){.services-grid{grid-template-columns:1fr}}

.service-card{
  background:#c5e0ff; /* darker blue */
  border-radius:12px;
  padding:1.75rem 1.25rem;
  text-align:center;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  box-shadow:0 2px 10px rgba(0,0,0,0.06);
  border:1px solid rgba(0,0,0,0.06);
}
.service-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,0,0,0.12);
  border-color:rgba(11,114,255,0.25);
}
.service-icon{font-size:3.1rem;margin-bottom:.85rem}
.service-card h3{margin:0 0 .6rem;font-size:1.3rem;font-weight:800;color:#08323a;letter-spacing:-0.01em;line-height:1.2}
.service-card p{margin:0;color:#4b5563;line-height:1.55;font-size:0.96rem;font-weight:600}

/* Small note/badge under certain services */
.service-note{margin-top:.6rem;font-size:.82rem;color:#0b72ff;display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .55rem;border-radius:999px;border:1px solid #bfdbfe;background:#eff6ff;font-weight:700}
.ice-dams-range .short-range{display:none;} /* default desktop: show full */
.ice-dams-range .full-range{display:inline;}
.winterization-range .short-range{display:none;} /* default desktop: show full */
.winterization-range .full-range{display:inline;}
.about-subhead-mobile .portrait-about-founder{display:none;} /* default: show original */
.about-subhead-mobile .full-about-founder{display:inline;}
.service-note svg{width:14px;height:14px;stroke:#0b72ff;stroke-width:2;fill:none}

/* Inline SVG icons within service cards */
.service-icon svg{width:44px;height:44px;stroke:#0b72ff;stroke-width:2;fill:none}
.service-icon svg.fill{fill:#0b72ff;stroke:none}

/* Logos strip */
.logos-strip{padding:.75rem .75rem}
.logos-grid{display:flex;gap:2rem;justify-content:space-between;align-items:center;flex-wrap:wrap}
.logo-item{height:28px;opacity:.9;filter:grayscale(100%)}
@media (max-width:700px){.logo-item{height:24px}}

/* Testimonials */
.testimonials{padding:2.4rem 0 1.2rem;color:#fff}
.testimonials-header{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;margin-bottom:1.2rem}
/* Make the header group shrink to its text width so the bar can match text length */
.testimonials-header .section-header{display:inline-flex;flex-direction:column;align-items:center;color:#fff;margin:0}
/* Match "What we do" styles and make bar match the eyebrow width */
.testimonials-header .eyebrow{font-size:.95rem}
.testimonials-header .accent-hr{width:100%;height:3px;border-radius:3px}
.testimonial-carousel{position:relative;margin:0 auto;width:100%;display:flex;align-items:stretch;justify-content:center;overflow:hidden}
.carousel-track{display:flex;gap:1rem;width:100%;will-change:transform}
/* MAIN PAGE testimonial cards - match service card grid (4 columns on desktop) */
/* Google-style testimonial card */
.google-review-card {
  flex: 0 0 auto;
  width: calc((100% - 2rem) / 4);
  max-width: 340px;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e0e0e0;
  box-shadow: 0 2px 12px rgba(60,64,67,0.10);
  height:300px;
  padding: 1.5rem 1.25rem 1.25rem 1.25rem;
  color: #222;
  display: flex;
  flex-direction: column;
  gap: .7rem;
  text-align: left;
  position: relative;
  transition: transform .22s, box-shadow .22s, border-color .22s;
}
.google-review-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(60,64,67,0.16);
  border-color: #4285F4;
}
.google-review-card .review-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: .5rem;
}
.google-review-card .review-avatar {
  display: none;
  /*
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #e0e0e0;
  object-fit: cover;
  */
}
.google-review-card .review-author {
  font-weight: 600;
  body.about-page .sub-hero .action-heading{ 
    grid-column:1 !important; 
    grid-row:1 !important;
    text-align:left !important; 
    margin:0 0 .85rem !important; 
    align-self:start !important; 
  }
  color: #222;
}
.google-review-card .review-stars {
  display: flex;
  gap: 2px;
  margin: 2px 0 0 0;
}
.google-review-card .review-date {
  font-size: .92rem;
  color: #757575;
}
.google-review-card .google-badge {
  margin-left: auto;
  font-size: .98rem;
  font-weight: 500;
  color: #4285F4;
  display: flex;
  align-items: center;
  gap: 4px;
}
.google-review-card .google-badge svg {
  vertical-align: middle;
}
.google-review-card .review-body {
  font-size: 1.08rem;
  color: #222;
  line-height: 1.55;
  margin-top: .2rem;
  flex-grow: 1;
  overflow: hidden;
}
.google-review-card .review-body.is-truncated{
  position:relative;
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 60%,rgba(0,0,0,0));
  mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 60%,rgba(0,0,0,0));
}
.google-review-card .review-body.is-truncated::after{
  content:"…";
  position:absolute;
  bottom:.3rem;
  right:.6rem;
  font-weight:700;
  font-size:1.05rem;
  color:#4285F4;
  letter-spacing:.05em;
}
.review-body.text-large {
  font-size: 1.7rem; /* Larger for short reviews */
  line-height: 1.5;
  display: flex;
  align-items: center;
}

.review-body.text-medium {
  font-size: 1rem; /* Normal size */
  line-height: 1.6;
}

.review-body.text-small {
  font-size: 0.9rem;    /* Smaller for long reviews */
  line-height: 1.6;
}
.testimonial-card.blank {
  background: #111 !important;
  border: 1px solid #222 !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.12) !important;
}
.testimonials .testimonial-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,0,0,0.12);
  border-color:rgba(11,114,255,0.25);
}
.testimonials .quote-icon{display:none}
.testimonials .testimonial-quote{display:none}
.testimonials .testimonial-author{display:none}
.testimonials .testimonial-meta{display:none}
@media (max-width:1024px){
  .testimonials .testimonial-card{width:calc((100% - 1.5rem) / 2);max-width:none}
  .carousel-track{gap:1.5rem}
}
@media (max-width:640px){
  .testimonials .testimonial-card{width:100%;max-width:none}
  .carousel-track{gap:1rem}
}

/* iPhone portrait: static centered card with native swipe */
@media (max-width:520px){
  /* Treasure Valley regional page: show more of hero image horizontally by reducing height */
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--treasure-valley{
     min-height: 261px !important; /* decrease by ~13% from 300px */
     padding: 0.96rem 0 1.22rem !important; /* decrease vertical padding by ~13% */
     background-position: center top !important; /* anchor image to top for better composition */
  }
  /* Hide breadcrumb in hero bubble for iPhone portrait only */
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--treasure-valley .hero-content .breadcrumb {
    display: none !important;
  }
    html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--treasure-valley .hero-content{
      min-height: 120px !important; /* reduce to pull up bottom edge */
      padding: 0.7rem 1rem !important; /* reduce vertical padding to shorten bubble */
      /* Decrease width by 12% from previous: 368px * 0.88 ≈ 324px, 1172px * 0.88 ≈ 1031px */
      width: min(calc(100vw + 324px), 1031px) !important;
      position: relative;
      top: 35px; /* shift bubble upward by 15px (was 50px, now 35px) */
      transform: scale(0.85) scaleY(0.8); /* shrink horizontally 0.85x and vertically 0.8x (20% reduction) */
      transform-origin: top center;
      text-align: left !important; /* remove center alignment for iPhone portrait */
    }
  /* Counter-scale text inside bubble to fix vertical distortion */
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--treasure-valley .hero-content h1 {
    transform: scaleY(1.25) !important; /* compensate for parent's scaleY(0.8): 1 / 0.8 = 1.25 */
    font-size: 2.2rem !important; /* increase header size for iPhone portrait */
    text-align: center !important; /* center header text */
    position: relative; /* allow vertical nudge */
    top: 8px; /* shift header down by 8px total */
  }
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--treasure-valley .hero-content .hero-tagline {
    transform: scaleY(1.25) !important; /* compensate for parent's scaleY(0.8): 1 / 0.8 = 1.25 */
  }
  /* Slightly tighten space to CTA after scaling */
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--treasure-valley .hero-cta-btn{
    margin-top: 0.8rem !important;
    transform: scale(0.88) !important; /* another +5% bump */
    position: relative; /* allow pixel-perfect vertical nudge */
    top: 5px; /* move button down by 5px (net 15px downward from previous -10px) */
  }
  
  /* Apply same iPhone portrait hero styling to all remaining 7 regional pages */
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--central-idaho,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--magic-valley,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--mountain-home,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--north-idaho,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--upper-snake,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--west-central-mountains,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--wood-river-valley {
     min-height: 261px !important;
     padding: 0.96rem 0 1.22rem !important;
     background-position: center top !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--central-idaho .hero-content .breadcrumb,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--magic-valley .hero-content .breadcrumb,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--mountain-home .hero-content .breadcrumb,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--north-idaho .hero-content .breadcrumb,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--upper-snake .hero-content .breadcrumb,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--west-central-mountains .hero-content .breadcrumb,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--wood-river-valley .hero-content .breadcrumb {
    display: none !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--central-idaho .hero-content,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--magic-valley .hero-content,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--mountain-home .hero-content,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--north-idaho .hero-content,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--upper-snake .hero-content,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--west-central-mountains .hero-content,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--wood-river-valley .hero-content {
      min-height: 120px !important;
      padding: 0.7rem 1rem !important;
      width: min(calc(100vw + 324px), 1031px) !important;
      position: relative;
      top: 35px;
      transform: scale(0.85) scaleY(0.8);
      transform-origin: top center;
      text-align: left !important;
  }
    html.rgs-android .regional-hero.regional-hero--central-idaho .hero-content,
    html.rgs-android .regional-hero.regional-hero--magic-valley .hero-content,
    html.rgs-android .regional-hero.regional-hero--mountain-home .hero-content,
    html.rgs-android .regional-hero.regional-hero--north-idaho .hero-content,
    html.rgs-android .regional-hero.regional-hero--upper-snake .hero-content,
    html.rgs-android .regional-hero.regional-hero--west-central-mountains .hero-content,
    html.rgs-android .regional-hero.regional-hero--wood-river-valley .hero-content,
    html.rgs-android .regional-hero.regional-hero--treasure-valley .hero-content {
      text-align: center !important;
      width: min(360px, calc(100vw - 24px)) !important;
      left: 0 !important;
      right: 0 !important;
      top: 28px !important;
      transform: scale(0.92) scaleY(0.8) !important;
      margin-left: auto !important;
      margin-right: auto !important;
      transform-origin: top center !important;
    }
    html.rgs-android .regional-hero[class*="regional-hero--"] .hero-content{
      width: min(360px, calc(100vw - 24px)) !important;
      max-width: 360px !important;
      margin: 0 auto !important;
      text-align: center !important;
      display: flex !important;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.4rem;
      top: 28px !important;
      transform: scale(0.92) scaleY(0.8) !important;
      transform-origin: top center !important;
    }
    html.rgs-android .regional-hero[class*="regional-hero--"] .hero-content > *{
      width: 100%;
      text-align: center !important;
    }
  
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--central-idaho .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--magic-valley .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--mountain-home .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--north-idaho .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--upper-snake .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--west-central-mountains .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--wood-river-valley .hero-content h1 {
    transform: scaleY(1.25) !important;
    font-size: 2.2rem !important;
    text-align: center !important;
    position: relative;
    top: 8px;
  }

  /* Slightly shrink headers for longer region names (two-line fit) */
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--west-central-mountains .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--north-idaho .hero-content h1,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--mountain-home .hero-content h1 {
    font-size: 2.0rem !important; /* ~9% reduction from 2.2rem */
    letter-spacing: -0.01em !important; /* subtle tightening for better fit */
  }
  
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--central-idaho .hero-content .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--magic-valley .hero-content .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--mountain-home .hero-content .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--north-idaho .hero-content .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--upper-snake .hero-content .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--west-central-mountains .hero-content .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--wood-river-valley .hero-content .hero-tagline {
    transform: scaleY(1.25) !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--central-idaho .hero-cta-btn,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--magic-valley .hero-cta-btn,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--mountain-home .hero-cta-btn,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--north-idaho .hero-cta-btn,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--upper-snake .hero-cta-btn,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--west-central-mountains .hero-cta-btn,
  html:is(.rgs-ios,.rgs-android) .regional-hero.regional-hero--wood-river-valley .hero-cta-btn {
    margin-top: 0.8rem !important;
    transform: scale(0.88) !important;
    position: relative;
    top: 5px;
  }

  html.rgs-android .regional-hero[class*="regional-hero--"] .hero-cta-btn{
    width:auto !important;
    min-width:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* Enable horizontal swipe with scroll-snap; keep it smooth and hide scrollbars */
  html:is(.rgs-ios,.rgs-android) .testimonial-carousel.is-swipe{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:0 .5rem;position:relative}
  html:is(.rgs-ios,.rgs-android) .testimonial-carousel.is-swipe::-webkit-scrollbar{display:none}
  html:is(.rgs-ios,.rgs-android) .testimonial-carousel.is-swipe .carousel-track{gap:.75rem;min-width:100%}
  /* Make each card slightly narrower than viewport and snap to center */
  html:is(.rgs-ios,.rgs-android) .testimonial-carousel.is-swipe .testimonial-card{flex:0 0 92%;max-width:92%;scroll-snap-align:center;margin:0 auto}
  html:is(.rgs-ios,.rgs-android) .testimonial-carousel.is-swipe{scroll-snap-type:x mandatory}
  /* Ensure no marquee animation applies in swipe mode */
  html:is(.rgs-ios,.rgs-android) .testimonial-carousel.is-swipe .carousel-track{animation:none!important;transition:transform .2s ease}
  
  /* Swipe hint overlay - subtle and professional */
  html:is(.rgs-ios,.rgs-android) .swipe-hint{
    display:none; /* Hidden by default; JS will show when needed */
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    background:rgba(0,0,0,0.75);
    color:#fff;
    padding:0.7rem 1.1rem;
    border-radius:24px;
    font-size:0.95rem;
    font-weight:600;
    letter-spacing:0.02em;
    pointer-events:none;
    z-index:10;
    box-shadow:0 4px 16px rgba(0,0,0,0.25);
    animation:swipeHintFadeIn 0.4s ease-out;
  }
  html:is(.rgs-ios,.rgs-android) .swipe-hint.show{display:flex;align-items:center;gap:0.3rem}
  html:is(.rgs-ios,.rgs-android) .swipe-arrow{font-size:1.15rem;font-weight:400}

  /* All regions iPhone: maximize showcase width and refine 3-reasons visuals */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .container-wide,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .container-wide,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .container-wide,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .container-wide,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .container-wide,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .container-wide,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .container-wide,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .container-wide{
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100vw !important;
    width: 100vw !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .showcase-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .showcase-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .showcase-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .showcase-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .showcase-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .showcase-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .showcase-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .showcase-grid{
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* Slightly reduce emphasis on icons/headers/line without touching body text */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-card{ gap: 1.25rem !important; padding-left: 1.25rem !important; }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-card::before,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-card::before,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-card::before,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-card::before,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-card::before,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-card::before,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-card::before,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-card::before{ display: none !important; content: none !important; }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-number,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-number,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-number,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-number,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-number,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-number,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-number,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-number{ width: 56px !important; }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-icon{ width: 38px !important; height: 38px !important; }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-content h3{ font-size: 0.98rem !important; }
  /* Cap the expansion of the 'Skilled' label so it doesn't overflow */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-card:hover .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-card:hover .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-card:hover .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-card:hover .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-card:hover .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-card:hover .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-card:hover .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-card:hover .number-label{ font-size: 0.92rem !important; transform: scale(1.04) !important; }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-card.revealed .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-card.revealed .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-card.revealed .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-card.revealed .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-card.revealed .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-card.revealed .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-card.revealed .number-label,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-card.revealed .number-label{ 
    font-size: 0.92rem !important; 
    transform: scale(1.04) !important;
    color: #0b72ff !important;
    font-weight: 800 !important;
  }
  
  /* Scroll-triggered reveal animation for all regions on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-card.revealed .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-card.revealed .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-card.revealed .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-card.revealed .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-card.revealed .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-card.revealed .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-card.revealed .advantage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-card.revealed .advantage-icon{
    color: #0b72ff !important;
    transform: scale(1.06) !important;
    stroke-width: 2 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .advantage-card.revealed .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .advantage-card.revealed .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .advantage-card.revealed .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .advantage-card.revealed .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .advantage-card.revealed .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .advantage-card.revealed .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .advantage-card.revealed .advantage-content h3,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .advantage-card.revealed .advantage-content h3{
    color: #0b72ff !important;
  }
  
  /* Treasure Valley: iPhone portrait compact gallery CTA below coverage card */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .showcase-coverage .gallery-cta{
    display:flex !important;
    justify-content:center;
    align-items:center;
    background: var(--rgs-blue-grad, linear-gradient(90deg,#45b7f6 0%,#0b72ff 50%,#45b7f6 100%));
    border-radius:14px;
    padding:1rem;
    margin-top:0.85rem;
    box-shadow:0 2px 12px rgba(0,0,0,.06);
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .gallery-cta__btn{
    background:#ffffff;
    color:#0b72ff;
    border:none;
    border-radius:999px;
    padding:0.6rem 1.1rem;
    font-weight:800;
    font-size:0.95rem;
    box-shadow:0 4px 14px rgba(11,114,255,.22);
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .gallery-grid{
    display:none;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:0.6rem;
    margin-top:0.75rem;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .gallery-cta.is-open + .gallery-grid{
    display:grid !important;
  }

  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .gallery-item{
    border-radius:12px;
    overflow:hidden;
    background:#e5eefb;
    aspect-ratio:1 / 1;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  
  /* Treasure Valley: minimize coverage card vertical height */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .showcase-coverage{
    transform: translateY(-40px) !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coverage-card{
    padding: 1.4rem 1.5rem 1.6rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coverage-intro{
    font-size: 0.88rem !important;
    margin: 0 0 1rem !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .cities-showcase{
    gap: 0.3rem !important;
    margin-bottom: 1.2rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .city-badge{
    padding: 0.35rem 0.6rem !important;
    font-size: 0.8rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coverage-footer{
    padding-top: 1.2rem !important;
    gap: 0.75rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coverage-icon{
    width: 20px !important;
    height: 20px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coverage-note{
    font-size: 0.84rem !important;
    line-height: 1.4 !important;
  }
  
  /* Treasure Valley: reorder showcase - keep 3-reasons first, then weather/coupon, then coverage */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .showcase-advantages{
    order: 1 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .showcase-coverage{
    order: 3 !important;
    transform: translateY(-67px) !important;
    margin-top: 0 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .showcase-weather{
    order: 2 !important;
    transform: translateY(-25px) !important;
    margin-top: 0 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget{
    margin-bottom: 0.75rem !important;
    padding: 0.85rem 1rem 0.7rem !important;
    min-height: auto !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget .ww-header{
    margin-bottom: 0.25rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget .ww-location{
    font-size: 0.95rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget .ww-summary{
    font-size: 0.85rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget .ww-temp{
    font-size: 1.2rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget .ww-meta{
    font-size: 0.82rem !important;
    margin: 0.2rem 0 0 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget .ww-icon{
    width: 18px !important;
    height: 18px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .weather-widget .ww-facts{
    display: none !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coupon-card{
    margin-top: 0 !important;
    padding: 0.9rem 1rem !important;
    height: auto !important;
    max-height: none !important;
    min-height: 140px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coupon-eyebrow{
    font-size: 0.7rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coupon-icon{
    width: 22px !important;
    height: 22px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coupon-offer{
    font-size: 1.05rem !important;
    line-height: 1.3 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coupon-fine{
    font-size: 0.82rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .coupon-btn{
    padding: 0.45rem 0.8rem !important;
    font-size: 0.82rem !important;
  }
  
  /* Treasure Valley: FAQ toggle button - hide items initially, show button */
  html:is(.rgs-ios,.rgs-android) .regional-faq .faq-toggle-btn{
    display: none !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-faq .faq-accordion{
    position: relative !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-faq .faq-accordion.faq-collapsed .faq-item{
    display: none !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-faq .faq-toggle-btn{
    display: block !important;
    width: 100% !important;
    max-width: 280px !important;
    margin: 1.5rem auto 0 !important;
    padding: 0.75rem 1.5rem !important;
    background: linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    cursor: pointer !important;
    box-shadow: 0 4px 14px rgba(11,114,255,.22) !important;
    transition: all .25s ease !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-faq .faq-toggle-btn:hover{
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 18px rgba(11,114,255,.28) !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-faq .faq-accordion:not(.faq-collapsed) .faq-toggle-btn{
    background: linear-gradient(135deg, #cbd5e1 0%, #94a3b8 100%) !important;
  }
  
  /* Treasure Valley: gallery bottom button - only show when gallery is open */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .gallery-cta--bottom{
    display:none;
    margin-top:0.75rem;
    background:linear-gradient(135deg,#1e3a8a 0%,#3b82f6 100%);
    padding:1.5rem;
    border-radius:12px;
    justify-content:center;
    align-items:center;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--treasure-valley .gallery-cta.is-open ~ .gallery-cta--bottom{
    display:flex !important;
  }
  
  /* ===================================================================
     ALL 7 REMAINING REGIONS: Apply identical iPhone portrait styles
     =================================================================== */
  
  /* Central Idaho, Magic Valley, Mountain Home, North Idaho, Upper Snake, 
     West Central Mountains, Wood River Valley: compact gallery CTA */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .showcase-coverage .gallery-cta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .showcase-coverage .gallery-cta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .showcase-coverage .gallery-cta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .showcase-coverage .gallery-cta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .showcase-coverage .gallery-cta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .showcase-coverage .gallery-cta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .showcase-coverage .gallery-cta{
    display:flex !important;
    justify-content:center;
    align-items:center;
    background: var(--rgs-blue-grad, linear-gradient(90deg,#45b7f6 0%,#0b72ff 50%,#45b7f6 100%));
    border-radius:14px;
    padding:1rem;
    margin-top:0.85rem;
    box-shadow:0 2px 12px rgba(0,0,0,.06);
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .gallery-cta__btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .gallery-cta__btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .gallery-cta__btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .gallery-cta__btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .gallery-cta__btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .gallery-cta__btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .gallery-cta__btn{
    background:#ffffff;
    color:#0b72ff;
    border:none;
    border-radius:999px;
    padding:0.6rem 1.1rem;
    font-weight:800;
    font-size:0.95rem;
    box-shadow:0 4px 14px rgba(11,114,255,.22);
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .gallery-grid{
    display:none;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:0.6rem;
    margin-top:0.75rem;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .gallery-cta.is-open + .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .gallery-cta.is-open + .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .gallery-cta.is-open + .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .gallery-cta.is-open + .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .gallery-cta.is-open + .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .gallery-cta.is-open + .gallery-grid,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .gallery-cta.is-open + .gallery-grid{
    display:grid !important;
  }

  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .gallery-item,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .gallery-item,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .gallery-item,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .gallery-item,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .gallery-item,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .gallery-item,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .gallery-item{
    border-radius:12px;
    overflow:hidden;
    background:#e5eefb;
    aspect-ratio:1 / 1;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .gallery-item img,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .gallery-item img,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .gallery-item img,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .gallery-item img,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .gallery-item img,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .gallery-item img,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  
  /* All 7 regions: minimize coverage card vertical height */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .showcase-coverage{
    transform: translateY(-40px) !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coverage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coverage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coverage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coverage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coverage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coverage-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coverage-card{
    padding: 1.4rem 1.5rem 1.6rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coverage-intro,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coverage-intro,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coverage-intro,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coverage-intro,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coverage-intro,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coverage-intro,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coverage-intro{
    font-size: 0.88rem !important;
    margin: 0 0 1rem !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .cities-showcase,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .cities-showcase,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .cities-showcase,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .cities-showcase,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .cities-showcase,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .cities-showcase,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .cities-showcase{
    gap: 0.3rem !important;
    margin-bottom: 1.2rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .city-badge,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .city-badge,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .city-badge,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .city-badge,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .city-badge,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .city-badge,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .city-badge{
    padding: 0.35rem 0.6rem !important;
    font-size: 0.8rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coverage-footer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coverage-footer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coverage-footer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coverage-footer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coverage-footer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coverage-footer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coverage-footer{
    padding-top: 1.2rem !important;
    gap: 0.75rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coverage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coverage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coverage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coverage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coverage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coverage-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coverage-icon{
    width: 20px !important;
    height: 20px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coverage-note,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coverage-note,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coverage-note,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coverage-note,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coverage-note,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coverage-note,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coverage-note{
    font-size: 0.84rem !important;
    line-height: 1.4 !important;
  }
  
  /* All 7 regions: reorder showcase - keep 3-reasons first, then weather/coupon, then coverage */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .showcase-advantages,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .showcase-advantages,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .showcase-advantages,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .showcase-advantages,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .showcase-advantages,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .showcase-advantages,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .showcase-advantages{
    order: 1 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .showcase-coverage,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .showcase-coverage{
    order: 3 !important;
    transform: translateY(-67px) !important;
    margin-top: 0 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .showcase-weather,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .showcase-weather,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .showcase-weather,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .showcase-weather,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .showcase-weather,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .showcase-weather,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .showcase-weather{
    order: 2 !important;
    transform: translateY(-25px) !important;
    margin-top: 0 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget{
    margin-bottom: 0.75rem !important;
    padding: 0.85rem 1rem 0.7rem !important;
    min-height: auto !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget .ww-header,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget .ww-header,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget .ww-header,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget .ww-header,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget .ww-header,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget .ww-header,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget .ww-header{
    margin-bottom: 0.25rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget .ww-location,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget .ww-location,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget .ww-location,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget .ww-location,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget .ww-location,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget .ww-location,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget .ww-location{
    font-size: 0.95rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget .ww-summary,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget .ww-summary,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget .ww-summary,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget .ww-summary,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget .ww-summary,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget .ww-summary,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget .ww-summary{
    font-size: 0.85rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget .ww-temp,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget .ww-temp,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget .ww-temp,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget .ww-temp,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget .ww-temp,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget .ww-temp,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget .ww-temp{
    font-size: 1.2rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget .ww-meta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget .ww-meta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget .ww-meta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget .ww-meta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget .ww-meta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget .ww-meta,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget .ww-meta{
    font-size: 0.82rem !important;
    margin: 0.2rem 0 0 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget .ww-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget .ww-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget .ww-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget .ww-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget .ww-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget .ww-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget .ww-icon{
    width: 18px !important;
    height: 18px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .weather-widget .ww-facts,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .weather-widget .ww-facts,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .weather-widget .ww-facts,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .weather-widget .ww-facts,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .weather-widget .ww-facts,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .weather-widget .ww-facts,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .weather-widget .ww-facts{
    display: none !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coupon-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coupon-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coupon-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coupon-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coupon-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coupon-card,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coupon-card{
    margin-top: 0 !important;
    padding: 0.9rem 1rem !important;
    height: auto !important;
    max-height: none !important;
    min-height: 140px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coupon-eyebrow,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coupon-eyebrow,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coupon-eyebrow,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coupon-eyebrow,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coupon-eyebrow,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coupon-eyebrow,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coupon-eyebrow{
    font-size: 0.7rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coupon-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coupon-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coupon-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coupon-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coupon-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coupon-icon,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coupon-icon{
    width: 22px !important;
    height: 22px !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coupon-offer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coupon-offer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coupon-offer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coupon-offer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coupon-offer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coupon-offer,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coupon-offer{
    font-size: 1.05rem !important;
    line-height: 1.3 !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coupon-fine,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coupon-fine,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coupon-fine,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coupon-fine,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coupon-fine,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coupon-fine,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coupon-fine{
    font-size: 0.82rem !important;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .coupon-btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .coupon-btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .coupon-btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .coupon-btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .coupon-btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .coupon-btn,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .coupon-btn{
    padding: 0.45rem 0.8rem !important;
    font-size: 0.82rem !important;
  }
  
  /* All 7 regions: gallery bottom button - only show when gallery is open */
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .gallery-cta--bottom{
    display:none;
    margin-top:0.75rem;
    background:linear-gradient(135deg,#1e3a8a 0%,#3b82f6 100%);
    padding:1.5rem;
    border-radius:12px;
    justify-content:center;
    align-items:center;
  }
  html:is(.rgs-ios,.rgs-android) .regional-showcase--central-idaho .gallery-cta.is-open ~ .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--magic-valley .gallery-cta.is-open ~ .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--mountain-home .gallery-cta.is-open ~ .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--north-idaho .gallery-cta.is-open ~ .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--upper-snake .gallery-cta.is-open ~ .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--west-central-mountains .gallery-cta.is-open ~ .gallery-cta--bottom,
  html:is(.rgs-ios,.rgs-android) .regional-showcase--wood-river-valley .gallery-cta.is-open ~ .gallery-cta--bottom{
    display:flex !important;
  }
  
  /* Keep paragraph sizing as-is; do not alter body text */
  
  @keyframes swipeHintFadeIn{
    0%{opacity:0;transform:translate(-50%,-50%) scale(0.92)}
    100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  }
}

/* Hide gallery bottom button on all non-iPhone devices */
@media (min-width:521px){
  .regional-showcase--treasure-valley .gallery-cta--bottom,
  .regional-showcase--central-idaho .gallery-cta--bottom,
  .regional-showcase--magic-valley .gallery-cta--bottom,
  .regional-showcase--mountain-home .gallery-cta--bottom,
  .regional-showcase--north-idaho .gallery-cta--bottom,
  /* Laptop-only: match iPad About CTA styling */
  body.about-page .mega-bubble .blue-subhead{ display:none !important; }
  body.about-page .mega-bubble{ max-width:860px; margin:2rem auto 0; text-align:center !important; }
  body.about-page .mega-bubble > div:last-child{ width:100%; max-width:560px; margin:1.5rem auto 0; display:flex !important; gap:1rem; justify-content:center; }
  body.about-page .mega-bubble > div:last-child .btn{ flex:1 1 0; min-width:0; padding:1.15rem 1.5rem; font-size:1.08rem; border-radius:14px; }
  .regional-showcase--upper-snake .gallery-cta--bottom,
  .regional-showcase--west-central-mountains .gallery-cta--bottom,
  .regional-showcase--wood-river-valley .gallery-cta--bottom{
    display:none !important;
  }
}

/* Large desktop (approx. 27" monitors): slow marquee ~12% only here via CSS var
   Note: This targets very wide viewports; adjust threshold if your 27" uses display scaling.
*/
@media (min-width:2000px){
  :root{--testimonial-px-per-sec:33.04} /* 37.5435 * 0.88 ≈ 33.04 */
}


/* Trust section */
.trust-section{padding:1.35rem .75rem 1.25rem;text-align:center;color:#fff}
.trust-headline{font-size:2.05rem;font-weight:800;margin:0 0 1.25rem;letter-spacing:-0.01em;line-height:1.16}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:.85rem}
@media (max-width:900px){.trust-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:550px){.trust-grid{grid-template-columns:1fr}}
.trust-item{display:flex;flex-direction:column;align-items:center;gap:1rem}
.trust-badge{
  width:84px;
  height:84px;
  border-radius:50%;
  background:transparent;
  border:1px solid rgba(255,255,255,0.32);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  font-weight:800;
  color:#fff;
  box-shadow:none;
  transition:border-color .25s ease, transform .25s ease;
}
.trust-item:hover .trust-badge{
  border-color:rgba(255,255,255,0.6);
  transform:translateY(-1px);
}
.trust-item p{margin:0;font-size:0.98rem;font-weight:600;line-height:1.3;max-width:180px}

/* Service area callout */
.service-area-callout{text-align:left;padding:1rem .75rem 1.5rem;color:#fff}
.service-area-callout h3{font-size:1.78rem;font-weight:800;margin:0 0 .65rem;line-height:1.2;letter-spacing:-0.02em}
.service-area-callout p{font-size:1.05rem;line-height:1.6;margin:0;opacity:0.98}

/* ==========================
  Metrics strip (compact)
  ========================== */
.metrics-strip{margin-top:1rem}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}
@media (max-width:900px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:550px){.metrics-grid{grid-template-columns:1fr}}
.metric-item{border:1px solid rgba(255,255,255,0.22);border-radius:8px;padding:.75rem .6rem;color:#fff;background:transparent}
.metric-value{font-size:1.35rem;font-weight:900;letter-spacing:-0.01em}
.metric-label{font-size:0.85rem;opacity:0.95}

/* ==========================
  3-step process (compact)
  ========================== */
.process-steps{padding:1rem .75rem 1.5rem}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:start}
@media (max-width:900px){.process-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.process-grid{grid-template-columns:1fr}}
.process-step{background:transparent;border:1px solid rgba(255,255,255,0.18);border-radius:10px;padding:1rem;text-align:left;color:#fff}
.step-icon{font-size:1.5rem;margin-bottom:.5rem;display:inline-block}
.step-title{font-size:1.08rem;font-weight:800;margin:0 0 .2rem}
.step-desc{font-size:0.95rem;line-height:1.5;margin:0}

/* ==========================
  CTA band (slim)
  ========================== */
.cta-band{padding:.9rem .9rem 1.1rem;text-align:center}
.cta-band h3{margin:0 0 .6rem;font-size:1.45rem;color:#fff;letter-spacing:-0.01em}
.cta-band-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
.cta-band-actions .cta-primary{min-width:170px}
.cta-band-actions .cta-secondary{min-width:150px}

/* ==========================
  Social connect toolbar
  ========================== */
.social-connect{padding:.5rem .25rem 1rem;color:#fff;text-align:center}
/* Match header size/underline with Services and Testimonials */
.social-connect .section-header{display:inline-flex;flex-direction:column;align-items:center;margin:0 auto .9rem}
.social-connect .eyebrow{font-size:.95rem}
.social-connect .accent-hr{width:100%;height:3px;border-radius:3px}
.social-toolbar{display:flex;gap:1.2rem;justify-content:space-evenly;flex-wrap:wrap;margin-top:0;width:100%}
.social-item{display:flex;flex-direction:column;align-items:center;gap:.35rem}
.sm-label{color:#fff;text-decoration:none;font-weight:700;font-size:.9rem;opacity:.95}
.sm-label:hover{text-decoration:underline}
.sm-btn{width:72px;height:72px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#c5e0ff;color:#08323a;border:1px solid rgba(17,24,39,0.08);box-shadow:0 8px 22px rgba(0,0,0,0.12);transition:transform .15s ease, box-shadow .15s ease, background .2s ease, color .2s ease}
.sm-btn svg{width:32px;height:32px;display:block}
.sm-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,0.16)}
.sm-btn:active{transform:translateY(-1px)}
.sm-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(255,255,255,0.6), 0 8px 22px rgba(0,0,0,0.25)}
/* Brand hover accents */
.sm-btn.facebook:hover{background:#1877F2;color:#fff}
.sm-btn.instagram:hover{background:#E4405F;color:#fff}
.sm-btn.linkedin:hover{background:#0077B5;color:#fff}
.sm-btn.youtube:hover{background:#FF0000;color:#fff}
.sm-btn.tiktok:hover{background:#111;color:#fff}
.sm-btn.google:hover{background:#34A853;color:#fff}
.sm-btn.nextdoor:hover{background:#00B246;color:#fff}
/* Hide TikTok and YouTube on all devices */
.social-item:has(.sm-btn.tiktok),
.social-item:has(.sm-btn.youtube){display:none}
@media (max-width:520px){
  html:is(.rgs-ios,.rgs-android) .sm-btn{width:36px;height:36px} /* 50% of 72px */
  html:is(.rgs-ios,.rgs-android) .sm-btn svg{width:16px;height:16px} /* 50% of 32px */
  html:is(.rgs-ios,.rgs-android) .sm-label{font-size:.7rem} /* Slightly smaller label text */
  html:is(.rgs-ios,.rgs-android) .social-toolbar{gap:.8rem;flex-wrap:nowrap} /* Tighten spacing, force single row */
}

/* Unified mega-bubble container */
.mega-bubble{position:relative;overflow:hidden;background:rgba(8,20,40,0.22);border:1px solid rgba(255,255,255,0.2);border-radius:14px;padding:1rem}
.mega-bubble::before{content:"";position:absolute;inset:-20% -10% auto auto;height:60%;width:55%;background:radial-gradient(60% 60% at 70% 30%, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0) 70%),radial-gradient(40% 40% at 100% 0%, rgba(11,114,255,0.15) 0%, rgba(11,114,255,0) 70%);pointer-events:none;z-index:0;filter:blur(2px)}
.mega-bubble .stack-block{position:relative;z-index:1;padding:0.75rem}
.mega-bubble .stack-block + .stack-block{border-top:1px solid rgba(255,255,255,0.12)}

/* Intro two-column layout (copy + services collage) */
.intro-grid{display:grid;grid-template-columns:7fr 5fr;gap:1rem;align-items:start}
@media (max-width:1100px){.intro-grid{grid-template-columns:1fr}}
.intro-copy{padding-left:3rem;position:relative}
.intro-copy::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,#45b7f6 0%,#0b72ff 100%);border-radius:3px}
.intro-copy .blue-headline{margin-bottom:1.5rem;font-size:3.9rem;line-height:1.02}
.intro-copy .blue-subhead{max-width:82ch;font-size:1.22rem;line-height:1.6;font-weight:600}
/* By default show desktop text, hide mobile text */
.intro-copy .desktop-text{display:block}
.intro-copy .mobile-text{display:none}

/* Trust & Proof section in intro area */
.intro-trust-section{margin-top:3.2rem;display:flex;flex-direction:column;gap:1.2rem;max-width:100%;width:100%;padding-left:0}
.intro-trust-badges{display:grid;grid-template-columns:repeat(6,1fr);gap:.85rem;justify-items:start;width:100%}
.trust-chip{display:flex;flex-direction:column;align-items:center;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.22);border-radius:10px;padding:.86rem .7rem;color:#fff;text-align:center;box-sizing:border-box;min-height:83px;transition:none;width:80%}
.intro-trust-badges .trust-chip:not(:nth-child(6)){width:94%}
.trust-chip:hover{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.22);transform:none}
.trust-chip .chip-icon{font-size:1.48rem;font-weight:900;opacity:.95;line-height:1;margin-bottom:.21rem}
.trust-chip .chip-label{font-size:.85rem;font-weight:600;letter-spacing:.01em;opacity:.95;line-height:1.28}
/* Default (non-laptop) guarantee chip stars: keep white for iPad/tablet */
.trust-chip.guarantee-chip .chip-icon .star{color:#fff;}

.intro-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:.85rem;justify-items:start;width:100%}
/* Widen all but the last card in the row so rightmost spacing to services grid remains unchanged */
.intro-metrics .intro-metric:not(:nth-child(6)){width:94%}
/* Placeholder styling for extra cards */
.is-placeholder{opacity:.45}
.intro-metric{border:1px solid rgba(255,255,255,0.22);border-radius:10px;padding:.86rem .7rem;color:#fff;background:rgba(255,255,255,0.04);text-align:center;min-height:83px;width:80%}
.intro-metric .metric-value{font-size:1.48rem;font-weight:900;letter-spacing:-0.01em;margin-bottom:.21rem}
.intro-metric .metric-label{font-size:.85rem;opacity:0.92}
@media (max-width:900px){.intro-trust-badges{grid-template-columns:repeat(2,1fr)}.intro-metrics{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.intro-trust-badges{grid-template-columns:1fr}.intro-metrics{grid-template-columns:1fr}}

.services-collage .section-header{margin:0 0 .5rem}
.services-collage .eyebrow{font-size:.95rem}
.services-collage .accent-hr{width:144px;height:3px;border-radius:3px}
.section-header .section-tags{margin-top:.35rem}
.tag{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:800;padding:.25rem .55rem;border-radius:999px;border:1px solid rgba(11,114,255,0.28);background:rgba(11,114,255,0.08);color:#0b72ff}
.tag .icon{width:14px;height:14px}
/* Year-round tag variant: white text on stronger blue for contrast */
.tag-year{color:#fff;background:rgba(11,114,255,0.45);border-color:rgba(11,114,255,0.55)}
.services-collage .services-grid{grid-template-columns:repeat(2,1fr);gap:.6rem;padding:0;max-width:100%;margin:0;grid-auto-rows:1fr}
.services-collage .service-card{padding:.92rem;border-radius:10px}
.services-collage .service-icon svg{width:30px;height:30px}
  .services-collage .services-grid{grid-template-columns:repeat(2,1fr);gap:.56rem;padding:0;max-width:100%;margin:0}
  .services-collage .service-card{padding:.86rem;border-radius:10px}
  .services-collage .service-icon svg{width:28px;height:28px}
  .services-collage .service-card h3{font-size:1.06rem}
  .services-collage .service-card p{font-size:.88rem;line-height:1.44}
  .services-collage .service-note{margin-top:.36rem;font-size:.76rem;padding:.18rem .46rem}
.services-collage .service-note{margin-top:.4rem;font-size:.78rem;padding:.2rem .48rem}

/* Value props chips */
.value-props{padding:.5rem 0}
.prop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
@media (max-width:900px){.prop-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.prop-grid{grid-template-columns:1fr}}
.prop-chip{display:flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,0.18);border-radius:999px;padding:.55rem .8rem;color:#fff;background:rgba(255,255,255,0.04)}
.prop-chip .chip-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.prop-chip .chip-text{font-size:.95rem;letter-spacing:.005em}

/* Trust + metrics two-column */
.trust-metrics-grid{display:grid;grid-template-columns:6fr 6fr;gap:1rem}
@media (max-width:1100px){.trust-metrics-grid{grid-template-columns:1fr}}
.trust-metrics-grid .metrics-grid{grid-template-columns:repeat(2,1fr)}
.trust-metrics-grid .metrics-grid .metric-item{padding:.85rem}

/* CTA split row */
.cta-split{display:grid;grid-template-columns:6fr 6fr;gap:1rem;align-items:center}
@media (max-width:1000px){.cta-split{grid-template-columns:1fr;gap:.75rem}}
.cta-split .cta-band{padding:.5rem 0}
.cta-split .service-area-callout{text-align:left;padding:0}

blockquote{margin:0;padding:1rem;background:#f7f9ff;border-left:4px solid var(--accent)}
cite{display:block;margin-top:.5rem;color:var(--muted);font-size:.9rem}

@media (max-width:800px){
  .main-nav{display:none !important}
  .nav-toggle{display:inline-block;margin-left:auto}
  .features{grid-template-columns:1fr}
  .entry-cards{grid-template-columns:1fr}
  .hero h1{font-size:1.5rem}
  /* Stack header on small screens */
  .site-header .container{flex-wrap:wrap;justify-content:center}
  .header-left{order:1;width:100%;justify-content:center}
  .header-tagline{order:2;width:100%;font-size:.9rem;padding:.5rem 0}
  .nav-toggle{order:3}
}

@media (max-width:700px){
  .top-ctas{flex-direction:column;align-items:center}
  .hero-tiles{grid-template-columns:1fr}
  /* re-center hero media on small screens */
  .hero-media{justify-content:center;width:100%;margin-left:0}
  .hero-canvas{margin-left:auto;margin-right:auto}
}

/* Center hero contents on wide screens */
.hero-cta .hero-inner{align-items:center}

/* Hero inline video under CTAs */
/* Consolidated hero video styles: keep video smaller on wide screens and responsive on narrow screens */
.hero-video-wrap{
  margin-top: 1.25rem;
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
  width:100vw;
  padding:0 1rem;
}
.hero-video{
  /* desktop: balanced size that doesn't dominate the hero */
  width:75%;
  max-width:1200px;
  min-width:630px;
  height:auto; /* keep natural aspect ratio */
  border-radius:0; /* remove rounded corners */
  box-shadow:none; /* remove shadow/highlight */
  background: #000;
  display:block;
  object-fit:contain; /* ensure full frame is visible without cropping */
  border:0; /* ensure no border */
}

/* Hero content wrapper: side-by-side layout for video and CTA bubble */
.hero-content-wrapper{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2rem;
  width:100%;
  margin-left:0; /* remove left shift */
  padding:0 4rem; /* balanced horizontal padding */
  /* Shift group left using configurable CSS variable */
  transform:translateX(var(--hero-offset, -9.5%));
  box-sizing:border-box;
}

/* hero-bubble-section: wrapper for the CTA card */
.hero-bubble-section{
  display:flex;
  flex-direction:column;
  align-items:center;
  flex-shrink:0;
}

/* Tagline above the bubble */
.hero-tagline{
  margin:0;
  color:#08323a;
  font-size:1.15rem;
  font-weight:700;
  text-align:center;
}

/* Small prompt above the primary CTAs */
.cta-heading{
  margin:0;
  margin-top:-0.25rem;
  text-align:center;
  font-size:1.05rem;
  font-weight:800;
  color:#08323a;
}

/* hero-bubble: single unified professional card */
.hero-bubble{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:1.8rem;
  background:#c5e0ff; /* match service card blue */
  padding:2.5rem 2.5rem;
  border-radius:16px;
  max-width: 550px;
  width: 100%;
  flex-shrink:0;
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
  opacity:0;
  transform:translateY(-30px);
  /* Drop immediately when wave completes (waveSlideIn = 3.04s) */
  animation:cardDrop 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 3.04s forwards;
}

@keyframes cardDrop {
  from { 
    opacity:0;
    transform:translateY(-30px);
  }
  to { 
    opacity:1;
    transform:translateY(0);
  }
}

/* Primary CTAs: Homeowner/Builder buttons */
.primary-ctas{
  display:flex;
  gap:1rem;
  justify-content:center;
}

.cta-primary{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:0.6rem;
  background:linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%);
  color:#fff;
  padding:1.5rem 2rem;
  border-radius:12px;
  text-decoration:none;
  box-shadow:0 4px 12px rgba(11,114,255,0.25);
  font-weight:700;
  flex:1 1 0;
  min-width:0;
  transition: transform 0.2s, box-shadow 0.2s;
  text-align:center;
}

.cta-primary .icon{
  font-size:2.5rem;
}

.cta-primary .label{
  font-size:1.25rem;
}

.cta-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 6px 20px rgba(11,114,255,0.35);
}

.cta-primary:active{
  transform:translateY(-1px);
}

/* Divider between primary and secondary CTAs */
.cta-divider{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  margin:0.5rem 0;
}

.cta-divider::before,
.cta-divider::after{
  content:'';
  flex:1;
  height:1.5px;
  background:linear-gradient(to right, rgba(136,136,136,0), rgba(136,136,136,0.85), rgba(136,136,136,0));
  opacity:0.9;
}

.cta-divider span{
  padding:0 1rem;
  color:#444;
  font-size:0.9rem;
  font-weight:500;
  white-space:nowrap;
}

/* Secondary CTAs: Contact options */
.secondary-ctas{
  display:flex;
  justify-content:center;
  align-items:center; /* vertically center items if they wrap */
  flex-wrap:wrap;
  margin:0 auto; /* center the group within the bubble */
}

.cta-secondary{
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start; /* align content left internally */
  gap:0.5rem;
  background:#f5f5f5;
  color:#08323a;
  padding:0.7rem 1.1rem;
  border-radius:8px;
  text-decoration:none;
  font-weight:600;
  font-size:0.95rem;
  line-height:1.2;
  transition: background 0.2s, transform 0.2s;
  border:1px solid #e0e0e0;
  text-align:left;
  min-width:140px;
  position:relative;
}

/* Wrapper centers the button group, each button's content starts from left */
.cta-secondary .icon{
  font-size:1.1rem;
  width:1.1em;
  text-align:center;
  flex-shrink:0;
}
.cta-secondary .label{
  flex:1;
  text-align:left;
  white-space:nowrap;
}

/* Center text-only secondary CTAs inside the hero bubble without affecting other sections */
.hero-bubble .cta-secondary{justify-content:center;text-align:center;align-items:center}
.hero-bubble .cta-secondary .label{flex:unset;display:block;width:100%;text-align:center;line-height:1.25;margin:0 auto}

.cta-secondary:hover{
  background:#e8f4ff;
  border-color:#45b7f6;
  transform:translateY(-2px);
}

.cta-secondary:active{
  transform:translateY(0);
}

/* Page divider - clean wave design with animated background fill */
.page-divider{
  width:100%;
  height:120px;
  /* Keep neutral until animations run so no static blue bar appears pre-wave */
  background:#ffffff;
  position:relative;
  overflow:hidden;
  margin-top:-2rem;
  /* Ensure the divider (and its wave) stays above subsequent content if they overlap */
  z-index:5;
  /* Increase clearance so the rising water stops well below the crest */
  --wave-clearance: 68px;
}

/* Animated blue fill that rises with the wave */
.page-divider::before{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  /* Stop the rising water short of the crest */
  height:calc(100% - var(--wave-clearance, 16px));
  /* Match the wave's blue gradient so the fill and the section below are seamless */
  background:var(--rgs-blue-grad);
  transform:translateY(100%);
  /* Start the rising fill AFTER the wave has fully slid in to avoid overlapping the curved crest */
  animation:fillUp 1.1s cubic-bezier(0.4, 0.0, 0.2, 1) 3.04s forwards;
  z-index:1;
  /* Soften the top edge of the rising fill to avoid a straight bar overlapping the crest */
  -webkit-mask-image: none;
  mask-image: none;
}

@keyframes fillUp {
  from { transform:translateY(100%); }
  to { transform:translateY(0); }
}

/* Blue background section for content below the wave */
.page-content-blue{
  /* Use the same gradient as the wave for visual continuity */
  background:var(--rgs-blue-grad) !important;
  /* Let content determine height to avoid large empty space below */
  padding-bottom:1rem;
  width:100%;
  opacity:0;
  animation:fadeInBlue 0.5s ease-out 3.04s forwards;
}

@keyframes fadeInBlue {
  from { opacity:0; }
  to { opacity:1; }
}

/* Animated SVG wave */
.divider-wave{
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:130%; /* extend slightly so no straight seam is visible below */
  bottom:-4px; /* tuck under the content edge to avoid flat line */
  transform:translateX(-100%);
  animation:waveSlideIn 3.04s cubic-bezier(0.4, 0.0, 0.2, 1) forwards;
  z-index:2;
  transform-origin:bottom left;
}

@keyframes waveSlideIn {
  from { transform:translateX(-100%) scaleY(1); }
  to { transform:translateX(0) scaleY(1); }
}

@keyframes wave {
  0%, 100% { transform:translateX(0); }
  50% { transform:translateX(-2%); }
}

/* ============ Subpages: blue background + map layout ============ */
/* Apply the same blue vibe without the wave animation */
.page-blue{background:var(--rgs-blue-grad);min-height:auto;padding:0.5rem 0}

/* Breadcrumb navigation */
.breadcrumb{display:flex;align-items:center;gap:0.5rem;font-size:0.9rem;margin-bottom:1.5rem;color:rgba(255,255,255,0.8);flex-wrap:wrap}
.breadcrumb a{color:rgba(255,255,255,0.9);text-decoration:none;transition:color .2s}
.breadcrumb a:hover{color:#fff}
.breadcrumb span[aria-current]{color:#fff;font-weight:600}

/* Path badge integrated in breadcrumb */
.breadcrumb .path-badge{display:inline-flex;padding:0.3rem 0.75rem;background:rgba(255,255,255,0.2);border:1px solid rgba(255,255,255,0.3);border-radius:999px;font-size:0.75rem;font-weight:700;color:#fff;backdrop-filter:blur(4px);margin-left:0.25rem}

/* Main action heading - make it pop! */
.action-heading{margin:0;color:#fff;font-size:2.25rem;font-weight:800;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,0.3);letter-spacing:-0.02em;line-height:1.2}

/* Center inline elements directly under the action heading */
.sub-hero{ text-align:center }

/* Nav-linked subpage hero cards */
.services-hero-highlights,
.contact-hero-quick-card{display:none;margin:0;padding:0;list-style:none}
.quick-label{font-size:0.78rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;opacity:0.85;color:rgba(8,50,90,0.85);display:block;margin-bottom:0.1rem}
.quick-link{color:#08323a;text-decoration:none;font-weight:800;font-size:1.05rem}
.quick-link:hover{text-decoration:underline}
.quick-meta{font-size:0.95rem;font-weight:600;letter-spacing:0.02em;color:#08405a}

@media (min-width:1024px) and (max-width:1280px){
  body.about-page .sub-hero > div{
    max-width:1080px !important;
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:2.3rem;
    align-items:center;
    text-align:left !important;
    padding:2.6rem;
    background:rgba(255,255,255,0.08);
    border-radius:24px;
    border:1px solid rgba(255,255,255,0.2);
    box-shadow:0 25px 70px rgba(5,10,20,0.45);
  }
  body.about-page .breadcrumb{justify-content:flex-start !important}
  body.about-page .about-hero-image{
    width:100%;
    border-radius:18px;
    box-shadow:0 25px 70px rgba(5,10,20,0.45);
  }
  body.about-page .blue-subhead{margin-left:0 !important;margin-right:0 !important}

  body.services-page .sub-hero > div{
    max-width:900px !important;
    padding:1.6rem 2rem 2.1rem;
    background:rgba(255,255,255,0.03);
    border:none;
    border-radius:26px;
    box-shadow:none;
    padding:2.5rem;
    background:rgba(255,255,255,0.08);
    border-radius:24px;
    border:1px solid rgba(255,255,255,0.2);
    box-shadow:0 25px 70px rgba(5,10,20,0.45);
  }
  body.services-page .blue-subhead{margin-left:0 !important;margin-right:0 !important}
  .services-hero-highlights{
    display:flex;
    flex-direction:column;
    gap:0.85rem;
  }
  .services-hero-highlights li{
    background:rgba(8,20,40,0.35);
    border:1px solid rgba(69,183,246,0.35);
    border-radius:16px;
    padding:0.9rem 1rem;
    color:#fff;
    font-weight:700;
    letter-spacing:0.01em;
    line-height:1.35;
  }

  body.contact-page .contact-hero-inner{
    max-width:1000px !important;
    padding:2.4rem;
    background:rgba(255,255,255,0.09);
    border-radius:22px;
    border:1px solid rgba(255,255,255,0.2);
    box-shadow:0 25px 70px rgba(5,10,20,0.45);
    text-align:left !important;
  }
  body.contact-page .contact-hero .call-now-mobile-wrap{justify-content:flex-start}
  body.contact-page .contact-hero .blue-subhead{margin-left:0 !important;margin-right:0 !important}
  .contact-hero-quick-card{
    display:flex;
    gap:1rem;
    margin-top:1.2rem;
    flex-wrap:wrap;
    background:rgba(8,20,40,0.4);
    border-radius:16px;
    border:1px solid rgba(69,183,246,0.35);
    padding:1.25rem 1.4rem;
  }
  .contact-hero-quick-card > div{flex:1 1 30%;min-width:200px;color:#fff}
  .contact-hero-quick-card .quick-label{color:rgba(255,255,255,0.85)}
  .contact-hero-quick-card .quick-link{color:#fff}
  .contact-hero-quick-card .quick-meta{color:#fff}
}

/* Location detection notice (compact pill, centered under action heading) */
.location-notice{display:inline-flex;align-items:center;gap:0.5rem;width:fit-content;background:rgba(255,255,255,0.12);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.22);border-radius:999px;padding:0.5rem 0.75rem;color:#fff;font-size:0.85rem;opacity:0.9;transition:opacity .2s;margin:0.5rem auto}
.location-notice:hover{opacity:1}
.location-icon{font-size:1rem;filter:drop-shadow(0 1px 3px rgba(0,0,0,0.25))}

/* If the notice ever renders inside a grid, center it */
.map-section .location-notice{justify-self:center}

.map-section{display:grid;grid-template-columns:2fr 1fr;gap:1.25rem;align-items:start;margin-top:1rem}
.map-card{background:rgba(255,255,255,0.06);border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,0.08);overflow:hidden;position:relative}

/* Map loading state */
.map-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;min-height:420px;color:#fff}
.map-loader .spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,0.2);border-top-color:#fff;border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:1rem}
@keyframes spin{to{transform:rotate(360deg)}}
.map-loader p{font-size:0.95rem;opacity:0.9}

.map{height:60vh;min-height:420px;border-radius:16px}
.list-card{background:rgba(255,255,255,0.9);border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,0.08);padding:1rem;height:60vh;overflow:auto;position:sticky;top:1rem;align-self:start}

/* Small section title for the right panel */
.panel-title{margin:0 0 0.5rem 0;font-size:0.95rem;font-weight:800;color:#08323a}

/* Custom map controls */
.map-center-btn{background:#fff;border:0;border-radius:8px;padding:0.6rem 1rem;margin:10px;box-shadow:0 2px 8px rgba(0,0,0,0.15);cursor:pointer;font-weight:700;font-size:0.9rem;transition:transform .15s, box-shadow .15s}
.map-center-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.2)}
.map-center-btn:active{transform:translateY(0)}

/* Make the footer turn blue immediately on blue-page subpages (no wave delay) */
.blue-page .site-footer{color:rgba(255,255,255,0.95);animation:none}
.blue-page .site-footer::before{opacity:1;animation:none}

/* ============================================================================
   Builder Landing Page — Premium Commercial Design
   ============================================================================ */

.builder-page{background:#f8fbff;color:#1a1a1a;overflow-x:hidden}

/* Full-Screen Hero */
.builder-hero-full{position:relative;min-height:55vh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1rem 0 5rem 0}

.builder-hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#45b7f6 0%,#0b72ff 50%,#2d5aa8 100%);z-index:1}

.builder-hero-grid{position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent 0,transparent 49px,rgba(255,255,255,0.05) 49px,rgba(255,255,255,0.05) 50px),repeating-linear-gradient(90deg,transparent 0,transparent 49px,rgba(255,255,255,0.05) 49px,rgba(255,255,255,0.05) 50px);z-index:3;opacity:0.35}

.builder-hero-content-wrap{position:relative;z-index:4;text-align:center;padding:2rem;max-width:1100px;animation:heroFadeIn 1.2s ease-out}
/* Architectural blueprint overlay in hero */
.builder-hero-blueprint{position:absolute;inset:0;z-index:2;background-image:url('../assets/media/blueprint.jpg');background-size:cover;background-position:center;opacity:0;mix-blend-mode:normal;filter:grayscale(100%) contrast(1.05);display:none}
.builder-hero-blueprint::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 40%, rgba(0,0,0,0.25) 100%)}

@keyframes heroFadeIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

.builder-hero-badge{display:inline-block;background:rgba(255,255,255,0.2);border:2px solid #fff;color:#fff;padding:0.5rem 1.25rem;border-radius:50px;font-size:0.75rem;font-weight:900;letter-spacing:0.15em;text-transform:uppercase;margin-bottom:2rem;backdrop-filter:blur(8px);box-shadow:0 4px 16px rgba(0,0,0,0.1)}

.builder-hero-title{margin:0 0 1.5rem 0;line-height:1.1}

.builder-hero-line1{display:block;font-size:clamp(2rem,6vw,5rem);font-weight:900;color:#fff;letter-spacing:-0.03em;margin-bottom:0.25rem;text-shadow:0 2px 16px rgba(0,0,0,0.15)}

.builder-hero-line2{display:block;font-size:clamp(2.5rem,7vw,6rem);font-weight:900;background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-0.04em}

.builder-hero-tagline{font-size:clamp(1rem,2.5vw,1.5rem);color:rgba(255,255,255,0.95);margin:0 0 3rem 0;font-weight:400}

.builder-hero-stats{display:flex;gap:3rem;justify-content:center;margin-bottom:3rem;flex-wrap:wrap}

.builder-stat{text-align:center}

.builder-stat-number{font-size:clamp(2.5rem,5vw,4rem);font-weight:900;color:#fff;line-height:1;margin-bottom:0.5rem;text-shadow:0 2px 12px rgba(0,0,0,0.2)}

.builder-stat-label{font-size:0.9rem;color:rgba(255,255,255,0.85);text-transform:uppercase;letter-spacing:0.05em;font-weight:600}

.builder-cta-group{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}

.builder-cta-primary{display:inline-block;background:#fff;color:#0b72ff;padding:1.25rem 3rem;font-size:1.125rem;font-weight:800;text-decoration:none;border-radius:50px;box-shadow:0 8px 32px rgba(0,0,0,0.2);transition:all .3s ease;border:none;cursor:pointer;letter-spacing:0.02em}

.builder-cta-primary:hover{transform:translateY(-3px);box-shadow:0 12px 48px rgba(0,0,0,0.3);background:#ffeb3b;color:#0b72ff}

.builder-cta-secondary{display:inline-block;background:transparent;color:#fff;padding:1.25rem 3rem;font-size:1.125rem;font-weight:700;text-decoration:none;border-radius:50px;border:2px solid #fff;transition:all .3s ease;backdrop-filter:blur(8px)}

.builder-cta-secondary:hover{border-color:#fff;background:rgba(255,255,255,0.2);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.15)}

.builder-hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.9);font-size:0.85rem;font-weight:600;letter-spacing:0.05em;z-index:3;animation:scrollBounce 2s ease-in-out infinite}

@keyframes scrollBounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

/* Why Choose Us Section */
.builder-why{background:#fff;padding:1rem 2rem 5rem 2rem;position:relative}

.builder-why::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(11,114,255,0.3) 50%,transparent 100%)}

.builder-section-header{text-align:center;margin-bottom:5rem}

.builder-section-label{display:block;color:#0b72ff;font-size:0.85rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;margin-bottom:1rem}

.builder-section-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:900;background:linear-gradient(135deg,#45b7f6 0%,#0b72ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:-0.03em}

.builder-why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:3rem;max-width:1200px;margin:0 auto}

.builder-why-card{background:#f8fbff;border:2px solid #e0f2ff;border-radius:16px;padding:3rem 2rem;text-align:center;transition:all .3s ease;position:relative;overflow:hidden}

.builder-why-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#45b7f6,#0b72ff);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}

.builder-why-card:hover{border-color:#45b7f6;transform:translateY(-8px);box-shadow:0 16px 48px rgba(11,114,255,0.15)}

.builder-why-card:hover::before{transform:scaleX(1)}

.builder-why-icon{width:64px;height:64px;margin:0 auto 1.5rem auto;color:#0b72ff;opacity:0.9}

.builder-why-card h3{font-size:1.75rem;font-weight:800;color:#1a1a1a;margin:0 0 1rem 0;letter-spacing:-0.02em}

.builder-why-card p{font-size:1rem;color:#555;line-height:1.7;margin:0}

/* Coverage Section */
.builder-coverage{background:linear-gradient(180deg,#f0f8ff 0%,#e0f2ff 100%);padding:1rem 2rem 5rem 2rem;position:relative}

.builder-coverage::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(11,114,255,0.3) 50%,transparent 100%)}

.builder-coverage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;max-width:1200px;margin:0 auto 3rem auto}

.builder-coverage-card{background:#fff;border:2px solid #d0e9ff;border-radius:12px;padding:2rem;transition:all .3s ease;position:relative;cursor:default;box-shadow:0 2px 8px rgba(11,114,255,0.08)}

.builder-coverage-card:hover{background:#f8fbff;border-color:#45b7f6;transform:translateY(-4px);box-shadow:0 8px 32px rgba(11,114,255,0.2)}

.builder-coverage-number{position:absolute;top:1rem;right:1.5rem;font-size:3rem;font-weight:900;color:rgba(11,114,255,0.1);line-height:1}

.builder-coverage-region{font-size:1.5rem;font-weight:800;color:#1a1a1a;margin:0 0 0.75rem 0;letter-spacing:-0.01em}

.builder-coverage-cities{font-size:0.95rem;color:#666;line-height:1.6}

.builder-coverage-footer{text-align:center;max-width:600px;margin:0 auto}

.builder-coverage-footer p{color:#555;font-size:1.1rem;margin:0}

.builder-coverage-footer a{color:#0b72ff;text-decoration:none;font-weight:700;transition:color .2s}

.builder-coverage-footer a:hover{color:#45b7f6;text-decoration:underline}

/* Final CTA Section */
.builder-cta-final{background:linear-gradient(135deg,#45b7f6 0%,#0b72ff 100%);padding:6rem 2rem;text-align:center;position:relative}

.builder-cta-final::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent 0,transparent 49px,rgba(255,255,255,0.05) 49px,rgba(255,255,255,0.05) 50px),repeating-linear-gradient(90deg,transparent 0,transparent 49px,rgba(255,255,255,0.05) 49px,rgba(255,255,255,0.05) 50px);opacity:0.3;pointer-events:none}

.builder-cta-final .container{position:relative;z-index:2}

.builder-cta-final h2{font-size:clamp(2rem,5vw,3.5rem);font-weight:900;color:#fff;margin:0 0 1rem 0;letter-spacing:-0.02em;text-shadow:0 2px 12px rgba(0,0,0,0.1)}

.builder-cta-final p{font-size:1.25rem;color:rgba(255,255,255,0.95);margin:0 0 2.5rem 0;max-width:600px;margin-left:auto;margin-right:auto}

/* Dialog-based modal (builder estimate) - remove native chrome and position like div modal */
dialog.estimate-modal{
  position:fixed;
  inset:0;
  z-index:1000;
  border:none;
  padding:0;
  background:transparent;
  outline:none;
  max-width:100%;
  max-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
dialog.estimate-modal:focus{outline:none}
dialog.estimate-modal::backdrop{background:rgba(0,0,0,.4)}
dialog.estimate-modal .estimate-modal-backdrop{display:none}

/* ===================== Blueprint banner ===================== */
.blueprint-banner{position:relative;isolation:isolate;overflow:hidden}
.blueprint-banner{padding:5rem 0}
.blueprint-bg{position:absolute;inset:0;background-image:linear-gradient(135deg, rgba(69,183,246,.75), rgba(11,114,255,.75)), url('../assets/media/blueprint.jpg');background-size:cover;background-position:center;background-attachment:scroll;filter:grayscale(100%) contrast(1.05);opacity:1;z-index:-1}
@media (min-width: 1024px){.blueprint-bg{background-attachment:fixed}}
.blueprint-content{position:relative;color:#fff;text-align:center}
.blueprint-kicker{display:inline-block;padding:.35rem .75rem;border-radius:999px;background:rgba(255,255,255,.2);backdrop-filter:blur(6px);font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}
.blueprint-title{font-size:clamp(1.8rem,4vw,3rem);font-weight:900;margin:.25rem 0 0 0;text-shadow:0 2px 14px rgba(0,0,0,.2)}
.blueprint-sub{font-size:1.125rem;max-width:760px;margin:1rem auto 2rem auto;color:rgba(255,255,255,.95)}
.blueprint-actions{display:none}

/* Promise bubble */
.blueprint-promise{display:inline-flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:999px;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.6);backdrop-filter:blur(10px);box-shadow:0 8px 24px rgba(0,0,0,.15);color:#fff;max-width:900px}
.blueprint-promise .bp-icon{display:inline-flex;width:28px;height:28px;border-radius:999px;align-items:center;justify-content:center;background:linear-gradient(135deg,#45b7f6,#0b72ff);box-shadow:0 0 0 2px rgba(255,255,255,.35)}
.blueprint-promise .bp-text{font-weight:600;letter-spacing:.01em}
@media (max-width:600px){
  .blueprint-promise{display:flex;text-align:left;padding:.65rem .85rem}
  .blueprint-promise .bp-text{font-size:.95rem}
}

/* Reduced motion considerations */
@media (prefers-reduced-motion: reduce){
  .builder-hero-grid{animation:none}
}

/* iPad landscape: align heading and location notice horizontally with breadcrumb */
@media (min-width:768px) and (max-width:1366px) and (orientation:landscape){
  /* Hide breadcrumb on iPad landscape */
  .sub-hero .breadcrumb{
    display: none !important;
  }
  
  .sub-hero{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    justify-content:center !important;
    position:relative !important;
    text-align:center !important;
  }
  .sub-hero .action-heading{
    flex:0 0 100% !important;
    text-align:center !important;
    margin-bottom:0 !important;
  }
  /* Builder page only: shorten heading text on iPad landscape */
  .sub-hero .action-heading[data-ipad-text]{
    font-size:0; /* Hide original text */
  }
  .sub-hero .action-heading[data-ipad-text]::after{
    content:attr(data-ipad-text);
    font-size:2.25rem; /* Restore heading size */
  }
  
  /* Add audience badge to brand on homeowner/builder pages */
  .brand-audience-badge{
    display:inline-block;
    margin-left:0.5rem;
    padding-left:0.5rem;
    border-left:2px solid rgba(11,114,255,0.3);
    font-size:0.95rem;
    font-weight:600;
    background:linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    animation:audienceBadgeFadeIn 0.5s ease-out 0.3s both;
  }
  @keyframes audienceBadgeFadeIn{
    from{opacity:0;transform:translateX(-8px)}
    to{opacity:1;transform:translateX(0)}
  }
  
  .sub-hero .location-notice{
    flex:0 0 auto !important;
    width:fit-content !important;
    margin:0.5rem auto 0 auto !important;
  }

  /* iPad landscape: nudge service card contents upward ~15px on home intro grid */
  .services-collage .service-card > *{ transform:translateY(-15px); }
  
  /* Hide tagline on all pages except home page */
  .header-tagline{
    display:none !important;
  }
  /* Show tagline only on home page (has .hero section) */
  body:has(.hero) .header-tagline{
    display:block !important;
  }
  
  /* Shorten map and list cards by 60px */
  .map{
    height:calc(60vh - 60px) !important;
    min-height:360px !important;
  }
  .map-loader{
    height:calc(60vh - 60px) !important;
    min-height:360px !important;
  }
  .list-card{
    height:calc(60vh - 60px) !important;
  }
  
  /* Adjust map/list column proportions: map 20% narrower, list takes remaining space */
  .map-section{
    grid-template-columns:1.36fr 1fr !important;
  }
  
  /* Custom suggestions dropdown anchored to the search input */
  .region-search-wrap{position:relative}
  .region-suggestions{position:absolute;left:0;top:calc(100% + 4px);width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,0.08);max-height:12rem;overflow:auto;z-index:1000}
  .region-suggestion{padding:0.55rem 0.75rem;cursor:pointer;font-size:0.95rem;line-height:1.25;border-bottom:1px solid #f1f5f9}
  .region-suggestion:last-child{border-bottom:none}
  .region-suggestion[aria-selected="true"], .region-suggestion:hover{background:#f1f5f9}
  
  /* Center "Browse service regions" title on iPad landscape */
  .panel-title{
    text-align:center !important;
  }
  
  /* Shrink stats boxes by 20% */
  .coverage-panel .stat{
    padding:0.72rem 0.8rem !important; /* 0.9rem * 0.8 = 0.72rem, 1rem * 0.8 = 0.8rem */
  }
  .coverage-panel .stat-icon{
    font-size:1.2rem !important; /* 1.5rem * 0.8 = 1.2rem */
    margin-bottom:0.2rem !important;
  }
  .coverage-panel .stat .value{
    font-size:1.44rem !important; /* 1.8rem * 0.8 = 1.44rem */
  }
  .coverage-panel .stat .label{
    font-size:0.68rem !important; /* 0.85rem * 0.8 = 0.68rem */
  }
  
  /* Compact region chips */
  .region-chip{
    padding:0.34rem 0.5rem !important; /* Slight further reduction */
    font-size:0.8rem !important; /* Nudge smaller */
    gap:0.3rem !important; /* Tighter internal gap */
  }
  .region-chip .dot{
    width:5px !important;
    height:5px !important;
  }
  .region-chip .count{
    font-size:0.68rem !important;
  }
  
  /* Tighten spacing in coverage panel */
  html:is(.rgs-ios,.rgs-android) .coverage-panel{
    gap:0.55rem !important;
  }
  .coverage-panel .regions{
    gap:0.3rem !important;
    /* Use grid to eliminate ragged gaps; pack items tightly */
    display:grid !important;
    grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));
    grid-auto-flow:dense;
    align-items:start;
  }
  /* Make chips fill their grid cell width for tidy alignment */
  .coverage-panel .regions .region-chip{width:100% !important; justify-content:center}
  /* Hide the small blue dots in region chips (ipad landscape only) */
  .coverage-panel .regions .region-chip .dot{display:none !important}
  /* Ensure single-line chips match the visual height of larger chips and keep content centered vertically */
  .coverage-panel .regions .region-chip{
    min-height:2.6rem !important;
    align-items:center !important;
  }
  .coverage-panel .regions .region-chip .name{line-height:1.15}

  /* Prevent region chip expansion on iPad landscape - disable all transforms and transitions */
  .region-chip{
    transform: none !important;
    transition: box-shadow .15s !important;
  }
  .region-chip:hover{
    transform: none !important;
    box-shadow: 0 8px 22px rgba(11,114,255,0.16) !important;
  }
  .region-chip.nearest-region{
    transform: none !important;
  }
  /* Hide the "Nearest" badge on iPad landscape to prevent chip expansion */
  .nearest-badge{
    display: none !important;
  }

  /* Regional pages: Make cities/coverage sidebar static instead of sticky */
  .showcase-coverage{
    position: static !important;
  }

  /* Compact the 3 reasons cards to match sidebar height */
  .advantage-cards{
    gap: 1rem !important;
    margin-top: 1.5rem !important;
    transform: translateY(5px);
  }
  .advantage-card{
    padding: 0 0 0 1.5rem !important;
    gap: 1.5rem !important;
  }
  .advantage-number{
    width: 70px !important;
  }
  .advantage-icon{
    width: 44px !important;
    height: 44px !important;
  }
  .advantage-content{
    padding-top: 0 !important;
  }
  .advantage-content h3{
    font-size: 1.1rem !important;
    margin: 0 0 0.4rem !important;
  }
  .advantage-content p{
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
  }
  /* Reduce the "Skilled" label expansion to prevent overlap with left line */
  .advantage-card:hover .number-label{
    font-size: 1rem !important;
    transform: scale(1.1) !important;
  }

  /* Scroll-triggered reveal: mirror hover state when .revealed is added (iPad landscape only) */
  .advantage-card.revealed::before{
    opacity: 1;
    transform: scaleY(1);
  }
  .advantage-card.revealed .advantage-icon{
    color: #0b72ff;
    transform: scale(1.06);
    stroke-width: 2;
  }
  .advantage-card.revealed .number-label{
    font-size: 1rem;
    color: #0b72ff;
    transform: scale(1.1);
    font-weight: 800;
  }
  .advantage-card.revealed .advantage-content h3{
    color: #0b72ff;
  }

  /* Make cities/coverage card wider without distorting content */
  .showcase-coverage{
    width: 115%;
    margin-left: -7.5%;
    margin-right: -7.5%;
  }

  /* Move all showcase content right by 2px (iPad landscape only) */
  .showcase-grid{
    transform: translateX(2px);
  }

  /* Treasure Valley regional page: move the coverage card 7px left without changing its size */
  .regional-showcase--treasure-valley .showcase-coverage .coverage-card{
    transform: translateX(-7px);
  }

  /* Apply the same 7px left nudge to the other seven regional pages (coverage card only) */
  .regional-showcase--central-idaho .showcase-coverage .coverage-card,
  .regional-showcase--magic-valley .showcase-coverage .coverage-card,
  .regional-showcase--mountain-home .showcase-coverage .coverage-card,
  .regional-showcase--north-idaho .showcase-coverage .coverage-card,
  .regional-showcase--upper-snake .showcase-coverage .coverage-card,
  .regional-showcase--west-central-mountains .showcase-coverage .coverage-card,
  .regional-showcase--wood-river-valley .showcase-coverage .coverage-card{
    transform: translateX(-7px);
  }

  /* Reduce gap between "Ready to Protect Your Home?" heading and top edge of CTA section (iPad landscape only) */
  .regional-cta h2{
    margin-top: -1rem !important;
  }

  /* Make city badges more compact to fit longer names like Middleton and Garden City */
  .city-badge{
    font-size: 0.78rem !important;
    padding: 0.4rem 0.6rem !important;
    letter-spacing: -0.02em !important;
  }

  /* Reduce coverage card padding to give more room for city badges */
  .coverage-card{
    padding: 2.2rem 1.2rem 2.8rem !important;
  }

  /* Increase CTA section image size (iPad landscape only) */
  body .regional-cta .container{
    max-width: 95% !important;
  }

  /* Bold coverage intro text for all regional pages (iPad landscape only) */
  .regional-showcase--treasure-valley .coverage-intro,
  .regional-showcase--central-idaho .coverage-intro,
  .regional-showcase--magic-valley .coverage-intro,
  .regional-showcase--mountain-home .coverage-intro,
  .regional-showcase--north-idaho .coverage-intro,
  .regional-showcase--upper-snake .coverage-intro,
  .regional-showcase--west-central-mountains .coverage-intro,
  .regional-showcase--wood-river-valley .coverage-intro{
    font-weight: 700;
  }
  
  /* Remove bold from hero card secondary buttons (iPad landscape only) */
  .hero-bubble .cta-secondary{
    font-weight: 400 !important;
  }
  .hero-bubble .cta-secondary .label{
    font-weight: 400 !important;
  }

  /* Move 3 reasons down 26px for Wood River Valley and West Central Mountains (iPad landscape only) */
  .regional-showcase--wood-river-valley .advantage-cards,
  .regional-showcase--west-central-mountains .advantage-cards{
    transform: translateY(26px);
  }

  /* Move 3 reasons down 15px for Central Idaho (iPad landscape only) */
  .regional-showcase--central-idaho .advantage-cards{
    transform: translateY(15px);
  }

  /* Move 3 reasons down 30px for North Idaho / Panhandle (iPad landscape only) */
  .regional-showcase--north-idaho .advantage-cards{
    transform: translateY(30px);
  }
}

@media (max-width:900px){
  .map-section{grid-template-columns:1fr}
  .list-card{height:auto;min-height:auto;position:static;top:auto}
  .map{height:48vh;min-height:320px}
  .builder-hero-stats{gap:2rem}
  .builder-cta-group{flex-direction:column;align-items:center}
  .builder-cta-primary,.builder-cta-secondary{width:100%;max-width:320px}
  .builder-why,.builder-coverage,.builder-cta-final{padding:5rem 1.5rem}
  .builder-why-grid,.builder-coverage-grid{grid-template-columns:1fr;gap:2rem}
}

/* Coverage panel visuals */
.coverage-panel{display:flex;flex-direction:column;gap:1rem}

/* Search box for regions */
.region-search{width:100%;padding:0.7rem 1rem;border:1px solid rgba(0,0,0,0.1);border-radius:8px;font-size:0.95rem;background:#fff;transition:border .2s, box-shadow .2s}
.region-search:focus{outline:none;border-color:#0b72ff;box-shadow:0 0 0 3px rgba(11,114,255,0.1)}
.region-search::placeholder{color:#999}

.coverage-panel .stats{display:flex;gap:1rem}
.coverage-panel .stat{flex:1;background:linear-gradient(135deg, rgba(255,255,255,0.35), rgba(255,255,255,0.15));border:1px solid rgba(255,255,255,0.5);padding:0.9rem 1rem;border-radius:12px;text-align:center;backdrop-filter: blur(6px);position:relative;overflow:hidden}
/* Pulse animation on stats */
.coverage-panel .stat::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at center, rgba(255,255,255,0.3) 0%, transparent 70%);opacity:0;animation:statPulse 2s ease-out 0.3s}
@keyframes statPulse{0%{opacity:0;transform:scale(0.8)}50%{opacity:1}100%{opacity:0;transform:scale(1.5)}}

.coverage-panel .stat-icon{display:block;font-size:1.5rem;margin-bottom:0.25rem}
.coverage-panel .stat .value{display:block;font-size:1.8rem;font-weight:800;color:#08323a}
.coverage-panel .stat .label{display:block;font-size:0.85rem;color:#32505a}

.coverage-panel .regions{display:flex;flex-wrap:wrap;gap:0.6rem}
.region-chip{display:inline-flex;align-items:center;gap:0.5rem;padding:0.6rem 0.8rem;border-radius:999px;background:#f7fbff;border:1px solid #e1eef9;color:#08323a;cursor:pointer;transition:transform .15s, box-shadow .15s}
.region-chip .dot{width:8px;height:8px;border-radius:50%;background:#0b72ff;box-shadow:0 0 0 3px rgba(11,114,255,0.12)}
.region-chip .name{font-weight:700}
.region-chip .count{font-size:0.85rem;opacity:0.7}
.region-chip:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(11,114,255,0.16)}

/* Nearest region highlight */
.region-chip.nearest-region{background:linear-gradient(135deg, #0b72ff 0%, #45b7f6 100%);color:#fff;border-color:#0b72ff;box-shadow:0 4px 16px rgba(11,114,255,0.35)}
.region-chip.nearest-region .dot{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,0.3)}
.region-chip.nearest-region .count{opacity:0.95}
.nearest-badge{display:inline-flex;padding:0.2rem 0.5rem;background:rgba(255,255,255,0.25);border-radius:999px;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.5px}


@media (max-width:900px){
  :root{ --hero-offset: 0; }
  .hero-media .hero-video{width:60%;max-width:520px}
  /* soften upward shift on medium screens */
  .hero-cta{margin-top:-1.25rem}
  /* stack video and bubble vertically on smaller screens */
  .hero-content-wrapper{flex-direction:column;align-items:center;width:100%;margin-left:0}
  .hero-bubble{max-width:600px;margin-top:1rem}
}

/* 15" laptop / large notebook adjustment (approx widths 1280px - 1535px)
   Reduce left shift so content centers better on narrower widescreen displays
   without altering the desktop ≥1536px experience. */
@media (max-width:1535px){
  :root{ --hero-offset: -6%; }
}
@media (max-width:1440px){
  :root{ --hero-offset: -4.5%; }
}
@media (max-width:1366px){
  :root{ --hero-offset: -3.5%; }
}

@media (max-width:520px){
  /* Hide header tagline to reduce vertical space */
  .header-tagline{ display:none !important; }
  
  /* Shrink logo by 20% and move it left to fit brand text on one line */
  .site-header .container{ justify-content:flex-start !important; }
  .header-left{ 
    gap:0.6rem; 
    margin-left:0.5rem !important; 
    width:auto !important; 
    justify-content:flex-start !important; 
  }
  .idaho-logo-wrap{ 
    width:48px !important; 
    height:48px !important; 
    padding:3.5px !important; 
  }
  .idaho-logo{ 
    width:32.5px !important; 
    height:32.5px !important; 
  }
  .brand{ font-size:1.35rem; white-space:nowrap; }
  
  /* Fix expanded mobile nav overflow */
  .main-nav[data-open="true"] {
    width:100% !important;
    max-width:100vw !important;
    margin:0 !important;
    padding:0.6rem !important;
    box-sizing:border-box !important;
    flex-direction:column !important;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:1000;
    background: rgba(11,114,255,0.95) !important;
    backdrop-filter: blur(10px);
  }
  .main-nav[data-open="true"] a {
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
    background: rgba(255,255,255,0.95) !important;
    color: #08323a !important;
  }
  .site-header{ position:relative; }
  
  html:is(.rgs-ios,.rgs-android) .hero-media .hero-video{width:100%;max-width:100%}
  /* avoid crowding the header on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .hero-cta{margin-top:0}
  html:is(.rgs-ios,.rgs-android) .hero-content-wrapper{padding:0}
  html:is(.rgs-ios,.rgs-android) .hero-bubble{max-width:90%}
  /* iPhone portrait: canvas fills available width with padding on container for breathing room */
  html:is(.rgs-ios,.rgs-android) .hero-canvas{ width:100% !important; min-width:0 !important; max-width:100% !important; margin:0 auto; aspect-ratio:16/9; }
  
  /* Builder landing page: hide tagline on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-hero-tagline{ display:none; }
  
  /* Builder landing page: shrink stats section on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-hero-stats{ gap:1.15rem; margin-bottom:1.725rem; }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-stat-number{ font-size:clamp(1.44rem,5.75vw,2.3rem); margin-bottom:0.29rem; }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-stat-label{ font-size:0.52rem; }
  
  /* Builder landing page: shrink CTA buttons by 20% (padding only, keep text same) on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-cta-primary{ padding:1rem 2.4rem; }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-cta-secondary{ padding:1rem 2.4rem; }
  
  /* Builder landing page: make Contact Sales button match Get Builder Estimate style on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-cta-secondary{ 
    background:#fff; 
    color:#0b72ff; 
    border:none; 
    font-weight:800; 
    box-shadow:0 8px 32px rgba(0,0,0,0.2); 
    backdrop-filter:none; 
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-cta-secondary:hover{
    background:#ffeb3b;
    color:#0b72ff;
    border:none;
    transform:translateY(-3px);
    box-shadow:0 12px 48px rgba(0,0,0,0.3);
  }
  
  /* Builder landing page: hide blueprint subtext on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .builder-page .blueprint-sub{ display:none; }

  /* Builder landing page: move blueprint promise down 25px on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .builder-page .blueprint-promise{ margin-top:25px; }
  
  /* Builder landing page: remove kicker bubble styling on iPhone portrait (keep text) */
  html:is(.rgs-ios,.rgs-android) .builder-page .blueprint-kicker{ 
    background:none; 
    backdrop-filter:none; 
    box-shadow:none; 
    border:none; 
    padding:0; 
    border-radius:0; 
    margin-bottom:0.75rem; 
  }
}

/* iPhone portrait: animated dropdown menu */
@media (max-width:520px){
  /* Position header for dropdown anchoring */
  .site-header{
    position: sticky;
    top: 0;
    z-index: 500;
  }
  
  /* Hide nav by default, prepare for dropdown */
  .site-header .main-nav{
    display: flex !important;
    flex-direction: row;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 100%;
    margin: 0;
    padding: 0 0.5rem;
    gap: 0.4rem;
    align-items: center;
    justify-content: flex-start;
    background: rgba(11,114,255,0.75);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.25);
    border-radius: 0;
    z-index: 1000;
    /* Hidden state */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0s 0.25s;
  }
  
  /* Nav links styling */
  .site-header .main-nav a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    white-space: nowrap;
    padding: 0.5rem 0.9rem;
    background: rgba(255,255,255,0.75);
    color: #08323a;
    text-align: center;
    border-radius: 6px;
    font-weight: 700;
    transition: all 0.2s ease;
  }
  
  .site-header .main-nav a:hover{
    background: rgba(255,255,255,1);
    transform: translateX(2px);
  }
  
  /* Open state - triggered by JS */
  .site-header .main-nav.nav-open{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s 0s;
  }
  
  /* Ensure hamburger is visible */
  .nav-toggle{
    display: inline-block !important;
  }
}

/* hero-media: contains the video canvas */
.hero-media{
  position:relative;
  display:flex;
  justify-content:center; /* center video canvas */
  align-items:center;
  flex-shrink:0;
  /* Remove any borders that might show as grey lines */
  border:none;
  outline:none;
}
.hero-media .hero-video{
  display:none; /* legacy hidden selector for any direct video use */
}

/* visible canvas that mirrors the video frames */
.hero-canvas{
  width:75vw;
  max-width:1200px;
  min-width:630px;
  border-radius:0; /* remove rounded corners to eliminate edge artifacts */
  background:#000;
  display:block;
  flex-shrink:0;
  /* reserve space and reduce layout shift before JS sizes the canvas */
  aspect-ratio: 16 / 9;
  min-height: 240px;
  /* Add subtle loading indicator while video loads */
  position: relative;
  /* Remove any default borders/outlines that cause grey lines */
  border:none;
  outline:none;
  box-shadow:none;
}

.hero-canvas::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  margin: -20px 0 0 -20px;
  border: 3px solid rgba(255,255,255,0.1);
  border-top: 3px solid rgba(255,255,255,0.6);
  border-radius: 50%;
  animation: heroCanvasLoading 1s linear infinite;
  z-index: 1;
}

@keyframes heroCanvasLoading {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.hero-video-hidden{position:absolute!important;left:-9999px!important;top:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

/* Aggressively hide all video controls */
.hero-video::-webkit-media-controls-enclosure,
.hero-video::-webkit-media-controls-panel,
.hero-video::-webkit-media-controls-overlay-enclosure,
.hero-video::-webkit-media-controls-overlay-play-button,
.hero-video::-webkit-media-text-track-container,
.hero-video::-webkit-media-controls {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Force the video element itself to never show controls */
.hero-video {
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

/* Target Chrome's native video overlay */
.hero-video::-internal-media-controls-overlay-cast-button,
.hero-video::-internal-media-controls-download-button,
.hero-video::-webkit-media-controls-timeline-container,
.hero-video::-webkit-media-controls-current-time-display,
.hero-video::-webkit-media-controls-time-remaining-display,
.hero-video::-webkit-media-controls-toggle-closed-captions-button,
.hero-video::-webkit-media-controls-fullscreen-button,
.hero-video::-webkit-media-controls-rewind-button,
.hero-video::-webkit-media-controls-return-to-realtime-button,
.hero-video::-webkit-media-controls-seek-back-button,
.hero-video::-webkit-media-controls-seek-forward-button,
.hero-video::-webkit-media-controls-mute-button,
.hero-video::-webkit-media-controls-volume-slider,
.hero-video::-webkit-media-controls-volume-slider-container {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  position: fixed !important;
  top: -100px !important;
  pointer-events: none !important;
}

/* =============================================================
   Laptop band (12–15.5"): proportional hero card shrink
   Remove transform scaling and reduce real sizes so content
   scales evenly and height stays compact.
   ============================================================= */
@media (min-width:1281px) and (max-width:1535px){
  /* Nav buttons: equal width + larger font */
  .main-nav a{
    flex:1 1 0;
    min-width:0;
    width:90px;
    font-size:1.1rem;
  }

  .hero-cta .hero-content-wrapper{ gap:1.75rem; }
  .hero-cta .hero-media{ transform:none !important; }
  .hero-cta .hero-bubble{
    transform:none !important;
    max-width:500px; /* from 550px: ~9% narrower */
    padding:2.1rem 2.1rem; /* from 2.5rem: ~16% tighter */
    gap:1.5rem; /* from 1.8rem */
  }
  .hero-cta .cta-heading{ font-size:0.98rem; }
  .hero-cta .primary-ctas{ gap:0.9rem; }
  .hero-cta .cta-primary{ padding:1.35rem 1.8rem; flex:1 1 0; min-width:0; }
  .hero-cta .cta-primary .icon{ font-size:2.3rem; }
  .hero-cta .cta-primary .label{ font-size:1.18rem; }
  .hero-cta .cta-divider{ margin:0.25rem 0; }
  .hero-cta .cta-divider span{ font-size:0.86rem; }
  .hero-cta .secondary-ctas{ gap:0.5rem; }
  .hero-cta .cta-secondary{ padding:0.62rem 1rem; font-size:0.92rem; }
  /* Shift entire hero group down ~20px for laptop band */
  .hero-cta .hero-content-wrapper{ transform:translateX(var(--hero-offset, -9.5%)) translateY(20px); }

  /* ===================== Intro section bubble & chip alignment ===================== */
  /* Wrap the left column content in a subtle frosted bubble for laptop build */
  .intro-copy{
    background:#c5e0ff; /* match service card blue */
    backdrop-filter:blur(14px);
    border:1px solid rgba(11,114,255,0.18);
    box-shadow:0 18px 48px rgba(11,114,255,0.12);
    border-radius:18px;
    padding:2.1rem 2.4rem 1.52rem 2.8rem; /* bottom tightened further (1.65rem→1.52rem ≈2px lift) final alignment tweak */
    position:relative;
  }
  /* Keep the existing vertical gradient bar but pull it inside padded area */
  .intro-copy::before{
    left:1rem;
    top:calc(1.1rem + 35px);          /* shift down 35px from original position */
    height:calc(85% + 15px);          /* extend by 15px */
    bottom:auto;         /* release bottom so height applies */
  }
  /* Balance headline spacing inside bubble */
  .intro-copy .blue-headline{margin-top:0.25rem;margin-bottom:1.25rem;font-size:3.6rem;color:#0b72ff;}
  .intro-copy .blue-subhead{font-weight:600;}

  /* Unify the 12 info bubbles (6 trust + 6 metrics) into a single two-row grid */
  .intro-trust-section{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    grid-auto-rows:1fr;
    gap:0.75rem;
    margin-top:2.25rem; /* raised 0.35rem to tighten vertical alignment with services grid */
    padding:0.25rem 0 0.25rem; /* slightly reduced top padding so bottom edge lifts */
    transform:translateY(-6px); /* micro upward shift for bottom-edge sync */
  }
  /* Let child grids flatten into parent grid */
  .intro-trust-badges, .intro-metrics{display:contents;}
  /* Override widths so each chip occupies one cell evenly */
  .intro-trust-badges .trust-chip,
  .intro-metrics .intro-metric{
    width:100% !important;
    min-height:76px;
    margin:0 !important;
    background:rgba(255,255,255,0.55);
    border:1px solid rgba(11,114,255,0.18);
    box-shadow:0 4px 16px rgba(11,114,255,0.10);
    color:#08323a;
  }
  .intro-trust-badges .trust-chip .chip-icon{color:#0b72ff;}
  .intro-metrics .intro-metric .metric-value{color:#0b72ff;}
  /* Guarantee chip refinement: force white stars & slightly tighter label so width stays balanced */
  .intro-trust-badges .trust-chip.guarantee-chip .chip-icon{color:#0b72ff !important;}
  .intro-trust-badges .trust-chip.guarantee-chip .chip-icon .star{color:#0b72ff !important; display:inline-block; margin:0 1px;}
  .intro-trust-badges .trust-chip.guarantee-chip .chip-label{font-size:.78rem;}
  /* Center all trust + metric bubbles vertically/horizontally */
  .intro-trust-badges .trust-chip,
  .intro-metrics .intro-metric{display:flex;flex-direction:column;justify-content:center;align-items:center;}
  /* Shrink 'Weeks' unit inside second metric bubble for better balance */
  .intro-metrics .intro-metric:nth-child(2) .metric-value{font-size:1.30rem;}
  .intro-metrics .intro-metric:nth-child(2) .metric-value .metric-unit{font-size:.68em;font-weight:700;letter-spacing:.02em;}
  /* Tighter internal typography tweaks */
  .intro-trust-badges .trust-chip .chip-icon{font-size:1.42rem;margin-bottom:0.15rem;}
  .intro-trust-badges .trust-chip .chip-label{font-size:.82rem;}
  .intro-metrics .intro-metric .metric-value{font-size:1.42rem;margin-bottom:.18rem;}
  .intro-metrics .intro-metric .metric-label{font-size:.78rem;}
  /* Laptop band: border glow animation on scroll (simplified to match iPad pattern) */
  .intro-trust-section .trust-chip,
  .intro-trust-section .intro-metric{
    position:relative;
    will-change:border-color, box-shadow;
    transition:border-color 0.3s ease, box-shadow 0.3s ease;
  }
  @keyframes laptopChipGlow{
    0%{border-color:rgba(11,114,255,0.18);box-shadow:0 4px 16px rgba(11,114,255,0.10)}
    35%{border-color:rgba(69,183,246,0.75);box-shadow:0 0 18px 6px rgba(69,183,246,0.4)}
    65%{border-color:rgba(11,114,255,0.85);box-shadow:0 0 14px 5px rgba(11,114,255,0.5)}
    100%{border-color:rgba(11,114,255,0.18);box-shadow:0 4px 16px rgba(11,114,255,0.10)}
  }
  @media (prefers-reduced-motion: no-preference){
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip,
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric{
      animation:laptopChipGlow 2.2s ease both;
    }
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(2){animation-delay:0.10s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(3){animation-delay:0.20s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(4){animation-delay:0.30s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(5){animation-delay:0.40s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(6){animation-delay:0.50s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(1){animation-delay:0.62s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(2){animation-delay:0.72s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(3){animation-delay:0.82s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(4){animation-delay:0.92s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(5){animation-delay:1.02s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(6){animation-delay:1.12s}
  }
  /* Wider desktop (1536px–1920px) enable same animation so larger laptops still animate */
  @media (min-width:1536px) and (max-width:1920px){
    @media (prefers-reduced-motion: no-preference){
      .intro-trust-section.chips-animated-init .trust-chip,
      .intro-trust-section.chips-animated-init .intro-metric{animation:chipReveal .68s cubic-bezier(.23,1,.32,1) both;}
      .intro-trust-section.chips-animated-init .trust-chip:nth-child(2){animation-delay:.06s}
      .intro-trust-section.chips-animated-init .trust-chip:nth-child(3){animation-delay:.12s}
      .intro-trust-section.chips-animated-init .trust-chip:nth-child(4){animation-delay:.18s}
      .intro-trust-section.chips-animated-init .trust-chip:nth-child(5){animation-delay:.24s}
      .intro-trust-section.chips-animated-init .trust-chip:nth-child(6){animation-delay:.30s}
      .intro-trust-section.chips-animated-init .intro-metric:nth-child(1){animation-delay:.38s}
      .intro-trust-section.chips-animated-init .intro-metric:nth-child(2){animation-delay:.44s}
      .intro-trust-section.chips-animated-init .intro-metric:nth-child(3){animation-delay:.50s}
      .intro-trust-section.chips-animated-init .intro-metric:nth-child(4){animation-delay:.56s}
      .intro-trust-section.chips-animated-init .intro-metric:nth-child(5){animation-delay:.62s}
      .intro-trust-section.chips-animated-init .intro-metric:nth-child(6){animation-delay:.68s}
    }
    @media (prefers-reduced-motion: no-preference){
      .intro-trust-section.chips-animated-init .trust-chip.revealed,
      .intro-trust-section.chips-animated-init .intro-metric.revealed{animation:chipIdlePulse 2.4s ease 0.2s 1 forwards;}
      .intro-trust-section.chips-highlight-active .trust-chip,
      .intro-trust-section.chips-highlight-active .intro-metric{animation:ipadTrustBorderPulse 1.9s ease both;}
      .intro-trust-section.chips-highlight-active .trust-chip:nth-child(2){animation-delay:0.08s}
      .intro-trust-section.chips-highlight-active .trust-chip:nth-child(3){animation-delay:0.16s}
      .intro-trust-section.chips-highlight-active .trust-chip:nth-child(4){animation-delay:0.24s}
      .intro-trust-section.chips-highlight-active .trust-chip:nth-child(5){animation-delay:0.32s}
      .intro-trust-section.chips-highlight-active .trust-chip:nth-child(6){animation-delay:0.40s}
      .intro-trust-section.chips-highlight-active .intro-metric:nth-child(1){animation-delay:0.52s}
      .intro-trust-section.chips-highlight-active .intro-metric:nth-child(2){animation-delay:0.60s}
      .intro-trust-section.chips-highlight-active .intro-metric:nth-child(3){animation-delay:0.68s}
      .intro-trust-section.chips-highlight-active .intro-metric:nth-child(4){animation-delay:0.76s}
      .intro-trust-section.chips-highlight-active .intro-metric:nth-child(5){animation-delay:0.84s}
      .intro-trust-section.chips-highlight-active .intro-metric:nth-child(6){animation-delay:0.92s}
      .intro-trust-section.chips-glow-active .trust-chip,
      .intro-trust-section.chips-glow-active .intro-metric{animation:chipBlueGlow 2.8s ease-in-out 0s 1 forwards;}
      .intro-trust-section.chips-glow-active .trust-chip:nth-child(2){animation-delay:.12s}
      .intro-trust-section.chips-glow-active .trust-chip:nth-child(3){animation-delay:.24s}
      .intro-trust-section.chips-glow-active .trust-chip:nth-child(4){animation-delay:.36s}
      .intro-trust-section.chips-glow-active .trust-chip:nth-child(5){animation-delay:.48s}
      .intro-trust-section.chips-glow-active .trust-chip:nth-child(6){animation-delay:.60s}
      .intro-trust-section.chips-glow-active .intro-metric:nth-child(1){animation-delay:.72s}
      .intro-trust-section.chips-glow-active .intro-metric:nth-child(2){animation-delay:.84s}
      .intro-trust-section.chips-glow-active .intro-metric:nth-child(3){animation-delay:.96s}
      .intro-trust-section.chips-glow-active .intro-metric:nth-child(4){animation-delay:1.08s}
      .intro-trust-section.chips-glow-active .intro-metric:nth-child(5){animation-delay:1.20s}
      .intro-trust-section.chips-glow-active .intro-metric:nth-child(6){animation-delay:1.32s}
    }
  }
  /* Ensure services collage height matches combined two-row chip grid vertically */
  .services-collage .services-grid{align-items:stretch;}
  /* Fine tune card vertical padding for alignment */
  .services-collage .service-card{padding:0.85rem 0.9rem;}
  /* Make the 6 cards fill the full left container height (3 equal rows) */
  .services-collage{display:flex;flex-direction:column}
  .services-collage .services-grid{flex:1;height:100%;grid-template-rows:repeat(3,1fr)}
  .services-collage .service-card{height:100%;display:flex;flex-direction:column}
  /* Keep the availability pill (All Year / months) snug, not full-width */
  .services-collage .service-card .service-note{align-self:center;width:auto;max-width:max-content}
  /* Alignment helper: stretch right column to match left grid height */
  .services-collage{align-self:stretch;display:flex;flex-direction:column;justify-content:stretch;}
  /* Optional: if slight misalignment remains, allow precision nudge */
  .intro-grid{align-items:stretch;}
  /* Guard: only apply unified chip layout in wide laptop band; revert on larger desktops */
  /* Hide the 'What we do' header to shift service cards upward */
  .services-collage .section-header{display:none;}
}

/* =============================================================
   Wide Desktop (1536px+): intro-copy bubble styling for larger screens
   ============================================================= */
@media (min-width:1536px){
  /* Intro section bubble for wide desktops */
  .intro-copy{
    background:#c5e0ff;
    backdrop-filter:blur(14px);
    border:1px solid rgba(11,114,255,0.18);
    box-shadow:0 18px 48px rgba(11,114,255,0.12);
    border-radius:18px;
    padding:2.1rem 2.4rem 1.52rem 2.8rem;
    position:relative;
  }
  .intro-copy::before{
    left:1rem;
    top:calc(1.1rem + 35px);
    height:calc(85% + 15px);
    bottom:auto;
  }
  .intro-copy .blue-headline{margin-top:0.25rem;margin-bottom:1.25rem;font-size:3.6rem;color:#0b72ff;}
  .intro-copy .blue-subhead{font-weight:600;}

  /* Unified 12 chip grid (6 trust + 6 metrics) */
  .intro-trust-section{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    grid-auto-rows:1fr;
    gap:0.75rem;
    margin-top:2.25rem;
    padding:0.25rem 0 0.25rem;
    transform:translateY(-6px);
  }
  .intro-trust-badges, .intro-metrics{display:contents;}
  .intro-trust-badges .trust-chip,
  .intro-metrics .intro-metric{
    width:100% !important;
    min-height:76px;
    margin:0 !important;
    background:rgba(255,255,255,0.55);
    border:1px solid rgba(11,114,255,0.18);
    box-shadow:0 4px 16px rgba(11,114,255,0.10);
    color:#08323a;
  }
  .intro-trust-badges .trust-chip .chip-icon{color:#0b72ff;}
  .intro-metrics .intro-metric .metric-value{color:#0b72ff;}
  .intro-trust-badges .trust-chip.guarantee-chip .chip-icon{color:#0b72ff !important;}
  .intro-trust-badges .trust-chip.guarantee-chip .chip-icon .star{color:#0b72ff !important; display:inline-block; margin:0 1px;}
  .intro-trust-badges .trust-chip.guarantee-chip .chip-label{font-size:.78rem;}
  .intro-trust-badges .trust-chip,
  .intro-metrics .intro-metric{display:flex;flex-direction:column;justify-content:center;align-items:center;}
  .intro-metrics .intro-metric:nth-child(2) .metric-value{font-size:1.30rem;}
  .intro-metrics .intro-metric:nth-child(2) .metric-value .metric-unit{font-size:.68em;font-weight:700;letter-spacing:.02em;}
  .intro-trust-badges .trust-chip .chip-icon{font-size:1.42rem;margin-bottom:0.15rem;}
  .intro-trust-badges .trust-chip .chip-label{font-size:.82rem;}
  .intro-metrics .intro-metric .metric-value{font-size:1.42rem;margin-bottom:.18rem;}
  .intro-metrics .intro-metric .metric-label{font-size:.78rem;}

  /* Services collage alignment */
  .services-collage .services-grid{align-items:stretch;}
  .services-collage .service-card{padding:0.85rem 0.9rem;}
  .services-collage{display:flex;flex-direction:column}
  .services-collage .services-grid{flex:1;height:100%;grid-template-rows:repeat(3,1fr)}
  .services-collage .service-card{height:100%;display:flex;flex-direction:column}
  .services-collage .service-card .service-note{align-self:center;width:auto;max-width:max-content}
  .services-collage{align-self:stretch;display:flex;flex-direction:column;justify-content:stretch;}
  .intro-grid{align-items:stretch;}
  .services-collage .section-header{display:none;}

  /* Chip glow animations for wide desktop */
  .intro-trust-section .trust-chip,
  .intro-trust-section .intro-metric{
    position:relative;
    will-change:border-color, box-shadow;
    transition:border-color 0.3s ease, box-shadow 0.3s ease;
  }
  @keyframes laptopChipGlow{
    0%{border-color:rgba(11,114,255,0.18);box-shadow:0 4px 16px rgba(11,114,255,0.10)}
    35%{border-color:rgba(69,183,246,0.75);box-shadow:0 0 18px 6px rgba(69,183,246,0.4)}
    65%{border-color:rgba(11,114,255,0.85);box-shadow:0 0 14px 5px rgba(11,114,255,0.5)}
    100%{border-color:rgba(11,114,255,0.18);box-shadow:0 4px 16px rgba(11,114,255,0.10)}
  }
  @keyframes chipReveal{
    0%{opacity:0;transform:translateY(12px) scale(0.95)}
    100%{opacity:1;transform:translateY(0) scale(1)}
  }
  @media (prefers-reduced-motion: no-preference){
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip,
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric{
      animation:laptopChipGlow 2.2s ease both;
    }
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(2){animation-delay:0.10s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(3){animation-delay:0.20s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(4){animation-delay:0.30s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(5){animation-delay:0.40s}
    .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(6){animation-delay:0.50s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(1){animation-delay:0.62s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(2){animation-delay:0.72s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(3){animation-delay:0.82s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(4){animation-delay:0.92s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(5){animation-delay:1.02s}
    .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(6){animation-delay:1.12s}
    .intro-trust-section.chips-animated-init .trust-chip,
    .intro-trust-section.chips-animated-init .intro-metric{animation:chipReveal .68s cubic-bezier(.23,1,.32,1) both;}
    .intro-trust-section.chips-animated-init .trust-chip:nth-child(2){animation-delay:.06s}
    .intro-trust-section.chips-animated-init .trust-chip:nth-child(3){animation-delay:.12s}
    .intro-trust-section.chips-animated-init .trust-chip:nth-child(4){animation-delay:.18s}
    .intro-trust-section.chips-animated-init .trust-chip:nth-child(5){animation-delay:.24s}
    .intro-trust-section.chips-animated-init .trust-chip:nth-child(6){animation-delay:.30s}
    .intro-trust-section.chips-animated-init .intro-metric:nth-child(1){animation-delay:.38s}
    .intro-trust-section.chips-animated-init .intro-metric:nth-child(2){animation-delay:.44s}
    .intro-trust-section.chips-animated-init .intro-metric:nth-child(3){animation-delay:.50s}
    .intro-trust-section.chips-animated-init .intro-metric:nth-child(4){animation-delay:.56s}
    .intro-trust-section.chips-animated-init .intro-metric:nth-child(5){animation-delay:.62s}
    .intro-trust-section.chips-animated-init .intro-metric:nth-child(6){animation-delay:.68s}
  }
}

/* =============================================================
   27" Monitors (2000px+): zoom and header/hero scaling
   ============================================================= */
@media (min-width:2000px){
  /* Global scale-up for 27" monitors - keeps layout, just bigger */
  body{
    zoom: 1.15;
  }

  /* Header: scale for 27" monitors */
  .idaho-logo-wrap{ 
    width:80px; 
    height:80px; 
    padding:5.5px; 
  }
  .idaho-logo{ 
    width:54px; 
    height:54px; 
  }
  .brand{ 
    font-size:1.9rem !important; 
  }
  .header-tagline{ 
    font-size:1.23rem !important; 
  }
  .main-nav{ 
    gap:0.6rem !important; 
    padding:0.47rem !important; 
  }
  /* Nav buttons: equal width + larger font */
  .main-nav a{
    flex:1 1 0 !important;
    min-width:0 !important;
    width:89px !important;
    font-size:1.06rem !important;
    padding:0.55rem 1rem !important;
    text-align:center !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  /* Hero: scale up for 27" monitors */
  .hero-cta .hero-content-wrapper{ transform:translateX(-65px) translateY(20px); }
  .hero-canvas{ width:58vw; max-width:1100px; min-width:600px; }
  .hero-bubble{ 
    max-width:600px; 
    padding:2.8rem 2.8rem; 
    gap:2rem;
    border-radius:18px;
  }
  .hero-bubble .cta-heading{ font-size:1.15rem; }
  .hero-bubble .primary-ctas{ gap:1.1rem; }
  .hero-cta .cta-primary{ 
    flex:1 1 0; 
    min-width:0; 
    padding:1.6rem 2.2rem; 
  }
  .hero-cta .cta-primary .icon{ font-size:2.8rem; }
  .hero-cta .cta-primary .label{ font-size:1.35rem; }
  .hero-bubble .cta-divider span{ font-size:1rem; }
  .hero-bubble .secondary-ctas{ gap:0.6rem; }
  .hero-bubble .cta-secondary{ padding:0.7rem 1.2rem; font-size:1rem; }
}

/* =============================================================
   Laptop subpages cleanup (About, Services, Contact)
   Simplify and refine layout using iPad visual inspiration
   ============================================================= */
@media (min-width:1281px){
  /* Shared: narrower content width, centered rhythm, tighter spacing */
  .page-blue{ padding:0.75rem 0; }
  .sub-hero.container{ max-width:955px; margin:0 auto; }
  .sub-hero .breadcrumb{ justify-content:center; margin-bottom:1rem; }
  .action-heading{ font-size:2.2rem; text-align:center; margin-bottom:0.75rem; }

  /* About page (laptop): integrate iPad visual — two-column card with image */
  body.about-page .sub-hero > div{
    max-width:955px !important; /* match Services page hero dimensions */
    margin:0 auto !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); /* equal columns like Services */
    grid-template-rows:auto auto; /* both rows auto-sized to fit content */
    grid-template-areas:
      "title title"
      "subhead content";
    column-gap:1rem;
    row-gap:0;
    align-items:start;
    padding:1.15rem 1rem;
    background:rgba(255,255,255,0.08);
    border-radius:22px;
    border:1px solid rgba(255,255,255,0.22);
    box-shadow:0 24px 68px rgba(5,10,20,0.35);
    position:relative;
    isolation:isolate;
  }
  /* Match Services page glow effect */
  body.about-page .sub-hero > div::before{
    content:"";
    position:absolute;
    inset:0.82rem;
    border-radius:inherit;
    background:radial-gradient(circle at 20% 20%,rgba(69,183,246,0.35),transparent 55%);
    filter:blur(34px);
    opacity:0.9;
    z-index:-1;
  }
  /* Laptop-only: hide breadcrumb on About page */
  body.about-page .sub-hero .breadcrumb{ grid-column:1 / -1; display:none !important; }
  /* Heading centered across both columns via named area */
  body.about-page .sub-hero .action-heading{ grid-area:title; text-align:center; margin:0 0 .82rem !important; align-self:start; font-size:2.64rem !important; }
  /* iPad-style founder credentials card below the heading */
  body.about-page .sub-hero .about-subhead-desktop{ 
    grid-area:subhead !important;
    box-sizing:border-box !important;
    width:100% !important;
    min-width:0 !important;
    height:415px !important;
    justify-self:stretch !important;
    align-self:start !important;
    margin:0 !important; 
    position:relative !important;
    top:3px !important;
    padding:1.48rem 1.38rem !important;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9)) !important;
    border:1px solid rgba(255,255,255,0.45) !important;
    border-radius:15px !important;
    backdrop-filter:blur(22px) !important;
    box-shadow:0 17px 44px rgba(10,40,90,0.45) !important;
    color:#fff !important;
    font-size:1.08rem !important;
    line-height:1.7 !important;
    text-align:center !important;
    font-weight:400 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    gap:0.8rem !important;
  }
  /* Add "Founder credentials" label above text */
  body.about-page .sub-hero .about-subhead-desktop::before{
    content:"Founder credentials";
    font-size:0.42rem;
    letter-spacing:0.21em;
    text-transform:uppercase;
    font-weight:800;
    color:#ffeb3b;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.22rem;
    background:rgba(255,255,255,0.15);
    padding:0.28rem 0.7rem;
    border-radius:14px;
    align-self:center;
  }
  /* Add credentials summary after main text */
  body.about-page .sub-hero .about-subhead-desktop::after{
    content:"Eagle Scout leadership  •  Wildland firefighter discipline  •  2,500+ Idaho projects";
    font-size:0.87rem;
    line-height:1.58;
    color:#fff;
    font-weight:600;
    margin-top:0.16rem;
    border-top:1px solid rgba(255,255,255,0.35);
    padding-top:0.32rem;
  }
  /* Hide mobile variant on laptop */
  body.about-page .sub-hero .about-subhead-mobile{ display:none !important; }
  /* Image in right column — match credentials card height */
  body.about-page .about-hero-image{
    grid-area:content;
    display:block;
    width:100%;
    max-width:none !important;
    max-height:415px !important;
    height:auto !important;
    box-sizing:border-box;
    justify-self:stretch;
    align-self:start;
    border-radius:15px;
    object-fit:cover;
    object-position:center top;
    background:#020a18;
    box-shadow:0 17px 44px rgba(10,40,90,0.45);
    border:1px solid rgba(255,255,255,0.45);
    margin:0;
    position:relative;
    top:3px;
  }

  /* Laptop-only: hide body text in About highlight cards (match iPad landscape) */
  body.about-page .services-grid .service-card p{ display:none !important; }
  /* Laptop-only: constrain About cards row width and ensure 4-column grid */
  body.about-page .services-grid{ max-width:1000px !important; margin:0 auto !important; gap:0.75rem !important; grid-template-columns:repeat(4, 1fr) !important; }
  /* Laptop-only: scale cards down to fit 4 in one row */
  body.about-page .service-card{ transform:scale(0.85) !important; transform-origin:center !important; }

  /* Services page: consistent grid and card spacing */
  /* Services page laptop layout: match About page perfected hero + cards */
    body.services-page .sub-hero > div{
      max-width:955px !important;
    margin:0 auto !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:
      "title title"
      "subhead content";
    column-gap:1rem;
    row-gap:0;
    align-items:start;
    padding:1.2rem 1rem;
    background:rgba(255,255,255,0.08);
    border-radius:22px;
    border:1px solid rgba(255,255,255,0.22);
    box-shadow:0 25px 70px rgba(5,10,20,0.35);
    position:relative;
    isolation:isolate;
  }
  body.services-page .sub-hero > div::before{
    content:"";
    position:absolute;
    inset:0.85rem;
    border-radius:inherit;
    background:radial-gradient(circle at 20% 20%,rgba(69,183,246,0.35),transparent 55%);
    filter:blur(35px);
    opacity:0.9;
    z-index:-1;
  }
  body.services-page .sub-hero .breadcrumb{ display:none !important; }
  body.services-page .sub-hero .action-heading{
    grid-area:title;
    grid-column:1 / -1 !important;
    text-align:center !important;
    font-size:2.72rem !important; /* ~7.5% larger than 2.53rem */
    line-height:1.05;
    letter-spacing:-0.035em;
    margin:0 0 .85rem !important;
  }
  body.services-page .services-hero-image{
    grid-area:content;
    display:block;
    width:100%;
    max-width:none; /* allow full column width for equal sizing */
    height:100%; /* fill row height to match card */
    box-sizing:border-box; /* include any borders in width calc */
    justify-self:stretch; /* occupy full grid track width */
    align-self:stretch;   /* occupy full grid track height */
    min-width:0; /* allow shrinking inside grid track */
    border-radius:16px; /* match card radius for identical silhouette */
    object-fit:cover;
    background:#020a18;
    box-shadow:0 18px 45px rgba(10,40,90,0.45); /* match card shadow */
    border:1px solid rgba(255,255,255,0.45);   /* match card border */
    margin:0;
    position:relative;
    top:3px;
  }
  body.services-page .services-hero-card{
    grid-area:subhead;
    box-sizing:border-box; /* match sizing model with image */
    width:100%;
    min-width:0; /* allow shrinking inside grid track */
    justify-self:stretch;
    align-self:stretch;
    height:100%; /* stretch to match image height */
    margin:0 !important;
    position:relative;
    top:3px;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9));
    border:1px solid rgba(255,255,255,0.45);
    border-radius:16px;
    padding:calc(1.9rem + 90px) 1.85rem calc(2.05rem - 90px);
    backdrop-filter:blur(22px);
    box-shadow:0 18px 45px rgba(10,40,90,0.45);
    display:flex;
    flex-direction:column;
    gap:1rem;
    color:#fff;
    font-size:1.26rem;
    line-height:1.7;
    text-align:center !important;
    position:relative;
  }
  body.services-page .services-hero-card::before{
    content:"Service credentials";
    display:block;
    text-align:center !important;
    font-size:1.56rem !important;
    line-height:1.2 !important;
    background:rgba(255,255,255,0.15);
    padding:0.5rem 1rem;
    border-radius:999px;
    backdrop-filter:blur(8px);
    margin:0 auto 1rem;
    width:fit-content;
    letter-spacing:0.06em;
    font-weight:800;
  }
  body.services-page .services-hero-card::after{
    content:"5\" & 6\" seamless runs  •  24-hour estimates  •  Licensed statewide";
    display:block;
    text-align:center !important;
    border-top:1px solid rgba(255,255,255,0.35);
    padding-top:0.8rem;
    margin-top:0.8rem;
    font-size:0.98rem;
    line-height:1.58;
    font-weight:600;
    letter-spacing:0.01em;
  }
  body.services-page .services-subhead-mobile{ display:none !important; }
  body.services-page .services-hero-card .services-hero-highlights{ display:none !important; }
  /* Match About CTA styling */
  body.services-page .mega-bubble .blue-subhead{ display:none !important; }
  body.services-page .mega-bubble{ max-width:860px; margin:2rem auto 0; text-align:center !important; position:relative; top:-85px; }
  body.services-page .mega-bubble > div:last-child{ width:100%; max-width:560px; margin:1.5rem auto 0; display:flex !important; gap:1rem; justify-content:center; }
  body.services-page .mega-bubble > div:last-child .btn{ flex:1 1 0; min-width:0; padding:1.15rem 1.5rem; font-size:1.08rem; border-radius:14px; transition:all 0.2s ease; }
  body.services-page .mega-bubble > div:last-child .btn:hover{ background:#c5e0ff !important; color:#08323a !important; box-shadow:0 10px 24px rgba(0,0,0,0.12); }
  /* Constrain and scale services highlight cards similar to About */
  body.services-page .services-grid{ max-width:1000px !important; margin:0 auto !important; gap:0.75rem !important; grid-template-columns:repeat(6,1fr) !important; position:relative; top:-25px; }
  body.services-page .services-grid .service-card p{ display:none !important; }
  body.services-page .services-grid .service-card{ transform:scale(0.85); transform-origin:center; padding:0.9rem 0.75rem !important; }
  body.services-page .services-grid .service-link{ display:none !important; }
  body.services-page .section-header.small{ display:flex; align-items:center; justify-content:center; margin:0 auto 0.5rem; }

  /* Contact page: form width and spacing polish */
  body.contact-page .stack-block > .mega-bubble{ max-width:980px; margin:0 auto; }
  body.contact-page form{ max-width:780px; margin:0 auto; }
  body.contact-page .grid.two{ gap:0.9rem; }
  body.contact-page .grid.three{ gap:0.9rem; }
  body.contact-page .actions{ justify-content:center; gap:0.8rem; }
  /* Hide subhead text and contact info below form on desktop */
  body.contact-page .contact-hero-subhead{ display:none !important; }
  body.contact-page .contact-inline-meta{ display:none !important; }
  /* Contact page: style the info bubble below form */
  body.contact-page .contact-inline-meta--bubble{
    display:flex !important;
    max-width:700px;
    margin:1.5rem auto 0;
    padding:1.25rem 1.5rem;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9));
    border:1px solid rgba(255,255,255,0.45);
    border-radius:14px;
    backdrop-filter:blur(18px);
    box-shadow:0 12px 32px rgba(10,40,90,0.25);
    justify-content:center;
    gap:2.5rem;
    text-align:center;
    position:relative;
    top:-15px;
  }
  body.contact-page .contact-inline-meta--bubble p{
    margin:0;
    color:#fff;
    font-size:1.05rem;
    font-weight:500;
    display:flex;
    gap:0.5rem;
  }
  body.contact-page .contact-inline-meta--bubble p span{
    font-weight:700;
  }
  body.contact-page .contact-inline-meta--bubble p span::after{
    content:":";
  }
  body.contact-page .contact-inline-meta--bubble p:last-child{ display:none; }
  body.contact-page .contact-inline-meta--bubble a{
    color:#fff;
    text-decoration:none;
    font-weight:600;
  }
  body.contact-page .contact-inline-meta--bubble a:hover{
    text-decoration:underline;
  }
  /* Contact page: increase heading size */
  body.contact-page .contact-hero-card-body .action-heading{ font-size:3.5rem !important; }
  /* Contact page: shift form container up */
  body.contact-page .email-modal-card{ position:relative; top:-15px; }
  /* Laptop-only: force About heading to span and center within card */
  body.about-page .sub-hero > div .action-heading{
    grid-column:1 / -1 !important;
    justify-self:center !important;
    text-align:center !important;
    width:100% !important;
    font-size:2.72rem !important; /* match Services heading size */
  }

  /* Laptop-only: enlarge and center the "Founder credentials" label */
  body.about-page .sub-hero .about-subhead-desktop::before{
    display:block !important;
    text-align:center !important;
    font-size:1.1rem !important;
    letter-spacing:0.24em !important;
    font-weight:750 !important;
    line-height:1.2 !important;
    background:rgba(255,255,255,0.15) !important;
    padding:0.5rem 1rem !important;
    border-radius:999px !important;
    backdrop-filter:blur(8px) !important;
    margin:0 auto 1rem !important;
    width:fit-content !important;
  }
  /* Laptop-only: center the credentials summary line with divider above */
  body.about-page .sub-hero .about-subhead-desktop::after{
    text-align:center !important;
    border-top:1px solid rgba(255,255,255,0.35) !important;
    padding-top:0.8rem !important;
    margin-top:0.8rem !important;
  }

  /* =============================================================
     Homeowner/Builder Map Pages (Laptop) — iPad-inspired layout
     ============================================================= */
  /* Narrower container for map pages */
  .blue-page .map-section.container{
    max-width:1100px;
    margin:0 auto;
    padding:0 1.5rem;
  }
  
  /* Side-by-side map and list with equal widths */
  .blue-page .map-section{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:1.25rem !important;
    align-items:start !important;
    margin-top:1.5rem !important;
  }
  
  /* Map card styling */
  .blue-page .map-card{
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 12px 40px rgba(0,0,0,0.12);
  }
  
  /* Map and loader height */
  .blue-page .map,
  .blue-page .map-loader{
    height:48vh !important;
    min-height:380px !important;
    max-height:460px !important;
  }
  
  /* List card styling - match map height exactly */
  .blue-page .list-card{
    height:48vh !important;
    min-height:380px !important;
    max-height:460px !important;
    position:sticky !important;
    top:1.5rem !important;
    border-radius:18px;
    background:rgba(255,255,255,0.95);
    box-shadow:0 12px 40px rgba(0,0,0,0.10);
    padding:1.25rem;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }
  
  /* Coverage panel compact layout for laptop */
  .blue-page .coverage-panel{
    gap:0.75rem !important;
  }
  
  /* Compact stats row */
  .blue-page .coverage-panel .stats{
    gap:0.75rem !important;
  }
  .blue-page .coverage-panel .stat{
    padding:0.6rem 0.75rem !important;
  }
  .blue-page .coverage-panel .stat-icon{
    font-size:1.1rem !important;
    margin-bottom:0.15rem !important;
  }
  .blue-page .coverage-panel .stat .value{
    font-size:1.3rem !important;
  }
  .blue-page .coverage-panel .stat .label{
    font-size:0.72rem !important;
  }
  
  /* Compact region chips grid */
  .blue-page .coverage-panel .regions{
    display:grid !important;
    grid-template-columns:repeat(3, 1fr) !important;
    gap:0.4rem !important;
  }
  .blue-page .region-chip{
    padding:0.4rem 0.6rem !important;
    font-size:0.8rem !important;
    justify-content:center !important;
    min-height:2.2rem !important;
  }
  .blue-page .region-chip .dot{
    display:none !important;
  }
  .blue-page .region-chip .count{
    font-size:0.7rem !important;
  }
  
  /* Nearest region chip - just turn blue, no expansion */
  .blue-page .region-chip.nearest-region{
    background:linear-gradient(135deg, #0b72ff 0%, #45b7f6 100%) !important;
    color:#fff !important;
    border-color:#0b72ff !important;
    box-shadow:0 4px 16px rgba(11,114,255,0.35) !important;
    transform:none !important;
  }
  .blue-page .nearest-badge{
    display:none !important;
  }
  
  /* Search input and suggestions dropdown */
  .blue-page .region-search-wrap{
    position:relative;
  }
  .blue-page .region-search{
    width:100%;
    padding:0.6rem 0.9rem !important;
    font-size:0.9rem !important;
    border:1px solid rgba(0,0,0,0.1);
    border-radius:8px;
    background:#fff;
    transition:border .2s, box-shadow .2s;
  }
  .blue-page .region-search:focus{
    outline:none;
    border-color:#0b72ff;
    box-shadow:0 0 0 3px rgba(11,114,255,0.1);
  }
  .blue-page .region-search::placeholder{
    color:#999;
  }
  .blue-page .region-suggestions{
    position:absolute;
    left:0;
    top:calc(100% + 4px);
    width:100%;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:8px;
    box-shadow:0 10px 30px rgba(0,0,0,0.08);
    max-height:12rem;
    overflow:auto;
    z-index:1000;
  }
  .blue-page .region-suggestion{
    padding:0.55rem 0.75rem;
    cursor:pointer;
    font-size:0.9rem;
    line-height:1.25;
    border-bottom:1px solid #f1f5f9;
  }
  .blue-page .region-suggestion:last-child{
    border-bottom:none;
  }
  .blue-page .region-suggestion[aria-selected="true"],
  .blue-page .region-suggestion:hover{
    background:#f1f5f9;
  }
  
  /* Center panel title */
  .blue-page .panel-title{
    text-align:center !important;
    font-size:1rem;
    margin-bottom:0.6rem;
  }
  
  /* Sub-hero section for map pages */
  .blue-page .sub-hero.container{
    max-width:1100px;
    text-align:center;
  }
  
  /* Action heading on map pages */
  .blue-page .action-heading{
    font-size:2.4rem !important;
    text-align:center;
  }
  
  /* Location notice styling - this becomes the redirect countdown */
  .blue-page .location-notice{
    justify-content:center;
    font-size:1.05rem;
    margin-top:0.5rem;
  }
  
  /* Breadcrumb centered */
  .blue-page .breadcrumb{
    justify-content:center;
  }
  
  /* Hide the redirect box below the map on laptop/desktop */
  .blue-page #rgs-redirect-box{
    display:none !important;
  }

  /* =============================================================
     Builder Landing Page (Laptop/Desktop) — iPad-inspired styling
     ============================================================= */
  
  /* Builder page CTA buttons - white with yellow hover, equal size */
  .builder-page .builder-cta-primary,
  .builder-page .builder-cta-secondary{
    background:#fff;
    color:#0b72ff;
    border:none;
    font-weight:800;
    box-shadow:0 8px 32px rgba(0,0,0,0.2);
    backdrop-filter:none;
    flex:1 1 0;
    max-width:300px;
  }
  .builder-page .builder-cta-primary:hover,
  .builder-page .builder-cta-secondary:hover{
    background:#ffeb3b;
    color:#0b72ff;
    border:none;
    transform:translateY(-3px);
    box-shadow:0 12px 48px rgba(0,0,0,0.3);
  }
  
  /* Builder page blueprint title gradient */
  .builder-page .blueprint-title{
    background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    color:transparent;
  }

  /* Builder page CTA footer heading gradient */
  .builder-page .builder-cta-final h2{
    background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    color:transparent;
  }
  
  /* Scroll-triggered animation for why cards */
  .builder-page .builder-why-card{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.6s ease, transform 0.6s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .builder-page .builder-why-card.card-visible{
    opacity:1;
    transform:translateY(0);
    border-color:#45b7f6;
    box-shadow:0 16px 48px rgba(11,114,255,0.15);
  }
  .builder-page .builder-why-card.card-visible::before{
    transform:scaleX(1);
  }

  /* Hide Statewide Reach section on builder page */
  .builder-page .builder-coverage{
    display:none !important;
  }
  
  /* Why cards in a row */
  .builder-page .builder-why-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.5rem;
    max-width:1100px;
    margin:0 auto;
  }
  
  /* Constrain hero content for better readability */
  .builder-page .builder-hero-content-wrap{
    max-width:900px;
  }
  
  /* Blueprint section polish */
  .builder-page .blueprint-banner{
    padding:3rem 0;
  }
  .builder-page .blueprint-content{
    max-width:800px;
    margin:0 auto;
    text-align:center;
  }
  
  /* CTA final section polish */
  .builder-page .builder-cta-final{
    padding:3rem 0;
    text-align:center;
  }
  .builder-page .builder-cta-final .container{
    max-width:700px;
  }
}

/* more specific override for very wide viewports to prevent accidental overrides */
.hero .hero-media > .hero-video{width:50%;max-width:800px}
.hero-media .hero-overlay{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.4rem 2rem;text-align:center;z-index:5;color:#08323a;background:rgba(255,255,255,0.55);backdrop-filter:blur(4px);border-radius:10px;box-shadow:0 8px 30px rgba(2,120,138,0.08)}
.hero-media .hero-overlay{max-width:920px;margin:0 1rem}
.hero-media .hero-overlay h1{margin:0;font-size:1.9rem}
.hero-media .hero-overlay .lead{color:rgba(8,50,58,0.95);font-size:0.95rem}
.hero-media::after{content:'';position:absolute;left:0;right:0;top:0;bottom:0;background:linear-gradient(rgba(255,255,255,0.0), rgba(0,0,0,0.0));pointer-events:none}

@media (max-width:900px){
  .hero-media .hero-video{height:320px}
  .hero-media .hero-overlay h1{font-size:1.5rem}
}

@media (max-width:520px){
  html:is(.rgs-ios,.rgs-android) .hero-media .hero-video{height:240px}
  html:is(.rgs-ios,.rgs-android) .hero-media .hero-overlay{padding:0.6rem 1rem}
  html:is(.rgs-ios,.rgs-android) .cta-pill{padding:.6rem .9rem}
}

/* Idaho logo styling for header */
.idaho-logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.7rem;
  /* Perfectly circular badge around the Idaho icon - reduced by 20% */
  width: 67.2px; /* 84 * 0.8 = 67.2 */
  height: 67.2px; /* Exact same as width to ensure perfect circle */
  padding: 4.8px; /* 6 * 0.8 = 4.8 */
  border-radius: 50%;
  background: #ffffff;
  border: 2px solid #111;
  box-sizing: border-box;
  flex-shrink: 0; /* prevent squishing in flex layout */
}

/* Idaho logo image sizing */
.idaho-logo {
  display: block;
  width: 45.6px; /* 57 * 0.8 = 45.6 */
  height: 45.6px; /* Exact same as width to ensure perfect circle */
  object-fit: contain;
}


/* Marquee mode for Testimonials */
.carousel-track.is-marquee{animation:marquee-scroll var(--marquee-duration, 60s) linear infinite;transition:none}
.carousel-track.is-marquee.js-controlled{animation:none !important}
.testimonial-carousel.is-interactive .carousel-track{cursor:grab;touch-action:pan-y}
.testimonial-carousel.is-user-control .carousel-track{cursor:grabbing}
@keyframes marquee-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

.swipe-hint{display:none}

@media (pointer:coarse) and (min-width:768px){
  .testimonial-carousel.is-interactive .carousel-track{touch-action:none}
}

/* File Upload Zone Styles */
.file-upload-zone{border:2px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:2rem;cursor:pointer;transition:all .2s ease;position:relative;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.file-upload-zone:hover{border-color:#0b72ff;background:#f0f8ff}
.file-upload-zone.drag-over{border-color:#0b72ff;background:#e0f2fe;box-shadow:0 0 0 3px rgba(11,114,255,.15)}
.upload-prompt{display:flex;flex-direction:column;align-items:center;gap:.8rem;text-align:center}
.upload-icon{width:52px;height:52px;color:#64748b;margin-bottom:.3rem}
.upload-text{color:#475569;font-size:1rem;margin:0}
.upload-text strong{color:#1e293b;font-weight:700}

.file-list{margin-top:1rem;display:flex;flex-direction:column;gap:.7rem}
.file-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem .95rem;background:#ffffff;border:1px solid #e5e7eb;border-radius:10px;transition:all .2s ease}
.file-item:hover{box-shadow:0 4px 12px rgba(0,0,0,.06);border-color:#cbd5e1}
.file-info{display:flex;align-items:center;gap:.85rem;flex:1;min-width:0}
.file-icon{width:32px;height:32px;color:#64748b;flex-shrink:0}
.file-details{flex:1;min-width:0}
.file-name{font-weight:600;color:#1e293b;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-size{font-size:.82rem;color:#64748b;margin-top:.15rem}
.file-remove{background:transparent;border:none;cursor:pointer;padding:.4rem;border-radius:6px;transition:all .2s ease;flex-shrink:0}
.file-remove svg{width:20px;height:20px;color:#94a3b8;transition:color .2s ease}
.file-remove:hover{background:#fee2e2}
.file-remove:hover svg{color:#ef4444}

/* Error states */
input.error, textarea.error{border-color:#ef4444 !important;box-shadow:0 0 0 3px rgba(239,68,68,.15) !important}
.radio-group-container.error{outline:2px solid #ef4444;outline-offset:4px;border-radius:12px;animation:shake .3s ease}

/* ============================
   Regional Landing Pages
   ============================ */

/* Regional Hero */
.regional-hero{
  position:relative;
  padding:2.5rem 0 3rem;
  border-bottom:1px solid #cbd5e1;
  background:linear-gradient(135deg,#e0f2fe 0%,#bae6fd 100%);
  overflow:hidden
}

/* Hero with background image support */
.regional-hero[class*="regional-hero--"]{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  min-height:520px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center
}

/* Dark overlay for text contrast */
.hero-overlay{
  position:absolute;
  inset:0;
  background:transparent;
  z-index:1;
  display:none
}

/* Ensure content sits above overlay */
.hero-content{
  position:relative;
  z-index:2;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-radius:20px;
  padding:1rem 3rem;
  max-width:860px;
  width:min(860px,92vw);
  min-height:220px; /* unify hero bubble height on desktop */
  border:1px solid rgba(255,255,255,.25);
  box-shadow:0 8px 32px rgba(0,0,0,.35);
  text-align:center
}

/* Clean text styling inside the card */
.hero-content .breadcrumb{
  font-size:.88rem;
  color:#ffffff;
  margin-bottom:.4rem;
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap;
  text-shadow:0 1px 3px rgba(0,0,0,.6);
  justify-content:flex-start;
  text-align:left
}

.hero-content h1{
  color:#ffffff;
  text-shadow:0 2px 8px rgba(0,0,0,.6);
  margin-bottom:.4rem;
  font-size:2.5rem;
  font-weight:800;
  letter-spacing:-0.02em;
  line-height:1.1
}

.hero-content .hero-tagline{
  color:#ffffff;
  text-shadow:0 1px 3px rgba(0,0,0,.5);
  margin-bottom:.4rem;
  margin-left:auto;
  margin-right:auto;
  line-height:1.6;
  font-size:1.1rem;
  opacity:.95;
  display:block; /* changed from -webkit-box to respect text-align:center */
  max-height:3.2em; /* approximate 2 lines at 1.6 line-height */
  overflow:hidden;
  text-align:center
}

@media (max-width: 900px){
  .hero-content{min-height:200px;padding:1rem 2rem}
}
@media (max-width: 600px){
  .hero-content{min-height:180px;padding:.85rem 1.5rem}
}

/* Weather widget (regional pages) */
.weather-widget{
  margin:0 0 1rem;
  padding:1rem 1rem 0.5rem;
  border-radius:14px;
  border:1px solid #e5e7eb;
  background:linear-gradient(135deg, #f0f9ff 0%, #e8f3ff 100%);
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  min-height:220px; /* enforce consistent height across all regions */
}
.weather-widget .ww-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.35rem}
.weather-widget .ww-location{font-weight:800;color:#08323a;font-size:1.05rem}
.weather-widget .ww-summary{font-size:.95rem;color:#334155;margin-left:.6rem}
.weather-widget .ww-temp{font-weight:800;font-size:1.4rem;color:#0b72ff}
.weather-widget .ww-meta{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.9rem;margin:.25rem 0 .5rem}
.weather-widget .ww-icon{width:22px;height:22px;display:inline-block;background-size:contain;background-position:center;background-repeat:no-repeat;filter:grayscale(15%)}
.weather-widget .ww-facts{list-style:none;padding:0;margin:.35rem 0 0;display:grid;gap:.3rem}
.weather-widget .ww-facts li{font-size:.92rem;color:#0f2f42;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:.45rem .6rem}
.weather-widget .ww-facts li::marker{content:''}

/* Coupon ticket (appears under weather widget) */
.coupon-card{
  position:relative;
  margin-top:1rem;
  padding:1rem 1.1rem 1rem 1rem;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  background:linear-gradient(135deg, #f0f9ff 0%, #e8f3ff 100%);
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;
  height:185px; /* expanded baseline height for better proportion */
  max-height:185px;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  animation:couponIn .22s ease-out both;
}
.coupon-card::after{
  /* subtle perforation divider on the right */
  content:'';
  position:absolute;
  top:10px;bottom:10px;right:56px;
  width:0;
  border-right:1px dashed rgba(2, 119, 189, 0.2);
  pointer-events:none;
}
.coupon-eyebrow{
  font-size:.75rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#0b72ff;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  opacity:.95;
}
.coupon-eyebrow .dot{width:6px;height:6px;border-radius:999px;background:#0b72ff;opacity:.85;animation:pulse 2s ease-in-out 2}
.coupon-main{display:flex;align-items:flex-start;gap:.75rem}
.coupon-icon{width:26px;height:26px;flex-shrink:0;filter:grayscale(10%);opacity:.95;margin-top:.1rem}
.coupon-offer{font-weight:800;color:#08323a;font-size:1.15rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.coupon-fine{font-size:.9rem;color:#6b7280;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.coupon-actions{margin-top:auto;display:flex;justify-content:center}
.coupon-btn{background:linear-gradient(135deg,#45b7f6 0%, #0b72ff 100%);color:#fff;border:none;border-radius:999px;padding:.5rem .9rem;font-weight:800;font-size:.88rem;box-shadow:0 4px 14px rgba(11,114,255,.22);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.coupon-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(11,114,255,.28)}

/* Themes (light, subtle) */
.coupon-card.is-rain{background:linear-gradient(135deg, #f0f9ff 0%, #e8f3ff 100%)}
.coupon-card.is-wind{background:linear-gradient(135deg, #f8fafc 0%, #eef2f7 100%)}
.coupon-card.is-heat{background:linear-gradient(135deg, #fff7ed 0%, #fffbeb 100%)}
.coupon-card.is-snow{background:linear-gradient(135deg, #f0f9ff 0%, #f5faff 100%)}
.coupon-card.is-clear{background:linear-gradient(135deg, #f9fafb 0%, #ffffff 100%)}

/* Placeholder (no active coupons) */
.coupon-card.is-placeholder{border-style:solid; background:linear-gradient(135deg, #f0f9ff 0%, #e8f3ff 100%)}
.coupon-card.is-placeholder .coupon-eyebrow{color:#64748b}
.coupon-card.is-placeholder .coupon-offer{color:#0f2f42;font-weight:700}

@keyframes couponIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.25);opacity:1}}

@media (prefers-reduced-motion: reduce){
  .coupon-card{animation:none}
  .coupon-eyebrow .dot{animation:none}
}

.hero-cta-btn{
  margin-top:1.2rem;
  background:#ffffff;
  color:#0b72ff;
  border:none;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
  font-weight:700;
  transition:all .3s ease;
  display:block;
  margin-left:auto;
  margin-right:auto
}

.hero-cta-btn:hover{
  background:#f0f9ff;
  transform:translateY(-2px);
  box-shadow:0 6px 24px rgba(0,0,0,.35)
}

/* Region-specific background images */
.regional-hero--treasure-valley{
  background-image:url('../assets/regions/treasure-valley.jpg')
}
.regional-hero--west-central-mountains{
  background-image:url('../assets/regions/west-central-mountains.jpg')
}
.regional-hero--wood-river-valley{
  background-image:url('../assets/regions/wood-river-valley.jpg')
}
.regional-hero--magic-valley{
  background-image:url('../assets/regions/magic-valley.jpg')
}
.regional-hero--north-idaho{
  background-image:url('../assets/regions/north-idaho.jpg')
}
.regional-hero--upper-snake{
  background-image:url('../assets/regions/upper-snake.jpg')
}
.regional-hero--central-idaho{
  background-image:url('../assets/regions/central-idaho.jpg')
}
.regional-hero--mountain-home{
  background-image:url('../assets/regions/mountain-home.jpg')
}

/* Treasure Valley: tighten vertical rhythm between hero and showcase */
.regional-hero.regional-hero--treasure-valley{padding-bottom:.8rem}
.regional-showcase--treasure-valley{padding-top:1.25rem}
.regional-showcase--central-idaho{padding-top:1.25rem}
.regional-showcase--magic-valley{padding-top:1.25rem}
.regional-showcase--mountain-home{padding-top:1.25rem}
.regional-showcase--north-idaho{padding-top:1.25rem}
.regional-showcase--upper-snake{padding-top:1.25rem}
.regional-showcase--west-central-mountains{padding-top:1.25rem}
.regional-showcase--wood-river-valley{padding-top:1.25rem}

.regional-hero .breadcrumb{
  font-size:.9rem;
  color:#64748b;
  margin-bottom:1rem;
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap
}
.regional-hero .breadcrumb a{
  color:#bae6fd;
  text-decoration:none;
  transition:color .2s ease
}
.regional-hero .breadcrumb a:hover{
  color:#ffffff;
  text-decoration:underline
}
.regional-hero h1{
  font-size:2.8rem;
  font-weight:800;
  color:#ffffff;
  margin:0 0 1rem;
  letter-spacing:-0.02em;
  line-height:1.1;
  text-shadow:0 2px 8px rgba(0,0,0,.3)
}
.hero-tagline{
  font-size:1.2rem;
  color:#e0f2fe;
  line-height:1.6;
  margin:0 0 1.8rem;
  max-width:680px;
  text-shadow:0 1px 4px rgba(0,0,0,.3)
}
.btn-large{
  font-size:1.1rem;
  padding:1rem 2.2rem;
  font-weight:700
}

/* Regional Services */
.regional-services{
  padding:3.5rem 0;
  background:#ffffff
}

/* Combined Showcase Section (Why Choose Us + Service Areas) */
.regional-showcase{
  padding:5rem 0;
  background:#ffffff;
  position:relative
}
.showcase-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr 1fr; /* restore left/middle; keep right wide by expanding container */
  gap:3rem;
  align-items:start;
  position:relative
}
.showcase-title{
  font-size:2rem;
  font-weight:800;
  color:#0c4a6e;
  margin:0 0 1.2rem;
  letter-spacing:-0.02em;
  line-height:1.15
}

/* Shared heading centered above both showcase columns */
.showcase-heading{
  font-size:2rem;
  font-weight:800;
  color:#08323a;
  text-align:center;
  margin:0 0 .75rem;
  letter-spacing:-0.02em;
  line-height:1.15
}

/* Gentle space between shared heading and grid */
.showcase-grid{margin-top:1.25rem}

/* Eyebrow region label for consistent alignment */
.region-eyebrow{
  display:inline-block;
  font-size:.8rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#0b72ff;
  background:rgba(11,114,255,.08);
  border:1px solid rgba(11,114,255,.25);
  border-radius:999px;
  padding:.25rem .6rem;
  margin:0 0 .45rem
}

/* Left Column: Advantages with numbered cards */
.showcase-advantages{
  padding-right:.75rem
}
.advantage-cards{
  display:flex;
  flex-direction:column;
  gap:1.5rem;
  margin-top:2rem
}
.advantage-card{
  display:flex;
  gap:2rem;
  padding:0 0 0 2rem;
  border:none;
  background:transparent;
  transition:all .4s cubic-bezier(0.4,0,0.2,1);
  position:relative
}
.advantage-card::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,#0b72ff 0%,#0956cc 100%);
  opacity:0;
  transform:scaleY(0);
  transform-origin:top;
  transition:all .4s cubic-bezier(0.4,0,0.2,1)
}
.advantage-card:hover::before{
  opacity:1;
  transform:scaleY(1)
}
.advantage-number{
  flex-shrink:0;
  width:80px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  gap:.5rem;
  transition:all .4s cubic-bezier(0.4,0,0.2,1)
}
.advantage-icon{
  width:52px;
  height:52px;
  color:#cbd5e1;
  stroke-width:1.5;
  transition:all .4s cubic-bezier(0.4,0,0.2,1)
}
.number-label{
  font-size:.75rem;
  font-weight:700;
  color:#cbd5e1;
  text-transform:uppercase;
  letter-spacing:.05em;
  display:block;
  transition:all .4s cubic-bezier(0.4,0,0.2,1);
  transform-origin:right center;
  font-family:system-ui,-apple-system,sans-serif
}
.advantage-card:hover .advantage-icon{color:#0b72ff;transform:scale(1.06);stroke-width:2}
.advantage-card:hover .number-label{
  font-size:1.1rem;
  color:#0b72ff;
  transform:scale(1.15);
  font-weight:800
}
.advantage-content{
  flex:1;
  padding-top:.3rem
}
.advantage-content h3{
  font-size:1.28rem;
  font-weight:700;
  color:#08323a;
  margin:0 0 .6rem;
  letter-spacing:-0.01em;
  transition:color .3s ease
}
.advantage-card:hover .advantage-content h3{
  color:#0b72ff
}
.advantage-content p{
  font-size:.98rem;
  line-height:1.6;
  color:#64748b;
  margin:0;
  font-weight:400
}

/* Right Column: Coverage with elevated card design */
.showcase-coverage{
  position:sticky;
  top:2rem
}
.coverage-card{
  background:linear-gradient(135deg, #f0f9ff 0%, #e8f3ff 100%);
  padding:2.2rem 2rem 2.8rem;
  border-radius:24px;
  border:1px solid #e2e8f0;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
  transition:all .4s ease
}
.showcase-coverage .coverage-card{margin-top:0}
.coverage-card:hover{
  box-shadow:0 12px 40px rgba(11,114,255,.08);
  border-color:#cbd5e1
}
.coverage-intro{
  font-size:.98rem;
  color:#64748b;
  margin:0 0 1.6rem;
  line-height:1.6;
  font-weight:400
}
.cities-showcase{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.35rem;
  margin-bottom:2rem
}
.city-badge{
  background:#ffffff;
  color:#0c4a6e;
  padding:.45rem .75rem;
  border-radius:999px;
  font-size:.85rem;
  font-weight:600;
  transition:all .25s cubic-bezier(0.4,0,0.2,1);
  cursor:default;
  border:1.25px solid #e2e8f0;
  letter-spacing:-0.01em;
  box-shadow:0 1px 2px rgba(8,50,58,.06), inset 0 1px rgba(255,255,255,.7);
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}

/* West Central Mountains: wider city badges for longer names like "New Meadows" */
.regional-showcase--west-central-mountains .cities-showcase{
  grid-template-columns:repeat(3,minmax(0,1fr)); /* 3 columns instead of 4 = ~33% wider per badge */
}
.regional-showcase--west-central-mountains .city-badge{
  padding:.45rem 1.08rem;

/* North Idaho: 3x3 grid for better fit with longer city names */
.regional-showcase--north-idaho .cities-showcase{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.regional-showcase--north-idaho .city-badge{
  padding:.45rem 1.01rem;
}
}

.coverage-footer{
  border-top:2px solid #e2e8f0;
  padding-top:1.8rem;
  display:flex;
  align-items:center;
  gap:1rem
}
.coverage-icon{
  width:24px;
  height:24px;
  color:#64748b;
  flex-shrink:0
}
.coverage-note{
  font-size:.92rem;
  color:#64748b;
  margin:0;
  line-height:1.5;
  font-weight:400
}

/* Subtle downward offset for Treasure Valley page: middle (areas) and right (weather) cards */
.regional-showcase--treasure-valley .showcase-coverage{margin-top:1.2rem}
.regional-showcase--treasure-valley .showcase-weather{margin-top:1.2rem}
.regional-showcase--central-idaho .showcase-coverage{margin-top:1.2rem}
.regional-showcase--central-idaho .showcase-weather{margin-top:1.2rem}
.regional-showcase--magic-valley .showcase-coverage{margin-top:1.2rem}
.regional-showcase--magic-valley .showcase-weather{margin-top:1.2rem}
.regional-showcase--mountain-home .showcase-coverage{margin-top:1.2rem}
.regional-showcase--mountain-home .showcase-weather{margin-top:1.2rem}
.regional-showcase--north-idaho .showcase-coverage{margin-top:1.2rem}
.regional-showcase--north-idaho .showcase-weather{margin-top:1.2rem}
.regional-showcase--upper-snake .showcase-coverage{margin-top:1.2rem}
.regional-showcase--upper-snake .showcase-weather{margin-top:1.2rem}
.regional-showcase--west-central-mountains .showcase-coverage{margin-top:1.2rem}
.regional-showcase--west-central-mountains .showcase-weather{margin-top:1.2rem}
.regional-showcase--wood-river-valley .showcase-coverage{margin-top:1.2rem}
.regional-showcase--wood-river-valley .showcase-weather{margin-top:1.2rem}

/* Mobile Responsive for Showcase */
@media(max-width:968px){
  .showcase-grid{
    grid-template-columns:1fr;
    gap:3.5rem
  }
  .showcase-advantages{
    padding-right:0
  }
  .showcase-coverage{position:static}
  .advantage-card{
    gap:1.5rem
  }
  .advantage-number{
    font-size:2.5rem;
    width:70px
  }
  /* Keep organization without growing height: 3 columns here */
  .cities-showcase{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Ensure Treasure Valley showcase padding override wins after generic rule */
.regional-showcase.regional-showcase--treasure-valley{padding-top:1rem}
.regional-showcase.regional-showcase--central-idaho{padding-top:1rem}
.regional-showcase.regional-showcase--magic-valley{padding-top:1rem}
.regional-showcase.regional-showcase--mountain-home{padding-top:1rem}
.regional-showcase.regional-showcase--north-idaho{padding-top:1rem}
.regional-showcase.regional-showcase--upper-snake{padding-top:1rem}
.regional-showcase.regional-showcase--west-central-mountains{padding-top:1rem}
.regional-showcase.regional-showcase--wood-river-valley{padding-top:1rem}

/* Very small screens: single column for cities */
@media(max-width:520px){
  .cities-showcase{grid-template-columns:1fr}
}

/* Phone portrait to small tablets: 2 columns for readability */
@media(max-width:768px){
  .cities-showcase{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Region-specific overrides placed at end for strongest precedence */
/* North Idaho (Panhandle): force 3 columns on desktop to widen badges */
.regional-showcase.regional-showcase--north-idaho .cities-showcase{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

/* Mountain Home & I-84: only two cities — make each badge wider (2 columns) */
.regional-showcase.regional-showcase--mountain-home .cities-showcase{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

/* Central Idaho: exactly three bubbles — span full width evenly (3 columns) */
.regional-showcase.regional-showcase--central-idaho .cities-showcase{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

/* =============================================================
   Regional Pages: Laptop/Desktop (1281px+)
   ============================================================= */
@media (min-width:1281px){
  /* Disable sticky positioning on coverage card - keep it static */
  /* Exclude iPads by checking for non-touch or wider screens */
  html:not(.rgs-ios):not(.rgs-android) .showcase-coverage{
    position:static;
    transform: translateX(-15px);
  }
  
  /* Shift weather column (weather widget + coupon) left 15px */
  html:not(.rgs-ios):not(.rgs-android) .showcase-weather{
    transform: translateX(-15px);
  }
  
  /* Shift 3 reasons section up 5px */
  html:not(.rgs-ios):not(.rgs-android) .showcase-advantages{
    transform: translateY(-5px);
  }
  
  /* Align showcase grid columns to stretch so bottom edges align */
  html:not(.rgs-ios):not(.rgs-android) .showcase-grid{
    align-items:stretch;
  }
  
  /* Make coverage card fill the full height of its column */
  html:not(.rgs-ios):not(.rgs-android) .showcase-coverage .coverage-card{
    height:100%;
    display:flex;
    flex-direction:column;
  }
  
  /* Push the footer to the bottom of the card */
  html:not(.rgs-ios):not(.rgs-android) .showcase-coverage .coverage-footer{
    margin-top:auto;
  }
  
  /* Scroll-triggered reveal animation for advantage cards on laptop/desktop */
  html:not(.rgs-ios):not(.rgs-android) .advantage-card.revealed .number-label{
    font-size: 1.1rem;
    transform: scale(1.15);
    color: #0b72ff;
    font-weight: 800;
  }
  
  html:not(.rgs-ios):not(.rgs-android) .advantage-card.revealed .advantage-icon{
    color: #0b72ff;
    transform: scale(1.06);
    stroke-width: 2;
  }
  
  html:not(.rgs-ios):not(.rgs-android) .advantage-card.revealed .advantage-content h3{
    color: #0b72ff;
  }
  
  html:not(.rgs-ios):not(.rgs-android) .advantage-card.revealed::before{
    opacity: 1;
    transform: scaleY(1);
  }

  /* Increase CTA section image gallery size (laptop/desktop) - ~20% larger */
  html:not(.rgs-ios):not(.rgs-android) .regional-cta .container{
    max-width: 84% !important;
  }
}

.section-title{
  font-size:2rem;
  font-weight:800;
  color:#08323a;
  text-align:center;
  margin:0 0 2.5rem;
  letter-spacing:-0.01em
}
.services-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.5rem;
  margin-top:2rem
}

/* Regional Advantages */
.regional-advantages{
  padding:3.5rem 0;
  background:#f8fafc
}
.advantages-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
  max-width:820px;
  margin:0 auto
}
.advantages-list li{
  background:#ffffff;
  padding:1.5rem;
  border-radius:12px;
  border:1px solid #e5e7eb;
  font-size:1.05rem;
  line-height:1.65;
  color:#475569;
  transition:all .25s ease
}
.advantages-list li:hover{
  box-shadow:0 8px 20px rgba(0,0,0,.08);
  transform:translateY(-2px);
  border-color:#cbd5e1
}
.advantages-list li strong{
  color:#08323a;
  font-weight:700
}

/* Service Areas Map */
.regional-map{
  padding:3.5rem 0;
  background:#ffffff
}
.map-intro{
  text-align:center;
  font-size:1.05rem;
  color:#64748b;
  margin:0 0 2rem;
  max-width:600px;
  margin-left:auto;
  margin-right:auto
}
.cities-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1rem;
  margin-top:1.5rem
}
.cities-grid span{
  background:linear-gradient(135deg,#e0f2fe 0%,#dbeafe 100%);
  padding:.85rem 1.2rem;
  border-radius:10px;
  text-align:center;
  font-weight:600;
  color:#0c4a6e;
  border:1px solid #bae6fd;
  transition:all .2s ease
}
.cities-grid span:hover{
  background:linear-gradient(135deg,#bae6fd 0%,#7dd3fc 100%);
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(11,114,255,.15)
}

/* Regional Testimonial */
.regional-testimonial{
  padding:3.5rem 0;
  background:#f8fafc
}
.regional-testimonial .testimonial-card{
  max-width:720px;
  margin:2rem auto 0;
  background:#ffffff;
  padding:2rem 2.5rem;
  border-radius:16px;
  border:1px solid #e5e7eb;
  box-shadow:0 4px 16px rgba(0,0,0,.06)
}
.regional-testimonial .testimonial-quote{
  font-size:1.15rem;
  line-height:1.7;
  color:#475569;
  margin:0 0 1.5rem;
  font-style:italic
}
.regional-testimonial .testimonial-author{
  font-size:.95rem;
  color:#64748b;
  text-align:right;
  border-top:1px solid #e5e7eb;
  padding-top:1rem
}
.regional-testimonial .testimonial-author strong{
  color:#08323a;
  font-weight:700
}

/* Regional CTA */
.regional-cta{
  padding:4rem 0;
  background:linear-gradient(135deg,#0b72ff 0%,#0956cc 100%);
  color:#ffffff;
  text-align:center
}
.regional-cta h2{
  font-size:2.2rem;
  font-weight:800;
  margin:0 0 1rem;
  color:#ffffff
}
.regional-cta p{
  font-size:1.1rem;
  margin:0 0 2rem;
  opacity:.95;
  max-width:640px;
  margin-left:auto;
  margin-right:auto
}
.regional-cta .btn-primary{
  background:#ffffff;
  color:#0b72ff;
  border:2px solid #ffffff
}
.regional-cta .btn-primary:hover{
  background:rgba(255,255,255,.92);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.25)
}

/* Regional FAQ */
.regional-faq{
  padding:3.5rem 0 4rem;
  background:#ffffff
}
.faq-accordion{
  max-width:820px;
  margin:2rem auto 0;
  display:flex;
  flex-direction:column;
  gap:1rem
}
.gallery-cta{display:none}
.gallery-grid{display:none}
.faq-toggle-btn{
  display:none
}
.faq-item{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:0;
  transition:all .25s ease
}
.faq-item:hover{
  border-color:#cbd5e1;
  box-shadow:0 4px 12px rgba(0,0,0,.06)
}
.faq-item[open]{
  background:#ffffff;
  border-color:#0b72ff;
  box-shadow:0 6px 18px rgba(11,114,255,.12)
}
.faq-item summary{
  padding:1.3rem 1.5rem;
  font-size:1.1rem;
  font-weight:700;
  color:#08323a;
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  transition:color .2s ease
}
.faq-item summary::-webkit-details-marker{
  display:none
}
.faq-item summary::after{
  content:'▼';
  font-size:.85rem;
  color:#64748b;
  transition:transform .25s ease,color .25s ease;
  flex-shrink:0;
  margin-left:1rem
}
.faq-item[open] summary::after{
  transform:rotate(180deg);
  color:#0b72ff
}
.faq-item summary:hover{
  color:#0b72ff
}
.faq-item p{
  padding:0 1.5rem 1.5rem;
  margin:0;
  color:#475569;
  line-height:1.7;
  font-size:1rem
}

/* All regional pages: show long version by default, hide on iPhone portrait */
.regional-hero--treasure-valley .tagline-short,
.regional-hero--central-idaho .tagline-short,
.regional-hero--magic-valley .tagline-short,
.regional-hero--mountain-home .tagline-short,
.regional-hero--north-idaho .tagline-short,
.regional-hero--upper-snake .tagline-short,
.regional-hero--west-central-mountains .tagline-short,
.regional-hero--wood-river-valley .tagline-short {
  display: none;
}

@media (max-width:520px){
  html:is(.rgs-ios,.rgs-android) .regional-hero--treasure-valley .tagline-long,
  html:is(.rgs-ios,.rgs-android) .regional-hero--central-idaho .tagline-long,
  html:is(.rgs-ios,.rgs-android) .regional-hero--magic-valley .tagline-long,
  html:is(.rgs-ios,.rgs-android) .regional-hero--mountain-home .tagline-long,
  html:is(.rgs-ios,.rgs-android) .regional-hero--north-idaho .tagline-long,
  html:is(.rgs-ios,.rgs-android) .regional-hero--upper-snake .tagline-long,
  html:is(.rgs-ios,.rgs-android) .regional-hero--west-central-mountains .tagline-long,
  html:is(.rgs-ios,.rgs-android) .regional-hero--wood-river-valley .tagline-long {
    display: none;
  }
  html:is(.rgs-ios,.rgs-android) .regional-hero--treasure-valley .tagline-short,
  html:is(.rgs-ios,.rgs-android) .regional-hero--central-idaho .tagline-short,
  html:is(.rgs-ios,.rgs-android) .regional-hero--magic-valley .tagline-short,
  html:is(.rgs-ios,.rgs-android) .regional-hero--mountain-home .tagline-short,
  html:is(.rgs-ios,.rgs-android) .regional-hero--north-idaho .tagline-short,
  html:is(.rgs-ios,.rgs-android) .regional-hero--upper-snake .tagline-short,
  html:is(.rgs-ios,.rgs-android) .regional-hero--west-central-mountains .tagline-short,
  html:is(.rgs-ios,.rgs-android) .regional-hero--wood-river-valley .tagline-short {
    display: none !important; /* hide short tagline on iPhone portrait */
  }
  html:is(.rgs-ios,.rgs-android) .regional-hero--treasure-valley .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero--central-idaho .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero--magic-valley .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero--mountain-home .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero--north-idaho .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero--upper-snake .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero--west-central-mountains .hero-tagline,
  html:is(.rgs-ios,.rgs-android) .regional-hero--wood-river-valley .hero-tagline {
    display: none !important; /* hide entire tagline container for full header space */
  }
}

/* Mobile Responsive */
@media(max-width:768px){
  .regional-hero h1{font-size:2rem}
  .hero-tagline{font-size:1.05rem}
  .hero-content{
    padding:2rem 1.8rem;
    max-width:100%;
    margin:0 1rem
  }
  .hero-content h1{font-size:1.8rem}
  .hero-content .hero-tagline{font-size:1rem}
  .showcase-heading{font-size:1.6rem}
  .btn-large{font-size:1rem;padding:.85rem 1.6rem}
  .section-title{font-size:1.6rem}
  .services-grid{grid-template-columns:1fr;gap:1.2rem}
  .cities-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.8rem}
  .cities-grid span{padding:.7rem 1rem;font-size:.9rem}
  .regional-testimonial .testimonial-card{padding:1.5rem}
  .regional-testimonial .testimonial-quote{font-size:1.05rem}
  .regional-cta h2{font-size:1.8rem}
  .regional-cta p{font-size:1rem}
  .faq-item summary{font-size:1rem;padding:1.1rem}
  .faq-item p{font-size:.95rem;padding:0 1.1rem 1.2rem}
}

/* Contact page callout and info card styles */
.contact-callout {
  background: linear-gradient(90deg, #e0f2ff 0%, #f0f8ff 100%);
  border-radius: 16px;
  padding: 1.2rem 2rem;
  margin: 1.5rem auto 2.5rem auto;
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 1.18rem;
  font-weight: 500;
  box-shadow: 0 2px 12px rgba(11,114,255,.07);
  max-width: 700px;
}
.callout-icon {
  font-size: 2rem;
  margin-right: 0.5rem;
}
.contact-info-card {
  background: #f8fbff;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(11,114,255,.07);
  padding: 1.5rem 2rem;
  max-width: 420px;
  margin: 2.5rem auto 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.contact-row {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 1.08rem;
}
.contact-icon {
  font-size: 1.5rem;
}
.contact-label {
  font-weight: 600;
  color: #0b72ff;
}
.contact-link {
  color: #0f2f42;
  text-decoration: none;
  font-weight: 500;
}
.contact-link:hover {
  text-decoration: underline;
  color: #45b7f6;
}

/* --- Laptop refinements: 15–13 inch (progressive) --- */
@media (min-width:1281px) and (max-width:1535px){
  :root{ --hero-offset: -5%; }
  .hero-content-wrapper{ gap:.9rem; }
  .hero-bubble-section{ transform:translateX(-7.5%); }
}
@media (min-width:1281px) and (max-width:1440px){
  :root{ --hero-offset: -4.5%; }
  .hero-content-wrapper{ gap:.85rem; }
  .hero-canvas{ width:62vw; max-width:1020px; min-width:560px; }
  .hero-bubble{ max-width:442px; padding:1.96rem 1.96rem; }
  .hero-bubble .cta-secondary{ min-width:108px; padding:0.63rem 0.88rem; font-size:0.87rem; }
  .hero-bubble .secondary-ctas{ gap:0.48rem; }
  .hero-bubble-section{ transform:translateX(-7%); }
}
@media (min-width:1281px) and (max-width:1366px){
  :root{ --hero-offset: -3.7%; }
  .hero-content-wrapper{ gap:.8rem; }
  .hero-canvas{ width:58vw; max-width:920px; min-width:520px; }
  .hero-bubble{ max-width:425px; padding:1.87rem 1.87rem; }
  .hero-bubble .cta-secondary{ min-width:106px; padding:0.62rem 0.86rem; font-size:0.86rem; }
  .hero-bubble .secondary-ctas{ gap:0.46rem; }
  .hero-bubble-section{ transform:translateX(-6%); }
}
@media (min-width:1281px) and (max-width:1280px){
  :root{ --hero-offset: -3.3%; }
  .hero-content-wrapper{ padding:0 3rem; gap:.75rem; }
  .hero-canvas{ width:56vw; max-width:860px; min-width:500px; }
  .hero-bubble{ max-width:417px; padding:1.79rem 1.79rem; }
  .hero-bubble .cta-secondary{ min-width:104px; padding:0.6rem 0.84rem; font-size:0.85rem; }
  .hero-bubble .secondary-ctas{ gap:0.44rem; }
  .hero-bubble-section{ transform:translateX(-5.5%); }
}

/* Protective reset: Clear laptop transforms before tablet/iPad breakpoints kick in */
@media (max-width:1280px){
  .hero-bubble-section{ transform:none; }
}

/* iPad-specific hero adjustments (1024px-1280px) - smaller video and card, centered */
@media (min-width:1024px) and (max-width:1280px){
  body.about-page .sub-hero{
    display:block !important;
    text-align:left !important;
    padding-top:0.35rem !important;
  }
  /* Laptop-only About page layout tweaks: card above heading, image right */
  body.about-page .sub-hero{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:1.5rem;
    padding:1.6rem 2rem;
    align-items:start;
  }
  body.about-page .sub-hero .about-subhead-desktop{
    grid-column:1;
    grid-row:1;
  }
  body.about-page .sub-hero .action-heading{
    grid-column:1;
    grid-row:2;
  }
  body.about-page .sub-hero .about-hero-image{
    grid-column:2;
    grid-row:1 / span 3;
  }
  :root{ --hero-offset: -3%; }
  .hero-content-wrapper{ padding:2.5rem 2rem 0 2rem; gap:1.5rem; }
  .hero-cta{ padding-bottom:4rem; padding-top:1.2rem; }
  .hero-media,
  .hero-bubble-section{ transform:translateY(35px); }
  .hero-media{ position:relative; overflow:hidden; }
  .hero-media::before{ content:""; position:absolute; left:0; right:0; bottom:-0.5px; height:1px; background:#fff; pointer-events:none; z-index:2; }
  .hero-canvas{ width:52vw; max-width:620px; min-width:480px; }
  .hero-bubble{ max-width:380px; padding:1.6rem 1.6rem; gap:1.2rem; }
  /* Header nav: shrink + equalize buttons (iPad only) */
  .site-header .main-nav{
    gap:0.25rem;
    padding:0.25rem 0.35rem;
    margin-right:1rem;
  }
  .site-header .main-nav a{
    font-size:0.8rem;
    padding:0.35rem 0.65rem;
    width:72px;
    flex:0 0 72px;
    min-width:0;
    text-align:center;
    display:flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
  }
  /* iPad portrait: keep hero secondary CTAs compact */
  .hero-bubble .secondary-ctas{
    justify-content:center !important;
    gap:0.35rem !important;
    flex-wrap:wrap !important;
    width:auto !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .hero-bubble .cta-secondary{
    flex:0 0 auto !important;
    min-width:0 !important;
    width:auto !important;
    max-width:118px !important;
    padding:0.5rem 0.75rem !important;
    font-size:0.9rem !important;
  }
  /* iPad portrait: tighten hero secondary CTAs */
  .hero-bubble .secondary-ctas{
    justify-content:center;
    gap:0.4rem;
    flex-wrap:wrap;
  }
  .hero-bubble .cta-secondary{
    flex:0 0 auto;
    min-width:0;
    width:auto;
    max-width:120px;
    padding:0.55rem 0.85rem;
    font-size:0.9rem;
  }
  /* iPad portrait: tighten hero secondary CTA widths */
  .hero-bubble .secondary-ctas{
    gap:0.35rem;
    justify-content:center;
  }
  .hero-bubble .cta-secondary{
    flex:0 0 auto;
    width:auto;
    max-width:120px;
    min-width:0;
    padding:0.45rem 0.8rem;
    font-size:0.88rem;
  }
  /* Header brand + logo: shrink 15% (iPad only) */
  .idaho-logo-wrap{ width:51.41px; height:51.41px; padding:3.67px; }
  .idaho-logo{ width:34.88px; height:34.88px; }
  .brand{ font-size:1.4135rem; }
  /* Header tagline: shrink 20% + two-line format (iPad only) */
  .header-tagline{ 
    font-size:0.84rem; 
    line-height:1.35;
    max-width:280px;
    white-space:normal;
  }
  body:has(.hero) .header-tagline{
    display:none !important;
  }
  /* Primary CTAs: Homeowner/Builder buttons - compact sizing */
  .hero-bubble .cta-primary{ padding:1.2rem 1.4rem; flex:1 1 0; min-width:0; }
  .hero-bubble .cta-primary .icon{ font-size:2rem; }
  .hero-bubble .cta-primary .label{ font-size:1rem; }
  /* Secondary CTAs: much narrower buttons to prevent stacking */
  .hero-bubble .cta-secondary{ min-width:80px; padding:0.5rem 0.6rem; font-size:0.75rem; }
  .hero-bubble .secondary-ctas{ gap:0.3rem; }
  /* Tighter spacing around divider */
  .hero-bubble .cta-divider{ margin:0.25rem 0; }
  .hero-bubble .cta-divider span{ padding:0 0.5rem; }
  
  /* Below-hero intro: stack intro copy full-width, then services grid below (iPad landscape only) */
  .intro-grid{ display:flex; flex-direction:column; gap:1.5rem; }
  .intro-copy{ 
    padding-left:0; 
    width:100%;
    max-width:100%; 
    text-align:center; 
    margin:0 auto; 
    display:flex; 
    flex-direction:column; 
    align-items:center;
    gap:1rem;
  }
  .intro-copy::before{ content:none; }
  .intro-copy .desktop-text{
    background:#c5e0ff;
    border-radius:14px;
    padding:2rem 1.5rem 2.25rem;
    box-shadow:0 12px 30px rgba(8,20,40,0.1);
    color:#0f2f42;
    margin-bottom:1rem;
    width:100%;
    max-width:1100px;
    margin-left:auto;
    margin-right:auto;
    font-size:1.24rem;
    line-height:1.68;
    text-align:center;
    font-weight:400;
  }
  /* iPad landscape: move the intro accent line below the hero headline */
  .intro-copy .blue-headline{ 
    font-size:2.8rem; 
    margin-bottom:1rem; 
    padding-bottom:1rem;
    position:relative;
    display:inline-block;
    margin-left:auto;
    margin-right:auto;
  }
  .intro-copy .blue-headline::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:4px;
    border-radius:999px;
    background:linear-gradient(90deg,#45b7f6 0%,#0b72ff 100%);
  }
  .intro-copy .blue-subhead{ 
    font-size:1.24rem; 
    width:100%;
    max-width:1100px; 
    margin-left:auto; 
    margin-right:auto; 
    line-height:1.68;
    text-align:center;
  }
  .intro-trust-section{
    margin-top:0.5rem;
  }
  /* iPad landscape: normalize chip heights so top and bottom rows match */
  .intro-trust-badges .trust-chip,
  .intro-metrics .intro-metric{
    min-height:96px; /* was 83px; ensure both rows equal height */
    padding:.9rem .75rem; /* keep internal spacing consistent */
  }
  .intro-trust-section .trust-chip,
  .intro-trust-section .intro-metric{
    position:relative;
    will-change:border-color, box-shadow;
    transition:border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip,
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric{
    animation:ipadTrustBorderPulse 1.9s ease both;
  }
  .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(2){ animation-delay:0.08s; }
  .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(3){ animation-delay:0.16s; }
  .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(4){ animation-delay:0.24s; }
  .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(5){ animation-delay:0.32s; }
  .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip:nth-child(6){ animation-delay:0.4s; }
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(1){ animation-delay:0.52s; }
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(2){ animation-delay:0.6s; }
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(3){ animation-delay:0.68s; }
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(4){ animation-delay:0.76s; }
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(5){ animation-delay:0.84s; }
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric:nth-child(6){ animation-delay:0.92s; }
  @keyframes ipadTrustBorderPulse{
    0%{ border-color:rgba(255,255,255,0.22); box-shadow:0 0 0 rgba(69,183,246,0); }
    35%{ border-color:rgba(69,183,246,0.85); box-shadow:0 0 18px rgba(69,183,246,0.35); }
    65%{ border-color:rgba(11,114,255,0.9); box-shadow:0 0 12px rgba(11,114,255,0.45); }
    100%{ border-color:rgba(255,255,255,0.22); box-shadow:0 0 0 rgba(69,183,246,0); }
  }
  .services-collage{ width:100%; }
  .services-collage .services-grid{ grid-template-columns:repeat(3,1fr); gap:0.65rem; grid-auto-rows:1fr; }
  /* Center "What we do" section header to match testimonials + social sections */
  .services-collage .section-header{ display:flex; align-items:center; margin:0 auto 0.5rem; }

  /* iPad landscape: Builder page CTA buttons - white with yellow hover, equal size */
  .builder-page .builder-cta-primary,
  .builder-page .builder-cta-secondary{
    background:#fff;
    color:#0b72ff;
    border:none;
    font-weight:800;
    box-shadow:0 8px 32px rgba(0,0,0,0.2);
    backdrop-filter:none;
    flex:1 1 0;
    max-width:300px;
  }
  .builder-page .builder-cta-primary:hover,
  .builder-page .builder-cta-secondary:hover{
    background:#ffeb3b;
    color:#0b72ff;
    border:none;
    transform:translateY(-3px);
    box-shadow:0 12px 48px rgba(0,0,0,0.3);
  }
  
  /* iPad landscape: Builder page blueprint title gradient */
  .builder-page .blueprint-title{
    background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    color:transparent;
  }

  /* iPad landscape: Builder page CTA footer heading gradient */
  .builder-page .builder-cta-final h2{
    background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    color:transparent;
  }
  
  /* iPad landscape: Scroll-triggered animation for why cards */
  .builder-page .builder-why-card{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.6s ease, transform 0.6s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .builder-page .builder-why-card.card-visible{
    opacity:1;
    transform:translateY(0);
    border-color:#45b7f6;
    box-shadow:0 16px 48px rgba(11,114,255,0.15);
  }
  .builder-page .builder-why-card.card-visible::before{
    transform:scaleX(1);
  }

  /* iPad landscape: Hide Statewide Reach section on builder page */
  .builder-page .builder-coverage{
    display:none !important;
  }

  /* iPad landscape: upgrade nav-page hero layouts */
  body.about-page .sub-hero > div{
    max-width:1100px !important;
    margin:0 auto;
    padding:1.5rem 2.8rem 2.6rem;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,0.85fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:
      "title content"
      "subhead content";
    column-gap:2.4rem;
    row-gap:0;
    align-items:stretch;
    align-content:start;
    grid-auto-rows:min-content;
    text-align:left !important;
    background:rgba(255,255,255,0.03);
    border-radius:26px;
    position:relative;
    isolation:isolate;
  }
  /* Soft ambient glow mimics the frosted card from iPhone hero */
  body.about-page .sub-hero > div::before{
    content:"";
    position:absolute;
    inset:0.85rem;
    border-radius:inherit;
    background:radial-gradient(circle at 20% 20%,rgba(69,183,246,0.35),transparent 55%);
    filter:blur(35px);
    opacity:0.9;
    z-index:-1;
  }
  body.about-page .sub-hero .breadcrumb{
    display:none !important;
    grid-area:crumb;
  }
  body.about-page .sub-hero .action-heading{
    font-size:3.15rem;
    line-height:1.05;
    letter-spacing:-0.035em;
    text-align:left;
    margin-bottom:0.2rem;
    grid-area:title;
  }
  body.about-page .about-hero-image{
    display:block;
    width:100%;
    max-width:520px;
    justify-self:stretch;
    align-self:stretch;
    border-radius:20px;
    box-shadow:none;
    border:none;
    background:#020a18;
    margin:0;
    grid-area:content;
  }
  body.about-page .sub-hero .about-subhead-desktop{
    margin-left:0 !important;
    margin-right:0 !important;
    text-align:left;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9));
    border:1px solid rgba(255,255,255,0.45);
    border-radius:18px;
    padding:2.35rem 1.85rem 2.35rem;
    backdrop-filter:blur(22px);
    box-shadow:0 18px 45px rgba(10,40,90,0.45);
    grid-area:subhead;
    font-size:1.32rem;
    line-height:1.78;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    color:#fff;
    gap:1.1rem;
  }
  body.about-page .sub-hero .about-subhead-desktop::before{
    content:"Founder credentials";
    font-size:0.78rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    font-weight:800;
    color:#ffeb3b;
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
  }
  body.about-page .sub-hero .about-subhead-desktop::after{
    content:"Eagle Scout leadership  •  Wildland firefighter discipline  •  2,500+ Idaho projects";
    font-size:1rem;
    line-height:1.6;
    color:#fff;
    display:block;
    padding-top:0.4rem;
    border-top:1px solid rgba(255,255,255,0.35);
  }

  body.about-page .sub-hero > div,
  body.services-page .sub-hero > div{
    min-height:560px;
  }

  body.services-page .sub-hero{
    display:block !important;
    text-align:left !important;
    padding-top:0.35rem !important;
  }
  body.services-page .sub-hero > div{
    max-width:1100px !important;
    margin:0 auto;
    padding:1.5rem 2.8rem 2.6rem;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,0.85fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:
      "title content"
      "subhead content";
    column-gap:2.4rem;
    row-gap:0;
    align-items:stretch;
    align-content:start;
    grid-auto-rows:min-content;
    text-align:left !important;
    background:rgba(255,255,255,0.03);
    border-radius:26px;
    position:relative;
    isolation:isolate;
  }
  body.services-page .sub-hero > div::before{
    content:"";
    position:absolute;
    inset:0.85rem;
    border-radius:inherit;
    background:radial-gradient(circle at 20% 20%,rgba(69,183,246,0.35),transparent 55%);
    filter:blur(35px);
    opacity:0.9;
    z-index:-1;
  }
  body.services-page .sub-hero .breadcrumb{
    display:none !important;
  }
  body.services-page .sub-hero h1{margin-bottom:0.4rem;}
  body.services-page .sub-hero .action-heading{
    font-size:3.15rem;
    line-height:1.05;
    letter-spacing:-0.035em;
    text-align:left;
    margin-bottom:0.2rem;
    grid-area:title;
  }
  body.services-page .services-hero-image{
    grid-area:content;
    display:block;
    width:100%;
    max-width:520px;
    height:100%;
    border-radius:20px;
    object-fit:cover;
    background:#020a18;
    box-shadow:none;
    border:none;
    margin:0;
    justify-self:stretch;
    align-self:stretch;
  }
  body.services-page .services-hero-card{
    grid-area:subhead;
    margin-left:0 !important;
    margin-right:0 !important;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9));
    border:1px solid rgba(255,255,255,0.45);
    border-radius:18px;
    padding:1.9rem 1.85rem 2.05rem;
    backdrop-filter:blur(22px);
    box-shadow:0 18px 45px rgba(10,40,90,0.45);
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    gap:1.1rem;
    color:#fff;
    margin-top:30px;
  }
  body.services-page .services-hero-card::before{
    content:"Service credentials";
    font-size:0.78rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    font-weight:800;
    color:#ffeb3b;
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    margin-top:30px;
  }
  body.services-page .services-hero-card::after{
    content:"5\" & 6\" seamless runs  •  24-hour estimates  •  Licensed statewide";
    font-size:1rem;
    line-height:1.6;
    color:#fff;
    display:block;
    padding-top:0.4rem;
    border-top:1px solid rgba(255,255,255,0.35);
  }
  body.services-page .services-hero-card .services-subhead-desktop{
    margin:0;
    color:#fff;
    font-size:1.32rem;
    line-height:1.78;
    width:100%;
    max-width:none !important;
    text-align:left;
  }
  body.services-page .services-hero-card .services-hero-highlights{display:none;}
  body.services-page .services-subhead-mobile{
    display:none;
  }

  body.contact-page .contact-hero-inner{
    max-width:820px !important;
    padding:0;
    margin:0 auto 1.5rem;
    background:none;
    border:none;
    box-shadow:none;
    min-height:auto;
    text-align:center !important;
    position:relative;
  }
  body.contact-page .contact-hero-inner::before{display:none;}
  body.contact-page .contact-hero-card{
    background:none;
    border:none;
    box-shadow:none;
    padding:0;
    display:flex;
    justify-content:center;
  }
  body.contact-page .contact-hero-card-body{
    align-items:center;
    text-align:center;
    gap:0.6rem;
  }
  body.contact-page .contact-hero-card-body .action-heading{
    font-size:3rem;
    line-height:1.08;
    letter-spacing:-0.03em;
    margin:0;
  }
  body.contact-page .contact-hero-card .call-now-mobile-wrap,
  body.contact-page .contact-hero-card .contact-hero-subhead,
  body.contact-page .contact-hero-card .contact-hero-quick-card,
  body.contact-page .contact-inline-meta{
    display:none !important;
  }
  body.contact-page .email-modal-card{
    max-width:900px !important;
    width:100% !important;
    margin:1.5rem auto 0 auto !important;
  }
  body.contact-page .contact-inline-meta--bubble{
    display:flex !important;
    flex-direction:row;
    justify-content:space-between;
    gap:1.2rem;
    margin:1.5rem auto 0 auto;
    padding:1.3rem 1.6rem;
    max-width:900px;
    background:rgba(8,20,40,0.18);
    border:1px solid rgba(255,255,255,0.25);
    border-radius:18px;
    color:#fff;
    text-align:left;
    box-shadow:0 18px 45px rgba(5,10,20,0.45);
  }
  body.contact-page .contact-inline-meta--bubble p{
    margin:0;
    flex:1 1 0;
    font-size:1.05rem;
    line-height:1.4;
  }
  body.contact-page .contact-inline-meta--bubble p:nth-child(2){
    padding-left:50px;
  }
  body.contact-page .contact-inline-meta--bubble span{
    display:block;
    font-size:0.78rem;
    letter-spacing:0.2em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.75);
    margin-bottom:0.3rem;
  }
  body.contact-page .contact-inline-meta--bubble a{
    color:#fff;
    font-weight:700;
    text-decoration:none;
  }

  /* About page: keep highlight cards in a single row on iPad landscape */
  body.about-page .services-grid,
  body.services-page .services-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1.2rem;
  }
  body.about-page .services-grid .service-card p,
  body.services-page .services-grid .service-card p{
    display:none;
  }
    body.services-page .services-grid{
      grid-template-columns:repeat(6,minmax(0,1fr));
      gap:0.9rem;
    }
    body.services-page .services-grid .service-link{
      display:none !important;
    }

  /* About & Services CTA: simplify to headline + buttons with larger, equal-width CTAs */
  body.about-page .mega-bubble,
  body.services-page .mega-bubble{
    max-width:860px;
    margin:2rem auto 0;
    text-align:center !important;
  }
  body.about-page .mega-bubble .blue-subhead,
  body.services-page .mega-bubble .blue-subhead{
    display:none;
  }
  body.about-page .mega-bubble > div:last-child,
  body.services-page .mega-bubble > div:last-child{
    width:100%;
    max-width:560px;
    margin:1.5rem auto 0;
    display:flex !important;
    gap:1rem;
  }
  body.about-page .mega-bubble > div:last-child .btn,
  body.services-page .mega-bubble > div:last-child .btn{
    flex:1 1 0;
    min-width:0;
    padding:1.15rem 1.5rem;
    font-size:1.08rem;
    border-radius:14px;
  }
}

@media (min-width:1024px) and (max-width:1280px) and (prefers-reduced-motion: reduce){
  .intro-trust-section.trust-highlight-active .intro-trust-badges .trust-chip,
  .intro-trust-section.trust-highlight-active .intro-metrics .intro-metric{
    animation:none !important;
    box-shadow:none !important;
  }
}

/* iPad portrait fine-tuning: remove faint bottom line on hero video canvas by forcing black backdrop and anti-alias fix */
@media (orientation: portrait) and (min-width:768px) and (max-width:1024px){
  .hero-media{ overflow:hidden; }
  .hero-canvas{ background:#000; box-shadow:none; border:none; outline:none; display:block; }
  /* Sometimes the line is a subpixel from transform/scale; force translateZ(0) to stabilize */
  .hero-canvas{ transform:translateZ(0); }
  /* Seam mask: cover any subpixel gap with a 1px white overlay without changing canvas size */
  .hero-media::before{ content:""; position:absolute; left:0; right:0; bottom:-0.5px; height:1px; background:#fff; pointer-events:none; z-index:2; }
  /* Hero portrait: shrink entire card area ~20% uniformly and keep layout simple */
  .hero-content-wrapper{ flex-direction:column; gap:0.9rem; padding:0 2rem; }
  .hero-bubble{ margin-top:0; min-width:550px !important; }
  .hero-bubble-section{ margin-top:0; transform:scale(0.8); transform-origin:top center; }
  /* Restore divider to default overlap so card has more room visually */
  .page-divider{ margin-top:-2rem; }
  /* Below-hero: hide trust badges + metrics (12 small bubbles) in iPad portrait only */
  .intro-trust-section{ display:none; }
  /* Center "What we do" section header to match testimonials + social sections (iPad portrait) */
  .services-collage .section-header{ display:flex; align-items:center; margin:0 auto 0.5rem; }
  
  /* iPad portrait: Builder page CTA buttons - white with yellow hover, equal size */
  .builder-page .builder-cta-primary,
  .builder-page .builder-cta-secondary{
    background:#fff;
    color:#0b72ff;
    border:none;
    font-weight:800;
    box-shadow:0 8px 32px rgba(0,0,0,0.2);
    backdrop-filter:none;
    flex:1 1 0;
    max-width:300px;
  }
  .builder-page .builder-cta-primary:hover,
  .builder-page .builder-cta-secondary:hover{
    background:#ffeb3b;
    color:#0b72ff;
    border:none;
    transform:translateY(-3px);
    box-shadow:0 12px 48px rgba(0,0,0,0.3);
  }
  
  /* iPad portrait: Builder page blueprint title gradient */
  .builder-page .blueprint-title{
    background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    color:transparent;
  }

  /* iPad portrait: Builder page CTA footer heading gradient */
  .builder-page .builder-cta-final h2{
    background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    color:transparent;
  }
  
  /* iPad portrait: Builder page why cards in single row (3 columns) */
  .builder-page .builder-why-grid{
    grid-template-columns:repeat(3,1fr) !important;
    gap:1.5rem !important;
  }
  
  /* iPad portrait: Shrink why card body text for more compact cards */
  .builder-page .builder-why-card p{
    font-size:0.88rem !important;
    line-height:1.5 !important;
  }

  /* iPad portrait: Hide Statewide Reach section on builder page */
  .builder-page .builder-coverage{
    display:none !important;
  }
  
  /* iPad portrait: Scroll-triggered animation for why cards */
  .builder-page .builder-why-card{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.6s ease, transform 0.6s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .builder-page .builder-why-card.card-visible{
    opacity:1;
    transform:translateY(0);
    border-color:#45b7f6;
    box-shadow:0 16px 48px rgba(11,114,255,0.15);
  }
  .builder-page .builder-why-card.card-visible::before{
    transform:scaleX(1);
  }
  
  /* iPad portrait: side-by-side map and browse regions cards (equal width) */
  .map-section{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:1rem !important;
    align-items:start !important;
  }
  
  .list-card{
    height:60vh !important;
    position:sticky !important;
    top:1rem !important;
  }
  
  .map, .map-loader{
    height:60vh !important;
    min-height:420px !important;
  }
  
  /* Center panel title on iPad portrait */
  .panel-title{
    text-align:center !important;
  }
  
  /* iPad portrait: keep hero secondary CTAs compact */
  .hero-bubble .secondary-ctas{
    display:flex !important;
    flex-wrap:nowrap !important;
    flex-direction:row !important;
    justify-content:space-between !important;
    gap:0.5rem !important;
  }
  .hero-bubble .cta-secondary{
    flex:1 1 0 !important;
    min-width:150px !important;
    width:auto !important;
    max-width:none !important;
    padding:0.86rem 0.6rem !important;
    font-size:1.3rem !important;
    font-weight:400 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    height:auto !important;
  }
  .hero-bubble .cta-secondary .label{
    font-weight:400 !important;
  }

  /* iPad portrait: wrap intro body text in the same blue container as landscape */
  .intro-copy .desktop-text{
    background:#c5e0ff;
    border-radius:14px;
    padding:1.4rem 1.6rem 1.8rem;
    box-shadow:0 12px 30px rgba(8,20,40,0.12);
    color:#0f2f42;
    margin:0 auto 1.4rem;
    max-width:720px;
    text-align:center;
    transform:translateX(-15px);
    font-weight:400;
  }

  /* iPad portrait: elevate About hero into a centered card with the image tucked underneath */
  body.about-page .sub-hero > div{
    max-width:860px;
    padding:1.4rem 1.95rem 2.2rem;
    background:rgba(255,255,255,0.03);
    border-radius:26px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,0.95fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:
      "title title"
      "subhead content";
    column-gap:1.4rem;
    row-gap:0;
    position:relative;
    isolation:isolate;
  }
  body.about-page .sub-hero > div::before{
    content:"";
    position:absolute;
    inset:0.65rem;
    border-radius:inherit;
    background:radial-gradient(circle at 22% 18%,rgba(69,183,246,0.32),transparent 55%);
    filter:blur(28px);
    opacity:0.85;
    z-index:-1;
  }
  body.about-page .sub-hero .breadcrumb{
    display:none !important;
  }
  body.about-page .sub-hero .action-heading{
    font-size:2.75rem;
    line-height:1.05;
    letter-spacing:-0.03em;
    margin-bottom:0.6rem;
    grid-area:title;
    text-align:center;
  }
  body.about-page .about-hero-image{
    display:block;
    width:100%;
    max-width:460px;
    border-radius:18px;
    align-self:stretch;
    height:100%;
    box-shadow:none;
    border:none;
    background:#020a18;
    grid-area:content;
    object-fit:cover;
    margin-top:0.35rem;
  }
  body.about-page .sub-hero .about-subhead-desktop{
    margin-left:0 !important;
    margin-right:0 !important;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9));
    border:1px solid rgba(255,255,255,0.45);
    border-radius:18px;
    padding:1.85rem 1.65rem 2rem;
    backdrop-filter:blur(18px);
    box-shadow:0 16px 40px rgba(10,40,90,0.35);
    grid-area:subhead;
    font-size:1.24rem;
    line-height:1.72;
    color:#fff;
    display:flex;
    flex-direction:column;
    gap:0.9rem;
    height:100%;
  }
  body.about-page .sub-hero .about-subhead-desktop::before{
    content:"Founder credentials";
    font-size:0.72rem;
    letter-spacing:0.24em;
    text-transform:uppercase;
    font-weight:800;
    color:#ffeb3b;
  }
  body.about-page .sub-hero .about-subhead-desktop::after{
    content:"Eagle Scout leadership  •  Wildland firefighter discipline  •  2,500+ Idaho projects";
    font-size:0.95rem;
    line-height:1.5;
    color:#fff;
    border-top:1px solid rgba(255,255,255,0.25);
    padding-top:0.4rem;
  }

  /* iPad portrait: mirror the About hero layout on Services */
  body.services-page .sub-hero{
    margin-top:0;
  }
  body.services-page .sub-hero > div{
    max-width:860px !important;
    padding:1.4rem 1.95rem 2.2rem;
    background:rgba(255,255,255,0.03);
    border-radius:26px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,0.95fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:
      "title title"
      "subhead content";
    column-gap:1.4rem;
    row-gap:0;
    position:relative;
    isolation:isolate;
  }
  body.services-page .sub-hero > div::before{
    content:"";
    position:absolute;
    inset:0.65rem;
    border-radius:inherit;
    background:radial-gradient(circle at 22% 18%,rgba(69,183,246,0.32),transparent 55%);
    filter:blur(28px);
    opacity:0.85;
    z-index:-1;
  }
  body.services-page .sub-hero .breadcrumb{display:none !important;}
  body.services-page .sub-hero .action-heading{
    font-size:2.75rem;
    line-height:1.05;
    letter-spacing:-0.03em;
    grid-area:title;
    text-align:center;
    margin-bottom:0.6rem;
  }
  body.services-page .services-hero-image{
    grid-area:content;
    display:block;
    width:100%;
    max-width:460px;
    height:100%;
    min-height:430px;
    border-radius:18px;
    object-fit:cover;
    background:#020a18;
    border:none;
    box-shadow:none;
    justify-self:stretch;
    align-self:stretch;
    margin-top:0.35rem;
    transform:scaleY(0.92) translateY(7px);
    transform-origin:top center;
  }
  body.services-page .services-hero-card{
    grid-area:subhead;
    margin:0 !important;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9));
    border:1px solid rgba(255,255,255,0.45);
    border-radius:18px;
    padding:1.85rem 1.65rem 2rem;
    backdrop-filter:blur(18px);
    box-shadow:0 16px 40px rgba(10,40,90,0.35);
    display:flex;
    flex-direction:column;
    gap:0.9rem;
    color:#fff;
    height:100%;
    min-height:430px;
    align-self:stretch;
    justify-self:stretch;
    transform:scaleY(0.92) translateY(12px);
    transform-origin:top center;
  }
  body.services-page .services-hero-card::before{
    content:"Service credentials";
    font-size:0.72rem;
    letter-spacing:0.24em;
    text-transform:uppercase;
    font-weight:800;
    color:#ffeb3b;
    position:relative;
    top:30px;
  }
  body.services-page .services-hero-card::after{
    content:"5\" & 6\" seamless runs  •  24-hour estimates  •  Licensed statewide";
    font-size:0.95rem;
    line-height:1.5;
    color:#fff;
    border-top:1px solid rgba(255,255,255,0.25);
    padding-top:0.4rem;
    position:relative;
    top:30px;
  }
  body.services-page .services-hero-card .services-subhead-desktop{
    margin:0;
    color:#fff;
    font-size:1.24rem;
    line-height:1.72;
    width:100%;
    max-width:none !important;
    text-align:center;
    position:relative;
    top:30px;
  }
  body.services-page .services-hero-card .services-hero-highlights{display:none;}
  body.services-page .services-subhead-mobile{display:none;}
  body.contact-page .contact-hero-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,0.8fr);
    gap:1.8rem;
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9));
    border:1px solid rgba(255,255,255,0.45);
    border-radius:18px;
    padding:2rem 2rem 2.2rem;
    box-shadow:0 18px 45px rgba(10,40,90,0.45);
    color:#020812;
  }
  body.contact-page .contact-hero-card-body{
    align-items:flex-start;
    text-align:left;
    gap:1rem;
  }
  body.contact-page .contact-hero-card-body .action-heading{
    font-size:3rem;
    line-height:1.08;
    letter-spacing:-0.03em;
    margin:0 0 0.2rem;
    text-align:left;
  }
  body.contact-page .contact-hero-card .call-now-mobile-wrap{
    justify-content:flex-start;
    margin:0;
  }
  body.contact-page .call-now-mobile-wrap .call-now-btn{
    font-size:1rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:0.08em;
    padding:0.75rem 1.65rem;
    border-radius:999px;
    background:linear-gradient(90deg,#45b7f6,#0b72ff);
    color:#020814;
    box-shadow:0 15px 35px rgba(11,114,255,0.4);
  }
  body.contact-page .contact-hero-card .contact-hero-subhead{
    margin:0;
    text-align:left;
    line-height:1.6;
    color:#020812;
  }
  body.contact-page .contact-hero-card .contact-hero-quick-card{
    margin-top:0;
    height:100%;
    align-self:stretch;
    background:rgba(8,20,40,0.32);
    border:1px solid rgba(8,30,55,0.45);
    padding:1.4rem 1.1rem;
  }

  /* About cards + CTA alignment to mirror landscape feel */
  body.about-page .services-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0.75rem;
    margin-top:-40px;
  }
  body.about-page .services-grid .service-card p{display:none;}
  body.about-page .services-grid .service-card h2{
    font-size:1rem;
    line-height:1.25;
  }
  body.services-page .services-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:0.65rem;
    margin-top:-35px;
  }
  body.services-page .services-grid .service-card{
    padding:0.65rem 0.5rem;
    border-radius:14px;
    text-align:center;
  }
  body.services-page .services-grid .service-card p,
  body.services-page .services-grid .service-link{
    display:none !important;
  }
  body.services-page .services-grid .service-card h2{
    font-size:0.86rem;
    line-height:1.15;
  }
  body.about-page .services-grid .service-icon svg{
    width:32px;
    height:32px;
  }
  body.about-page .mega-bubble .blue-subhead{display:none;}
  body.about-page .mega-bubble > div:last-child{
    width:100%;
    max-width:520px;
    margin:1.25rem auto 0;
    display:flex !important;
    flex-direction:column;
    gap:0.75rem;
    align-items:center;
  }
  body.about-page .mega-bubble > div:last-child .btn{
    flex:none;
    width:100%;
    max-width:320px;
    min-width:0;
    padding:1.2rem 1.4rem;
    font-size:1.08rem;
    border-radius:14px;
    text-align:center;
  }
  body.services-page .mega-bubble .blue-subhead{display:none;}
  body.services-page .mega-bubble > div:last-child{
    width:100%;
    max-width:520px;
    margin:1.25rem auto 0;
    display:flex !important;
    flex-direction:column;
    gap:0.75rem;
    align-items:center;
  }
  body.services-page .mega-bubble > div:last-child .btn{
    flex:none;
    width:100%;
    max-width:320px;
    min-width:0;
    padding:1.2rem 1.4rem;
    font-size:1.08rem;
    border-radius:14px;
    text-align:center;
  }

  /* iPad portrait: split contact hero into content + quick card, mirroring iPhone layout */
  body.contact-page .contact-hero-inner{
    max-width:760px !important;
    padding:0;
    margin:0 auto 1.2rem;
    background:none;
    border:none;
    box-shadow:none;
    text-align:center !important;
    position:relative;
  }
  body.contact-page .contact-hero-inner::before{display:none;}
  body.contact-page .contact-hero-card{
    background:none;
    border:none;
    box-shadow:none;
    padding:0;
    display:flex;
    justify-content:center;
  }
  body.contact-page .contact-hero-card-body{
    align-items:center;
    text-align:center;
    gap:0.65rem;
  }
  body.contact-page .contact-hero-card-body .action-heading{
    font-size:2.85rem;
    line-height:1.05;
    letter-spacing:-0.03em;
    margin:0;
  }
  body.contact-page .contact-hero-card .call-now-mobile-wrap,
  body.contact-page .contact-hero-card .contact-hero-subhead,
  body.contact-page .contact-hero-card .contact-hero-quick-card,
  body.contact-page .contact-inline-meta{
    display:none !important;
  }
  body.contact-page .email-modal-card{
    max-width:840px !important;
    width:100% !important;
    margin:1.25rem auto 0 auto !important;
  }
  body.contact-page .contact-inline-meta--bubble{
    display:flex !important;
    flex-direction:row;
    align-items:flex-start;
    gap:1rem;
    margin:1.25rem auto 0 auto;
    padding:1.2rem 1.35rem;
    max-width:780px;
    background:rgba(8,20,40,0.2);
    border:1px solid rgba(255,255,255,0.25);
    border-radius:18px;
    color:#fff;
    text-align:left;
    box-shadow:0 14px 35px rgba(5,10,20,0.4);
  }
  body.contact-page .contact-inline-meta--bubble p{
    margin:0;
    font-size:1rem;
    line-height:1.45;
    flex:1 1 0;
  }
  body.contact-page .contact-inline-meta--bubble p:nth-child(2){
    padding-left:50px;
  }
  body.contact-page .contact-inline-meta--bubble span{
    display:block;
    font-size:0.76rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.78);
    margin-bottom:0.25rem;
  }
  body.contact-page .contact-inline-meta--bubble a{
    color:#fff;
    font-weight:700;
    text-decoration:none;
  }
}

/* Ensure stacked/smaller layouts clear offset (place after above to win specificity by order) */
@media (max-width:900px){
  :root{ --hero-offset: 0; }
}

/* Broaden to common 15" laptop full-HD width (1920px) and larger monitors with gentle shrink */
@media (min-width:1281px){
  :root{ --hero-offset: -6%; }
  .hero-content-wrapper{ padding:0 3rem; gap:.95rem; }
    /* Shift visible contents inside the Services credentials card down ~30px */
    body.services-page .services-hero-card .services-subhead-desktop{
      position:relative !important;
      top:30px !important;
      text-align:center !important;
      margin-left:auto !important;
      margin-right:auto !important;
      max-width:72ch !important;
    }
    body.services-page .services-hero-card::after{
      position:relative !important;
      top:30px !important;
    }
  .hero-canvas{ width:64vw; max-width:1070px; min-width:580px; }
  .hero-bubble{ max-width:459px; padding:1.96rem 1.96rem; }
  .hero-bubble .cta-secondary{ min-width:110px; padding:0.65rem 0.9rem; font-size:0.88rem; }
  .hero-bubble .secondary-ctas{ gap:0.5rem; }
  .hero-bubble-section{ transform:translateX(-8%); }
  /* Idaho logo sizing for 13-15" laptops - 28% smaller (20% + 10%), perfectly circular */
  .idaho-logo-wrap{ width:60.48px; height:60.48px; padding:4.32px; }
  /* Laptop band override: shrink hero card ~10% (visual), keep video size */
  @media (min-width:1281px) and (max-width:1535px){
    .hero-bubble{ max-width:413px; padding:1.76rem 1.76rem; }
  }
  .idaho-logo{ width:41.04px; height:41.04px; }
  /* Nav bar sizing for 13-15" laptops - 20% smaller */
  .main-nav{ margin-right:1.6rem; gap:0.4rem; padding:0.32rem; }
  .main-nav a{ font-size:0.8rem; padding:0.4rem 0.8rem; min-width:72px; }
  /* Header tagline sizing for 13-15" laptops - slightly smaller */
  .header-tagline{ font-size:0.92rem; }
}

/* iPad portrait: hide the header tagline to save vertical space */
@media (orientation: portrait) and (min-width:768px) and (max-width:1024px){
  /* iPad portrait: hide the header tagline to save vertical space */
  .header-tagline{ display:none; }
  /* iPad portrait: match nav sizing to iPad landscape to free space */
  .site-header .main-nav{
    gap:0.25rem;
    padding:0.25rem 0.35rem;
    margin-right:1rem;
  }
  .site-header .main-nav a{
    font-size:0.8rem;
    padding:0.35rem 0.65rem;
    width:72px;
    flex:0 0 72px;
    min-width:0;
    text-align:center;
    display:flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
  }
  /* iPad portrait: shrink Idaho badge and brand by 20% */
  .site-header .idaho-logo-wrap{ width:53.76px; height:53.76px; padding:3.84px; }
  .site-header .idaho-logo{ width:36.48px; height:36.48px; }
  .site-header .brand{ font-size:1.344rem; }

  /* iPad portrait: smooth upward float for RGS text on maps pages */
  .site-header .brand{ 
    transition: transform 1s ease-out;
  }
  .site-header .brand.brand-badge-floating{ 
    transform: translateY(-12px);
  }
  .site-header .brand.brand-badge-active{ 
    position: relative;
    transform: translateY(-12px);
  }
  .brand-audience-badge--stacked{ 
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    display:block; 
    font-size:0.95rem; 
    line-height:1.1; 
    text-align:center;
    background:linear-gradient(135deg, #45b7f6 0%, #0b72ff 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
    padding-top:10px;
  }
  .brand-audience-badge--stacked.brand-audience-badge--visible{
    animation:badgeFadeUp .5s ease-out both;
  }
  .brand-audience-badge--stacked::before{
    content:""; display:block; height:2px; width:100%; 
    background:linear-gradient(90deg, rgba(11,114,255,0.35), rgba(69,183,246,0.35));
    position: absolute;
    top: 3px;
    left: 0;
    transform:scaleX(0); transform-origin:left center;
  }
  .brand-audience-badge--visible::before{
    animation:underlineGrow .4s ease-out forwards;
  }
  @keyframes underlineGrow{ from{ transform:scaleX(0);} to{ transform:scaleX(1);} }
  @keyframes badgeFadeUp{ from{ opacity:0; transform:translateX(-50%) translateY(8px);} to{ opacity:1; transform:translateX(-50%) translateY(0);} }

  /* iPad portrait: hide breadcrumb on maps pages */
  .breadcrumb{
    display: none;
  }

  /* iPad portrait: shorten heading text on builder map page */
  .sub-hero .action-heading[data-ipad-text]{
    font-size: 0; /* Hide original text */
  }
  .sub-hero .action-heading[data-ipad-text]::after{
    content: attr(data-ipad-text);
    font-size: 2.25rem; /* Restore heading size */
  }

  /* iPad portrait: side-by-side map and browse regions cards */
  html:is(.rgs-ios,.rgs-android) .map-section{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: start;
  }
  
    /* Match map dimensions from landscape */
    .map, .map-loader{
      height: calc(60vh - 60px);
      min-height: 360px;
    }
  
  html:is(.rgs-ios,.rgs-android) .list-card{
      height: calc(60vh - 60px); /* Match the map height exactly */
    overflow: hidden; /* No scroll - fit all regions */
  }
  
  /* Match landscape styling for coverage panel */
  .coverage-panel .stat{
    padding: 0.72rem 0.8rem;
  }
  .coverage-panel .stat-icon{
    font-size: 1.2rem;
    margin-bottom: 0.2rem;
  }
  .coverage-panel .stat .value{
    font-size: 1.44rem;
  }
  .coverage-panel .stat .label{
    font-size: 0.68rem;
  }
  
  /* Compact region chips */
  .region-chip{
    padding: 0.34rem 0.5rem;
    font-size: 0.8rem;
    gap: 0.3rem;
  }
  .region-chip .dot{
    display: none; /* Hide dots */
  }
  .region-chip .count{
    font-size: 0.68rem;
  }
  
  /* Tighten spacing in coverage panel */
  .coverage-panel{
    gap: 0.55rem;
  }
  html:is(.rgs-ios,.rgs-android) .panel-title{
    text-align: center;
  }
  .coverage-panel .regions{
    gap: 0.3rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    grid-auto-flow: dense;
    align-items: start;
  }
  .coverage-panel .regions .region-chip{
    width: 100%;
    justify-content: center; /* Center content instead of space-between */
    min-height: 2.6rem;
    align-items: center;
  }
  .coverage-panel .regions .region-chip .name{
    line-height: 1.15;
  }

  /* Prevent region chip expansion on iPad portrait - disable all transforms and transitions */
  .region-chip{
    transform: none !important;
    transition: box-shadow .15s !important;
  }
  .region-chip:hover{
    transform: none !important;
    box-shadow: 0 8px 22px rgba(11,114,255,0.16) !important;
  }
  .region-chip.nearest-region{
    transform: none !important;
  }
  /* Hide the "Nearest" badge on iPad portrait to prevent chip expansion */
  .nearest-badge{
    display: none !important;
  }

  /* Custom suggestions dropdown for search box */
  .region-search-wrap{position:relative}
  .region-suggestions{position:absolute;left:0;top:calc(100% + 4px);width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,0.08);max-height:12rem;overflow:auto;z-index:1000}
  .region-suggestion{padding:0.55rem 0.75rem;cursor:pointer;font-size:0.95rem;line-height:1.25;border-bottom:1px solid #f1f5f9}
  .region-suggestion:last-child{border-bottom:none}
  .region-suggestion[aria-selected="true"], .region-suggestion:hover{background:#f1f5f9}

  /* Scroll-triggered reveal: mirror hover state when .revealed is added (iPad portrait) */
  .advantage-card.revealed::before{
    opacity: 1;
    transform: scaleY(1);
  }
  .advantage-card.revealed .advantage-icon{
    color: #0b72ff;
    transform: scale(1.06);
    stroke-width: 2;
  }
  .advantage-card.revealed .number-label{
    font-size: 1rem;
    color: #0b72ff;
    transform: scale(1.1);
    font-weight: 800;
  }
  .advantage-card.revealed .advantage-content h3{
    color: #0b72ff;
  }

  /* Treasure Valley regional page: make coverage intro text bold (iPad portrait only) */
  .regional-showcase--treasure-valley .coverage-intro{
    font-weight: 700;
  }

  /* Treasure Valley regional page: reduce gap between coverage card and weather widget to match weather-to-coupon gap (iPad portrait only) */
  .regional-showcase--treasure-valley .showcase-coverage{
    margin-bottom: 0;
  }
  /* Shift all content below the coverage card upward by 43px (weather + coupon column) */
  .regional-showcase--treasure-valley .showcase-weather{
    margin-top: -43px;
  }

  /* Apply same iPad portrait tweaks to remaining regional pages */
  /* Bold coverage intro text */
  .regional-showcase--central-idaho .coverage-intro,
  .regional-showcase--magic-valley .coverage-intro,
  .regional-showcase--mountain-home .coverage-intro,
  .regional-showcase--north-idaho .coverage-intro,
  .regional-showcase--upper-snake .coverage-intro,
  .regional-showcase--west-central-mountains .coverage-intro,
  .regional-showcase--wood-river-valley .coverage-intro{ font-weight:700; }

  /* Remove extra gap below coverage card */
  .regional-showcase--central-idaho .showcase-coverage,
  .regional-showcase--magic-valley .showcase-coverage,
  .regional-showcase--mountain-home .showcase-coverage,
  .regional-showcase--north-idaho .showcase-coverage,
  .regional-showcase--upper-snake .showcase-coverage,
  .regional-showcase--west-central-mountains .showcase-coverage,
  .regional-showcase--wood-river-valley .showcase-coverage{ margin-bottom:0; }

  /* Shift weather/coupon column upward by 43px to match Treasure Valley */
  .regional-showcase--central-idaho .showcase-weather,
  .regional-showcase--magic-valley .showcase-weather,
  .regional-showcase--mountain-home .showcase-weather,
  .regional-showcase--north-idaho .showcase-weather,
  .regional-showcase--upper-snake .showcase-weather,
  .regional-showcase--west-central-mountains .showcase-weather,
  .regional-showcase--wood-river-valley .showcase-weather{ margin-top:-43px; }

  /* Treasure Valley: Increase CTA section image size (iPad portrait only) */
  body .regional-cta .container{
    max-width: 95% !important;
  }
  
  /* Increase text sizes for hero card (iPad portrait only) */
  .hero-bubble .cta-heading{
    font-size: 1.35rem !important;
  }
  .hero-bubble .cta-secondary{
    font-weight: 400 !important;
    font-size: 1.15rem !important;
  }
}

/* Shared mobile portrait final override (iPhone baseline mirrored to Android) */
@media (max-width:520px){
  /* Override hero-inner padding - remove all padding for full width */
  html:is(.rgs-ios,.rgs-android) .hero-cta{ padding:0 !important; }
  html:is(.rgs-ios,.rgs-android) .hero-cta > .container.hero-inner{ 
    padding:0 !important; 
    margin:0 !important;
    overflow:hidden; 
    max-width:none !important;
    width:100vw !important;
  }
  html:is(.rgs-ios,.rgs-android) .hero-media{ 
    width:110% !important; 
    max-width:110% !important; 
    margin:0 -5% !important;
    padding:0 !important;
    overflow:hidden;
    position:relative;
  }
  /* White seam mask for bottom edge */
  html:is(.rgs-ios,.rgs-android) .hero-media::after{
    content:'';
    position:absolute;
    bottom:-1px;
    left:0;
    right:0;
    height:2px;
    background:#fff;
    z-index:10;
    pointer-events:none;
  }
  /* Final override: let JS control canvas size, CSS just prevents overflow */
  html:is(.rgs-ios,.rgs-android) .hero-canvas{ 
    width:100% !important; 
    min-width:0 !important; 
    max-width:100% !important; 
    height:auto !important;
    aspect-ratio:auto !important;
    margin:0 0 -1px 0; 
    display:block;
  }
  html:is(.rgs-ios,.rgs-android) .hero-content-wrapper{ 
    overflow:hidden !important; 
    max-width:100vw !important; 
    width:100vw !important;
    padding:0 !important; 
    margin:0 !important; 
    gap:0.5rem !important; 
  }
  html:is(.rgs-ios,.rgs-android) .hero-bubble-section{ 
    padding:0 7px !important; 
    margin:-0.5rem 0 0 0 !important;
    max-width:100% !important;
    width:100% !important;
    box-sizing:border-box !important;
  }
  
  /* Make hero card wider and optimize for mobile */
  html:is(.rgs-ios,.rgs-android) .hero-bubble{ 
    max-width:none !important;
    width:calc(100vw - 14px) !important;
    padding:1.2rem !important;
    box-sizing:border-box !important;
    margin:0 auto !important;
    gap:1rem !important;
  }
  
  /* Reduce spacing around heading and divider */
  html:is(.rgs-ios,.rgs-android) .hero-bubble .cta-heading{ margin-bottom:0.5rem !important; margin-top:2px !important; }
  html:is(.rgs-ios,.rgs-android) .hero-bubble .cta-divider{ margin:0.3rem 0 !important; }
  
  /* Shrink hero card buttons by 20% and make them equal size */
  html:is(.rgs-ios,.rgs-android) .hero-bubble .cta-primary{ 
    padding:1rem 1.2rem !important; 
    flex:1 1 0 !important; 
    min-width:0 !important;
    max-width:none !important;
  }
  html:is(.rgs-ios,.rgs-android) .hero-bubble .cta-primary .icon{ font-size:1.8rem !important; }
  html:is(.rgs-ios,.rgs-android) .hero-bubble .cta-primary .label{ 
    font-size:1.05rem !important; 
    color:#000 !important;
    font-weight:700 !important;
  }
  
  /* Three square buttons in a row with stacked text */
  html:is(.rgs-ios,.rgs-android) .hero-bubble .secondary-ctas{ 
    display:flex !important;
    flex-wrap:nowrap !important;
    flex-direction:row !important; 
    gap:0.5rem !important;
    width:100%;
    justify-content:space-between !important;
  }
  html:is(.rgs-ios,.rgs-android) .hero-bubble .cta-secondary{ 
    flex:1 1 0 !important;
    min-width:0 !important;
    max-width:33% !important;
    padding:0.5rem 0.25rem !important;
    font-size:0.85rem !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    height:auto !important;
    word-break:break-word !important;
  }
  html:is(.rgs-ios,.rgs-android) .hero-bubble .cta-secondary .label{
    line-height:1.2 !important;
    text-align:center !important;
    word-break:break-word !important;
  }
  /* Android renders Roboto about 6% larger than San Francisco; trim so text stays inside bubble */
  html.rgs-android .hero-bubble .secondary-ctas{
    gap:0.4rem !important;
  }
  html.rgs-android .hero-bubble .cta-secondary{
    padding:0.42rem 0.18rem !important;
  }
  html.rgs-android .hero-bubble .cta-secondary .label{
    font-size:0.78rem !important;
    line-height:1.1 !important;
    letter-spacing:-0.01em !important;
  }
  
  /* Push wave down to prevent hero card cutoff */
  html:is(.rgs-ios,.rgs-android) .page-divider{ 
    margin-top:3rem !important; 
  }
  
  /* Maps page: hide breadcrumb and stack vertically (browse regions on top, map on bottom) */
  html:is(.rgs-ios,.rgs-android) .sub-hero .breadcrumb{
    display: none !important;
  }
  
  /* Reduce gap above location notice */
  html:is(.rgs-ios,.rgs-android) .sub-hero{
    padding-top: 0.5rem !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .sub-hero .location-notice{
    margin-top: 0.3rem !important;
    margin-bottom: 0.5rem !important;
  }
  
  /* Reduce sub-hero heading size to keep "area" on first line */
  html:is(.rgs-ios,.rgs-android) .sub-hero .action-heading{
    font-size: 1.9rem !important;
    line-height: 1.15 !important;
  }

  /* Builder maps (has data-ipad-text): replace heading copy on iPhone */
  html:is(.rgs-ios,.rgs-android) .sub-hero .action-heading[data-ipad-text]{
    font-size: 0 !important; /* hide original text */
  }
  html:is(.rgs-ios,.rgs-android) .sub-hero .action-heading[data-ipad-text]::after{
    content: attr(data-ipad-text);
    display: inline-block;
    font-size: 1.9rem !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em !important;
  }
  
  .map-section{
    grid-template-columns: 1fr !important;
    gap: 0.8rem !important;
    margin-top: -15px !important;
  }
  
  /* Browse regions card on top */
  .list-card{
    order: -1 !important;
    height: auto !important;
    padding: 0.7rem !important;
    overflow: hidden !important;
    background: rgba(255,255,255,0.95) !important;
  }
  
  /* Center panel title like iPad */
  .panel-title{
    font-size: 0.9rem !important;
    margin-bottom: 0.5rem !important;
    text-align: center !important;
    font-weight: 800 !important;
  }
  
  /* Region search box */
  html:is(.rgs-ios,.rgs-android) .region-search{
    /* Prevent iOS zoom on focus: use 16px font-size */
    font-size: 16px !important;
    /* Slightly reduce padding to keep overall height similar */
    padding: 0.45rem 0.6rem !important;
    border-radius: 8px !important;
  }
  /* Custom suggestions dropdown anchored to the search input (match iPad) */
  html:is(.rgs-ios,.rgs-android) .region-search-wrap{ position:relative }
  html:is(.rgs-ios,.rgs-android) .region-suggestions{ position:absolute; left:0; top:calc(100% + 4px); width:100%; background:#fff; border:1px solid #e5e7eb; border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,0.08); max-height:12rem; overflow:auto; z-index:1000 }
  html:is(.rgs-ios,.rgs-android) .region-suggestion{ padding:0.55rem 0.75rem; cursor:pointer; font-size:0.95rem; line-height:1.25; border-bottom:1px solid #f1f5f9 }
  html:is(.rgs-ios,.rgs-android) .region-suggestion:last-child{ border-bottom:none }
  html:is(.rgs-ios,.rgs-android) .region-suggestion[aria-selected="true"], html:is(.rgs-ios,.rgs-android) .region-suggestion:hover{ background:#f1f5f9 }
  
  /* Coverage panel: match iPad styling with tighter spacing */
  html:is(.rgs-ios,.rgs-android) .coverage-panel{
    gap: 0.5rem !important;
  }
  
  /* Stats in grid layout with tighter gaps */
  html:is(.rgs-ios,.rgs-android) .coverage-panel .stats{
    display: flex !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .coverage-panel .stat{
    padding: 0.6rem 0.65rem !important;
    border-radius: 10px !important;
    flex: 1 1 calc(50% - 0.25rem) !important;
    min-width: 0 !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .coverage-panel .stat-icon{
    font-size: 1.1rem !important;
    margin-bottom: 0.15rem !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .coverage-panel .stat .value{
    font-size: 1.3rem !important;
    font-weight: 800 !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .coverage-panel .stat .label{
    font-size: 0.65rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
  }
  
  /* Region chips: 2-column grid with smaller font to fit text */
  html:is(.rgs-ios,.rgs-android) .coverage-panel .regions{
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.3rem !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .region-chip{
    padding: 0.5rem 0.5rem !important;
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    gap: 0.3rem !important;
    border-radius: 6px !important;
    white-space: normal !important;
    line-height: 1.25 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 2.2rem !important;
    text-align: center !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .region-chip .region-name{
    overflow: visible !important;
    word-break: break-word !important;
    font-weight: 700 !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .region-chip .dot{
    display: none !important;
  }
  
  html:is(.rgs-ios,.rgs-android) .region-chip .count{
    display: none !important;
  }
  
  /* Prevent nearest chip from visually expanding on iPhone */
  html:is(.rgs-ios,.rgs-android) .nearest-badge{ display: none !important; }
  html:is(.rgs-ios,.rgs-android) .region-chip{ transform: none !important; }
  html:is(.rgs-ios,.rgs-android) .region-chip:hover{ transform: none !important; }
  html:is(.rgs-ios,.rgs-android) .region-chip.nearest-region{ transform: none !important; }
  
  /* Map styling */
  html:is(.rgs-ios,.rgs-android) .map, html:is(.rgs-ios,.rgs-android) .map-loader{
    height: 42vh !important;
    min-height: 300px !important;
    border-radius: 14px !important;
  }
  
  /* Hide entire CTA section at bottom of maps pages */
  html:is(.rgs-ios,.rgs-android) .regional-cta{
    display: none !important;
  }
  
  /* Hide redirect countdown box on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) #rgs-redirect-box{ display:none !important; }
  
  /* Hide Get Estimate link in footer on maps pages */
  html:is(.rgs-ios,.rgs-android) .blue-page .site-footer .footer-cta{
    display: none !important;
  }
  
  /* Hide 12 bubble cards on iPhone portrait - too much for mobile */
  html:is(.rgs-ios,.rgs-android) .intro-trust-section{ display:none !important; }
  
  /* Optimize intro section typography for mobile */
  html:is(.rgs-ios,.rgs-android) .intro-copy .blue-headline{ 
    font-size:2.05rem !important; 
    margin-bottom:0.4rem !important; 
    line-height:1.1 !important;
  }
  html:is(.rgs-ios,.rgs-android) .intro-copy .blue-subhead{ 
    font-size:0.95rem !important; 
    line-height:1.55 !important; 
    margin-bottom:0.4rem !important;
    font-weight:700 !important;
  }
  
  /* Hide both desktop and mobile text on iPhone portrait */
  html:is(.rgs-ios,.rgs-android) .intro-copy .desktop-text{ display:none !important; }
  html:is(.rgs-ios,.rgs-android) .intro-copy .mobile-text{ display:none !important; }
  
  /* Reduce left padding to give text more horizontal space */
  html:is(.rgs-ios,.rgs-android) .intro-copy{ padding-left:0.6rem !important; }
  html:is(.rgs-ios,.rgs-android) .intro-copy::before{ width:3px !important; left:-0.5rem !important; }
  
  /* Hide body text in service cards - keep only icon, title, and seasonal badge */
  html:is(.rgs-ios,.rgs-android) .service-card p{ display:none !important; }
  
  /* Revert service cards to standard sizing (remove square constraint) */
  html:is(.rgs-ios,.rgs-android) .services-collage .services-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:.56rem !important; }
  html:is(.rgs-ios,.rgs-android) .services-collage .service-card{ 
    padding:0 .69rem .62rem .69rem !important; 
    border-radius:10px !important; 
    height:120px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:center !important;
    box-sizing:border-box !important;
    overflow:visible !important;
    width:100% !important;
  }
  html:is(.rgs-ios,.rgs-android) .services-collage{ padding:0 7px !important; }
  html:is(.rgs-ios,.rgs-android) .services-collage .services-grid{
    width:100% !important;
    margin:0 auto !important;
    grid-auto-rows:1fr !important;
    align-items:stretch !important;
    max-width:100% !important;
  }
  html.rgs-android .services-collage{ width:100% !important; max-width:520px !important; margin:0 auto !important; padding:0 7px !important; }
  html.rgs-android .services-collage .services-grid{ width:100% !important; max-width:520px !important; margin:0 auto !important; }
  /* Reduce top padding by moving icon up 17px with negative margin */
  html:is(.rgs-ios,.rgs-android) .service-card{ padding-top:0 !important; }
  html:is(.rgs-ios,.rgs-android) .services-collage .service-card .service-icon{ margin-top:-17px !important; }
  html:is(.rgs-ios,.rgs-android) .services-collage .service-icon svg{ width:28px !important; height:28px !important; }
  /* Tighten spacing: reduce gap between icon and title */
  html:is(.rgs-ios,.rgs-android) .services-collage .service-icon{ margin-top:0 !important; margin-bottom:.08rem !important; }
  /* Override base service-icon margin globally on iPhone/Android portrait */
  html:is(.rgs-ios,.rgs-android) .service-icon{ margin-bottom:.08rem !important; }
  html:is(.rgs-ios,.rgs-android) .services-collage .service-card h3{ font-size:1.06rem !important; margin:0 0 .35rem !important; }
  html:is(.rgs-ios,.rgs-android) .services-collage .service-note{ margin-top:.26rem !important; font-size:.76rem !important; padding:.18rem .46rem !important; }
  html.rgs-android .services-collage .service-card h3{ font-size:1rem !important; line-height:1.18 !important; }
  html.rgs-android .services-collage .service-note{ font-size:0.72rem !important; letter-spacing:0.02em !important; }

  /* First row only: tighten icon-to-title gap further */
  html:is(.rgs-ios,.rgs-android) .services-collage .services-grid > .service-card:nth-child(-n+2) .service-icon{
    margin-bottom:0 !important;
  }
  html:is(.rgs-ios,.rgs-android) .services-collage .services-grid > .service-card:nth-child(-n+2) h3{
    margin-top:-0.12rem !important; /* micro pull-up of title */
  }
  html:is(.rgs-ios,.rgs-android) .services-collage .services-grid > .service-card:nth-child(3) h3{
    white-space:nowrap !important;
  }
  html:is(.rgs-ios,.rgs-android) .services-collage .services-grid > .service-card:nth-child(4) h3{
    white-space:nowrap !important;
  }
  
  /* Move seasonal bubble down 10px on Gutter Covers and Gutter Repairs (Android only) */
  html.rgs-android .services-collage .services-grid > .service-card:nth-child(3) .service-note,
  html.rgs-android .services-collage .services-grid > .service-card:nth-child(4) .service-note{
    margin-top:calc(.26rem + 10px) !important;
  }
  
  /* Center 'What we do' header above service cards */
  html:is(.rgs-ios,.rgs-android) .services-collage .section-header{ 
    /* Shrink-wrap & center: inline-block inside centered parent */
    display:inline-block !important; 
    text-align:center !important; 
    width:auto !important; 
    margin:0.6rem auto 0.9rem !important; 
    padding:0 !important; 
  }
  html:is(.rgs-ios,.rgs-android) .services-collage{ text-align:center !important; }
  html:is(.rgs-ios,.rgs-android) .services-collage .section-header .eyebrow{ 
    font-size:0.95rem !important; 
    letter-spacing:0.08em !important; 
  }
  html:is(.rgs-ios,.rgs-android) .services-collage .section-header .accent-hr{ 
    /* Let underline match text width exactly */
    display:block !important; 
    width:100% !important; 
    max-width:100% !important; 
    height:3px !important; 
    border-radius:3px !important; 
    background:linear-gradient(90deg,#45b7f6,#0b72ff) !important; 
    margin:0 !important; 
    padding:0 !important; 
  }
  
  html:is(.rgs-ios,.rgs-android) body{ overflow-x:hidden; }

  /* Android-only touch-ups to keep hero video aspect ratio intact */
  html.rgs-android .hero-media{
    width:100% !important;
    max-width:100% !important;
    margin:0 auto !important;
  }
  html.rgs-android .hero-canvas,
  html.rgs-android .hero-video{
    aspect-ratio:16 / 9 !important;
    height:auto !important;
  }
}

/* iPhone landscape blocker: force portrait orientation - ENHANCED */
@media (max-width:926px) and (orientation:landscape){
  body::before{
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: linear-gradient(135deg, #0b72ff 0%, #45b7f6 100%);
    z-index: 999999;
    animation: fadeIn 0.3s ease-in;
  }
  
  body::after{
    content: 'For the best experience\A Please rotate your device';
    white-space: pre-line;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 500px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.5;
    z-index: 1000000;
    padding: 3rem 2rem;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 24px;
    border: 2px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: fadeIn 0.5s ease-in 0.2s backwards;
  }
  
  @keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  
  @keyframes rotatePhone {
    0%, 100% { transform: rotate(90deg) scale(1); }
    50% { transform: rotate(0deg) scale(1.1); }
  }
  
  @keyframes glow {
    0%, 100% { filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.3)); }
    50% { filter: drop-shadow(0 0 20px rgba(255, 255, 255, 0.6)); }
  }
  
  body > *:not(::before):not(::after){
    display: none !important;
  }
}

/* Brand text for landscape blocker */
.landscape-brand {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  z-index: 1000001;
  animation: fadeIn 0.5s ease-in 0.4s backwards;
}

  /* iPhone portrait only: builder page blueprint title gradient like hero */
  @media (max-width:520px){
    html:is(.rgs-ios,.rgs-android) .builder-page .blueprint-title{
      background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
      -webkit-background-clip:text;
      -webkit-text-fill-color:transparent;
      background-clip:text;
      color:transparent;
    }
  }

  /* iPhone portrait only: builder page CTA footer heading gradient */
  @media (max-width:520px){
    html:is(.rgs-ios,.rgs-android) .builder-page .builder-cta-final h2{
      background:linear-gradient(135deg,#fff 0%,#ffeb3b 100%);
      -webkit-background-clip:text;
      -webkit-text-fill-color:transparent;
      background-clip:text;
      color:transparent;
    }
  }

  /* iPhone/Android portrait only: hide builder page CTA footer description */
  @media (max-width:520px){
    html:is(.rgs-ios,.rgs-android) .builder-page .builder-cta-final p{
      display:none !important;
    }
  }


/* iPhone portrait only: builder page shrink why-cards */
@media (max-width:520px){
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-card{
    padding:1.445rem 1.084rem;
    border-radius:8.67px;
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-icon{
    width:29.48px;
    height:29.48px;
    margin:0 auto 0.723rem auto;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-icon svg{
    width:29.48px;
    height:29.48px;
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-card h3{
    font-size:0.978rem;
    margin:0 0 0.544rem 0;
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-card p{
    font-size:0.75rem;
    line-height:1.6;
    font-weight:600;
  }
  
  /* Builder landing page: scroll-triggered animation for why-cards */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-card{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.6s ease, transform 0.6s ease;
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-card.card-visible{
    opacity:1;
    transform:translateY(0);
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-card.card-visible{
    border-color:#45b7f6;
    box-shadow:0 16px 48px rgba(11,114,255,0.15);
  }
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why-card.card-visible::before{
    transform:scaleX(1);
  }
  
  /* Builder landing page: reduce top padding of why section by 60% */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-why{
    padding-top:0.4rem;
  }
  
  /* Builder landing page: reduce space between "Built on Performance" and cards */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-section-header{
    margin-bottom:2rem;
  }
  
  /* Builder landing page: hide service coverage section */
  html:is(.rgs-ios,.rgs-android) .builder-page .builder-coverage{
    display:none;
  }
  
  /* Builder landing page: reduce top padding of final CTA section */
  .builder-page .builder-cta-final{
    padding-top:1rem;
    padding-bottom:2rem;
  }
}

/* About page: hide hero image and mobile text on all devices except iPhone portrait */
.about-hero-image{
  display:none;
}
.services-hero-image{
  display:none;
}
.about-subhead-mobile{
  display:none;
}

/* About page iPhone portrait styles */
@media (max-width:520px){
  /* About page: show and style hero image */
  .blue-page .about-hero-image{
    display:block;
    width:100%;
    max-width:320px;
    height:180px;
    margin:1.2rem auto;
    border-radius:12px;
    object-fit:cover;
    object-position:center;
    box-shadow:0 4px 12px rgba(0,0,0,0.15);
  }
  
  /* About page: swap desktop/mobile hero text */
  .blue-page .sub-hero .about-subhead-desktop{
    display:none;
  }
  
  .blue-page .sub-hero .about-subhead-mobile{
    display:block;
  }
  
  /* About page: enhance hero subheadline text */
  .blue-page .sub-hero .blue-subhead{
    font-weight:700;
    font-size:1.12rem;
    line-height:1.52;
    color:rgba(255,255,255,0.96);
    text-shadow:0 1px 2px rgba(0,0,0,0.12);
    letter-spacing:0.005em;
    max-width:320px !important;
    width:100%;
    margin-left:auto;
    margin-right:auto;
    background:rgba(255,255,255,0.08);
    backdrop-filter:blur(10px);
    padding:0.95rem 1.15rem;
    border-radius:10px;
    border:1px solid rgba(255,255,255,0.15);
    box-shadow:0 2px 10px rgba(0,0,0,0.12);
  }
  
  /* About page: reduce spacing above the 4 cards section */
  .blue-page .stack-block{
    margin-top:calc(-2.5rem - 10px);
  }
  
  /* About page: make the 4 main cards smaller and properly centered */
  .blue-page .services-grid{
    gap:0.8rem;
    padding:0.3rem;
  }
  
  .blue-page .service-card{
    padding:1.2rem 1rem;
    border-radius:10px;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  
  .blue-page .service-icon{
    font-size:1.887rem;
    margin-bottom:0.65rem;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    position:relative;
    top:8px;
  }
  
  .blue-page .service-icon svg{
    width:1.887rem;
    height:1.887rem;
    display:block;
    margin:0 auto;
  }
  
  .blue-page .service-card h2{
    font-size:1.08rem;
    margin:0 0 0.5rem 0;
    font-weight:800;
    color:#08323a;
    letter-spacing:-0.01em;
    line-height:1.25;
    text-align:center;
    width:100%;
    position:relative;
    top:12px;
  }
  
  .blue-page .service-card p{
    font-size:0.86rem;
    line-height:1.5;
    margin:0;
    text-align:center;
    width:100%;
    position:relative;
    top:12px;
  }
  
  /* About page: hide CTA subheadline text */
  .blue-page .mega-bubble .blue-subhead{
    display:none;
  }
  
  /* About page: shift CTA section downward */
  .blue-page .mega-bubble{
    margin-top:30px;
  }
  
  /* About page: make CTA buttons white instead of blue */
  .blue-page .mega-bubble .btn{
    background:#ffffff;
    color:#08323a;
    font-weight:700;
    box-shadow:0 4px 12px rgba(0,0,0,0.15);
    border:1px solid rgba(0,0,0,0.08);
    border-radius:12px;
    min-width:140px;
    padding:0.75rem 1.5rem;
  }
  
  .blue-page .mega-bubble .btn:hover{
    background:#f8f9fa;
    transform:translateY(-2px);
    box-shadow:0 6px 16px rgba(0,0,0,0.2);
  }
  
  .blue-page .mega-bubble .btn:active{
    background:#c5e0ff;
    transform:translateY(0);
    box-shadow:0 2px 8px rgba(0,0,0,0.12);
  }
}

/* Services page: hide mobile text by default */
.services-subhead-mobile{
  display:none;
}

/* Services page iPhone portrait styles */
@media (max-width:520px){
  /* Services page: swap desktop/mobile hero text */
  body:has([aria-current="page"][href*="services"]) .services-subhead-desktop{
    display:none;
  }
  
  body:has([aria-current="page"][href*="services"]) .services-subhead-mobile{
    display:block;
    font-weight:700;
    font-size:1.08rem;
    line-height:1.55;
    color:rgba(255,255,255,0.96);
    text-shadow:0 1px 2px rgba(0,0,0,0.12);
    letter-spacing:0.005em;
  }
  
  /* Services page: hide service card links */
  body:has([aria-current="page"][href*="services"]) .service-link{
    display:none;
  }
  
  /* Services page: optimize service cards layout */
  body:has([aria-current="page"][href*="services"]) .services-grid{
    grid-template-columns:repeat(2,1fr);
    gap:0.8rem;
    padding:0.5rem;
  }
  
  body:has([aria-current="page"][href*="services"]) .service-card{
    padding:1.5rem 1.2rem;
    border-radius:12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  
  body:has([aria-current="page"][href*="services"]) .service-icon{
    font-size:2.5rem;
    margin-bottom:0.8rem;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
  }
  
  body:has([aria-current="page"][href*="services"]) .service-icon svg{
    width:2.5rem;
    height:2.5rem;
    display:block;
    margin:0 auto;
  }
  
  body:has([aria-current="page"][href*="services"]) .service-card h2{
    font-size:1.15rem;
    margin:0 0 0.6rem 0;
    font-weight:800;
    color:#08323a;
    letter-spacing:-0.01em;
    line-height:1.25;
    text-align:center;
    width:100%;
  }
  
  body:has([aria-current="page"][href*="services"]) .service-card p{
    font-size:0.9rem;
    line-height:1.55;
    margin:0;
    text-align:center;
    width:100%;
    color:#4b5563;
  }
  
  /* Services page: match CTA section styling from about page */
  body:has([aria-current="page"][href*="services"]) .mega-bubble .blue-subhead{
    display:none;
  }
  
  body:has([aria-current="page"][href*="services"]) .mega-bubble{
    margin-top:30px;
  }
  
  body:has([aria-current="page"][href*="services"]) .mega-bubble .btn{
    background:#ffffff;
    color:#08323a;
    font-weight:700;
    box-shadow:0 4px 12px rgba(0,0,0,0.15);
    border:1px solid rgba(0,0,0,0.08);
    border-radius:12px;
    min-width:140px;
    padding:0.75rem 1.5rem;
  }
  
  body:has([aria-current="page"][href*="services"]) .mega-bubble .btn:hover{
    background:#f8f9fa;
    transform:translateY(-2px);
    box-shadow:0 6px 16px rgba(0,0,0,0.2);
  }
  
  body:has([aria-current="page"][href*="services"]) .mega-bubble .btn:active{
    background:#c5e0ff;
    transform:translateY(0);
    box-shadow:0 2px 8px rgba(0,0,0,0.12);
  }
}

/* Contact page iPhone portrait styles */
@media (max-width:520px){
  /* Contact page: ensure header elements are visible */
  body:has([aria-current="page"][href*="contact"]) .header-left{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  
  body:has([aria-current="page"][href*="contact"]) .idaho-logo-wrap{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  
  body:has([aria-current="page"][href*="contact"]) .idaho-logo{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    margin:0 auto !important;
  }
  
  body:has([aria-current="page"][href*="contact"]) .brand{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  
  body:has([aria-current="page"][href*="contact"]) .nav-toggle{
    display:inline-block !important;
    visibility:visible !important;
  }
  
  /* Contact page: hide subheadline and contact info below form */
  body:has([aria-current="page"][href*="contact"]) .blue-subhead{
    display:none;
  }
  
  body:has([aria-current="page"][href*="contact"]) .container > div:last-of-type{
    display:none;
  }
  
  /* Contact page: hide email/phone info below form (iPhone/Android only) */
  html:is(.rgs-ios,.rgs-android) .contact-inline-meta{
    display:none !important;
  }
  
  /* Contact page: increase email card width */
  body:has([aria-current="page"][href*="contact"]) .email-modal-card{
    max-width:calc(100% - 20px) !important;
    margin-left:10px !important;
    margin-right:10px !important;
    margin-top:25px !important; /* shift email card downward 25px */
    padding:1.5rem 1rem;
  }
  
  /* Center email card heading and send button on contact page */
  body:has([aria-current="page"][href*="contact"]) .email-modal-card h3{
    text-align:center;
  }
  
  body:has([aria-current="page"][href*="contact"]) .email-modal-card .btn{
    display:block;
    margin-left:auto;
    margin-right:auto;
  }
  
  body:has([aria-current="page"][href*="contact"]) main .container{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}

/* iPhone portrait only: Estimate form spacing and touch target improvements */
@media (max-width:520px) and (orientation:portrait){
  /* iPhone portrait only: abbreviate Ice Dams date range */
  .ice-dams-range .full-range{display:none;}
  .ice-dams-range .short-range{display:inline;font-size:.75rem;font-weight:600;letter-spacing:.5px;}
  /* iPhone portrait only: abbreviate Winterization date range */
  .winterization-range .full-range{display:none;}
  .winterization-range .short-range{display:inline;font-size:.75rem;font-weight:600;letter-spacing:.5px;}
  /* iPhone portrait only: swap about page founder blurb */
  body.about-page .about-subhead-mobile .full-about-founder{display:none;}
  body.about-page .about-subhead-mobile .portrait-about-founder{display:inline;}
  /* iPhone portrait: call confirmation overlay (prevents auto-call block popup by requiring explicit second tap) */
  .call-confirm-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);backdrop-filter:blur(3px);z-index:3000;opacity:0;pointer-events:none;transition:opacity .18s ease}
  .call-confirm-overlay.show{opacity:1;pointer-events:all}
  .call-confirm-card{background:#fff;border-radius:18px;padding:1.2rem 1.1rem 1rem;width:80%;max-width:320px;box-shadow:0 20px 56px rgba(0,0,0,.35);text-align:center;font-family:inherit}
  .call-confirm-card p{margin:0 0 0.9rem;font-size:1.05rem;font-weight:600;color:#08323a}
  .call-confirm-card .actions{display:flex;gap:.75rem;justify-content:center}
  .call-confirm-card .confirm-call-btn{background:#0b72ff;color:#fff;text-decoration:none;font-weight:700;border-radius:10px;padding:.65rem 1.0rem;font-size:.95rem;box-shadow:0 6px 18px rgba(11,114,255,.35)}
  .call-confirm-card .cancel-call-btn{background:#e2e8f0;color:#08323a;font-weight:600;border:none;border-radius:10px;padding:.65rem 1.0rem;font-size:.95rem}
  .call-confirm-card .confirm-call-btn:active,.call-confirm-card .cancel-call-btn:active{transform:translateY(2px)}

  /* Tighter vertical spacing between form fields - step 1 focus */
  .estimate-page .field{
    margin:1rem 0;
  }
  
  /* Larger touch targets for all inputs */
  .estimate-page .field input[type="text"],
  .estimate-page .field input[type="email"],
  .estimate-page .field input[type="tel"],
  .estimate-page .field input[type="number"],
  .estimate-page .field input[type="date"],
  .estimate-page .field input[type="url"],
  .estimate-page .field textarea,
  .estimate-page .field select{
    padding:.9rem;
    font-size:1.05rem;
    min-height:48px;
  }
  
  /* Compact labels */
  .estimate-page .label{
    font-size:1rem;
    margin-bottom:.5rem;
  }
  
  /* Tighter gap in two-column grids (name/email row) - reduced for portrait stacking */
  .estimate-page .grid.two{
    gap:.5rem;
    row-gap:.5rem;
  }
  
  /* Tighter gap in three-column grids (city/state/zip row) */
  .estimate-page .grid.three{
    gap:.5rem;
    row-gap:.5rem;
  }

  /* Remove field margins inside grids to eliminate double spacing */
  .estimate-page .grid .field{
    margin:0;
  }
  
  /* Radio card grid spacing - tighter for step 2 */
  .estimate-page .radio-grid{
    gap:.8rem;
  }
  
  /* Compact radio cards with good touch targets */
  .estimate-page .radio-card{
    padding:1rem;
    font-size:1rem;
    min-height:52px;
  }
  
  /* Checkbox option card spacing */
  .estimate-page .checkbox-option-card{
    padding:1rem;
    font-size:1rem;
    min-height:52px;
  }
  
  /* Linear feet helper cards - tighter spacing */
  .estimate-page .lf-group{
    gap:.8rem;
  }
  
  .estimate-page .lf-card{
    padding:.95rem 1rem;
    min-height:64px;
  }
  
  /* Larger checkbox cards in linear feet helper */
  .estimate-page .linear-feet-helper .checkbox-card{
    padding:.75rem .85rem;
    min-height:48px;
  }
  
  /* Action button spacing and size - tighter for step 1 */
  .estimate-page .actions{
    margin-top:1.6rem;
    gap:.9rem;
  }
  
  .estimate-page .actions .btn{
    min-height:50px;
    padding:.95rem 1.4rem;
    font-size:1.05rem;
  }
  
  /* Step heading spacing - more compact */
  .estimate-page .step h2{
    margin-bottom:1.2rem;
    font-size:1.5rem;
  }
  
  /* Location grid spacing */
  .estimate-page .location-grid{
    gap:1.2rem;
  }
  
  .estimate-page .location-card{
    padding:1.2rem;
    font-size:1rem;
    min-height:56px;
  }
  
  /* Swatch grid improvements */
  .estimate-page .swatch-grid{
    gap:.8rem;
  }
  
  .estimate-page .swatch span{
    height:56px;
  }
  
  /* Textarea minimum height for comfortable typing */
  .estimate-page textarea{
    min-height:120px;
  }
  
  /* Form padding adjustment for better scrolling experience */
  .estimate-page form{
    padding:1.6rem 1.2rem 1.4rem;
  }

  /* Estimate title improvements for portrait */
  .estimate-page .estimate-title{
    font-size:1.75rem;
    margin-top:.4rem;
    margin-bottom:.6rem;
    line-height:1.2;
  }

  /* Progress bar enhancements for better visibility */
  .estimate-page .estimate-progress{
    margin:.8rem 0 1.4rem;
  }

  .estimate-page .estimate-progress-track{
    height:14px;
  }

  .estimate-page .estimate-progress-text{
    font-size:1.05rem;
    margin-top:.6rem;
  }

  /* Compact header for more viewport real estate */
  /* Match home header vertical rhythm (keep same height/padding) */
  body:has(.estimate-page) .site-header .container{
    min-height:80px; /* home header baseline */
    padding-top:0.7rem;
    padding-bottom:0.7rem;
  }

  /* Better step heading hierarchy */
  .estimate-page .step h2{
    margin-bottom:1.5rem;
    font-size:1.5rem;
    line-height:1.3;
  }

  /* Container padding optimization for narrow screen */
  .estimate-page.container{
    padding-left:.9rem;
    padding-right:.9rem;
  }

  /* Enhanced error state visibility */
  .estimate-page input.error,
  .estimate-page textarea.error,
  .estimate-page select.error{
    border-width:2px;
  }

  /* Radio group error state more prominent */
  .estimate-page .radio-group-container.error{
    outline-width:3px;
    outline-offset:5px;
  }

  /* Better checkbox/radio label readability */
  .estimate-page .checkbox-card label,
  .estimate-page .radio-card label{
    font-size:1.05rem;
    line-height:1.4;
  }

  /* File upload button improvements */
  .estimate-page input[type="file"]{
    padding:.9rem;
    font-size:1rem;
  }

  /* Help text readability */
  .estimate-page .help-text,
  .estimate-page .field-note{
    font-size:.95rem;
    line-height:1.4;
    margin-top:.5rem;
  }

  /* Hint text tighter spacing */
  .estimate-page .hint{
    font-size:.9rem;
    margin-top:.4rem;
    line-height:1.35;
  }

  /* First field in step - remove top margin for tighter pack */
  .estimate-page .step > .field:first-of-type,
  .estimate-page .step > .grid:first-of-type{
    margin-top:0;
  }

  /* Grid containers - eliminate bottom margin */
  .estimate-page .grid{
    margin-bottom:0;
  }

  /* Step 1 specific: tighter spacing, center alignment, and text override */
  .estimate-page #step-contact h2{
    margin-bottom:1rem;
    text-align:center;
    font-size:0;
  }
  
  .estimate-page #step-contact h2::before{
    content:"Your Contact Information";
    font-size:1.5rem;
  }

  /* Step 2 specific: optimize radio grids and linear feet */
  .estimate-page #step-job h2{
    margin-bottom:1rem;
    text-align:center;
    font-size:0;
  }

  .estimate-page #step-job h2::before{
    content:"About Your Job";
    font-size:1.5rem;
  }

  /* Step 2: Center the radio group labels (service + stories only) */
  .estimate-page #step-job .field:first-of-type .label,
  .estimate-page #step-job .field:nth-of-type(2) .label{
    text-align:center;
    display:block;
  }

  /* Step 2: Unsure checkbox text replacement & sizing (portrait only) */
  .estimate-page #step-job .lf-card.lf-unsure .checkbox-text{
    font-size:0; /* hide original text */
    display:inline-block;
    width:100%;
    text-align:center;
  }
  .estimate-page #step-job .lf-card.lf-unsure .checkbox-text::before{
    content:"Im not sure"; /* shortened label per request */
    font-size:1.05rem;
    line-height:1.35;
    font-weight:600;
  }
  .estimate-page #step-job .lf-card.lf-unsure .checkbox-card{
    align-items:center;
  }

  /* Stories grid (4-col becomes 2-col on portrait) - tighter column gap */
  .estimate-page #step-job .radio-grid.four{
    gap:.7rem;
    column-gap:.7rem;
    row-gap:.7rem;
  }

  /* Service type grid (3-col becomes 1-col) - tighter row gap */
  .estimate-page #step-job .radio-grid.three{
    gap:.7rem;
  }

  /* Linear feet card hint text tighter */
  .estimate-page .lf-card .hint{
    font-size:.88rem;
    margin-top:.3rem;
    line-height:1.3;
  }

  /* Checkbox text in lf-unsure card */
  .estimate-page .lf-card .checkbox-text{
    font-size:.95rem;
    line-height:1.35;
  }

  /* Linear feet label: center and bold */
  .estimate-page #step-job label[for="linearFeet"]{
    display:block;
    text-align:center;
    font-weight:700;
  }

  /* Step 4 (comments): heading text override and centered label */
  .estimate-page #step-comments h2{
    margin-bottom:1rem;
    text-align:center;
    font-size:0;
  }
  .estimate-page #step-comments h2::before{
    content:"Anything Else?";
    font-size:1.5rem;
  }
  .estimate-page #step-comments label[for="comments"]{
    display:block;
    text-align:center;
    font-weight:700;
    margin-bottom:.6rem;
  }

  /* iPhone portrait: adjust Builder/Contractor CTA (override inline style with !important) */
  body:has(.estimate-page) #builderEstimateCta{
    margin-top:calc(2.5rem - 45px) !important; /* shift up 45px total */
  }

  /* Remove underline from Builder/Contractor link */
  body:has(.estimate-page) #builderEstimateCta a{
    text-decoration:none;
  }

  /* Step 1: center the Next button */
  .estimate-page #step-contact .actions{
    justify-content:center;
  }

  /* Step 3 specific: heading text override and centered labels */
  .estimate-page #step-system h2{
    margin-bottom:1rem;
    text-align:center;
    font-size:0;
  }

  .estimate-page #step-system h2::before{
    content:"Choose Your Gutter System";
    font-size:1.5rem;
  }

  /* Center all step 3 section labels */
  .estimate-page #step-system .label{
    display:block;
    text-align:center;
    font-weight:700;
  }

  /* Gutter guard buttons: replace text and ensure equal width */
  .estimate-page #step-system input[name="guards"] + .radio-card{
    font-size:0;
    min-width:0;
    flex:1;
  }

  .estimate-page #step-system input[name="guards"][value="yes"] + .radio-card::before{
    content:"Add Gutter Guards";
    font-size:1rem;
  }

  .estimate-page #step-system input[name="guards"][value="no"] + .radio-card::before{
    content:"No Thank You";
    font-size:1rem;
  }

  /* Ensure guard button container splits evenly */
  .estimate-page #step-system .field:last-of-type .radio-grid{
    display:flex;
    gap:.7rem;
  }

  .estimate-page #step-system .field:last-of-type .radio-wrap{
    flex:1;
  }

  /* Ensure estimate pages use same compact header rules as home on iPhone portrait */
  body:has(.estimate-page) .site-header .header-tagline{display:none !important;}
  /* Keep nav behavior identical (do not force display override) */
  body:has(.estimate-page) .site-header .main-nav{display:flex;}
  /* Preserve logo sizing inheritance */
  body:has(.estimate-page) .site-header .idaho-logo-wrap{width:48px !important;height:48px !important;padding:3.5px !important;}

  /* iPhone portrait contact page: show Call Now button */
  body.contact-page .call-now-mobile-wrap{margin:0.8rem 0 0.6rem;text-align:center} /* reduced top/bottom gap */
  body.contact-page .call-now-btn{
    display:inline-block;
    background:linear-gradient(135deg,#f9d923 0%,#fbbf24 100%);
    color:#08323a;
    font-weight:800;
    border-radius:10px;
    padding:0.60rem 1.05rem; /* reduced bubble size, keep font-size */
    font-size:1.05rem;
    box-shadow:0 8px 24px rgba(251,191,36,.35);
    text-decoration:none;
    letter-spacing:.6px;
  }
  body.contact-page .call-now-btn:active{transform:translateY(2px)}

  /* Builder estimate form only: hide step numbers in headings */
  body:has(#builderEstimateForm) .estimate-page .step h2{
    font-size:0;
    text-align:center;
    line-height:1.3;
  }

  body:has(#builderEstimateForm) .estimate-page #step-company h2::before{
    content:"Company & Contact Information";
    font-size:1.5rem;
    display:block;
  }

  body:has(#builderEstimateForm) .estimate-page #step-project h2::before{
    content:"Project Location & Details";
    font-size:1.5rem;
    display:block;
  }

  body:has(#builderEstimateForm) .estimate-page #step-scope h2::before{
    content:"Scope & Volume";
    font-size:1.5rem;
    display:block;
  }

  body:has(#builderEstimateForm) .estimate-page #step-timeline h2::before{
    content:"Timeline & Project Documents";
    font-size:1.5rem;
    display:block;
  }

  body:has(#builderEstimateForm) .estimate-page #step-submit h2::before{
    content:"Additional Information";
    font-size:1.5rem;
    display:block;
  }

  /* Builder estimate: center all labels and text above form controls */
  body:has(#builderEstimateForm) .estimate-page .label,
  body:has(#builderEstimateForm) .estimate-page label{
    text-align:center;
    display:block;
  }

  /* Builder estimate: center step 1 Next button */
  body:has(#builderEstimateForm) .estimate-page #step-company .actions{
    text-align:center;
  }

  body:has(#builderEstimateForm) .estimate-page #step-company .actions .btn{
    margin:0 auto;
  }

  /* Builder estimate step 3: equalize services checkbox card sizes */
  body:has(#builderEstimateForm) .estimate-page #step-scope .checkbox-wrap{
    flex:1 1 0;
    min-width:0;
  }

  body:has(#builderEstimateForm) .estimate-page #step-scope .checkbox-option-card{
    height:100%;
    min-height:56px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0.9rem 0.6rem;
    font-size:0.95rem;
    line-height:1.2;
  }
}

/* === FINAL OVERRIDES (ensure smallest Services credentials label on desktop renders) === */
@media (min-width:1281px){
  /* Match About credentials label styling exactly (no pill) */
  body.services-page .services-hero-card{
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9)) !important;
    border:1px solid rgba(255,255,255,0.45) !important;
    border-radius:16px !important;
    padding:1.6rem 1.4rem 1.8rem !important;
    backdrop-filter:blur(22px) !important;
    box-shadow:0 18px 45px rgba(10,40,90,0.35) !important;
    display:flex !important;
    flex-direction:column !important;
    gap:1rem !important;
    color:#fff !important;
    font-size:1.26rem !important;
    line-height:1.7 !important;
    text-align:left !important;
  }
  body.services-page .services-hero-card::before{
    content:"SERVICES CREDENTIALS" !important;
    font-size:1.1rem !important;
    letter-spacing:0.26em !important;
    text-transform:uppercase !important;
    font-weight:800 !important;
    color:#ffeb3b !important;
    display:block !important;
    text-align:center !important;
    line-height:1.2 !important;
    /* Match About-style pill */
    background:rgba(255,255,255,0.15) !important;
    padding:0.5rem 1rem !important;
    border:none !important;
    border-radius:999px !important;
    box-shadow:none !important;
    backdrop-filter:blur(8px) !important;
    margin:0 auto 1rem !important;
    position:relative !important;
    top:40px !important;
    width:fit-content !important;
  }
  body.services-page .services-hero-card::after{
    content:"5\" & 6\" seamless runs  •  24-hour estimates  •  Licensed statewide" !important;
    font-size:0.98rem !important;
    line-height:1.58 !important;
    color:#fff !important;
    font-weight:600 !important;
    margin-top:0.2rem !important;
    border-top:1px solid rgba(255,255,255,0.35) !important;
    padding-top:0.4rem !important;
    display:block !important;
  }
}
@media (min-width:2000px){
  /* Ultra-wide: match About credentials scaling variant */
  body.services-page .services-hero-card{
    background:linear-gradient(135deg,rgba(63,143,233,0.92),rgba(92,186,255,0.9)) !important;
    border:1px solid rgba(255,255,255,0.45) !important;
    border-radius:18px !important;
    padding:2.35rem 1.85rem 2.35rem !important;
    backdrop-filter:blur(22px) !important;
    box-shadow:0 18px 45px rgba(10,40,90,0.45) !important;
    font-size:1.32rem !important;
    line-height:1.78 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:1.1rem !important;
    color:#fff !important;
  }
  body.services-page .services-hero-card::before{
    content:"SERVICES CREDENTIALS" !important;
    font-size:1.1rem !important;
    letter-spacing:0.26em !important;
    text-transform:uppercase !important;
    font-weight:800 !important;
    color:#ffeb3b !important;
    display:block !important;
    text-align:center !important;
    line-height:1.2 !important;
    /* Match About-style pill */
    background:rgba(255,255,255,0.15) !important;
    padding:0.5rem 1rem !important;
    border:none !important;
    border-radius:999px !important;
    box-shadow:none !important;
    backdrop-filter:blur(8px) !important;
    margin:0 auto 1rem !important;
    position:relative !important;
    top:40px !important;
    width:fit-content !important;
  }
  body.services-page .services-hero-card::after{
    content:"5\" & 6\" seamless runs  •  24-hour estimates  •  Licensed statewide" !important;
    font-size:1rem !important;
    line-height:1.6 !important;
    color:#fff !important;
    display:block !important;
    padding-top:0.4rem !important;
    border-top:1px solid rgba(255,255,255,0.25) !important;
  }
}


