/* Shared by the public site and the live-editor canvas so builder content
   renders identically in both. Loaded AFTER the site CSS and Bootstrap. */
.vvveb-content img { max-width: 100%; height: auto; }
.vvveb-content a,
.vvveb-content a:hover,
.vvveb-content .btn { text-decoration: none; }
/* Bootstrap's Reboot underlines every <a>; keep the Tailwind header/footer clean. */
nav a, header a, footer a { text-decoration: none; }
/* Editor canvas: mimic `container mx-auto px-4 > max-w-4xl mx-auto` + py-16. */
body.builder-canvas { max-width: 56rem; margin: 0 auto; padding: 4rem 1rem; background: #fff; }

/* Locked dynamic blocks in the editor canvas (rendered from data, stripped on save). */
.cc-block-locked { pointer-events: none; user-select: none; position: relative; margin-top: 2rem; padding: 1rem; border: 1px dashed #94a3b8; border-radius: .5rem; background: #f8fafc; }
.cc-block-locked__label { font: 600 .7rem/1 system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: #64748b; margin-bottom: .75rem; }
/* Full-bleed locked bands (page hero): show as on the site, minus the box chrome. */
.cc-block-locked.cc-block-locked--flush { margin-top: 0; margin-bottom: 2rem; padding: 0; border: 0; background: none; border-radius: 0; overflow: hidden; }
.cc-block-locked.cc-block-locked--flush .cc-block-locked__label { padding: .5rem .75rem 0; margin-bottom: .25rem; }
/* Full-width template canvas: content owns the page, edge to edge. */
body.builder-canvas.builder-canvas--full { max-width: none; padding: 0; }

/* Dynamic blocks (data-driven, rendered server-side). In the editor the wrapper
   is the only selectable thing: its rendered children ignore the pointer, and a
   dashed outline plus a small label say what it is. */
.cc-dyn-block { position: relative; outline: 1px dashed #94a3b8; outline-offset: 4px; min-height: 2rem; }
.cc-dyn-block > * { pointer-events: none; }
.cc-dyn-block::before {
    content: attr(data-cc-label);
    position: absolute; top: -1.4rem; left: 0;
    font: 600 .65rem/1.4 system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase;
    color: #fff; background: #64748b; padding: .1rem .4rem; border-radius: .25rem;
    pointer-events: none; z-index: 2;
}
/* Full-width template: builder content spans the page instead of a boxed column. */
.vvveb-content--flush { width: 100%; }
