body{background:var(--background);color:var(--text);font-family:var(--body-font)}
h1,h2,h3,h4,h5,h6,.navbar-brand{font-family:var(--heading-font)}
a{color:var(--primary)}
.pub-navbar{background:var(--surface)}
.pub-navbar .nav-link{color:var(--accent);font-weight:600}
.pub-footer{background:var(--accent);color:#fff}
.widget-card{background:var(--surface);border-radius:1.5rem;overflow:hidden;box-shadow:0 0.5rem 1rem rgba(0,0,0,.05)}
.hero-widget{background-size:cover;background-position:center;min-height:420px}
.hero-overlay{background:linear-gradient(90deg, rgba(0,0,0,.70), rgba(0,0,0,.35))}
.event-thumb{height:220px;object-fit:cover}
.map-frame{width:100%;min-height:340px;border:0;border-radius:1rem}
.admin-sidebar{min-height:100vh;background:var(--accent);color:#fff}
.admin-sidebar a{color:#fff;text-decoration:none;display:block;padding:.7rem 1rem;border-radius:.75rem}
.admin-sidebar a:hover,.admin-sidebar a.active{background:rgba(255,255,255,.14)}
.admin-card{background:#fff;border-radius:1rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.05)}
.widget-category-tabs{display:flex;gap:.5rem;flex-wrap:wrap}
.widget-category-tab{border:1px solid #d0d7de;background:#fff;border-radius:999px;padding:.5rem 1rem;font-weight:600}
.widget-category-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.widget-palette-grid{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:1rem;padding:1rem}
.widget-category-panel{display:none}
.widget-category-panel.active{display:block}
.widget-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.9rem}
.palette-item{background:#fff;border:1px solid #dfe3e8;border-radius:1rem;padding:1rem .75rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:.35rem;min-height:140px;transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease}
.palette-item:hover{transform:translateY(-2px);box-shadow:0 .5rem 1rem rgba(0,0,0,.06);border-color:var(--primary)}
.palette-icon{font-size:1.9rem;line-height:1}
.palette-label{font-weight:700;color:var(--text)}
.palette-description{font-size:.78rem;color:var(--muted-text);line-height:1.25}
.editor-dropzone{min-height:240px;background:#f8f9fa;border:2px dashed #ced4da;border-radius:1rem;padding:1rem}
.editor-widget{background:#fff;border:1px solid #dee2e6;border-radius:1rem;padding:1rem;margin-bottom:1rem}
.editor-widget.is-dragging{opacity:.45}
.widget-placeholder{border:2px dashed var(--primary);border-radius:1rem;margin-bottom:1rem;background:rgba(0,0,0,.02)}
.sort-handle{cursor:grab}
.sort-handle:active{cursor:grabbing}
.stat-card{padding:1rem;border-radius:1rem;background:#fff;border:1px solid #eee}
@media (max-width:991px){.admin-sidebar{min-height:auto}}

.layout-shell{display:none}.layout-shell.active{display:block}
.layout-shell-title{font-weight:700}
.layout-grid{display:grid;gap:1rem}.layout-single{grid-template-columns:1fr}.layout-two_column{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.layout-hero_split{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.layout-hero_split .area-header{grid-column:1/-1}.layout-landing{grid-template-columns:1fr}.layout-area-card{background:#fff;border-radius:1rem;padding:1rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.05)}
.palette-item.dragging{opacity:.5}.editor-dropzone.drag-over{border-color:var(--primary);background:#fffaf4}.editor-dropzone .empty-drop-hint{color:var(--muted-text);font-size:.9rem}
.front-layout{display:grid;gap:1rem}.front-layout-two_column,.front-layout-hero_split{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.front-layout-hero_split .area-header{grid-column:1/-1}.front-layout-landing{grid-template-columns:1fr}.page-layout-wrap .widget-card{margin-bottom:1rem}
@media (max-width:991px){.layout-two_column,.layout-hero_split,.front-layout-two_column,.front-layout-hero_split{grid-template-columns:1fr}}

.media-picker-mode{max-width:none}
.nav-sort-handle{cursor:grab}
.nav-sort-handle:active{cursor:grabbing}
.nav-sort-row.is-dragging{opacity:.45}
.nav-sort-row.drag-over{outline:2px dashed var(--primary);outline-offset:-6px}
.event-card-thumb-link{display:block}
.event-card-body .btn-event-details{display:block;width:100%;text-align:center}

.rich-text-content p:last-child{margin-bottom:0;}
.richtext-surface:focus{outline:none;}
.richtext-editor img{max-width:100%;height:auto;border-radius:12px;}
.scroller-slide-list .card{background:#fff;}
.carousel-item img{display:block;}

.nested-dropzone{min-height:120px;padding:12px;border:2px dashed rgba(0,0,0,.08);border-radius:16px;background:#fff;}
.nested-widget{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:16px;margin-bottom:12px;}
.columns-widget-editor [data-column-wrap]{transition:opacity .2s ease;}

.header-logo{max-height:54px;max-width:220px;object-fit:contain;}
.theme-showcase-band{background-size:cover;background-position:center;border-bottom-left-radius:2rem;border-bottom-right-radius:2rem;}
.theme-showcase-surface{background:var(--surface);}
.theme-classic-wrap,.theme-showcase-wrap{min-height:20vh;}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:1080;background:var(--accent);color:#fff;padding:1rem 0;box-shadow:0 -.5rem 1rem rgba(0,0,0,.15);}
