/* ============================================================
   CARATTERI OSPITATI IN CASA
   Figtree e Fraunces (licenza SIL Open Font) stanno sul server
   di Axelia, in /font. Nessuna richiesta parte verso Google:
   il visitatore che rifiuta i cookie non lascia traccia altrove.
   ============================================================ */
@font-face{
  font-family:'Figtree'; font-style:normal; font-weight:400 800; font-display:swap;
  src:url(font/figtree-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Figtree'; font-style:normal; font-weight:400 800; font-display:swap;
  src:url(font/figtree-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Fraunces'; font-style:normal; font-weight:300 700; font-display:swap;
  src:url(font/fraunces-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Fraunces'; font-style:normal; font-weight:300 700; font-display:swap;
  src:url(font/fraunces-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ============================================================
   AXELIA — direzione immersiva, guidata dalle fotografie
   Tutti i colori vivono qui, in :root. Nessun colore nasce
   dentro un blocco @media.
   ============================================================ */
:root{
  color-scheme: light;

  /* fondi e testi */
  --paper:        #f4f0e9;
  --paper-2:      #eae4da;
  --surface:      #ffffff;
  --text:         #191512;
  --muted:        #554e45;
  --line:         rgba(25,21,18,.16);
  --line-soft:    rgba(25,21,18,.08);

  /* accenti presi dalle stanze: l'ocra delle poltrone, il verde della parete */
  --accent:       #a86a12;
  --accent-ink:   #8f5a0c;
  --accent-2:     #2f6a4f;
  --on-accent:    #fffaf2;
  --accent-soft:  rgba(168,106,18,.12);

  /* passaggi cinematografici: restano scuri nei due temi,
     perche' vivono sopra le fotografie */
  --film:         #0c0b0a;
  --film-2:       #16130f;
  --film-text:    #f6f1e9;
  --film-muted:   rgba(246,241,233,.76);
  --film-line:    rgba(246,241,233,.22);
  --film-panel:   rgba(246,241,233,.07);

  /* veli sopra le immagini: garantiscono il contrasto del testo */
  --scrim-base:   rgba(9,8,7,.88);
  --scrim-mid:    rgba(9,8,7,.52);
  --scrim-top:    rgba(9,8,7,.34);
  --scrim-flat:   rgba(9,8,7,.66);
  --scrim-deep:   rgba(9,8,7,.80);
  --text-shadow:  0 1px 26px rgba(0,0,0,.55);

  /* testata */
  --head-bg:      rgba(244,240,233,.86);
  --head-text:    #191512;
  --head-muted:   #5f574d;
  --head-line:    rgba(25,21,18,.14);

  /* varie */
  --field-bg:     #ffffff;
  --field-line:   rgba(25,21,18,.28);
  --shadow:       0 30px 70px rgba(25,21,18,.16);
  --shadow-soft:  0 12px 34px rgba(25,21,18,.10);
  --focus:        #a86a12;
  --focus-halo:   rgba(168,106,18,.28);

  --hh: 4.5rem;                 /* altezza testata */
  --maxw: 1240px;
  --pad: clamp(1.15rem, 4.2vw, 3.5rem);
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --paper:        #0f0e0d;
    --paper-2:      #171512;
    --surface:      #1b1815;
    --text:         #f3ece2;
    --muted:        #b0a698;
    --line:         rgba(243,236,226,.18);
    --line-soft:    rgba(243,236,226,.09);

    --accent:       #e0a24a;
    --accent-ink:   #e0a24a;
    --accent-2:     #6cae8c;
    --on-accent:    #1a1206;
    --accent-soft:  rgba(224,162,74,.14);

    --film:         #0a0908;
    --film-2:       #121010;
    --film-text:    #f6f1e9;
    --film-muted:   rgba(246,241,233,.76);
    --film-line:    rgba(246,241,233,.20);
    --film-panel:   rgba(246,241,233,.06);

    --scrim-base:   rgba(6,5,5,.90);
    --scrim-mid:    rgba(6,5,5,.58);
    --scrim-top:    rgba(6,5,5,.40);
    --scrim-flat:   rgba(6,5,5,.70);
    --scrim-deep:   rgba(6,5,5,.84);
    --text-shadow:  0 1px 26px rgba(0,0,0,.6);

    --head-bg:      rgba(15,14,13,.86);
    --head-text:    #f3ece2;
    --head-muted:   #b0a698;
    --head-line:    rgba(243,236,226,.16);

    --field-bg:     #131110;
    --field-line:   rgba(243,236,226,.30);
    --shadow:       0 30px 70px rgba(0,0,0,.55);
    --shadow-soft:  0 12px 34px rgba(0,0,0,.45);
    --focus:        #e0a24a;
    --focus-halo:   rgba(224,162,74,.30);
  }
}

:root[data-theme="dark"]{
  color-scheme: dark;
  --paper:        #0f0e0d;
  --paper-2:      #171512;
  --surface:      #1b1815;
  --text:         #f3ece2;
  --muted:        #b0a698;
  --line:         rgba(243,236,226,.18);
  --line-soft:    rgba(243,236,226,.09);

  --accent:       #e0a24a;
  --accent-ink:   #e0a24a;
  --accent-2:     #6cae8c;
  --on-accent:    #1a1206;
  --accent-soft:  rgba(224,162,74,.14);

  --film:         #0a0908;
  --film-2:       #121010;
  --film-text:    #f6f1e9;
  --film-muted:   rgba(246,241,233,.76);
  --film-line:    rgba(246,241,233,.20);
  --film-panel:   rgba(246,241,233,.06);

  --scrim-base:   rgba(6,5,5,.90);
  --scrim-mid:    rgba(6,5,5,.58);
  --scrim-top:    rgba(6,5,5,.40);
  --scrim-flat:   rgba(6,5,5,.70);
  --scrim-deep:   rgba(6,5,5,.84);
  --text-shadow:  0 1px 26px rgba(0,0,0,.6);

  --head-bg:      rgba(15,14,13,.86);
  --head-text:    #f3ece2;
  --head-muted:   #b0a698;
  --head-line:    rgba(243,236,226,.16);

  --field-bg:     #131110;
  --field-line:   rgba(243,236,226,.30);
  --shadow:       0 30px 70px rgba(0,0,0,.55);
  --shadow-soft:  0 12px 34px rgba(0,0,0,.45);
  --focus:        #e0a24a;
  --focus-halo:   rgba(224,162,74,.30);
}

/* ---------- base ---------- */
*, *::before, *::after{ box-sizing: border-box; }

body{
  margin:0;
  background: var(--paper);
  color: var(--text);
  font-family: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(1rem, .96rem + .22vw, 1.09rem);
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
html{ scroll-behavior: smooth; }
img{ display:block; max-width:100%; }
h1,h2,h3,h4{
  text-wrap: balance;
  font-family:'Fraunces', Georgia, 'Times New Roman', serif;
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.012em;
  margin:0;
  font-optical-sizing:auto;
}
p{ margin:0; }
a{ color: inherit; }

:focus-visible{
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  border-radius: 3px;
}
.on-film :focus-visible{ outline-color: var(--film-text); }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background: var(--surface); color: var(--text);
  padding:.7rem 1rem; border-radius:0 0 10px 0;
}
.skip:focus-visible{ left:0; }

.wrap{ width:100%; max-width: var(--maxw); margin-inline:auto; padding-inline: var(--pad); }
.eyebrow{
  font-size:.74rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color: var(--accent); margin:0 0 1.1rem;
}
.on-film .eyebrow{ color: var(--film-text); opacity:.72; }
section{ scroll-margin-top: calc(var(--hh) + 8px); }

/* ---------- testata ---------- */
.head{
  position: sticky; top:0; z-index:60;
  height: var(--hh);
  background: var(--head-bg);
  border-bottom: 1px solid var(--head-line);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  color: var(--head-text);
}
.head-in{
  height:100%; display:flex; align-items:center; gap:1.2rem;
  max-width: var(--maxw); margin-inline:auto; padding-inline: var(--pad);
}
.brand{ display:flex; align-items:center; gap:.5rem; text-decoration:none; margin-right:auto; }
.brand img{ width:52px; height:52px; object-fit:contain; }
.brand span{
  font-family:'Fraunces', Georgia, serif; font-size:1.42rem; letter-spacing:.005em;
}
.brand .marchio{ width:auto; height:52px; object-fit:contain; }
.foot .brand .marchio{ height:30px; }
.lg-white{ display:none; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .lg-black{ display:none; }
  :root:not([data-theme="light"]) .lg-white{ display:block; }
}
:root[data-theme="dark"] .lg-black{ display:none; }
:root[data-theme="dark"] .lg-white{ display:block; }

.nav{ display:flex; align-items:center; gap:1.6rem; }
.nav a{
  text-decoration:none; font-size:.94rem; font-weight:500; color: var(--head-text);
  padding:.4rem 0; border-bottom:1px solid transparent; transition: border-color .2s ease;
}
.nav a:hover{ border-bottom-color: var(--accent); }
.head-call{ display:flex; flex-direction:column; align-items:flex-end; line-height:1.25; }
.head-call a{
  text-decoration:none; font-weight:700; font-size:1.02rem;
  font-variant-numeric: tabular-nums;
}
.head-call small{ color: var(--head-muted); font-size:.76rem; }
.burger{
  display:none; width:44px; height:44px; border:1px solid var(--head-line);
  border-radius:10px; background:transparent; color:var(--head-text); cursor:pointer;
  align-items:center; justify-content:center; padding:0;
}
.burger i{ display:block; width:19px; height:1.6px; background:currentColor; position:relative; }
.burger i::before,.burger i::after{
  content:''; position:absolute; left:0; width:19px; height:1.6px; background:currentColor;
}
.burger i::before{ top:-6px; } .burger i::after{ top:6px; }
.panel{
  position:fixed; inset: var(--hh) 0 auto 0; z-index:59;
  background: var(--paper); border-bottom:1px solid var(--line);
  padding: 1rem var(--pad) 1.6rem;
  box-shadow: var(--shadow-soft);
}
.panel a{
  display:block; text-decoration:none; font-size:1.16rem; font-weight:600;
  padding:.78rem 0; border-bottom:1px solid var(--line-soft);
}
.panel .p-call{ margin-top:1rem; font-size:1.2rem; font-weight:700; }
.panel .p-hours{ color: var(--muted); font-size:.92rem; }

/* ---------- immagini a piena larghezza ---------- */
.shot{ position:relative; overflow:clip; isolation:isolate; }
.shot > img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
}
.veil{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(to top, var(--scrim-base) 0%, var(--scrim-mid) 46%, var(--scrim-top) 100%);
}
.veil-flat{
  position:absolute; inset:0; z-index:1; background: var(--scrim-deep);
}
.veil-side{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(to right, var(--scrim-base) 0%, var(--scrim-mid) 52%, var(--scrim-top) 100%);
}
.shot > .layer{ position:relative; z-index:2; }
.on-film{ color: var(--film-text); text-shadow: var(--text-shadow); }
.on-film p{ color: var(--film-text); }

/* profondita' allo scorrimento — solo dove il browser la regge */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    .par > img{
      animation: drift linear both;
      animation-timeline: view();
      animation-range: entry 0% exit 100%;
      will-change: transform;
    }
    @keyframes drift{
      from{ transform: scale(1.14) translate3d(0,-3.2%,0); }
      to  { transform: scale(1.14) translate3d(0, 3.2%,0); }
    }
    .rise{
      animation: rise linear both;
      animation-timeline: view();
      animation-range: entry 6% cover 30%;
    }
    @keyframes rise{
      from{ opacity:0; transform: translate3d(0,26px,0); }
      to  { opacity:1; transform: none; }
    }
  }
}

/* ---------- primo schermo ---------- */
.hero{
  position:relative; overflow:clip;
  min-height: calc(100svh - var(--hh));
  display:grid; align-items:end;
}
.hero > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero .layer{
  position:relative; z-index:2;
  width:100%; max-width: var(--maxw); margin-inline:auto;
  padding: 6rem var(--pad) clamp(2.6rem, 6vw, 5rem);
}
.hero h1{
  font-size: clamp(2.7rem, 7.6vw, 5.9rem);
  max-width: 17ch; margin:.2rem 0 1.35rem; font-weight:400;
}
.hero .lede{
  font-size: clamp(1.06rem, .98rem + .6vw, 1.42rem);
  max-width: 56ch; line-height:1.5;
}
.hero .eyebrow{ color: var(--film-text); opacity:.8; }
.actions{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top: 2.1rem; }
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.98rem 1.7rem; border-radius:999px; text-decoration:none;
  font-weight:700; font-size:1rem; border:1.5px solid transparent; cursor:pointer;
  background: var(--accent-ink); color: var(--on-accent); text-shadow:none;
  transition: transform .22s ease, filter .22s ease;
}
.btn:hover{ transform: translateY(-2px); filter: brightness(1.06); }
.btn-line{
  background: transparent; color: var(--film-text);
  border-color: var(--film-line); backdrop-filter: blur(6px);
}
.btn-line:hover{ border-color: var(--film-text); }
.btn-solid{ background: var(--accent-ink); color: var(--on-accent); }
.scrolltip{
  position:absolute; z-index:2; left:50%; bottom:1.3rem; transform:translateX(-50%);
  color: var(--film-text); opacity:.62; font-size:.7rem; letter-spacing:.24em;
  text-transform:uppercase; text-shadow: var(--text-shadow);
}

/* ---------- fascia numeri ---------- */
.figures{ background: var(--film); color: var(--film-text); padding: clamp(3rem,6vw,4.6rem) 0; }
.figures .grid{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:0;
}
.fig{ padding: .4rem clamp(1rem,2.4vw,2rem); border-left:1px solid var(--film-line); }
.fig:first-child{ border-left:0; padding-left:0; }
.fig b{
  display:block; font-family:'Fraunces', Georgia, serif; font-weight:400;
  font-size: clamp(1.9rem, 3.4vw, 3.05rem); line-height:1.05; letter-spacing:-.02em;
  font-variant-numeric: tabular-nums; margin-bottom:.5rem;
}
.fig span{ display:block; color: var(--film-muted); font-size:.94rem; line-height:1.45; }

/* ---------- introduzione ---------- */
.intro{ background: var(--paper); padding: clamp(4.2rem,9vw,7.5rem) 0 clamp(2.6rem,5vw,4rem); }
.intro h2{ font-size: clamp(2rem, 4.8vw, 3.4rem); max-width: 16ch; }
.intro p{ margin-top:1.5rem; max-width: 60ch; font-size: clamp(1.05rem,1rem+.4vw,1.24rem); color: var(--muted); }

/* ---------- le tre aree: identiche ---------- */
.areas{ background: var(--paper); padding-bottom: clamp(2rem,4vw,3rem); }
.area{
  display:grid; grid-template-columns: 1fr 1fr; align-items:stretch;
  border-top:1px solid var(--line-soft);
}
.area .ph{ position:relative; overflow:clip; min-height: 30rem; }
.area .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.area .body{
  background: var(--surface);
  padding: clamp(2.2rem, 4.4vw, 4.4rem);
  display:flex; flex-direction:column; justify-content:center;
}
.area h3{ font-size: clamp(1.55rem, 2.5vw, 2.15rem); margin-bottom:1rem; }
.area .body > p{ color: var(--muted); max-width: 46ch; }
.area ul{ list-style:none; margin:1.7rem 0 0; padding:0; }
.area li{
  position:relative; padding-left:1.6rem; margin-bottom:.62rem; font-size:.99rem;
}
.area li::before{
  content:''; position:absolute; left:0; top:.68em; width:.62rem; height:1.5px;
  background: var(--accent);
}
.area .tag{
  font-size:.72rem; font-weight:700; letter-spacing:.19em; text-transform:uppercase;
  color: var(--accent); margin-bottom:.9rem;
}

/* ---------- il ciclo della pratica ---------- */
.cycle{ position:relative; min-height: 100svh; display:grid; align-content:center; padding: clamp(4.5rem,9vw,8rem) 0; }
.cycle h2{ font-size: clamp(2rem, 4.8vw, 3.4rem); max-width: 20ch; }
.steps{
  display:grid; grid-template-columns: repeat(5, 1fr); gap: 1px;
  margin-top: clamp(2.4rem,5vw,4rem); background: var(--film-line);
  border:1px solid var(--film-line);
}
.step{ background: var(--film-panel); backdrop-filter: blur(10px); padding: clamp(1.1rem,1.7vw,1.6rem); }
.step b{
  display:block; font-family:'Fraunces', Georgia, serif; font-weight:400;
  font-size:2rem; line-height:1; opacity:.5; margin-bottom:.85rem;
  font-variant-numeric: tabular-nums;
}
.step h3{ font-size:1.02rem; line-height:1.28; margin-bottom:.55rem; font-family:'Figtree',sans-serif; font-weight:700; letter-spacing:0; }
.step p{ color: var(--film-muted); font-size:.875rem; line-height:1.52; }

/* ---------- la sede ---------- */
.venue{
  position:relative; min-height: 100svh; display:grid; align-items:end;
}
.venue .layer{ padding: 6rem 0 clamp(3rem,6vw,5.5rem); }
.venue h2{ font-size: clamp(2.2rem, 5.4vw, 4rem); max-width: 24ch; text-wrap: initial; }
.venue p{ margin-top:1.4rem; max-width: 52ch; font-size: clamp(1.04rem,1rem+.42vw,1.28rem); }
.venue .pensiero{ max-width: 68ch; margin-top:1.4rem;
  font-size: clamp(1.04rem,1rem+.42vw,1.28rem); line-height:1.62; text-wrap: pretty; }
.venue .pensiero-coda{ font-family:'Fraunces',Georgia,serif; font-weight:300; font-style:italic; color: var(--accent);
  max-width: 68ch; margin-top: clamp(.9rem,1.8vw,1.4rem); line-height:1.34; letter-spacing:-.004em;
  font-size: clamp(1.24rem,1rem+1vw,1.9rem); text-wrap: balance; }
.strip{ display:grid; grid-template-columns: repeat(3,1fr); gap:1px; background: var(--film); }
.strip figure{ margin:0; position:relative; background: var(--film); }
.strip .ph{ position:relative; overflow:clip; aspect-ratio: 4/3; }
.strip .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.strip figcaption{
  color: var(--film-muted); font-size:.9rem; line-height:1.5;
  padding: 1rem clamp(1rem,2vw,1.6rem) clamp(1.6rem,3vw,2.4rem);
}

/* ---------- area relax ---------- */
.relax{ background: var(--paper-2); padding: clamp(4.5rem,9vw,7.5rem) 0; }
.relax h2{ font-size: clamp(2rem, 4.8vw, 3.4rem); max-width: 12ch; }
.relax .txt{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(1.4rem,3vw,3.4rem); align-items:center; }
.relax .txt p{ font-family:'Fraunces',Georgia,serif; font-weight:300; color: var(--text);
  font-size: clamp(1.1rem,1rem+.6vw,1.45rem); line-height:1.46; letter-spacing:-.002em; max-width:46ch; text-wrap: pretty; }
.mosaic{ display:grid; align-items:start; grid-template-columns: 2.284fr 1fr; gap: clamp(.6rem,1.2vw,1rem); margin-top: clamp(2.2rem,4.5vw,3.4rem);
  width: calc(100% + clamp(0rem, 6vw, 7rem)); margin-left: calc(-1 * clamp(0rem, 3vw, 3.5rem)); }
.mosaic figure{ margin:0; }
.mosaic .ph{ position:relative; overflow:clip; border-radius: 4px; }
.mosaic .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  animation: none; transform: none; transition: transform .6s cubic-bezier(.2,.72,.2,1); }
.mosaic figure:hover .ph img, .mosaic figure:focus-within .ph img{ transform: scale(1.06); }

/* ---------- piccolo zoom passandoci sopra, su tutte le fotografie incorniciate ---------- */
.ph{ overflow: clip; }
.ph > img{ animation: none !important; transform: none;
  transition: transform .6s cubic-bezier(.2,.72,.2,1); will-change: auto; }
.ph:hover > img, .ph:focus-within > img{ transform: scale(1.06); }
@media (prefers-reduced-motion: reduce){
  .ph:hover > img, .ph:focus-within > img{ transform: none; }
}
.m-big{ grid-column: auto; }
.m-big .ph{ aspect-ratio: 4/3; }
.m-side{ grid-column: auto; display:grid; gap: clamp(.6rem,1.2vw,1rem); align-content:space-between; }
.m-side figure:first-child .ph{ aspect-ratio: 6/5; }
.m-side figure:first-child .ph img{ object-position: 0% 50%; }
.m-side figure:last-child .ph{ aspect-ratio: 6/5; }
.m-side figure:last-child .ph img{ object-position: 34% 50%; }
.jobs-intro{ max-width: none; margin: 0 0 clamp(2.4rem,4.8vw,3.4rem);
  font-family:'Fraunces',Georgia,serif; font-weight:300; color: var(--text);
  font-size: clamp(1.15rem,1rem+.72vw,1.6rem); line-height:1.44; letter-spacing:-.002em; text-wrap: pretty; }
.jobs-intro em{ font-style:italic; color: var(--accent-ink); }
.mosaic figcaption{ color: var(--muted); font-size:.86rem; padding-top:.6rem; line-height:1.45; }

/* ---------- sezioni con modulo ---------- */
.pitch{ position:relative; display:grid; align-items:center; padding: clamp(4.5rem,9vw,8rem) 0; min-height: 100svh; }
.split{ display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem,4.5vw,4.5rem); align-items:center; }
.pitch h2{ font-size: clamp(2rem, 4.8vw, 3.4rem); max-width: 15ch; }
.pitch .say{ margin-top:1.5rem; font-size: clamp(1.04rem,1rem+.42vw,1.26rem); max-width:48ch; }
.pitch .say + .say{ margin-top:.55rem; }
.pitch .find{
  margin-top:1.9rem; padding-top:1.6rem; border-top:1px solid var(--film-line);
  color: var(--film-muted); max-width:52ch; font-size:1rem;
}
.pitch .find b{ color: var(--film-text); font-weight:700; }

.card{
  background: var(--surface); color: var(--text); text-shadow:none;
  border:1px solid var(--line-soft); border-radius: 6px;
  padding: clamp(1.5rem, 3vw, 2.6rem); box-shadow: var(--shadow);
}
.card h3{ font-size:1.35rem; margin-bottom:1.3rem; }
.field{ margin-bottom:1rem; }
.field label{ display:block; font-size:.83rem; font-weight:700; letter-spacing:.04em; margin-bottom:.4rem; color: var(--muted); }
.field input, .field select, .field textarea{
  width:100%; font: inherit; font-size:.98rem; color: var(--text);
  background: var(--field-bg); border:1px solid var(--field-line);
  border-radius:4px; padding:.72rem .85rem;
}
.field textarea{ min-height: 6.2rem; resize: vertical; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible{
  outline:3px solid var(--focus); outline-offset:1px; border-color: var(--focus);
  box-shadow: 0 0 0 4px var(--focus-halo);
}
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.duo .field{ margin-bottom:1rem; }
fieldset{ border:1px solid var(--line); border-radius:4px; padding:.9rem 1rem 1rem; margin:0 0 1rem; }
legend{ font-size:.83rem; font-weight:700; letter-spacing:.04em; color: var(--muted); padding-inline:.35rem; }
.pick{ display:flex; align-items:flex-start; gap:.6rem; margin-top:.45rem; font-size:.96rem; }
.pick input{ margin-top:.28rem; accent-color: var(--accent); }
.consent{ display:flex; align-items:flex-start; gap:.6rem; font-size:.86rem; color: var(--muted); margin:.4rem 0 1.2rem; }
.consent input{ margin-top:.25rem; accent-color: var(--accent); }
.card .btn{ width:100%; }
.esca{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.allega{ margin: .9rem 0 0; }
.allega input[type="file"]{ width:100%; font: inherit; font-size:.92rem; color: var(--muted);
  background: var(--surface); border:1px dashed var(--line); border-radius:4px; padding:.7rem .8rem; }
.allega input[type="file"]::file-selector-button{ font: inherit; font-size:.86rem; font-weight:700;
  margin-right:.8rem; padding:.42rem .9rem; border:0; border-radius:3px; cursor:pointer;
  background: var(--accent-soft); color: var(--accent-ink); }
.allega input[type="file"]:hover::file-selector-button{ background: var(--accent-ink); color: var(--on-accent); }
.allega small{ display:block; margin-top:.45rem; font-size:.8rem; color: var(--muted); line-height:1.5; }
.after{ margin-top:1rem; font-size:.9rem; color: var(--muted); line-height:1.5; }

/* lavora con noi */
.jobs{ background: var(--paper); }
.jobs-band{ position:relative; min-height: 80svh; display:grid; align-items:end; }
.jobs-band > img{ object-position: 50% 64%; }
.jobs-band .layer{ padding: 5rem 0 clamp(2.2rem,4.5vw,3.4rem); }
.jobs-band h2{ font-size: clamp(2.2rem, 5.4vw, 4rem); max-width: 16ch; }
.jobs-body{ padding: clamp(3rem,6vw,5rem) 0 clamp(4rem,8vw,7rem); }
.paths{ display:grid; grid-template-columns:1fr 1fr; gap: clamp(1.4rem,3vw,2.6rem); }
.path{ background: var(--surface); border:1px solid var(--line-soft); border-radius:6px; padding: clamp(1.5rem,3vw,2.4rem); box-shadow: var(--shadow-soft); }
.path h3{ font-size:1.42rem; margin-bottom:.9rem; }
.path p{ color: var(--muted); }
.apply{ display:block; margin-top: clamp(1.6rem,3vw,2.4rem); }
.jobs-quote{ font-family:'Fraunces',Georgia,serif; font-weight:300; text-align:center; text-wrap:balance;
  font-size: clamp(1.3rem,1.02rem+1.15vw,2.1rem); line-height:1.34; max-width: 54ch;
  margin: clamp(2.6rem,5vw,4rem) auto clamp(1.4rem,2.8vw,2.2rem);
  padding: clamp(1.6rem,3vw,2.4rem) 0 0; position:relative; }
.jobs-quote::before{ content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width: clamp(3rem,8vw,5.5rem); height:2px; background: var(--accent-ink); opacity:.85; }
.card-wide{ padding: clamp(1.6rem,3.2vw,2.6rem) clamp(1.6rem,3.2vw,2.8rem) clamp(1.4rem,2.6vw,2.2rem); }
.card-wide .tri{ display:grid; grid-template-columns: repeat(3,1fr); gap:1rem; }
.card-wide .duo-wide{ display:grid; grid-template-columns: minmax(15rem,1fr) 2fr; gap: clamp(1rem,2vw,1.6rem); align-items:start; }
.card-wide .duo-wide fieldset{ margin:0; }
.card-wide .field-note{ margin-bottom:0; display:grid; }
.card-wide .field-note textarea{ min-height: 8.6rem; }
.card-wide .send{ display:flex; align-items:center; justify-content:space-between; gap: clamp(1rem,2.4vw,2.2rem); flex-wrap:wrap; margin-top: clamp(1rem,2vw,1.5rem); }
.card-wide .send .consent{ margin:0; flex:1 1 24rem; }
.card-wide .btn{ width:auto; flex:0 0 auto; white-space:nowrap; }
.closing{ font-family:'Fraunces',Georgia,serif; font-weight:300; font-size: clamp(1.1rem,1rem+.55vw,1.5rem); line-height:1.4; max-width:42ch; margin: clamp(1.8rem,3.4vw,2.8rem) auto 0; text-align:center; color: var(--muted); text-wrap:balance; }

/* ---------- contatti ---------- */
.contact{ position:relative; min-height: 92svh; display:grid; align-items:center; padding: clamp(4.5rem,9vw,7.5rem) 0; }
.contact h2{ font-size: clamp(2.2rem,5.4vw,4rem); }
.contact .say{ margin-top:1.3rem; max-width:48ch; font-size: clamp(1.04rem,1rem+.42vw,1.26rem); }
.details{ display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:1px; background: var(--film-line); border:1px solid var(--film-line); margin-top: clamp(2.2rem,4.5vw,3.4rem); }
.det{ background: var(--film-panel); backdrop-filter: blur(10px); padding: clamp(1.3rem,2.4vw,1.9rem); }
.det small{ display:block; font-size:.72rem; letter-spacing:.19em; text-transform:uppercase; color: var(--film-muted); margin-bottom:.55rem; }
.det a, .det p{ font-size:1.1rem; font-weight:600; text-decoration:none; line-height:1.4; word-break:break-word; }
.det a:hover{ text-decoration:underline; }
.det .big{ font-family:'Fraunces',Georgia,serif; font-size: clamp(1.6rem,3vw,2.3rem); font-weight:400; font-variant-numeric: tabular-nums; }

/* ---------- pie' di pagina ---------- */
.foot{ background: var(--film-2); color: var(--film-text); padding: clamp(3rem,6vw,4.5rem) 0 2.6rem; }
.foot-top{ display:flex; flex-wrap:wrap; gap:1.6rem 3rem; align-items:flex-start; justify-content:space-between; }
.foot .brand span{ color: var(--film-text); }
.foot p{ color: var(--film-muted); max-width:44ch; margin-top:1rem; }
.foot nav{ display:flex; flex-wrap:wrap; gap:.9rem 1.6rem; }
.foot nav a{ color: var(--film-muted); text-decoration:none; font-size:.94rem; }
.foot nav a:hover{ color: var(--film-text); }
.foot-btm{ margin-top: clamp(2rem,4vw,3rem); padding-top:1.4rem; border-top:1px solid var(--film-line); color: var(--film-muted); font-size:.86rem; }

/* ---------- adattamenti ---------- */
@media (max-width: 1020px){
  .nav, .head-call{ display:none; }
  .burger{ display:inline-flex; }
  .area{ grid-template-columns: 1fr; }
  .area .ph{ min-height:0; aspect-ratio: 4/3; }
  .steps{ grid-template-columns: repeat(2,1fr); }
  .step:last-child{ grid-column: 1 / -1; }
  .step{ padding: clamp(1.4rem,2.2vw,2.1rem); }
  .step b{ font-size:2.4rem; }
  .step h3{ font-size:1.14rem; }
  .step p{ font-size:.95rem; }
  .split{ grid-template-columns: 1fr; }
  .paths{ grid-template-columns: 1fr; }
  .card-wide .tri, .card-wide .duo-wide{ grid-template-columns: 1fr; }
  .card-wide .btn{ width:100%; }
  .relax .txt{ grid-template-columns: 1fr; }
  .mosaic{ grid-template-columns: 1fr; }
  .m-big, .m-side{ grid-column: auto; }
  .m-side{ grid-template-columns: 1fr 1fr; }
  .m-side figure:first-child .ph{ aspect-ratio: 6/5; }
.m-side figure:first-child .ph img{ object-position: 0% 50%; }
.m-side figure:last-child .ph{ aspect-ratio: 6/5; }
.m-side figure:last-child .ph img{ object-position: 34% 50%; }
  /* in colonna singola il velo laterale diventa verticale,
     cosi' il testo resta leggibile su tutta la larghezza */
  .veil-side{
    background: linear-gradient(to bottom, var(--scrim-deep) 0%, var(--scrim-base) 100%);
  }
}
@media (max-width: 720px){
  :root{ --hh: 3.9rem; }
  .brand img{ width:40px; height:40px; }
  .brand .marchio{ height:40px; }
  .figures .grid{ grid-template-columns: 1fr 1fr; gap: 1.8rem 0; }
  .fig{ padding-inline: 1rem; }
  .fig:nth-child(odd){ border-left:0; padding-left:0; }
  .steps{ grid-template-columns: 1fr; }
  .strip{ grid-template-columns: 1fr; }
  .details{ grid-template-columns: 1fr; }
  .duo{ grid-template-columns: 1fr; }
  .m-side{ grid-template-columns: 1fr; }
  .hero .layer{ padding-top: 4rem; }
  .actions .btn{ flex:1 1 100%; }
}

/* ---------- meno movimento ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .par > img{ transform: none !important; }
  .rise{ opacity:1 !important; transform:none !important; }
  .btn:hover{ transform:none; }
}
/* ---------- pagine legali (privacy, cookie) ---------- */
.legale{ padding: calc(var(--hh) + clamp(3rem,6vw,5rem)) 0 clamp(4rem,8vw,7rem); background: var(--paper); min-height: 70svh; }
.legale h1{ font-size: clamp(2rem, 4.8vw, 3.4rem); max-width: 22ch; }
.legale p{ margin-top: 1.6rem; max-width: 62ch; font-size: clamp(1.04rem,1rem+.42vw,1.2rem); color: var(--muted); line-height:1.7; }
.legale .nota{ border-left: 3px solid var(--accent-ink); padding-left: 1.2rem; }