/* LOA 2.1.1: last stylesheet. Explicit layout contract, independent of legacy patches. */
: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}
}
