/* Tema «default». Colori, font e raggi arrivano dalle variabili CSS generate dalle impostazioni del sito. */
body.site-body { background: var(--c-bg); color: var(--c-text); font-family: var(--font-body); }
h1, h2, h3, h4, h5, .navbar-brand { font-family: var(--font-heading); }
a { color: var(--c-link); } a:hover { color: var(--c-link-hover); }
.min-w-0 { min-width: 0; }

.site-navbar { background: var(--c-nav-bg); border-bottom: 1px solid var(--c-border); }
.site-navbar .navbar-brand, .site-navbar .nav-link { color: var(--c-nav-text); }
.site-navbar .nav-link.active, .site-navbar .nav-link:hover { color: var(--c-primary); font-weight: 600; }

.site-hero { background: var(--c-hero-bg); color: var(--c-hero-text); }
.site-hero h1 { color: var(--c-hero-text); }
.hero-img { width: auto; max-width: 100%; }

.content-card, .side-card, .listing-card { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); }
.side-card { background: var(--c-sidebar-bg); }
.page-title { font-size: clamp(1.5rem, 3vw, 2.1rem); color: var(--c-primary); }
.page-thumb { object-fit: cover; border-radius: 50%; border: 1px solid var(--c-border); }
.page-content img { max-width: 100%; height: auto; }
.page-content h2 { margin-top: 1.5rem; font-size: 1.4rem; }
.page-content table { width: 100%; }

.listing-card .card-img-top { aspect-ratio: 16/9; object-fit: cover; border-radius: var(--radius) var(--radius) 0 0; }
.listing-card:hover { box-shadow: 0 .25rem .75rem rgba(0,0,0,.12); }
.attr-table th { width: 38%; }
.listing-map { height: 320px; border-radius: var(--radius); border: 1px solid var(--c-border); }

.sidebar-sticky { position: sticky; top: 80px; }
.list-group-item.active { background: var(--c-primary); border-color: var(--c-primary); }

.btn-primary { --bs-btn-bg: var(--c-primary); --bs-btn-border-color: var(--c-primary); --bs-btn-hover-bg: var(--c-secondary); --bs-btn-hover-border-color: var(--c-secondary); --bs-btn-active-bg: var(--c-secondary); --bs-btn-active-border-color: var(--c-secondary); --bs-btn-disabled-bg: var(--c-primary); --bs-btn-disabled-border-color: var(--c-primary); }
.btn-outline-primary { --bs-btn-color: var(--c-primary); --bs-btn-border-color: var(--c-primary); --bs-btn-hover-bg: var(--c-primary); --bs-btn-hover-border-color: var(--c-primary); --bs-btn-active-bg: var(--c-primary); --bs-btn-active-border-color: var(--c-primary); }
.btn-warning { --bs-btn-bg: var(--c-accent); --bs-btn-border-color: var(--c-accent); --bs-btn-color: #212529; --bs-btn-hover-bg: var(--c-accent); --bs-btn-hover-border-color: var(--c-accent); --bs-btn-hover-color: #000; }
.btn-warning:hover { filter: brightness(.92); }
.page-item.active .page-link { background: var(--c-primary); border-color: var(--c-primary); }
.page-link { color: var(--c-primary); }

.site-footer { background: var(--c-footer-bg); color: var(--c-footer-text); }
.site-footer a, .site-footer .btn-link { color: var(--c-footer-text); text-decoration: none; }
.site-footer a:hover, .site-footer .btn-link:hover { color: var(--c-footer-heading); text-decoration: underline; }
.footer-title { color: var(--c-footer-heading); text-transform: uppercase; font-size: .85rem; letter-spacing: .05em; margin-bottom: .5rem; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.15); }



/* ── Blog: articolo, pagina autore, card ─────────────────────────────────────
   Tutto con le variabili del sito (colori, font, raggi): si adatta da solo a ogni tema. */
.author-avatar { display: inline-block; flex: none; width: var(--av, 48px); height: var(--av, 48px); border-radius: 50%; object-fit: cover; border: 2px solid var(--c-surface); box-shadow: 0 0 0 1px var(--c-border); background: var(--c-bg); }
.author-avatar-initials { display: inline-flex; align-items: center; justify-content: center; background: var(--c-primary); color: #fff; font-weight: 600; font-size: calc(var(--av, 48px) * .38); line-height: 1; font-family: var(--font-heading); letter-spacing: .02em; }

.art-header, .art-body, .art-faq, .art-share, .art-author { max-width: 46rem; margin-left: auto; margin-right: auto; }
.art-header { margin-top: .25rem; margin-bottom: 1.5rem; }
.art-title { font-size: clamp(1.9rem, 4.2vw, 2.85rem); line-height: 1.15; letter-spacing: -.01em; color: var(--c-text); margin-bottom: .75rem; text-wrap: balance; }
.art-deck { font-size: clamp(1.1rem, 2vw, 1.3rem); line-height: 1.5; color: var(--c-muted); margin-bottom: 1.25rem; }
.art-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; padding: .85rem 0; border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); }
.art-byline { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--c-text); }
.art-byline:hover strong { color: var(--c-link-hover); text-decoration: underline; }
.art-byline-text { display: flex; flex-direction: column; line-height: 1.25; }
.art-byline-text small { color: var(--c-muted); }
.art-facts { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .6rem; font-size: .92rem; color: var(--c-muted); }
.art-facts li + li::before { content: "·"; margin-right: .6rem; }

.art-cover { margin: 0 auto 2rem; max-width: 62rem; }
.art-cover img { display: block; width: 100%; height: auto; max-height: 34rem; object-fit: cover; border-radius: var(--radius); }

.art-body { font-size: 1.125rem; line-height: 1.75; overflow-wrap: break-word; }
.art-body > :first-child { margin-top: 0; }
.art-body p, .art-body ul, .art-body ol, .art-body figure, .art-body table, .art-body pre { margin-bottom: 1.2rem; }
.art-body h2 { margin-top: 2.4rem; margin-bottom: .75rem; font-size: 1.65rem; line-height: 1.25; color: var(--c-text); }
.art-body h3 { margin-top: 1.9rem; margin-bottom: .6rem; font-size: 1.3rem; line-height: 1.3; color: var(--c-text); }
.art-body h4 { margin-top: 1.5rem; font-size: 1.1rem; }
.art-body a { text-underline-offset: .18em; }
.art-body blockquote { margin: 1.8rem 0; padding: .25rem 0 .25rem 1.25rem; border-left: 4px solid var(--c-accent); font-family: var(--font-heading); font-size: 1.25rem; line-height: 1.55; color: var(--c-muted); }
.art-body blockquote p:last-child { margin-bottom: 0; }
.art-body img { max-width: 100%; height: auto; border-radius: var(--radius); }
.art-body figcaption { margin-top: .4rem; font-size: .875rem; color: var(--c-muted); text-align: center; }
.art-body hr { margin: 2.2rem auto; width: 4rem; border-top: 3px solid var(--c-accent); opacity: 1; }
.art-body code { font-size: .9em; background: var(--c-bg); padding: .1em .35em; border-radius: .25rem; }
.art-body pre { background: var(--c-bg); border: 1px solid var(--c-border); border-radius: var(--radius); padding: 1rem; overflow-x: auto; }
.art-body pre code { background: none; padding: 0; }
.art-body table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: 1rem; }
.art-body th, .art-body td { padding: .5rem .75rem; border: 1px solid var(--c-border); }
.art-body th { background: var(--c-bg); }

.art-faq { margin-top: 2.25rem; }
.art-share { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: 2.25rem; padding-top: 1.1rem; border-top: 1px solid var(--c-border); }
.art-share-label { margin-right: .35rem; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.art-author { display: flex; gap: 1.25rem; align-items: flex-start; margin-top: 2rem; padding: 1.25rem; background: var(--c-bg); border: 1px solid var(--c-border); border-radius: var(--radius); }
.art-author-kicker { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.art-author-body { min-width: 0; }
@media (max-width: 575.98px) { .art-author { flex-direction: column; } .art-body { font-size: 1.06rem; } }

.art-card, .author-card { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); transition: box-shadow .2s ease; }
.art-card:hover, .author-card:hover { box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12); }
.art-card-imglink { display: block; overflow: hidden; border-radius: var(--radius) var(--radius) 0 0; }
.art-card .art-card-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; background: var(--c-bg); transition: transform .35s ease; }
.art-card:hover .art-card-img { transform: scale(1.05); }
.art-card-meta { margin-bottom: .35rem; font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; color: var(--c-muted); }
.art-card-title { font-family: var(--font-heading); line-height: 1.3; }

.author-head { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2rem; }
.author-head-body { flex: 1 1 18rem; min-width: 0; }
.author-role { margin-bottom: .75rem; font-weight: 600; color: var(--c-primary); }
.author-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .85rem; padding: 0; }
.author-bio { max-width: 46rem; margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid var(--c-border); font-size: 1.05rem; line-height: 1.7; }
@media (max-width: 575.98px) { .author-head { flex-direction: column; align-items: flex-start; } }
@media (prefers-reduced-motion: reduce) { .art-card, .art-card .art-card-img, .author-card { transition: none; } .art-card:hover .art-card-img { transform: none; } }
