/* ===== IL DIARIO · capitoli fotografici ===== */
.diario{background:var(--bg);position:relative}
.diario .intro-d{text-align:left}
.chapters{position:relative;margin-top:36px}
/* rail */
.rail{position:absolute;left:26px;top:0;bottom:0;width:4px;background:var(--line);border-radius:4px}
.rail i{position:absolute;left:0;top:0;width:100%;height:var(--rp,0%);background:linear-gradient(var(--p),var(--s));border-radius:4px;transition:height .15s linear}
.chap{position:relative;display:grid;grid-template-columns:minmax(280px,.9fr) 1.1fr;gap:40px;padding:56px 0 56px 70px;min-height:70vh;align-items:start}
.chap+.chap{border-top:1px dashed var(--line)}
.chap .dot{position:absolute;left:14px;top:64px;width:28px;height:28px;border-radius:50%;background:var(--card);border:4px solid var(--line);display:grid;place-items:center;font:800 .7rem var(--body);color:var(--ink2);transition:transform .3s,border-color .3s,background .3s,color .3s}
.chap.on .dot{border-color:var(--p);background:var(--p);color:#fff;transform:scale(1.25)}
.chap-text{position:sticky;top:96px}
.chap-date{display:inline-block;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;color:var(--p);background:color-mix(in srgb,var(--p) 12%,transparent);padding:6px 12px;border-radius:999px;margin-bottom:12px}
.chap h3{font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.08;margin-bottom:12px}
.chap p{color:var(--ink2);max-width:46ch}
.chap .badge{display:inline-flex;align-items:center;gap:8px;margin-top:14px;background:var(--a);color:var(--a-ink);border-radius:999px;padding:8px 14px;font-weight:800;font-size:.85rem;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.chap .cta{margin-top:18px;animation:none}
/* stack di polaroid */
.chap-media{position:relative;height:min(78vh,720px);perspective:1200px}
.chap-media figure{position:absolute;margin:0;width:var(--w,46%);left:var(--x,0);top:var(--y,0);background:#fff;padding:10px 10px 34px;border-radius:14px;box-shadow:0 22px 50px rgba(0,0,0,.18);transform:rotate(var(--r,0deg));cursor:pointer;transition:transform .45s cubic-bezier(.2,.9,.3,1.2),box-shadow .3s,opacity .6s;z-index:var(--z,1);opacity:0;translate:0 60px}
.chap-media figure.in{opacity:1;translate:0 0}
.chap-media figure:hover{transform:rotate(0) scale(1.06);z-index:20;box-shadow:0 34px 70px rgba(0,0,0,.28)}
.chap-media figure img{display:block;width:100%;aspect-ratio:var(--ar,3/4);object-fit:cover;object-position:center 28%;border-radius:8px;background:var(--bg2)}
.chap-media figure figcaption{position:absolute;left:0;right:0;bottom:8px;text-align:center;font:600 .82rem 'Caveat',var(--body);color:#5a5a5a;letter-spacing:.02em}
.chap-media figure .tape{position:absolute;top:-10px;left:50%;width:74px;height:22px;background:rgba(255,214,102,.75);transform:translateX(-50%) rotate(-3deg);border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.chap-media figure:nth-child(even) .tape{background:rgba(120,200,255,.7);transform:translateX(-50%) rotate(4deg)}
@media(max-width:860px){
  .rail{left:12px}
  .chap{grid-template-columns:1fr;gap:18px;padding:40px 0 40px 36px;min-height:auto}
  .chap .dot{left:0;top:48px}
  .chap-text{position:static}
  .chap-media{height:auto;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px 20px 24px 4px;margin-right:-20px;scrollbar-width:none;perspective:none}
  .chap-media::-webkit-scrollbar{display:none}
  .chap-media figure{position:static;flex:0 0 74%;scroll-snap-align:center;width:auto;transform:rotate(calc(var(--r,0deg) * .4));opacity:1;translate:0 0}
}

/* ===== LIGHTBOX ===== */
.lb{position:fixed;inset:0;z-index:300;background:rgba(10,20,14,.94);opacity:0;pointer-events:none;transition:opacity .3s;overflow:hidden}
.lb.open{opacity:1;pointer-events:auto}
.lb .stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:64px 76px 84px}
.lb img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6);transition:transform .35s,opacity .35s;object-fit:contain}
.lb .cap{position:absolute;left:0;right:0;bottom:0;color:#fff;text-align:center;padding:10px 20px calc(18px + env(safe-area-inset-bottom,0px));font-weight:700;pointer-events:none}
.lb .cap small{display:block;opacity:.6;font-weight:600;margin-top:2px}
.lb button{position:fixed;z-index:2;border:0;background:rgba(255,255,255,.14);color:#fff;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.8rem;line-height:1;cursor:pointer;backdrop-filter:blur(6px);transition:background .2s,transform .2s;font-family:var(--body)}
.lb button:hover{background:var(--p);transform:scale(1.08)}
.lb .x{top:calc(14px + env(safe-area-inset-top,0px));right:14px;font-size:1.3rem}
.lb .prev{left:12px;top:50%;transform:translateY(-50%)}.lb .next{right:12px;top:50%;transform:translateY(-50%)}
.lb .prev:hover,.lb .next:hover{transform:translateY(-50%) scale(1.08)}
@media(max-width:640px){.lb .stage{padding:64px 10px 96px}.lb .prev,.lb .next{width:44px;height:44px;top:auto;bottom:calc(30px + env(safe-area-inset-bottom,0px));transform:none}.lb .prev:hover,.lb .next:hover{transform:none}.lb .prev{left:14px}.lb .next{right:14px}.lb .cap{bottom:calc(84px + env(safe-area-inset-bottom,0px));padding-bottom:0}}
/* ===== FIERACAVALLI 2026 · popup + pill ===== */
.fc-pop{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:20px;background:rgba(10,20,14,.55);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .35s}
.fc-pop.open{opacity:1;pointer-events:auto}
.fc-card{position:relative;width:min(920px,100%);background:var(--card);border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 40px 100px rgba(0,0,0,.45);transform:translateY(30px) scale(.96);transition:transform .45s cubic-bezier(.2,.9,.3,1.2)}
.fc-pop.open .fc-card{transform:none}
.fc-card .pic{position:relative;min-height:320px;background:var(--bg2)}
.fc-card .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.fc-card .pic .stamp{position:absolute;left:18px;top:18px;background:var(--a);color:var(--a-ink);font:800 .78rem var(--body);letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;border-radius:999px;box-shadow:0 8px 20px rgba(0,0,0,.2);animation:stampIn .6s .3s cubic-bezier(.2,.9,.3,1.6) both}
@keyframes stampIn{from{transform:scale(0) rotate(-20deg);opacity:0}to{transform:none;opacity:1}}
.fc-card .body{padding:34px 32px 30px;display:grid;gap:12px;align-content:center}
.fc-card .body .eyebrow{margin:0}
.fc-card h3{font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.08}
.fc-card .when{display:flex;flex-wrap:wrap;gap:8px}
.fc-card .when span{background:var(--bg2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:800;font-size:.85rem}
.fc-card p{color:var(--ink2)}
.fc-card .row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.fc-card .x{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(0,0,0,.08);font-size:1.3rem;cursor:pointer;display:grid;place-items:center;z-index:2}
.fc-card .x:hover{background:var(--a)}
.fc-card .count{display:flex;gap:10px;margin-top:4px}
.fc-card .count div{background:var(--ink);color:#fff;border-radius:12px;padding:8px 8px;min-width:54px;text-align:center}
.fc-card .count b{font-variant-numeric:tabular-nums}
.fc-card .count b{display:block;font-family:var(--display);font-size:1.4rem;line-height:1}
.fc-card .count small{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
@media(max-width:700px){.fc-pop{padding:0}.fc-card{grid-template-columns:1fr;width:100%;height:100svh;max-height:100svh;border-radius:0;overflow:auto;grid-template-rows:42svh auto}.fc-card .pic{min-height:0;height:100%}.fc-card .body{padding:22px 20px calc(24px + env(safe-area-inset-bottom,0px))}.fc-card .x{top:calc(12px + env(safe-area-inset-top,0px));background:rgba(255,255,255,.9)}.fc-card .count div{min-width:0;flex:1}}
.fc-pill{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:35;display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:10px 16px 10px 12px;font:800 .85rem var(--body);cursor:pointer;box-shadow:0 14px 34px rgba(0,0,0,.28);transform:translateY(120px);transition:transform .5s cubic-bezier(.2,.9,.3,1.2)}
.fc-pill.show{transform:none}
.fc-pill i{width:10px;height:10px;border-radius:50%;background:var(--a);animation:blink 1.6s ease-in-out infinite}
@media(max-width:640px){.fc-pill{bottom:calc(100px + env(safe-area-inset-bottom,0px));right:16px;left:auto}}

/* Capitolo finale CTA */
.chap.final .chap-media{display:grid;place-items:center;height:auto;min-height:320px}
.chap.final .fcbox{background:var(--ink);color:#fff;border-radius:26px;padding:32px;display:grid;gap:12px;width:100%;position:relative;overflow:hidden}
.chap.final .fcbox::before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 30% 30%,rgba(255,194,41,.35),transparent 45%),radial-gradient(circle at 75% 70%,rgba(46,155,230,.35),transparent 45%);animation:drift 12s ease-in-out infinite alternate}
.chap.final .fcbox>*{position:relative}
.chap.final .fcbox .big{font-family:var(--display);font-size:clamp(2rem,5vw,3.4rem);line-height:1;color:var(--a)}
@keyframes drift{to{transform:translate(6%,8%) rotate(6deg)}}
@media(prefers-reduced-motion:reduce){.chap-media figure{opacity:1;translate:0 0}}

/* ===== POPUP colorato ===== */
.fc-pop{background:rgba(10,20,14,.6)}
.fc-card{background:linear-gradient(160deg,var(--p) 0%,color-mix(in srgb,var(--p) 55%,var(--s)) 55%,var(--s) 100%);color:#fff;border:4px solid #fff;border-radius:30px}
.fc-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.28),transparent 32%),radial-gradient(circle at 20% 90%,rgba(255,194,41,.35),transparent 36%)}
.fc-card .body{position:relative;z-index:1;background:transparent}
.fc-card .body .eyebrow{color:var(--a)}
.fc-card h3{color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.25)}
.fc-card .when span{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(4px)}
.fc-card p{color:rgba(255,255,255,.9)}
.fc-card .count div{background:#fff;color:var(--ink);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.fc-card .count b{color:var(--p)}
.fc-card .count small{opacity:.75}
.fc-card .btn-p{background:var(--a);color:var(--a-ink)}
.fc-card .btn-o{border-color:#fff;color:#fff}
.fc-card .x{background:#fff;color:var(--ink)}
.fc-card .x:hover{background:var(--a)}
.fc-card .pic{border-right:4px solid #fff}
.fc-card .pic::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,transparent 70%,rgba(0,0,0,.15))}
.fc-card .pic .stamp{background:#fff;color:var(--p);z-index:2}
.fc-card .confetti-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle,var(--a) 3px,transparent 3.5px),radial-gradient(circle,#fff 2px,transparent 2.5px),radial-gradient(circle,var(--a) 2px,transparent 2.5px);background-size:90px 90px,70px 70px,120px 120px;background-position:0 0,30px 40px,60px 10px;opacity:.35;animation:confettiDrift 12s linear infinite}
@keyframes confettiDrift{to{background-position:0 90px,30px 110px,60px 130px}}
.fc-card .ribbon{position:absolute;top:64px;right:-44px;background:var(--a);color:var(--a-ink);font:800 .72rem var(--body);letter-spacing:.12em;text-transform:uppercase;padding:6px 48px;transform:rotate(35deg);box-shadow:0 6px 16px rgba(0,0,0,.2);z-index:2}
@media(max-width:700px){.fc-card{border:0;border-radius:0}.fc-card .pic{border-right:0;border-bottom:4px solid #fff}.fc-card .ribbon{top:22px;right:-46px}}

/* ===== DIARIO orizzontale bloccato (desktop) ===== */
@media(min-width:861px){
  .diario.hz{padding:0!important;height:calc(var(--n,7) * 78vh + 100vh)}
  .diario.hz>.wrap{position:sticky;top:0;height:100vh;width:100vw;max-width:none;padding:0;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:100%;overflow:hidden}
  .diario.hz .head-d{max-width:1120px;width:100%;margin:0 auto;padding:74px 20px 0}
  .diario.hz .head-d h2{font-size:clamp(1.5rem,2.6vw,2.1rem)}
  .diario.hz .head-d .lead{margin-top:6px;font-size:.98rem}
  .diario.hz .chapters{margin-top:0;display:flex;align-items:center;gap:60px;width:max-content;justify-self:start;padding-inline:max(20px,calc((100vw - 1120px)/2));will-change:transform}
  .diario.hz .rail{display:none}
  .diario.hz .chap{width:min(1120px,calc(100vw - 40px));flex:0 0 auto;padding:10px 0;min-height:0;grid-template-columns:.85fr 1.15fr;gap:36px;align-items:center;border:0}
  .diario.hz .chap .dot{display:none}
  .diario.hz .chap-text{position:static}
  .diario.hz .chap-media{height:clamp(320px,calc(100vh - 420px),560px);aspect-ratio:1/1.05;width:auto;justify-self:center;max-width:100%}
  .diario.hz .chap-media figure{top:calc(var(--y,0%) * .85)}
  .diario.hz .chap-media figure img{object-fit:cover;aspect-ratio:3/4}
  .diario.hz .chap{grid-template-columns:.9fr 1.1fr}
  .diario.hz .chap p{font-size:.98rem}
  .diario.hz .hprog{max-width:1120px;width:calc(100% - 40px);margin:0 auto;padding:10px 0 84px;display:grid;gap:8px}
  .diario.hz .hprog .bar{height:4px;background:var(--line);border-radius:4px;overflow:hidden}
  .diario.hz .hprog .bar i{display:block;height:100%;width:var(--w,0%);background:linear-gradient(90deg,var(--p),var(--s));border-radius:4px}
  .diario.hz .hprog .dots{display:flex;justify-content:space-between}
  .diario.hz .hprog .dots span{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);opacity:.55;transition:opacity .3s,color .3s;display:flex;align-items:center;gap:6px;cursor:pointer}
  .diario.hz .hprog .dots span::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--line);transition:background .3s,transform .3s}
  .diario.hz .hprog .dots span.on{opacity:1;color:var(--p)}
  .diario.hz .hprog .dots span.on::before{background:var(--p);transform:scale(1.3)}
  .diario.hz .chap.final .chap-media{min-height:0}
}

/* ===== DIARIO orizzontale anche su mobile ===== */
@media(max-width:860px){
  .diario.hz{padding:0!important;height:calc(var(--n,7) * 70vh + 100vh)}
  .diario.hz>.wrap{position:sticky;top:0;height:100svh;width:100vw;max-width:none;padding:0;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:100%;overflow:hidden}
  .diario.hz .head-d{padding:74px 20px 0}
  .diario.hz .head-d h2{font-size:1.35rem}
  .diario.hz .head-d .lead{display:none}
  .diario.hz .chapters{margin-top:0;display:flex;align-items:start;gap:44px;width:max-content;padding-inline:20px;justify-self:start;will-change:transform}
  .diario.hz .rail{display:none}
  .diario.hz .chap{width:calc(100vw - 40px);flex:0 0 auto;padding:8px 0 0;grid-template-columns:1fr;gap:8px;min-height:0;border:0}
  .diario.hz .chap .dot{display:none}
  .diario.hz .chap-text{position:static}
  .diario.hz .chap h3{font-size:1.35rem;margin-bottom:6px}
  .diario.hz .chap p{font-size:.88rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .diario.hz .chap .badge{margin-top:8px;font-size:.78rem}
  .diario.hz .chap-media{position:relative;height:calc(100svh - 400px);min-height:240px;display:block;overflow:visible;padding:0;margin:8px 0 0}
  .diario.hz .chap-media figure{position:absolute;width:var(--w,46%);left:var(--x,0);top:calc(var(--y,0%) * .8);transform:rotate(var(--r,0deg));padding:6px 6px 22px;flex:none}
  .diario.hz .chap-media figure figcaption{font-size:.7rem;bottom:4px}
  .diario.hz .chap-media figure .tape{width:48px;height:16px;top:-7px}
  .diario.hz .chap-media figure.in{opacity:1;translate:0 0}
  .diario.hz .chap.final .chap-media{display:grid;place-items:start;min-height:0;height:auto}
  .diario.hz .chap.final .fcbox{padding:20px}
  .diario.hz .chap.final .fcbox .big{font-size:1.8rem}
  .diario.hz .hprog{width:calc(100% - 40px);margin:0 auto;padding:8px 0 calc(96px + env(safe-area-inset-bottom,0px));display:grid;gap:6px}
  .diario.hz .hprog .bar{height:4px;background:var(--line);border-radius:4px;overflow:hidden}
  .diario.hz .hprog .bar i{display:block;height:100%;width:var(--w,0%);background:linear-gradient(90deg,var(--p),var(--s));border-radius:4px}
  .diario.hz .hprog .dots{display:flex;justify-content:space-between}
  .diario.hz .hprog .dots span{font-size:0;display:block;width:8px;height:8px;border-radius:50%;background:var(--line)}
  .diario.hz .hprog .dots span.on{background:var(--p);transform:scale(1.4)}
}
