:root {
	--ink: #17242b;
	--muted: #64747b;
	--paper: #e9edf0;
	--surface: #ffffff;
	--accent: #2f5c83;
	--accent-dark: #17476f;
	--line: #dfe5e1;
	--sidebar-width: 12.5rem;
	--content-width: 56.25rem;
	font-family: "Segoe UI", Arial, sans-serif;
	color: var(--ink);
	background: var(--paper);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); line-height: 1.6; }
a { color: var(--accent-dark); }
.skip-link { position: absolute; left: -9999px; padding: .75rem 1rem; background: var(--ink); color: #fff; z-index: 10; }
.skip-link:focus { left: 1rem; top: 1rem; }
.site-shell { width: min(100% - 2rem, var(--content-width)); margin: 1rem auto 0; background: var(--surface); }
.layout-row { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); align-items: start; }
.sidebar { min-width: 0; padding: .75rem; background: #f3f5f5; border-right: 1px solid var(--line); }
.sidebar__navigation .moduletable { margin-bottom: 1.25rem; }
.sidebar__navigation h3 { color: var(--accent-dark); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.sidebar__navigation ul { margin: 0; padding: 0; list-style: none; }
.sidebar__navigation li { border-bottom: 1px solid var(--line); }
.sidebar__navigation li a { display: flex; padding: .5rem .4rem; color: var(--accent-dark) !important; font-size: .85rem; text-decoration: none; }
.sidebar__navigation li a:hover, .sidebar__navigation li.current > a { color: var(--accent) !important; background: #e1e9ee; }
.atlas-menu__link { display: flex !important; align-items: center; justify-content: space-between; gap: .75rem; }
.atlas-menu--level-2 { margin: 0 0 .5rem 1rem !important; border-left: 1px solid rgba(255,255,255,.16); padding-left: .85rem !important; }
.atlas-menu__chevron { color: #f3a17d; font-size: 1.2rem; line-height: 1; }
.sidebar__navigation img { display: block; width: 100%; height: auto; margin: .75rem 0; }
.hero { position: relative; min-height: 15.4rem; padding: 2rem 2.25rem; color: #fff; background-color: #52666a; background-image: var(--hero-image); background-position: center; background-size: cover; }
.hero h1 { max-width: 38rem; margin: 3.5rem 0 0; font-size: clamp(1.8rem, 4vw, 3.2rem); line-height: 1.05; }
.main-content { min-height: 28rem; padding: 1.75rem 2rem 3rem; }
.container { width: min(100%, var(--content-width)); margin: 0 auto; }
.main-content .moduletable { margin-bottom: 2rem; }
.main-content h1, .main-content h2, .main-content h3 { line-height: 1.2; }
.main-content h1 { font-size: clamp(2rem, 4vw, 3.25rem); }
.main-content h2 { margin-top: 2rem; }
.main-content img { max-width: 100%; height: auto; }
.phoca-gallery { padding: .5rem 0; }
.phoca-gallery__header { max-width: 48rem; margin-bottom: 2rem; }
.phoca-gallery__header h1 { margin: .25rem 0 .75rem; }
.phoca-gallery__description { color: var(--muted); }
.phoca-gallery__card { transition: transform .2s ease; }
.phoca-gallery__card:hover { transform: translateY(-.25rem); }
.phoca-gallery__link { display: block; color: var(--ink); text-decoration: none; }
.phoca-gallery__link img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.phoca-gallery__title { font-weight: 700; }
.phoca-gallery__back-link { min-height: 12rem; color: var(--accent-dark); }
.phoca-gallery__back-arrow { font-size: 3rem; line-height: 1; }
.phoca-gallery__link { overflow: hidden; }
.phoca-gallery__link img { transition: transform .25s ease; }
.phoca-gallery__link:hover img { transform: scale(1.04); }
.phoca-category-card__link { color: var(--ink); }
.phoca-category-card__image { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.phoca-category-card { transition: transform .2s ease, box-shadow .2s ease; }
.phoca-category-card:hover { transform: translateY(-.25rem); box-shadow: 0 1rem 2rem rgba(23,36,43,.12) !important; }
.partecipazioni-slider { display: grid; width: min(100%, 34.375rem); overflow: hidden; border: 1px solid var(--line); border-radius: .35rem; background: var(--surface); }
.partecipazione_box { grid-area: 1 / 1; visibility: hidden; margin: 0; opacity: 0; transition: opacity .45s ease, visibility 0s linear .45s; }
.partecipazione_box.is-active { visibility: visible; opacity: 1; transition-delay: 0s; }
.partecipazione_box img { display: block; width: 100%; max-width: 34.375rem; height: auto; object-fit: cover; }
.partecipazione_box__button { display: inline-block; margin-top: .75rem; padding: .7rem 1.2rem; border-radius: .25rem; background: var(--accent); color: #fff; text-decoration: none; }
.partecipazione_box__button:hover { background: var(--accent-dark); color: #fff; }
.site-footer { padding: 1rem 1.5rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; text-align: center; }
.site-footer__copyright { margin: .75rem 0 0; }
.button { display: inline-block; padding: .7rem 1.2rem; border-radius: .25rem; background: var(--accent); color: #fff; text-decoration: none; }
.error-page { max-width: 45rem; margin: 15vh auto; padding: 2rem; text-align: center; }
.eyebrow { color: var(--accent-dark); font-size: .8rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.menu-toggle { display: none; margin-bottom: .75rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 48rem) {
	.site-shell { width: 100%; margin-top: 0; }
	.layout-row { display: block; }
	.sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
	.menu-toggle { display: inline-flex; align-items: center; gap: .5rem; }
	.sidebar__navigation { padding-top: .25rem; }
	.hero { min-height: 13rem; padding: 1.5rem 1.25rem; }
	.hero h1 { margin-top: 2.5rem; }
	.main-content { padding: 1.5rem 1.25rem 2.5rem; }
}
