/* ============================================================
   diegocassinelli.it — landing percorso benessere
   Palette: arancio caldo · verde bosco · grigio scuro
   ============================================================ */

:root{
  --ink:#1C1C1A;
  --bosco:#1F4034;
  --salvia:#8FAF9B;
  --arancio:#E85A16;
  --arancio-scuro:#C74A0D;
  --carta:#F2F0EC;
  --grigio:#5C5B57;
  --linea:#D6D3CC;
  --spine:14px;

  --f-display:'Archivo',sans-serif;
  --f-body:'IBM Plex Sans',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',monospace;

  --ease:cubic-bezier(.22,.8,.24,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);color:var(--ink);background:var(--carta);-webkit-font-smoothing:antialiased}

.material-symbols-outlined{
  font-family:'Material Symbols Outlined';
  font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24;
  line-height:1;user-select:none;
}

/* ── impianto ───────────────────────────────────────────── */
.spine{position:fixed;top:0;left:0;width:var(--spine);height:100%;background:var(--arancio);z-index:50}
.page{margin-left:var(--spine)}
.wrap{max-width:1080px;margin:0 auto;padding:0 clamp(24px,5vw,72px)}
section{padding:clamp(64px,9vw,128px) 0}

.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor;flex:none;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease) .1s}
.in .eyebrow::before,.eyebrow.in::before{transform:scaleX(1)}

.display{font-family:var(--f-display);font-weight:800;letter-spacing:-.035em;line-height:.94;font-size:clamp(38px,7.4vw,86px)}
.display--sm{font-size:clamp(30px,4.6vw,54px);line-height:1}

/* ── movimento ──────────────────────────────────────────── */
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}

/* evidenziatore che si riempie da sinistra */
.hl{position:relative;isolation:isolate;white-space:nowrap}
.hl::before{
  content:"";position:absolute;z-index:-1;
  left:-.1em;right:-.1em;bottom:.04em;height:.4em;
  background:var(--arancio);opacity:.3;
  transform:scaleX(0);transform-origin:left;
  transition:transform .6s var(--ease) var(--d,.25s);
}
.in .hl::before{transform:scaleX(1)}

/* lampo breve su una parola chiave */
@keyframes lampo{
  0%{color:inherit}
  20%{color:var(--arancio)}
  38%{color:inherit}
  52%{color:var(--arancio)}
  100%{color:inherit}
}
.in .fl{animation:lampo 1.5s var(--ease) var(--d,.5s) both}

/* passata di luce sul titolone dell'hero */
@keyframes passata{from{background-position:-140% 0}to{background-position:240% 0}}
.sheen{
  background-image:linear-gradient(100deg,transparent 38%,rgba(255,255,255,.42) 50%,transparent 62%);
  background-size:220% 100%;background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;
  animation:passata 2.6s var(--ease) 1.1s 1 both;
}

/* comparsa a cascata */
.stag>*{opacity:0;transform:translateY(18px);animation:sali .8s var(--ease) both}
@keyframes sali{to{opacity:1;transform:none}}
.stag>*:nth-child(1){animation-delay:.15s}
.stag>*:nth-child(2){animation-delay:.28s}
.stag>*:nth-child(3){animation-delay:.41s}
.stag>*:nth-child(4){animation-delay:.54s}
.stag>*:nth-child(5){animation-delay:.67s}

/* ── hero con video ─────────────────────────────────────── */
.hero{background:var(--ink);color:var(--carta);position:relative;overflow:hidden}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:72% 50%}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,28,26,.95) 0%,rgba(28,28,26,.84) 44%,rgba(28,28,26,.22) 100%)}
.hero__inner{position:relative;padding-top:clamp(96px,15vh,190px);padding-bottom:clamp(72px,10vh,120px)}
.hero .eyebrow{color:var(--arancio);margin-bottom:28px}
.hero .display{max-width:15ch}
.hero .display em{font-style:normal;color:var(--arancio)}
.hero__sub{margin-top:30px;max-width:42ch;font-size:clamp(16px,1.6vw,19px);line-height:1.65;color:rgba(242,240,236,.74)}
.hero__meta{margin-top:52px;display:flex;flex-wrap:nowrap;border-top:1px solid rgba(242,240,236,.16)}
.hero__meta>div{flex:1 1 0;min-width:0;padding:22px 20px 0 0;margin-right:20px;border-right:1px solid rgba(242,240,236,.16);display:flex;align-items:center;gap:14px}
.hero__meta>div:last-child{border-right:0;margin-right:0}
.hero__n{width:clamp(75px,8.25vw,98px);aspect-ratio:1;border-radius:50%;background:var(--arancio);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-display);font-style:normal;font-weight:800;font-size:clamp(34px,3.75vw,44px);line-height:1;letter-spacing:-.045em;flex:none}
.hero__meta b{font-family:var(--f-display);font-weight:800;font-size:22px;display:block;letter-spacing:-.02em}

/* blink dei cerchi: 1s ciascuno, sfalsati di mezzo secondo */
@keyframes blink{
  0%,100%{background:var(--arancio);color:#fff}
  50%{background:var(--carta);color:var(--arancio)}
}
.hero__n{animation:blink 1s var(--ease) var(--bd,1s) 1 both}
.hero__meta>div:nth-child(1) .hero__n{--bd:1s}
.hero__meta>div:nth-child(2) .hero__n{--bd:1.5s}
.hero__meta>div:nth-child(3) .hero__n{--bd:2s}
.hero__meta span{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(242,240,236,.55)}

/* ── manifesto ──────────────────────────────────────────── */
.manifesto{background:var(--arancio);color:#fff}
.manifesto .display--sm{max-width:18ch}
.manifesto p{margin-top:22px;max-width:44ch;font-size:clamp(16px,1.6vw,19px);line-height:1.65;color:rgba(255,255,255,.92)}
.manifesto .hl::before{background:#fff;opacity:.26}

/* ── sequenza ───────────────────────────────────────────── */
.seq{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink);margin-top:44px}
.seq__item{padding:24px 20px 0 0;border-right:1px solid var(--linea)}
.seq__item:last-child{border-right:0;padding-right:0}
.seq__ico{font-size:30px;color:var(--arancio);display:block;margin-bottom:14px;transform:translateY(8px);opacity:0;transition:transform .55s var(--ease),opacity .55s var(--ease)}
.in .seq__item:nth-child(1) .seq__ico{transition-delay:.10s}
.in .seq__item:nth-child(2) .seq__ico{transition-delay:.20s}
.in .seq__item:nth-child(3) .seq__ico{transition-delay:.30s}
.in .seq__item:nth-child(4) .seq__ico{transition-delay:.40s}
.in .seq__ico{transform:none;opacity:1}
.seq__n{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;color:var(--grigio)}
.seq__t{font-family:var(--f-display);font-weight:800;font-size:20px;letter-spacing:-.02em;margin:8px 0 6px}
.seq__d{font-size:14px;line-height:1.6;color:var(--grigio)}
.seq__note{margin-top:32px;font-size:15px;color:var(--grigio);max-width:52ch}
.seq__note b{font-weight:500;color:var(--ink)}

/* ── il cancello ────────────────────────────────────────── */
.gate{background:var(--bosco);color:var(--carta)}
.gate .eyebrow{color:var(--salvia);margin-bottom:26px}
.gate__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);margin-top:40px}
.gate__col h3{font-family:var(--f-display);font-weight:800;font-size:22px;letter-spacing:-.02em;padding-bottom:16px;margin-bottom:20px;display:flex;align-items:center;gap:12px;position:relative}
.gate__col h3 .material-symbols-outlined{font-size:26px;flex:none}
.gate__col h3::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease) .2s}
.gate__col--si h3::after{background:var(--arancio)}
.gate__col--no h3::after{background:rgba(242,240,236,.22)}
.in .gate__col h3::after{transform:scaleX(1)}
.gate__col--si h3 .material-symbols-outlined{color:var(--arancio)}
.gate__col--no h3{color:var(--salvia)}
.gate__col li{list-style:none;padding:13px 0;border-bottom:1px solid rgba(242,240,236,.13);font-size:16px;line-height:1.5}
.gate__col--no li{color:var(--salvia)}
.gate .hl::before{background:var(--arancio);opacity:.45}

/* ── test ───────────────────────────────────────────────── */
.test .eyebrow{color:var(--arancio);margin-bottom:24px}
.test__lede{margin-top:20px;max-width:50ch;font-size:17px;line-height:1.65;color:var(--grigio)}
.test__box{margin-top:44px;background:#fff;border:2px solid var(--ink);padding:clamp(26px,4vw,48px);min-height:420px;display:flex;flex-direction:column}
.test__bar{height:4px;background:var(--linea);margin-bottom:26px}
.test__bar i{display:block;height:100%;background:var(--arancio);width:0;transition:width .35s var(--ease)}
.test__count{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;color:var(--grigio);margin-bottom:16px}
.test__q{font-family:var(--f-display);font-weight:800;font-size:clamp(22px,3vw,32px);line-height:1.15;letter-spacing:-.02em;margin-bottom:30px;max-width:20ch}
.test__opts{display:flex;flex-direction:column;gap:10px;max-width:460px}
.opt{font-family:var(--f-body);font-size:17px;text-align:left;background:#fff;border:1px solid var(--linea);padding:17px 20px;cursor:pointer;display:flex;align-items:center;gap:14px;color:var(--ink);transition:border-color .15s,background .15s,transform .15s var(--ease)}
.opt .material-symbols-outlined{font-size:20px;color:var(--linea);transition:color .15s}
.opt:hover{border-color:var(--ink);background:#FBFAF8;transform:translateX(4px)}
.opt:hover .material-symbols-outlined{color:var(--arancio)}
.opt:focus-visible{outline:3px solid var(--arancio);outline-offset:2px}
.qfade{animation:qin .38s var(--ease) both}
@keyframes qin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.test__nav{margin-top:auto;padding-top:28px;display:flex;justify-content:space-between;align-items:center}
.lnk{background:none;border:0;font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--grigio);cursor:pointer;display:flex;align-items:center;gap:8px;padding:6px 0}
.lnk:hover{color:var(--ink)}
.lnk[hidden]{display:none}
.test__disc{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--grigio);line-height:1.6;max-width:44ch;margin-top:20px}
.res__badge{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--arancio);margin-bottom:14px}
.res__t{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,3.4vw,36px);line-height:1.1;letter-spacing:-.025em;margin-bottom:18px;max-width:18ch}
.res__d{font-size:17px;line-height:1.65;color:var(--grigio);max-width:48ch}
.res__d + .res__d{margin-top:14px}

/* ── come funziona ──────────────────────────────────────── */
.talk{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,88px);align-items:start}
.talk__media{aspect-ratio:4/5;background:repeating-linear-gradient(122deg,#E4E1DA 0 40px,#D9D5CD 40px 80px);position:relative;overflow:hidden;object-fit:cover;width:100%;display:block}
.talk__media span{position:absolute;bottom:14px;left:16px;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;color:var(--grigio)}
.step{padding:24px 0;border-bottom:1px solid var(--linea);display:flex;gap:20px}
.step:first-of-type{border-top:1px solid var(--linea)}
.step .material-symbols-outlined{font-size:26px;color:var(--arancio);flex:none;padding-top:3px}
.step__t{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:-.02em;margin-bottom:6px}
.step__d{font-size:15px;line-height:1.6;color:var(--grigio)}

/* ── confine ────────────────────────────────────────────── */
.limits{background:var(--ink);color:var(--carta)}
.limits .eyebrow{color:var(--arancio);margin-bottom:26px}
.limits__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(242,240,236,.16);margin-top:40px;border:1px solid rgba(242,240,236,.16)}
.limits__grid>div{background:var(--ink);padding:26px 24px}
.limits__grid .material-symbols-outlined{font-size:26px;color:var(--arancio);margin-bottom:14px;display:block}
.limits__grid h4{font-family:var(--f-display);font-weight:800;font-size:17px;letter-spacing:-.01em;margin-bottom:10px}
.limits__grid p{font-size:14px;line-height:1.6;color:rgba(242,240,236,.62)}

/* ── chiusura ───────────────────────────────────────────── */
.cta{background:var(--arancio);color:#fff}
.cta .display--sm{max-width:14ch}
.cta p{margin-top:20px;max-width:44ch;font-size:17px;line-height:1.65;color:rgba(255,255,255,.92)}
.btn{display:inline-flex;align-items:center;gap:12px;margin-top:36px;background:var(--ink);color:var(--carta);font-family:var(--f-display);font-weight:600;font-size:17px;letter-spacing:-.01em;padding:18px 34px;text-decoration:none;border:0;cursor:pointer;transition:transform .2s var(--ease),background .2s}
.btn .material-symbols-outlined{transition:transform .25s var(--ease)}
.btn:hover{background:#000}
.btn:hover .material-symbols-outlined{transform:translateX(6px)}
.btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.btn--arancio{background:var(--arancio);color:#fff}
.btn--arancio:hover{background:var(--arancio-scuro)}

footer{background:var(--ink);color:rgba(242,240,236,.45);padding:36px 0;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}

/* ── accessibilità del movimento ────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .hl::before{transform:scaleX(1);transition:none}
  .eyebrow::before,.gate__col h3::after{transform:scaleX(1);transition:none}
  .seq__ico{opacity:1;transform:none;transition:none}
  .stag>*{opacity:1;transform:none;animation:none}
  .in .fl,.sheen,.qfade,.hero__n{animation:none}
  .sheen{background-image:none}
  .btn,.opt,.test__bar i{transition:none}
}

/* ── responsive ─────────────────────────────────────────── */
@media (max-width:860px){
  :root{--spine:7px}
  .wrap{padding-left:32px;padding-right:26px}
  .hero__scrim{background:linear-gradient(180deg,rgba(28,28,26,.62) 0%,rgba(28,28,26,.76) 62%)}
  .hero__video{object-position:60% 50%}
  .hero__meta{display:block}
  .hero__meta>div{padding:16px 0 14px;margin:0;border-right:0;border-bottom:1px solid rgba(242,240,236,.16)}
  .hero__meta>div:last-child{border-bottom:0}
  .hero__n{width:80px;font-size:36px}
  .seq{grid-template-columns:1fr 1fr}
  .seq__item{border-bottom:1px solid var(--linea);padding-bottom:22px}
  .seq__item:nth-child(2n){border-right:0;padding-right:0}
  .gate__cols,.talk,.limits__grid{grid-template-columns:1fr}
  .talk__media{aspect-ratio:4/5}
  .hl{white-space:normal}
}

/* ── esito: gancio + form ───────────────────────────────── */
.res__gate{margin-top:30px;padding-top:26px;border-top:2px solid var(--ink)}
.res__hook{font-family:var(--f-display);font-weight:800;font-size:clamp(20px,2.6vw,26px);letter-spacing:-.02em;line-height:1.15;margin-bottom:10px}
.res__ask{font-size:16px;line-height:1.6;color:var(--grigio);max-width:46ch}

.form{margin-top:26px}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:7px}
.field--full{grid-column:1/-1}
.field label{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--grigio)}
.field input{font-family:var(--f-body);font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--linea);padding:14px 16px;transition:border-color .15s}
.field input:hover{border-color:var(--grigio)}
.field input:focus{outline:none;border-color:var(--ink);box-shadow:inset 0 -2px 0 var(--arancio)}
.field input:focus-visible{outline:3px solid var(--arancio);outline-offset:2px}
.field .err{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--arancio-scuro);min-height:14px}
.field.is-err input{border-color:var(--arancio-scuro)}

.privacy{grid-column:1/-1;margin-top:6px;display:flex;gap:12px;align-items:flex-start}
.privacy input[type=checkbox]{appearance:none;flex:none;width:22px;height:22px;border:1px solid var(--linea);background:#fff;cursor:pointer;position:relative;margin-top:1px;transition:border-color .15s,background .15s}
.privacy input[type=checkbox]:hover{border-color:var(--ink)}
.privacy input[type=checkbox]:checked{background:var(--arancio);border-color:var(--arancio)}
.privacy input[type=checkbox]:checked::after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}
.privacy input[type=checkbox]:focus-visible{outline:3px solid var(--arancio);outline-offset:2px}
.privacy label{font-size:14px;line-height:1.55;color:var(--grigio)}
.privacy.is-err input[type=checkbox]{border-color:var(--arancio-scuro)}
.privacy button{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.privacy button:hover{color:var(--arancio-scuro)}

.form .btn{width:100%;justify-content:center;margin-top:22px}
.form__wait{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--grigio);margin-top:14px;text-align:center;min-height:16px}
.form__wait[data-stato=ko]{color:var(--arancio-scuro)}

/* ── modale privacy ─────────────────────────────────────── */
.modal{position:fixed;inset:0;z-index:100;display:none;padding:clamp(16px,4vw,48px)}
.modal[open]{display:flex;align-items:center;justify-content:center}
.modal__scrim{position:absolute;inset:0;background:rgba(28,28,26,.72)}
.modal__panel{position:relative;background:var(--carta);border:2px solid var(--ink);width:min(760px,100%);max-height:88vh;display:flex;flex-direction:column;animation:qin .3s var(--ease) both}
.modal__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--linea)}
.modal__head h3{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:-.02em}
.modal__x{background:none;border:0;cursor:pointer;color:var(--grigio);display:flex;padding:4px}
.modal__x:hover{color:var(--ink)}
.modal__x:focus-visible{outline:3px solid var(--arancio);outline-offset:2px}
.modal__body{flex:1;overflow:auto;background:#fff}
.modal__body iframe{display:block;width:100%;height:min(58vh,560px);border:0}

/* ── thank you ──────────────────────────────────────────── */
.grazie{min-height:70vh;display:flex;align-items:center;background:var(--bosco);color:var(--carta)}
.grazie .eyebrow{color:var(--salvia);margin-bottom:26px}
.grazie p{margin-top:22px;max-width:46ch;font-size:17px;line-height:1.65;color:rgba(242,240,236,.78)}
.grazie .hl::before{background:var(--arancio);opacity:.45}
.grazie .btn{background:var(--arancio);color:#fff}
.grazie .btn:hover{background:var(--arancio-scuro)}

@media (max-width:860px){
  .form__grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .modal__panel{animation:none}
  .field input,.privacy input[type=checkbox]{transition:none}
}

/* ── thankyou: da dove sono partito ────────────────────── */
.prima{background:var(--carta);color:var(--ink)}
.prima__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,72px);align-items:center}
.prima__foto{aspect-ratio:1;overflow:hidden;background:var(--linea)}
.prima__foto img{width:100%;height:100%;object-fit:cover;display:block}
.prima__testo .display--sm{margin-top:20px}
.prima__testo p{margin-top:20px;max-width:44ch;font-size:17px;line-height:1.65;color:var(--grigio)}
.prima__testo .display--sm + p{color:var(--ink)}
@media (max-width:860px){
  .prima__grid{grid-template-columns:1fr}
  .prima__foto{max-width:360px}
}
