/* LOA 2.1.6: last stylesheet. Explicit layout contract, independent of legacy patches. */
/* Keep the optional section heading separate from the theme's site header. */
:root:root:root body .loa-background-columns .loa-background-columns__header{
 position:static!important;inset:auto!important;float:none!important;
 width:auto!important;height:auto!important;min-height:0!important;
 background:transparent!important;box-shadow:none!important;border:0!important;
 padding:0 var(--loa-column-padding,50px)!important;z-index:auto!important;
}
:root:root:root body .loa-background-columns .loa-background-columns__header::before,
:root:root:root body .loa-background-columns .loa-background-columns__header::after{content:none!important}
:root:root:root body .loa-background-columns .loa-background-columns__header:empty{display:none!important}
:root{--loa-column-padding:50px;--loa-section-space:24px}
/* Two Column Section: inset media on either side, without changing Edge Two Column. */
:root:root:root body .loa-two-column:not(.loa-edge-image-content) .loa-two-column__media{
 box-sizing:border-box;padding-left:var(--loa-column-padding)!important;padding-right:var(--loa-column-padding)!important;min-width:0;background:transparent!important;box-shadow:none!important;
}
:root:root:root body .loa-two-column:not(.loa-edge-image-content) .loa-two-column__media img{width:100%!important;max-width:100%!important}
:root:root:root body .loa-roof-types{
 opacity:1!important;visibility:visible!important;transform:none!important;animation:none!important;transition:none!important;
}
:root:root:root body .loa-roof-types__media{overflow:hidden}
:root:root:root body .loa-roof-types__media img.loa-roof-image-zoom{transform:scale(.86);transform-origin:center;transition:transform .85s cubic-bezier(.22,1,.36,1)!important;transition-delay:0s!important}
:root:root:root body .loa-roof-types__media img.loa-roof-image-visible{transform:scale(1)}
@media(prefers-reduced-motion:reduce){
 :root:root:root body .loa-roof-types__media img.loa-roof-image-zoom{transform:none!important;transition:none!important}
}
:root:root:root body :is(.loa-general-hero,.loa-one-column-hero,.loa-home-hero,.loa-home-video-testimonial,.loa-expand-home,.loa-intro,.loa-two-column,.loa-content-section,.loa-columns-section,.loa-roof-types,.loa-info-cards,.loa-video-section,.loa-footer-content,.loa-table,.loa-gallery,.loa-faqs,.loa-google-reviews,.loa-testimonials,.loa-body-menu,.loa-image-links,.loa-background-columns,.loa-location-map,.loa-image-faq,.loa-location-services,.loa-video-gallery,.loa-edge-image-content,.loa-image-content-cta,.loa-background-cta){
 box-sizing:border-box; padding-top:var(--loa-section-space)!important;padding-bottom:var(--loa-section-space)!important;margin-top:0!important;margin-bottom:0!important;
}
:root:root:root body :is(.loa-intro,.loa-two-column,.loa-content-section,.loa-columns-section,.loa-roof-types,.loa-info-cards,.loa-video-section,.loa-table,.loa-gallery,.loa-faqs,.loa-body-menu,.loa-image-links,.loa-background-columns,.loa-location-map,.loa-image-faq,.loa-location-services,.loa-video-gallery,.loa-edge-image-content,.loa-expand-home,.loa-home-video-testimonial){padding-left:0!important;padding-right:0!important}
:root:root:root body :is(.loa-general-hero,.loa-one-column-hero,.loa-home-hero){padding:0!important}
:root:root:root body :is(.loa-general-hero__inner,.loa-one-column-hero__inner,.loa-intro__inner,.loa-two-column__inner,.loa-content-section__inner,.loa-columns-section__inner,.loa-info-cards__inner,.loa-video-section__inner,.loa-footer-content__inner,.loa-table__inner,.loa-gallery__inner,.loa-faqs__grid,.loa-background-columns__inner,.loa-location-services__grid,.loa-video-gallery__grid,.loa-edge-image-content__inner,.loa-image-faq__inner,.loa-location-map__inner,.loa-expand-home__inner,.loa-home-video-testimonial__inner){box-sizing:border-box;width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important}
:root:root:root body :is(.loa-general-hero__inner,.loa-one-column-hero__inner,.loa-two-column__content,.loa-content-section__inner,.loa-info-cards__inner,.loa-table__inner,.loa-gallery__inner,.loa-location-services__column,.loa-video-gallery__grid,.loa-image-faq__content,.loa-location-map__content,.loa-edge-image-content__content,.loa-video-section__content,.loa-expand-home__content,.loa-home-video-testimonial__content){box-sizing:border-box;padding-left:var(--loa-column-padding)!important;padding-right:var(--loa-column-padding)!important}
:root:root:root body :is(.loa-intro__inner,.loa-faqs__grid,.loa-columns-section__inner,.loa-background-columns__inner){padding-left:var(--loa-column-padding)!important;padding-right:var(--loa-column-padding)!important}
:root:root:root body .loa-intro__content{padding-left:0!important;padding-right:0!important}
/* Repeated text columns each own their gutter; do not add a second outer gutter. */
:root:root:root body :is(.loa-faqs__grid,.loa-columns-section__inner,.loa-background-columns__inner){padding-left:0!important;padding-right:0!important;column-gap:0!important}
:root:root:root body .loa-columns-section__grid{column-gap:0!important}
:root:root:root body :is(.loa-faqs__column,.loa-columns-section__column,.loa-columns-section__footer,.loa-background-columns__column,.loa-info-cards__card){box-sizing:border-box;min-width:0;padding-left:var(--loa-column-padding)!important;padding-right:var(--loa-column-padding)!important}
:root:root:root body :is(.loa-image-faq__content-inner,.loa-edge-image-content__content-inner){width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
:root:root:root body :is(.loa-two-column__inner,.loa-video-section__inner,.loa-expand-home__inner,.loa-home-video-testimonial__inner,.loa-edge-image-content__inner,.loa-image-faq__inner,.loa-location-map__inner){column-gap:0!important}
/* With two equal columns and no gap, the inline video expands to exactly 200%. */
:root:root:root body .loa-expand-home.is-playing .loa-expand-home__media{width:200%}
:root:root:root body .loa-roof-types__item{box-sizing:border-box;width:100%!important;max-width:none!important;padding:24px var(--loa-column-padding)!important;column-gap:100px!important}
:root:root:root body .loa-home-hero__inner{box-sizing:border-box;width:100%!important;max-width:none!important;padding-left:var(--loa-column-padding)!important;padding-right:var(--loa-column-padding)!important}
:root:root:root body :is(.loa-footer-content,.loa-google-reviews,.loa-testimonials,.loa-background-cta){padding-left:var(--loa-column-padding)!important;padding-right:var(--loa-column-padding)!important}
/* Color overrides win over the former hard-coded white/black headings. */
:root:root:root body .loa-has-title-color.loa-has-title-color.loa-has-title-color :is(h1,h2,h3,h4,h5,h6,[class$="__title"],[class*="__title "],.loa-home-hero__initial-title,.loa-footer-content__title-link,.loa-content-section__button-heading),
:root:root:root body .loa-editor-has-title-color.loa-editor-has-title-color.loa-editor-has-title-color :is(h1,h2,h3,h4,h5,h6,[class$="__title"],[class*="__title "],.loa-home-hero__initial-title,.loa-footer-content__title-link,.loa-content-section__button-heading){color:var(--loa-title-color)!important}
:root:root:root body .loa-has-subtitle-color.loa-has-subtitle-color.loa-has-subtitle-color :is([class*="__subtitle"],[class*="__eyebrow"],.loa-home-video-testimonial__content>p:first-child),
:root:root:root body .loa-editor-has-subtitle-color.loa-editor-has-subtitle-color.loa-editor-has-subtitle-color :is([class*="__subtitle"],[class*="__eyebrow"],.loa-home-video-testimonial__content>p:first-child){color:var(--loa-subtitle-color)!important}
@media(max-width:782px){
 :root{--loa-column-padding:20px}
 :root:root:root body :is(.loa-general-hero,.loa-two-column__inner,.loa-edge-image-content__inner,.loa-image-faq__inner,.loa-location-map__inner,.loa-expand-home__inner,.loa-home-video-testimonial__inner){grid-template-columns:minmax(0,1fr)!important}
 :root:root:root body .loa-expand-home.is-playing .loa-expand-home__media{width:100%}
 :root:root:root body .loa-roof-types__item{column-gap:0!important}
}
/* Testimonials intentionally has more breathing room than other sections. */
:root:root:root body .loa-testimonials{padding-top:50px!important;padding-bottom:50px!important}
/* Animate contents inside the full-width shell to avoid horizontal page overflow. */
:root:root:root body .loa-motion-section{overflow:hidden}
:root:root:root body .loa-motion-section>*{opacity:0;transform:translateY(36px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}
:root:root:root body .loa-motion-left>*{transform:translateX(-48px)}
:root:root:root body .loa-motion-right>*{transform:translateX(48px)}
:root:root:root body .loa-motion-section.loa-motion-visible>*{opacity:1;transform:none}
:root:root:root body .loa-intro-item-motion{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--loa-item-delay,0ms)}
:root:root:root body .loa-intro-item-motion.loa-motion-visible{opacity:1;transform:none}
/* Keyframes run even when observer classes arrive before the first painted frame. */
:root:root:root body .loa-roof-types__media img.loa-roof-image-visible{animation:loa-v213-zoom .9s cubic-bezier(.22,1,.36,1) both!important;transition:none!important}
:root:root:root body .loa-motion-section.loa-motion-visible>*{animation:loa-v213-up .9s cubic-bezier(.22,1,.36,1) both!important;transition:none!important}
:root:root:root body .loa-motion-left.loa-motion-visible>*{animation-name:loa-v213-left!important}
:root:root:root body .loa-motion-right.loa-motion-visible>*{animation-name:loa-v213-right!important}
:root:root:root body .loa-intro-item-motion.loa-motion-visible{animation:loa-v213-up .8s cubic-bezier(.22,1,.36,1) var(--loa-item-delay,0ms) both!important;transition:none!important}
@keyframes loa-v213-zoom{from{transform:scale(.86)}to{transform:scale(1)}}
@keyframes loa-v213-up{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}
@keyframes loa-v213-left{from{opacity:0;transform:translateX(-48px)}to{opacity:1;transform:translateX(0)}}
@keyframes loa-v213-right{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){
 :root:root:root body .loa-roof-types__media img.loa-roof-image-visible,
 :root:root:root body .loa-motion-section.loa-motion-visible>*,
 :root:root:root body .loa-intro-item-motion.loa-motion-visible{animation:none!important}
 :root:root:root body .loa-motion-section>*,
 :root:root:root body .loa-intro-item-motion{opacity:1!important;transform:none!important;transition:none!important}
}

/* Roof images: percentage of the existing column; no gray frame. */
:root:root:root body .loa-roof-types .loa-roof-types__media{
 width:var(--loa-roof-image-size,100%)!important;max-width:100%!important;min-width:0!important;
 margin-left:auto!important;margin-right:auto!important;background:transparent!important;box-shadow:none!important;
}
/* Automatic defaults; explicit heading/body controls take precedence. */
:root:root:root body .loa-auto-colors{color:var(--loa-body-color,#231f20)}
:root:root:root body .loa-auto-colors :is(p,li,blockquote,td,th):not([style*="color"]){color:var(--loa-body-color,#231f20)!important}
:root:root:root body .loa-auto-colors :is(h1,h2,h3,h4,h5,h6,[class$="__title"]):not([style*="color"]){color:var(--loa-title-color,var(--loa-auto-color,#231f20))!important}
:root:root:root body .loa-auto-colors :is([class*="__subtitle"],[class*="__eyebrow"],.loa-roof-types__item-content>h4):not([style*="color"]){color:var(--loa-subtitle-color,var(--loa-auto-color,#231f20))!important}
/* Local filled cards retain readable automatic colors; manual controls still win. */
:root:root:root body .loa-auto-colors .loa-info-cards__card--blue{--loa-auto-color:#ffffff;--loa-body-color:var(--loa-manual-body-color,#ffffff)}
:root:root:root body .loa-auto-colors .loa-info-cards__card--white{--loa-auto-color:#231f20;--loa-body-color:var(--loa-manual-body-color,#231f20)}

/* Two-column image widths are track sizes, not percentages of a fixed media box. */
:root:root:root body .loa-roof-types .loa-roof-types__item{
 grid-template-columns:var(--loa-roof-tracks,minmax(0,1fr) minmax(0,1fr))!important;
 column-gap:50px!important;
}
:root:root:root body .loa-roof-types .loa-roof-types__media{width:100%!important}
:root:root:root body .loa-general-hero.loa-image-column-sized{grid-template-columns:var(--loa-sized-image-tracks)!important}
:root:root:root body .loa-image-column-sized .loa-image-faq__inner,
:root:root:root body .loa-image-column-sized .loa-edge-image-content__inner,
:root:root:root body .loa-image-column-sized .loa-image-content-cta__inner{grid-template-columns:var(--loa-sized-image-tracks)!important}
:root:root:root body .loa-image-faq .loa-image-faq__title{display:block!important;visibility:visible!important;opacity:1!important}
@media(max-width:900px){
 :root:root:root body .loa-roof-types .loa-roof-types__item,
 :root:root:root body .loa-general-hero.loa-image-column-sized,
 :root:root:root body .loa-image-column-sized .loa-image-faq__inner,
 :root:root:root body .loa-image-column-sized .loa-edge-image-content__inner,
 :root:root:root body .loa-image-column-sized .loa-image-content-cta__inner{grid-template-columns:minmax(0,1fr)!important;column-gap:0!important}

 /* Every multi-column LOA section becomes one column on tablets and phones. */
 :root:root:root body :is(
  .loa-general-hero,.loa-home-hero__inner,.loa-two-column__inner,.loa-columns-section__grid,
  .loa-roof-types__items,.loa-roof-types__item,.loa-info-cards__grid,.loa-video-section__inner,
  .loa-gallery__grid,.loa-gallery__track,.loa-faqs__grid,.loa-image-links__grid,.loa-image-links>div,
  .loa-background-columns__inner,.loa-background-columns__grid,.loa-location-map__inner,
  .loa-location-services__grid,.loa-video-gallery__grid,
  .loa-image-faq__inner,.loa-image-faq__grid,.loa-edge-image-content,.loa-edge-image-content__inner,
  .loa-image-content-cta__inner,.loa-background-cta__inner,
  .loa-expand-home__inner,.loa-home-video-testimonial__inner
 ){grid-template-columns:minmax(0,1fr)!important}

 /* Content images keep a 20px gutter from both screen edges. Section
    backgrounds and every Hero are intentionally excluded. */
 :root:root:root body :is(
  .loa-intro,.loa-two-column,.loa-content-section,.loa-columns-section,
  .loa-roof-types,.loa-info-cards,.loa-video-section,.loa-footer-content,
  .loa-table,.loa-gallery,.loa-faqs,.loa-google-reviews,.loa-testimonials,
  .loa-body-menu,.loa-image-links,.loa-background-columns,.loa-location-map,
  .loa-image-faq,.loa-location-services,.loa-video-gallery,
  .loa-edge-image-content,.loa-image-content-cta,.loa-background-cta,
  .loa-expand-home,.loa-home-video-testimonial,.loa-team
 ) img{
  box-sizing:border-box!important;
  max-width:calc(100% - 40px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
 }
 :root:root:root body .loa-edge-image-content__image img{
  left:20px!important;
  width:calc(100% - 40px)!important;
 }
}
