/* =========================================================
   Digital Expert — stylesheet
   Dark, cinematic theme. Palette derivata dal logo: navy #13286F, oro #B29146
   ========================================================= */

:root{
  --bg: #05070f;
  --bg-1: #070b1a;
  --bg-2: #0a1024;
  --navy: #13286f;
  --navy-light: #2b46ad;
  --navy-soft: #1b2c66;
  --gold: #b2914a;
  --gold-light: #e8c876;
  --gold-soft: #d8bc7d;
  --cream: #f7f4ec;
  --ink: #f4f2ec;
  --ink-dim: rgba(244,242,236,0.70);
  --ink-faint: rgba(244,242,236,0.46);
  --white: #ffffff;
  --surface: rgba(255,255,255,0.045);
  --surface-2: rgba(255,255,255,0.075);
  --border: rgba(255,255,255,0.10);
  --border-strong: rgba(255,255,255,0.16);
  --gold-border: rgba(178,145,74,0.45);
  --shadow: 0 30px 70px -30px rgba(0,0,0,0.6);
  --glow-gold: 0 0 50px -12px rgba(216,188,125,0.55);
  --radius: 18px;
  --container: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Poppins', sans-serif;
  line-height:1.12;
  margin:0 0 .5em;
  color:var(--ink);
  letter-spacing:-0.015em;
}
p{ margin:0 0 1em; color:var(--ink-dim); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }

.container{ max-width:var(--container); margin:0 auto; padding:0 24px; position:relative; z-index:1; }

.grad-text{
  background:linear-gradient(90deg, var(--gold-light), var(--gold) 55%, #f6e6bb);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold-light);
  margin-bottom:18px;
}
.eyebrow::before{
  content:"";
  width:26px; height:2px;
  background:linear-gradient(90deg, var(--gold), transparent);
  display:inline-block;
}

section{ padding:110px 0; position:relative; }
@media (max-width:768px){ section{ padding:72px 0; } }

.section-alt{ background:var(--bg-1); }

/* ---------- Ambient decorative orbs ---------- */
.orb-field{ position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.orb{
  position:absolute;
  border-radius:50%;
  filter:blur(70px);
  opacity:.55;
  animation:float 16s ease-in-out infinite alternate;
}
.orb-gold{ background:radial-gradient(circle, rgba(232,200,118,.55), transparent 70%); }
.orb-navy{ background:radial-gradient(circle, rgba(43,70,173,.55), transparent 70%); }
@keyframes float{
  0%{ transform:translate(0,0) scale(1); }
  100%{ transform:translate(30px,-40px) scale(1.12); }
}
@media (prefers-reduced-motion:reduce){ .orb{ animation:none; } }

/* subtle grid texture, reusable */
.grid-texture::after{
  content:"";
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:46px 46px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, rgba(0,0,0,.7), transparent 75%);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:16px 32px;
  border-radius:999px;
  font-family:'Poppins',sans-serif;
  font-weight:600;
  font-size:.95rem;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
  position:relative;
}
.btn-gold{
  background:linear-gradient(135deg, var(--gold-light), var(--gold) 75%);
  color:#1c1305;
  box-shadow:0 16px 36px -14px rgba(216,188,125,.55);
}
.btn-gold:hover{ transform:translateY(-3px); box-shadow:0 20px 46px -12px rgba(216,188,125,.75); }
.btn-outline{ border-color:rgba(255,255,255,.28); color:var(--white); }
.btn-outline:hover{ border-color:var(--gold-light); background:rgba(232,200,118,.08); transform:translateY(-3px); }
.btn-navy{ background:linear-gradient(135deg, var(--navy-light), var(--navy)); color:#fff; box-shadow:0 16px 36px -16px rgba(19,40,111,.7); }
.btn-navy:hover{ transform:translateY(-3px); box-shadow:0 20px 46px -12px rgba(19,40,111,.85); }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:#0a0e1f; /* fallback solido, sempre presente anche senza backdrop-filter */
  border-bottom:1px solid var(--border);
  transition:border-color .3s ease;
}
/* Il blur vive su uno pseudo-elemento: applicare backdrop-filter direttamente
   su .site-header trasformerebbe l'header in containing block per i figli
   position:fixed (il pannello nav mobile), rompendone l'altezza a schermo intero. */
.site-header::before{
  content:"";
  position:absolute; inset:0; z-index:-1;
  background:rgba(5,7,15,.55);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:background .3s ease;
}
.site-header.scrolled{ border-color:var(--border-strong); }
.site-header.scrolled::before{ background:rgba(5,7,15,.86); }
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px;
  gap:20px;
}
.logo-chip{ display:inline-flex; align-items:center; }
.logo-chip img{ height:28px; display:block; }
.main-nav{ display:flex; align-items:center; gap:32px; margin-left:auto; }
.main-nav a{
  font-family:'Poppins',sans-serif;
  font-weight:500;
  font-size:.92rem;
  color:var(--ink-dim);
  position:relative;
  padding:6px 0;
  transition:color .2s ease;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:linear-gradient(90deg, var(--gold-light), var(--gold));
  transform:scaleX(0); transform-origin:left;
  transition:transform .2s ease;
}
.main-nav a:hover{ color:var(--ink); }
.main-nav a:hover::after, .main-nav a.active::after{ transform:scaleX(1); }
.main-nav a.active{ color:var(--ink); }
.nav-cta{ margin-left:12px; padding:12px 26px; font-size:.88rem; }
.nav-toggle{
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:8px;
}
.nav-toggle span{ width:24px; height:2px; background:var(--ink); display:block; }

@media (max-width:920px){
  .main-nav{
    position:fixed; top:65px; left:0; right:0; bottom:0;
    background:rgba(6,9,20,.98);
    backdrop-filter:blur(18px);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:12px 24px 24px;
    transform:translateY(-8px);
    opacity:0; visibility:hidden;
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
    overflow-y:auto;
  }
  .main-nav.open{ opacity:1; visibility:visible; transform:translateY(0); }
  .main-nav a{ width:100%; padding:16px 0; border-bottom:1px solid var(--border); }
  .nav-cta{ display:none; }
  .nav-toggle{ display:flex; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:
    radial-gradient(1000px 520px at 88% -8%, rgba(232,200,118,.16), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, rgba(43,70,173,.28), transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg-1) 90%);
  color:var(--white);
  padding:130px 0 90px;
  overflow:hidden;
}
.hero-inner{ position:relative; z-index:1; max-width:840px; }
.hero h1{
  color:var(--white);
  font-size:clamp(2.6rem, 5.6vw, 4.6rem);
  font-weight:800;
  margin-bottom:26px;
}
.hero p.lead{
  color:var(--ink-dim);
  font-size:1.2rem;
  max-width:640px;
  margin-bottom:38px;
}
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:60px; }

.hero-stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  border-top:1px solid var(--border);
  padding-top:34px;
}
.hero-stats div strong{
  display:block; font-family:'Poppins',sans-serif; font-weight:700;
  font-size:1.2rem; margin-bottom:6px;
  background:linear-gradient(90deg, var(--gold-light), var(--gold-soft));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-stats div span{ color:var(--ink-faint); font-size:.9rem; }
@media (max-width:700px){ .hero-stats{ grid-template-columns:1fr; gap:18px; } }

/* ---------- Section headers ---------- */
.section-head{ max-width:680px; margin:0 auto 56px; text-align:center; position:relative; z-index:1; }
.section-head.left{ margin:0 0 56px; text-align:left; }
.section-head h2{ font-size:clamp(1.9rem,3.6vw,2.7rem); }
.section-head p{ font-size:1.06rem; }

/* ---------- Cards: cosa facciamo ---------- */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; position:relative; z-index:1; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; position:relative; z-index:1; }
@media (max-width:920px){ .grid-3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .grid-3, .grid-2{ grid-template-columns:1fr; } }

.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:36px 30px;
  backdrop-filter:blur(8px);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease, background .3s ease;
}
.card:hover{
  transform:translateY(-7px);
  border-color:var(--gold-border);
  background:var(--surface-2);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.6), 0 0 40px -18px rgba(216,188,125,.35);
}
.card-icon{
  width:54px; height:54px;
  border-radius:14px;
  background:linear-gradient(135deg, var(--navy-light), var(--navy));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:22px;
  flex-shrink:0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.card-icon svg{ width:26px; height:26px; stroke:var(--gold-light); }
.card h3{ font-size:1.15rem; margin-bottom:10px; }
.card p{ font-size:.95rem; margin-bottom:16px; }
.card-link{ font-family:'Poppins',sans-serif; font-weight:600; font-size:.88rem; color:var(--gold-light); display:inline-flex; align-items:center; gap:6px; }
.card-link::after{ content:"→"; transition:transform .2s ease; }
.card-link:hover::after{ transform:translateX(4px); }

/* ---------- Feature split (Lead Gen / Call Center spotlight) ---------- */
.feature{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  position:relative; z-index:1;
}
.feature.reverse .feature-visual{ order:2; }
@media (max-width:900px){
  .feature{ grid-template-columns:1fr; gap:36px; }
  .feature.reverse .feature-visual{ order:0; }
}
.feature-visual{
  border-radius:22px;
  background:linear-gradient(160deg, var(--bg-2), var(--navy-soft));
  border:1px solid var(--border);
  padding:40px;
  position:relative;
  overflow:hidden;
  min-height:340px;
  display:flex; align-items:center; justify-content:center;
}
.feature-visual::before{
  content:""; position:absolute; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(232,200,118,.28), transparent 70%);
  top:-70px; right:-70px;
}
.feature-list{ margin:24px 0 28px; }
.feature-list li{
  display:flex; gap:12px; align-items:flex-start;
  padding:12px 0; color:var(--ink); font-weight:500; font-size:.98rem;
  border-bottom:1px solid var(--border);
}
.feature-list li:last-child{ border-bottom:none; }
.feature-list li .num{
  flex-shrink:0; width:26px; height:26px; border-radius:50%;
  background:var(--surface-2); color:var(--gold-light);
  border:1px solid var(--gold-border);
  font-family:'Poppins',sans-serif; font-weight:700; font-size:.78rem;
  display:flex; align-items:center; justify-content:center;
}

/* network graphic (lead generation visual) */
.network-graphic{ position:relative; z-index:1; width:100%; max-width:300px; }
.network-graphic .node{ fill:var(--bg-2); stroke:var(--gold-light); stroke-width:1.5; }
.network-graphic .node-core{ fill:var(--gold-light); }
.network-graphic .link{ stroke:rgba(232,200,118,.45); stroke-width:1.4; stroke-dasharray:5 5; animation:dash 6s linear infinite; }
.network-graphic .pulse{ animation:pulse 2.4s ease-in-out infinite; transform-origin:center; }
.network-graphic .pulse:nth-child(2){ animation-delay:.4s; }
.network-graphic .pulse:nth-child(3){ animation-delay:.8s; }
@keyframes dash{ to{ stroke-dashoffset:-40; } }
@keyframes pulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.35); opacity:.6; } }

/* headset graphic wrap */
.icon-hero{ width:120px; height:120px; color:var(--gold-light); stroke:var(--gold-light); position:relative; z-index:1; }

/* ---------- Process steps ---------- */
.process{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; position:relative; z-index:1; }
@media (max-width:820px){ .process{ grid-template-columns:1fr; } }
.process-step{ position:relative; padding-left:8px; }
.process-step .step-num{
  font-family:'Poppins',sans-serif; font-weight:800; font-size:2.8rem;
  color:transparent; -webkit-text-stroke:1.5px var(--gold-light);
  display:block; margin-bottom:14px;
}
.process-step h3{ font-size:1.2rem; margin-bottom:10px; }
.process-step p{ font-size:.95rem; }

/* ---------- CTA banner ---------- */
.cta-banner{
  background:linear-gradient(135deg, var(--gold-light), var(--gold) 80%);
  border-radius:26px;
  padding:68px 48px;
  text-align:center;
  color:#1c1305;
  position:relative; z-index:1;
  box-shadow:var(--glow-gold);
}
.cta-banner h2{ color:#1c1305; }
.cta-banner p{ color:rgba(28,19,5,.75); max-width:560px; margin:0 auto 28px; }
.cta-banner.cta-dark{
  background:linear-gradient(160deg, var(--bg-2), var(--navy-soft));
  color:var(--ink);
  border:1px solid var(--gold-border);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.6);
}
.cta-banner.cta-dark h2{ color:var(--ink); }
.cta-banner.cta-dark p{ color:var(--ink-dim); }

/* ---------- Articoli ---------- */
.article-card{
  display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.article-card:hover{ transform:translateY(-7px); border-color:var(--gold-border); box-shadow:0 30px 60px -30px rgba(0,0,0,.6), 0 0 40px -18px rgba(216,188,125,.3); }
.article-cover{
  height:150px;
  background:linear-gradient(135deg, var(--bg-2), var(--navy-soft));
  display:flex; align-items:center; justify-content:center;
  position:relative;
  border-bottom:1px solid var(--border);
}
.article-cover svg{ width:44px; height:44px; stroke:var(--gold-light); }
.article-card-body{ padding:26px; display:flex; flex-direction:column; flex:1; }
.article-tag{ font-family:'Poppins',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); margin-bottom:10px; }
.article-card h3{ font-size:1.1rem; margin-bottom:10px; }
.article-card p{ font-size:.92rem; flex:1; }

/* ---------- Article page (prose) ---------- */
.article-hero{
  position:relative;
  background:
    radial-gradient(800px 420px at 90% -10%, rgba(232,200,118,.14), transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg-1));
  padding:90px 0 64px;
  overflow:hidden;
}
.article-hero .container{ max-width:760px; }
.article-hero h1{ font-size:clamp(2rem,4vw,2.8rem); }
.article-hero p{ font-size:1.1rem; }
.breadcrumb{ font-size:.85rem; color:var(--ink-faint); margin-bottom:20px; }
.breadcrumb a{ color:var(--gold-light); }

.prose{ max-width:760px; margin:0 auto; padding:80px 24px; position:relative; z-index:1; }
.prose h2{ font-size:1.5rem; margin-top:1.8em; }
.prose h3{ font-size:1.15rem; margin-top:1.6em; }
.prose p{ color:var(--ink-dim); font-size:1.05rem; }
.prose strong{ color:var(--ink); }
.prose a{ color:var(--gold-light); text-decoration:underline; text-underline-offset:3px; }
.prose ul{ margin:0 0 1.4em; padding-left:0; }
.prose ul li{
  position:relative; padding-left:30px; margin-bottom:12px; color:var(--ink-dim); font-size:1.02rem;
}
.prose ul li::before{
  content:"✓"; position:absolute; left:0; top:1px; color:var(--gold-light); font-weight:700;
}
.callout{
  background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--gold);
  border-radius:12px; padding:26px 28px; margin:2.2em 0; font-size:1.02rem; color:var(--ink-dim);
}
.callout strong{ color:var(--ink); }
.article-cta{
  background:linear-gradient(160deg, var(--bg-2), var(--navy-soft));
  border:1px solid var(--gold-border);
  color:var(--ink); border-radius:22px;
  padding:44px; text-align:center; margin-top:3em;
}
.article-cta h3{ color:var(--ink); }
.article-cta p{ color:var(--ink-dim); }

/* ---------- Lavori ---------- */
.work-card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.work-card:hover{ transform:translateY(-7px); border-color:var(--gold-border); box-shadow:0 30px 60px -30px rgba(0,0,0,.6), 0 0 40px -18px rgba(216,188,125,.3); }
.work-cover{
  height:200px;
  background:linear-gradient(135deg,#050505,#161616);
  display:flex; align-items:center; justify-content:center;
  position:relative;
  border-bottom:1px solid var(--border);
}
.work-cover .work-brand{
  font-family:'Poppins',sans-serif; font-weight:800; font-size:1.4rem; color:var(--gold-light);
  letter-spacing:.02em;
}
.work-card-body{ padding:26px; }
.work-sector{ font-family:'Poppins',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); margin-bottom:8px; }
.work-card h3{ font-size:1.2rem; margin-bottom:8px; }
.work-card p{ font-size:.95rem; }
.work-tags{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 20px; }
.work-tags span{
  font-size:.78rem; font-weight:600; color:var(--gold-light); background:var(--surface-2);
  border:1px solid var(--border);
  padding:5px 12px; border-radius:999px;
}
.work-card-slot{
  border:2px dashed var(--border); border-radius:var(--radius);
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:340px; padding:32px; color:var(--ink-faint);
}
.work-card-slot p{ color:var(--ink-faint); font-size:.95rem; margin:0; }

/* ---------- Contatti ---------- */
.contact-wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; position:relative; z-index:1; }
@media (max-width:900px){ .contact-wrap{ grid-template-columns:1fr; } }
.contact-info-card{
  background:linear-gradient(160deg, var(--bg-2), var(--navy-soft));
  border:1px solid var(--border);
  border-radius:22px; padding:42px; position:sticky; top:110px;
}
.contact-line{ display:flex; gap:14px; align-items:flex-start; margin-bottom:22px; }
.contact-line .ic{
  width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-line .ic svg{ width:18px; height:18px; stroke:var(--gold-light); }
.contact-line strong{ display:block; color:var(--ink); font-size:.95rem; }
.contact-line span, .contact-line a{ color:var(--ink-dim); font-size:.92rem; }

.form-card{
  background:var(--surface); border:1px solid var(--border); border-radius:22px; padding:42px;
  backdrop-filter:blur(8px);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.field{ margin-bottom:20px; }
.field label{ display:block; font-family:'Poppins',sans-serif; font-weight:600; font-size:.88rem; color:var(--ink); margin-bottom:8px; }
.field input, .field select, .field textarea{
  width:100%; padding:13px 16px; border-radius:10px; border:1px solid var(--border);
  font-family:'Inter',sans-serif; font-size:.95rem; color:var(--ink); background:rgba(255,255,255,.03);
  transition:border-color .2s ease, background .2s ease;
}
.field input::placeholder, .field textarea::placeholder{ color:var(--ink-faint); }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold); background:rgba(255,255,255,.05);
}
.field select option{ background:var(--bg-1); color:var(--ink); }
.field textarea{ resize:vertical; min-height:130px; }
.field-check{ display:flex; align-items:flex-start; gap:10px; font-size:.85rem; color:var(--ink-faint); }
.field-check input{ width:auto; margin-top:3px; }

.alert{ border-radius:12px; padding:18px 22px; margin-bottom:24px; font-size:.95rem; font-weight:500; }
.alert-success{ background:rgba(60,180,110,.12); color:#7fe0ac; border:1px solid rgba(60,180,110,.35); }
.alert-error{ background:rgba(220,90,70,.12); color:#f0a898; border:1px solid rgba(220,90,70,.35); }

/* ---------- Footer ---------- */
.site-footer{ background:var(--bg); border-top:1px solid var(--border); color:var(--ink-faint); padding-top:72px; }
.footer-inner{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;
  padding-bottom:48px; border-bottom:1px solid var(--border);
}
@media (max-width:820px){ .footer-inner{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-inner{ grid-template-columns:1fr; } }
.footer-logo-chip{ display:inline-flex; align-items:center; margin-bottom:18px; }
.footer-logo-chip img{ height:24px; display:block; }
.footer-brand p{ color:var(--ink-faint); font-size:.92rem; max-width:280px; }
.footer-col h4{ color:var(--ink); font-size:.88rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:18px; }
.footer-col a, .footer-col p{ display:block; color:var(--ink-faint); font-size:.92rem; margin-bottom:12px; }
.footer-col a:hover{ color:var(--gold-light); }
.footer-bottom{ padding:24px 0; }
.footer-bottom p{ color:var(--ink-faint); opacity:.7; font-size:.82rem; text-align:center; margin:0; }

/* ---------- Reveal (animato via GSAP in main.js) ----------
   Il contenuto è visibile di default: viene nascosto SOLO se main.js
   conferma che GSAP è caricato e pronto ad animarlo (classe .js-anim
   su <html>). Così, se lo script non parte per qualsiasi motivo,
   niente resta invisibile. */
.js-anim .reveal{ opacity:0; transform:translateY(24px); }
.js-anim .hero h1, .js-anim .article-hero h1, .js-anim .section-head h2{ clip-path:inset(0 0 100% 0); }

/* ---------- Scroll progress ---------- */
#progress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:300;
  background:linear-gradient(90deg, var(--gold-light), var(--gold));
  box-shadow:0 0 12px rgba(216,188,125,.7);
  pointer-events:none;
}

/* ---------- Custom cursor: segnale digitale ---------- */
#cursor-fx{ position:fixed; inset:0; pointer-events:none; z-index:9999; }
.cx-ring{
  position:absolute; width:34px; height:34px; margin:-17px 0 0 -17px;
  border:1.5px solid var(--gold-light); border-radius:50%;
  box-shadow:0 0 18px -2px rgba(232,200,118,.7);
}
.cx-dot{
  position:absolute; width:6px; height:6px; margin:-3px 0 0 -3px;
  background:var(--gold-light); border-radius:50%;
  box-shadow:0 0 10px 2px rgba(232,200,118,.8);
}
.cx-node{
  position:absolute; width:4px; height:4px; margin:-2px 0 0 -2px;
  background:var(--ink); border-radius:50%; opacity:.85;
}
#cursor-svg{ position:fixed; inset:0; width:100%; height:100%; }
#cursor-svg line{ stroke:var(--gold-light); stroke-width:1; opacity:.5; }

/* ---------- Hero: foto reale ---------- */
.hero-columns{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
@media (max-width:960px){ .hero-columns{ grid-template-columns:1fr; } }
.hero-photo{
  position:relative; border-radius:20px; overflow:hidden;
  border:1px solid var(--border-strong);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.6);
  transform:rotate(1.2deg);
}
.hero-photo img{ width:100%; height:400px; object-fit:cover; }
.hero-photo-tag{
  position:absolute; bottom:16px; left:16px; background:rgba(5,7,15,.75);
  backdrop-filter:blur(6px); border:1px solid var(--border-strong);
  padding:9px 16px; border-radius:999px; font-size:.8rem; font-weight:600; color:var(--ink);
}
@media (max-width:960px){ .hero-photo{ transform:none; } }

/* ---------- Banda fotografica con parallax ---------- */
.photo-band{
  position:relative; padding:0; min-height:60vh; display:flex; align-items:flex-end;
  overflow:hidden;
}
.photo-band img{ position:absolute; inset:-16% 0; width:100%; height:132%; object-fit:cover; will-change:transform; }
.photo-band::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(5,7,15,.92) 12%, rgba(5,7,15,.3) 60%, rgba(5,7,15,.5));
}
.photo-band-text{ position:relative; z-index:1; padding:0 24px 56px; max-width:640px; margin:0 auto; width:100%; }
.photo-band-text p{ font-size:1.3rem; font-family:'Poppins',sans-serif; font-weight:700; color:var(--ink); margin:0; }

/* ---------- Clienti ---------- */
.clients-row{ display:flex; flex-wrap:wrap; gap:22px; justify-content:center; max-width:900px; margin:0 auto; position:relative; z-index:1; }
.client-chip{
  background:var(--cream); border-radius:14px; padding:20px 34px;
  display:flex; align-items:center; justify-content:center; min-height:74px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.client-chip:hover{ transform:translateY(-4px); box-shadow:0 16px 32px -10px rgba(0,0,0,.4); }
.client-chip img{ height:30px; }
.client-chip.text-chip{ font-family:'Poppins',sans-serif; font-weight:800; font-size:1.05rem; color:var(--navy); letter-spacing:-0.01em; }
.client-chip.text-chip span{ color:var(--gold); }

/* ---------- Misc ---------- */
.text-center{ text-align:center; }
.mt-lg{ margin-top:56px; }
