/*
 * Foresmart V27 — final responsive and compatibility overrides.
 * This file intentionally loads last.
 */
body.fs-use-v27-shell :is(main,.fs-route-page,.fs-generic-page){
  max-width:100%;
  overflow-x:hidden;
  overflow-x:clip;
}

body.fs-use-v27-shell :is(.nav-shell,.header-actions,.mobile-panel,.fs-route-page)>*{
  min-width:0;
}

body.fs-use-v27-shell .kd-faq-page .kd-faq-card > button > b{
  display:none!important;
}

body.fs-use-v27-shell .kd-faq-page .kd-faq-card > button{
  padding-right:24px!important;
}

/*
 * Article inline contact card
 * Keep the supporting label horizontal and readable at every breakpoint.
 */
body.fs-use-v27-shell .fs-native-article .fs-article-v3-inline-whatsapp{
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px 20px;
  align-items:center;
}

body.fs-use-v27-shell .fs-native-article .fs-article-v3-inline-whatsapp-eyebrow{
  grid-column:1 / -1;
  writing-mode:horizontal-tb;
  transform:none;
  padding-bottom:9px;
  border-bottom:1px solid rgba(22,138,85,.2);
  font-size:11px;
  line-height:1.35;
}

body.fs-use-v27-shell .fs-native-article .fs-article-v3-inline-whatsapp p{
  font-size:14px;
}

body.fs-use-v27-shell .fs-native-article .fs-article-v3-inline-whatsapp a{
  min-height:44px;
  padding-inline:18px;
  font-size:13px;
}

/*
 * Front-end readability floor
 * Raise small semantic labels and the two undersized content systems identified
 * in the review without flattening intentionally larger headings and lead text.
 */
body.fs-use-v27-shell .fs-route-page :is(small,figcaption),
body.fs-use-v27-shell .fs-route-page .kicker{
  font-size:12px!important;
  line-height:1.5;
}

body.fs-use-v27-shell .fs-route-page :is(.btn,.btn-link){
  font-size:13px;
}

body.fs-use-v27-shell .fs-home-timeline-step p{
  font-size:14px;
  line-height:1.68;
}

body.fs-use-v27-shell .fs-home-timeline-step small{
  font-size:11px!important;
}

body.fs-use-v27-shell .rd-hero-proof span{
  font-size:13px;
  line-height:1.5;
}

body.fs-use-v27-shell .fs-route-page [class$="-summary-shell"] small{
  font-size:11px!important;
  line-height:1.45;
}

body.fs-use-v27-shell .fs-route-page [class$="-summary-shell"] strong{
  font-size:14px;
  line-height:1.52;
}

/*
 * About Foresmart story panel
 * Give the long heading and explanatory copy their own rhythm instead of
 * squeezing them into the original 620px image row.
 */
body.fs-use-v27-shell .cc-about .cc-story-shell{
  min-height:0;
  align-items:stretch;
}

body.fs-use-v27-shell .cc-about [data-fs-story-carousel].fs-about-gallery-v36{
  min-height:700px;
}

body.fs-use-v27-shell .cc-about .cc-story-copy{
  min-height:700px;
  justify-content:flex-start;
  padding:50px 48px 44px;
}

body.fs-use-v27-shell .cc-about .cc-story-copy > .kicker{
  margin-bottom:14px;
}

body.fs-use-v27-shell .cc-about .cc-story-copy h2{
  margin:0 0 24px;
  font-size:clamp(35px,3.15vw,44px);
  line-height:1.09;
  letter-spacing:-.035em;
}

body.fs-use-v27-shell .cc-about .cc-story-copy > p{
  margin:0 0 16px;
  color:#4a6274;
  font-size:14px;
  line-height:1.72;
}

body.fs-use-v27-shell .cc-about .cc-story-note{
  padding:17px 0;
}

body.fs-use-v27-shell .cc-about .cc-story-copy > p + .cc-story-note{
  margin-top:4px;
}

body.fs-use-v27-shell .cc-about .cc-story-note strong{
  font-size:14px;
  line-height:1.45;
}

body.fs-use-v27-shell .cc-about .cc-story-note span{
  margin-top:7px;
  font-size:13px;
  line-height:1.6;
}

@media(max-width:980px){
  body.fs-use-v27-shell .site-header .container{
    width:calc(100% - 28px)!important;
    max-width:100%!important;
  }

  body.fs-use-v27-shell .site-header .nav-shell{
    min-height:70px!important;
    gap:10px!important;
  }

  body.fs-use-v27-shell .site-header .desktop-nav{
    display:none!important;
    min-height:0!important;
  }

  body.fs-use-v27-shell .site-header .brand-wordmark-link{
    width:auto!important;
    min-width:0!important;
    height:54px!important;
  }

  body.fs-use-v27-shell .site-header .brand-logo-image--header{
    width:138px!important;
    max-width:100%!important;
    max-height:48px!important;
  }

  body.fs-use-v27-shell .site-header .header-actions{
    display:flex!important;
    flex:0 0 auto!important;
    margin-left:auto!important;
  }

  body.fs-use-v27-shell .site-header .header-quote{
    display:none!important;
  }

  body.fs-use-v27-shell .site-header .mobile-toggle{
    display:flex!important;
    flex:0 0 44px!important;
  }

  body.fs-use-v27-shell .mobile-panel{
    position:fixed!important;
    right:0!important;
    left:0!important;
    width:100%!important;
    max-width:100vw!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(100%,0,0)!important;
  }

  body.fs-use-v27-shell .mobile-panel.is-open{
    visibility:visible;
    pointer-events:auto;
    transform:translate3d(0,0,0)!important;
  }

  body.fs-use-v27-shell img{
    max-width:100%;
  }

  body.fs-use-v27-shell .cc-about [data-fs-story-carousel].fs-about-gallery-v36{
    min-height:500px;
  }

  body.fs-use-v27-shell .cc-about .cc-story-copy{
    min-height:0;
    padding:42px 36px;
  }
}

@media(max-width:680px){
  body.fs-use-v27-shell .fs-native-article .fs-article-v3-inline-whatsapp{
    grid-template-columns:1fr;
  }

  body.fs-use-v27-shell .fs-native-article .fs-article-v3-inline-whatsapp a{
    justify-self:start;
  }

  body.fs-use-v27-shell .cc-about [data-fs-story-carousel].fs-about-gallery-v36{
    min-height:410px;
  }

  body.fs-use-v27-shell .cc-about .cc-story-copy{
    padding:34px 25px;
  }

  body.fs-use-v27-shell .cc-about .cc-story-copy h2{
    font-size:clamp(32px,9.2vw,38px);
  }
}

@media(max-width:480px){
  body.fs-use-v27-shell .site-header .container{
    width:calc(100% - 22px)!important;
  }

  body.fs-use-v27-shell .site-header .brand-logo-image--header{
    width:122px!important;
  }

  .footer-legal-links{
    justify-content:center;
  }
}

/* Homepage field contract: the live hero image and its focal point come from
   the same mapped fields that appear in the Foresmart module editor. */
body.fs-use-v27-shell .fs-route-home .hero-light-refresh .hero-media{
  background-image:
    linear-gradient(90deg,#f9fbfd 0%,#f9fbfd 43%,rgba(249,251,253,.99) 49%,rgba(249,251,253,.94) 54%,rgba(249,251,253,.70) 61%,rgba(249,251,253,.28) 70%,rgba(249,251,253,0) 81%),
    var(--fs-home-hero-image,var(--v20-home-bg))!important;
  background-position:var(--fs-home-hero-position,68% 50%)!important;
}

/* Service-detail field contract: background media use the independently
   editable focal points exposed beside their image fields. */
body.fs-use-v27-shell .fs-phase2-service--visual .p2-hero,
body.fs-use-v27-shell .fs-phase2-solution .p2-hero{
  background-position:var(--p2-hero-position,50% 50%)!important;
}

body.fs-use-v27-shell .fs-phase2-service--visual .p2-final--visual{
  background-position:var(--p2-final-position,50% 50%)!important;
}

/* Route-detail field closure: every photographic surface owns an independent
   media field and focal point instead of inheriting a page-wide crop. */
body.fs-use-v27-shell .fs-route-page.fs-route-detail:not(.fs-route-home) .rd-hero-media{
  background-position:0 0,var(--rd-hero-position,65% 50%)!important;
}

body.fs-use-v27-shell .fs-route-detail .rd-process-banner{
  background-position:0 0,var(--rd-process-position,58% 50%)!important;
}

body.fs-use-v27-shell .fs-route-detail .rd-custom-image,
body.fs-use-v27-shell .fs-route-detail .rd-custom-image-usa{
  background-position:0 0,var(--rd-custom-position,50% 50%)!important;
}

body.fs-use-v27-shell .fs-route-detail .rd-use-card::before{
  display:none!important;
  content:none!important;
}

body.fs-use-v27-shell .fs-route-detail .rd-use-card > img{
  position:relative!important;
  inset:auto!important;
  z-index:1;
  display:block!important;
  grid-row:1;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
  object-position:var(--fs-image-focus,50% 50%)!important;
}

body.fs-use-v27-shell .fs-route-detail .rd-mode-image > img{
  object-position:var(--fs-image-focus,50% 50%)!important;
}

/* Company-content field closure: each photographic surface uses its own
   editable image and focal-point field from the module editor. */
body.fs-use-v27-shell .fs-route-company-content .cc-hero-media{
  background-position:center,var(--cc-hero-position,62% 50%)!important;
}

body.fs-use-v27-shell .fs-route-company-content .cc-payment-intro{
  background-position:0 0,var(--cc-payment-position,50% 50%)!important;
}

body.fs-use-v27-shell .fs-route-company-content .cc-documents-image{
  background-position:0 0,var(--cc-documents-position,50% 50%)!important;
}

body.fs-use-v27-shell .fs-route-company-content .fs-about-gallery-v36-slide > img,
body.fs-use-v27-shell .fs-route-company-content .cc-audience-card > img{
  object-position:var(--fs-image-focus,50% 50%)!important;
}

body.fs-use-v27-shell .fs-route-company-content .cc-process-panel[hidden]{
  display:none!important;
}
