/**
 * Page Builder frontend — keep live output aligned with the GrapesJS canvas.
 * Loaded after site theme CSS; shields builder markup from template overrides.
 */
.cms-page-builder-page {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    --cms-builder-max-width: 1140px;
}

.cms-page-builder-page .cms-page-builder-zone {
    width: 100%;
    max-width: var(--cms-builder-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
}

.cms-builder-max-full .cms-page-builder-page .cms-page-builder-zone,
.cms-builder-max-full.cms-page-builder-page .cms-page-builder-zone {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.cms-page-builder-page .cms-page-builder-zone > .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.feature-card--builder .cms-page-builder-page,
.feature-card--builder .cms-page-builder-page .cms-page-builder-zone {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.t6-home .t6-builder-shell .cms-page-builder-page {
    width: 100%;
    max-width: none;
    margin: 0;
}

.t6-home .overlap-wrap .cms-page-builder-page {
    width: 100%;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
}

.t2-static-page .t6-static-builder-shell .cms-page-builder-page {
    width: 100%;
    max-width: none;
    margin: 0;
}

.t2-static-page .t6-static-builder-shell .cms-page-builder-zone .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.cms-page-builder-page .cms-page-builder-zone {
    width: 100%;
    margin: 0;
    padding: 0;
    isolation: isolate;
}

.cms-page-builder-page .cms-page-builder-zone :is(h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote) {
    margin-top: 0;
}

.cms-page-builder-zone img:not([style*="width"]):not([style*="height"]) {
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
}

/* GrapesJS row/cell layout is finalized in cms-page-builder-layout-fix (loaded after builder CSS). */

/* Bootstrap grid — keep editor columns aligned on the live site */
.cms-page-builder-page .cms-page-builder-zone .row {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100%;
    margin-right: calc(-0.5 * var(--bs-gutter-x));
    margin-left: calc(-0.5 * var(--bs-gutter-x));
    margin-top: calc(-1 * var(--bs-gutter-y));
    box-sizing: border-box;
}

.cms-page-builder-page .cms-page-builder-zone .row > * {
    flex-shrink: 0;
    max-width: 100%;
    padding-right: calc(var(--bs-gutter-x) * 0.5);
    padding-left: calc(var(--bs-gutter-x) * 0.5);
    margin-top: var(--bs-gutter-y);
    box-sizing: border-box;
    min-width: 0;
}

/* Full-width only when no column class or inline width is set */
.cms-page-builder-page .cms-page-builder-zone .row > *:not([class*="col-"]):not([style*="width"]) {
    width: 100%;
}

.cms-page-builder-page .cms-page-builder-zone .row > [style*="width"] {
    flex: 0 0 auto !important;
}

.cms-page-builder-page .cms-page-builder-zone .col {
    flex: 1 0 0% !important;
    width: auto !important;
}

.cms-page-builder-page .cms-page-builder-zone .col-auto {
    flex: 0 0 auto !important;
    width: auto !important;
}

.cms-page-builder-page .cms-page-builder-zone [class*="col-"] {
    flex: 0 0 auto;
}

.cms-page-builder-page .cms-page-builder-zone .col-1 { width: 8.33333333%; }
.cms-page-builder-page .cms-page-builder-zone .col-2 { width: 16.66666667%; }
.cms-page-builder-page .cms-page-builder-zone .col-3 { width: 25%; }
.cms-page-builder-page .cms-page-builder-zone .col-4 { width: 33.33333333%; }
.cms-page-builder-page .cms-page-builder-zone .col-5 { width: 41.66666667%; }
.cms-page-builder-page .cms-page-builder-zone .col-6 { width: 50%; }
.cms-page-builder-page .cms-page-builder-zone .col-7 { width: 58.33333333%; }
.cms-page-builder-page .cms-page-builder-zone .col-8 { width: 66.66666667%; }
.cms-page-builder-page .cms-page-builder-zone .col-9 { width: 75%; }
.cms-page-builder-page .cms-page-builder-zone .col-10 { width: 83.33333333%; }
.cms-page-builder-page .cms-page-builder-zone .col-11 { width: 91.66666667%; }
.cms-page-builder-page .cms-page-builder-zone .col-12 { width: 100%; }

@media (min-width: 768px) {
    .cms-page-builder-page .cms-page-builder-zone .col-md-1 { width: 8.33333333%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-2 { width: 16.66666667%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-3 { width: 25%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-4 { width: 33.33333333%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-5 { width: 41.66666667%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-6 { width: 50%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-7 { width: 58.33333333%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-8 { width: 66.66666667%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-9 { width: 75%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-10 { width: 83.33333333%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-11 { width: 91.66666667%; }
    .cms-page-builder-page .cms-page-builder-zone .col-md-12 { width: 100%; }
}

/* Images with explicit builder dimensions (inline or via gjs_css id rules) */
.cms-page-builder-page .cms-page-builder-zone img[style*="width"],
.cms-page-builder-page .cms-page-builder-zone img[style*="height"] {
    display: block;
    max-width: 100%;
    object-fit: contain;
    object-position: left top;
}

.cms-page-builder-page .cms-page-builder-zone img.w-100,
.cms-page-builder-page .cms-page-builder-zone .w-100 img,
.cms-page-builder-page .cms-page-builder-zone .carousel-item img {
    width: 100% !important;
    object-fit: cover;
}

/* Column text blocks — match editor readability */
.cms-page-builder-page .cms-page-builder-zone .row > [class*="col-"],
.cms-page-builder-page .cms-page-builder-zone .row > div[style*="width"] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
}

.cms-page-builder-page .cms-page-builder-zone .row > * p,
.cms-page-builder-page .cms-page-builder-zone .row > * h1,
.cms-page-builder-page .cms-page-builder-zone .row > * h2,
.cms-page-builder-page .cms-page-builder-zone .row > * h3,
.cms-page-builder-page .cms-page-builder-zone .row > * h4 {
    max-width: 100%;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.cms-page-builder-page .cms-page-builder-zone section:not(.cms-t2-feed),
.cms-page-builder-page .cms-page-builder-zone .container:not(.cms-t2-feed .container),
.cms-page-builder-page .cms-page-builder-zone .container-fluid {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.cms-page-builder-page .cms-page-builder-zone .cms-content-feed {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

.cms-page-builder-page .cms-page-builder-zone .gjs-cell:has(.cms-content-feed),
.cms-page-builder-page .cms-page-builder-zone .gjs-cell:has(.cms-t2-feed) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    overflow: visible !important;
}

.cms-page-builder-zone .row {
    display: flex;
    flex-wrap: wrap;
}

/* Prevent template "about" logo-grid styles from reshaping builder blocks */
.cms-page-builder-zone .t6-about-block .t6-about-cms,
.cms-page-builder-zone .t6-about-cms {
    display: block;
    flex-wrap: unset;
    justify-content: unset;
    align-items: unset;
    gap: unset;
}

.cms-page-builder-zone .t6-about-block .t6-about-cms > div,
.cms-page-builder-zone .t6-about-block .t6-about-cms > p,
.cms-page-builder-zone .t6-about-cms > div,
.cms-page-builder-zone .t6-about-cms > p {
    flex: unset !important;
    min-width: unset !important;
    max-width: none !important;
    margin: revert !important;
    text-align: inherit !important;
    animation: none !important;
}

.cms-page-builder-zone .t6-about-block .t6-about-cms a,
.cms-page-builder-zone .t6-about-cms a {
    display: revert;
    align-items: revert;
    justify-content: revert;
    width: revert;
    min-height: unset !important;
    padding: revert;
    border: revert;
    border-radius: revert;
    background: revert;
    box-shadow: revert;
    text-decoration: revert;
}

.cms-page-builder-zone .t6-about-block .t6-about-cms img:not([style*="width"]):not([style*="height"]),
.cms-page-builder-zone .t6-about-cms img:not([style*="width"]):not([style*="height"]) {
    display: revert;
    max-width: 100%;
    width: revert;
    max-height: none;
    height: auto;
    margin: revert;
    object-fit: revert;
    border-radius: revert;
}

.cms-page-builder-zone .t6-about-block {
    background: revert;
    border: revert;
    border-radius: revert;
    padding: revert;
    animation: none !important;
}
