/* Available.Cms — stile base delle viste pubbliche predefinite. Facoltativo: un sito con la
   propria grafica sostituisce le viste e non include questo file. */
.cms-page, .cms-news, .cms-article { max-width: 1100px; margin: 0 auto; padding: 0 20px 64px; }
.cms-page-head { padding: 48px 0 28px; }
.cms-page-head[style] { background: linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,.45)), var(--cms-hero) center/cover; color: #fff; padding: 72px 32px 48px; border-radius: 0 0 18px 18px; margin: 0 -20px 32px; }
.cms-page-head[style] a { color: #fff; }
.cms-page-head h1 { font-size: clamp(30px, 4vw, 48px); line-height: 1.1; margin: 10px 0 12px; }
.cms-page-subtitle { font-size: 1.15rem; opacity: .85; max-width: 60ch; }
.cms-breadcrumb { display: flex; gap: 8px; flex-wrap: wrap; font-size: 14px; opacity: .8; }
.cms-breadcrumb a { color: inherit; }
.cms-page-layout { display: flex; gap: 40px; align-items: flex-start; }
.cms-content { flex: 1; min-width: 0; line-height: 1.75; }
.cms-page:not(.cms-page-wide) .cms-content { max-width: 760px; }
.cms-content img { max-width: 100%; height: auto; }
.cms-sidenav { flex: 0 0 240px; border: 1px solid #e3e5ec; border-radius: 12px; padding: 18px; }
.cms-sidenav-title { font-weight: 700; text-decoration: none; color: inherit; }
.cms-sidenav ul { list-style: none; padding: 0; margin: 12px 0 0; }
.cms-sidenav li a { display: block; padding: 6px 0; text-decoration: none; color: inherit; opacity: .75; }
.cms-sidenav li.active a { opacity: 1; font-weight: 600; }
.cms-children, .cms-news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; margin-top: 40px; }
.cms-child-card, .cms-news-card { display: block; border: 1px solid #e3e5ec; border-radius: 14px; padding: 20px; text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s; }
.cms-child-card:hover, .cms-news-card:hover { transform: translateY(-3px); box-shadow: 0 12px 30px -18px rgba(0,0,0,.35); }
.cms-child-card img, .cms-news-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 10px; margin-bottom: 14px; }
.cms-child-card h2, .cms-news-card h2 { font-size: 1.2rem; margin: 8px 0; }
.cms-news-card time, .cms-article time { font-size: 14px; opacity: .7; }
.cms-article-image { width: 100%; border-radius: 14px; margin-bottom: 28px; }
.cms-related { margin-top: 48px; border-top: 1px solid #e3e5ec; padding-top: 20px; }
.cms-pager { display: flex; justify-content: center; gap: 20px; margin-top: 32px; }
.cms-preview-banner { background: #fff3d6; color: #7a5300; text-align: center; padding: 10px; font-weight: 600; }
.cms-menu, .cms-links { list-style: none; margin: 0; padding: 0; }
.cms-menu { display: flex; gap: 6px; flex-wrap: wrap; }
.cms-menu > li { position: relative; }
.cms-menu a { display: block; padding: 8px 12px; text-decoration: none; color: inherit; border-radius: 8px; }
.cms-menu li.active > a { font-weight: 600; }
.cms-submenu { display: none; position: absolute; left: 0; top: 100%; min-width: 220px; list-style: none; margin: 0; padding: 8px; background: #fff; border: 1px solid #e3e5ec; border-radius: 12px; box-shadow: 0 16px 40px -20px rgba(0,0,0,.35); z-index: 20; }
.cms-menu > li:hover > .cms-submenu, .cms-menu > li:focus-within > .cms-submenu { display: block; }
.cms-links a { text-decoration: none; color: inherit; line-height: 2; }
@media (max-width: 800px) { .cms-page-layout { flex-direction: column; } .cms-sidenav { flex: none; width: 100%; } }
