:root {
  --navy: #083d54;
  --navy-deep: #062f41;
  --coral: #e5573f;
  --yellow: #f5b942;
  --aqua: #3ba7a0;
  --cream: #fbf3e2;
  --paper: #fffaf0;
  --ink: #15323c;
  --white: #fffdf8;
  --line: rgba(8, 61, 84, .18);
  --serif: "Fraunces", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; background: var(--yellow); padding: .8rem 1rem; border-radius: 100px; }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { min-height: 164px; width: 100%; position: absolute; inset: 0 0 auto; z-index: 20; display: grid; grid-template-rows: 108px 56px; align-items: center; padding: 0 clamp(1.2rem, 4vw, 4.5rem); color: var(--navy); }
.brand { display: inline-flex; align-items: center; }
.official-logo { display: block; width: clamp(360px, 35vw, 500px); height: auto; }
.main-nav { align-self: stretch; border-top: 1px solid rgba(8,61,84,.14); font-size: .67rem; font-weight: 700; text-transform: uppercase; letter-spacing: .035em; }
.menu-level { list-style: none; padding: 0; margin: 0; }
.main-nav > .menu-level { height: 100%; display: flex; align-items: stretch; justify-content: space-between; gap: clamp(.35rem, 1vw, 1.1rem); }
.menu-level > li { position: relative; }
.main-nav > .menu-level > li { display: flex; align-items: center; }
.menu-level a, .menu-level button { font: inherit; color: inherit; border: 0; background: none; white-space: nowrap; cursor: pointer; }
.main-nav > .menu-level > li > a, .main-nav > .menu-level > li > button { height: 100%; display: flex; align-items: center; gap: .35rem; padding: 0 .15rem; position: relative; }
.main-nav > .menu-level > li > a::after, .main-nav > .menu-level > li > button::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 3px; background: var(--coral); transition: right .2s; }
.main-nav > .menu-level > li:hover > :is(a,button)::after, .main-nav > .menu-level > li:focus-within > :is(a,button)::after { right: 0; }
.submenu { position: absolute; z-index: 30; left: -.9rem; top: calc(100% - 1px); min-width: 230px; padding: .65rem; border-radius: 0 0 12px 12px; background: var(--white); box-shadow: 0 18px 42px rgba(6,47,65,.18); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s; }
.has-submenu:hover > .submenu, .has-submenu:focus-within > .submenu, .has-submenu > button[aria-expanded="true"] + .submenu { opacity: 1; visibility: visible; transform: none; }
.submenu .menu-level { display: grid; gap: .15rem; }
.submenu a, .submenu button { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: .72rem .75rem; border-radius: 7px; text-align: left; text-transform: none; letter-spacing: 0; font-size: .76rem; }
.submenu a:hover, .submenu button:hover { color: var(--coral); background: var(--cream); }
.submenu .has-submenu > .submenu { top: -.65rem; left: calc(100% + .65rem); border-radius: 12px; }
.has-mega { position: static !important; }
.has-mega > .submenu { left: 50%; width: min(1180px, calc(100vw - 3rem)); transform: translate(-50%, 8px); padding: 1.1rem; border-radius: 0 0 16px 16px; }
.has-mega:hover > .submenu, .has-mega:focus-within > .submenu, .has-mega > button[aria-expanded="true"] + .submenu { transform: translate(-50%, 0); }
.has-mega > .submenu > .menu-level { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.has-mega > .submenu > .menu-level > li > button { color: var(--coral); cursor: default; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.has-mega > .submenu .submenu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: .2rem 0 0; background: transparent; }
.menu-toggle { display: none; }

.hero { min-height: 760px; height: 100vh; max-height: 960px; position: relative; background: #f9eac9; overflow: hidden; display: flex; align-items: center; }
.hero-art { position: absolute; inset: 0; background-image: linear-gradient(90deg, rgba(255,249,232,.1) 0%, rgba(255,249,232,0) 38%), url("assets/hero-pattinaggio.png"); background-size: cover; background-position: center; }
.hero-content { width: min(560px, 45vw); margin-left: clamp(1.5rem, 8vw, 9rem); position: relative; z-index: 2; padding-top: 2rem; }
.eyebrow, .kicker { text-transform: uppercase; letter-spacing: .15em; font-size: .73rem; font-weight: 700; }
.eyebrow { display: flex; align-items: center; gap: .7rem; color: var(--coral); }
.eyebrow span { width: 28px; height: 2px; background: currentColor; }
h1, h2 { font-family: var(--serif); letter-spacing: -.045em; line-height: .94; margin: 0; font-weight: 700; }
h1 { color: var(--navy); font-size: clamp(5.2rem, 8.3vw, 9.6rem); }
h1 em, h2 em { color: var(--coral); font-weight: 600; }
.hero-lead { max-width: 480px; font-size: clamp(1.05rem, 1.5vw, 1.32rem); line-height: 1.55; margin: 2rem 0 2.4rem; }
.hero-actions, .join-actions { display: flex; gap: 1.7rem; align-items: center; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1.6rem; min-height: 54px; padding: .8rem 1.4rem; border-radius: 999px; font-weight: 700; font-size: .9rem; transition: transform .25s, box-shadow .25s, background .25s; }
.button:hover { transform: translateY(-3px); }
.button-primary { color: white; background: var(--coral); box-shadow: 0 10px 30px rgba(229,87,63,.25); }
.button-outline { border: 1.5px solid var(--navy); color: var(--navy); }
.button-outline:hover { background: var(--navy); color: white; }
.text-link { font-weight: 700; font-size: .88rem; color: var(--navy); border-bottom: 1px solid currentColor; padding-bottom: .22rem; }
.text-link span { margin-left: .5rem; }
.hero-note { position: absolute; color: var(--coral); opacity: .38; font-family: var(--serif); z-index: 1; }
.note-one { font-size: 4rem; left: 3%; top: 20%; transform: rotate(-12deg); }
.note-two { font-size: 3rem; left: 39%; bottom: 15%; transform: rotate(10deg); }
.scroll-hint { position: absolute; bottom: 2rem; left: 2.3rem; font-size: .65rem; text-transform: uppercase; letter-spacing: .2em; display: flex; flex-direction: column; align-items: center; gap: .5rem; transform: rotate(-90deg); transform-origin: left center; }
.scroll-hint span { width: 34px; height: 1px; background: var(--navy); }

.section { padding: clamp(5.5rem, 10vw, 10rem) clamp(1.5rem, 8vw, 9rem); }
.section-label { font-size: .69rem; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: var(--aqua); }
.intro { display: grid; grid-template-columns: .48fr 1.25fr .8fr; gap: clamp(2rem, 5vw, 6rem); align-items: center; background: var(--paper); }
.intro .section-label { align-self: start; }
.intro h2, .impact h2, .mariele h2, .albo h2, .join h2 { font-size: clamp(3rem, 5.3vw, 6.2rem); }
.intro-copy > p:not(.kicker) { max-width: 660px; line-height: 1.75; color: #486069; }
.intro-copy .text-link { display: inline-block; margin-top: 1rem; }
.dark { color: var(--ink); }
.manifesto { min-height: 430px; position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.manifesto svg { width: min(260px, 80%); filter: drop-shadow(0 22px 28px rgba(8,61,84,.14)); animation: float 5s ease-in-out infinite; }
.manifesto p { font-family: var(--serif); font-size: 1.18rem; line-height: 1.5; transform: rotate(-3deg); }
.manifesto p strong { color: var(--coral); }
.manifesto-orbit { position: absolute; border: 1px solid var(--line); border-radius: 50%; }
.orbit-one { width: 350px; height: 350px; }
.orbit-two { width: 420px; height: 230px; transform: rotate(28deg); }
@keyframes float { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-12px) rotate(-2deg); } }

.real-moments { background: var(--cream); padding-top: clamp(4.5rem, 8vw, 8rem); }
.moments-heading { display: grid; grid-template-columns: .48fr 1.25fr .8fr; gap: clamp(2rem, 5vw, 6rem); align-items: end; margin-bottom: 3rem; }
.moments-heading h2 { font-size: clamp(3rem, 5.3vw, 6.2rem); }
.moments-heading .text-link { justify-self: end; margin-bottom: .6rem; }
.moments-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 1rem; }
.moment-card { margin: 0; height: clamp(360px, 42vw, 620px); position: relative; overflow: hidden; border-radius: 12px; background: #dccdb2; }
.moment-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.moment-card:hover img { transform: scale(1.035); }
.moment-card figcaption { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; padding: .8rem 1rem; border-radius: 8px; background: rgba(6,47,65,.82); color: white; font-size: .73rem; font-weight: 600; }

.impact { background: var(--navy); color: white; position: relative; overflow: hidden; }
.impact::before { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; border: 1px solid rgba(255,255,255,.08); top: -260px; right: -120px; box-shadow: 0 0 0 75px rgba(255,255,255,.025), 0 0 0 150px rgba(255,255,255,.02); }
.impact-top { display: grid; grid-template-columns: .48fr 1.2fr .8fr; gap: clamp(2rem, 5vw, 6rem); align-items: end; position: relative; z-index: 1; }
.section-label.light { color: #8ed7d1; align-self: start; }
.impact .kicker { color: var(--yellow); }
.impact h2 em { color: var(--yellow); }
.impact-copy { color: rgba(255,255,255,.72); line-height: 1.75; margin: 0; }
.numbers { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(4rem, 8vw, 8rem); border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.number-card { padding: 3.2rem clamp(1rem, 3vw, 3.4rem); border-right: 1px solid rgba(255,255,255,.18); }
.number-card:last-child { border-right: 0; }
.number, .plus { font-family: var(--serif); font-size: clamp(3.2rem, 6vw, 7rem); color: var(--yellow); letter-spacing: -.06em; }
.plus { font-size: clamp(1.4rem, 2.5vw, 2.5rem); }
.number-card p { margin: .5rem 0 0; color: rgba(255,255,255,.62); }
.projects { margin-top: 4rem; display: grid; grid-template-columns: .48fr 2fr; gap: clamp(2rem, 5vw, 6rem); }
.project-tag { font-size: .7rem; text-transform: uppercase; letter-spacing: .17em; color: #8ed7d1; }
.project-list > div { display: grid; grid-template-columns: 50px .8fr 1fr; gap: 1.5rem; align-items: baseline; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.15); }
.project-list span { color: var(--yellow); }
.project-list b { font-family: var(--serif); font-size: 1.35rem; }
.project-list small { color: rgba(255,255,255,.58); line-height: 1.5; }

.mariele { display: grid; grid-template-columns: .9fr 1.1fr; align-items: stretch; gap: clamp(3rem, 8vw, 8rem); background: var(--cream); }
.mariele-card { background: var(--coral); color: white; padding: clamp(2.5rem, 5vw, 5rem); min-height: 510px; border-radius: 50% 50% 12px 12px / 32% 32% 12px 12px; display: flex; flex-direction: column; justify-content: center; position: relative; box-shadow: 25px 28px 0 var(--yellow); transform: rotate(-1.8deg); }
.quote-mark { position: absolute; top: 1rem; left: 2.5rem; font-family: var(--serif); font-size: 9rem; color: rgba(255,255,255,.17); }
.mariele-card blockquote { font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 3.1rem); line-height: 1.2; margin: 0; }
.mariele-card p { text-transform: uppercase; letter-spacing: .16em; font-size: .67rem; margin-top: 2rem; }
.mariele-copy { align-self: center; }
.mariele-copy .section-label { margin-bottom: 3rem; }
.mariele-copy > p:not(.kicker) { max-width: 620px; color: #52676e; line-height: 1.75; margin: 2rem 0; }

.albo { background: var(--paper); }
.albo-heading { display: flex; justify-content: space-between; align-items: start; gap: 2rem; }
.albo-heading .section-label { padding-top: .7rem; }
.winner { margin-top: clamp(3rem, 7vw, 7rem); padding: 2.5rem 0; border-top: 2px solid var(--navy); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: .45fr 1.4fr .3fr; align-items: center; gap: 2rem; }
.winner-year { font-family: var(--serif); color: var(--coral); font-size: 3rem; line-height: .8; }
.winner-year small { font-family: var(--sans); font-size: .65rem; text-transform: uppercase; letter-spacing: .15em; color: var(--ink); }
.winner-name span { display: block; font-size: .67rem; text-transform: uppercase; letter-spacing: .17em; color: var(--aqua); }
.winner-name strong { display: block; font-family: var(--serif); font-size: clamp(2rem, 4vw, 4.5rem); margin-top: .35rem; }
.winner-medal { justify-self: end; background: var(--yellow); color: var(--navy); width: 76px; height: 76px; display: grid; place-items: center; border-radius: 50%; font-size: 2rem; box-shadow: 8px 8px 0 var(--coral); }
.edition-strip { display: flex; align-items: center; justify-content: space-between; margin-top: 2.5rem; color: #73848a; font-size: .7rem; letter-spacing: .12em; }
.edition-strip i { height: 1px; background: var(--line); flex: 1; margin: 0 1rem; }

.join { background: var(--aqua); color: var(--navy-deep); display: grid; grid-template-columns: 1.4fr .65fr; gap: 4rem; align-items: end; position: relative; overflow: hidden; }
.join::after { content: ""; position: absolute; width: 380px; height: 380px; border: 70px solid rgba(255,255,255,.09); border-radius: 50%; right: -150px; top: -150px; }
.join .kicker { color: white; }
.join h2 em { color: white; }
.join-copy > p:last-child { max-width: 600px; line-height: 1.7; }
.join .text-link { color: var(--navy); }
.join-sticker { position: absolute; right: 7%; top: 16%; width: 68px; height: 68px; background: var(--yellow); border-radius: 16px; display: grid; place-items: center; color: var(--coral); font-size: 1.6rem; transform: rotate(12deg); }

.site-footer { background: linear-gradient(rgba(6,47,65,.86), rgba(6,47,65,.86)), url("assets/background-cuori-originale.png") center / cover no-repeat; color: white; padding: 3.2rem clamp(1.5rem, 8vw, 9rem); display: grid; grid-template-columns: 1fr 1fr auto; gap: 2rem; align-items: center; }
.footer-brand-row { display: flex; align-items: center; gap: 1rem; }
.footer-brand { width: max-content; padding: .35rem .7rem; border-radius: 8px; background: rgba(255,255,255,.88); }
.footer-brand .official-logo { width: 230px; }
.site-footer > p { color: rgba(255,255,255,.6); font-size: .84rem; }
.footer-links { display: flex; gap: 1.3rem; font-size: .75rem; }
.footer-social { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50%; background: #1877f2; color: white; flex: none; transition: background .2s, transform .2s; box-shadow: 0 8px 18px rgba(24,119,242,.35); }
.footer-social:hover { background: #0e5fc7; transform: translateY(-2px); }
.footer-counter { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.footer-counter a { color: rgba(255,255,255,.55); font-size: .72rem; text-decoration: underline; }
.footer-counter a:hover { color: white; }
#histats_counter { min-height: 20px; }.site-footer small { grid-column: 1 / -1; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.4); }

/* Archivio storico e galleria */
.inner-header { position: relative; background: var(--cream); border-bottom: 1px solid var(--line); }
.main-nav [aria-current="page"] { color: var(--coral); }
.archive-hero, .gallery-hero { min-height: 520px; padding: clamp(5rem, 9vw, 8rem) clamp(1.5rem, 8vw, 9rem); display: flex; align-items: end; justify-content: space-between; gap: 3rem; background: linear-gradient(135deg, var(--navy), var(--navy-deep)); color: white; position: relative; overflow: hidden; }
.archive-hero::before, .gallery-hero::before { content: ""; position: absolute; inset: 0; background: url("assets/background-cuori-originale.png") center 38% / cover no-repeat; opacity: .18; pointer-events: none; }
.archive-hero::after, .gallery-hero::after { content: ""; position: absolute; width: 520px; height: 520px; border: 85px solid rgba(255,255,255,.045); border-radius: 50%; right: -180px; top: -250px; }
.gallery-hero { background: linear-gradient(135deg, var(--aqua), #6fc4bd); color: var(--navy-deep); }
.gallery-hero::after { border-color: rgba(255,255,255,.11); }
.archive-hero > div:first-child, .gallery-hero > div:first-child { position: relative; z-index: 1; }
.archive-hero h1, .gallery-hero h1 { font-size: clamp(4rem, 7vw, 7.8rem); }
.archive-hero h1 { color: white; }
.gallery-hero h1 { color: var(--navy-deep); }
.archive-hero h1 em { color: var(--yellow); }
.gallery-hero h1 em { color: white; }
.archive-hero > div > p:last-child, .gallery-hero > div > p:last-child { max-width: 670px; font-size: 1.1rem; line-height: 1.7; color: rgba(255,255,255,.7); }
.gallery-hero > div > p:last-child { color: rgba(6,47,65,.75); }
.archive-counter { flex: none; width: 210px; height: 210px; border-radius: 50%; background: var(--yellow); color: var(--navy); display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; z-index: 1; transform: rotate(5deg); box-shadow: 14px 14px 0 var(--coral); }
.archive-counter.coral { background: var(--coral); color: white; box-shadow: 14px 14px 0 var(--yellow); }
.archive-counter strong { font-family: var(--serif); font-size: 4rem; line-height: .85; }
.archive-counter span { margin-top: .8rem; text-align: center; text-transform: uppercase; letter-spacing: .13em; font-size: .63rem; }
.archive-browser, .gallery-browser { background: linear-gradient(rgba(255,250,240,.8), rgba(255,250,240,.8)), url("assets/background-cuori-originale.png") center top / min(1100px, 95vw) auto fixed repeat-y; }
.archive-toolbar { display: grid; grid-template-columns: minmax(270px, .85fr) 2fr; gap: 2rem; align-items: center; margin-bottom: 2rem; }
.archive-search { height: 58px; border: 1.5px solid var(--navy); border-radius: 100px; display: flex; align-items: center; padding: 0 1.3rem; background: white; }
.archive-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; color: var(--ink); }
.archive-search b { font-size: 1.6rem; font-weight: 400; }
.archive-filters { display: flex; justify-content: flex-end; gap: .6rem; flex-wrap: wrap; }
.archive-filters button { border: 1px solid var(--line); background: transparent; color: var(--navy); padding: .7rem 1rem; border-radius: 99px; font: 600 .76rem var(--sans); cursor: pointer; }
.archive-filters button:hover, .archive-filters button.active { background: var(--navy); color: white; border-color: var(--navy); }
.archive-status { color: #71848b; font-size: .8rem; margin-bottom: 2rem; }
.archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.archive-card { border: 1px solid var(--line); border-radius: 16px; padding: clamp(1.5rem, 3vw, 2.4rem); background: white; display: flex; flex-direction: column; align-items: start; min-height: 340px; transition: transform .25s, box-shadow .25s; }
.archive-card:hover { transform: translateY(-5px); box-shadow: 0 18px 45px rgba(8,61,84,.09); }
.archive-card-tag { color: var(--coral); font-size: .61rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.archive-card h2 { font-size: clamp(1.5rem, 2.3vw, 2.3rem); line-height: 1.05; margin: 1rem 0; }
.archive-card > p { color: #62767d; font-size: .88rem; line-height: 1.65; }
.archive-card > a { font-size: .73rem; font-weight: 700; color: var(--aqua); margin-top: auto; padding-top: 1.5rem; }
.archive-card details { width: 100%; margin-top: 1rem; border-top: 1px solid var(--line); }
.archive-card summary { padding: 1rem 0 0; cursor: pointer; list-style: none; display: flex; justify-content: space-between; font-size: .77rem; font-weight: 700; }
.archive-full-text { max-height: 430px; overflow: auto; padding-right: .5rem; margin-top: 1rem; }
.archive-full-text p { color: #52676e; font-size: .84rem; line-height: 1.65; }
.load-more { margin: 3rem auto 0; }
.cinema-section { padding-inline: clamp(1rem, 3vw, 3.5rem); }
.cinema-gallery { width: 100%; }
.cinema-stage { height: min(48vh, 520px); min-height: 320px; position: relative; overflow: hidden; border-radius: 24px; background: var(--navy-deep); box-shadow: 0 28px 70px rgba(6,47,65,.18); }
.cinema-backdrop { position: absolute; inset: -35px; background-position: center; background-size: cover; filter: blur(25px) brightness(.42) saturate(.82); opacity: .72; transform: scale(1.08); transition: background-image .35s; }
.cinema-main { position: absolute; z-index: 2; inset: 0 88px; display: block; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.cinema-main > img { width: 100%; height: 100%; display: block; object-fit: contain; filter: drop-shadow(0 18px 35px rgba(0,0,0,.32)); opacity: 1; transform: scale(1); transition: opacity .35s, transform .55s; }
.cinema-main > img.changing { opacity: .15; transform: scale(.985); }
.cinema-caption { position: absolute; left: 1.2rem; bottom: 1.2rem; max-width: min(620px, 75%); padding: .8rem 1rem; border-radius: 12px; background: rgba(6,47,65,.88); color: white; text-align: left; }
.cinema-caption strong { display: block; color: var(--yellow); font: 700 clamp(1.35rem, 2.3vw, 2.2rem)/1 var(--serif); letter-spacing: .02em; }
.cinema-arrow { position: absolute; z-index: 4; top: 50%; width: 56px; height: 56px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(6,47,65,.7); color: white; font-size: 1.6rem; cursor: pointer; transform: translateY(-50%); transition: .25s; }
.cinema-arrow:hover { background: var(--coral); border-color: var(--coral); transform: translateY(-50%) scale(1.08); }
.cinema-prev { left: 1.2rem; }
.cinema-next { right: 1.2rem; }
.cinema-progress { position: absolute; z-index: 5; left: 0; right: 0; bottom: 0; height: 5px; background: rgba(255,255,255,.15); }
.cinema-progress span { display: block; width: 0; height: 100%; background: var(--yellow); }
.cinema-progress span.running { animation: cinema-progress 5.2s linear forwards; }
@keyframes cinema-progress { to { width: 100%; } }
.cinema-footer { min-height: 92px; display: grid; grid-template-columns: 1fr 180px; gap: 1.2rem; align-items: center; color: #65777d; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cinema-footer > span:last-child { text-align: right; }
.cinema-rail { display: flex; justify-content: center; gap: .55rem; min-width: 0; overflow: hidden; }
.cinema-thumb { flex: 0 1 92px; height: 58px; padding: 0; border: 3px solid transparent; border-radius: 9px; overflow: hidden; background: #ddd; opacity: .55; cursor: pointer; transition: .25s; }
.cinema-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.cinema-thumb:hover, .cinema-thumb.active { opacity: 1; border-color: var(--coral); transform: translateY(-3px); }
.cinema-empty { min-height: 420px; display: grid; place-items: center; border: 1px dashed var(--line); border-radius: 24px; color: #65777d; }
.gallery-year-filter { justify-self: end; display: flex; align-items: center; gap: .8rem; color: var(--navy); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.gallery-browser .archive-toolbar { grid-template-columns: 1fr; justify-items: end; }
.gallery-year-filter select { min-width: 180px; padding: .8rem 2.5rem .8rem 1rem; border: 1px solid var(--navy); border-radius: 99px; background: white; color: var(--navy); font: 600 .85rem var(--sans); }
.photo-dialog { width: min(1100px, 94vw); max-height: 92vh; padding: 0; border: 0; border-radius: 14px; background: var(--navy-deep); color: white; overflow: hidden; }
.photo-dialog::backdrop { background: rgba(4,24,32,.86); }
.photo-dialog img { display: block; max-width: 100%; max-height: 82vh; margin: auto; }
.photo-dialog p { margin: .8rem 1rem; font-size: .75rem; }
.dialog-close { position: absolute; right: 1rem; top: 1rem; z-index: 2; width: 42px; height: 42px; border: 0; border-radius: 50%; background: white; color: var(--navy); font-size: 1.6rem; cursor: pointer; }

/* Pagine dei contenuti del Trofeo */
.page-hero { min-height: 430px; position: relative; overflow: hidden; isolation: isolate; padding: clamp(5rem, 8vw, 7rem) clamp(1.5rem, 8vw, 9rem); display: flex; flex-direction: column; justify-content: flex-end; background: var(--aqua); color: var(--navy-deep); }
.page-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: url("assets/background-cuori-originale.png") center 38% / cover no-repeat; opacity: .22; pointer-events: none; }
.page-hero > * { position: relative; z-index: 1; }
.page-hero h1 { max-width: 1100px; font-size: clamp(3.8rem, 7vw, 7.5rem); overflow-wrap: anywhere; }
.page-hero > p:last-child { max-width: 780px; margin: 1.4rem 0 0; font-size: 1.08rem; line-height: 1.65; }
.migrated-content { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(230px, .5fr); gap: clamp(2rem, 6vw, 7rem); align-items: start; background: linear-gradient(rgba(255,250,240,.8), rgba(255,250,240,.8)), url("assets/background-cuori-originale.png") center top / min(1050px, 94vw) auto fixed repeat-y; }
.migrated-copy { font-size: 1.02rem; line-height: 1.8; color: #465f68; }
.migrated-copy p { margin: 0 0 1.2rem; }
.migrated-aside { position: sticky; top: 2rem; display: grid; gap: 1.2rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: 14px; background: white; }
.migrated-gallery { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; min-width: 0; }
.migrated-gallery figure { margin: 0; aspect-ratio: 4/3; border-radius: 12px; overflow: hidden; background: var(--cream); }
.migrated-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.migrated-gallery figure:hover img { transform: scale(1.05); }
.cms-page .migrated-copy{grid-column:1/-1;max-width:980px;font-size:1.08rem;font-family:var(--cms-text-font,'DM Sans'),sans-serif}.cms-page .migrated-copy p{white-space:normal}.cms-page .migrated-copy h2,.cms-page .migrated-copy h3,.cms-page .page-hero h1{font-family:var(--cms-title-font,'Fraunces'),serif}.cms-page .migrated-copy h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.03;color:var(--navy);margin:2.3rem 0 .8rem}.cms-page .migrated-copy h3{font-size:clamp(1.3rem,2vw,1.75rem);color:#244a57;margin:1.5rem 0 .55rem}.cms-page .migrated-copy a{color:#1f8f88;font-weight:700}.cms-page .migrated-copy blockquote{margin:1.5rem 0;padding:1.1rem 1.25rem;border-left:7px solid var(--cms-accent,var(--coral));background:#fff8e8;border-radius:0 18px 18px 0;color:#55707a;font-size:1.1rem}.cms-builder-card{margin:1.2rem 0;padding:1.15rem 1.25rem;border:1px solid var(--line);border-left:7px solid var(--cms-accent,var(--coral));border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 14px 35px rgba(23,63,77,.08)}.cms-builder-button{display:inline-flex;align-items:center;justify-content:center;margin:.4rem 0 1rem;padding:.9rem 1.2rem;border-radius:999px;background:var(--cms-accent,var(--coral));color:#fff!important;text-decoration:none;font-weight:800;box-shadow:0 14px 28px rgba(239,114,91,.24)}.cms-builder-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin:2rem 0}.cms-builder-gallery figure{margin:0;overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 14px 35px rgba(23,63,77,.1)}.cms-builder-gallery img{width:100%;height:250px;object-fit:cover;display:block;transition:transform .25s}.cms-builder-gallery a:hover img{transform:scale(1.04)}.cms-builder-gallery figcaption{padding:.75rem .9rem;color:#60747c;font-size:.9rem}.cms-page-image{grid-template-columns:minmax(0,900px);justify-content:center}.cms-page-image:empty{display:none}.cms-page-image figure{min-height:0;aspect-ratio:16/9;border-radius:24px;box-shadow:18px 20px 0 var(--yellow)}.cms-page-image img{max-height:none;object-fit:contain;background:#fff}.cms-layout-editoriale .migrated-copy{max-width:780px}.cms-layout-galleria .migrated-copy,.cms-layout-speciale .migrated-copy{max-width:1120px}.cms-layout-galleria .cms-builder-gallery{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.cms-layout-galleria .cms-builder-gallery img{height:310px}.cms-layout-speciale .migrated-copy{padding:clamp(1.4rem,3vw,2.4rem);border-radius:32px;background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,248,232,.86));box-shadow:0 20px 50px rgba(23,63,77,.09)}

.reveal { opacity: 0; transform: translateY(25px); transition: opacity .75s ease, transform .75s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 900px) {
  .site-header { min-height: 104px; height: 104px; display: flex; padding: 0 1rem; }
  .official-logo { width: min(310px, 73vw); }
  .menu-toggle { display: flex; width: 46px; height: 46px; border: 1px solid var(--navy); background: rgba(255,255,255,.65); border-radius: 50%; flex-direction: column; justify-content: center; align-items: center; gap: 4px; z-index: 21; }
  .menu-toggle span:not(.sr-only) { width: 18px; height: 1.5px; background: var(--navy); transition: transform .25s, opacity .25s; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
  .main-nav { position: fixed; inset: 0; z-index: 20; display: block; padding: 7rem 1.4rem 2rem; overflow-y: auto; background: var(--cream); border: 0; font-family: var(--sans); font-size: 1rem; transform: translateX(100%); transition: transform .35s; }
  .main-nav.open { transform: none; }
  .main-nav > .menu-level { height: auto; display: grid; justify-content: stretch; gap: 0; }
  .main-nav > .menu-level > li { display: block; border-bottom: 1px solid var(--line); }
  .main-nav > .menu-level > li > a, .main-nav > .menu-level > li > button { width: 100%; min-height: 52px; justify-content: space-between; }
  .submenu, .has-mega > .submenu, .submenu .has-submenu > .submenu { position: static; width: 100%; min-width: 0; padding: 0 0 .7rem .7rem; border-radius: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; display: none; }
  .has-submenu > button[aria-expanded="true"] + .submenu { display: block; }
  .has-mega > .submenu > .menu-level { grid-template-columns: 1fr; gap: .4rem; }
  .has-mega > .submenu > .menu-level > li > button { cursor: pointer; }
  .has-mega > .submenu .submenu { display: none; padding-left: .7rem; }
  .has-mega > .submenu button[aria-expanded="true"] + .submenu { display: block; }
  .submenu a, .submenu button { white-space: normal; padding: .62rem .55rem; }
  .hero { min-height: 780px; height: 100svh; align-items: flex-end; }
  .hero-art { background-position: 64% center; }
  .hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(255,247,222,.98) 0%, rgba(255,247,222,.78) 42%, rgba(255,247,222,.02) 72%); }
  .hero-content { width: auto; margin: 0; padding: 0 1.5rem 5.2rem; }
  h1 { font-size: clamp(4.4rem, 17vw, 6.8rem); }
  .hero-lead { font-size: 1rem; max-width: 520px; }
  .scroll-hint, .hero-note { display: none; }
  .section { padding: 5.5rem 1.5rem; }
  .intro, .impact-top { grid-template-columns: 1fr; }
  .intro .section-label { margin-bottom: 1rem; }
  .manifesto { margin-top: 2rem; }
  .moments-heading { grid-template-columns: 1fr; }
  .moments-heading .text-link { justify-self: start; }
  .moments-grid { grid-template-columns: 1fr 1fr; }
  .moment-card { height: 310px; }
  .moment-wide { grid-column: 1 / -1; height: 360px; }
  .numbers { grid-template-columns: 1fr; }
  .number-card { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .number-card:last-child { border-bottom: 0; }
  .projects { grid-template-columns: 1fr; }
  .project-list > div { grid-template-columns: 36px 1fr; }
  .project-list small { grid-column: 2; }
  .mariele { grid-template-columns: 1fr; }
  .mariele-card { min-height: 430px; margin-right: 14px; }
  .albo-heading { flex-direction: column; }
  .winner { grid-template-columns: 1fr auto; }
  .winner-name { grid-column: 1 / -1; grid-row: 2; }
  .winner-medal { grid-column: 2; grid-row: 1; }
  .join { grid-template-columns: 1fr; }
  .join-sticker { right: 2rem; top: 2rem; }
  .site-footer { grid-template-columns: 1fr; }
  .footer-links { flex-wrap: wrap; }
  .archive-hero, .gallery-hero { min-height: 610px; flex-direction: column; align-items: flex-start; justify-content: flex-end; }
  .archive-counter { width: 145px; height: 145px; position: absolute; right: 1.5rem; top: 3.2rem; }
  .archive-counter strong { font-size: 2.8rem; }
  .archive-toolbar { grid-template-columns: 1fr; }
  .archive-filters { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding-bottom: .4rem; }
  .archive-grid { grid-template-columns: 1fr; }
  .gallery-year-filter { justify-self: stretch; justify-content: space-between; }
  .cinema-section { padding-inline: 1rem; }
  .cinema-stage { height: 42vh; min-height: 300px; border-radius: 16px; }
  .cinema-main { inset-inline: 0; }
  .cinema-arrow { width: 46px; height: 46px; }
  .cinema-prev { left: .7rem; }
  .cinema-next { right: .7rem; }
  .cinema-caption { left: .7rem; bottom: .8rem; max-width: calc(100% - 1.4rem); }
  .cinema-footer { grid-template-columns: 1fr; }
  .cinema-footer > span:last-child { display: none; }
  .cinema-rail { grid-column: 1; grid-row: 1; }
  .cinema-thumb { height: 48px; }
  .page-hero { min-height: 390px; padding-top: 4rem; }
  .page-hero h1 { font-size: clamp(3.2rem, 14vw, 5.3rem); }
  .bio-timeline li { grid-template-columns: 56px 1fr; }
  .migrated-content { grid-template-columns: 1fr; }
  .migrated-aside { position: static; }
  .migrated-gallery { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Concept 2026 — home editoriale */
.modern-home { background: #fffaf0; }
.modern-header { min-height: 200px; grid-template-rows: 140px 60px; background: rgba(255,250,240,.9); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(8,61,84,.12); }
.modern-header .official-logo { width: clamp(460px, 42vw, 700px); }
.modern-header .brand { justify-self: center; }
.partner-logos { position: absolute; top: 22px; right: clamp(1.2rem, 4vw, 4.5rem); display: flex; align-items: center; gap: .65rem; padding: .55rem .7rem; border: 1px solid rgba(8,61,84,.12); border-radius: 14px; background: rgba(255,255,255,.84); box-shadow: 0 8px 24px rgba(8,61,84,.07); }
.partner-logos a { width: 104px; height: 70px; display: grid; place-items: center; padding: .35rem; border-radius: 9px; background: white; }
.partner-logos img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.modern-header .main-nav { font-size: 1.05rem; font-family: var(--serif); font-weight: 600; text-transform: none; letter-spacing: 0; }
.modern-header .main-nav > .menu-level { justify-content: center; gap: clamp(1rem, 2.6vw, 3rem); }
.modern-header .menu-cta { height: 38px !important; align-self: center; padding: 0 1.25rem !important; border-radius: 99px; background: var(--coral); color: white; }
.modern-header .menu-cta::after { display: none; }
body:not(.modern-home) .modern-header { position: relative; }
.inner-header .main-nav { font-size: .72rem; }
.inner-header .main-nav > .menu-level { justify-content: flex-end; gap: clamp(1rem, 2.6vw, 3rem); }
.inner-header .menu-cta { height: 38px !important; align-self: center; padding: 0 1.25rem !important; border-radius: 99px; background: var(--coral); color: white; }
.inner-header .menu-cta::after { display: none; }

.modern-home #contenuto { padding-top: 244px; }
.new-hero { min-height: min(980px, 100vh); position: relative; overflow: hidden; padding: 4rem clamp(1.5rem, 6vw, 7rem) 4rem; display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(2rem, 5vw, 6rem); align-items: center; background: radial-gradient(circle at 18% 60%, rgba(245,185,66,.23), transparent 28%), radial-gradient(circle at 92% 20%, rgba(59,167,160,.18), transparent 22%), #fffaf0; }
.new-hero::after { content: ""; position: absolute; z-index: 0; left: -10%; bottom: -12%; width: min(46vw, 620px); height: 55%; background: url("assets/background-cuori-originale.png") left bottom / contain no-repeat; opacity: .5; pointer-events: none; }
.new-hero-copy { position: relative; z-index: 3; }
.new-hero-copy h1 { max-width: 660px; font-size: clamp(5rem, 7.7vw, 9rem); }
.new-hero-copy > p:not(.eyebrow) { max-width: 530px; margin: 2rem 0 2.4rem; color: #4a626b; font-size: clamp(1rem, 1.35vw, 1.25rem); line-height: 1.7; }

.new-hero-visual { min-height: 650px; position: relative; z-index: 1; }
.hero-split { position: absolute; inset: 1.4rem -1rem 3.6rem 0; z-index: 2; }
.hero-photo-then, .hero-photo-now { position: absolute; margin: 0; overflow: hidden; background: #e9dcc4; }
.hero-photo-then { left: 0; top: 0; width: 47%; height: 44%; border-radius: 14px; border: 9px solid var(--white); box-shadow: 0 16px 34px rgba(8,61,84,.2); transform: rotate(-4.5deg); z-index: 3; }
.hero-photo-then img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08) brightness(1.04); opacity: 0; transition: opacity 1.4s ease; }
.hero-photo-then img.is-active { opacity: 1; }
.hero-photo-then figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: .5rem .7rem; background: rgba(8,61,84,.86); color: var(--white); font: 700 .6rem/1.35 var(--sans); text-transform: uppercase; letter-spacing: .09em; }
.hero-photo-now { right: 0; bottom: 0; width: 70%; height: 66%; border-radius: 26px; box-shadow: 18px 20px 0 var(--aqua); transform: rotate(1.6deg); z-index: 1; }
.hero-photo-now img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; }
.hero-photo-now img.is-active { opacity: 1; }
.hero-photo-now figcaption { position: absolute; left: 1.1rem; bottom: 1.1rem; padding: .75rem 1rem; border-radius: 10px; background: rgba(6,47,65,.88); color: white; }
.hero-photo-now figcaption strong { display: block; font: 700 .84rem var(--sans); }
.hero-photo-now figcaption span { display: block; margin-top: .18rem; color: var(--yellow); font: 700 .6rem var(--sans); text-transform: uppercase; letter-spacing: .1em; }
.hero-timeline-arrow { position: absolute; left: 39%; top: 30%; z-index: 4; width: 58px; height: 58px; color: var(--coral); opacity: .85; transform: rotate(8deg); }
.since-badge { position: absolute; z-index: 4; left: 27%; bottom: 30%; min-width: 196px; padding: 1.1rem 1.4rem; border: 2px solid var(--navy); border-radius: 100px; background: rgba(255,250,240,.97); color: var(--navy); text-align: center; box-shadow: 8px 10px 0 var(--yellow); transform: rotate(-6deg); }
.since-badge span { display: block; text-transform: uppercase; letter-spacing: .18em; font-size: .62rem; font-weight: 700; }
.since-badge strong { display: block; font: 700 clamp(2.1rem, 3.2vw, 3.2rem)/.9 var(--serif); letter-spacing: -.05em; }
.hero-caption { position: absolute; right: 1rem; bottom: -2.4rem; margin: 0; color: var(--navy); font: 600 .7rem var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.playful-doodles { position: absolute; inset: 0; pointer-events: none; }
.playful-doodles span { position: absolute; z-index: 1; display: grid; place-items: center; font-family: var(--serif); line-height: 1; pointer-events: none; }
.doodle-star { left: 2.2%; top: 28%; color: var(--yellow); font-size: 3.4rem; transform: rotate(-14deg); }
.doodle-flower { left: 42%; top: 25%; color: var(--aqua); font-size: 3.2rem; transform: rotate(10deg); }
.doodle-music { left: 46%; bottom: 11%; color: var(--coral); font-size: 4rem; transform: rotate(-12deg); }
.doodle-rainbow { right: 1.5%; top: 30%; width: 90px; height: 90px; color: var(--yellow); border: 10px solid currentColor; border-bottom: 0; border-radius: 90px 90px 0 0; font-size: 0; transform: rotate(16deg); opacity: .78; }

.latest-winner { position: relative; display: grid; grid-template-columns: .68fr 1.32fr; gap: clamp(3rem, 7vw, 8rem); align-items: center; background: var(--yellow); overflow: hidden; }
.latest-winner::before { content: ""; position: absolute; width: 430px; height: 430px; border: 80px solid rgba(255,255,255,.22); border-radius: 50%; left: -230px; bottom: -250px; }
.latest-winner::after { content: ""; position: absolute; inset: 0 auto 0 -7%; width: 65%; background: url("assets/background-cuori-originale.png") left center / contain no-repeat; opacity: .32; pointer-events: none; }
.winner-copy, .winner-photo { position: relative; z-index: 1; }
.winner-copy .section-label { color: var(--coral); }
.winner-copy h2 { margin: .8rem 0 1.5rem; font-size: clamp(4rem, 6vw, 7rem); }
.winner-copy h2 em { color: var(--coral); }
.winner-copy > p:not(.section-label,.kicker) { max-width: 560px; line-height: 1.75; }
.winner-copy .text-link { display: inline-block; margin-top: 1rem; }
.winner-photo { width: min(100%, 850px); min-height: 500px; justify-self: center; margin: 0; border-radius: 34px; overflow: hidden; background: rgba(255,250,240,.55); box-shadow: 20px 22px 0 var(--aqua); }
.winner-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: contain; }
.winner-photo figcaption { position: absolute; left: 1rem; bottom: 1rem; padding: .8rem 1rem; border-radius: 10px; background: rgba(6,47,65,.9); color: white; }
.winner-photo figcaption strong, .winner-photo figcaption span { display: block; }
.winner-photo figcaption span { margin-top: .2rem; color: var(--yellow); font-size: .64rem; text-transform: uppercase; letter-spacing: .12em; }
.winner-doodles span { position: absolute; z-index: 2; color: var(--coral); font-size: 2.5rem; }
.winner-doodles span:nth-child(1) { right: 3%; top: 12%; transform: rotate(15deg); }
.winner-doodles span:nth-child(2) { left: 3%; top: 12%; color: var(--aqua); font-size: 4rem; }
.winner-doodles span:nth-child(3) { right: 47%; bottom: 6%; color: white; font-size: 2rem; }

.story-intro { display: grid; grid-template-columns: .35fr 1.15fr .7fr; gap: clamp(2rem, 5vw, 6rem); align-items: end; background: linear-gradient(rgba(6,47,65,.82), rgba(6,47,65,.82)), url("assets/background-cuori-originale.png") center / cover no-repeat; color: white; }
.story-heading h2 { font-size: clamp(4rem, 6vw, 7rem); }
.story-heading .kicker { color: var(--yellow); }
.story-heading h2 em { color: var(--yellow); }
.story-lead { margin: 0 0 .5rem; color: rgba(255,255,255,.68); line-height: 1.75; }
.story-cards { display: grid; grid-template-columns: repeat(3, 1fr); background: linear-gradient(rgba(6,47,65,.86), rgba(6,47,65,.86)), url("assets/background-cuori-originale.png") center bottom / cover no-repeat; padding: 0 clamp(1.5rem, 6vw, 7rem) clamp(5rem, 9vw, 9rem); gap: 1rem; }
.story-card { min-height: 460px; padding: 2rem; border-radius: 18px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; transition: transform .3s, border-radius .3s; }
.story-card:hover { transform: translateY(-8px); border-radius: 60px 18px 18px 18px; }
.story-card > span { font-size: .68rem; letter-spacing: .16em; font-weight: 700; }
.story-card p { margin: 0 0 .7rem; text-transform: uppercase; letter-spacing: .13em; font-size: .67rem; font-weight: 700; }
.story-card h2 { font-size: clamp(2.7rem, 4vw, 4.8rem); }
.story-card b { font-size: .78rem; }
.story-card-history { background: var(--yellow); color: var(--navy-deep); }
.story-card-mariele { background: var(--aqua); color: var(--navy-deep); }
.story-card-heart { background: var(--coral); color: white; }

.photo-story { background: linear-gradient(rgba(251,243,226,.8), rgba(251,243,226,.8)), url("assets/background-cuori-originale.png") center / min(1050px, 92vw) auto fixed no-repeat; }
.photo-story-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 3.5rem; }
.photo-story-heading h2 { margin-top: .8rem; font-size: clamp(4rem, 6.5vw, 7.5rem); }
.editorial-gallery { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: repeat(2, minmax(260px, 34vw)); gap: 1rem; }
.editorial-photo { margin: 0; position: relative; overflow: hidden; border-radius: 18px; background: #e9dcc4; }
.editorial-photo-main { grid-row: 1 / 3; }
.editorial-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s; }
.editorial-photo:hover img { transform: scale(1.04); }
.editorial-photo figcaption { position: absolute; left: 1rem; bottom: 1rem; padding: .7rem 1rem; border-radius: 99px; background: white; color: var(--navy); font-size: .72rem; font-weight: 700; }
.gallery-carousel { position: relative; }
.gallery-controls { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; margin: -1.5rem 0 1.2rem; color: #60747c; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.gallery-controls button { width: 48px; height: 48px; border: 1px solid var(--navy); border-radius: 50%; background: transparent; color: var(--navy); font-size: 1.35rem; cursor: pointer; transition: .25s; }
.gallery-controls button:hover { background: var(--navy); color: white; transform: scale(1.05); }
.gallery-track { display: flex; gap: 1rem; overflow-x: auto; padding: 0 clamp(1.5rem, 8vw, 8rem) 1.2rem 0; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-slide { flex: 0 0 min(72vw, 920px); height: clamp(440px, 55vw, 690px); margin: 0; position: relative; overflow: hidden; border-radius: 20px; scroll-snap-align: start; background: #dfd2bb; }
.gallery-slide:nth-child(even) { flex-basis: min(72vw, 920px); }
.gallery-slide img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s; }
.gallery-slide:hover img { transform: scale(1.035); }
.gallery-slide figcaption { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; width: max-content; max-width: calc(100% - 2rem); padding: .8rem 1rem; border-radius: 10px; background: rgba(6,47,65,.9); color: white; font-size: .78rem; }
.gallery-slide figcaption span { display: block; margin-bottom: .18rem; color: var(--yellow); text-transform: uppercase; letter-spacing: .12em; font-size: .58rem; font-weight: 700; }

.heart-section { min-height: 760px; position: relative; display: grid; grid-template-columns: 1fr .9fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; overflow: hidden; background: linear-gradient(rgba(229,87,63,.82), rgba(229,87,63,.82)), url("assets/background-cuori-originale.png") center / cover no-repeat; color: white; }
.heart-outline { position: absolute; left: -7vw; top: -14vw; color: rgba(255,255,255,.1); font-family: Georgia, serif; font-size: 70vw; line-height: .8; }
.heart-copy, .heart-numbers { position: relative; z-index: 1; }
.heart-copy h2 { font-size: clamp(4.2rem, 7vw, 8rem); }
.heart-copy h2 em { color: var(--yellow); }
.heart-copy > p:not(.kicker) { max-width: 600px; line-height: 1.75; color: rgba(255,255,255,.76); }
.heart-copy .text-link { color: white; display: inline-block; margin-top: 1rem; }
.heart-numbers { display: grid; }
.heart-numbers > div { padding: 2rem 0; border-top: 1px solid rgba(255,255,255,.28); }
.heart-numbers strong { font: 700 clamp(3.5rem, 6vw, 7rem) var(--serif); color: var(--yellow); letter-spacing: -.06em; }
.heart-numbers span { color: var(--yellow); font-weight: 700; }
.heart-numbers p { margin: .2rem 0 0; color: rgba(255,255,255,.65); }

.news-ticker[hidden], .news-section[hidden] { display: none; }
.news-ticker { position: relative; z-index: 5; display: flex; align-items: center; gap: 1rem; background: var(--navy); color: #fff; padding: .9rem clamp(1.5rem, 6vw, 7rem); overflow: hidden; height: 3.2rem; }
.news-ticker-icon { flex: none; font-size: 1.3rem; line-height: 1; position: relative; z-index: 2; }
.news-ticker-track { position: absolute; top: 0; left: 0; height: 100%; display: flex; align-items: center; gap: 1.4rem; white-space: nowrap; font-weight: 700; font-size: 1.05rem; animation-name: news-ticker-scroll; animation-timing-function: linear; animation-iteration-count: infinite; animation-duration: 26s; }
.news-ticker-track.is-static { position: static; animation: none; }
.news-ticker-dot { opacity: .55; color: var(--yellow); }
@keyframes news-ticker-scroll { from { transform: translateX(var(--ticker-start, 100%)); } to { transform: translateX(var(--ticker-end, -100%)); } }
@media (prefers-reduced-motion: reduce) { .news-ticker-track { animation: none; position: static; overflow-x: auto; } }

.news-section { background: var(--cream); padding-top: clamp(1.8rem, 3.5vw, 2.8rem); padding-bottom: clamp(1.8rem, 3.5vw, 2.8rem); }
.news-grid { max-width: 1120px; margin: 0 auto; height: 640px; }
.news-card { background: var(--paper); border-radius: 22px; overflow: hidden; box-shadow: 0 14px 30px rgba(8,61,84,.08); opacity: 1; transform: none; transition: opacity .45s ease, transform .45s ease; height: 100%; display: flex; flex-direction: column; }
.news-card.is-fading { opacity: 0; transform: translateY(10px) scale(.99); }
.news-card figure { margin: 0; flex: 0 0 46%; background: var(--cream); position: relative; overflow: hidden; }
.news-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-card figure[data-hero-rotator] img { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.news-card figure[data-hero-rotator] img.is-active { opacity: 1; }
.news-card-body { padding: 1.4rem 1.5rem 1.7rem; text-align: center; flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
.news-card-date { display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--coral); flex: none; }
.news-card-body h3 { margin: .5rem 0 0; font-family: var(--serif); font-size: 1.4rem; line-height: 1.25; color: var(--navy); flex: none; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-card-body p { margin: .6rem 0 0; color: #52676e; line-height: 1.6; font-size: .92rem; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.news-dots { display: flex; justify-content: center; gap: .55rem; margin-top: 1.3rem; }
.news-dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(8,61,84,.2); cursor: pointer; transition: background .25s, transform .25s; }
.news-dots button.is-active { background: var(--coral); transform: scale(1.3); }
.news-dots:empty { display: none; }
@media (prefers-reduced-motion: reduce) {
  .news-card { transition: opacity .3s ease; }
  .news-card.is-fading { transform: none; }
}

@media (min-width: 701px) {
  .news-grid { height: 400px; }
  .news-grid .news-card { display: grid; grid-template-columns: 1.05fr 1fr; align-items: stretch; }
  .news-grid .news-card figure { flex: none; height: 100%; }
  .news-grid .news-card-body { text-align: left; display: flex; flex-direction: column; justify-content: center; padding: clamp(1.8rem, 3vw, 3rem); }
  .news-grid .news-card-body h3 { font-size: clamp(1.6rem, 2.4vw, 2.1rem) !important; -webkit-line-clamp: 3; }
  .news-grid .news-card-body p { -webkit-line-clamp: 4; }
}
@media (max-width: 900px) {
  .news-ticker { padding: .7rem 1.4rem; gap: .7rem; }
  .news-ticker-icon { font-size: 1.1rem; }
  .news-ticker-track { font-size: .88rem; gap: 1rem; }
}

.mariele-editorial { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; background: linear-gradient(rgba(255,250,240,.8), rgba(255,250,240,.8)), url("assets/background-cuori-originale.png") right center / min(900px, 78vw) auto no-repeat; }
.mariele-quote { min-height: 580px; padding: clamp(2.5rem, 5vw, 5rem); display: flex; flex-direction: column; justify-content: center; border-radius: 50% 50% 18px 18px / 35% 35% 18px 18px; background: var(--yellow); color: var(--navy-deep); box-shadow: 22px 24px 0 var(--aqua); position: relative; }
.mariele-quote > span { height: 100px; font: 700 10rem/1 var(--serif); color: var(--coral); }
.mariele-quote blockquote { margin: 0; font: 600 clamp(2rem, 3.1vw, 3.5rem)/1.17 var(--serif); }
.mariele-quote p { margin-top: 2rem; text-transform: uppercase; letter-spacing: .15em; font-size: .66rem; font-weight: 700; }
.mariele-quote-photo { position: absolute; right: clamp(1.6rem, 4vw, 3.2rem); top: clamp(1.6rem, 4vw, 3.2rem); margin: 0; width: clamp(84px, 10vw, 118px); height: clamp(84px, 10vw, 118px); border-radius: 50%; overflow: hidden; border: 5px solid var(--white); box-shadow: 0 12px 26px rgba(8,61,84,.28); }
.mariele-quote-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08); }
.mariele-editorial-copy h2 { margin: 1rem 0 1.7rem; font-size: clamp(4rem, 6.3vw, 7.2rem); }
.mariele-editorial-copy > p:not(.section-label) { max-width: 600px; color: #52676e; line-height: 1.75; }
.mariele-editorial-copy .button { margin-top: 1rem; }

.final-cta { display: grid; grid-template-columns: 1.2fr .7fr; gap: 5rem; align-items: end; background: var(--aqua); color: var(--navy-deep); }
.final-cta h2 { font-size: clamp(4.2rem, 7vw, 8rem); }
.final-cta h2 em { color: white; }
.final-cta > div:last-child p { max-width: 500px; line-height: 1.75; }
.modern-footer .footer-brand .official-logo { width: min(360px, 80vw); }

/* Galleria biografica di Mariele e storia con immagine singola */
.page-hero-photo { display: none; margin: 0; }
.enhanced-page .page-hero { flex-direction: row; flex-wrap: wrap-reverse; align-items: flex-end; gap: 1.6rem clamp(2rem, 5vw, 4rem); }
.enhanced-page .page-hero-text { flex: 1 1 420px; }
.enhanced-page .page-hero-photo { display: block; flex: none; position: relative; z-index: 2; width: clamp(140px, 15vw, 200px); height: clamp(140px, 15vw, 200px); border-radius: 50%; overflow: hidden; border: 6px solid rgba(255,255,255,.92); box-shadow: 0 18px 40px rgba(8,61,84,.28); }
.enhanced-page .page-hero-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08); }
.enhanced-page .page-hero-photo.page-hero-photo-plain { background: white; padding: 14px; box-sizing: border-box; }
.enhanced-page .page-hero-photo.page-hero-photo-plain img { object-fit: contain; filter: none; }
.bio-pullquote { margin: 2.4rem 0; padding: 1.4rem 1.8rem; border-left: 6px solid var(--coral); border-radius: 0 18px 18px 0; background: rgba(245,185,66,.14); font: 600 clamp(1.25rem, 2.1vw, 1.6rem)/1.5 var(--serif); color: var(--navy); }
.bio-pullquote cite { display: block; margin-top: .9rem; font: 700 .66rem var(--sans); text-transform: uppercase; letter-spacing: .12em; color: #6a7c83; font-style: normal; }
.bio-timeline-heading { margin: 3rem 0 1.5rem; }
.bio-timeline-heading h2 { margin-top: .5rem; font-size: clamp(2.2rem, 3.6vw, 3.2rem); }
.bio-timeline { list-style: none; margin: 0 0 2.6rem; padding: 0; border-top: 1px solid var(--line); }
.bio-timeline li { display: grid; grid-template-columns: 84px 1fr; gap: 1.2rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.bio-timeline strong { font: 700 1.5rem var(--serif); color: var(--coral); }
.bio-timeline h3 { margin: 0; font: 700 .95rem var(--sans); color: var(--navy); }
.mariele-page .page-hero { background: linear-gradient(135deg, var(--yellow), #ffd977); }
.mariele-page .migrated-copy, .history-page .migrated-copy, .solidarity-page .migrated-copy { grid-column: 1 / -1; max-width: 980px; }
.mariele-page .migrated-aside, .history-page .migrated-aside, .solidarity-page .migrated-aside { display: none; }
.solidarity-page .page-hero { background: linear-gradient(135deg, var(--coral), #f3a58f); color: white; }
.solidarity-page .page-hero .eyebrow { color: rgba(255,255,255,.85); }
.mariele-carousel { display: block; }
.mariele-gallery-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.mariele-gallery-heading h2 { margin-top: .6rem; font-size: clamp(3.6rem, 6vw, 7rem); }
.mariele-carousel-controls { display: flex; gap: .7rem; }
.mariele-carousel-controls button { width: 52px; height: 52px; border: 1px solid var(--navy); border-radius: 50%; background: transparent; color: var(--navy); font-size: 1.35rem; cursor: pointer; transition: .25s; }
.mariele-carousel-controls button:hover { background: var(--navy); color: white; }
.mariele-track { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 1rem; scroll-snap-type: x mandatory; scrollbar-width: none; }
.mariele-track::-webkit-scrollbar { display: none; }
.mariele-track figure { flex: 0 0 min(66vw, 760px); height: clamp(430px, 52vw, 650px); scroll-snap-align: start; }
.mariele-track figure:nth-child(even) { flex-basis: min(66vw, 760px); }
.mariele-track img { object-position: center; }
.history-page .page-hero { background: linear-gradient(135deg, var(--aqua), #88ddd6); }
.history-page .migrated-gallery { grid-template-columns: minmax(0, 900px); justify-content: center; }
.history-page .migrated-gallery figure { min-height: 520px; border-radius: 24px; box-shadow: 18px 20px 0 var(--yellow); }

/* Albo d'oro e contatti */
.hall-of-fame-page .page-hero { background: linear-gradient(135deg, var(--coral), #f18b72); color: white; }
.hall-of-fame-page .migrated-content, .contact-page .migrated-content { grid-template-columns: 1fr; }
.hall-of-fame-page .migrated-aside, .contact-page .migrated-aside { display: none; }
.hall-of-fame-page .migrated-copy, .contact-page .migrated-copy { grid-column: 1 / -1; }
.hall-heading { display: grid; grid-template-columns: .45fr 1fr; gap: 2rem; align-items: end; margin-bottom: 3.5rem; }
.hall-heading h2, .contact-intro h2 { font-size: clamp(3.7rem, 6vw, 7rem); }
.hall-heading h2 em, .contact-intro h2 em { color: var(--coral); }
.hall-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(8,61,84,.2); }
.hall-item { display: grid; grid-template-columns: 220px 150px minmax(320px, 1.15fr) minmax(230px, .7fr); gap: 2rem; align-items: center; padding: 1.5rem 1rem; border-bottom: 1px solid rgba(8,61,84,.16); transition: background .25s, transform .25s; }
.hall-photo { width: 220px; height: 142px; padding: 0; border: 0; border-radius: 14px; overflow: hidden; background: #eadfc9; cursor: zoom-in; }
.hall-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .4s; }
.hall-photo:hover img { transform: scale(1.05); }
.hall-item:hover { background: rgba(255,255,255,.72); transform: translateX(6px); }
.hall-item > strong { min-width: 0; color: var(--coral); font: 700 clamp(2.25rem, 3vw, 3.35rem)/1 var(--serif); text-align: center; }
.hall-item h3 { margin: 0; color: var(--navy-deep); font: 600 clamp(1.2rem, 1.8vw, 1.7rem)/1.2 var(--serif); }
.hall-item > div, .hall-item > span { min-width: 0; overflow-wrap: anywhere; }
.hall-item p { margin: .35rem 0 0; color: #65777d; font-size: .82rem; line-height: 1.45; }
.hall-item > span { color: var(--navy); font-weight: 600; }
.hall-item.latest { margin-top: .8rem; border: 0; border-radius: 18px; background: var(--yellow); }
.hall-item.latest > strong { color: var(--navy); }
.contact-page .page-hero { background: linear-gradient(135deg, var(--yellow), #ffe392); }
.contact-page .migrated-copy { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 7vw, 8rem); align-items: start; }
.contact-intro > p:not(.section-label) { max-width: 520px; color: #52676e; }
.contact-form { display: grid; gap: 1.25rem; padding: clamp(1.5rem, 4vw, 3rem); border-radius: 22px; background: white; box-shadow: 18px 20px 0 var(--aqua); }
.contact-form label { display: grid; gap: .5rem; color: var(--navy); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-form label span { color: var(--coral); }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid rgba(8,61,84,.22); border-radius: 10px; background: #fffaf0; color: var(--navy-deep); padding: .9rem 1rem; font: 400 1rem var(--sans); text-transform: none; letter-spacing: 0; outline: none; transition: border-color .2s, box-shadow .2s; }
.contact-form textarea { resize: vertical; min-height: 150px; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--aqua); box-shadow: 0 0 0 4px rgba(59,167,160,.15); }
.contact-form small { color: #718087; font-weight: 400; letter-spacing: 0; text-transform: none; }
.contact-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; }
.contact-actions { display: flex; gap: .8rem; flex-wrap: wrap; padding-top: .5rem; }
.contact-actions button { cursor: pointer; }
.contact-page .migrated-gallery { grid-template-columns: repeat(5, 1fr); margin-top: 1rem; }
.contact-page .migrated-gallery figure { min-height: 220px; border-radius: 80px 14px 14px 14px; }

@media (max-width: 900px) {
  .modern-header { min-height: 112px; height: auto; flex-wrap: wrap; row-gap: .5rem; padding-bottom: .6rem; background: rgba(255,250,240,.96); backdrop-filter: none; }
  .modern-header .official-logo { width: min(335px, 76vw); }
  .modern-header .brand { justify-self: start; }
  .partner-logos { position: static; order: 3; flex-basis: 100%; justify-content: center; margin: 0 auto; padding: .4rem .6rem; gap: .5rem; background: rgba(255,255,255,.72); box-shadow: none; }
  .partner-logos a { width: 64px; height: 46px; }
  .modern-header.menu-open .partner-logos { display: none; }
  .modern-header.menu-open { position: fixed; inset: 0; z-index: 40; display: block; width: 100%; height: 100dvh; min-height: 100dvh; padding: 0; background: var(--cream); }
  .modern-header.menu-open .brand { display: none; }
  .modern-header.menu-open .menu-toggle { position: absolute; top: 1rem; right: 1rem; }
  .modern-header.menu-open .main-nav { position: absolute; inset: 0; height: 100%; }
  .modern-header .main-nav > .menu-level { justify-content: stretch; gap: 0; }
  .modern-header .menu-cta { margin: .65rem 0; width: max-content !important; padding: 0 1.25rem !important; }
  .modern-home #contenuto { padding-top: 165px; }
  .new-hero { min-height: auto; padding: 2.5rem 1.4rem 4rem; grid-template-columns: 1fr; gap: 3rem; }
  .new-hero-copy h1 { font-size: clamp(4.4rem, 18vw, 6.8rem); }
  .new-hero-visual { min-height: 460px; }
  .hero-split { inset: 0; }
  .hero-photo-then { width: 52%; height: 42%; }
  .hero-photo-now { width: 78%; height: 62%; box-shadow: 10px 12px 0 var(--aqua); }
  .hero-timeline-arrow { display: none; }
  .since-badge { left: auto; right: -.4rem; bottom: 26%; min-width: 150px; padding: .85rem 1.1rem; }
  .since-badge strong { font-size: 1.9rem; }
  .hero-caption { display: none; }
  .mariele-page .page-hero { flex-direction: column; align-items: flex-start; }
  .mariele-page .page-hero-photo { width: 108px; height: 108px; border-width: 4px; }
  .story-intro { grid-template-columns: 1fr; align-items: start; }
  .playful-doodles .doodle-flower { display: none; }
  .doodle-star { top: 19%; font-size: 2rem; }
  .doodle-music { left: auto; right: 3%; bottom: 35%; font-size: 2.5rem; }
  .doodle-rainbow { width: 54px; height: 54px; border-width: 7px; top: 42%; }
  .latest-winner { grid-template-columns: 1fr; gap: 2.5rem; }
  .winner-photo { min-height: 350px; border-radius: 20px; margin-right: 14px; }
  .story-cards { grid-template-columns: 1fr; padding-inline: 1.4rem; }
  .story-card { min-height: 330px; }
  .photo-story-heading { align-items: start; flex-direction: column; }
  .editorial-gallery { grid-template-columns: 1fr; grid-template-rows: 430px 300px 300px; }
  .editorial-photo-main { grid-row: auto; }
  .gallery-controls { margin-top: 0; justify-content: space-between; }
  .gallery-controls span { margin-right: auto; }
  .gallery-slide, .gallery-slide:nth-child(even) { flex-basis: 86vw; height: 470px; }
  .gallery-track { padding-right: 1.5rem; }
  .heart-section, .mariele-editorial, .final-cta { grid-template-columns: 1fr; }
  .heart-section { gap: 3rem; }
  .heart-outline { font-size: 150vw; }
  .mariele-quote { min-height: 440px; margin-right: 18px; }
  .final-cta { gap: 2rem; }
  .mariele-gallery-heading { align-items: start; flex-direction: column; }
  .mariele-track figure, .mariele-track figure:nth-child(even) { flex-basis: 86vw; height: 500px; }
  .history-page .migrated-gallery figure { min-height: 380px; margin-right: 14px; }
  .hall-heading, .contact-page .migrated-copy { grid-template-columns: 1fr; }
  .hall-item { grid-template-columns: 88px 1fr; gap: 1rem; }
  .hall-photo { grid-column: 1 / -1; width: 100%; height: 230px; }
  .hall-item > span { grid-column: 2; }
  .contact-form { margin-right: 16px; box-shadow: 12px 14px 0 var(--aqua); }
  .contact-page .migrated-gallery { grid-template-columns: repeat(2, 1fr); }
  .contact-page .migrated-gallery figure:last-child { grid-column: 1 / -1; }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .modern-header .official-logo { width: 360px; }
  .partner-logos a { width: 82px; height: 62px; }
  .hall-item { grid-template-columns: 180px 115px minmax(260px, 1fr); gap: 1.2rem; }
  .hall-photo { width: 180px; height: 122px; }
  .hall-item > span { grid-column: 3; }
}
.cms-builder-files{margin:2rem 0;padding:1.1rem;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 14px 35px rgba(23,63,77,.07)}
.cms-builder-files h2{margin-top:0!important}
.cms-builder-files>div{display:grid;gap:.75rem}
.cms-builder-files a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy)!important;text-decoration:none}
.cms-builder-files a:hover{border-color:var(--cms-accent,var(--coral));transform:translateY(-1px)}
.cms-builder-files small{color:#60747c;font-size:.82rem;font-weight:700}
.cms-page-image{margin-left:auto;margin-right:auto}
.cms-page-image.cms-image-size-piccola{grid-template-columns:minmax(0,430px)}
.cms-page-image.cms-image-size-media{grid-template-columns:minmax(0,680px)}
.cms-page-image.cms-image-size-grande{grid-template-columns:minmax(0,900px)}
.cms-page-image.cms-image-size-intera{grid-template-columns:minmax(0,100%)}
.cms-page-image.cms-image-fit-cover figure{aspect-ratio:16/9}
.cms-page-image.cms-image-fit-cover img{width:100%;height:100%;object-fit:cover}
.cms-page-image.cms-image-fit-contain figure{aspect-ratio:auto}
.cms-page-image.cms-image-fit-contain img{width:100%;height:auto;object-fit:contain}
.cms-page .page-hero{min-height:270px;padding:clamp(2.6rem,5vw,4rem) clamp(1.5rem,8vw,9rem) clamp(2.2rem,4vw,3.2rem)}
.cms-page .page-hero h1{font-size:clamp(3rem,5.4vw,5.4rem)}
.cms-page .page-hero .eyebrow{margin-bottom:.55rem}
.cms-page .page-hero>p:last-child{margin-top:.7rem}
.cms-page .migrated-content.section{padding-top:clamp(2.4rem,4.5vw,4rem)}
@media(max-width:760px){.cms-page .page-hero{min-height:230px;padding-top:3rem;padding-bottom:2rem}.cms-page .page-hero h1{font-size:clamp(2.6rem,12vw,4.2rem)}.cms-page .migrated-content.section{padding-top:2rem}}
.archive-hero,.gallery-hero{min-height:330px;padding:clamp(2.8rem,5vw,4.3rem) clamp(1.5rem,8vw,9rem)}
.archive-hero h1,.gallery-hero h1{font-size:clamp(3.1rem,5.6vw,5.8rem);line-height:.95}
.archive-hero>div>p:last-child,.gallery-hero>div>p:last-child{margin-top:.85rem;font-size:1rem}
.gallery-browser.section,.archive-browser.section{padding-top:clamp(2.4rem,4.5vw,4rem)}
@media(max-width:760px){.archive-hero,.gallery-hero{min-height:270px;padding-top:3rem;padding-bottom:2.2rem}.archive-hero h1,.gallery-hero h1{font-size:clamp(2.7rem,12vw,4.3rem)}.gallery-browser.section,.archive-browser.section{padding-top:2rem}}
.cms-page .page-hero{min-height:190px!important;padding:1.8rem clamp(1.5rem,8vw,9rem) 1.45rem!important}
.cms-page .page-hero h1{font-size:clamp(2.45rem,4.2vw,4.05rem)!important}
.cms-page .page-hero>p:last-child{margin-top:.45rem!important;font-size:.98rem!important;line-height:1.45!important}
.cms-page .migrated-content.section{padding-top:1.35rem!important;padding-bottom:clamp(3rem,5vw,5rem)!important}

/* Variante compatta uniforme per tutte le pagine interne */
.page-hero{min-height:210px!important;padding:1.9rem clamp(1.5rem,8vw,9rem) 1.55rem!important}
.page-hero h1{font-size:clamp(2.55rem,4.45vw,4.25rem)!important;line-height:.95!important}
.page-hero>p:last-child{margin-top:.55rem!important;font-size:.98rem!important;line-height:1.5!important}
.migrated-content.section{padding-top:1.45rem!important;padding-bottom:clamp(3rem,5vw,5rem)!important}

.archive-hero,.gallery-hero{min-height:210px!important;padding:1.9rem clamp(1.5rem,8vw,9rem) 1.55rem!important}
.archive-hero h1,.gallery-hero h1{font-size:clamp(2.55rem,4.45vw,4.25rem)!important}
.archive-hero>div>p:last-child,.gallery-hero>div>p:last-child{margin-top:.55rem!important;font-size:.98rem!important;line-height:1.5!important}
.gallery-browser.section,.archive-browser.section{padding-top:1.45rem!important;padding-bottom:clamp(3rem,5vw,5rem)!important}
.archive-counter{width:150px!important;height:150px!important;box-shadow:10px 10px 0 var(--coral)!important}
.archive-counter strong{font-size:3rem!important}

@media(max-width:760px){
  .page-hero,.cms-page .page-hero,.archive-hero,.gallery-hero{min-height:185px!important;padding-top:1.7rem!important;padding-bottom:1.45rem!important}
  .page-hero h1,.cms-page .page-hero h1,.archive-hero h1,.gallery-hero h1{font-size:clamp(2.35rem,10vw,3.7rem)!important}
  .migrated-content.section,.cms-page .migrated-content.section,.gallery-browser.section,.archive-browser.section{padding-top:1.2rem!important}
}
