/* SEPPIO Builder: scoped page content, compatible with any regular WP theme. */
.spb-content{width:100%;max-width:100%;box-sizing:border-box;clear:both;--seppio-accent:#7058dc;--seppio-max-width:1200px;font:inherit;color:inherit}
.spb-content *, .spb-content *::before,.spb-content *::after{box-sizing:border-box}
.spb-content img{max-width:100%}
.spb-content .sp-section-inner{width:100%;margin-inline:auto}
.spb-content .sp-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}
.spb-content .sp-row{display:flex;flex-wrap:wrap;align-items:stretch}
.spb-content .sp-column{display:flex;flex-direction:column;min-width:0}
.spb-content .sp-image{display:block;align-self:flex-start;margin:0;line-height:0}
.spb-content .sp-image img{width:100%;display:block}
.spb-content .sp-button{background:#7058dc;border:0;color:#fff;display:inline-block;border-radius:6px;padding:12px 22px;text-decoration:none;font-weight:700}
.spb-content .sp-button:hover{filter:brightness(.93);color:#fff}
.spb-content .sp-html{overflow-wrap:anywhere}
.spb-content .sp-spacer{flex-shrink:0}
/* SEPPIO v0.4.0: independent rich text and content elements */
.spb-content .sp-text{white-space:normal;overflow-wrap:break-word;line-height:inherit}
.spb-content .sp-text p,.spb-content .sp-list p,.spb-content .sp-quote p{margin:0 0 1em}
.spb-content .sp-title{line-height:1.24;overflow-wrap:anywhere}
.spb-content .sp-list ul,.spb-content .sp-list ol{padding-left:1.55em;margin:0 0 1em}
.spb-content .sp-list li{list-style:inherit}
.spb-content .sp-quote{border-left:4px solid #9278e9;padding:10px 0 10px 18px;margin:0;font-style:italic;font-size:1.14em}
.spb-content .sp-separator hr{width:100%;margin:12px 0}
.spb-content .sp-video{position:relative;max-width:100%}
.spb-content .sp-video iframe{display:block;max-width:100%;width:100%;aspect-ratio:16/9;height:auto}
.spb-content .sp-gallery-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;width:100%}
.spb-content .sp-gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:5px}
.spb-content .sp-accordion details{padding:15px 18px;border:1px solid #d7e4ee;border-radius:6px;margin-bottom:8px}
.spb-content .sp-accordion summary{cursor:pointer;font-weight:700}
.spb-content .sp-accordion p{margin:12px 0 0}

/* v0.6: the editor-only live mount is placed within the active theme. */
.spb-live-frontend .spb-live-target {min-height:120px;width:100%;max-width:100%;}
.spb-live-frontend .spb-live-wait {padding:32px 16px;color:#6c6c80;text-align:center;border:1px dashed #b6afc9;}

/* Independent width for text frames; the row/column flex-basis never changes. */
.spb-content .sp-text,.spb-content .sp-title,.spb-content .sp-quote,
.spb-content .sp-list,.spb-content .sp-button-wrap,.spb-content .sp-html {min-width:0}
.spb-content .sp-title{margin-top:0;margin-bottom:0}

.spb-content .sp-text > p:last-child{margin-bottom:0}

/* v0.6.1: image width and alignment are bounded independently from the column.
   Per-image responsive inline rules add effective margin-aware max-width. */
.spb-content .sp-image{min-width:0;max-width:100%;}
.spb-content .sp-image img{max-width:100%;height:auto;}
/* Match the live editor's 100%-column default before a width is customized. */
.spb-content .sp-image{width:100%;}

/* v0.6.2: full-width buttons + responsive video preview. */
.spb-content .sp-button-wrap.sp-button-full > .sp-button {display:block!important;width:100%!important;max-width:100%;box-sizing:border-box;text-align:inherit;}
.spb-content .sp-video > iframe,.spb-content .sp-video > video {display:block;max-width:100%;width:100%;aspect-ratio:16/9;height:auto;}
.spb-content .sp-video > video {background:#151823;}

/* v0.6.3: code containers preserve column sizing and interactive HTML. */
.spb-content .sp-html{min-width:0;max-width:100%;}

/* v0.6.9: hide a cached loading placeholder; the live editor mounts directly. */
.spb-live-frontend .spb-live-wait{display:none!important}

/* v0.7.2: visible, predictable spacing between consecutive sections.
   Explicit per-section/device values are rendered under ID-scoped rules. */
.spb-content > .sp-section + .sp-section{margin-top:24px!important}
