/*
FILE: data/site.css
VERSION: 6_01
CREATED: 2026-06-19

CSS condiviso estratto dall'index originale.
Usato da:
- /index_v6_01.html
- /pages/progetti-sa.html

Non contiene testi o dati aziendali.
*/

@font-face{
      font-family:'Cabinet Grotesk';
      src:url('../fonts/CabinetGrotesk-Regular.woff2') format('woff2');
      font-weight:400;font-style:normal;font-display:swap;
    }
    @font-face{
      font-family:'Cabinet Grotesk';
      src:url('../fonts/CabinetGrotesk-Medium.woff2') format('woff2');
      font-weight:500;font-style:normal;font-display:swap;
    }
    @font-face{
      font-family:'Cabinet Grotesk';
      src:url('../fonts/CabinetGrotesk-Bold.woff2') format('woff2');
      font-weight:700;font-style:normal;font-display:swap;
    }
    @font-face{
      font-family:'Cabinet Grotesk';
      src:url('../fonts/CabinetGrotesk-Extrabold.woff2') format('woff2');
      font-weight:800;font-style:normal;font-display:swap;
    }
    @font-face{
      font-family:'Satoshi';
      src:url('../fonts/Satoshi-Regular.woff2') format('woff2');
      font-weight:400;font-style:normal;font-display:swap;
    }
    @font-face{
      font-family:'Satoshi';
      src:url('../fonts/Satoshi-Medium.woff2') format('woff2');
      font-weight:500;font-style:normal;font-display:swap;
    }
    @font-face{
      font-family:'Satoshi';
      src:url('../fonts/Satoshi-Bold.woff2') format('woff2');
      font-weight:700;font-style:normal;font-display:swap;
    }
  
.hero__note{margin-top:1rem;font-size:0.9em;opacity:0.8}

/* ── Design Tokens ── */
  :root, [data-theme="light"] {
    --text-xs:   clamp(0.75rem,  0.7rem  + 0.25vw, 0.875rem);
    --text-sm:   clamp(0.875rem, 0.8rem  + 0.35vw, 1rem);
    --text-base: clamp(1rem,     0.95rem + 0.25vw, 1.125rem);
    --text-lg:   clamp(1.125rem, 1rem    + 0.75vw, 1.5rem);
    --text-xl:   clamp(1.5rem,   1.2rem  + 1.25vw, 2.25rem);
    --text-2xl:  clamp(2rem,     1.2rem  + 2.5vw,  3.5rem);
    --text-3xl:  clamp(2.5rem,   1rem    + 4vw,    5rem);
    --text-hero: clamp(2.75rem,  0.5rem  + 5.8vw,  5.75rem);

    --space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;
    --space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;
    --space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;

    --color-bg:               #f5f4f0;
    --color-surface:          #f9f8f5;
    --color-surface-2:        #ffffff;
    --color-surface-offset:   #eeecea;
    --color-surface-offset-2: #e8e6e2;
    --color-surface-dynamic:  #dedad5;
    --color-divider:          #d9d6d0;
    --color-border:           #ccc9c2;
    --color-text:             #1e1c17;
    --color-text-muted:       #6b6960;
    --color-text-faint:       #b0ae9f;
    --color-text-inverse:     #f5f4f0;
    --color-primary:          #016b70;
    --color-primary-hover:    #014d52;
    --color-primary-active:   #013538;
    --color-primary-highlight:#cddcda;
    --color-accent:           #c97d00;
    --color-accent-hover:     #a56300;
    --color-accent-highlight: #f0dfc0;

    --radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;
    --radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;
    --transition-fast: 180ms cubic-bezier(0.16, 1, 0.3, 1);
    --shadow-sm:0 1px 2px oklch(0.2 0.01 80/0.06);
    --shadow-md:0 4px 12px oklch(0.2 0.01 80/0.08);
    --shadow-lg:0 12px 32px oklch(0.2 0.01 80/0.12);
    --shadow-xl:0 24px 64px oklch(0.2 0.01 80/0.14);
    --content-default:960px;--content-wide:1200px;
    --font-display:'Cabinet Grotesk','Helvetica Neue',sans-serif;
    --font-body:'Satoshi','Inter',sans-serif;
  }
  [data-theme="dark"] {
    --color-bg:#131210;--color-surface:#1a1916;--color-surface-2:#1f1e1b;
    --color-surface-offset:#1d1c19;--color-surface-offset-2:#222019;
    --color-surface-dynamic:#2c2a26;--color-divider:#2a2825;--color-border:#383530;
    --color-text:#e0ddd7;--color-text-muted:#8a877e;--color-text-faint:#5a5850;
    --color-text-inverse:#1a1916;
    --color-primary:#3da8b0;--color-primary-hover:#1e8890;
    --color-primary-active:#146870;--color-primary-highlight:#1e3637;
    --color-accent:#e8a030;--color-accent-hover:#c88020;--color-accent-highlight:#3d2e10;
    --shadow-sm:0 1px 2px oklch(0 0 0/0.25);--shadow-md:0 4px 12px oklch(0 0 0/0.35);
    --shadow-lg:0 12px 32px oklch(0 0 0/0.45);--shadow-xl:0 24px 64px oklch(0 0 0/0.55);
  }
  @media(prefers-color-scheme:dark){:root:not([data-theme]){
    --color-bg:#131210;--color-surface:#1a1916;--color-surface-2:#1f1e1b;
    --color-surface-offset:#1d1c19;--color-divider:#2a2825;--color-border:#383530;
    --color-text:#e0ddd7;--color-text-muted:#8a877e;--color-text-faint:#5a5850;
    --color-text-inverse:#1a1916;--color-primary:#3da8b0;--color-primary-hover:#1e8890;
    --color-primary-highlight:#1e3637;--color-accent:#e8a030;--color-accent-highlight:#3d2e10;
  }}

  /* ── Base ── */
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
    scroll-behavior:smooth;scroll-padding-top:5rem}
  body{min-height:100dvh;line-height:1.65;font-family:var(--font-body);
    font-size:var(--text-base);color:var(--color-text);background:var(--color-bg)}
  img,svg{display:block;max-width:100%;height:auto}
  h1,h2,h3,h4{text-wrap:balance;line-height:1.15;font-family:var(--font-display)}
  p,li{text-wrap:pretty}
  button{cursor:pointer;background:none;border:none}
  a{color:inherit;text-decoration:none}
  ::selection{background:oklch(from var(--color-primary) l c h/0.2);color:var(--color-text)}
  :focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
  @media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
  a,button,[role=button],input,textarea,select{
    transition:color var(--transition-fast),background var(--transition-fast),
    border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}

  /* ── Layout helpers ── */
  .container{max-width:var(--content-default);margin-inline:auto;padding-inline:var(--space-6)}
  .cw{max-width:var(--content-wide);margin-inline:auto;padding-inline:var(--space-6)}
  .section{padding-block:clamp(var(--space-16),8vw,var(--space-32))}

  /* ── Nav ── */
  .nav{position:sticky;top:0;z-index:100;
    background:oklch(from var(--color-bg) l c h/0.92);backdrop-filter:blur(12px);
    border-bottom:1px solid oklch(from var(--color-text) l c h/0.08)}
  .nav__i{max-width:var(--content-wide);margin-inline:auto;padding-inline:var(--space-6);
    height:4rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}
  .nav__logo{display:flex;align-items:center;gap:var(--space-3);flex:0 0 auto;min-width:max-content}
  .nav__logo-text{font-family:var(--font-display);font-weight:800;
    font-size:var(--text-lg);letter-spacing:-0.02em;color:var(--color-text)}
  .nav__logo-text .accent{color:var(--color-primary)}
  .nav__links{display:flex;align-items:center;gap:var(--space-5);flex-wrap:nowrap;white-space:nowrap}
  .nav__links a{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);padding-block:var(--space-2);white-space:nowrap}
  .nav__links a:hover{color:var(--color-primary)}
  .nav__actions{display:flex;align-items:center;gap:var(--space-3);flex:0 0 auto}
  .theme-btn{width:2.5rem;height:2.5rem;border-radius:var(--radius-full);
    display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);
    border:1px solid oklch(from var(--color-text) l c h/0.1)}
  .theme-btn:hover{color:var(--color-text);background:var(--color-surface-offset)}
  .nav-cta{font-size:var(--text-sm);font-weight:600;padding:var(--space-2) var(--space-5);
    background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-full)}
  .nav-cta:hover{background:var(--color-primary-hover)}
  .hamburger{display:none;width:2.5rem;height:2.5rem;
    align-items:center;justify-content:center;color:var(--color-text)}
  @media(max-width:1180px){
    .nav__links{display:none}.nav-cta{display:none}.hamburger{display:flex}
    .nav__links.open{display:flex;flex-direction:column;align-items:flex-start;
      position:absolute;top:4rem;left:0;right:0;background:var(--color-surface);
      border-bottom:1px solid var(--color-divider);padding:var(--space-6);gap:var(--space-4)}
    .nav__links.open a{font-size:var(--text-base)}
  }

  /* ── Hero ── */
  .hero{min-height:92dvh;display:flex;align-items:center;position:relative;overflow:hidden}
  .hero__bg{position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(ellipse 60% 50% at 80% 20%,oklch(from var(--color-primary) l c h/0.07) 0%,transparent 60%),
               radial-gradient(ellipse 40% 40% at 20% 80%,oklch(from var(--color-accent) l c h/0.05) 0%,transparent 55%)}
  .hero__body{position:relative;z-index:1;max-width:var(--content-wide);
    margin-inline:auto;padding-inline:var(--space-6);padding-block:var(--space-24)}
  .eyebrow{display:flex;align-items:center;gap:var(--space-2);
    font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    color:var(--color-primary);margin-bottom:var(--space-6)}
  .eyebrow::before{content:none}
  .hero__headline{font-size:var(--text-hero);font-weight:800;letter-spacing:-0.03em;
    line-height:1.0;color:var(--color-text);max-width:14ch}
  .hero__headline em{font-style:normal;color:var(--color-primary)}
  .text-accent{color:var(--color-primary)}
  .hero__sub{font-size:var(--text-lg);color:var(--color-text-muted);
    max-width:52ch;line-height:1.6;margin-top:var(--space-6)}
  .pills{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
  .pill{display:inline-flex;align-items:center;gap:var(--space-2);
    font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;
    padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);
    background:var(--color-surface-offset);color:var(--color-text-muted);
    border:1px solid oklch(from var(--color-text) l c h/0.1)}
  .pill--primary{background:var(--color-primary-highlight);color:var(--color-primary);
    border-color:oklch(from var(--color-primary) l c h/0.2)}
  .pill--accent{background:var(--color-accent-highlight);color:var(--color-accent);
    border-color:oklch(from var(--color-accent) l c h/0.2)}
  .pill--teal-soft{background:oklch(from var(--color-primary) l c h/0.08);color:var(--color-primary);
    border-color:oklch(from var(--color-primary) l c h/0.16)}
  .pill--accent-soft{background:oklch(from var(--color-accent) l c h/0.09);color:var(--color-accent);
    border-color:oklch(from var(--color-accent) l c h/0.16)}
  .pill--primary-soft{background:oklch(from var(--color-primary) l c h/0.12);color:var(--color-primary);
    border-color:oklch(from var(--color-primary) l c h/0.2)}
  .pill--teal-strong{background:#d9ecec;color:#016b70;border-color:#9dc8c9}
  .pill--amber-strong{background:#f3e2c7;color:#9a6200;border-color:#d9b882}
  .pill--sage-strong{background:#dde7d7;color:#4e6749;border-color:#b8c9ae}
  .pill--slate-strong{background:#e8e4dc;color:#5d564c;border-color:#cfc6b8}
  .pill--teal-soft{background:#edf5f5;color:#2c7b7f;border-color:#c8dddd}
  .pill--amber-soft{background:#f8efe1;color:#a07023;border-color:#e6d3b4}
  .pill--sage-soft{background:#edf2ea;color:#60775c;border-color:#d7e1d1}
  .pill{font-weight:650;border-width:1.5px;box-shadow:0 1px 0 rgba(30,28,23,.03)}
  .hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-10)}
  .btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);
    font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;
    padding:var(--space-3) var(--space-8);background:var(--color-primary);
    color:var(--color-text-inverse);border-radius:var(--radius-full);border:none}
  .btn-primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}
  .btn-ghost{display:inline-flex;align-items:center;gap:var(--space-2);
    font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;
    padding:var(--space-3) var(--space-8);color:var(--color-text);
    border:1px solid var(--color-border);border-radius:var(--radius-full)}
  .btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-highlight)}
  .hero__stats{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-top:var(--space-12);
    padding-top:var(--space-12);border-top:1px solid oklch(from var(--color-text) l c h/0.08)}
  .stat__n{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;
    color:var(--color-text);letter-spacing:-0.04em;line-height:1}
  .stat__l{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}

  /* ── Section header ── */
  .sh{margin-bottom:clamp(var(--space-10),4vw,var(--space-16))}
  .sh__title{font-size:var(--text-2xl);font-weight:800;letter-spacing:-0.03em;line-height:1.1}
  .sh__sub{font-size:var(--text-base);color:var(--color-text-muted);max-width:60ch;margin-top:var(--space-4);line-height:1.65}

  /* ── About ── */
  .about{background:var(--color-surface);border-block:1px solid var(--color-divider)}
  .about__grid{display:grid;grid-template-columns:1fr 1.4fr;
    gap:clamp(var(--space-10),6vw,var(--space-24));align-items:start}
  @media(max-width:768px){.about__grid{display:flex;flex-direction:column}.about__grid>div:last-child{order:1}.about__sticky{position:static;top:auto;order:2;width:100%;margin-top:var(--space-8)}}
  .about__sticky{position:sticky;top:6rem}
  .about__img{aspect-ratio:3/4;border-radius:var(--radius-2xl);overflow:hidden;
    background:var(--color-surface-offset);box-shadow:var(--shadow-xl)}
  .about__img img{width:100%;height:100%;object-fit:cover}
  .about__qblock{margin-top:var(--space-6);padding:var(--space-6);
    background:var(--color-primary);border-radius:var(--radius-xl);color:var(--color-text-inverse)}
  .about__q{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;line-height:1.4;letter-spacing:-0.01em}
  .about__qa{font-size:var(--text-xs);opacity:.7;margin-top:var(--space-3)}
  .about__title{font-size:var(--text-2xl);font-weight:800;letter-spacing:-0.03em;line-height:1.1;margin-bottom:var(--space-6)}
  .about__title em{font-style:normal;color:var(--color-primary)}
  .about__intro{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.75;margin-bottom:var(--space-8);max-width:62ch}
  .roles{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}
  .role-badge{font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-3);
    background:var(--color-surface-offset);color:var(--color-text-muted);
    border-radius:var(--radius-full);border:1px solid var(--color-divider)}
  .credentials{display:flex;flex-direction:column;gap:var(--space-4)}
  .cred{display:flex;align-items:flex-start;gap:var(--space-4);
    padding:var(--space-4) var(--space-5);background:var(--color-bg);
    border:1px solid var(--color-divider);border-radius:var(--radius-lg)}
  .cred__icon{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;
    justify-content:center;background:var(--color-primary-highlight);
    color:var(--color-primary);border-radius:var(--radius-md);font-size:1.1rem}
  .cred__text{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}
  .cred__text strong{display:block;color:var(--color-text);margin-bottom:var(--space-1)}

  /* ── Servizi ── */
  .servizi{background:var(--color-bg)}
  .servizi__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
  @media(max-width:900px){.servizi__grid{grid-template-columns:1fr}}
  .scard{background:var(--color-surface);border:1px solid var(--color-divider);
    border-radius:var(--radius-2xl);overflow:hidden;display:flex;flex-direction:column;
    transition:box-shadow var(--transition-fast),transform var(--transition-fast)}
  .scard:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
  .scard__top{padding:var(--space-8) var(--space-8) var(--space-6);
    background:var(--color-surface-offset);border-bottom:1px solid var(--color-divider)}
  .scard__letter{display:inline-flex;align-items:center;justify-content:center;
    width:3rem;height:3rem;font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;
    border-radius:var(--radius-lg);margin-bottom:var(--space-5)}
  .scard__letter--primary{color:var(--color-primary);background:var(--color-primary-highlight)}
  .scard__letter--accent{color:var(--color-accent);background:var(--color-accent-highlight)}
  .scard__letter--teal{color:var(--color-primary);background:oklch(from var(--color-primary) l c h/0.12)}
  .scard__subtitle{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;
    text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-2)}
  .scard__title{font-size:var(--text-xl);font-weight:800;letter-spacing:-0.02em;line-height:1.2}
  .scard__body{padding:var(--space-6) var(--space-8) var(--space-8);flex:1}
  .scard__desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-5)}
  .slist{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}
  .slist li{display:flex;align-items:flex-start;gap:var(--space-3);
    font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}
  .slist li::before{content:'';flex-shrink:0;width:5px;height:5px;margin-top:.55em;
    border-radius:50%;background:var(--color-primary)}
  .slist--accent li::before{background:var(--color-accent)}

  /* ── Settori ── */
  .settori{background:var(--color-surface);border-top:1px solid var(--color-divider)}
  .settori__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
  .settore{padding:var(--space-6);background:var(--color-bg);border:1px solid var(--color-divider);
    border-radius:var(--radius-xl);text-align:center;
    transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}
  .settore:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}
  .settore__emoji{font-size:2.25rem;margin-bottom:var(--space-4)}
  .settore__name{font-size:var(--text-sm);font-weight:600}
  .settore__sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}

  /* ── Progetti ── */
  .progetti{background:var(--color-surface);border-block:1px solid var(--color-divider)}
  .progetti__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}
  @media(max-width:768px){.progetti__grid{grid-template-columns:1fr}}
  @media(max-width:900px){.footer__i{grid-template-columns:1fr;justify-items:center}.footer__links{justify-content:center}.footer__meta{text-align:center}}
  @media(max-width:900px){.settori__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:640px){.settori__grid{grid-template-columns:1fr}}
  .pcase{background:var(--color-bg);border:1px solid var(--color-divider);
    border-radius:var(--radius-2xl);overflow:hidden;display:flex;flex-direction:column;
    transition:box-shadow var(--transition-fast)}
  .pcase:hover{box-shadow:var(--shadow-lg)}
  .pcase__media{aspect-ratio:1/1;background:var(--color-surface-offset);overflow:hidden;
    display:flex;align-items:center;justify-content:center;padding:0}
  .pcase__media img{width:100%;height:100%;object-fit:cover}
  .pcase__body{padding:var(--space-8);flex:1;display:flex;flex-direction:column}
  .pcase__tag{display:inline-block;margin-bottom:var(--space-4);
    font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--color-primary)}
  .pcase__tag--accent{color:var(--color-accent)}
  .pcase__title{font-size:var(--text-lg);font-weight:800;letter-spacing:-0.02em;
    line-height:1.25;margin-bottom:var(--space-4)}
  .pcase__desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;flex:1}
  .pcase__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);
    margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-divider)}
  .badge{font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-3);
    background:var(--color-surface-offset);border:1px solid var(--color-divider);
    color:var(--color-text-muted);border-radius:var(--radius-full)}
.page-focus-1 .pcase__media{
  aspect-ratio:4/5;
}

.page-focus-1 .pcase__media img{
  object-fit:contain;
}
  /* ── Approccio ── */
  .approccio{background:var(--color-bg)}
  .approccio__grid{display:grid;grid-template-columns:1fr 1.2fr;
    gap:clamp(var(--space-10),6vw,var(--space-20));align-items:center}
  @media(max-width:768px){.approccio__grid{grid-template-columns:1fr}}
  .approccio__body{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.75;margin-bottom:var(--space-6)}
  .pillars{display:flex;flex-direction:column;gap:var(--space-4)}
  .pillar{display:flex;align-items:flex-start;gap:var(--space-5);
    padding:var(--space-5) var(--space-6);border:1px solid var(--color-divider);
    border-radius:var(--radius-xl);background:var(--color-surface)}
  .pillar__n{flex-shrink:0;font-family:var(--font-display);font-size:var(--text-xl);
    font-weight:800;color:var(--color-primary);line-height:1}
  .pillar__c h4{font-size:var(--text-base);font-weight:700;margin-bottom:var(--space-1)}
  .pillar__c p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6}
  .visual-box{background:var(--color-primary);border-radius:var(--radius-2xl);
    padding:var(--space-10);color:var(--color-text-inverse);position:relative;overflow:hidden}
  .visual-box::before{content:'';position:absolute;top:-4rem;right:-4rem;
    width:18rem;height:18rem;border-radius:50%;background:oklch(from var(--color-text-inverse) l c h/0.05)}
  .visual-box h3{font-size:var(--text-xl);font-weight:800;letter-spacing:-0.02em;
    line-height:1.2;margin-bottom:var(--space-5);position:relative;z-index:1}
  .visual-box p{font-size:var(--text-sm);opacity:.8;line-height:1.7;
    position:relative;z-index:1;margin-bottom:var(--space-6)}
  .vtags{display:flex;flex-wrap:wrap;gap:var(--space-2);position:relative;z-index:1}
  .vtag{font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-3);
    background:oklch(from var(--color-text-inverse) l c h/0.15);
    border:1px solid oklch(from var(--color-text-inverse) l c h/0.25);
    border-radius:var(--radius-full);color:var(--color-text-inverse)}

  /* ── Contatti ── */
  .contatti{background:var(--color-bg)}
  .contatti__box{background:var(--color-surface);border:1px solid var(--color-divider);
    border-radius:var(--radius-2xl);overflow:hidden;display:grid;grid-template-columns:1fr 1fr}
  @media(max-width:768px){.contatti__box{grid-template-columns:1fr}}
  .contatti__l{padding:clamp(var(--space-10),5vw,var(--space-16));
    background:var(--color-primary);color:var(--color-text-inverse);
    display:flex;flex-direction:column;justify-content:space-between;min-height:24rem}
  .contatti__l h2{font-size:var(--text-2xl);font-weight:800;letter-spacing:-0.03em;line-height:1.1}
  .contatti__l p{font-size:var(--text-sm);opacity:.8;line-height:1.7;margin-top:var(--space-4);max-width:40ch}
  .contatti__note{font-size:calc(var(--text-sm) - 2px);opacity:.72;font-style:italic;margin-top:var(--space-10)!important;max-width:38ch}
  .contatti__note{font-size:0.92em;opacity:.72;font-style:italic;margin-top:var(--space-6)!important}
  .clinks{display:flex;flex-direction:column;gap:0.42rem;margin-top:var(--space-8);line-height:1.25}
  .clink{display:flex;align-items:center;gap:var(--space-3);
    font-size:var(--text-sm);color:var(--color-text-inverse);opacity:.9}
  .clink:hover{opacity:1}
  .clink--brand{opacity:1;margin-bottom:0.1rem}.clink--brand svg{filter:brightness(1.16);transform:scale(1.06);transform-origin:left center}
  .contatti__r{padding:clamp(var(--space-10),5vw,var(--space-16))}
  .contatti__r h3{font-size:var(--text-2xl);font-weight:800;letter-spacing:-0.03em;line-height:1.1;margin-bottom:var(--space-2)}
  .contatti__r .sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6)}
  .contact-map-placeholder{width:100%;aspect-ratio:16/9;border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;margin-top:var(--space-6)}
  .contact-map-placeholder img{width:100%;height:100%;object-fit:cover;display:block}
  .contact-map-note{width:100%;min-height:6.5rem;border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-bg);margin-top:var(--space-4)}
  .fg{margin-bottom:var(--space-5)}
  .fg label{display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;
    text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-2)}
  .fg input,.fg textarea,.fg select{width:100%;padding:var(--space-3) var(--space-4);
    background:var(--color-bg);border:1px solid var(--color-border);
    border-radius:var(--radius-md);font-family:var(--font-body);
    font-size:var(--text-sm);color:var(--color-text)}
  .fg input:focus,.fg textarea:focus,.fg select:focus{
    outline:none;border-color:var(--color-primary);
    box-shadow:0 0 0 3px oklch(from var(--color-primary) l c h/0.12)}
  .fg textarea{resize:vertical;min-height:7rem}
  .fsub{width:100%;padding:var(--space-3) var(--space-6);
    background:var(--color-primary);color:var(--color-text-inverse);
    border-radius:var(--radius-full);font-family:var(--font-body);
    font-size:var(--text-sm);font-weight:700;border:none}
  .fsub:hover{background:var(--color-primary-hover)}

  /* ── Footer ── */
  .footer{background:var(--color-surface);border-top:1px solid var(--color-divider);
    padding-block:var(--space-4)}
  .footer__i{max-width:var(--content-wide);margin-inline:auto;padding-inline:var(--space-6);
    display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--space-4)}
  .footer__brand{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;
    letter-spacing:-0.02em}
  .footer__brand .accent{color:var(--color-primary)}
  .footer__brand a{display:inline-flex}
  .footer__subname{margin-top:0.18rem;font-size:0.82rem;color:var(--color-text-muted);line-height:1.15;font-weight:400}
  .footer__links-toggle:hover{color:var(--color-text);border-color:var(--color-primary)}
  .footer__links-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3);justify-self:end}
  @media(max-width:820px){
    .footer__i{grid-template-columns:auto 1fr auto;align-items:start}
    .footer__links-wrap{position:relative;align-items:flex-end;justify-self:end}
    .footer__links.open{display:flex!important}
    
    .footer__meta{font-size:0.8rem}
  }
  @media(min-width:821px){
    .footer__links{display:flex!important}
  }
  @media(max-width:640px){
    .footer__i{grid-template-columns:auto 1fr auto;align-items:start}
    .footer__brand{align-self:start}
    .footer__meta{text-align:center;justify-self:center}
    .footer__links-wrap{align-self:start}
  }
  .footer__meta{font-size:0.82rem;color:var(--color-text-muted);text-align:center;justify-self:center;line-height:1.35}
  .footer__copy{margin-top:var(--space-3);text-align:right;font-size:var(--text-xs);color:var(--color-text-muted)}
  .footer__links{display:flex!important;flex-direction:column!important;gap:0.1rem!important;line-height:1.05;flex-wrap:nowrap!important;justify-content:flex-start!important;align-items:flex-end!important;max-width:none}
  .footer__links a{font-size:var(--text-xs);color:var(--color-text-muted)}
  .footer__links a:hover{color:var(--color-primary)}

  /* ── Legal ── */
  .legal{background:var(--color-surface);border-top:1px solid var(--color-divider)}
  .legal__stack{display:flex;flex-direction:column;gap:var(--space-12)}
  .legal__card{background:var(--color-bg);border:1px solid var(--color-divider);
    border-radius:var(--radius-2xl);padding:clamp(var(--space-8),4vw,var(--space-12))}
  .legal__card h3{font-size:var(--text-xl);font-weight:800;letter-spacing:-0.02em;margin-bottom:var(--space-4)}
  .legal__card h4{font-size:var(--text-base);font-weight:700;margin-top:var(--space-6);margin-bottom:var(--space-2)}
  .legal__card p,.legal__card li{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7}
  .legal__card ul{padding-left:1.2rem;display:flex;flex-direction:column;gap:var(--space-2)}
  .legal__meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-6)}
  .form-note{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.6;margin-top:var(--space-4)}
  .form-note a{color:var(--color-primary)}
  .footer__legal{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}

  /* ── Scroll reveal ── */
  .reveal{opacity:0;transform:translateY(20px);
    transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1)}
  .reveal.vis{opacity:1;transform:translateY(0)}
  .d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}

  /* ── Shared section center variant ── */
  .sh--center{text-align:left;display:flex;flex-direction:column;align-items:flex-start}

  /* ── SPAZIO ─────────────────────────────────────── */
  .spazio__inner{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}
  @media(max-width:800px){.spazio__inner{grid-template-columns:1fr}}
  .spazio__text .sh{margin-bottom:var(--space-6)}
  .spazio__text p{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-4)}
  .spazio__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6)}
  .spazio__tag{font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-3);
    border:1.5px solid var(--color-primary);color:var(--color-primary);border-radius:var(--radius-full);
    letter-spacing:.03em}
    .section-gallery-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-6);
    font-size:var(--text-sm);font-weight:600;color:var(--color-primary)}
  .section-gallery-link:hover{text-decoration:underline}
  .section-gallery-bottom{margin-top:var(--space-8)}
  .section-gallery-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--color-primary)}
  .section-gallery-link:hover{text-decoration:underline}
  .section-gallery-bottom[data-align="left"]{text-align:left}
  .section-gallery-bottom[data-align="center"]{text-align:center}
  .section-gallery-bottom[data-align="right"]{text-align:right}
  .section-gallery-header{margin-top:var(--space-4)}
  .section-gallery-header[data-align="left"]{text-align:left}
  .section-gallery-header[data-align="center"]{text-align:center}
  .section-gallery-header[data-align="right"]{text-align:right}
  .section-gallery-eyebrow{display:inline-flex;align-items:center;margin-left:var(--space-3)}
  .section-gallery-eyebrow[data-align="left"]{justify-content:flex-start}
  .section-gallery-eyebrow[data-align="center"]{justify-content:center}
  .section-gallery-eyebrow[data-align="right"]{justify-content:flex-end;width:100%}
  .spazio__visual{display:grid;grid-template-columns:minmax(0,1fr) 0.68fr;gap:var(--space-4);align-items:stretch}
  .spazio__img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl)}
  .spazio__img--main{aspect-ratio:16/10;object-position:center center}
  .spazio__img--side{aspect-ratio:3/4;object-position:center top}
  @media(max-width:800px){.spazio__visual{grid-template-columns:1fr}.spazio__img--side{aspect-ratio:4/3}}
  /* ─────────────────────────────────────────────────── */

.hero__note{margin-top:1rem;font-size:0.9em;opacity:0.8}