:root {
    --blio-yellow: #ffd400;
    --blio-yellow-dark: #e6bf00;
    --blio-black: #1a1a1a;
}
body { color: #222; background: #fafafa; }
.site-header { background: var(--blio-yellow); border-bottom: 3px solid var(--blio-black); }
.site-header .nav-link { color: var(--blio-black); font-weight: 500; }
.brand { font-weight: 800; font-size: 1.7rem; letter-spacing: -1px; color: var(--blio-black); }
.brand-mark {
    display: inline-block; background: var(--blio-black); color: var(--blio-yellow);
    border-radius: 6px; padding: 0 .35rem; margin-right: .1rem;
}
.hero { background: linear-gradient(180deg, var(--blio-yellow) 0%, #ffe45c 100%); }
.btn-warning { background: var(--blio-yellow); border-color: var(--blio-yellow-dark); color: #000; }
.btn-warning:hover { background: var(--blio-yellow-dark); border-color: var(--blio-yellow-dark); color: #000; }
.site-footer { background: var(--blio-black); color: #ddd; }

/* ---- Frontend pubblico ---- */
.site-header { border-bottom: 0; }
.header-search .form-control { border-color: var(--blio-black); }
.main-nav { background: var(--blio-black); }
.main-nav .nav-link { color: #fff; font-weight: 500; padding: .65rem 1rem; }
.main-nav .nav-link:hover { color: var(--blio-yellow); }
.main-nav .nav-link.active { color: var(--blio-black); background: var(--blio-yellow); }
.main-nav .navbar-toggler { color: #fff; border-color: #777; }
.main-nav .navbar-toggler-icon { filter: invert(1); }
.brand-light { color: #fff; }
.site-footer a { color: #ddd; text-decoration: none; } .site-footer a:hover { color: var(--blio-yellow); }

.section-title { border-left: 5px solid var(--blio-yellow); padding-left: .6rem; margin-bottom: 1rem; }
.hero-search { max-width: 900px; }

.cat-tile { display: flex; align-items: center; gap: .6rem; background: #fff; border: 1px solid #e3e3e3; border-radius: .5rem;
    padding: .8rem 1rem; color: var(--blio-black); text-decoration: none; height: 100%; transition: all .15s; }
.cat-tile i { font-size: 1.5rem; color: var(--blio-black); background: var(--blio-yellow); border-radius: 50%; width: 2.4rem; height: 2.4rem;
    display: inline-flex; align-items: center; justify-content: center; flex: none; }
.cat-tile span { flex: 1; font-weight: 600; line-height: 1.15; }
.cat-tile:hover { border-color: var(--blio-yellow-dark); box-shadow: 0 2px 8px rgba(0,0,0,.12); transform: translateY(-1px); }

.prov-list { display: flex; flex-wrap: wrap; gap: .25rem .9rem; }
.prov-list a { color: #1a4f9c; text-decoration: none; font-size: .95rem; } .prov-list a:hover { text-decoration: underline; }

.result-card { border-color: #e3e3e3; overflow: hidden; }
.result-card.featured { border-left: 4px solid var(--blio-yellow-dark); }
.result-card h3 a, .result-card h2 a { color: #1a4f9c; text-decoration: none; } .result-card h3 a:hover, .result-card h2 a:hover { text-decoration: underline; }
.result-img { width: 100%; height: 100%; min-height: 120px; max-height: 190px; object-fit: cover; background: #f1f1f1; }
.badge-gold { background: var(--blio-yellow); color: #000; }
.mini-card img { height: 130px; object-fit: cover; background: #f1f1f1; }
.mini-card a { color: var(--blio-black); text-decoration: none; }

.results-map, .map-frame { width: 100%; height: 340px; border: 0; border-radius: .5rem; background: #eee; }
.map-frame { height: 260px; border-radius: .5rem .5rem 0 0; }
.gallery-thumb { aspect-ratio: 4/3; object-fit: cover; width: 100%; cursor: pointer; }
.gallery-main img { max-height: 420px; object-fit: cover; }
.stars { color: #f5a623; letter-spacing: 1px; }
.promo-box { background: #fff8d6; border: 1px dashed var(--blio-yellow-dark); border-radius: .5rem; padding: 1rem; }
.contact-card { border: 2px solid var(--blio-yellow); }
.cta { background: var(--blio-yellow); }
.calendar td { padding: .25rem 0; font-size: .85rem; } .calendar td.has-ev a { display: inline-block; width: 1.8rem; height: 1.8rem; line-height: 1.8rem;
    border-radius: 50%; background: var(--blio-yellow); color: #000; font-weight: 700; text-decoration: none; }
.calendar td.sel a { background: var(--blio-black); color: var(--blio-yellow); }
.cms-content img { max-width: 100%; height: auto; }
.pagination .page-link { color: var(--blio-black); } .pagination .active .page-link { background: var(--blio-yellow); border-color: var(--blio-yellow-dark); color: #000; }
.list-group-item.active { background: var(--blio-yellow); border-color: var(--blio-yellow-dark); color: #000; }

/* ---- Immagini: dimensione naturale, centrate, mai allargate ---- */
.img-frame { display: flex; align-items: center; justify-content: center; background: #f6f6f6; overflow: hidden; }
.result-card .img-frame { padding: .5rem; min-height: 120px; }
.result-img { width: auto; height: auto; max-width: 100%; max-height: 180px; min-height: 0; object-fit: contain; background: transparent; }
.mini-img { height: 140px; padding: .5rem; }
.mini-card .card-img-top { width: auto; height: auto; max-width: 100%; max-height: 124px; object-fit: contain; background: transparent; }
.gallery-main { padding: .75rem; }
.gallery-main-img { width: auto; height: auto; max-width: 100%; max-height: 420px; object-fit: contain; }
.gallery-thumb { width: auto; height: auto; max-width: 100%; max-height: 100px; aspect-ratio: auto; object-fit: contain; }
.gallery .img-frame[data-bs-toggle] { padding: .35rem; min-height: 80px; }
.modal-photo { width: auto; height: auto; max-width: 100%; max-height: 80vh; margin: 1rem auto; }
.img-fluid.d-block { height: auto; }

/* ---- Pagina Pubblica: tabelle dei piani (HTML del vecchio sito) ---- */
.advertise-level table { max-width: 100%; }
.advertise-level .advertiseTable { width: 100%; border: 1px solid #ddd; border-radius: .5rem; background: #fff; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.advertise-level .advertiseTable th.type { background: var(--blio-black); color: var(--blio-yellow); padding: .8rem 1.1rem; font-size: 1.3rem; text-align: left; width: 62%; }
.advertise-level .advertiseTable td.prize { background: var(--blio-yellow); color: #000; font-weight: 700; font-size: 1.2rem; text-align: right; padding: .8rem 1.1rem; }
.advertise-level .advertiseTable td.advertiseTableContent2 { vertical-align: top; padding: 1.1rem; border-right: 1px solid #eee; }
.advertise-level .advertiseTable td.advertiseTableContent2 ul { padding-left: 1.2rem; }
.advertise-level .advertiseTable td.advertiseTableContent2 li { margin-bottom: .45rem; }
.advertise-level .advertiseTable td.advertiseScreen { vertical-align: top; padding: 1rem; background: #f8f8f8; text-align: center; }
.advertise-level .advertiseScreenDesc { width: 100%; margin-bottom: .6rem; }
.advertise-level .advertiseScreenDesc th { font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; color: #666; text-align: center; }
.advertise-level .advertiseAlert { display: block; font-size: .75rem; color: #777; margin-top: .4rem; }
.advertise-level img { max-width: 100%; height: auto; }
@media (max-width: 767px) {
    .advertise-level .advertiseTable, .advertise-level .advertiseTable > tbody, .advertise-level .advertiseTable > tbody > tr,
    .advertise-level .advertiseTable > tbody > tr > th, .advertise-level .advertiseTable > tbody > tr > td { display: block; width: 100% !important; }
    .advertise-level .advertiseTable td.prize { text-align: left; }
    .advertise-level .advertiseTable td.advertiseTableContent2 { border-right: 0; }
}
.comuni-list { max-height: 320px; overflow-y: auto; }

/* ---- Area riservata ---- */
.account-nav .nav-link { color: var(--blio-black); background: #fff; border: 1px solid #e3e3e3; margin: 0 .35rem .35rem 0; }
.account-nav .nav-link.active { background: var(--blio-yellow); border-color: var(--blio-yellow-dark); color: #000; font-weight: 600; }

/* ---- Banner ---- */
.banner-slot { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin: 1rem 0; }
.banner-sidebar { flex-direction: column; align-items: center; }
.banner-item { max-width: 100%; }
.banner-item img { max-width: 100%; height: auto; display: block; }
.banner-text { display: block; background: #fff8d6; border: 1px solid var(--blio-yellow-dark); border-radius: .4rem; padding: .6rem .8rem; color: var(--blio-black); text-decoration: none; max-width: 320px; }
.banner-text strong, .banner-text span, .banner-text small { display: block; }
.banner-text small { color: #1a4f9c; }

.banner-debug { border: 2px dashed #c0392b; background: #fff3f1; color: #7b241c; padding: .6rem .8rem; font-size: .85rem; margin: .5rem 0; text-align: left; }
