/* =========================================================================
   Costruiamo un Mondo di Gioco — Sito pubblico
   Brand: palette LEGO; font Poppins (Arial fallback).
   Il font Kalam è riservato esclusivamente alla firma "Mirko Montecchiani".
   Autore: Mirko Montecchiani — https://mirkomontecchiani.com
   ========================================================================= */
:root{
  --lego-yellow:#F5CD30; --lego-red:#D01012; --lego-blue:#006DB7;
  --lego-green:#00852B;  --lego-black:#000000; --lego-white:#FFFFFF;
  --gray-50:#F8F9FA; --gray-100:#F2F2F2; --gray-200:#E6E6E6;
  --gray-400:#A0A0A0; --gray-500:#6d6d6d; --gray-600:#555555; --gray-800:#1F1F1F;
  --blue-dark:#005a96; --red-dark:#a50d0f; --green-dark:#006b22;
  --yellow-soft:#fdf3cf;
  --navy:#191a3e;            /* sfondo footer/scuro (come da screenshot) */
  --navy-2:#23244f;
  --font-primary:'Poppins',Arial,sans-serif;
  --font-accent:'Kalam',cursive;
  --radius:14px; --radius-sm:9px; --radius-lg:24px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.08);
  --shadow:0 6px 22px rgba(0,0,0,.09);
  --shadow-lg:0 24px 60px rgba(0,0,0,.18);
  --nav-h:74px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font-primary);color:var(--gray-800);
  background:var(--lego-white);line-height:1.6;font-size:16px;overflow-x:hidden;
}
img{max-width:100%;display:block}
a:not(.btn){color:var(--lego-blue);text-decoration:none;transition:color .15s}
a:not(.btn):hover{color:var(--blue-dark)}
h1,h2,h3,h4{font-weight:800;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,5vw,3.1rem)}
h2{font-size:clamp(1.5rem,3.4vw,2.2rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
/* Kalam: SOLO per la firma "Mirko Montecchiani". */
.signature{font-family:var(--font-accent);font-weight:700}
.muted{color:var(--gray-600)}
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 22px}
.container-narrow{max-width:860px}
.section{padding:74px 0}
.section.tight{padding:48px 0}
.text-center{text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;
  font-size:.92rem;color:var(--lego-blue);font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;margin-bottom:10px}
.lead{font-size:1.16rem;color:var(--gray-600);max-width:760px}
.section-head{margin-bottom:38px}
.section-head.center{text-align:center;margin-left:auto;margin-right:auto}
.section-head.center .lead{margin-left:auto;margin-right:auto}

/* studs decorativi (mattoncino) */
.studs{display:flex;gap:9px}
.studs i{width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.5)}

/* ---------------- Brick logo (fallback marchio) ---------------- */
.brick-logo{display:inline-grid;grid-template-columns:repeat(2,1fr);gap:3px;width:42px;height:42px;flex:none}
.brick-logo span{border-radius:5px;position:relative}
.brick-logo span:nth-child(1){background:var(--lego-red)}
.brick-logo span:nth-child(2){background:var(--lego-yellow)}
.brick-logo span:nth-child(3){background:var(--lego-blue)}
.brick-logo span:nth-child(4){background:var(--lego-green)}
.brick-logo span::before{content:"";position:absolute;top:4px;left:50%;transform:translateX(-50%);
  width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.5)}

/* ---------------- Buttons ---------------- */
.btn{display:inline-flex;align-items:center;gap:9px;border:0;cursor:pointer;font-family:var(--font-primary);
  font-weight:700;font-size:.98rem;padding:13px 24px;border-radius:999px;text-decoration:none;
  transition:transform .12s,box-shadow .15s,filter .15s;line-height:1.1;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow);filter:brightness(1.03)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--lego-blue);color:#fff}
.btn-red{background:var(--lego-red);color:#fff}
.btn-yellow{background:var(--lego-yellow);color:#1F1F1F}
.btn-green{background:var(--lego-green);color:#fff}
.btn-white{background:#fff;color:var(--lego-blue)}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.55)}
.btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-outline{background:transparent;color:var(--lego-blue);border:2px solid var(--lego-blue)}
.btn-outline:hover{background:var(--lego-blue);color:#fff}
.btn-lg{padding:16px 30px;font-size:1.05rem}
.btn-sm{padding:9px 16px;font-size:.85rem}
.btn .ic{display:inline-flex}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* ---------------- Navbar ---------------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--gray-200);transition:box-shadow .2s}
.nav.scrolled{box-shadow:var(--shadow-sm)}
.nav-inner{height:var(--nav-h);display:flex;align-items:center;gap:18px}
.nav-brand{display:flex;align-items:center;gap:10px;flex:none}
.nav-brand img{height:46px;width:auto}
.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto;flex-wrap:nowrap}
.nav-links a{color:var(--gray-800);font-weight:600;font-size:.9rem;padding:8px 11px;border-radius:10px;
  position:relative;white-space:nowrap}
.nav-links a:hover{background:var(--gray-100);color:var(--lego-blue)}
.nav-links a.active{color:var(--lego-blue)}
.nav-links a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:3px;
  border-radius:3px;background:var(--lego-yellow)}
.nav-social{display:flex;align-items:center;gap:6px;padding-left:10px;margin-left:6px;
  border-left:1px solid var(--gray-200)}
.nav-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:10px;color:#fff;transition:transform .12s,filter .15s}
.nav-social a:hover{transform:translateY(-2px);filter:brightness(1.08)}
.nav-social .fb{background:#1877F2}
.nav-social .ig{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888)}
.nav-social svg{width:19px;height:19px}
.nav-toggle{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:8px;color:var(--gray-800)}
.nav-toggle svg{width:28px;height:28px}

@media(max-width:1200px){
  .nav-toggle{display:inline-flex}
  .nav-links{position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;align-items:stretch;
    background:#fff;border-bottom:1px solid var(--gray-200);padding:12px 18px 20px;gap:2px;
    box-shadow:var(--shadow);transform:translateY(-12px);opacity:0;pointer-events:none;transition:.2s;margin-left:0;
    max-height:calc(100vh - var(--nav-h));max-height:calc(100dvh - var(--nav-h));
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .nav.open .nav-links{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav-links a{padding:13px 12px;font-size:1rem}
  .nav-links a.active::after{display:none}
  .nav-links a.active{background:var(--gray-100)}
  .nav-social{border-left:0;padding:12px 4px 0;margin-top:8px;border-top:1px solid var(--gray-200)}
}

/* ---------------- Hero ---------------- */
.hero{position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(135deg,#0a3f73 0%,var(--lego-blue) 48%,#0584c9 100%);
  padding:96px 0 110px}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(8px);opacity:.5;z-index:0}
.hero::before{width:340px;height:340px;background:radial-gradient(circle,rgba(245,205,48,.55),transparent 65%);top:-90px;right:-60px}
.hero::after{width:300px;height:300px;background:radial-gradient(circle,rgba(208,16,18,.45),transparent 65%);bottom:-120px;left:-70px}
.hero .container{position:relative;z-index:2;text-align:center}
.hero-logo{height:96px;width:auto;margin:0 auto 24px;filter:drop-shadow(0 6px 18px rgba(0,0,0,.25));
  background:#fff;padding:14px 22px;border-radius:18px}
.hero h1{margin-bottom:14px;text-shadow:0 3px 16px rgba(0,0,0,.18)}
.hero .tagline{font-size:clamp(1rem,2.4vw,1.3rem);font-weight:600;color:var(--lego-yellow);
  letter-spacing:.01em;margin-bottom:12px}
.hero p.sub{font-size:1.2rem;max-width:680px;margin:0 auto 30px;opacity:.95}
.hero .btn-row{justify-content:center}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;z-index:1;line-height:0}
.hero-wave svg{width:100%;height:70px;display:block}

/* striscia mattoncini colorata */
.brick-strip{height:12px;display:flex}
.brick-strip i{flex:1}
.brick-strip i:nth-child(4n+1){background:var(--lego-red)}
.brick-strip i:nth-child(4n+2){background:var(--lego-yellow)}
.brick-strip i:nth-child(4n+3){background:var(--lego-blue)}
.brick-strip i:nth-child(4n){background:var(--lego-green)}

/* ---------------- Counters / impatto ---------------- */
.counters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px}
.counter{text-align:center;padding:22px 14px;background:#fff;border-radius:var(--radius);
  border:1px solid var(--gray-200);box-shadow:var(--shadow-sm)}
.counter .num{font-size:clamp(1.9rem,4vw,2.7rem);font-weight:900;line-height:1;
  background:linear-gradient(120deg,var(--lego-blue),var(--lego-green));-webkit-background-clip:text;
  background-clip:text;color:transparent}
.counter .lbl{margin-top:8px;font-size:.92rem;color:var(--gray-600);font-weight:600}
.counters.on-dark .counter{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
.counters.on-dark .counter .num{background:none;-webkit-background-clip:initial;background-clip:initial;color:var(--lego-yellow)}
.counters.on-dark .counter .lbl{color:rgba(255,255,255,.85)}

/* ---------------- Cards / blog ---------------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px}
.card-grid.cols-2{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}
.pcard{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pcard .thumb{aspect-ratio:16/10;background:var(--gray-100);position:relative;overflow:hidden}
.pcard .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.pcard:hover .thumb img{transform:scale(1.05)}
.pcard .thumb.placeholder{display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--lego-blue),var(--blue-dark))}
.pcard .thumb.placeholder svg{width:64px;height:64px;color:rgba(255,255,255,.85)}
.pcard .cat-tag{position:absolute;left:12px;top:12px;background:var(--lego-yellow);color:#1F1F1F;
  font-size:.74rem;font-weight:800;padding:5px 11px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}
.pcard .body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.pcard .date{font-size:.82rem;color:var(--gray-500);font-weight:600;margin-bottom:7px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pcard h3{font-size:1.12rem;margin-bottom:8px}
.pcard h3 a{color:var(--gray-800)}
.pcard h3 a:hover{color:var(--lego-blue)}
.pcard .excerpt{color:var(--gray-600);font-size:.94rem;margin-bottom:14px;flex:1}
.pcard .more{font-weight:700;color:var(--lego-blue);font-size:.9rem;display:inline-flex;gap:6px;align-items:center}
.pcard:hover .more{gap:10px}

/* chip filtri categorie */
.chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:36px}
.chips a{padding:9px 18px;border-radius:999px;border:2px solid var(--gray-200);background:#fff;
  font-weight:600;font-size:.9rem;color:var(--gray-600)}
.chips a:hover{border-color:var(--lego-blue);color:var(--lego-blue)}
.chips a.active{background:var(--lego-blue);border-color:var(--lego-blue);color:#fff}

/* ---------------- Filtri attività ---------------- */
.filters{display:flex;flex-direction:column;gap:18px;margin-bottom:42px;background:var(--gray-50);
  border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:24px}
.filter-head{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.84rem;
  text-transform:uppercase;letter-spacing:.05em;color:var(--gray-600);margin-bottom:12px}
.filter-head svg{color:var(--lego-blue)}
.filter-block .chips a{padding:8px 15px;font-size:.86rem;display:inline-flex;align-items:center;gap:5px}
.filter-acc{margin:0}
.filter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:#fff;
  border:2px solid var(--gray-200);border-radius:12px;padding:12px 16px;cursor:pointer;font-family:var(--font-primary)}
.filter-toggle:hover{border-color:var(--lego-blue)}
.filter-toggle .acc-arrow{transition:transform .25s;color:var(--gray-400);flex:none}
.filter-acc.open .filter-toggle{border-color:var(--lego-blue);border-radius:12px 12px 0 0}
.filter-acc.open .acc-arrow{transform:rotate(180deg)}
.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;
  border-radius:999px;background:var(--lego-blue);color:#fff;font-size:.74rem;font-weight:800;margin-left:6px}
.filter-panel{max-height:0;overflow:hidden;transition:max-height .3s ease,visibility 0s .3s;
  visibility:hidden;background:#fff;
  border:2px solid var(--lego-blue);border-top:0;border-radius:0 0 12px 12px}
.filter-acc.open .filter-panel{max-height:760px;overflow:auto;visibility:visible;transition:max-height .3s ease}
.filter-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px;padding:16px}
.fcheck{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1.5px solid var(--gray-200);
  border-radius:10px;cursor:pointer;font-size:.9rem;font-weight:500;transition:.12s}
.fcheck:hover{border-color:var(--lego-blue)}
.fcheck.on{border-color:var(--lego-blue);background:#f3f9fd}
.fcheck input{width:16px;height:16px;accent-color:var(--lego-blue);flex:none}
.filter-actions{display:flex;gap:10px;padding:0 16px 18px;flex-wrap:wrap}

/* ---------------- Feature blocks (progetto) ---------------- */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.feature{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:26px;
  box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.feature .ic-badge{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  color:#fff;margin-bottom:16px}
.feature .ic-badge svg{width:28px;height:28px}
.feature h3{margin-bottom:8px}
.feature p{color:var(--gray-600);margin:0;font-size:.96rem}
.feature.t-red .ic-badge{background:var(--lego-red)}
.feature.t-blue .ic-badge{background:var(--lego-blue)}
.feature.t-green .ic-badge{background:var(--lego-green)}
.feature.t-yellow .ic-badge{background:var(--lego-yellow);color:#1F1F1F}
.feature .hl-big{font-size:clamp(2.1rem,5vw,2.9rem);font-weight:900;line-height:1;margin-bottom:8px;letter-spacing:-.02em}
.feature.t-red .hl-big{color:var(--lego-red)}
.feature.t-blue .hl-big{color:var(--lego-blue)}
.feature.t-green .hl-big{color:var(--lego-green)}
.feature.t-yellow .hl-big{color:#c99500}

.split{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.split.reverse .split-media{order:2}
.split-media img{border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%}
.split-media .logo-box{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);
  padding:42px;box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center}
.split-media .logo-box img{height:120px;width:auto;box-shadow:none;border-radius:0}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:28px}.split.reverse .split-media{order:0}}

/* blocco testo ricco (presentazioni editabili) */
.rich{font-size:1.05rem;color:#33343a}
.rich h2{margin-top:1.4em;font-size:1.7rem}
.rich h3{margin-top:1.3em;color:var(--lego-blue)}
.rich ul{padding-left:1.2em}.rich li{margin-bottom:.45em}
.rich strong{color:var(--gray-800)}
.rich blockquote{margin:1.2em 0;padding:14px 20px;border-left:5px solid var(--lego-yellow);
  background:var(--yellow-soft);border-radius:0 12px 12px 0;font-style:italic;font-size:1.1rem}

/* ---------------- bande colorate ---------------- */
.band{background:var(--gray-50)}
.band-blue{background:linear-gradient(135deg,#0a3f73,var(--lego-blue));color:#fff}
.band-blue .lead,.band-blue .muted{color:rgba(255,255,255,.88)}
.band-blue .eyebrow{color:var(--lego-yellow)}
.band-navy{background:var(--navy);color:#fff}
.band-navy .eyebrow{color:var(--lego-yellow)}
.band-navy h2,.band-navy h3,.band-blue h2,.band-blue h3{color:#fff}
.band-navy .lead,.band-navy .muted,.band-navy p{color:rgba(255,255,255,.85)}

/* highlight box (World Play Day, ecc.) */
.highlight{background:linear-gradient(135deg,var(--lego-red),var(--red-dark));color:#fff;
  border-radius:var(--radius-lg);padding:40px;box-shadow:var(--shadow)}
.highlight .eyebrow{color:var(--lego-yellow)}
.highlight h2{color:#fff}

/* ---------------- Timeline (2001-2025) ---------------- */
.timeline{position:relative;max-width:840px;margin:0 auto;padding:10px 0}
.timeline::before{content:"";position:absolute;left:26px;top:0;bottom:0;width:4px;border-radius:4px;
  background:linear-gradient(180deg,var(--lego-yellow),var(--lego-blue))}
.tl-item{position:relative;padding:0 0 34px 72px}
.tl-item .dot{position:absolute;left:14px;top:2px;width:28px;height:28px;border-radius:50%;
  background:#fff;border:4px solid var(--lego-blue);box-shadow:0 0 0 4px #fff}
.tl-item:nth-child(4n+1) .dot{border-color:var(--lego-red)}
.tl-item:nth-child(4n+2) .dot{border-color:var(--lego-yellow)}
.tl-item:nth-child(4n+3) .dot{border-color:var(--lego-blue)}
.tl-item:nth-child(4n) .dot{border-color:var(--lego-green)}
.tl-item .year{font-weight:800;color:var(--lego-blue);font-size:1.5rem;line-height:1;letter-spacing:-.01em}
.tl-item h3{margin:4px 0 6px}
.tl-item p{color:var(--gray-600);margin:0}
@media(max-width:560px){.timeline::before{left:18px}.tl-item{padding-left:54px}.tl-item .dot{left:6px}}

/* ---------------- Crescita (bar chart) ---------------- */
.growth{display:flex;flex-direction:column;gap:14px}
.growth-row{display:flex;align-items:center;gap:16px}
.growth-year{font-weight:800;color:var(--gray-600);width:54px;flex:none;font-size:1.05rem}
.growth-track{flex:1;background:var(--gray-100);border-radius:999px;height:40px;overflow:hidden}
.growth-bar{height:100%;width:0;border-radius:999px;display:flex;align-items:center;justify-content:flex-end;
  padding:0 16px;color:#fff;font-weight:800;transition:width 1.1s cubic-bezier(.22,1,.36,1)}
.reveal.in .growth-bar{width:var(--w)}
.growth-c1{background:linear-gradient(90deg,#a50d0f,var(--lego-red))}
.growth-c2{background:linear-gradient(90deg,#e6b800,var(--lego-yellow));color:#3a2e00}
.growth-c3{background:linear-gradient(90deg,var(--blue-dark),var(--lego-blue))}
.growth-c4{background:linear-gradient(90deg,var(--green-dark),var(--lego-green))}
.growth-val{font-size:1rem;white-space:nowrap}
@media(max-width:560px){.growth-year{width:42px;font-size:.92rem}.growth-track{height:34px}
  .growth-bar{padding:0 10px}.growth-val{font-size:.84rem}}

/* ---------------- World Play Day ---------------- */
.hero-wpd{background:linear-gradient(135deg,#8c0d0e 0%,var(--lego-red) 46%,#ef5b2b 100%)}
.hero-wpd::before{background:radial-gradient(circle,rgba(245,205,48,.6),transparent 65%)}
.hero-wpd::after{background:radial-gradient(circle,rgba(0,109,183,.45),transparent 65%)}
.wpd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.wpd-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s}
.wpd-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.wpd-card>a{display:block;color:inherit}
.wpd-card>a:hover{color:inherit}
.wpd-year{background:linear-gradient(135deg,var(--lego-red),var(--red-dark));color:#fff;font-size:2.6rem;
  font-weight:900;letter-spacing:-.02em;padding:26px 24px;line-height:1;position:relative;overflow:hidden}
.wpd-year::after{content:"";position:absolute;right:-14px;bottom:-14px;width:70px;height:70px;border-radius:50%;
  background:rgba(255,255,255,.13)}
.wpd-card-body{padding:20px 24px 24px}
.wpd-card-body h3{margin:0 0 8px}
.wpd-periodo{display:flex;align-items:center;gap:7px;color:var(--gray-600);font-size:.9rem;font-weight:600;margin-bottom:14px}
.wpd-mini{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:16px;color:var(--gray-600);font-size:.9rem}
.wpd-mini strong{color:var(--lego-blue);font-size:1.05rem}
.wpd-card .more{font-weight:700;color:var(--lego-red);font-size:.9rem;display:inline-flex;gap:6px;align-items:center}
.wpd-card:hover .more{gap:10px}

/* chip statici (elenchi non cliccabili) */
.chip-static{display:inline-block;padding:8px 16px;border-radius:999px;background:#fff;
  border:2px solid var(--gray-200);font-weight:600;font-size:.9rem;color:var(--gray-800)}

/* ---------------- Punti e spazi ---------------- */
.legend-row{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-bottom:30px}
.legend-row .lg{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.92rem}
.legend-row .sw{width:16px;height:16px;border-radius:5px}
.ps-map{height:480px;width:100%;border-radius:var(--radius-lg);border:1px solid var(--gray-200);
  box-shadow:var(--shadow-sm);z-index:1;background:var(--gray-100)}
.ps-map .leaflet-popup-content{font-family:var(--font-primary);font-size:.86rem;line-height:1.5}
@media(max-width:680px){.ps-map{height:380px}}
.space-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.scard{background:#fff;border:1px solid var(--gray-200);border-left-width:6px;border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}
.scard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.scard .type{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500)}
.scard h3{font-size:1.08rem;margin:4px 0 8px}
.scard .meta{font-size:.9rem;color:var(--gray-600);display:flex;flex-direction:column;gap:4px}
.scard .meta a{word-break:break-all}
.status-pill{display:inline-block;padding:3px 11px;border-radius:999px;font-size:.74rem;font-weight:700;margin-top:10px}
.status-pill.open{background:#dff3e4;color:var(--green-dark)}
.status-pill.soon{background:#fcf1c9;color:#8a6d00}
.status-pill.plan{background:#d8ebf8;color:var(--blue-dark)}
.status-pill.eval{background:#ece2fa;color:#5d3bab}
.status-pill.closed{background:#fbe0e0;color:var(--red-dark)}

/* ---------------- Detail / post ---------------- */
.post-hero{padding:60px 0 40px;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}
.post-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--gray-600);font-size:.9rem;font-weight:600;margin-bottom:14px}
.post-meta .pill{background:var(--lego-yellow);color:#1F1F1F;padding:3px 12px;border-radius:999px}
.post-body{font-size:1.08rem;color:#33343a}
.post-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:24px}
.post-gallery img{aspect-ratio:1;object-fit:cover;border-radius:12px;cursor:zoom-in;box-shadow:var(--shadow-sm);transition:transform .15s}
.post-gallery img:hover{transform:scale(1.02)}
.back-link{display:inline-flex;gap:8px;align-items:center;font-weight:700;margin-bottom:18px}

/* ---------------- Footer ---------------- */
.site-footer{background:var(--navy);color:#cfd0e8;padding:60px 0 26px;position:relative}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;
  background:linear-gradient(90deg,var(--lego-red),var(--lego-yellow),var(--lego-blue),var(--lego-green))}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px}
.footer-logo{height:52px;width:auto;margin-bottom:16px}
.footer-intro p{color:#b9bbdc;font-size:.95rem;line-height:1.7}
.footer-intro strong{color:#fff}
.site-footer h4{color:#fff;font-size:1rem;margin-bottom:16px;letter-spacing:.01em}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:9px;font-size:.93rem;line-height:1.5}
.site-footer a:not(.btn){color:#b9bbdc}
.site-footer a:not(.btn):hover{color:#fff}
.footer-refs li strong{color:#fff;font-weight:700}
.footer-contact a{display:inline-flex;gap:8px;align-items:flex-start}
.footer-contact svg{width:17px;height:17px;flex:none;margin-top:3px;color:var(--lego-blue)}
.footer-dona{margin-top:6px}
.footer-social{display:flex;gap:10px;margin-top:14px}
.footer-social a{display:inline-flex;width:40px;height:40px;border-radius:11px;align-items:center;justify-content:center;color:#fff}
.footer-social .fb{background:#1877F2}
.footer-social .ig{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888)}
.footer-social svg{width:20px;height:20px;color:#fff;margin:0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:42px;padding-top:20px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.86rem;color:#9a9cc4}
.footer-bottom a{color:#cfd0e8}
.footer-credit{font-size:.84rem;color:#9a9cc4}
.footer-credit a{color:#cfd0e8}
.footer-credit .signature{color:#fff;font-size:1.05rem}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer-top{grid-template-columns:1fr}}

/* ---------------- Privacy banner ---------------- */
.privacy-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:80;background:#fff;
  border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-lg);
  padding:18px 22px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;max-width:880px;margin:0 auto;
  transform:translateY(140%);transition:transform .4s cubic-bezier(.22,1,.36,1)}
.privacy-banner.show{transform:translateY(0)}
.privacy-banner p{margin:0;font-size:.92rem;color:var(--gray-600);flex:1;min-width:240px}
.privacy-banner .btn-row{flex-wrap:nowrap}

/* ---------------- Maintenance gate ---------------- */
.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(circle at 14% 18%,rgba(245,205,48,.30),transparent 40%),
    radial-gradient(circle at 86% 14%,rgba(0,109,183,.30),transparent 42%),
    radial-gradient(circle at 50% 92%,rgba(0,133,43,.22),transparent 45%),var(--navy)}
.gate-card{width:100%;max-width:430px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:38px 34px;text-align:center}
.gate-card img{height:64px;width:auto;margin:0 auto 18px}
.gate-card h1{font-size:1.5rem;margin-bottom:6px}
.gate-card .lead{font-size:1rem;margin:0 auto 22px}
.gate-card input{width:100%;padding:15px;font-size:1.8rem;letter-spacing:.6rem;text-align:center;font-weight:700;
  border:2px solid var(--gray-200);border-radius:14px;font-family:var(--font-primary)}
.gate-card input:focus{outline:none;border-color:var(--lego-blue);box-shadow:0 0 0 4px rgba(0,109,183,.15)}
.gate-card .alert{background:#fce3e3;color:var(--red-dark);border-radius:10px;padding:10px;margin-bottom:14px;font-size:.9rem}
.gate-badge{display:inline-flex;gap:8px;align-items:center;background:var(--yellow-soft);color:#8a6d00;
  font-weight:700;font-size:.8rem;padding:6px 14px;border-radius:999px;margin-bottom:18px}

/* ---------------- Scroll reveal ---------------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}
.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------------- Lightbox ---------------- */
.lightbox{position:fixed;inset:0;background:rgba(10,12,30,.92);z-index:100;display:none;
  align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img{max-width:94vw;max-height:90vh;border-radius:10px;box-shadow:var(--shadow-lg)}
.lightbox:focus-visible{outline:none}

/* Miniature galleria come pulsanti (lightbox accessibile da tastiera) */
.thumb-btn{padding:0;border:0;background:none;cursor:pointer;display:block;width:100%;border-radius:12px}
.thumb-btn:focus-visible{outline:3px solid var(--lego-yellow);outline-offset:3px}

/* Focus visibile per link e controlli interattivi (accessibilità tastiera) */
a:not(.btn):focus-visible,.btn:focus-visible,.nav-toggle:focus-visible,
.chips a:focus-visible,.fcheck:focus-visible,.filter-toggle:focus-visible{
  outline:3px solid rgba(0,109,183,.45);outline-offset:2px;border-radius:6px}

/* ---------------- Empty ---------------- */
.empty{text-align:center;padding:54px 20px;color:var(--gray-600);border:2px dashed var(--gray-200);border-radius:var(--radius)}
.empty svg{width:54px;height:54px;opacity:.4;margin-bottom:10px}

@media(max-width:680px){
  .section{padding:54px 0}
  .hero{padding:70px 0 86px}
  .privacy-banner{left:10px;right:10px;bottom:10px;padding:16px}
  .footer-bottom{justify-content:center;text-align:center}
}

/* ---------------- Stampa ---------------- */
@media print{
  .nav,.privacy-banner,.lightbox,.hero-wave,.footer-social,.btn,.chips,.filters{display:none!important}
  .hero,.band-blue,.band-navy,.site-footer,.highlight{background:#fff!important;color:#000!important}
  .hero h1,.hero .tagline,.hero p.sub,.band-navy h2,.band-blue h2,.highlight h2{color:#000!important;text-shadow:none!important}
  body{overflow-x:visible}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em;color:#555}
}

/* ---------------- Ambienti di gioco: foto, orari, aperto adesso ---------------- */
.scard .sphoto{margin:-20px -20px 14px;border-radius:calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0;overflow:hidden}
.scard .sphoto img{width:100%;height:150px;object-fit:cover;display:block}
.shours{margin-top:10px;font-size:.85rem;color:var(--gray-600);display:flex;flex-direction:column;gap:2px}
.shours strong{display:inline-block;min-width:36px;color:var(--gray-800)}

/* Scheda della singola mattoncinoteca: blocchi informativi e collegamento
   reciproco fra elenco e mappa nella pagina degli ambienti. */
.card-plain{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);padding:20px 24px}
.card-plain .shours{font-size:.95rem}
/* Scheda ambiente: tema e parole chiave (hero), video, orari descrittivi, calendario */
.ps-tema{margin:10px 0 0;font-size:1.15rem;line-height:1.45;color:var(--gray-700);font-style:italic}
.ps-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ps-tags span{display:inline-block;padding:4px 13px;border-radius:999px;background:#fff;border:1px solid var(--gray-200);
  font-size:.82rem;font-weight:700;color:var(--lego-blue)}
.ps-video{width:100%;max-height:520px;border-radius:14px;display:block;background:#000}
.ps-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000}
.ps-embed.vertical{aspect-ratio:9/16;max-width:380px}
.ps-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ps-orari-testo{font-size:1rem;line-height:1.6;color:var(--gray-700);margin:0 0 12px}
.ps-cal-note{font-size:.92rem;color:var(--gray-600);margin:14px 0 0}
.ps-cal-embed{margin-top:12px;border-radius:14px;overflow:hidden;border:1px solid var(--gray-200);background:#fff}
.ps-cal-embed iframe{width:100%;height:480px;border:0;display:block}
.scard-tema{margin:-4px 0 8px;font-size:.9rem;line-height:1.4;color:var(--gray-600);font-style:italic}
.ps-variazioni{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ps-variazioni li{font-size:.94rem;color:var(--gray-700)}
.ps-variazioni .status-pill{margin:0 8px 0 0;vertical-align:1px}
.scard.is-active{box-shadow:0 0 0 3px rgba(0,109,183,.35)}
.scard a.scard-link{display:block;color:inherit}
.scard a.scard-link:hover h3{color:var(--lego-blue)}
.status-pill.open-now{background:var(--lego-green);color:#fff;margin-left:6px}
.closure-note{background:#fff5e0;border:1px solid #f2dc9a;border-left:5px solid var(--lego-yellow);
  border-radius:var(--radius);padding:16px 20px}
.closure-note h3{margin:0 0 8px;font-size:1.02rem}
.closure-note p{margin:4px 0;font-size:.94rem;color:var(--gray-700)}
