.sl-content-page{box-sizing:border-box}.sl-content-page *, .sl-content-page *::before,.sl-content-page *::after{box-sizing:border-box}

.sl-core.sl-fullbleed{width:100%;max-width:none}.sl-core img.sl-media{max-width:100%;height:auto}

/* Beta 56: geometry-based viewport alignment for shortcode content inside arbitrary theme columns.
   The scoped JS measures the real viewport and the actual rendered origin. */
.sl-core.sl-fullbleed{position:relative;left:0;width:var(--sl-viewport-width,100%);max-width:none;margin:0;clear:both;box-sizing:border-box}


/* Beta 80: elements hidden in the visual editor remain hidden in the frontend. */
.sl-core .pcon-is-hidden, .sl-core .pcon-is-hidden[style] { display: none !important; }

/* Beta 86: opt-in per-instance media layouts. Handoff defaults remain untouched. */
.sl-media-config .sl-media-columns{display:grid!important;grid-template-columns:minmax(0,calc(100% - var(--sl-media-width) - var(--sl-media-gap))) minmax(0,var(--sl-media-width))!important;--sl-media-gap:clamp(18px,3vw,48px);gap:var(--sl-media-gap);align-items:center}
.sl-media-config .sl-media-columns>.sl-media-copy{grid-column:1!important;grid-row:1!important;min-width:0}
.sl-media-config .sl-media-columns>.sl-media-picture{grid-column:2!important;grid-row:1!important;min-width:0}
.sl-media-config .sl-media-columns.sl-media-left{grid-template-columns:minmax(0,var(--sl-media-width)) minmax(0,calc(100% - var(--sl-media-width) - var(--sl-media-gap)))!important}
.sl-media-config .sl-media-columns.sl-media-left>.sl-media-picture{grid-column:1!important}
.sl-media-config .sl-media-columns.sl-media-left>.sl-media-copy{grid-column:2!important}
.sl-media-config .sl-media-columns>.sl-media-picture img{display:block;max-width:100%;border-radius:inherit}
.sl-media-config .sl-media-background{position:relative;isolation:isolate;display:flex!important;align-items:center;min-height:380px;overflow:hidden}
.sl-media-config .sl-media-background>.sl-media-background-source{position:absolute!important;inset:0!important;z-index:0!important;display:block!important;width:100%!important;height:100%!important;pointer-events:none}
.sl-media-config .sl-media-background .sl-media-background-img{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
.sl-media-config .sl-media-background::after{content:"";position:absolute;inset:0;z-index:0;background:var(--sl-media-overlay-rgba,rgba(7,60,67,.5));pointer-events:none}
.sl-media-config .sl-media-background>:not(.sl-media-background-source){position:relative;z-index:1}
@media(max-width:900px){.sl-media-config .sl-media-columns,.sl-media-config .sl-media-columns.sl-media-left{display:flex!important;flex-direction:column!important}.sl-media-config .sl-media-columns>.sl-media-picture,.sl-media-config .sl-media-columns>.sl-media-copy{width:100%!important}}

/* Beta 93: consistent clipping for column and background hero media */
.sl-media-config .sl-media-columns>.sl-media-picture{overflow:hidden;border-radius:var(--sl-radius,18px)}
.sl-media-config .sl-media-columns>.sl-media-picture img{border-radius:inherit}
.sl-media-config .sl-media-background{border-radius:var(--sl-radius,18px)}

.sl-core.sl-instance{min-width:0;overflow-wrap:anywhere}

/* Render contract v1: semantic attributes are generated by the shared renderer.
   Component authors can declare data-sl-section and data-sl-container explicitly. */
.sl-core.sl-instance > [data-sl-section],.sl-core.sl-instance > .sl-media-config > [data-sl-section]{padding-block:var(--section-padding,64px)!important;margin-block:0!important}
.sl-core.sl-instance.sl-section-joined-top > [data-sl-section],.sl-core.sl-instance.sl-section-joined-top > .sl-media-config > [data-sl-section]{padding-top:var(--sl-group-inset,12px)!important}
.sl-core.sl-instance.sl-section-joined-bottom > [data-sl-section],.sl-core.sl-instance.sl-section-joined-bottom > .sl-media-config > [data-sl-section]{padding-bottom:var(--sl-group-inset,12px)!important}
.sl-core.sl-instance [data-sl-container]{box-sizing:border-box;width:100%;max-width:var(--content-width,1200px)!important;margin-inline:auto!important;padding-inline:clamp(18px,var(--content-gutter,4vw),48px)!important}
.sl-core.sl-instance details[data-sl-accordion]{box-sizing:border-box;padding-inline:var(--sl-faq-inset,22px)!important}
.sl-core.sl-instance details[data-sl-accordion] > summary{display:block;position:relative;margin:0!important;padding:19px 32px 19px 0!important;min-height:52px}
.sl-core.sl-instance details[data-sl-accordion] > p{margin:0!important;padding:0 0 20px!important}
@media(max-width:767px){
 .sl-core.sl-instance > [data-sl-section],.sl-core.sl-instance > .sl-media-config > [data-sl-section]{padding-block:clamp(36px,7vw,var(--section-padding,64px))!important}
 .sl-core.sl-instance.sl-section-joined-top > [data-sl-section],.sl-core.sl-instance.sl-section-joined-top > .sl-media-config > [data-sl-section]{padding-top:var(--sl-group-inset-mobile,10px)!important}
 .sl-core.sl-instance.sl-section-joined-bottom > [data-sl-section],.sl-core.sl-instance.sl-section-joined-bottom > .sl-media-config > [data-sl-section]{padding-bottom:var(--sl-group-inset-mobile,10px)!important}
}
/* Versioned structured group roles also support sections inside an authored wrapper. */
.sl-core.sl-structured-host.sl-section-joined-top [data-sl-structured-section]{padding-top:var(--sl-group-inset,12px)!important}
.sl-core.sl-structured-host.sl-section-joined-bottom [data-sl-structured-section]{padding-bottom:var(--sl-group-inset,12px)!important}
@media(max-width:767px){.sl-core.sl-structured-host.sl-section-joined-top [data-sl-structured-section]{padding-top:var(--sl-group-inset-mobile,10px)!important}.sl-core.sl-structured-host.sl-section-joined-bottom [data-sl-structured-section]{padding-bottom:var(--sl-group-inset-mobile,10px)!important}}

.sl-core.sl-structured-host [data-sl-conditional-hidden]{display:none!important}

/* Beta 122: A source component can carry padding-top:0 from its original
   joined-page context. In a new independent structured section that inline
   reset must not collapse the transition from the previous section.
   Joined sections keep their existing explicit group-inset behavior. */
.sl-core.sl-structured-host:not(.sl-section-joined-top) [data-sl-structured-section][style*="padding-top:0"],
.sl-core.sl-structured-host:not(.sl-section-joined-top) [data-sl-structured-section][style*="padding-top: 0"]{padding-top:var(--section-padding,64px)!important}
@media(max-width:767px){
 .sl-core.sl-structured-host:not(.sl-section-joined-top) [data-sl-structured-section][style*="padding-top:0"],
 .sl-core.sl-structured-host:not(.sl-section-joined-top) [data-sl-structured-section][style*="padding-top: 0"]{padding-top:clamp(36px,7vw,var(--section-padding,64px))!important}
}

.sl-editor-context{font-size:12px;line-height:1.5;padding:8px 10px;background:#f0f4f7;border-left:3px solid #2271b1}.sl-service-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0}.sl-service-row>label{flex:1;min-width:100px}.sl-component-controls{padding:10px 0;border-bottom:1px solid #dcdcde}.sl-component-controls h3{margin:0 0 8px}
