/* Full-width section shells; editor canvases and inner content retain their layout.
   Centered theme content wrappers must not constrain the section background.
   The measured viewport excludes the scrollbar (unlike plain 100vw). */
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):not(.loa-editor):not(.editor-styles-wrapper *) {
	box-sizing:border-box;
	width:var(--loa-viewport-width,100%)!important;
	max-width:none!important;
	left:0!important;
	right:auto!important;
	margin-left:calc((100% - var(--loa-viewport-width,100%))/2)!important;
	margin-right:calc((100% - var(--loa-viewport-width,100%))/2)!important;
}
body section.loa-general-hero {padding-left:0!important;padding-right:0!important}
body .loa-roof-types:not(.loa-editor) .loa-roof-types__item-shell {
	width:var(--loa-viewport-width,100%);
	margin-left:calc((100% - var(--loa-viewport-width,100%))/2);
	margin-right:calc((100% - var(--loa-viewport-width,100%))/2);
}

/* Shared section background rendering. Loaded after every block stylesheet. */
.loa-has-section-background,
.loa-section-background-editor-shell,
.loa-section-background-editor-shell .loa-editor,
.loa-editor-has-section-background .loa-editor {
	background-image: var(--loa-section-background-image) !important;
	background-position: 50% 50% !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
}

.loa-section-background-editor-shell {
	box-sizing: border-box;
	width: 100%;
}

/* Opaque Roof Types wrappers would otherwise hide the selected section image. */
.loa-has-section-background.loa-roof-types .loa-roof-types__items,
.loa-has-section-background.loa-roof-types .loa-roof-types__item-shell,
.loa-section-background-editor-shell .loa-roof-types__items,
.loa-section-background-editor-shell .loa-roof-types__item-shell,
.loa-editor-has-section-background .loa-roof-types__items,
.loa-editor-has-section-background .loa-roof-types__item-shell {
	background-color: transparent !important;
}

/* Block-level title color. The stored value is a CSS variable on the block root. */
.loa-has-title-color h1,
.loa-has-title-color h2,
.loa-has-title-color h3,
.loa-has-title-color h4,
.loa-has-title-color h5,
.loa-has-title-color h6,
.loa-has-title-color .loa-image-links__title,
.loa-has-title-color .loa-content-section__button-heading,
.loa-has-title-color .loa-footer-content__title-link,
.loa-editor-has-title-color .loa-editor h1,
.loa-editor-has-title-color .loa-editor h2,
.loa-editor-has-title-color .loa-editor h3,
.loa-editor-has-title-color .loa-editor h4,
.loa-editor-has-title-color .loa-editor h5,
.loa-editor-has-title-color .loa-editor h6,
.loa-editor-has-title-color .loa-editor .loa-image-links__title,
.loa-editor-has-title-color .loa-editor .loa-content-section__button-heading,
.loa-editor-has-title-color .loa-editor .loa-footer-content__title-link {
	color: var(--loa-title-color) !important;
}

/* Media always appears before its text column on phones, regardless of the desktop side setting. */
@media screen and (max-width: 782px), screen and (max-device-width: 782px) {
	.loa-two-column__media,
	.loa-roof-types__media,
	.loa-video-section__video,
	.loa-image-content-cta__image,
	.loa-edge-image-content__image,
	.loa-location-map__map {
		order: -1 !important;
	}

	.loa-two-column__content,
	.loa-roof-types__item-content,
	.loa-video-section__content,
	.loa-image-content-cta__content,
	.loa-edge-image-content__content,
	.loa-location-map__content {
		order: 0 !important;
	}
}

/* Keep media selectors and button settings visually separated in inspectors. */
.components-panel__body .loa-editor__media-control {
	margin: 0 0 16px;
}

.components-panel__body .loa-editor__media-control .components-button {
	display: inline-flex;
	margin: 0;
}

.components-panel__body .loa-editor__button-group {
	margin: 20px 0;
	padding: 16px 0 4px;
	border-top: 1px solid #dcdcde;
}

.components-panel__body .components-button {
	margin-right: 8px;
	margin-bottom: 10px;
}

/* Brand colors: presentation buttons only; not editor controls or carousel arrows. */
body :is(a, button, span)[class]:is(
 .loa-general-hero__button,
 .loa-one-column-hero__button,
 .loa-home-hero__button,
 .loa-intro__button,
 .loa-two-column__button,
 .loa-content-section__button,
 .loa-roof-types__button,
 .loa-info-cards__button,
 .loa-video-section__button,
 .loa-footer-content__button,
 .loa-edge-image-content__button,
 .loa-background-cta__button,
 .loa-table__button,
 .loa-home-video-testimonial__content > a
) {
 background: #264a9e !important;
 color: #fff !important;
}

.loa-info-cards .loa-info-cards__card--blue {
 background: #243594 !important;
 color: #fff;
}
.loa-info-cards .loa-info-cards__card--blue :is(h1,h2,h3,h4,h5,h6,p,li,a) {
 color: #fff;
}

.loa-editor.loa-location-map .loa-location-map__map iframe {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 400px;
 border: 0;
}

/* Info Cards: rich section content, neutral background and complete final row. */
.loa-info-cards {
 background-color: #fff;
}
.loa-info-cards .loa-info-cards__card--transparent {
 background: transparent !important;
 border: 0 !important;
 box-shadow: none !important;
 color: inherit;
}
.loa-info-cards .loa-info-cards__card--transparent a:not(.loa-info-cards__button) {
 color: inherit;
}
.loa-info-cards--has-background .loa-info-cards__card--transparent {
 color: #fff;
}
.loa-info-cards .loa-info-cards__grid--single {
 grid-template-columns: minmax(0,1fr);
}
.loa-info-cards .loa-info-cards__card:last-child:nth-child(odd) {
 grid-column: 1 / -1;
}

/* Multiple CTA buttons, preserving block alignment and individual button styles. */
.loa-button-list {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 12px;
 margin-top: 22px;
}
.loa-content-section .loa-button-list,
.loa-info-cards .loa-button-list { justify-content: center; }
.loa-roof-types .loa-button-list { justify-content: flex-start; }
.loa-buttons-align-left .loa-button-list { justify-content: flex-start; }
.loa-buttons-align-center .loa-button-list { justify-content: center; }
.loa-buttons-align-right .loa-button-list { justify-content: flex-end; }
body .loa-button-list > :is(.loa-content-section__button,.loa-roof-types__button,.loa-info-cards__button) {
 margin: 0 !important;
 max-width: 100%;
 box-sizing: border-box;
}

/* Optional CTA styling for individual table cells. */
.loa-table .loa-table__button {
 display: inline-flex;
 box-sizing: border-box;
 align-items: center;
 justify-content: center;
 max-width: 100%;
 min-height: 46px;
 padding: 13px 24px;
 border: 0;
 border-radius: 999px;
 background: #264a9e;
 color: #fff !important;
 font-size: 16px;
 font-weight: 600;
 line-height: 1.25;
 text-align: center;
 text-decoration: none !important;
 overflow-wrap: anywhere;
 transition: transform .2s ease;
}
.loa-table a.loa-table__button:hover { transform: translateY(-2px); }
.loa-table a.loa-table__button:focus-visible { outline: 2px solid #264a9e; outline-offset: 3px; }
