:root{
  --red:#c40000; --red-d:#8f0000; --ink:#0d0d0f; --ink2:#17171b; --steel:#cfd3d8;
  --bg:#fff; --alt:#f3f4f6; --txt:#1c1c21; --mut:#5d6068; --r:16px;
  --font:'Inter',system-ui,sans-serif; --head:'Barlow Condensed','Arial Narrow',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:400 17px/1.65 var(--font);color:var(--txt);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:var(--red)}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
.narrow{width:min(780px,100% - 32px)}
h1,h2,h3{font-family:var(--head);line-height:1.05;letter-spacing:.01em;margin:0 0 .5em;text-transform:uppercase}
h1{font-size:clamp(2.6rem,6vw,4.8rem);font-weight:800}
h2{font-size:clamp(2rem,4vw,3rem);font-weight:700}
h3{font-size:1.6rem;font-weight:700}
.eyebrow{font:700 .85rem/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:0 0 14px}
.lead{font-size:1.2rem;color:#d5d7dc;max-width:560px}
.lead.dark{color:var(--mut);margin-bottom:40px}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(0,0,0,.92);backdrop-filter:blur(10px);border-bottom:1px solid #2a2a30}
.bar{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand img{height:54px;width:auto}
.main-nav{display:flex;align-items:center;gap:6px}
.main-nav a{color:#e8e9ec;text-decoration:none;padding:8px 14px;border-radius:8px;font-weight:500}
.main-nav a:hover,.main-nav a.active{color:#fff;background:#24242a}
.main-nav a.active{box-shadow:inset 0 -2px 0 var(--red)}
.nav-toggle,.burger{display:none}
.main-nav a.nav-icon{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;margin-left:6px;border:1px solid #33333a;color:#aeb1b8}
.main-nav a.nav-icon:hover{color:#fff;border-color:var(--red);background:#24242a}

/* buttons */
.btn{display:inline-block;background:var(--red);color:#fff!important;text-decoration:none;font-weight:600;padding:14px 28px;border-radius:10px;border:2px solid var(--red);cursor:pointer;font:600 1rem var(--font);transition:.2s}
.btn:hover{background:var(--red-d);border-color:var(--red-d);transform:translateY(-1px)}
.btn-sm{padding:8px 16px!important;margin-left:8px;font-size:.92rem}
.main-nav a.btn:hover{background:var(--red-d)}
.btn-ghost{background:transparent;border-color:#555}
.btn-ghost:hover{background:#222;border-color:#888}
.btn-light{background:#fff;color:var(--red)!important;border-color:#fff}
.btn-light:hover{background:#eee;border-color:#eee}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}

/* hero */
.hero{background:radial-gradient(900px 500px at 85% 20%,#3a0505 0,transparent 60%),linear-gradient(160deg,#000,var(--ink2));color:#fff;padding:96px 0}
.hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:48px;align-items:center}
.hero h1 em{font-style:normal;color:var(--red);display:block}
.hero-photo{margin:0;position:relative;justify-self:end;width:min(100%,520px)}
.hero-photo img{width:100%;height:auto;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 38%,#000 82%,transparent 100%),linear-gradient(to top,transparent 0,#000 22%,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 38%,#000 82%,transparent 100%),linear-gradient(to top,transparent 0,#000 22%,#000 88%,transparent 100%);mask-composite:intersect}
.lock svg{width:min(300px,100%);margin-inline:auto;filter:drop-shadow(0 20px 40px rgba(196,0,0,.35))}
.page-hero{background:linear-gradient(160deg,#000,var(--ink2));color:#fff;padding:64px 0 56px;border-bottom:4px solid var(--red)}
.page-hero h1{margin:0;font-size:clamp(2.2rem,5vw,3.8rem)}

.strip{background:var(--red);color:#fff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:26px 0;text-align:center}
.stats b{display:block;font:800 2rem/1 var(--head);text-transform:uppercase}
.stats span{font-size:.92rem;opacity:.9}

/* sections */
.section{padding:84px 0}
.section.alt{background:var(--alt)}
.body-text{font-size:1.1rem;color:#33353b}
.cards,.two{display:grid;gap:24px}
.cards{grid-template-columns:repeat(3,1fr)}
.two{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid #e3e5e9;border-radius:var(--r);padding:32px;box-shadow:0 6px 24px rgba(0,0,0,.05)}
.card .ic{font-size:2rem;display:block;margin-bottom:10px}
.card h3{margin-bottom:.3em}
.card p{margin:0;color:var(--mut)}
.ticks{list-style:none;padding:0;margin:14px 0 0}
.ticks li{padding:6px 0 6px 30px;position:relative;color:var(--txt)}
.ticks li::before{content:"";position:absolute;left:0;top:13px;width:14px;height:8px;border-left:3px solid var(--red);border-bottom:3px solid var(--red);transform:rotate(-45deg)}
.cta-band{background:linear-gradient(120deg,var(--red-d),var(--red));color:#fff;text-align:center;padding:64px 0}
.cta-band h2{margin-bottom:22px}

/* progetto */
.partner-logo{margin-top:28px;border-radius:8px;background:#fff;max-width:260px}
.lockphoto{margin:0}
.lockphoto img{margin-inline:auto;border-radius:var(--r);box-shadow:0 20px 60px rgba(196,0,0,.3);max-height:420px;width:auto}
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.num{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;font:800 1.4rem var(--head);margin-bottom:14px}
.inline-logo{display:inline-block;height:26px;width:auto;vertical-align:middle;border-radius:3px;margin:0 2px}

/* contatti */
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;align-items:start}
.info{list-style:none;padding:0;margin:18px 0 0}
.info li{padding:8px 0;border-top:1px solid #eceef1}
.info span{display:inline-block;width:28px}
.form{display:grid;gap:18px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.92rem}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{font:400 1rem var(--font);padding:13px 14px;border:1.5px solid #cfd3d8;border-radius:10px;background:#fff;width:100%}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(196,0,0,.15)}
.form .check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.form .check input{margin-top:5px;accent-color:var(--red)}
.form .btn{justify-self:start}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.alert{padding:16px 20px;border-radius:10px;margin-bottom:18px}
.alert.ok{background:#e8f6ec;color:#12602c;border:1px solid #b7e2c4}
.alert.err{background:#fdecec;color:#8a1212;border:1px solid #f4b8b8}
.alert ul{margin:0;padding-left:18px}

/* registrazione */
.form select{font:400 1rem var(--font);padding:13px 14px;border:1.5px solid #cfd3d8;border-radius:10px;background:#fff;width:100%}
.form select:focus,.form input[type=number]:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(196,0,0,.15)}
.form input[type=number]{font:400 1rem var(--font);padding:13px 14px;border:1.5px solid #cfd3d8;border-radius:10px;width:100%}
.row3{grid-template-columns:2fr 1fr 1fr}
.choice{border:1.5px solid #e3e5e9;border-radius:10px;padding:12px 16px;display:grid;gap:8px;margin:0}
.choice legend{font-weight:600;font-size:.92rem;padding:0 6px}
.choice label{display:flex;gap:10px;align-items:center;font-weight:400}
.choice input{accent-color:var(--red)}
.choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 14px}
@media(max-width:860px){.choice-grid{grid-template-columns:repeat(2,1fr)}}

.hero-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}

.brand-name{text-transform:none}
.page-privacy .legal h2{font-size:1.7rem;margin-top:1.6em}
.page-privacy .legal p,.page-privacy .legal li{color:#33353b}

/* footer */
.site-footer{background:#000;color:#aeb1b8;padding:44px 0;text-align:center}
.foot-logo{height:60px;margin:0 auto 12px}
.site-footer p{margin:4px 0}.small{font-size:.85rem}
.site-footer a{color:#fff}

@media(max-width:860px){
  .hero-grid,.contact-grid,.two,.cards,.steps{grid-template-columns:1fr}
  .hero-photo{width:min(100%,380px);justify-self:center}.hero{padding:64px 0}.section{padding:56px 0}
  .stats{grid-template-columns:1fr 1fr}.row,.row3{grid-template-columns:1fr}
  .burger{display:block;width:44px;height:44px;cursor:pointer;position:relative}
  .burger span,.burger span::before,.burger span::after{position:absolute;left:10px;width:24px;height:2px;background:#fff;content:""}
  .burger span{top:21px}.burger span::before{top:-7px;left:0}.burger span::after{top:7px;left:0}
  .main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#000;flex-direction:column;align-items:stretch;padding:12px 16px 20px;border-bottom:1px solid #2a2a30}
  .nav-toggle:checked ~ .main-nav{display:flex}
  .btn-sm{margin:8px 0 0;text-align:center}
}
