/* ------------------------------------------------------------------
   Gheos Srl — foglio di stile
   Direzione "Galleria": editoriale, chiara, il materiale al centro.
   Vincolo di progetto: le foto d'archivio sono piccole (molte 320px).
   Non si ingrandiscono mai: si mostrano alla loro misura, come tavole.
------------------------------------------------------------------ */

:root{
  --ink:#171514;
  --mute:#79726C;
  --line:#DDD8D2;
  --bg:#FFFFFF;
  --wash:#F7F5F3;
  --orange:#D9700F;
  --orange-dark:#A5540A;   /* usato per il testo link: contrasto AA su bianco */
  /* 1140 non è un numero a caso: tolti i 40+40 di padding restano 1060.
     320 (colonna testo) + 70 (gap) lasciano 670 alla galleria, che a 2 colonne
     con 30 di gap fa esattamente 320 — la larghezza reale delle foto d'archivio.
     Così nessuna immagine viene mai ingrandita. */
  --maxw:1140px;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:300 18px/1.7 Karla,system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
}

img{display:block;max-width:100%;height:auto}

a{color:inherit}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:2px}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}

.skip{
  position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;
  padding:12px 18px;z-index:200;
}
.skip:focus{left:8px;top:8px}

/* ---------- marchio ---------- */

.logo{display:flex;align-items:center;gap:14px;text-decoration:none}
.logo .box{
  background:var(--orange);
  color:#fff;
  font:700 italic 26px/1 Nunito,system-ui,sans-serif;
  letter-spacing:-.01em;
  padding:7px 16px 9px;
  display:block;
}
.logo .payoff{
  font:400 10px/1 Karla;letter-spacing:.38em;text-transform:uppercase;
  color:var(--mute);white-space:nowrap;
}

/* ---------- testata ---------- */

header.site{border-bottom:1px solid var(--line);background:var(--bg)}
header.site .wrap{
  display:flex;justify-content:space-between;align-items:center;
  gap:24px;padding-top:22px;padding-bottom:22px;
}
header.site nav{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
header.site nav a{
  font:400 15px/1 Karla;letter-spacing:.02em;text-decoration:none;
  padding-bottom:5px;border-bottom:1px solid transparent;
}
header.site nav a:hover{border-color:var(--orange)}
header.site nav a.tel{
  font-weight:500;border:1px solid var(--line);border-radius:2px;
  padding:11px 16px;white-space:nowrap;
}
header.site nav a.tel:hover{border-color:var(--orange);color:var(--orange-dark)}

/* ---------- tipografia comune ---------- */

.eyebrow{
  font:500 11px/1 Karla;letter-spacing:.3em;text-transform:uppercase;
  color:var(--orange-dark);margin:0 0 24px;
}
h1{
  font:300 clamp(40px,6.2vw,86px)/1.03 Fraunces,Georgia,serif;
  letter-spacing:-.028em;margin:0;max-width:17ch;text-wrap:balance;
}
h1 em,h2 em{font-style:italic;color:var(--orange)}
h2{
  font:300 clamp(30px,4vw,52px)/1.07 Fraunces,Georgia,serif;
  letter-spacing:-.025em;margin:0 0 18px;text-wrap:balance;
}
h3{
  font:400 clamp(22px,2.4vw,29px)/1.15 Fraunces,Georgia,serif;
  letter-spacing:-.02em;margin:0 0 12px;
}
p{margin:0 0 18px}
p:last-child{margin-bottom:0}
.lead{font-size:20px;color:var(--mute)}

section{padding:104px 0}
section + section{border-top:1px solid var(--line)}

/* ---------- hero ---------- */

.hero{padding:76px 0 96px}
.hero .intro{
  display:grid;grid-template-columns:1fr minmax(0,430px);gap:60px;
  align-items:start;margin-top:40px;padding-bottom:36px;border-bottom:1px solid var(--line);
}
.hero .intro p{margin:0;color:var(--mute)}

.stage{margin:56px 0 0;max-width:770px}   /* misura reale della foto: non si ingrandisce */
.stage img{width:100%}
.stage figcaption{
  margin-top:14px;font-size:14px;color:var(--mute);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
}

/* ---------- blocco sezione: testo a sinistra, tavole a destra ---------- */

.split{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:70px;align-items:start}
.split > .txt p{color:var(--mute)}

.index{margin:32px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.index li{
  padding:14px 0;border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;gap:20px;
  font-size:17px;font-weight:400;
}
.index li span{color:var(--mute);font-size:14px;text-align:right}

/* ---------- tavole fotografiche ---------- */

.group{margin-bottom:64px}
.group:last-child{margin-bottom:0}
.group > h3{margin-bottom:10px}
.group > p{color:var(--mute);max-width:60ch;margin-bottom:26px;font-size:17px}

/* Colonne CSS invece di una griglia: le foto hanno proporzioni molto diverse
   fra loro e una griglia lascerebbe buchi sotto quelle più basse. */
.plates{columns:2;column-gap:30px}
.plates figure{margin:0 0 30px;break-inside:avoid}
.plates figure:last-child{margin-bottom:0}
.plates img{width:100%}
.plates figcaption{
  margin-top:11px;padding-top:9px;border-top:1px solid var(--line);
  font-size:13.5px;line-height:1.5;color:var(--mute);
}
.plates figcaption b{
  display:block;font:500 13.5px/1.5 Karla;color:var(--ink);
}

/* ---------- citazione ---------- */

.pull{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:78px 0;text-align:center;
}
.pull p{
  font:300 italic clamp(26px,3.6vw,44px)/1.24 Fraunces,Georgia,serif;
  letter-spacing:-.02em;margin:0 auto;max-width:22ch;
}

/* ---------- processo (sequenza vera: 01 → 04) ---------- */

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;margin-top:8px}
.steps div{border-top:2px solid var(--orange);padding-top:18px}
.steps dt{
  font:500 12px/1 Karla;letter-spacing:.2em;color:var(--orange-dark);
  margin-bottom:14px;
}
.steps dd{margin:0}
.steps h3{font-size:22px;margin-bottom:8px}
.steps p{color:var(--mute);font-size:16px}

/* ---------- contatti ---------- */

#contatti{background:var(--wash);border-top:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.contact-grid dl{
  margin:0;display:grid;grid-template-columns:1fr 1fr;gap:28px 34px;
}
.contact-grid dt{
  font:500 11px/1 Karla;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);
}
.contact-grid dd{margin:9px 0 0;font-size:18px;font-weight:400}
.contact-grid dd a{color:var(--orange-dark);text-decoration:none;border-bottom:1px solid var(--line)}
.contact-grid dd a:hover{border-color:var(--orange)}
.contact-grid .note{margin-top:30px;font-size:15px;color:var(--mute)}

/* ---------- piè di pagina ---------- */

footer.site{
  background:var(--ink);color:#CFC9C3;padding:56px 0 60px;
  font-size:15px;line-height:1.65;
}
footer.site a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
footer.site a:hover{border-color:var(--orange)}
footer.site .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;align-items:start}
footer.site .name{color:#fff;font:400 20px/1.3 Fraunces,Georgia,serif;margin-bottom:10px}
footer.site h4{
  font:500 11px/1 Karla;letter-spacing:.24em;text-transform:uppercase;
  color:#8D8781;margin:0 0 14px;
}
footer.site ul{margin:0;padding:0;list-style:none}
footer.site li{margin-bottom:8px}
footer.site .legal{
  margin-top:44px;padding-top:26px;border-top:1px solid #2E2B29;
  font-size:13px;line-height:1.6;color:#8D8781;
}

/* ---------- pagina condizioni ---------- */

.page-head{padding:64px 0 44px;border-bottom:1px solid var(--line)}
.page-head .back{
  display:inline-block;margin-bottom:26px;font-size:15px;
  color:var(--orange-dark);text-decoration:none;
}
.page-head .back:hover{text-decoration:underline}
.terms{padding:64px 0 96px}
.terms .doc{max-width:74ch}
.terms .doc + .doc{margin-top:76px;padding-top:56px;border-top:1px solid var(--line)}
.terms h2{font-size:clamp(26px,3vw,36px);margin-bottom:6px}
.terms .doc > .eyebrow{margin-bottom:10px}
.terms ol{margin:28px 0 0;padding:0;list-style:none;counter-reset:t}
.terms ol li{
  counter-increment:t;position:relative;padding:0 0 26px 46px;
  font-size:16.5px;line-height:1.7;color:#3A3633;
}
.terms ol li::before{
  content:counter(t,decimal-leading-zero);
  position:absolute;left:0;top:3px;
  font:500 12px/1 Karla;letter-spacing:.1em;color:var(--orange-dark);
}
.terms ol li b{font-weight:600;color:var(--ink)}
.terms .privacy{
  margin-top:52px;padding:30px 32px;background:var(--wash);
  border-left:2px solid var(--orange);font-size:15.5px;line-height:1.7;color:#3A3633;
}

/* ---------- responsive ---------- */

@media (max-width:1000px){
  .split{grid-template-columns:1fr;gap:40px}
  .steps{grid-template-columns:repeat(2,1fr);gap:28px}
}

@media (max-width:760px){
  body{font-size:17px}
  .wrap{padding:0 22px}
  section{padding:64px 0}
  .hero{padding:48px 0 64px}
  header.site .wrap{flex-wrap:wrap;gap:18px;padding-top:18px;padding-bottom:18px}
  header.site nav{gap:20px;width:100%;justify-content:space-between}
  header.site nav a.tel{padding:10px 14px;font-size:14px}
  .logo .box{font-size:23px;padding:6px 13px 8px}
  .logo .payoff{letter-spacing:.3em;font-size:9px}
  .hero .intro{grid-template-columns:1fr;gap:22px}
  .stage{margin-top:36px}
  .plates{columns:1}
  .plates figure{margin-bottom:26px}
  .group{margin-bottom:48px}
  .pull{padding:56px 0}
  .steps{grid-template-columns:1fr;gap:24px}
  .contact-grid{grid-template-columns:1fr;gap:34px}
  .contact-grid dl{grid-template-columns:1fr;gap:22px}
  footer.site .cols{grid-template-columns:1fr;gap:34px}
  .terms .doc + .doc{margin-top:52px;padding-top:40px}
  .terms ol li{padding-left:38px}
}
