/* ═══════════════════════════════════════════════════════════════════
   MARCO GIORDAN · SHARED STYLES
   Tutte le pagine importano questo unico foglio.
   ═══════════════════════════════════════════════════════════════════ */

/* ───────── DESIGN TOKENS ───────── */
:root{
  --bg: #fbfbfd;
  --bg-soft: #f5f5f7;
  --bg-warm: #faf7f2;
  --bg-dark: #000000;
  --bg-deep: #1d1d1f;
  --ink: #1d1d1f;
  --ink-soft: #424245;
  --ink-muted: #6e6e73;
  --ink-faint: #86868b;
  --line: rgba(0,0,0,0.08);
  --line-strong: rgba(0,0,0,0.14);
  --line-dark: rgba(255,255,255,0.12);
  --accent: #3c605d;
  --link: #0071e3;
  --gold: #65a09b;

  --font-display: 'Fraunces', Georgia, serif;
  --font-sans: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'Geist Mono', ui-monospace, monospace;

  --container: 1280px;
  --container-narrow: 1040px;
  --container-tight: 880px;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ───────── RESET ───────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  font-family:var(--font-sans);
  font-weight:400;
  font-size:17px;
  line-height:1.47;
  color:var(--ink);
  background:var(--bg);
  overflow-x:hidden;
  letter-spacing:-0.011em;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}
input,textarea{font:inherit;color:inherit}

/* ───────── PAGE TRANSITIONS (View Transitions API) ───────── */
@view-transition{ navigation: auto; }
::view-transition-old(root),
::view-transition-new(root){
  animation-duration:.45s;
  animation-timing-function:var(--ease-out);
}
::view-transition-old(root){animation-name:vt-fade-out}
::view-transition-new(root){animation-name:vt-fade-in}
@keyframes vt-fade-out{to{opacity:0;transform:translateY(-12px)}}
@keyframes vt-fade-in{from{opacity:0;transform:translateY(12px)}}
/* Brand persists across navigations to remove the "flash" */
.nav-brand{view-transition-name:brand}

/* ───────── NAV ───────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(251,251,253,0.72);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line);
  transition:background .5s var(--ease);
}
.nav-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:14px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.nav-brand{
  font-family:var(--font-display);
  font-weight:400;
  font-size:18px;
  letter-spacing:-0.02em;
  font-variation-settings:"opsz" 14, "SOFT" 30;
}
.nav-brand i{font-style:italic;font-weight:300}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{
  font-size:13px;
  font-weight:400;
  color:var(--ink-soft);
  transition:color .25s var(--ease);
  letter-spacing:-0.005em;
  position:relative;
}
.nav-links a:hover{color:var(--ink)}
.nav-links a.active{color:var(--ink)}
.nav-links a.active::after{
  content:"";
  position:absolute;
  bottom:-19px;
  left:50%;
  transform:translateX(-50%);
  width:4px;height:4px;
  background:var(--ink);
  border-radius:50%;
}
.nav-cta{
  padding:7px 16px;
  background:var(--ink);
  color:var(--bg);
  border-radius:999px;
  font-size:12px;
  font-weight:500;
  transition:transform .25s var(--ease), background .25s var(--ease);
}
.nav-cta:hover{background:#3a3a3c;transform:translateY(-1px)}

/* ───────── CONTAINERS ───────── */
.container{max-width:var(--container);margin:0 auto;padding:0 32px}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 32px}
.container-tight{max-width:var(--container-tight);margin:0 auto;padding:0 32px}

/* ───────── UI PRIMITIVES ───────── */
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.16em;
  color:var(--ink-muted);
}
.eyebrow.on-dark{color:rgba(255,255,255,0.55)}
.eyebrow.on-warm{color:#8a7456}

.link-arrow{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:17px;
  color:var(--link);
  transition:gap .3s var(--ease);
}
.link-arrow::after{content:"›";font-size:21px;line-height:1;transition:transform .3s var(--ease)}
.link-arrow:hover{gap:10px}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;
  border-radius:999px;
  font-size:15px;
  font-weight:500;
  letter-spacing:-0.005em;
  transition:all .3s var(--ease);
}
.btn-primary{background:var(--ink);color:var(--bg)}
.btn-primary:hover{background:#3a3a3c;transform:translateY(-1px)}
.btn-primary.on-dark{background:var(--bg);color:var(--ink)}
.btn-primary.on-dark:hover{background:#e8e8ed}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn-ghost:hover{background:rgba(0,0,0,0.04);border-color:var(--ink)}

/* ───────── REVEAL (progressive enhancement) ───────── */
.js .reveal{
  opacity:0;
  transform:translateY(36px);
  transition:opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.js .reveal.in{opacity:1;transform:translateY(0)}
.js .reveal-2{transition-delay:.08s}
.js .reveal-3{transition-delay:.16s}
.js .reveal-4{transition-delay:.24s}

/* ───────── HERO (generic) ───────── */
.hero{
  min-height:calc(100vh - 60px);
  min-height:calc(100dvh - 60px);
  padding:160px 0 100px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  top:-20%;right:-10%;
  width:60vw;height:80vh;
  background:radial-gradient(circle, rgba(101,160,155,0.06) 0%, transparent 60%);
  filter:blur(60px);
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;
  bottom:-30%;left:-15%;
  width:50vw;height:60vh;
  background:radial-gradient(circle, rgba(101,160,155,0.07) 0%, transparent 60%);
  filter:blur(80px);
  pointer-events:none;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(220px, 320px) 1fr;
  gap:80px;
  align-items:center;
  position:relative;
  z-index:1;
}
.hero-identita{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:36px;
}
.hero-tondo{
  width:180px;
  height:180px;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 10px 32px rgba(60,96,93,0.22);
}
.hero-logo-firma{
  display:block;
  width:auto;
  max-width:280px;
  height:auto;
}
.hero-content{position:relative;z-index:1}
.hero-pre{margin-bottom:32px}
@media (max-width:980px){
  .hero-grid{
    grid-template-columns:1fr;
    gap:40px;
  }
  .hero-identita{
    flex-direction:row;
    align-items:center;
    gap:20px;
  }
  .hero-tondo{width:90px;height:90px}
  .hero-logo-firma{max-width:200px}
}
.hero h1{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(44px, 6.4vw, 96px);
  line-height:0.96;
  letter-spacing:-0.045em;
  color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 30;
  margin-bottom:44px;
}
.hero h1 em{font-style:italic;font-weight:300;color:var(--accent)}
.hero-sub{
  max-width:680px;
  font-size:clamp(19px, 1.6vw, 24px);
  line-height:1.45;
  color:var(--ink-soft);
  margin-bottom:56px;
  letter-spacing:-0.015em;
}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap}

/* Smaller hero for inner pages */
.page-hero{
  padding:180px 0 100px;
  position:relative;
  border-bottom:1px solid var(--line);
}
.page-hero h1{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(52px, 8vw, 120px);
  line-height:0.96;
  letter-spacing:-0.045em;
  margin-bottom:32px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
  max-width:1100px;
}
.page-hero h1 em{font-style:italic;font-weight:300;color:var(--accent)}
.page-hero .hero-sub{margin-bottom:0}
.page-hero .eyebrow{margin-bottom:28px}
.page-hero .hero-disclaimer{
  margin-top:28px;
  padding-top:20px;
  border-top:1px solid var(--line);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-muted);
  max-width:640px;
  line-height:1.6;
}

/* ───────── SECTION BASE ───────── */
.section{padding:140px 0;position:relative}
.section-head{margin-bottom:96px;max-width:920px}
.section-title{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(44px, 6.4vw, 100px);
  line-height:0.98;
  letter-spacing:-0.04em;
  margin-bottom:36px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.section-title em{font-style:italic;color:var(--accent)}
.section-intro{
  font-size:clamp(19px, 1.5vw, 24px);
  line-height:1.5;
  color:var(--ink-soft);
  max-width:720px;
  letter-spacing:-0.015em;
}

/* ───────── HOMEPAGE: SERVIZI BOXES ───────── */
.home-servizi{
  padding:140px 0;
  background:var(--bg);
  border-top:1px solid var(--line);
}
.home-servizi-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:24px;
  margin-top:80px;
}
.servizio-card{
  position:relative;
  display:block;
  border-radius:28px;
  overflow:hidden;
  aspect-ratio:5/4;
  cursor:pointer;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
  border:1px solid var(--line);
}
.servizio-card:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(0,0,0,0.10)}
/* Monochrome backgrounds, alternated like the servizi page */
.servizio-card.c-light{background:var(--bg)}
.servizio-card.c-soft{background:#ebebef;border-color:transparent}
.servizio-card.c-warm{background:#f1ebe0;border-color:transparent}
.servizio-card.c-dark{background:var(--bg-deep);border-color:var(--line-dark)}
/* Giant filigree letter */
.servizio-card-letter{
  position:absolute;
  top:24px;
  right:32px;
  font-family:var(--font-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(110px, 15vw, 160px);
  line-height:1;
  color:var(--accent);
  opacity:0.16;
  font-variation-settings:"opsz" 144, "SOFT" 40;
  pointer-events:none;
  transition:transform 1.2s var(--ease-out), opacity 1s var(--ease);
  z-index:0;
}
.servizio-card.c-dark .servizio-card-letter{color:var(--gold);opacity:0.26}
.servizio-card:hover .servizio-card-letter{transform:scale(1.08) rotate(-3deg);opacity:0.24}
.servizio-card.c-dark:hover .servizio-card-letter{opacity:0.36}
.servizio-card-content{
  position:absolute;
  left:40px;right:40px;bottom:36px;
  z-index:1;
}
.servizio-card.c-dark .servizio-card-content{color:#f5f5f7}
.servizio-card-num{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-bottom:14px;
}
.servizio-card.c-dark .servizio-card-num{color:rgba(255,255,255,0.6)}
.servizio-card h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(28px, 3vw, 40px);
  line-height:1.05;
  letter-spacing:-0.025em;
  margin-bottom:12px;
  color:var(--ink);
  font-variation-settings:"opsz" 60, "SOFT" 30;
}
.servizio-card.c-dark h3{color:#fbfbfd}
.servizio-card h3 em{font-style:italic;color:var(--accent)}
.servizio-card.c-dark h3 em{color:var(--gold)}
.servizio-card p{
  font-size:15px;
  line-height:1.5;
  color:var(--ink-soft);
  margin-bottom:16px;
  max-width:420px;
}
.servizio-card.c-dark p{color:rgba(255,255,255,0.78)}
.servizio-card-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:14px;
  color:var(--accent);
  transition:gap .3s var(--ease);
}
.servizio-card.c-dark .servizio-card-link{color:var(--gold)}
.servizio-card-link::after{content:"›";font-size:19px;line-height:1}
.servizio-card:hover .servizio-card-link{gap:10px}

/* ───────── HOMEPAGE: CHI SONO PREVIEW ───────── */
.home-chi-sono{
  padding:140px 0;
  background:var(--bg-soft);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.home-chi-sono-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:96px;
  align-items:center;
}
.home-chi-sono-grid h2{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(44px, 5.6vw, 84px);
  line-height:0.98;
  letter-spacing:-0.035em;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.home-chi-sono-intro{display:flex;flex-direction:column;gap:40px;align-items:flex-start}
.chi-sono-tondo{
  width:200px;
  height:200px;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 12px 40px rgba(60,96,93,0.20);
}
.home-chi-sono-grid h2 em{font-style:italic;color:var(--accent)}
.home-chi-sono-body p{
  font-size:19px;
  line-height:1.55;
  color:var(--ink-soft);
  margin-bottom:24px;
}
.home-chi-sono-body p:first-child{
  font-size:22px;
  color:var(--ink);
  letter-spacing:-0.015em;
}

/* ───────── HOMEPAGE: CTA FINAL ───────── */
.home-cta{
  padding:160px 0;
  background:var(--bg-dark);
  color:#fff;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.home-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 70% 50% at 50% 50%, rgba(101,160,155,0.09), transparent 60%);
  pointer-events:none;
}
.home-cta .container{position:relative;z-index:1}
.home-cta h2{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(48px, 7vw, 108px);
  line-height:1;
  letter-spacing:-0.04em;
  margin-bottom:32px;
  color:#fff;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.home-cta h2 em{font-style:italic;color:var(--gold)}
.home-cta p{
  font-size:20px;
  line-height:1.5;
  color:rgba(255,255,255,0.78);
  margin:0 auto 48px;
  max-width:540px;
}

/* ───────── SERVIZI PAGE: DETAILED MODULES ───────── */
.servizio{padding:140px 0;position:relative;overflow:hidden}
.servizio.s-light{background:var(--bg)}
.servizio.s-soft{background:var(--bg-soft)}
.servizio.s-warm{background:var(--bg-warm)}
.servizio.s-dark{background:var(--bg-deep);color:#f5f5f7}
.servizio-grid{
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:120px;
  align-items:center;
}
.servizio.reverse .servizio-grid{direction:rtl}
.servizio.reverse .servizio-grid > *{direction:ltr}
.servizio-content .eyebrow{margin-bottom:28px}
.servizio h2{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(38px, 4.8vw, 76px);
  line-height:1;
  letter-spacing:-0.035em;
  margin-bottom:32px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.servizio h2 em{font-style:italic;color:var(--accent)}
.servizio.s-dark h2 em{color:var(--gold)}
.servizio-sub{
  font-size:19px;
  line-height:1.55;
  color:var(--ink-soft);
  margin-bottom:32px;
  max-width:540px;
}
.servizio.s-dark .servizio-sub{color:rgba(255,255,255,0.78)}
.servizio-list{list-style:none;margin-bottom:40px}
.servizio-list li{
  padding:14px 0;
  border-top:1px solid var(--line);
  font-size:16px;
  color:var(--ink);
  display:flex;
  align-items:start;
  gap:12px;
}
.servizio-list li:last-child{border-bottom:1px solid var(--line)}
.servizio-list li::before{
  content:"";
  width:4px;height:4px;
  background:var(--accent);
  border-radius:50%;
  margin-top:9px;
  flex-shrink:0;
}
.servizio.s-dark .servizio-list li{
  color:rgba(255,255,255,0.85);
  border-color:var(--line-dark);
}
.servizio.s-dark .servizio-list li::before{background:var(--gold)}
.servizio-visual{
  aspect-ratio:1/1;
  border-radius:32px;
  background:var(--bg-soft);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  border:1px solid var(--line);
}
.servizio.s-soft .servizio-visual{background:#ebebef;border-color:transparent}
.servizio.s-warm .servizio-visual{background:#f1ebe0;border-color:transparent}
.servizio.s-dark .servizio-visual{background:#0a0a0c;border-color:var(--line-dark)}
.servizio-letter{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(160px, 22vw, 260px);
  line-height:1;
  color:var(--accent);
  opacity:0.16;
  font-variation-settings:"opsz" 144, "SOFT" 40;
  pointer-events:none;
  transition:transform 1.2s var(--ease-out), opacity 1s var(--ease);
}
.servizio.s-dark .servizio-letter{color:var(--gold);opacity:0.26}
.servizio-visual:hover .servizio-letter{transform:scale(1.06) rotate(-3deg);opacity:0.24}
.servizio.s-dark .servizio-visual:hover .servizio-letter{opacity:0.36}
.servizio-modules{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:32px;
  margin-bottom:32px;
}
.module{
  padding:20px;
  background:rgba(0,0,0,0.03);
  border-radius:14px;
  border:1px solid var(--line);
}
.servizio.s-warm .module{background:rgba(101,160,155,0.07);border-color:rgba(101,160,155,0.16)}
.module-num{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.16em;
  color:var(--ink-muted);
  margin-bottom:8px;
}
.module-text{font-size:14px;line-height:1.4;color:var(--ink)}
.servizio-quote{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:300;
  font-size:22px;
  line-height:1.4;
  color:var(--ink);
  padding-left:20px;
  border-left:1px solid var(--line-strong);
  margin-bottom:32px;
  max-width:460px;
  font-variation-settings:"opsz" 60, "SOFT" 60;
}
.servizio.s-dark .servizio-quote{color:#fff;border-left-color:var(--gold)}

/* ───────── CHI SONO PAGE ───────── */
.chi-sono-grid{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:120px;
  align-items:start;
}
.chi-sono-portrait-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:80px;
  align-items:start;
}
.chi-sono-portrait{
  position:sticky;
  top:120px;
}
.chi-sono-portrait img{
  width:100%;
  height:auto;
  border-radius:24px;
  display:block;
  box-shadow:0 20px 60px rgba(60,96,93,0.18);
}
.chi-sono-portrait-title{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(36px, 4vw, 56px);
  line-height:1;
  letter-spacing:-0.03em;
  margin-bottom:36px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.chi-sono-portrait-title em{font-style:italic;color:var(--accent)}
.chi-sono-title{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(44px, 5.6vw, 84px);
  line-height:0.98;
  letter-spacing:-0.035em;
  font-variation-settings:"opsz" 144, "SOFT" 30;
  position:sticky;
  top:140px;
}
.chi-sono-title em{font-style:italic;color:var(--accent)}
.chi-sono-body p{
  font-size:19px;
  line-height:1.65;
  color:var(--ink-soft);
  margin-bottom:26px;
}
.chi-sono-body p:first-child{
  font-size:23px;
  color:var(--ink);
  line-height:1.5;
  margin-bottom:32px;
  letter-spacing:-0.015em;
}
.chi-sono-body p em{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:400;
  color:var(--ink);
  font-variation-settings:"opsz" 60, "SOFT" 30;
}
.credentials{
  margin-top:56px;
  padding-top:40px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px 48px;
}
.cred-item .cred-label{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-bottom:8px;
}
.cred-item .cred-value{
  font-size:15px;
  color:var(--ink);
  font-weight:500;
  line-height:1.4;
}

/* ───────── APPROCCIO ───────── */
.approccio{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pillars{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:28px;
  overflow:hidden;
}
.pillar{background:var(--bg);padding:64px 56px;transition:background .35s var(--ease)}
.pillar:hover{background:#fff}
.pillar-num{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:200;
  font-size:72px;
  color:var(--accent);
  opacity:0.30;
  line-height:1;
  margin-bottom:32px;
  font-variation-settings:"opsz" 144, "SOFT" 60;
}
.pillar h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:36px;
  line-height:1.05;
  letter-spacing:-0.022em;
  margin-bottom:18px;
  font-variation-settings:"opsz" 60, "SOFT" 30;
}
.pillar p{font-size:16px;line-height:1.6;color:var(--ink-soft)}

/* ───────── AI SECTION ───────── */
.ai{background:var(--bg-dark);color:var(--bg);position:relative;overflow:hidden}
.ai::before{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(ellipse 90% 70% at 50% 0%, rgba(101,160,155,0.11), transparent 65%);
  pointer-events:none;
}
.ai .container{position:relative;z-index:1}
.ai-title{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(44px, 6.4vw, 104px);
  line-height:0.98;
  letter-spacing:-0.04em;
  color:var(--bg);
  margin-bottom:40px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.ai-title em{font-style:italic;color:var(--gold)}
.ai-intro{
  font-size:clamp(19px, 1.5vw, 23px);
  line-height:1.55;
  color:rgba(255,255,255,0.78);
  max-width:720px;
  margin-bottom:36px;
  letter-spacing:-0.015em;
}
.ai-stmt{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(22px, 2.1vw, 32px);
  line-height:1.35;
  color:var(--bg);
  max-width:820px;
  margin-bottom:120px;
  padding-left:28px;
  border-left:1px solid var(--gold);
  font-variation-settings:"opsz" 60, "SOFT" 60;
}
.ai-uses{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:80px;
  padding-top:80px;
  border-top:1px solid var(--line-dark);
}
.ai-use-num{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.2em;
  color:var(--gold);
  margin-bottom:28px;
}
.ai-use h4{
  font-family:var(--font-display);
  font-weight:400;
  font-size:26px;
  line-height:1.1;
  letter-spacing:-0.018em;
  margin-bottom:16px;
  color:var(--bg);
  font-variation-settings:"opsz" 60, "SOFT" 30;
}
.ai-use p{font-size:15px;line-height:1.6;color:rgba(255,255,255,0.7)}

/* ───────── INSIGHT ───────── */
.note{background:var(--bg)}
.note-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  flex-wrap:wrap;
  gap:32px;
  margin-bottom:96px;
}
.note-head > div{max-width:740px}
.note-head .section-title{margin-bottom:0}
/* ───────── NOTE: collezione di saggi in scorrimento ───────── */
.note-list{
  max-width:760px;
  margin:0 auto;
}
.nota{
  padding:72px 0;
  border-bottom:1px solid var(--line);
}
.nota:first-child{padding-top:0}
.nota:last-child{border-bottom:none}
.nota-meta{margin-bottom:28px}
.article-tag{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--accent);
  padding:5px 11px;
  border:1px solid var(--line-strong);
  border-radius:999px;
}
.nota h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(30px, 3.4vw, 44px);
  line-height:1.12;
  letter-spacing:-0.025em;
  margin-bottom:22px;
  color:var(--ink);
  font-variation-settings:"opsz" 60, "SOFT" 30;
}
.nota-lead{
  font-size:20px;
  line-height:1.55;
  color:var(--ink-soft);
  font-style:italic;
  margin-bottom:36px;
  padding-bottom:28px;
  border-bottom:1px solid var(--line);
}
.nota-body p{
  font-size:17px;
  line-height:1.75;
  color:var(--ink-soft);
  margin-bottom:22px;
}
.nota-body p:last-child{margin-bottom:0}
@media (max-width:980px){
  .nota{padding:48px 0}
  .nota h2{font-size:clamp(26px, 7vw, 34px)}
  .nota-lead{font-size:17px;margin-bottom:24px;padding-bottom:20px}
  .nota-body p{font-size:16px;line-height:1.7}
}

/* ───────── CONTATTI ───────── */
.contatti{background:var(--bg-soft)}
.contatti-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:120px;
  align-items:start;
}
.contatti-left .section-title{margin-bottom:36px}
.contatti-left p{
  font-size:19px;
  line-height:1.6;
  color:var(--ink-soft);
  margin-bottom:24px;
  max-width:500px;
}
.contatti-details{
  margin-top:56px;
  padding-top:40px;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:24px;
}
.contact-item{display:flex;flex-direction:column;gap:5px}
.contact-item .lbl{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-muted);
}
.contact-item .val{font-size:16px;color:var(--ink)}
.contact-item a.val:hover{color:var(--link)}
.form{
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:28px;
  padding:56px;
}
.form-row{margin-bottom:28px;position:relative}
.form-row label{
  display:block;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-bottom:12px;
}
.form-row input,.form-row textarea{
  width:100%;
  padding:15px 18px;
  background:var(--bg-soft);
  border:1px solid transparent;
  border-radius:14px;
  font-size:16px;
  color:var(--ink);
  transition:border-color .25s var(--ease), background .25s var(--ease);
  font-family:var(--font-sans);
}
.form-row input:focus,.form-row textarea:focus{
  outline:none;
  border-color:var(--ink);
  background:var(--bg);
}
.form-row textarea{min-height:130px;resize:vertical}
.form-check{
  display:flex;
  align-items:start;
  gap:12px;
  margin-bottom:36px;
  font-size:13px;
  color:var(--ink-muted);
  line-height:1.55;
}
.form-check input{margin-top:3px;width:16px;height:16px;accent-color:var(--ink);flex-shrink:0}
.form-check label{
  font-family:var(--font-sans);
  font-size:13px;
  letter-spacing:-0.005em;
  text-transform:none;
  color:var(--ink-muted);
  margin-bottom:0;
  line-height:1.55;
}
.form-check a{color:var(--ink);text-decoration:underline}
.form-submit{
  width:100%;
  padding:18px;
  background:var(--ink);
  color:var(--bg);
  border-radius:999px;
  font-size:15px;
  font-weight:500;
  transition:background .25s var(--ease);
}
.form-submit:hover{background:#333}
.form-submit:disabled{opacity:.5;cursor:not-allowed}
.form-success{
  display:none;
  padding:22px;
  background:rgba(101,160,155,0.06);
  border-radius:14px;
  font-size:15px;
  color:var(--accent);
  margin-top:20px;
  line-height:1.5;
}
.form-success.show{display:block}

/* ───────── 404 PAGE ───────── */
.errorpage{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:120px 32px;
}
.errorpage-code{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:200;
  font-size:clamp(120px, 28vw, 280px);
  line-height:1;
  color:var(--accent);
  opacity:0.18;
  margin-bottom:32px;
  font-variation-settings:"opsz" 144, "SOFT" 60;
}
.errorpage h1{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(36px, 5vw, 64px);
  line-height:1;
  letter-spacing:-0.035em;
  margin-bottom:24px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.errorpage h1 em{font-style:italic;color:var(--accent)}
.errorpage p{
  font-size:19px;
  color:var(--ink-soft);
  max-width:520px;
  margin-bottom:48px;
  line-height:1.55;
}

/* ───────── FOOTER ───────── */
.footer{background:var(--bg-deep);color:rgba(255,255,255,0.7);padding:96px 0 40px}
.footer-top{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:56px;
  padding-bottom:56px;
  border-bottom:1px solid var(--line-dark);
  margin-bottom:36px;
}
.footer-brand{
  font-family:var(--font-display);
  font-weight:400;
  font-size:26px;
  color:var(--bg);
  margin-bottom:14px;
  letter-spacing:-0.02em;
  font-variation-settings:"opsz" 60, "SOFT" 30;
}
.footer-brand i{font-style:italic;font-weight:300}
.footer-tag{font-size:14px;line-height:1.6;max-width:360px}
.footer-sedi{
  margin-top:18px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.04em;
  color:rgba(255,255,255,0.55);
}
.footer-sedi-lbl{
  display:block;
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.4);
  margin-bottom:6px;
}
.footer-col h5{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.5);
  margin-bottom:18px;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-col a{font-size:14px;transition:color .25s var(--ease)}
.footer-col a:hover{color:var(--bg)}
.footer-marketing{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:14px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.footer-personal{
  font-size:13px;
  line-height:1.55;
  color:rgba(255,255,255,0.72);
  max-width:1000px;
  margin-bottom:18px;
  font-style:italic;
}
.footer-legal{
  font-size:12px;
  line-height:1.65;
  color:rgba(255,255,255,0.5);
  max-width:1000px;
  margin-bottom:24px;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
  font-size:12px;
  color:rgba(255,255,255,0.5);
  padding-top:24px;
  border-top:1px solid var(--line-dark);
}
.footer-bottom-links{display:flex;gap:28px;flex-wrap:wrap}

/* ───────── MOBILE-SPECIFIC ELEMENTS ───────── */
.nav-burger{
  display:none;
  width:44px;height:44px;
  position:relative;
  margin-left:auto;
  margin-right:12px;
  background:transparent;
  border-radius:8px;
}
.nav-burger span{
  position:absolute;
  left:12px;right:12px;
  height:1.5px;
  background:var(--ink);
  transition:transform .35s var(--ease), top .35s var(--ease);
  border-radius:2px;
}
.nav-burger span:nth-child(1){top:17px}
.nav-burger span:nth-child(2){top:25px}
.nav-burger.open span:nth-child(1){top:21px;transform:rotate(45deg)}
.nav-burger.open span:nth-child(2){top:21px;transform:rotate(-45deg)}
.mobile-menu{
  position:fixed;
  inset:0;
  background:rgba(251,251,253,0.985);
  backdrop-filter:saturate(180%) blur(28px);
  -webkit-backdrop-filter:saturate(180%) blur(28px);
  z-index:99;
  transform:translateY(-100%);
  transition:transform .55s var(--ease-out);
  overflow-y:auto;
  padding:90px 32px calc(48px + env(safe-area-inset-bottom)) 32px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:48px;
  visibility:hidden;
}
.mobile-menu.open{transform:translateY(0);visibility:visible}
.mobile-menu-links{display:flex;flex-direction:column;margin-top:8px}
.mobile-menu-link{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(34px, 8vw, 44px);
  line-height:1.15;
  letter-spacing:-0.03em;
  color:var(--ink);
  padding:22px 0;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  font-variation-settings:"opsz" 60, "SOFT" 30;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);
}
.mobile-menu-link::after{
  content:"›";
  font-size:30px;
  color:var(--ink-muted);
  line-height:1;
  transition:transform .3s var(--ease), color .25s var(--ease);
}
.mobile-menu-link:hover::after{transform:translateX(4px);color:var(--accent)}
.mobile-menu.open .mobile-menu-link{opacity:1;transform:translateY(0)}
.mobile-menu.open .mobile-menu-link:nth-child(1){transition-delay:.15s}
.mobile-menu.open .mobile-menu-link:nth-child(2){transition-delay:.22s}
.mobile-menu.open .mobile-menu-link:nth-child(3){transition-delay:.29s}
.mobile-menu.open .mobile-menu-link:nth-child(4){transition-delay:.36s}
.mobile-menu.open .mobile-menu-link:nth-child(5){transition-delay:.43s}
.mobile-menu-footer{
  display:flex;flex-direction:column;gap:24px;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s var(--ease-out) .55s, transform .6s var(--ease-out) .55s;
}
.mobile-menu.open .mobile-menu-footer{opacity:1;transform:translateY(0)}
.mobile-menu-cta{
  display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--bg);
  padding:20px;border-radius:999px;
  font-size:16px;font-weight:500;letter-spacing:-0.005em;
}
.mobile-menu-contact{
  display:flex;flex-direction:column;gap:6px;
  font-size:13px;color:var(--ink-muted);text-align:center;
}
.mobile-menu-contact a{color:var(--ink);font-weight:500}
.mobile-cta{
  display:none;
  position:fixed;
  left:16px;right:16px;
  bottom:calc(16px + env(safe-area-inset-bottom));
  padding:16px 24px;
  background:rgba(29,29,31,0.92);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  color:var(--bg);
  z-index:90;
  border-radius:999px;
  align-items:center;justify-content:space-between;
  font-size:15px;font-weight:500;letter-spacing:-0.005em;
  box-shadow:0 8px 24px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.12);
  transform:translateY(0);
  transition:transform .4s var(--ease-out), opacity .4s var(--ease-out);
}
.mobile-cta.hide{transform:translateY(120%);opacity:0;pointer-events:none}
.mobile-cta::after{content:"→";font-size:18px;line-height:1;margin-left:14px}
body.menu-open{overflow:hidden;height:100vh}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .js .reveal, .reveal{opacity:1;transform:none}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:0.01ms}
}

/* ───────── RESPONSIVE ───────── */
@media (max-width: 980px){
  .nav-links{display:none}
  .nav-cta{display:none}
  .nav-burger{display:block}
  .mobile-cta{display:flex}
  .container,.nav-inner{padding-left:24px;padding-right:24px}
  .nav-inner{padding-top:12px;padding-bottom:12px}
  .nav-brand{font-size:17px}
  .hero{padding:120px 0 80px;min-height:auto}
  .hero h1{font-size:clamp(46px, 11vw, 80px);line-height:0.98}
  .hero-sub{font-size:18px;margin-bottom:40px}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{justify-content:center;padding:15px 24px}
  .page-hero{padding:120px 0 70px}
  .page-hero h1{font-size:clamp(40px, 10vw, 60px)}
  .section{padding:80px 0}
  .section-head{margin-bottom:48px}
  .section-title{font-size:clamp(38px, 9vw, 60px);margin-bottom:24px}
  .section-intro{font-size:17px}
  .home-servizi{padding:80px 0}
  .home-servizi-grid{grid-template-columns:1fr;gap:16px;margin-top:48px}
  .servizio-card{aspect-ratio:4/3}
  .servizio-card-content{left:24px;right:24px;bottom:24px}
  .servizio-card h3{font-size:24px}
  .home-chi-sono{padding:80px 0}
  .home-chi-sono-grid{grid-template-columns:1fr;gap:40px}
  .home-cta{padding:96px 0}
  .servizio{padding:64px 0}
  .servizio-grid,.chi-sono-grid,.contatti-grid{grid-template-columns:1fr;gap:40px}
  .servizio.reverse .servizio-grid{direction:ltr}
  .servizio h2{font-size:clamp(34px, 8.5vw, 48px);margin-bottom:24px}
  .servizio-sub{font-size:17px;margin-bottom:24px}
  .chi-sono-title{position:static;font-size:clamp(38px, 9vw, 56px)}
  .chi-sono-portrait-grid{grid-template-columns:1fr;gap:40px}
  .chi-sono-portrait{position:static;max-width:380px;margin:0 auto}
  .chi-sono-portrait-title{font-size:clamp(32px, 8vw, 44px)}
  .home-chi-sono-intro{gap:28px}
  .chi-sono-tondo{width:140px;height:140px}
  .chi-sono-body p:first-child{font-size:19px}
  .chi-sono-body p{font-size:17px}
  .credentials{grid-template-columns:1fr;gap:22px;margin-top:40px;padding-top:32px}
  .pillars{grid-template-columns:1fr;border-radius:20px}
  .pillar{padding:40px 28px}
  .pillar h3{font-size:26px}
  .pillar-num{font-size:56px;margin-bottom:24px}
  .ai-title{font-size:clamp(36px, 9vw, 60px)}
  .ai-intro{font-size:17px}
  .ai-stmt{font-size:19px;margin-bottom:72px;padding-left:20px}
  .ai-uses{grid-template-columns:1fr;gap:48px;padding-top:64px}
  .ai-use h4{font-size:22px}
  .note-head{flex-direction:column;align-items:start;gap:24px;margin-bottom:56px}
  .articles{grid-template-columns:1fr}
  .article,.article:nth-child(even){padding:40px 0}
  .article h3{font-size:24px}
  .contatti{padding-bottom:120px}
  .contatti-left p{font-size:17px}
  .contatti-details{margin-top:40px;padding-top:32px}
  .form{padding:32px 24px;border-radius:22px}
  .form-row input,.form-row textarea{padding:14px 16px;font-size:16px}
  .form-submit{padding:18px}
  .footer{padding:64px 0 calc(120px + env(safe-area-inset-bottom)) 0}
  .footer-top{grid-template-columns:1fr;gap:32px;padding-bottom:40px}
  .footer-bottom{flex-direction:column;align-items:start;gap:12px}
  .footer-bottom-links{gap:16px}
  .servizio-visual{aspect-ratio:5/4;border-radius:22px}
  .servizio-modules{grid-template-columns:1fr;gap:10px;margin-top:24px;margin-bottom:24px}
  .module{padding:16px 18px}
  .servizio-quote{font-size:18px;padding-left:16px;margin-bottom:24px}
  .servizio-list li{font-size:15px;padding:12px 0}
  .btn{padding:14px 24px;font-size:14px}
}

/* ───────── LEGAL / PROSE PAGES ───────── */
.legal{background:var(--bg)}
.legal-wrap{max-width:760px;margin:0 auto;padding:0 32px}

/* ───── LegalBlink iframe integration ───── */
.legal-frame-section{
  background:var(--bg);
  padding-top:0;
}
.legal-frame-wrap{
  max-width:920px;
  margin:0 auto;
  padding:0 32px;
}
.legal-frame{
  width:100%;
  min-height:2400px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  display:block;
}
.legal-frame-fallback{
  margin-top:24px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.04em;
  color:var(--ink-muted);
  text-align:center;
}
.legal-frame-fallback a{
  color:var(--accent);
  text-decoration:underline;
}
@media (max-width:980px){
  .legal-frame-wrap{padding:0 16px}
  .legal-frame{min-height:3200px;border-radius:8px}
}

.legal h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(26px, 3vw, 36px);
  line-height:1.15;
  letter-spacing:-0.02em;
  margin:56px 0 20px;
  color:var(--ink);
  font-variation-settings:"opsz" 60, "SOFT" 30;
}
.legal h2:first-child{margin-top:0}
.legal h3{
  font-family:var(--font-sans);
  font-weight:600;
  font-size:18px;
  margin:32px 0 12px;
  color:var(--ink);
}
.legal p, .legal li{
  font-size:16px;
  line-height:1.7;
  color:var(--ink-soft);
  margin-bottom:16px;
}
.legal ul{margin:0 0 16px 22px}
.legal li{margin-bottom:8px}
.legal a{color:var(--accent);text-decoration:underline}
.legal strong{color:var(--ink);font-weight:600}
.legal-note{
  background:var(--bg-soft);
  border-left:3px solid var(--accent);
  border-radius:0 12px 12px 0;
  padding:20px 24px;
  margin:32px 0;
  font-size:14px;
  line-height:1.6;
  color:var(--ink-muted);
}
.legal-updated{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.08em;
  color:var(--ink-muted);
  margin-top:48px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
@media (max-width:980px){
  .legal h2{margin:40px 0 16px}
}


@media print{
  .nav, .mobile-menu, .nav-burger, .mobile-cta, .hero-scroll, .home-cta{display:none !important}
  body{background:#fff;color:#000}
  .ai, .servizio.s-dark, .footer{background:#fff !important;color:#000 !important}
  .ai-title, .ai-intro, .ai-stmt, .ai-use h4, .ai-use p,
  .servizio.s-dark h2, .servizio.s-dark .servizio-sub, .servizio.s-dark .servizio-list li,
  .footer-brand, .footer-tag, .footer-col a, .footer-legal{color:#000 !important}
  .section, .servizio, .hero{padding:24px 0 !important}
  a{color:#000 !important; text-decoration:underline}
  .reveal{opacity:1 !important; transform:none !important}
  .servizio-card-letter, .servizio-letter{display:none}
}
