:root { --content-width: 760px; --portal-primary:#0b5d4b; --portal-secondary:#6c757d; --portal-bg:#fff; --portal-text:#1f2937; --portal-footer-bg:#f8f9fa; --portal-footer-text:#495057; --portal-container:1140px; --portal-radius:16px; }
body { background: var(--portal-bg); color: var(--portal-text); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.hero { background: linear-gradient(180deg, #f7f8fa 0%, #ffffff 100%); }
.card { border-radius: var(--portal-radius); }
.content-reading { max-width: var(--content-width); }
.article-body { font-size: 1.08rem; line-height: 1.8; }
.article-body img { max-width: 100%; height: auto; border-radius: .75rem; }
.featured-story-image { width: 100%; height: 100%; min-height: 340px; object-fit: cover; }
.news-card-image { height: 220px; object-fit: cover; }
.article-cover { width: 100%; max-height: 520px; object-fit: cover; border-radius: 1rem; }

/* v0.3.0 - páginas institucionais */
.article-body img { max-width: 100%; height: auto; }
.article-body table { width: 100%; }

/* v0.4.0 - agenda de eventos e cultos */
.agenda-card-image { width: 100%; height: 210px; object-fit: cover; }
.agenda-date { font-weight: 700; }
.agenda-date-box { width: 58px; padding: .6rem .35rem; border: 1px solid #dee2e6; border-radius: .8rem; background: #f8f9fa; }
.agenda-home-item .card { transition: transform .15s ease, box-shadow .15s ease; }
.agenda-home-item:hover .card { transform: translateY(-2px); }

/* v0.6.0 - identidade visual, menu e rodapé */
.site-logo {
    max-height: 58px;
    max-width: 220px;
    width: auto;
    object-fit: contain;
}

.navbar .dropdown-menu {
    border: 0;
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .12);
}

.navbar .admin-link {
    font-size: .9rem;
    color: var(--bs-secondary-color);
}

.footer-social-link {
    display: inline-block;
    margin-left: 1rem;
    text-decoration: none;
}

.config-image-preview img {
    max-width: 100%;
    max-height: 120px;
    object-fit: contain;
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    padding: .35rem;
    background: #fff;
}

/* v0.7.0 - Banners e Galerias */
.home-banner-slide { min-height: 360px; max-height: 620px; overflow: hidden; }
.home-banner-image { width: 100%; height: clamp(360px, 48vw, 620px); object-fit: cover; }
.home-banner-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.38) 52%, rgba(0,0,0,.05) 100%); }
.home-banner-caption { left: max(7%, calc((100% - 1140px) / 2)); right: 7%; bottom: 14%; }
.gallery-card-cover { height: 240px; object-fit: cover; }
.gallery-card-placeholder { height: 240px; background: #f1f3f5; color: #6c757d; font-weight: 600; }
.gallery-photo-button { border-radius: .75rem; overflow: hidden; }
.gallery-photo-thumb { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: .75rem; transition: transform .2s ease, opacity .2s ease; }
.gallery-photo-button:hover .gallery-photo-thumb { transform: scale(1.02); opacity: .92; }
.gallery-modal-image { max-width: 100%; max-height: 72vh; object-fit: contain; }
@media (max-width: 767.98px) {
  .home-banner-slide { min-height: 300px; }
  .home-banner-image { height: 360px; }
  .home-banner-caption { left: 8%; right: 8%; bottom: 12%; }
  .home-banner-caption .display-5 { font-size: 2rem; }
  .home-banner-caption .lead { font-size: 1rem; }
}

/* v0.8.0 - Formulários públicos */
.public-form .form-control,
.public-form .form-select { min-height: 48px; }
.public-form textarea.form-control { min-height: 150px; }
.public-form .form-check-input { width: 1.2rem; height: 1.2rem; }


/* v0.11.0 - Aparência, temas e widgets */
.container { --bs-gutter-x: 1.5rem; max-width: calc(var(--portal-container) + var(--bs-gutter-x)); }
.portal-footer { background: var(--portal-footer-bg); color: var(--portal-footer-text); }
.portal-footer .text-secondary, .portal-footer a { color: var(--portal-footer-text) !important; }
.portal-header.sticky-top { z-index: 1030; }
.site-brand-name { font-size: 1rem; }
.widget-section { scroll-margin-top: 90px; }
.widget-html > :last-child { margin-bottom: 0; }
.theme-preview-strip { height: 12px; }
.theme-preview-strip span { flex: 1 1 0; }
.ring-active-theme { outline: 2px solid var(--bs-success); outline-offset: 2px; }
.appearance-preview { --p:#0b5d4b;--s:#6c757d;--b:#fff;--t:#1f2937;--f:#f8f9fa;--ft:#495057; background:var(--b); color:var(--t); }
.appearance-preview .preview-head { background:var(--p); color:white; }
.appearance-preview .preview-foot { background:var(--f); color:var(--ft); }
.appearance-preview .preview-title { height:20px; width:70%; border-radius:6px; background:var(--t); opacity:.85; }
.appearance-preview .preview-line { height:8px; width:92%; border-radius:5px; background:var(--s); opacity:.35; }
.appearance-preview .preview-line.short { width:65%; }
.appearance-preview .preview-button { background:var(--p); color:white; }

/* v0.14.0 - Tags e busca */
.tag-choice { display:inline-flex; align-items:center; padding:.45rem .7rem; border:1px solid var(--bs-border-color); border-radius:999px; background:#fff; cursor:pointer; transition:.15s ease; }
.tag-choice:has(input:checked) { border-color:var(--portal-primary); background:color-mix(in srgb, var(--portal-primary) 10%, white); }
.article-tags .badge { font-size:.9rem; padding:.5rem .7rem; }
.portal-search-form { min-width:190px; }
.search-page { max-width:900px; }
.search-results .list-group-item { background:transparent; }
@media (max-width: 991.98px) { .portal-search-form { margin:.75rem 0; max-width:420px; } }

/* v0.15.0 - Comentários */
.comments-section { scroll-margin-top: 90px; }
.comment-public { background: color-mix(in srgb, var(--portal-bg) 94%, var(--portal-primary) 6%); }
.comment-public-text { line-height: 1.7; overflow-wrap: anywhere; }
.comment-form textarea { min-height: 150px; }
.comment-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
