/*
Theme Name: Piano City Napoli 2026
Theme URI: https://www.pianocitynapoli.it
Author: Seedera Lab
Description: Tema del festival Piano City Napoli, edizione 2026. Direzione "riggiole napoletane": quattro smalti del logo su bianco di smalto, piastrelle di misure diverse, Jost e Schibsted Grotesk self-hosted. Vedi DESIGN.md nel repo.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: pianocity
*/

/* Font in locale (assets/fonts): niente chiamate a terzi */
@font-face{font-family:'Jost';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/jost-italic-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Jost';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/jost-italic-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/jost-normal-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/jost-normal-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/jost-normal-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/jost-normal-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/jost-normal-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Jost';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/jost-normal-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/jost-normal-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Jost';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/jost-normal-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Schibsted Grotesk';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/schibsted-grotesk-italic-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Schibsted Grotesk';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/schibsted-grotesk-italic-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/schibsted-grotesk-normal-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ——— Tokens: la palette e' quella del logo 2026 ——— */
:root{
  --rosso:#A8404F; --rosso-cotto:#8E3342; --rosso-chiaro:#C9646F;
  --azzurro:#52AAC2; --azzurro-fondo:#3E8FA6; --azzurro-chiaro:#8CC7D6;
  --giallo:#E3C96A; --giallo-fondo:#C9AD45; --giallo-chiaro:#EFDF9E; --oro:#D4A72C;
  --nero:#111111; --nero-morbido:#1F1E1C;
  --smalto:#FBFBF9;           /* bianco di smalto: il fondo */
  --fuga:#E4E0D6;             /* la fuga fra le piastrelle */
  --inchiostro:#171614;
  --inchiostro-2:#4A4741;
  --su-rosso:#FFF6F3; --su-azzurro:#0D2B33; --su-giallo:#2A230B; --su-nero:#F5F2EA;
  --display:"Jost",system-ui,sans-serif;
  --testo:"Schibsted Grotesk",system-ui,sans-serif;
  --gap:6px; --raggio:6px;
  --ombra:0 14px 34px -18px rgba(23,22,20,.45), 0 3px 8px -4px rgba(23,22,20,.25);
  --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--smalto);color:var(--inchiostro);font:400 17px/1.55 var(--testo);overflow-x:hidden}
.num,.giorno .num,.evento .data b,.anno b{font-variant-numeric:tabular-nums}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1.5px;text-underline-offset:.18em}
h1,h2,h3,h4{font-family:var(--display);line-height:1.02;margin:0;letter-spacing:-.015em;text-wrap:balance}
p{margin:0}
::selection{background:var(--giallo);color:var(--su-giallo)}
:focus-visible{outline:3px solid var(--azzurro);outline-offset:3px;border-radius:4px}
button{font:inherit;cursor:pointer}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--fuga)}
::-webkit-scrollbar-thumb{background:var(--rosso);border:3px solid var(--fuga);border-radius:8px}
html{scrollbar-color:var(--rosso) var(--fuga)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cont{width:min(1240px,100% - 32px);margin-inline:auto}
.malta{background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap))}

/* ——— Piastrella: il modulo della pagina ——— */
.pst{position:relative;border-radius:var(--raggio);padding:22px;overflow:hidden;isolation:isolate;
  background:var(--smalto);color:var(--inchiostro)}
.pst::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(120% 90% at 12% 8%,rgba(255,255,255,.42),rgba(255,255,255,0) 55%),
             linear-gradient(160deg,rgba(255,255,255,.08),rgba(0,0,0,.06));
  mix-blend-mode:soft-light}
.pst:nth-child(3n)::before{background-position:30% 20%;opacity:.8}.pst:nth-child(3n+1)::before{transform:scaleX(-1)}.pst:nth-child(5n)::before{filter:brightness(1.08)}
.pst.rosso{background:var(--rosso);color:var(--su-rosso)}
.pst.azzurro{background:var(--azzurro);color:var(--su-azzurro)}
.pst.giallo{background:var(--giallo);color:var(--su-giallo)}
.pst.nero{background:var(--nero);color:var(--su-nero)}
.pst.nero::before{background:radial-gradient(120% 90% at 12% 8%,rgba(255,255,255,.14),transparent 55%)}
.pst .sotto{font-size:14px;letter-spacing:.02em;opacity:.86}
.pst.rosso .sotto{color:#F6D7DA}.pst.azzurro .sotto{color:#123A44}.pst.giallo .sotto{color:#4A3F14}.pst.nero .sotto{color:#CFC8B8}
a.pst{text-decoration:none;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
a.pst:hover{transform:translateY(-3px);box-shadow:var(--ombra)}
a.pst:hover::after{content:"";position:absolute;inset:-40% -20%;z-index:-1;pointer-events:none;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.28) 50%,transparent 60%);
  animation:lucido .9s var(--ease) 1}
@keyframes lucido{from{transform:translateX(-45%)}to{transform:translateX(45%)}}

/* ——— Testata ——— */
.testata{position:sticky;top:0;z-index:50;background:rgba(251,251,249,.86);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--fuga)}
.testata .cont{display:flex;align-items:center;gap:20px;min-height:92px}
.marchio img{height:84px;width:auto}
.nav{display:none;gap:4px;margin-left:auto}
.nav a{font:500 15px/1 var(--display);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;padding:12px 12px;border-radius:5px;transition:background .25s var(--ease)}
.nav a:hover{background:var(--fuga)}
.cta{display:inline-flex;align-items:center;gap:10px;font:600 15px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;background:var(--rosso);color:var(--su-rosso);padding:14px 18px;border-radius:5px;border:0;transition:background .25s var(--ease),transform .25s var(--ease)}
.cta:hover{background:var(--rosso-cotto);transform:translateY(-1px)}
.cta.attesa{background:transparent;color:var(--inchiostro);box-shadow:inset 0 0 0 2px var(--inchiostro)}
.cta.attesa:hover{background:var(--fuga);transform:none}
.cta.chiaro{background:var(--smalto);color:var(--inchiostro)}.cta.chiaro:hover{background:#fff}
.cta.contorno{background:transparent;color:inherit;box-shadow:inset 0 0 0 2px currentColor}
.cta.contorno:hover{background:rgba(255,255,255,.12)}
/* Bottone del menu: una piastrella tonda di smalto rosso; aperto diventa la X su fondo chiaro */
.menu-btn{position:relative;margin-left:auto;flex:none;width:52px;height:52px;border-radius:50%;border:0;padding:0;cursor:pointer;display:grid;place-content:center;gap:5px;
  background:var(--rosso);box-shadow:0 10px 20px -12px rgba(142,51,66,.8),0 2px 4px -2px rgba(23,22,20,.25);
  -webkit-tap-highlight-color:transparent;transition:background .3s var(--ease),transform .25s var(--ease),box-shadow .3s var(--ease)}
.menu-btn:hover{background:var(--rosso-cotto)}
.menu-btn:active{transform:scale(.93)}
.menu-btn:focus-visible{outline:3px solid var(--azzurro);outline-offset:3px}
.menu-btn span{display:block;width:22px;height:2px;border-radius:2px;background:var(--su-rosso);transition:transform .5s var(--ease),opacity .2s var(--ease),background .3s var(--ease)}
.menu-btn[aria-expanded="true"]{background:var(--su-rosso);box-shadow:0 10px 24px -12px rgba(23,22,20,.6)}
.menu-btn[aria-expanded="true"] span{background:var(--rosso)}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(.2)}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (min-width:960px){.nav{display:flex}.menu-btn{display:none}.testata .cta{margin-left:8px}}
@media (max-width:959px){.testata .cta{display:none}}
@media (max-width:560px){.testata .cont{min-height:80px}.marchio img{height:72px}}
/* Menu mobile: lo smalto rosso si allarga dal bottone fino a coprire lo schermo (--mx/--my/--mr li misura site.js) */
.menu-mobile{position:fixed;inset:0;z-index:60;display:flex;overflow-y:auto;overscroll-behavior:contain;background:var(--rosso);color:var(--su-rosso);
  clip-path:circle(0px at var(--mx,calc(100% - 42px)) var(--my,46px));transition:clip-path .5s cubic-bezier(.6,0,.4,1)}
.menu-mobile[hidden]{display:none}
.menu-mobile[data-aperto="true"]{clip-path:circle(var(--mr,150vmax) at var(--mx,calc(100% - 42px)) var(--my,46px));transition-duration:.75s;transition-timing-function:cubic-bezier(.7,0,.15,1)}
.menu-mobile .cont{display:flex;flex-direction:column;justify-content:center;flex:none;padding-top:112px;padding-bottom:40px}
.menu-mobile a:not(.cta){display:block;padding:14px 0 12px;font:600 clamp(2.1rem,10vw,3.4rem)/1 var(--display);letter-spacing:-.02em;text-transform:uppercase;text-decoration:none;color:var(--su-rosso);
  border-bottom:1px solid rgba(255,246,243,.24);opacity:0;transform:translateY(22px);transition:opacity .2s var(--ease),transform .2s var(--ease),padding .35s var(--ease)}
.menu-mobile a:not(.cta):hover,.menu-mobile a:not(.cta):focus-visible{padding-left:10px;outline:0}
.menu-mobile a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--giallo);text-decoration-thickness:4px;text-underline-offset:8px}
.menu-mobile .cta{align-self:flex-start;margin-top:32px;opacity:0;transform:translateY(22px);transition:opacity .2s var(--ease),transform .2s var(--ease),background .25s var(--ease)}
.menu-mobile .cta:focus-visible{outline:3px solid var(--giallo);outline-offset:3px}
.menu-mobile[data-aperto="true"] a{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .6s var(--ease),padding .35s var(--ease),background .25s var(--ease);transition-delay:calc(.28s + var(--i,0) * .055s)}
.menu-mobile[data-aperto="true"] a:hover{transition-delay:0s}
body.menu-aperto{overflow:hidden}
body.menu-aperto .testata{z-index:70;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent}
body.menu-aperto .marchio{opacity:0;visibility:hidden}
.marchio{transition:opacity .3s var(--ease),visibility .3s}
@media (min-width:960px){.menu-mobile{display:none!important}}
@media (prefers-reduced-motion:reduce){
  .menu-mobile,.menu-mobile[data-aperto="true"]{clip-path:none;opacity:0;transition:opacity .2s linear}
  .menu-mobile[data-aperto="true"]{opacity:1}
  .menu-mobile a,.menu-mobile[data-aperto="true"] a{opacity:1;transform:none;transition:none}
  .menu-btn span{transition:none}
}

/* ——— Mosaico d'apertura ——— */
.apertura{padding:clamp(18px,3vw,40px) 0 clamp(28px,4vw,56px)}
.mosaico{display:grid;background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(150px,auto)}
.mosaico .titolo{grid-column:1/-1;padding:clamp(26px,4vw,52px);order:1}
.mosaico .manifesto-tile{order:2}.mosaico .giorno{order:3}
@media (min-width:700px){.mosaico>*{order:0}}
@media (max-width:699px){.mosaico{background:none;padding:0;border-radius:0}.mosaico .titolo{padding:12px 0 20px;background:none}.mosaico .titolo::before{display:none}}
/* da mobile le vele salgono nel bianco sotto le piastrelle dei giorni: lo spazio e' mezza barchetta */
@media (max-width:899px){.apertura{padding-bottom:calc(min(220px,52vw) / 2 + 12px)}}
.mosaico .titolo h1{font-size:clamp(2.5rem,6.2vw,4.9rem);font-weight:600;letter-spacing:-.03em;max-width:14ch}
.mosaico .titolo h1 em{font-style:normal;color:var(--rosso)}
.mosaico .titolo p{max-width:44ch;font-size:clamp(17px,1.35vw,21px);margin-top:18px;color:var(--inchiostro-2)}
.mosaico .azioni{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.giorno{display:flex;flex-direction:column;justify-content:space-between;min-height:150px;text-decoration:none;cursor:pointer;border:0;text-align:left;font:inherit;color:inherit}
.giorno .num{font:600 clamp(3.6rem,7vw,5.4rem)/0.9 var(--display);letter-spacing:-.04em}
/* Il "1" a cifre tabellari ha 0,07em di vuoto a sinistra: senza correzione il numero
   parte 4px dopo l'etichetta (Ercole, 30/09). */
.giorno .num{margin-left:-.07em}
.giorno .nome{font:500 15px/1 var(--display);letter-spacing:.12em;text-transform:uppercase}
.giorno .mese{font:400 15px/1.3 var(--testo)}.giorno .mese small{font-size:13px;opacity:.85}
.giorno[aria-pressed="true"]{box-shadow:inset 0 0 0 4px rgba(23,22,20,.75),var(--ombra)}
.pst.giorno{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.pst.giorno:hover{transform:translateY(-3px)}
.edizione{display:flex;flex-direction:column;justify-content:space-between}
.edizione .xii{font:600 clamp(3rem,6vw,4.6rem)/0.9 var(--display);letter-spacing:-.02em}
.gratis{display:flex;flex-direction:column;justify-content:space-between}
.gratis strong{font:600 clamp(1.5rem,2.4vw,2rem)/1.05 var(--display);letter-spacing:-.01em}
.decoro{padding:0;min-height:150px}
.decoro svg{width:100%;height:100%;position:absolute;inset:0}
.foto{padding:0;background:#D9D4C8 center/cover no-repeat;min-height:150px;display:grid;place-items:end start}
.foto .didascalia{margin:12px;font-size:12px;line-height:1.35;color:#3B372F;background:rgba(251,251,249,.88);padding:6px 9px;border-radius:4px}
.manifesto-tile{padding:0;background:var(--rosso);display:block;min-height:0}
.manifesto-tile img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
@media (max-width:699px){.manifesto-tile{grid-column:1/-1;aspect-ratio:1131/1600}}
@media (min-width:700px){
  .mosaico{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(170px,auto)}
  .mosaico .titolo{grid-column:1/3;grid-row:1/3}
  .mosaico .manifesto-tile{grid-column:3/5;grid-row:1/3}
}
@media (min-width:1040px){
  .mosaico{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(190px,auto)}
  .mosaico .titolo{grid-column:1/3;grid-row:1/3}
  .mosaico .manifesto-tile{grid-column:3/5;grid-row:1/3;height:clamp(560px,76vh,740px)}
  .mosaico .giorno{grid-row:3}
}

/* ——— Fascia nera: il manifesto ——— */
.manifesto{background:var(--nero);color:var(--su-nero);padding:clamp(44px,6vw,88px) 0;position:relative;overflow-x:clip}
.manifesto .cont{display:grid;gap:32px;grid-template-columns:1fr}
.manifesto h2{font-size:clamp(1.9rem,4vw,3.3rem);font-weight:500;letter-spacing:-.02em;max-width:22ch}
.manifesto h2 mark{background:none;color:var(--giallo)}
.manifesto p{max-width:58ch;color:#CFC8B8;font-size:clamp(16px,1.2vw,19px)}
.manifesto .note{width:min(300px,50vw);justify-self:end;align-self:end}
/* Le barche stanno a cavallo del bordo superiore: le vele escono dal nero. */
.manifesto .barche{--lato:min(220px,52vw);width:var(--lato);height:auto;order:-1;justify-self:center;position:relative;z-index:2;margin:calc(-1 * (clamp(44px,6vw,88px) + var(--lato) / 2)) 0 -12px 0;filter:drop-shadow(0 18px 28px rgba(0,0,0,.35))}
@media (min-width:900px){.manifesto .cont{grid-template-columns:1.4fr 1fr;align-items:start}.manifesto .cont>div{align-self:center}.manifesto .barche{grid-column:2;order:0;justify-self:center;width:min(600px,118%);margin:calc(-1 * clamp(44px,6vw,88px) - 30px) 0 -12px}}

/* ——— Sezioni ——— */
.sez{padding:clamp(48px,7vw,104px) 0}
.sez-testa{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 40px;margin-bottom:28px}
.sez h2{font-size:clamp(2rem,4.4vw,3.6rem);font-weight:600;letter-spacing:-.025em}
.sez-testa p{max-width:52ch;color:var(--inchiostro-2)}
.fuga-sopra{border-top:1px solid var(--fuga)}

/* Tipologie: piastrelle di misure diverse */
.tipi{display:grid;background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(150px,auto)}
.tipi .pst{display:flex;flex-direction:column;justify-content:space-between;min-height:150px}
.tipi h3{font-size:clamp(1.5rem,2.6vw,2.4rem);font-weight:600;letter-spacing:-.02em}
.tipi p{margin-top:12px;max-width:34ch}
.tipi .conto{display:block;font:500 13px/1.2 var(--display);letter-spacing:.06em;text-transform:uppercase;margin-top:10px;white-space:nowrap}
.tipi .house{grid-column:1/-1}
.tipi .edu{background:#EFEDE6}
@media (min-width:760px){
  .tipi{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(180px,auto)}
  .tipi .house{grid-column:1/4;grid-row:1/3}
  .tipi .city{grid-column:4/7;grid-row:1}
  .tipi .main{grid-column:4/6;grid-row:2}
  .tipi .kids{grid-column:6;grid-row:2}
  .tipi .edu{grid-column:1/-1;grid-row:3;flex-direction:row;align-items:center;gap:28px;min-height:0}
  .tipi .edu p{margin-top:0}
}

/* Anteprima del festival (home): foto grande e piastrella nera con quando, dove, prenotazione */
.ant-mosaico{display:grid;gap:var(--gap);padding:var(--gap);background:var(--fuga);border-radius:calc(var(--raggio) + var(--gap));grid-template-columns:1fr}
.ant-foto{padding:0;aspect-ratio:16/10;background:var(--nero)}
.ant-foto::before{display:none}
.ant-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:72% 40%;transition:transform 1.2s var(--ease)}
.ant-foto:hover img{transform:scale(1.03)}
.ant-info{display:flex;flex-direction:column;gap:18px;padding:clamp(24px,3vw,40px)}
.ant-info h2{font:600 15px/1 var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--giallo)}
.ant-quando{display:flex;align-items:end;gap:14px;font:400 15px/1.3 var(--testo);color:var(--nero-sotto,#CFC8B8)}
.ant-quando .num{font:600 clamp(4.2rem,9vw,6rem)/.82 var(--display);letter-spacing:-.04em;color:var(--su-nero)}
.ant-info h3{font:600 clamp(1.7rem,3vw,2.6rem)/1.04 var(--display);letter-spacing:-.02em;text-wrap:balance}
.ant-info h3 a{color:inherit;text-decoration:none}
.ant-info h3 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.ant-testo{max-width:46ch;color:#CFC8B8}
.ant-dove{display:flex;gap:8px;align-items:start;font-size:15px}
.ant-dove svg,.ant-dettagli svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ant-dove svg{margin-top:3px}
.ant-info .azioni{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:auto;padding-top:6px}
.ant-dettagli{display:inline-flex;align-items:center;gap:8px;font:500 15px/1 var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--su-nero);text-decoration:none;padding:10px 0}
.ant-dettagli:hover{color:var(--giallo)}.ant-dettagli:hover svg{transform:translateX(3px)}.ant-dettagli svg{transition:transform .25s var(--ease)}
.ant-ingresso{font:500 14px/1.2 var(--display);letter-spacing:.04em;text-transform:uppercase}
@media (min-width:860px){
  .ant-mosaico{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
  .ant-foto{aspect-ratio:auto;min-height:520px}
}

/* Programma: anteprima con filtro per giorno */
.programma{background:var(--smalto)}
.filtri{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.filtri+.filtri{margin-bottom:18px}
.filtro.sez{border-color:var(--rosso);color:var(--rosso)}.filtro.sez[aria-pressed="true"]{background:var(--rosso);color:var(--su-rosso)}
.filtro.sez.off{border-color:var(--oro);color:#7A5A0B}.filtro.sez.off[aria-pressed="true"]{background:var(--oro);color:var(--su-giallo)}
.filtro small{display:block;font:400 11px/1.1 var(--testo);letter-spacing:0;text-transform:none;margin-top:3px;opacity:.9}
.conteggio{margin-top:14px;font-size:14px;color:var(--inchiostro-2)}
.evento.confoto{background-size:cover;background-position:center 30%}.evento.confoto::before{background:linear-gradient(to top,rgba(17,17,17,.88) 45%,rgba(17,17,17,.15));mix-blend-mode:normal}.evento.confoto{color:var(--su-nero)}.evento.confoto .stato,.evento.confoto .tipo{background:rgba(255,255,255,.16)}
.evento .sezione{font:500 11px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:4px;background:rgba(255,255,255,.55);color:var(--inchiostro);align-self:start}.evento .sezione.off{background:var(--oro);color:var(--su-giallo);box-shadow:inset 0 0 0 1.5px rgba(42,35,11,.35)}.evento .capo{justify-content:space-between;align-items:start;gap:12px}
.filtro{font:500 15px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;background:transparent;border:2px solid var(--inchiostro);color:var(--inchiostro);padding:12px 16px;border-radius:5px;transition:all .25s var(--ease)}
.filtro:hover{background:var(--fuga)}
.filtro[aria-pressed="true"]{background:var(--inchiostro);color:var(--su-nero)}
.eventi{display:grid;background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));gap:var(--gap);grid-template-columns:1fr}
@media (min-width:560px){.eventi{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:960px){.eventi{grid-template-columns:repeat(3,minmax(0,1fr))}}
.evento{display:flex;flex-direction:column;min-height:250px;text-decoration:none}
.evento .capo{display:flex}
.evento .chip{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.evento .tipo{font:600 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:4px;background:rgba(0,0,0,.14);box-shadow:inset 0 0 0 1.5px currentColor}
.pst.rosso .tipo{background:rgba(255,255,255,.18)}
.evento .data{text-align:right;font-family:var(--display);line-height:.9}
.evento .data b{display:block;font-size:2.4rem;font-weight:600;letter-spacing:-.03em}
.evento .data span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.evento h3{font-size:clamp(1.25rem,1.6vw,1.5rem);font-weight:600;margin-top:auto;padding-top:22px;letter-spacing:-.015em}
.evento .dove{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:14px}
.evento .dove span{display:inline-flex;align-items:center;gap:6px}
.evento .dove svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.evento .stato{font:500 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:4px;background:rgba(0,0,0,.14)}
.pst.rosso .stato{background:rgba(255,255,255,.18)}
.evento[hidden]{display:none}
.avviso{margin-top:18px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between}
.avviso p{color:var(--inchiostro-2);max-width:60ch}
.avviso .etichetta{font:500 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--inchiostro-2);border:1px solid var(--fuga);padding:6px 8px;border-radius:4px;margin-right:8px;vertical-align:middle}

/* Come funziona */
.passi{display:grid;background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));gap:var(--gap);grid-template-columns:1fr}
.passo{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;min-height:0}
.passo .n{font:600 clamp(3rem,5vw,4.2rem)/0.85 var(--display);letter-spacing:-.04em}
.passo h3{font-size:1.35rem;font-weight:600;margin-bottom:8px}
.passo p{max-width:48ch}
@media (min-width:860px){.passi{grid-template-columns:repeat(3,minmax(0,1fr))}.passo{grid-template-columns:1fr;gap:38px}}
.regole{margin-top:var(--gap);display:grid;background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));gap:var(--gap);grid-template-columns:1fr}
.regole .pst{display:flex;gap:16px;align-items:start}
.regole svg{flex:0 0 26px;width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
@media (min-width:860px){.regole{grid-template-columns:1fr 1fr}}

/* Luoghi: mosaico dei quartieri */
.luoghi{display:grid;background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(96px,auto);grid-auto-flow:dense}
.luogo{display:flex;flex-direction:column;justify-content:end;text-decoration:none;padding:16px;min-height:96px}
.luogo b{font:600 clamp(1rem,1.5vw,1.35rem)/1.05 var(--display);letter-spacing:-.01em}
.luogo small{font-size:13px;margin-top:6px;opacity:.85}
.luogo.grande b{font-size:clamp(1.4rem,2.4vw,2.2rem)}
@media (min-width:760px){
  .luoghi{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(120px,auto)}
  .luogo.grande{grid-column:span 2;grid-row:span 2}
}
.sedi-t{margin-top:32px;margin-bottom:10px;font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.nota-sedi{margin-top:18px;font-size:14px;color:var(--inchiostro-2);max-width:70ch}
.luogo .acc{display:flex;gap:10px;margin-top:10px;font-size:12px;opacity:.9}.luogo .acc span{display:inline-flex;align-items:center;gap:5px}.luogo .acc svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sedi{columns:1;gap:40px;color:var(--inchiostro-2);font-size:15px}
.sedi li{break-inside:avoid;padding:9px 0;border-bottom:1px solid var(--fuga)}
.sedi ul{list-style:none;margin:0;padding:0}
@media (min-width:700px){.sedi{columns:2}}
@media (min-width:1040px){.sedi{columns:3}}

/* Edizioni */
.edizioni{display:grid;background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:560px){.edizioni{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:960px){.edizioni{grid-template-columns:repeat(6,minmax(0,1fr))}}
.anno{aspect-ratio:1;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;padding:14px}
.anno.ritaglio{background-size:cover;background-position:center top;color:#fff;aspect-ratio:3/4}
.anno.ritaglio::before{background:linear-gradient(to top,rgba(17,17,17,.82) 28%,rgba(17,17,17,0) 60%);mix-blend-mode:normal}
.anno.ritaglio small{align-self:flex-start;background:rgba(251,251,249,.9);color:var(--inchiostro);padding:5px 7px;border-radius:4px}
.anno.ritaglio b{text-shadow:0 1px 2px rgba(0,0,0,.4)}
.anno.tutte{background:var(--rosso);color:var(--su-rosso);aspect-ratio:3/4}.anno.tutte small{color:#F6D7DA;font-weight:400;text-transform:none;letter-spacing:0;font-size:13px}.anno.tutte b{font-size:clamp(1.3rem,1.8vw,1.7rem);line-height:1.05}.anno.tutte .freccia{display:block;font:600 2rem/1 var(--display);margin-top:10px}
.anno b{font:600 clamp(1.5rem,2.4vw,2.1rem)/0.9 var(--display);letter-spacing:-.03em}
.anno small{font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;opacity:.85}

/* Chiusura */
.chiusura{background:var(--nero);color:var(--su-nero);padding:clamp(44px,6vw,80px) 0 32px}
.chiusura .griglia{display:grid;gap:40px;grid-template-columns:1fr}
.chiusura h2{font-size:clamp(2rem,4.4vw,3.4rem);font-weight:500;letter-spacing:-.025em;max-width:18ch}
.chiusura h2 mark{background:none;color:var(--azzurro)}
.chiusura p{color:#CFC8B8;max-width:50ch}
.chiusura .col h3{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:#9B9384;margin-bottom:14px}
.chiusura .col a{display:block;text-decoration:none;padding:6px 0;font-size:17px}
.chiusura .col a:hover{color:var(--giallo)}
.social{display:flex;gap:4px;margin-top:14px;margin-left:-12px}
.social a,.chiusura .col .social a{display:grid;place-items:center;width:46px;height:46px;padding:0;border-radius:5px;transition:color .25s var(--ease)}
.social a:hover{color:var(--rosso)}
.social svg{width:22px;height:22px;fill:currentColor;stroke:none}
.prefooter{background:var(--smalto);border-top:1px solid var(--fuga);padding:clamp(28px,4vw,48px) 0}
.partner{display:flex;flex-wrap:wrap;gap:28px 40px;align-items:stretch;padding:0}
.partner .blocco{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.partner .blocco+.blocco{border-left:1px solid var(--fuga);padding-left:40px}
.partner h3{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--inchiostro-2);margin:0}
.loghi{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:center;flex:1}
.loghi img{height:64px;width:auto;object-fit:contain}
.loghi .manca{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--inchiostro-2);border:1px dashed var(--fuga);padding:18px 14px;border-radius:5px}

/* ——— Pagina Partner: la tavola dei loghi, un logo per piastrella ——— */
.partner-fascia{padding:clamp(20px,3vw,34px)}
.pagina-partner .sez:first-child{padding-bottom:clamp(24px,3vw,40px)}.pagina-partner .sez.fuga-sopra{padding-top:clamp(28px,3.5vw,48px)}
.partner-fascia .loghi{gap:28px}.partner-fascia .loghi img{height:88px}.partner-fascia .loghi .logo-parma{height:78px}.partner-fascia .loghi .logo-napolipiano{height:70px}
@media (max-width:520px){.partner-fascia .loghi img{height:68px}.partner-fascia .loghi .logo-parma{height:60px}.partner-fascia .loghi .logo-napolipiano{height:54px}}
.partner-fascia .partner h2{font:600 clamp(17px,1.5vw,20px)/1.2 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--inchiostro);margin:0}
.muro-loghi{padding:var(--gap);display:grid;gap:var(--gap)}
.pagina-partner .gruppo-loghi{font:600 clamp(17px,1.5vw,20px)/1.2 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--inchiostro);margin:0 0 18px;text-align:center}
.pagina-partner .muro-loghi+.gruppo-loghi{margin-top:clamp(28px,3.5vw,48px)}
.muro-loghi .riga{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap);grid-template-columns:repeat(var(--celle),minmax(0,1fr))}
.muro-loghi .pst{display:grid;place-items:center;padding:18px 16px;min-height:124px}
.muro-loghi img{width:auto;height:auto;max-width:100%;max-height:70px;object-fit:contain}
.muro-loghi .doppia{grid-column:span 2}.muro-loghi .doppia img{max-height:104px}
.muro-loghi .didascalia-logo{margin-top:8px;font:500 12px/1.3 var(--display);letter-spacing:.04em;color:var(--inchiostro-2);text-align:center}
.muro-loghi li:has(.didascalia-logo){align-content:center;gap:0}
/* Le righe della tavola valgono da desktop; sotto, con display:contents, i loghi
   tornano un flusso unico e riempiono le colonne senza buchi. L'ordine non cambia mai. */
@media (max-width:999px){.muro-loghi{grid-template-columns:repeat(4,minmax(0,1fr))}.muro-loghi .riga{display:contents}}
@media (max-width:760px){.muro-loghi{grid-template-columns:repeat(3,minmax(0,1fr))}}
.partner-invito{margin-top:28px;max-width:56ch;color:var(--inchiostro-2)}
@media (max-width:520px){.muro-loghi{grid-template-columns:repeat(2,minmax(0,1fr))}.muro-loghi .pst{min-height:104px;padding:14px 12px}.muro-loghi img{max-height:58px}.muro-loghi .doppia{grid-column:auto}.muro-loghi .doppia img{max-height:64px}}
@media (max-width:700px){.partner .blocco+.blocco{border-left:0;padding-left:0;border-top:1px solid var(--fuga);padding-top:22px}.partner{flex-direction:column}}
.colophon{margin-top:48px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;font-size:14px;color:#9B9384}
.colophon a{text-decoration:none}.colophon a:hover{color:var(--giallo)}
@media (min-width:900px){.chiusura .griglia{grid-template-columns:1.3fr 1fr 1fr}}

/* ——— Un solo movimento: le piastrelle si posano ——— */
@media (prefers-reduced-motion:no-preference){
  .posa{opacity:0;transform:translateY(14px) scale(.985);filter:saturate(.6)}
  .posa.posata{opacity:1;transform:none;filter:none;transition:opacity .7s var(--ease),transform .7s var(--ease),filter .9s var(--ease)}
  .posa.posata:nth-child(2){transition-delay:.06s}.posa.posata:nth-child(3){transition-delay:.12s}.posa.posata:nth-child(4){transition-delay:.18s}
  .posa.posata:nth-child(5){transition-delay:.24s}.posa.posata:nth-child(6){transition-delay:.3s}.posa.posata:nth-child(7){transition-delay:.36s}
  .posa.posata:nth-child(8){transition-delay:.42s}.posa.posata:nth-child(n+9){transition-delay:.48s}
}

/* ——— Pagine interne ——— */
.pagina{padding:clamp(32px,5vw,64px) 0}
.pagina .testa{margin-bottom:28px}.pagina h1{font-size:clamp(2.2rem,5vw,4rem);font-weight:600;letter-spacing:-.03em}
.prosa{max-width:70ch;font-size:17px}.prosa p{margin:0 0 1em}.prosa h2{font-size:1.6rem;margin:1.6em 0 .5em;font-weight:600}.prosa h3{font-size:1.25rem;margin:1.4em 0 .4em;font-weight:600}.prosa ul,.prosa ol{padding-left:1.2em}.prosa img{border-radius:var(--raggio)}
/* scheda evento */
.evento-testa{display:grid;gap:var(--gap);grid-template-columns:1fr}
.evento-testa .pst{min-height:220px;display:flex;flex-direction:column;justify-content:space-between}
.evento-testa h1{font-size:clamp(1.8rem,3.6vw,3rem);font-weight:600;letter-spacing:-.025em;margin-top:26px}
.evento-testa .meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-size:15px}.evento-testa .meta span{display:inline-flex;align-items:center;gap:6px}.evento-testa .meta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.evento-testa .media{padding:0;min-height:220px;background:#111;position:relative}.evento-testa .media iframe,.evento-testa .media img{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
/* Foto dell'artista: intera, mai ritagliata (committente, 25/09); lo spazio che avanza lo riempie la stessa foto sfocata */
.evento-testa .foto-intera img{object-fit:contain}.evento-testa .foto-intera::before{content:"";position:absolute;inset:-40px;background:var(--foto) center/cover no-repeat;filter:blur(28px) brightness(.5) saturate(.9);mix-blend-mode:normal;opacity:1;transform:none}
.video-facciata{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#111;cursor:pointer;display:block}
.video-facciata .play{position:absolute;top:50%;left:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:rgba(17,17,17,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l9 5-9 5z' fill='%23fff'/%3E%3C/svg%3E") center/38px no-repeat;border:2px solid rgba(255,255,255,.8);transition:transform .35s var(--ease),background-color .35s var(--ease)}
.video-facciata:hover .play,.video-facciata:focus-visible .play{transform:scale(1.08);background-color:var(--rosso)}
.video-facciata:focus-visible{outline:3px solid var(--rosso);outline-offset:-3px}
@media (min-width:860px){.evento-testa{grid-template-columns:1.1fr 1fr}.evento-testa .pst{min-height:380px}}
.evento-corpo{display:grid;gap:40px;grid-template-columns:1fr;margin-top:40px}
@media (min-width:900px){.evento-corpo{grid-template-columns:1.4fr 1fr}}
.evento-corpo h2{font-size:1.4rem;font-weight:600;margin-bottom:12px}
.programma-testo{font-size:16px;color:var(--inchiostro-2)}.programma-testo p{margin:0 0 .8em}
.scheda-sede{display:grid;gap:var(--gap)}.scheda-sede .pst{min-height:0}.scheda-sede h3{font-size:1.15rem;font-weight:600;margin-bottom:6px}.scheda-sede p{font-size:15px}
/* Crediti: il logo di chi ospita o presenta il concerto. Arriva come immagine di terzi,
   con proporzioni qualsiasi e a volte il suo fondo nero: il box gli riserva un'altezza
   fissa (niente salto in caricamento) e lo lascia respirare, senza ritagliarlo. */
.crediti{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.crediti .et{font:500 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--inchiostro-2)}
.crediti img{width:auto;height:auto;max-width:100%;max-height:160px;border-radius:4px}
.evento-corpo .crediti{margin-bottom:36px;padding:0;background:none;box-shadow:none;min-height:0}.evento-corpo .crediti::before{display:none}

.raggiungerci{margin-top:48px;padding-top:32px;border-top:1px solid var(--fuga)}
.raggiungerci h2{font-size:1.4rem;font-weight:600;margin-bottom:10px}.raggiungerci p{max-width:70ch;color:var(--inchiostro-2);white-space:pre-line}
.badge-acc{display:inline-flex;align-items:center;gap:6px;font:500 12px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;padding:7px 9px;border-radius:4px;background:rgba(0,0,0,.08)}
.badge-acc svg,.meta svg,.raggiungerci svg{width:15px;height:15px;flex:0 0 15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pst.nero .badge-acc,.pst.rosso .badge-acc{background:rgba(255,255,255,.16)}
/* modulo prenotazione */
.prenota{margin-top:var(--gap)}.prenota form{display:grid;gap:12px}.prenota .persona{display:grid;gap:8px;grid-template-columns:1fr 1fr;padding:12px;border-radius:5px;background:rgba(255,255,255,.35)}
.prenota input[type=text],.prenota input[type=email],.prenota input[type=tel]{font:inherit;padding:12px 12px;border:1.5px solid rgba(0,0,0,.25);border-radius:5px;background:#fff;color:var(--inchiostro);width:100%}
.prenota label{font-size:14px;display:block;line-height:1.45}.prenota label input[type=checkbox]{margin:0 8px 0 0;vertical-align:-2px}.prenota .num{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.prenota .num>span{flex-basis:100%}.prenota .num button{width:40px;height:40px;border-radius:5px;border:1.5px solid currentColor;background:transparent;color:inherit;font:600 20px/1 var(--display)}
.prenota .esito{padding:12px;border-radius:5px;background:rgba(255,255,255,.6);color:var(--inchiostro);display:none}.prenota .esito[data-stato]{display:block}
/* luoghi */
.sedi-lista{display:grid;gap:var(--gap);grid-template-columns:1fr}
@media (min-width:760px){.sedi-lista{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1040px){.sedi-lista{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sede-card{display:flex;flex-direction:column;justify-content:space-between;min-height:220px;text-decoration:none}
.sede-card h3{font-size:clamp(1.3rem,1.8vw,1.7rem);font-weight:600;letter-spacing:-.015em}.sede-card p{font-size:14px;margin-top:8px}.sede-card .acc{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.lista-eventi-sede{margin-top:32px}.lista-eventi-sede h2{font-size:1.4rem;font-weight:600;margin-bottom:14px}
.griglia-malta{display:grid;gap:var(--gap);background:var(--fuga);padding:var(--gap);border-radius:calc(var(--raggio) + var(--gap));grid-template-columns:1fr}
@media (min-width:560px){.griglia-malta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:960px){.griglia-malta{grid-template-columns:repeat(3,minmax(0,1fr))}}
.vuoto{padding:40px;text-align:center;color:var(--inchiostro-2)}
/* elementor nelle pagine: non tocca il nostro contenitore */
.pagina .elementor{max-width:none}
.mt{margin-top:18px}.chip-solo{display:inline-block;font:600 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:4px;background:rgba(0,0,0,.14);box-shadow:inset 0 0 0 1.5px currentColor}
.evento-testa .sezione{font:500 11px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:4px;background:rgba(255,255,255,.55);color:var(--inchiostro);align-self:start}.evento-testa .sezione.off{background:var(--oro);color:var(--su-giallo)}
.evento-testa .chip{display:flex;flex-wrap:wrap;gap:6px}.evento-testa .stato{font:500 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:4px;background:rgba(255,255,255,.22)}
.pst.rosso .meta a,.pst.azzurro .meta a{color:inherit}
.prenota h3 small{font:400 14px/1 var(--testo);letter-spacing:0;text-transform:none}
.sez-testa .h2,h1.h2{font-size:clamp(2rem,4.4vw,3.6rem);font-weight:600;letter-spacing:-.025em}
.pagina .griglia-malta .evento{min-height:250px}
/* programma: testa, barra filtri, gruppi */
.pcn-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.pcn-modal[hidden]{display:none}
.pcn-modal__sfondo{position:absolute;inset:0;background:rgba(17,17,17,.62);backdrop-filter:blur(3px)}
.pcn-modal__box{position:relative;max-width:560px;width:100%;padding:clamp(24px,4vw,40px);box-shadow:var(--ombra)}
.pcn-modal__box h2{font-size:1.6rem;font-weight:600;margin-bottom:14px;padding-right:40px}
.pcn-modal__box p+p{margin-top:10px}
.pcn-modal__x{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;background:var(--fuga);border-radius:5px;font:400 26px/1 var(--display);color:var(--inchiostro)}


.loghi .logo-parma{height:56px}
/* ——— Programma: testa ——— */
.programma-pagina{padding:clamp(32px,4vw,56px) 0 clamp(48px,7vw,96px)}
.prog-testa{display:grid;gap:24px;grid-template-columns:1fr;align-items:start;margin-bottom:28px}
@media (min-width:960px){.prog-testa{grid-template-columns:1fr 1.1fr;gap:40px}}
.prog-testa h1{font-size:clamp(2.4rem,5.4vw,4.4rem);font-weight:600;letter-spacing:-.03em;line-height:.98}
.sotto-titolo{margin-top:14px;color:var(--inchiostro-2);font-size:16px;line-height:1.5}
.avviso-direzione{display:flex;gap:14px;align-items:start;padding:18px 20px;border-radius:var(--raggio);background:var(--giallo);color:var(--su-giallo)}
.avviso-direzione svg{flex:0 0 22px;width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
.avviso-direzione p{font-size:15px;line-height:1.55}.avviso-direzione p+p{margin-top:8px;font-weight:600}
/* ——— Barra filtri fissa ——— */
.barra{position:relative;z-index:40;background:rgba(251,251,249,.94);border-top:1px solid var(--fuga);border-bottom:1px solid var(--fuga);padding:12px 0}
.barra-riga{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.barra-riga+.barra-riga{margin-top:12px}.barra-dettaglio{margin-top:14px}.barra-dettaglio .barra-riga+.barra-riga{margin-top:12px}.riepilogo{margin-top:14px}
.barra-alto{justify-content:space-between}
.cerca{position:relative;flex:1 1 320px;display:flex;align-items:center;min-width:0}
.cerca svg{position:absolute;left:14px;width:18px;height:18px;stroke:var(--inchiostro-2);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.cerca input{width:100%;font:400 16px/1.2 var(--testo);padding:13px 40px 13px 42px;border:1.5px solid var(--fuga);border-radius:999px;background:#fff;color:var(--inchiostro);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.cerca input:focus{outline:0;border-color:var(--inchiostro);box-shadow:0 0 0 3px rgba(82,170,194,.35)}
.cerca input::-webkit-search-cancel-button{-webkit-appearance:none}
.cerca-x{position:absolute;right:8px;width:30px;height:30px;border:0;border-radius:50%;background:var(--fuga);color:var(--inchiostro);font:400 20px/1 var(--display)}
.segmenti{display:inline-flex;padding:4px;border-radius:999px;background:var(--fuga);gap:2px}
.segmenti button{font:600 13px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;padding:11px 16px;border:0;border-radius:999px;background:transparent;color:var(--inchiostro-2);transition:background .25s var(--ease),color .25s var(--ease)}
.segmenti button:hover{color:var(--inchiostro)}
.segmenti button[aria-pressed="true"]{background:var(--inchiostro);color:var(--su-nero)}
.segmenti button.off[aria-pressed="true"]{background:var(--oro);color:var(--su-giallo)}
.apri-filtri{display:none;font:600 13px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;padding:12px 16px;border:1.5px solid var(--inchiostro);border-radius:999px;background:transparent;color:var(--inchiostro);align-items:center;gap:8px}
.apri-filtri .pallino{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--rosso);color:#fff;font-size:11px}
.giorni-tab{display:flex;flex-wrap:wrap;gap:6px}
.giorni-tab button{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;border:0;border-radius:var(--raggio);background:var(--fuga);color:var(--inchiostro);font:500 14px/1 var(--display);letter-spacing:.03em;text-transform:uppercase;transition:background .25s var(--ease),color .25s var(--ease),opacity .25s}
.giorni-tab button strong{font-size:18px;font-weight:600;letter-spacing:-.02em}
.giorni-tab button b{font:600 12px/1 var(--display);padding:5px 7px;border-radius:4px;background:rgba(0,0,0,.08)}
.giorni-tab button[aria-pressed="true"]{background:var(--inchiostro);color:var(--su-nero)}.giorni-tab button[aria-pressed="true"] b{background:rgba(255,255,255,.18)}
.giorni-tab button[data-giorno="2026-10-16"][aria-pressed="true"]{background:var(--rosso)}.giorni-tab button[data-giorno="2026-10-17"][aria-pressed="true"]{background:var(--azzurro);color:var(--su-azzurro)}.giorni-tab button[data-giorno="2026-10-18"][aria-pressed="true"]{background:var(--giallo);color:var(--su-giallo)}
.giorni-tab button[data-giorno="2026-10-17"][aria-pressed="true"] b,.giorni-tab button[data-giorno="2026-10-18"][aria-pressed="true"] b{background:rgba(0,0,0,.12)}
.fasce{display:inline-flex;gap:6px;margin-left:auto}
.fasce button,.chip-f{font:500 13px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;padding:10px 12px;border:1.5px solid var(--fuga);border-radius:999px;background:#fff;color:var(--inchiostro);transition:all .2s var(--ease)}
.fasce button:hover,.chip-f:hover{border-color:var(--inchiostro)}
.fasce button[aria-pressed="true"],.chip-f[aria-pressed="true"]{background:var(--inchiostro);border-color:var(--inchiostro);color:var(--su-nero)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-f b{font-weight:500;opacity:.7;margin-left:4px}
.chip-f[aria-pressed="true"] b{opacity:.85}
.chip-f[data-vuoto="1"]:not([aria-pressed="true"]),.fasce button[data-vuoto="1"]:not([aria-pressed="true"]),.giorni-tab button[data-vuoto="1"]:not([aria-pressed="true"]){opacity:.4}
.riepilogo{margin-top:12px;font-size:14px;color:var(--inchiostro-2);min-height:22px}
.riepilogo .conteggio{font-weight:600;color:var(--inchiostro)}
.attivi{display:inline-flex;flex-wrap:wrap;gap:6px}
.attivi button{display:inline-flex;align-items:center;gap:6px;font:500 12px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;padding:6px 8px 6px 10px;border:0;border-radius:4px;background:var(--rosso);color:var(--su-rosso)}
.attivi button::after{content:"×";font-size:15px;line-height:1}
.azzera{margin-left:auto;font:500 13px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;border:0;background:transparent;color:var(--inchiostro);text-decoration:underline;text-underline-offset:3px;padding:6px 0}
@media (max-width:899px){
  .barra-dettaglio{margin-top:0}
  .apri-filtri{display:inline-flex}
  .barra-dettaglio{display:none}.barra-dettaglio.aperto{display:block;margin-top:10px}
  .fasce{margin-left:0}
  .segmenti{order:3;width:100%;justify-content:stretch}.segmenti button{flex:1;text-align:center;padding:11px 8px}
}
/* ——— Risultati per giorno ——— */
.risultati{margin-top:28px}
.gruppo-giorno+.gruppo-giorno{margin-top:40px}
.gruppo-testa{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--fuga)}
.gruppo-testa h2{font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:600;letter-spacing:-.02em}.gruppo-testa h2 em{font-style:normal;color:var(--rosso)}
.gruppo-n{font-size:14px;color:var(--inchiostro-2)}
.gruppo-giorno[hidden]{display:none}
.nessuno{text-align:left;padding:32px}.nessuno h2{font-size:1.4rem;font-weight:600;margin-bottom:8px}.nessuno p{color:var(--inchiostro-2)}
.risultati .eventi{background:transparent;padding:0;border-radius:0;gap:10px}
.risultati .eventi .evento{min-height:250px}
.apri-filtri .pallino[hidden]{display:none}
.segmenti button{white-space:nowrap}
@media (max-width:899px){.segmenti button{font-size:12px;letter-spacing:.04em;padding:11px 6px}}

.dati-sede{display:grid;gap:10px 24px;grid-template-columns:1fr;margin-top:18px;font-size:15px}
@media (min-width:600px){.dati-sede{grid-template-columns:repeat(3,auto);justify-content:start}}
.dati-sede dt{font:500 11px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;opacity:.8;margin-bottom:5px}.dati-sede dd{margin:0;font-weight:500}
.raggiungerci p{display:flex;gap:10px;align-items:start}.raggiungerci svg{flex:0 0 18px;width:18px;height:18px;margin-top:3px}

.accessibilita dt{display:flex;align-items:center;gap:6px}.accessibilita dt svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.accessibilita dd{font-weight:400;line-height:1.45}
.dati-sede.compatta{margin-top:14px;grid-template-columns:1fr;font-size:13px}.dati-sede.compatta dt{font-size:10px}
.evento-testa .dati-sede,.scheda-sede .dati-sede{grid-template-columns:1fr}

/* scheda evento e sede: etichette in riga, respiro fra i blocchi */
.evento-testa .etichette{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;margin-bottom:24px}
.evento-testa .etichette .sezione,.evento-testa .etichette .chip-solo{margin:0;align-self:auto}
.evento-testa h1{margin-top:0}
.evento-testa .meta{margin-top:18px;gap:10px 18px;line-height:1.4}
.evento-testa .meta span{align-items:start}.evento-testa .meta svg{flex:0 0 16px;margin-top:3px}
.evento-testa .meta a{text-decoration-thickness:1px;text-underline-offset:.2em;overflow-wrap:anywhere}
.evento-testa .chip{margin-top:22px}

/* mappa cliccabile e indicazioni */
.pst.mappa{padding:0;position:relative;min-height:320px;background:var(--fuga);isolation:isolate}
.pst.mappa .mappa-canvas{position:absolute;inset:0;z-index:0}
.pst.mappa-tutte{min-height:clamp(380px,55vh,560px);margin-bottom:var(--gap)}
.pst.mappa-manca{display:flex;align-items:flex-end;padding:16px;min-height:220px}
.leaflet-container{font:inherit;background:#EDE9DF}.leaflet-tile-pane{filter:saturate(.55) contrast(.95)}
.leaflet-container a{color:var(--rosso)}
.pcn-pin{width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--rosso);box-shadow:0 6px 14px -6px rgba(0,0,0,.5);border:3px solid #fff;display:grid;place-items:center}
.pcn-pin b{transform:rotate(45deg);color:#fff;font:600 12px/1 var(--display)}
.pcn-pin.azzurro{background:var(--azzurro)}.pcn-pin.giallo{background:var(--giallo)}.pcn-pin.giallo b{color:var(--su-giallo)}.pcn-pin.nero{background:var(--nero)}
.leaflet-popup-content-wrapper{border-radius:var(--raggio);box-shadow:var(--ombra);padding:4px}
.leaflet-popup-content{margin:12px 14px;font:400 14px/1.45 var(--testo);color:var(--inchiostro)}
.leaflet-popup-content h3{font:600 16px/1.15 var(--display);letter-spacing:-.01em;margin:0 0 4px}
.leaflet-popup-content p{margin:0 0 4px;color:var(--inchiostro-2)}
.leaflet-popup-content .azioni{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.leaflet-popup-content .azioni a{font:600 11px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;border-radius:4px;text-decoration:none;background:var(--rosso);color:#fff}
.leaflet-popup-content .azioni a.secondo{background:var(--fuga);color:var(--inchiostro)}
.leaflet-popup-tip{box-shadow:none}
.leaflet-control-attribution{font-size:10px;background:rgba(251,251,249,.8)}
.leaflet-bar a{color:var(--inchiostro)}
.mappa-link{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:flex-start;padding:16px;text-decoration:none;background:linear-gradient(to top,rgba(17,17,17,.3),transparent 40%);transition:background .3s var(--ease)}
.mappa-link:hover{background:linear-gradient(to top,rgba(17,17,17,.5),rgba(17,17,17,.08))}
.mappa-link .cta{box-shadow:var(--ombra)}.mappa-link .cta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.indicazioni{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.indicazioni .cta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.raggiungerci p+p{margin-top:8px}

/* home: i main concert */
.eventi-main{grid-template-columns:1fr}
@media (min-width:700px){.eventi-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1040px){.eventi-main{grid-template-columns:repeat(3,minmax(0,1fr))}.eventi-main .evento:first-child{grid-column:1/3;grid-row:1/3;min-height:520px}.eventi-main .evento:first-child h3{font-size:clamp(1.6rem,2.4vw,2.3rem)}}
.eventi-main .evento{min-height:250px}
/* L'ultima piastrella del mosaico: si allarga fino a fine riga, cosi' chiude la fila
   qualunque sia il numero di Main Concert, e porta al programma completo. Le celle da
   prendere le calcola front-page.php (--span-2, --span-3): "auto/-1" ne prendeva una sola. */
@media (min-width:700px){.eventi-main .invito{grid-column:span var(--span-2,1)}}
@media (min-width:1040px){.eventi-main .invito{grid-column:span var(--span-3,1)}}
.invito .sotto{margin-top:10px;max-width:46ch}
.invito .vai{margin-top:18px;display:inline-flex;align-items:center;gap:8px;font:600 13px/1 var(--display);letter-spacing:.08em;text-transform:uppercase}
.invito .vai svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--ease)}
.invito:hover .vai svg,.invito:focus-visible .vai svg{transform:translateX(4px)}

.cta.attesa-b{opacity:.55;cursor:default}.cta.attesa-b:hover{transform:none;background:transparent}
/* Ogni etichetta sta centrata sopra i suoi loghi, anche il Main sponsor (Ercole, 25/09) */
@media (min-width:900px){.partner{justify-content:center}}

/* ——— About ——— */
.about-apertura{padding:clamp(28px,4vw,56px) 0 clamp(40px,6vw,80px)}
.about-apertura .cont{display:grid;gap:clamp(24px,3vw,40px);grid-template-columns:1fr;align-items:end}
.about-intro h1{font-size:clamp(2.1rem,4.6vw,3.9rem);font-weight:600;letter-spacing:-.03em;line-height:1.02;text-wrap:balance;max-width:20ch}
.about-intro p{margin-top:0;max-width:56ch;font-size:clamp(16px,1.15vw,18px);color:var(--inchiostro-2)}
.about-intro .azioni{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.about-intro{display:grid;gap:22px}
.about-foto{padding:0;margin:0;background:var(--nero);color:var(--su-nero);box-shadow:var(--ombra)}
.about-foto img{display:block;width:100%;height:100%;aspect-ratio:2553/1227;object-fit:cover;object-position:60% 50%}
.about-foto figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;font:500 13px/1.4 var(--display);letter-spacing:.02em;background:linear-gradient(to top,rgba(17,17,17,.82),rgba(17,17,17,0))}
@media (max-width:699px){.about-foto img{aspect-ratio:4/3}}
@media (min-width:900px){
  .about-intro{grid-template-columns:1.15fr 1fr;gap:48px;align-items:end}
  .about-intro h1{max-width:none}
}
/* Le tappe: una fila di piastrelle, la storia si legge da sinistra a destra. */
.about-tappe{list-style:none;margin:0;display:grid;grid-template-columns:1fr}
@media (min-width:600px){.about-tappe{grid-template-columns:repeat(2,minmax(0,1fr))}}
.about-tappe .pst{display:flex;flex-direction:column;min-height:200px;padding:22px 22px 24px}
@media (min-width:900px){.about-tappe .pst{min-height:260px}}
.about-tappe time{font:600 clamp(2.4rem,4vw,3.6rem)/1 var(--display);letter-spacing:-.03em;display:block}
.about-tappe h3{font:600 1.15rem/1.2 var(--display);margin-top:auto;padding-top:26px}
.about-tappe p{margin-top:8px;font-size:15px;line-height:1.55}
.about-tappe .nero p,.about-tappe .rosso p{color:inherit;opacity:.88}
.about-tappe .about-mondo{background:#EFEDE6}
@media (min-width:600px){.about-tappe .nero{grid-column:1/-1}}
@media (min-width:900px){
  .about-tappe{grid-template-columns:repeat(6,minmax(0,1fr))}
  .about-tappe .nero{grid-column:span 2}
  .about-tappe .azzurro,.about-tappe .rosso{grid-column:span 2}
  .about-tappe .giallo{grid-column:span 3}.about-tappe .about-mondo{grid-column:span 3}
}
/* Chi siamo: una piastrella sola, nomi in evidenza. */
.about-chi{display:grid;gap:28px}
.about-squadra{margin:0;padding:clamp(8px,2vw,20px) clamp(20px,3vw,36px);background:#F1EFE8}
.about-squadra div{display:grid;gap:4px 24px;padding:16px 0;border-bottom:1px solid #DDD8CC}
.about-squadra div:last-child{border-bottom:0}
.about-squadra dt{font:500 12px/1.3 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--inchiostro-2)}
.about-squadra dd{margin:0;font:600 clamp(1.15rem,1.6vw,1.45rem)/1.2 var(--display);letter-spacing:-.01em}
.about-squadra dd small{display:block;font:400 14px/1.4 var(--testo);color:var(--inchiostro-2);margin-top:2px}
@media (min-width:600px){.about-squadra div{grid-template-columns:280px 1fr;align-items:baseline}}
.about-contatto{color:var(--inchiostro-2);max-width:60ch}
.about-contatto a{color:var(--inchiostro);font-weight:600;text-decoration-color:var(--rosso);text-underline-offset:3px}

/* Credito Seedera nel colophon: il marchio alto quanto il testo, bianco come il testo. */
.colophon .credito{display:inline-flex;align-items:center;gap:.4em;color:inherit;text-decoration:none}
.colophon .credito:hover{color:var(--giallo)}
.colophon .logo-seedera{height:.95em;width:auto;display:inline-block;position:relative;top:.02em;color:#fff}
/* Pagine legali: misura di lettura, gerarchia dei titoli. */
.legale .testa .agg{margin-top:10px;color:var(--inchiostro-2);font-size:15px}
.legale .prosa{max-width:68ch;font-size:16.5px;line-height:1.6}
.legale .prosa h2{font-size:1.5rem;margin:2em 0 .5em;letter-spacing:-.01em}.legale .prosa h2:first-child{margin-top:.5em}
.legale .prosa h3{font-size:1.1rem;margin:1.4em 0 .3em}
.legale .prosa a{color:var(--inchiostro);text-decoration-color:var(--rosso);text-underline-offset:3px}
.legale .prosa button.cta{vertical-align:middle;padding:8px 12px;font-size:12px}
.contatti .about-squadra a{color:var(--inchiostro);text-decoration-color:var(--rosso);text-underline-offset:3px}
.contatti .about-squadra dd small a{color:var(--inchiostro-2)}

/* ——— Annulla prenotazione: modulo in piastrella chiara, recapiti in azzurro ——— */
.annulla-griglia{display:grid;gap:var(--gap);grid-template-columns:1fr}
@media (min-width:900px){.annulla-griglia{grid-template-columns:1.7fr 1fr}}
.annulla-carta{background:#F1EFE8;padding:clamp(22px,3.2vw,40px)}
.annulla-modulo{display:grid;gap:18px 16px;grid-template-columns:1fr}
@media (min-width:640px){.annulla-modulo{grid-template-columns:1fr 1fr}.annulla-modulo .largo{grid-column:1/-1}}
.annulla-modulo .campo{display:grid;gap:7px}
.annulla-modulo label{font:500 12px/1.3 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--inchiostro-2)}
.annulla-modulo label small{font:400 13px/1 var(--testo);letter-spacing:0;text-transform:none;margin-left:4px}
.annulla-modulo input,.annulla-modulo textarea{font:400 17px/1.4 var(--testo);color:var(--inchiostro);background:var(--smalto);border:1.5px solid #CFC9BB;border-radius:5px;padding:13px 14px;width:100%;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.annulla-modulo textarea{resize:vertical;min-height:96px}
.annulla-modulo ::placeholder{color:#77726A}
.annulla-modulo input:hover,.annulla-modulo textarea:hover{border-color:#A9A294}
.annulla-modulo input:focus,.annulla-modulo textarea:focus{outline:0;border-color:var(--inchiostro);box-shadow:0 0 0 3px rgba(82,170,194,.35)}
.annulla-modulo [aria-invalid="true"]{border-color:var(--rosso);box-shadow:0 0 0 3px rgba(168,64,79,.18)}
.annulla-modulo .trappola{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.annulla-invio{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding-top:6px}
.annulla-invio p{font-size:14px;line-height:1.45;color:var(--inchiostro-2);max-width:40ch}
.annulla-invio a,.annulla-fatto a{color:var(--inchiostro);text-decoration-color:var(--rosso);text-underline-offset:3px}
.annulla-errore{grid-column:1/-1;padding:14px 16px;border-radius:5px;background:var(--rosso);color:var(--su-rosso);font-size:15px;line-height:1.5}
.annulla-errore a{color:inherit}
.annulla-fatto{display:flex;gap:18px;align-items:start}
.annulla-fatto:focus{outline:0}
.annulla-fatto svg{flex:0 0 44px;width:44px;height:44px;padding:10px;border-radius:50%;background:var(--azzurro);stroke:var(--su-azzurro);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.annulla-fatto h2{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:600;letter-spacing:-.02em;margin-bottom:10px}
.annulla-fatto p{color:var(--inchiostro-2);max-width:52ch}.annulla-fatto p+p{margin-top:14px}
/* Da telefono l'icona sta sulla riga del titolo e il testo prende tutta la larghezza:
   in colonna lasciava un vuoto sotto la spunta (Ercole, 30/09) */
@media (max-width:599px){.annulla-fatto{display:grid;grid-template-columns:44px 1fr;gap:0 14px;align-items:center}.annulla-fatto>div{display:contents}.annulla-fatto h2{margin:0}.annulla-fatto p{grid-column:1/-1;margin:0}.annulla-fatto h2+p{margin-top:14px}.annulla-fatto p+p{margin-top:14px}}
/* La spunta si disegna quando l'esito compare */
@media (prefers-reduced-motion:no-preference){.annulla-fatto svg{animation:pcn-fatto-in .45s var(--ease) both}.annulla-fatto svg path{stroke-dasharray:24;stroke-dashoffset:24;animation:pcn-spunta .5s .25s var(--ease) forwards}}
@keyframes pcn-fatto-in{from{transform:scale(.6);opacity:0}}
@keyframes pcn-spunta{to{stroke-dashoffset:0}}
.annulla-info{display:flex;flex-direction:column;gap:14px;padding:clamp(22px,3vw,34px)}
.annulla-info h2{font-size:clamp(1.35rem,2vw,1.7rem);font-weight:600;letter-spacing:-.02em}
.annulla-info p{font-size:16px;line-height:1.55}
.annulla-info a{color:inherit;font-weight:600;overflow-wrap:anywhere;text-decoration-color:var(--su-azzurro)}
.annulla-info .sotto{margin-top:auto}

/* ——— CookieYes: il colore primario e' il rosso del sito ———
   Il plugin scrive i colori inline (dalle sue impostazioni, era giallo #f7d701) e non
   ha filtri: qui li sovrascrive il tema, !important batte lo stile inline. Per
   cambiare colore si tocca questo blocco, non il pannello del plugin. */
.cky-consent-container .cky-btn-accept,.cky-preference-center .cky-btn-accept,.cky-opt-out-btn-wrapper .cky-btn-confirm{background-color:var(--rosso)!important;border-color:var(--rosso)!important;color:#fff!important}
.cky-consent-container .cky-btn-accept:hover,.cky-preference-center .cky-btn-accept:hover{background-color:var(--rosso-cotto)!important;border-color:var(--rosso-cotto)!important;opacity:1!important}
.cky-btn-customize,.cky-btn-reject,.cky-btn-preferences{color:var(--rosso)!important;border-color:var(--rosso)!important;background-color:transparent!important}
.cky-btn-revisit-wrapper{background-color:var(--rosso)!important}
/* Rotellina delle impostazioni al posto del biscotto di CookieYes (Ercole, 30/09) */
.cky-btn-revisit-wrapper .cky-btn-revisit img{display:none!important}
/* Da telefono la rotellina fissa copriva "Privacy" nel colophon: il footer lascia il suo spazio */
@media (max-width:899px){.chiusura{padding-bottom:84px}}
.cky-btn-revisit-wrapper .cky-btn-revisit{width:100%;height:100%}
.cky-btn-revisit-wrapper .cky-btn-revisit::before{content:"";width:26px;height:26px;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .4s var(--ease)}
.cky-btn-revisit-wrapper:hover .cky-btn-revisit::before{transform:rotate(45deg)}
.cky-switch input[type="checkbox"]:checked,.cky-opt-out-checkbox-wrapper input[type="checkbox"].cky-opt-out-checkbox:checked{background:var(--rosso)!important}
.cky-notice-des a.cky-policy,.cky-notice-des button.cky-policy,button.cky-show-desc-btn:not(:hover):not(:active),.cky-preference-content-wrapper .cky-show-desc-btn{color:var(--rosso)!important}
.cky-btn:focus-visible,.cky-switch input[type="checkbox"]:focus-visible,.cky-preference-header .cky-btn-close:focus-visible,.cky-footer-wrapper a:focus-visible,.cky-accordion-btn:focus-visible{outline-color:var(--rosso)!important}
/* ——— Le tue prenotazioni: lista dal link personale ——— */
.mie h2{font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:600;letter-spacing:-.02em;margin-bottom:18px}
.mie-email{overflow-wrap:anywhere;color:var(--rosso)}
.mie-ok{padding:14px 16px;border-radius:5px;background:var(--azzurro);color:var(--su-azzurro);font-size:15px;line-height:1.5;margin-bottom:18px}
.mie .annulla-errore{margin-bottom:18px}
.mie-lista{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mie-lista li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:16px 18px;border-radius:6px;background:var(--smalto);border:1.5px solid #CFC9BB}
.mie-lista li>div{flex:1 1 260px;min-width:0}
.mie-lista h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;margin:2px 0 4px}
.mie-lista h3 a{color:var(--inchiostro);text-decoration-color:var(--rosso);text-underline-offset:3px}
.mie-lista p{font-size:15px;line-height:1.45;color:var(--inchiostro-2)}
.mie-lista p.mie-quando{font:500 12px/1.3 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--rosso)}
.mie-lista .passato{opacity:.6}
.mie-stato{font:500 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--inchiostro-2)}
.mie-annulla{font:600 15px/1 var(--testo);padding:12px 16px;min-height:44px;border-radius:5px;border:1.5px solid var(--rosso);background:transparent;color:var(--rosso);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}
.mie-annulla:hover,.mie-annulla:focus-visible{background:var(--rosso);color:var(--su-rosso)}
.mie-annulla:focus-visible{outline:3px solid rgba(168,64,79,.35);outline-offset:2px}
.mie-vuoto{color:var(--inchiostro-2)}
.mie-nota{margin-top:18px;font-size:14px;line-height:1.5;color:var(--inchiostro-2);max-width:60ch}
/* modulo prenotazione: numero della persona ed errori sul campo (giallo: si vede sul rosso e sull'azzurro) */
.prenota .persona-n{grid-column:1/-1;font:500 12px/1.2 var(--display);letter-spacing:.1em;text-transform:uppercase}
.prenota .persona-errori,.prenota .campo-errore{grid-column:1/-1;margin:0;padding:10px 12px;list-style:none;border-radius:5px;background:#fff;color:var(--rosso-cotto);font-size:14px;line-height:1.45}
.prenota .persona-errori li+li{margin-top:4px}
.prenota .persona-errori[hidden],.prenota .campo-errore[hidden]{display:none}
.prenota input[aria-invalid="true"]{border-color:var(--giallo);box-shadow:0 0 0 3px var(--giallo)}
.prenota .num button:disabled{opacity:.35;cursor:not-allowed}
.prenota .esito:focus{outline:3px solid var(--giallo);outline-offset:2px}
.prenota .esito[data-stato="errore"]{background:#fff;color:var(--rosso-cotto);font-weight:600}
