/* ============ Gerarchia visiva ============
   1. un solo h1 (il titolo dell'hero); il nome nell'header è testo
   2. scala dei titoli: hero > titolo di pagina > blocchi della home > card
   3. un'azione principale per volta: "Segnala" (studenti) piena, "Area riservata" (solo rappresentanti) secondaria
   4. menu raggruppato per compito, sezioni secondarie in "Altro" e nel footer */

/* ---------- header ---------- */
.bname{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:700 clamp(.95rem,3.6vw,1.15rem) var(--display);color:var(--ink)}
.nav-more-w{display:none}
.mgl{grid-column:1/-1;padding:10px 8px 2px;font:700 .7rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mgl:first-child{padding-top:2px}
#menu a.nav-cta{color:var(--lane);font-weight:700!important}
.is-phone #menu .mgl{padding:8px 6px 0}
.is-phone #menu a.nav-cta{background:var(--lane);color:var(--lane-ink)!important}
.is-phone #menu #accLink{background:transparent;color:var(--ink)!important;border:1px solid var(--cl)}

@media (min-width:1100px){
 #menu .mgl,#menu a.sec{display:none!important}
 #menu a[href="#eventi"]{order:2!important}#menu a[href="#circolari"]{order:3!important}#menu a[href="#sondaggi"]{order:4!important}
 #menu a[href="#libri"]{order:5!important}#menu a[href="#kit"]{order:6!important}#menu a[href="#merch"]{order:7!important}
 .nav-more-w{display:block;position:relative;order:8}
 .mode-btn{order:9!important;margin-left:auto!important}
 #menu a.nav-cta{order:10!important;margin-left:10px;background:var(--lane);color:var(--lane-ink)!important;border-radius:14px;padding:11px 20px!important;box-shadow:0 8px 22px -10px var(--glow)}
 #menu a.nav-cta:hover{filter:brightness(1.1)}
 #menu #accLink{order:11!important;margin-left:8px!important;background:transparent!important;color:var(--ink)!important;border:1px solid var(--line)!important;box-shadow:none!important;font-weight:600!important;padding:10px 16px!important}
 #menu #accLink:hover{border-color:var(--lane)!important;color:var(--lane)!important}
 #menu a{padding:8px 10px!important}
 .nav-more{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--ink);font:500 1rem var(--body);padding:8px 10px;border-radius:99px;cursor:pointer}
 .nav-more::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
 .nav-more[aria-expanded="true"]::after{transform:translateY(1px) rotate(-135deg)}
 .nav-more:hover,.nav-more.on{color:var(--lane)}
 .nav-pop{position:absolute;top:calc(100% + 12px);left:0;min-width:200px;display:grid;gap:2px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px -12px var(--shadow)}
 .nav-pop[hidden]{display:none}
 .nav-pop a{display:block;padding:11px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font:500 1rem var(--body)}
 .nav-pop a:hover,.nav-pop a.on{background:var(--tint);color:var(--lane)}
}
@media (min-width:1100px) and (max-width:1279px){
 #menu a,.nav-more{font-size:.92rem!important;padding:7px 8px!important}
 #menu a.nav-cta{padding:10px 16px!important}
 /* "Area riservata" diventa un'icona: il testo resta per i lettori di schermo */
 #menu #accLink{position:relative;width:42px;height:42px;padding:0!important;font-size:0!important;color:transparent!important;display:grid;place-items:center;border-radius:12px}
 #menu #accLink::before{content:"";width:20px;height:20px;background:var(--ink);-webkit-mask:var(--ico-user) center/contain no-repeat;mask:var(--ico-user) center/contain no-repeat}
 #menu #accLink:hover::before{background:var(--lane)}
}
:root{--ico-user:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/%3E%3C/svg%3E")}

/* ---------- hero: titolo, testo, azioni ---------- */
.hero-txt{justify-items:center}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}
.hero-cta a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 26px;border-radius:14px;font:700 1rem var(--body);text-decoration:none;transition:transform .15s,filter .2s,background .2s,border-color .2s}
.cta-p{background:#5fd0f5;color:#04060c;box-shadow:0 10px 28px -10px rgba(95,208,245,.7)}
.cta-p:hover{filter:brightness(1.08);transform:translateY(-2px)}
.cta-s{color:#fff;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.04)}
.cta-s:hover{border-color:#5fd0f5;color:#9fe6ff}
.hero-cta a:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:480px){.hero-cta{width:100%}.hero-cta a{flex:1 1 100%}}

/* ---------- avviso in evidenza subito dopo l'hero ---------- */
#home>.avviso{margin-top:22px}

/* ---------- scala dei titoli ---------- */
/* titolo di pagina: il più grande dopo l'hero, con la descrizione sotto (non di lato) */
.page>.sh{display:grid!important;justify-items:start;gap:8px;margin-bottom:22px}
.page>.sh h2{font-size:clamp(2rem,4.6vw,3rem)!important}
.page>.sh .note,.page>.sh .more{font-size:1rem}
.page>.sh .note{max-width:60ch}
/* blocchi della home: più piccoli del titolo di pagina */
.hcol .sh h2,.hsow .sh h2{font-size:clamp(1.15rem,2.2vw,1.45rem)!important}
.home-grid{padding-block:48px 10px!important}
.hsow{padding-block:40px 0!important}
/* card */
.item h3,.poll h3,.rep h3{font-size:1.06rem;font-weight:700;line-height:1.3}

/* ---------- footer: tutte le sezioni ---------- */
footer{display:grid;gap:28px;padding-block:44px 32px!important}
.ft{display:grid;grid-template-columns:minmax(180px,1fr) 2.4fr;gap:32px}
.ft-b{display:grid;gap:6px;align-content:start}
.ft-b b{font:700 1.15rem var(--display);color:var(--ink)}
.ft-b span{color:var(--muted)}
.ft-n{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ft-n div{display:grid;align-content:start}
.ft-h{margin:0 0 6px;font:700 .72rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ft-n a{padding-block:7px;color:var(--ink);text-decoration:none;font-size:.95rem}
.ft-n a:hover{color:var(--lane)}
.ft-c{margin:0;padding-top:18px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}
@media (max-width:760px){.ft{grid-template-columns:1fr;gap:24px}.ft-n{grid-template-columns:1fr 1fr;gap:18px 20px}}

/* ---------- telefono: l'hero non finisce sotto l'header, scorciatoie su due righe più grandi ---------- */
@media (max-width:700px){
 .hero{height:auto!important;padding-top:104px!important;padding-bottom:44px!important}
 .quick{grid-template-columns:repeat(3,minmax(0,1fr))!important;row-gap:18px!important;max-width:420px}
 .quick a{font-size:.85rem!important}
 .quick i{width:58px!important;height:58px!important}
}


/* ============ titolo dell'hero: la seconda riga non copre più la virgola ============ */
.hero .hl{line-height:1.02!important}
.hero .hl span{display:inline-block;padding-top:.04em}

/* ============ menu su telefono e tablet: griglia 3×3 di riquadri con icona ============ */
#menu a[href="#eventi"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}
#menu a[href="#circolari"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M14 3v5h5M9 13h7M9 17h5'/%3E%3C/svg%3E")}
#menu a[href="#consiglio"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10l9-6 9 6M5 10v9M9.5 10v9M14.5 10v9M19 10v9M3 21h18'/%3E%3C/svg%3E")}
#menu a[href="#sondaggi"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 20V11M12 20V4M19 20v-6'/%3E%3C/svg%3E")}
#menu a[href="#segnalazioni"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3Cpath d='M8 9.5h8M8 12.5h5'/%3E%3C/svg%3E")}
#menu a[href="#kit"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4.5A1.5 1.5 0 0 1 6.5 3H19v15H6.5A1.5 1.5 0 0 0 5 19.5z'/%3E%3Cpath d='M5 19.5A1.5 1.5 0 0 0 6.5 21H19v-3M9 7.5h6'/%3E%3C/svg%3E")}
#menu a[href="#libri"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5c3-1 6-1 8 1v14c-2-2-5-2-8-1zM20 5c-3-1-6-1-8 1v14c2-2 5-2 8-1z'/%3E%3C/svg%3E")}
#menu a[href="#merch"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 11.2a2 2 0 0 1-2 1.8H8.2a2 2 0 0 1-2-1.8z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E")}
#menu a[href="#noi"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Ccircle cx='16.5' cy='9' r='2.6'/%3E%3Cpath d='M3 19c0-3.3 2.7-5.5 6-5.5s6 2.2 6 5.5M14.5 14c3.5-.6 6.5 1.4 6.5 5'/%3E%3C/svg%3E")}
#menu a[href="#accedi"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/%3E%3C/svg%3E")}
#menu a:nth-of-type(1){--i:1}#menu a:nth-of-type(2){--i:2}#menu a:nth-of-type(3){--i:3}#menu a:nth-of-type(4){--i:4}#menu a:nth-of-type(5){--i:5}#menu a:nth-of-type(6){--i:6}#menu a:nth-of-type(7){--i:7}#menu a:nth-of-type(8){--i:8}#menu a:nth-of-type(9){--i:9}#menu a:nth-of-type(10){--i:10}#menu a:nth-of-type(11){--i:11}
@media (max-width:1099px){
 #menu:not([hidden]){grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding:12px!important}
 #menu .mgl,#menu .nav-more-w{display:none!important}
 #menu a{position:relative;display:grid!important;justify-items:center;align-content:start;gap:8px;min-height:92px;padding:12px 6px 10px!important;border-radius:18px!important;
  background:var(--tint)!important;color:var(--ink)!important;text-align:center;text-decoration:none;font:600 .84rem/1.2 var(--body)!important;letter-spacing:0!important;transition:transform .15s,background .2s}
 #menu a::before{content:"";width:46px;height:46px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
 #menu a::after{content:"";position:absolute;top:24px;left:50%;width:22px;height:22px;margin-left:-11px;background:var(--lane);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
 #menu a.on{background:color-mix(in srgb,var(--lane) 16%,transparent)!important;color:var(--lane)!important}
 #menu a.on::before{box-shadow:inset 0 0 0 2px var(--lane)}
 #menu a.nav-cta::before{background:var(--lane);box-shadow:0 8px 18px -8px var(--glow)}
 #menu a.nav-cta::after{background:var(--lane-ink)}
 #menu a:active{transform:scale(.94)}
 #menu #accLink{grid-column:1/-1;display:flex!important;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 16px!important;
  background:transparent!important;border:1px solid var(--cl);color:var(--ink)!important;font-size:.95rem!important}
 #menu #accLink::before{display:none}
 #menu #accLink::after{position:static;margin:0;width:20px;height:20px;background:var(--ink)}
}
/* telefono: il foglio sale dal tasto "Altro", lo sfondo si scurisce, i riquadri entrano uno dopo l'altro */
.is-phone #menu:not([hidden]){border-radius:26px!important;transform-origin:85% 100%;animation:mnSheet .46s cubic-bezier(.2,1.25,.35,1) both!important}
.is-phone body:has(#menu:not([hidden]))::after{content:"";position:fixed;inset:0;z-index:25;background:rgba(4,6,12,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:mnFade .3s ease both}
.bnav [data-k=altro] svg{transition:transform .35s cubic-bezier(.2,1.3,.4,1)}
.bnav.menu-open [data-k=altro] svg{transform:rotate(90deg) scale(1.1)}
@media (prefers-reduced-motion:no-preference){
 #menu:not([hidden]) a{animation:mnTile .42s cubic-bezier(.2,1.35,.4,1) both;animation-delay:calc(var(--i,1) * 32ms + 70ms)}
 #menu:not([hidden]) a::after{animation:mnIcon .5s cubic-bezier(.2,1.5,.4,1) both;animation-delay:calc(var(--i,1) * 32ms + 140ms)}
}
@keyframes mnSheet{from{opacity:0;transform:translateY(26px) scale(.9)}}
@keyframes mnFade{from{opacity:0}}
@keyframes mnTile{from{opacity:0;transform:translateY(14px) scale(.9)}}
@keyframes mnIcon{from{opacity:0;transform:scale(.4) rotate(-20deg)}}
@media (prefers-reduced-motion:reduce){.is-phone #menu:not([hidden]){animation:none!important}}
/* computer: anche il menu "Altro" in alto si apre con un'animazione */
@media (min-width:1100px) and (prefers-reduced-motion:no-preference){
 .nav-pop:not([hidden]){transform-origin:20% 0;animation:mnDrop .28s cubic-bezier(.2,1.2,.4,1) both}
 .nav-pop:not([hidden]) a{animation:mnTile .32s cubic-bezier(.2,1.2,.4,1) both}
 .nav-pop:not([hidden]) a+a{animation-delay:.05s}
}
@keyframes mnDrop{from{opacity:0;transform:translateY(-8px) scale(.96)}}
@media (max-width:1099px){
 #menu a,.is-phone #menu a.nav-cta{color:var(--ink)!important}
 #menu a.on{color:var(--lane)!important}
 #menu a{overflow-wrap:anywhere;hyphens:auto;font-size:.8rem!important}
 #menu #accLink::after{order:-1}
}
@media (max-width:1099px){#menu a{justify-items:stretch}#menu a::before{justify-self:center}}
@media (max-width:1099px){html #menu a,.is-phone #menu a{white-space:normal!important;padding:12px 4px 10px!important;border-radius:18px!important}html #menu #accLink,.is-phone #menu #accLink{padding:0 16px!important}}
/* menu "Altro" su computer: le voci allineate a sinistra (non ereditano il margine dei link della barra) */
#menu .nav-pop a{margin:0!important;text-align:left;justify-self:stretch;order:0!important}

/* ============ Area riservata: passaggi animati, niente scatti ============ */
@media (prefers-reduced-motion:no-preference){
 #step1.st-in .area-t,#step1.st-in .area-s{animation:stUp .45s cubic-bezier(.2,.9,.3,1) backwards}
 #step1.st-in .rcard{animation:stUp .5s cubic-bezier(.2,.9,.3,1) backwards}
 #step1.st-in .rcard+.rcard{animation-delay:70ms}
 #step2.st-in,#loggedIn.st-in>.auth-card{animation:stCard .5s cubic-bezier(.2,1.1,.35,1) backwards}
 #step2.st-in>*,#loggedIn.st-in>.auth-card>*{animation:stUp .45s cubic-bezier(.2,.9,.3,1) backwards;animation-delay:calc(var(--k,0) * 45ms + 90ms)}
 #step2>:nth-child(2),#loggedIn .auth-card>:nth-child(2){--k:1}#step2>:nth-child(3),#loggedIn .auth-card>:nth-child(3){--k:2}
 #step2>:nth-child(4),#loggedIn .auth-card>:nth-child(4){--k:3}#step2>:nth-child(n+5),#loggedIn .auth-card>:nth-child(n+5){--k:4}
}
@keyframes stUp{from{opacity:0;transform:translateY(14px)}}
@keyframes stCard{from{opacity:0;transform:translateY(22px) scale(.97)}}
/* sui telefoni il "passaggio del mouse" resta attaccato dopo il tocco: le card non devono restare sollevate */
@media (hover:none){
 .rcard:hover,.item:hover,.poll:hover,.rep:hover,.lb-card:hover,.mx-card:hover{transform:none!important}
 .rcard:active{transform:scale(.97)!important;transition-duration:.08s}
}
/* l effetto "onda" al tocco sta sopra il pulsante, non dentro la sua impaginazione (prima gonfiava le card) */
.rip{position:absolute!important;z-index:0!important}
/* nessuna pagina deve poter scorrere di lato sul telefono */
html,body{overflow-x:clip}
