/* OLOtheme — schede prodotto DARK · foglio condiviso */
:root{
  --bg:#0C0E13; --bg-2:#12151D; --bg-3:#181C27;
  --line:rgba(250,247,242,.1); --line-2:rgba(250,247,242,.18);
  --paper:#FAF7F2; --dim:rgba(250,247,242,.62); --faint:rgba(250,247,242,.34);
  --olo:#E8453D;
  --build:#E8453D; --booking:#3D8BFF; --lang:#E8409A;
  --tour:#F5A623; --tutor:#38C172; --secur:#26B8E8;
  --c:var(--olo);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0; padding:0; background:var(--bg); color:var(--paper);
  font-family:'Inter',system-ui,sans-serif; -webkit-font-smoothing:antialiased;}
body{font-size:16px; line-height:1.55;}
a{color:var(--paper); text-decoration:none;}
a:hover{color:var(--c);}
img{max-width:100%; display:block;}
::selection{background:var(--c); color:#0C0E13;}
.wrap{max-width:1280px; margin:0 auto; padding:0 32px;}
.mono{font-family:'JetBrains Mono',monospace;}

/* ---------- NAV ---------- */
.dnav{position:fixed; top:0; left:0; right:0; z-index:80;
  background:rgba(12,14,19,.7); backdrop-filter:blur(12px); border-bottom:1px solid var(--line);}
.dnav .row{display:flex; align-items:center; gap:28px; padding:14px 26px;}
.dnav .logo img{height:24px; width:auto; max-width:40vw; object-fit:contain; object-position:left center; filter:brightness(0) invert(1);}
.dnav .links{display:flex; gap:20px; font-family:'JetBrains Mono',monospace; font-size:10.5px;
  font-weight:600; letter-spacing:.12em; text-transform:uppercase; flex-wrap:wrap;}
.dnav .links a{color:var(--faint);}
.dnav .links a:hover{color:var(--paper);}
.dnav .links a.on{color:var(--c);}
.dnav .exp{margin-left:auto; font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--paper);
  border:1px solid var(--line-2); border-radius:100px; padding:9px 16px; transition:all .18s;}
.dnav .exp:hover{border-color:var(--c); color:var(--c);}

/* ---------- TYPE / PIECES ---------- */
.k{font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.26em;
  text-transform:uppercase; color:var(--c); display:flex; align-items:center; gap:12px; margin-bottom:24px;}
.k::before{content:""; width:34px; height:1px; background:var(--c);}
h1.d{font-family:'Fraunces',serif; font-weight:400; font-size:clamp(44px,5.6vw,88px);
  line-height:.96; letter-spacing:-.032em; margin:0 0 24px; text-wrap:balance;}
h2.d{font-family:'Fraunces',serif; font-weight:400; font-size:clamp(32px,3.8vw,56px);
  line-height:1.02; letter-spacing:-.026em; margin:0 0 18px; text-wrap:balance;}
h1.d em, h2.d em, .em{font-style:italic; color:var(--c);}
.sub{font-size:16px; line-height:1.62; color:var(--dim); max-width:52ch; margin:0 0 30px; text-wrap:pretty;}
.sub strong{color:var(--paper); font-weight:600;}
.plogo{height:36px; width:auto; max-width:80vw; object-fit:contain; object-position:left center; filter:brightness(0) invert(1); opacity:.92; margin-bottom:26px;}

.tags{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:34px;}
.tags span{font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.08em;
  padding:6px 13px; border-radius:100px; border:1px solid var(--line); color:var(--dim);}
.tags span.hot{border-color:var(--c); color:var(--c);}

.cta{display:inline-flex; align-items:center; gap:12px; font-family:'JetBrains Mono',monospace;
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:#0C0E13; background:var(--c); padding:15px 26px; border-radius:2px; transition:all .18s; border:none; cursor:pointer;}
.cta:hover{transform:translate(3px,-3px); box-shadow:-5px 5px 0 rgba(250,247,242,.22); color:#0C0E13;}
.cta.ghost{background:transparent; color:var(--paper); border:1px solid var(--line-2);}
.cta.ghost:hover{border-color:var(--paper); box-shadow:none; color:var(--paper); transform:translate(0,-2px);}

/* ---------- HERO SCAFFOLD ---------- */
.dhero{min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden; padding:120px 0 80px;}
.dhero .grid2{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:5vw; align-items:center;}
@media(max-width:960px){ .dhero .grid2{grid-template-columns:1fr; gap:60px;} }

/* stats strip */
.dstats{display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line); margin-top:56px;}
.dstat{flex:1 1 150px; padding:20px 24px 0 0; border-right:1px dashed var(--line); margin-right:24px;}
.dstat:last-child{border-right:none; margin-right:0;}
.dstat b{display:block; font-family:'Fraunces',serif; font-weight:500; font-size:32px; letter-spacing:-.02em; line-height:1;}
.dstat b em{font-style:italic; color:var(--c);}
.dstat span{display:block; margin-top:7px; font-family:'JetBrains Mono',monospace;
  font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint);}
@media(max-width:640px){ .dstat{border-right:none;} }

/* ---------- SECTIONS ---------- */
.dsec{padding:110px 0; position:relative; border-top:1px solid var(--line);}
.dsec .head{max-width:720px; margin-bottom:56px;}
.dsec .head p{font-size:16px; color:var(--dim); margin:0; text-wrap:pretty;}

/* generic dark card */
.dcard{background:var(--bg-2); border:1px solid var(--line); border-radius:12px; padding:26px;}
.dcard h3{font-family:'Fraunces',serif; font-weight:500; font-size:21px; letter-spacing:-.015em; margin:0 0 10px;}
.dcard h3 em{font-style:italic; color:var(--c);}
.dcard p{font-size:13.5px; line-height:1.6; color:var(--dim); margin:0; text-wrap:pretty;}
.dcard p strong{color:var(--paper);}
.dcard .kk{display:block; font-family:'JetBrains Mono',monospace; font-size:9.5px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--c); margin-bottom:14px;}

/* reveal */
@media (prefers-reduced-motion: no-preference){
  .rv{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.9,.3,1);}
  .rv.in{opacity:1; transform:none;}
}

/* ---------- MARQUEE ---------- */
.dmarq{overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:14px 0; white-space:nowrap;}
.dmarq .in{display:inline-block; animation:dmarq 28s linear infinite; font-family:'JetBrains Mono',monospace;
  font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--faint);}
.dmarq .in b{color:var(--c); font-weight:700; margin:0 26px;}
.dmarq.rev .in{animation-direction:reverse;}
@keyframes dmarq{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- NEXT / FOOTER ---------- */
.dnext{border-top:1px solid var(--line);}
.dnext .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:36px; padding-bottom:36px;}
.dnext .lbl{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--faint);}
.dnext a.nx{font-family:'Fraunces',serif; font-weight:500; font-size:28px; letter-spacing:-.02em;}
.dnext a.nx em{font-style:italic; color:var(--nc,var(--c));}
.dnext a.nx:hover{color:var(--nc,var(--c));}
.dfoot{border-top:1px solid var(--line); background:var(--bg-2);}
.dfoot .wrap{display:flex; align-items:center; gap:26px; flex-wrap:wrap; padding-top:34px; padding-bottom:46px;}
.dfoot img{height:22px; width:auto; max-width:60vw; object-fit:contain; object-position:left center; filter:brightness(0) invert(1); opacity:.85;}
.dfoot .lnk{display:flex; gap:18px; font-family:'JetBrains Mono',monospace; font-size:10px;
  font-weight:600; letter-spacing:.12em; text-transform:uppercase; flex-wrap:wrap;}
.dfoot .lnk a{color:var(--faint);}
.dfoot .lnk a:hover{color:var(--paper);}
.dfoot .fine{margin-left:auto; font-family:'JetBrains Mono',monospace; font-size:10px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--faint);}
@media(max-width:760px){ .dfoot .fine{margin-left:0;} }

@media (prefers-reduced-motion: reduce){
  .dmarq .in{animation:none;}
}

/* ---------- FOLLOW / IN ARRIVO ---------- */
.follow{border-top:1px solid var(--line); background:color-mix(in srgb, var(--c) 6%, var(--bg-2));}
.follow .wrap{display:flex; align-items:center; gap:20px; padding-top:22px; padding-bottom:22px; flex-wrap:wrap;}
.follow .fk{font-family:'JetBrains Mono',monospace; font-size:9.5px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--c); border:1px dashed var(--c); border-radius:100px; padding:6px 13px; flex-shrink:0; white-space:nowrap;}
.follow p{margin:0; font-size:14px; line-height:1.6; color:var(--dim);}
.follow a{color:var(--c); text-decoration:underline; text-underline-offset:3px; font-weight:600;}
.follow a:hover{color:var(--paper);}

/* ---------- LANG SWITCHER ---------- */
.langsw{position:relative; display:flex; gap:2px; align-items:center; font-family:'JetBrains Mono',monospace; font-size:9.5px;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-left:auto;}
.langsw a{color:var(--faint); padding:5px 6px; border-radius:6px;}
.langsw a:hover{color:var(--paper);}
.langsw a.on{color:var(--c); background:color-mix(in srgb, var(--c) 14%, transparent);}
.langsw .lsw-t{display:none; align-items:center; gap:5px; font:inherit; letter-spacing:inherit; text-transform:inherit;
  color:var(--paper); background:rgba(12,14,19,.6); border:1px solid var(--line-2); border-radius:8px; padding:6px 10px; cursor:pointer;}
.langsw .lsw-list{display:flex; gap:2px; align-items:center;}
.dnav .exp{margin-left:0;}
@media(max-width:900px){
  .dnav .row{flex-wrap:nowrap; gap:12px; padding:12px 16px;}
  .dnav .links{gap:9px; flex-wrap:nowrap;}
  .dnav .links a{font-size:0; width:11px; height:11px; border-radius:50%; flex-shrink:0; opacity:.85;}
  .dnav .links a:nth-child(1){background:#E8453D;}
  .dnav .links a:nth-child(2){background:#3D8BFF;}
  .dnav .links a:nth-child(3){background:#E8409A;}
  .dnav .links a:nth-child(4){background:#26B8E8;}
  .dnav .links a:nth-child(5){background:#F5A623;}
  .dnav .links a:nth-child(6){background:#38C172;}
  .dnav .links a.on{opacity:1; box-shadow:0 0 0 2px var(--bg), 0 0 0 3.5px var(--c);}
  .langsw{margin-left:auto; font-size:9px;}
  .langsw .lsw-t{display:inline-flex;}
  .langsw .lsw-list{display:none; position:absolute; top:calc(100% + 8px); right:0; z-index:120; flex-direction:column; align-items:stretch;
    background:rgba(12,14,19,.96); border:1px solid var(--line-2); border-radius:10px; padding:6px; box-shadow:0 20px 50px -20px rgba(0,0,0,.8);}
  .langsw.open .lsw-list{display:flex;}
  .langsw .lsw-list a{padding:8px 16px; text-align:center;}
  .dnav .exp{margin-left:0; padding:7px 12px; font-size:9px; white-space:nowrap;}
}

/* ---------- CREDITS (sempre visibili) ---------- */
.credits{position:fixed; bottom:0; left:0; right:0; z-index:92; text-align:center; pointer-events:none; padding:22px 10px 9px;
  background:linear-gradient(180deg, transparent, rgba(12,14,19,.85) 60%);
  font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint);}
.credits a{pointer-events:auto; color:var(--dim);}
.credits a:hover{color:var(--c);}
.dfoot .wrap{padding-bottom:64px;}
