/* Caratteri salvati nel sito (fonts/), senza collegamento a Google */
@font-face{font-family:'Gentium Book Plus';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gentium-book-plus-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Gentium Book Plus';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/gentium-book-plus-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Gentium Book Plus';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/gentium-book-plus-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/montserrat-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/montserrat-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/montserrat-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/playfair-display-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/playfair-display-latin-500-normal.woff2) format('woff2')}
:root{
  --ink:#2c3b40; --muted:#5d6e72; --teal:#0c475b; --accent:#2b7c8c;
  --soft:#f3f6f5; --line:#d9e3e4; --deep:#0a3442;
  --serif:"Gentium Book Plus","Gentium Basic",Georgia,serif;
  --display:"Playfair Display",Georgia,serif;
  --sans:Montserrat,"Helvetica Neue",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--serif);font-size:19px;line-height:1.65;color:var(--ink);background:#fff}
img{max-width:100%;display:block}
a{color:var(--accent)}
h1,h2,h3{font-family:var(--display);font-weight:400;color:var(--teal);line-height:1.2;margin:0 0 .6em}
h1{font-size:clamp(2rem,4.5vw,3rem)}
h2{font-size:clamp(1.55rem,3vw,2.1rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
strong{font-weight:700;color:var(--teal)}

.banner{background:#fff6dc;color:#6b5517;font-family:var(--sans);font-size:12px;text-align:center;padding:6px 12px}

/* testata */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(18px,4vw,48px);gap:20px}
.brand{text-decoration:none;display:flex;flex-direction:column}
.brand__name{font-family:var(--display);text-transform:uppercase;letter-spacing:.22em;color:var(--teal);font-size:1.15rem}
.brand__sub{font-family:var(--sans);text-transform:uppercase;letter-spacing:.2em;font-size:10.5px;color:var(--accent);margin-top:3px}
.nav{display:flex;gap:26px}
.nav a{font-family:var(--sans);font-size:13px;letter-spacing:.06em;color:var(--ink);text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a.active{color:var(--teal);border-bottom-color:var(--accent)}
.menu{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;position:relative}
.menu span,.menu span::before,.menu span::after{position:absolute;left:12px;width:16px;height:1.5px;background:var(--teal);content:""}
.menu span{top:20px}.menu span::before{top:-5px;left:0}.menu span::after{top:5px;left:0}
@media (max-width:900px){
  .menu{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;gap:0;border-bottom:1px solid var(--line)}
  .nav a{padding:14px 24px;border-bottom:1px solid var(--soft)}
  body.nav-open .nav{display:flex}
}

/* elementi comuni */
.wrap{max-width:1100px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}
.narrow{max-width:760px}
.center{text-align:center}
.section{padding:clamp(56px,8vw,96px) 0}
.soft{background:var(--soft)}
.label{font-family:var(--sans);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);
  display:flex;align-items:center;gap:14px;margin-bottom:14px}
.label::before{content:"";width:28px;height:1px;background:var(--accent)}
.center .label,.hero .label,.pagehead .label{justify-content:center}
.center .label::after,.hero .label::after,.pagehead .label::after{content:"";width:28px;height:1px;background:var(--accent)}
.note{font-style:italic;color:var(--muted)}
.small{font-size:.9rem;color:var(--muted)}
.btn{display:inline-block;font-family:var(--sans);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  background:var(--teal);color:#fff;text-decoration:none;padding:15px 30px;border:0;border-radius:2px;cursor:pointer}
.btn:hover{background:var(--deep)}
.btn--light{background:#fff;color:var(--teal)}
.btn--light:hover{background:var(--soft)}
.link{font-family:var(--sans);font-size:13px;letter-spacing:.08em;color:var(--teal);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px}
.links{display:flex;gap:28px;justify-content:center;margin-top:24px}
.end{text-align:center;margin-top:56px}
ul.dots{list-style:none;padding:0;margin:0 0 1.4em}
ul.dots li{position:relative;padding-left:26px;margin-bottom:.7em}
ul.dots li::before{content:"";position:absolute;left:4px;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.7}
.box{background:var(--soft);border-left:2px solid var(--accent);padding:18px 22px;font-style:italic}
.soft .box{background:#fff}
.box--line{font-style:normal;font-size:.95rem}

/* segnaposto foto */
.ph{background:linear-gradient(160deg,#dfe9e8,#c3d6da);display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--teal);font-family:var(--sans);font-size:13px;letter-spacing:.04em;padding:20px}
.ph small{opacity:.7}
.phnote{font-family:var(--sans);font-size:12.5px;color:var(--muted);border:1px dashed var(--line);padding:16px;border-radius:4px}

/* apertura home */
.hero{position:relative}
.hero__img{width:100%;height:min(78vh,720px);object-fit:cover}
.hero__card{position:relative;max-width:760px;margin:-90px auto 0;background:#fff;text-align:center;
  padding:44px clamp(22px,5vw,64px) 48px}
.hero__lead{font-size:1.15rem;color:var(--muted)}
.hero__actions{display:flex;gap:28px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:28px}

/* apertura pagine interne */
.pagehead{position:relative}
.pagehead__img{width:100%;height:min(46vh,420px);object-fit:cover}
.pagehead__card{max-width:640px;margin:-80px auto 0;background:#fff;position:relative;text-align:center;padding:34px 24px 10px}

/* home: tre passi */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:44px 0}
.num{font-family:var(--display);font-size:2.4rem;color:var(--accent);opacity:.55;display:block;margin-bottom:8px}
.steps p{font-size:1rem}

/* citazione */
.quote{background:var(--deep) center/cover no-repeat;position:relative;padding:clamp(90px,14vw,170px) 24px;text-align:center}
.quote::before{content:"";position:absolute;inset:0;background:rgba(10,52,66,.55)}
.quote blockquote{position:relative;max-width:780px;margin:0 auto;font-family:var(--display);font-style:italic;
  font-size:clamp(1.4rem,3vw,2.1rem);line-height:1.4;color:#fff}
.quote .phnote{position:relative;color:#c3d6da;border-color:rgba(255,255,255,.25);max-width:360px;margin:28px auto 0}

/* due colonne */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(32px,6vw,80px);align-items:start}
.side-img{width:100%;aspect-ratio:3/4;object-fit:cover;margin-top:28px}
.prose h2{margin-top:1.6em}
.prose > h2:first-child{margin-top:0}
.intro{font-size:1.25rem;color:var(--teal)}

/* chi sono */
.portrait{margin:0;max-width:340px}
.portrait__img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%}
.portrait figcaption{font-family:var(--sans);font-size:12px;letter-spacing:.04em;color:var(--muted);margin-top:12px}
.training{list-style:none;padding:0;margin:0 0 1.4em}
.training li{padding:14px 0;border-bottom:1px solid var(--line)}
.training strong{display:block;font-weight:400;font-family:var(--display);font-size:1.12rem}
.training span{font-size:.92rem;color:var(--muted)}

/* online */
ol.numbered{padding-left:1.3em;margin:0 0 1.6em}
ol.numbered li{margin-bottom:.6em;padding-left:6px}
ol.numbered li::marker{font-family:var(--display);color:var(--accent)}
.box + .box{margin-top:16px}

/* contatti */
.contacts{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;margin-top:28px}
.contacts dt{font-family:var(--sans);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding-top:5px}
.contacts dd{margin:0}
.form{background:var(--soft);padding:clamp(24px,4vw,40px)}
.form label{display:block;font-family:var(--sans);font-size:13px;color:var(--ink);margin-bottom:16px}
.form input:not([type=radio]):not([type=checkbox]),.form textarea{display:block;width:100%;margin-top:6px;padding:12px;
  border:1px solid var(--line);background:#fff;font:inherit;font-family:var(--serif);font-size:17px;color:var(--ink)}
.form fieldset{border:0;padding:0;margin:0 0 16px}
.form legend{font-family:var(--sans);font-size:13px;margin-bottom:8px}
.form .inline{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.form .consent{font-size:12.5px;line-height:1.5;margin:18px 0 22px}
.hint{font-size:.9rem;font-style:italic;color:var(--muted)}
.form__msg{font-family:var(--sans);font-size:13px;color:var(--teal);margin-top:16px}
.faq details{border-bottom:1px solid var(--line);padding:16px 0}
.faq summary{cursor:pointer;font-family:var(--display);font-size:1.15rem;color:var(--teal);list-style:none;position:relative;padding-right:30px}
.faq summary::after{content:"+";position:absolute;right:4px;top:-2px;color:var(--accent);font-size:1.4rem}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:12px 0 4px}

/* invito finale */
.cta{background:var(--teal);color:#e6f1f3}
.cta h2{color:#fff}

/* footer */
.foot{background:var(--deep);color:#c3d6da;padding:64px 0 28px;font-size:.95rem}
.foot a{color:#e6f1f3;text-decoration:none;display:block;margin-bottom:6px}
.foot a:hover{text-decoration:underline}
.foot .brand__name{color:#fff;margin-bottom:10px}
.foot__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.foot__h{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8fb0b7;margin-bottom:12px}
.foot__legal{border-top:1px solid rgba(255,255,255,.12);margin-top:44px;padding-top:22px;font-family:var(--sans);font-size:11.5px;line-height:1.7;color:#8fb0b7}
.foot__legal a{display:inline;color:#c3d6da}

@media (max-width:820px){
  body{font-size:18px}
  .steps,.split,.foot__grid{grid-template-columns:1fr}
  .steps{gap:28px}
  .hero__img{height:62vh}
  .hero__card{margin:-90px 16px 0}
  .pagehead__card{margin:-60px 16px 0}
  .side-img{max-width:360px}
}

/* ===== modifiche dal documento "Modifiche da fare" ===== */
/* apertura home: foto intera, testo scuro sul cielo a destra */
.hero{position:relative}
.hero__img{height:min(82vh,760px)}
.hero__text{position:absolute;top:clamp(36px,7vh,80px);right:clamp(24px,5vw,72px);max-width:540px;text-align:right}
.hero__label{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#2f6b78;margin-bottom:14px}
.hero__text h1{color:#0e3b4a;font-size:clamp(2.2rem,4.6vw,3.4rem)}
.hero__lead{color:#0e3b4a;font-size:1.15rem}
.hero__actions{justify-content:flex-end}
.hero__card{display:none}

/* cornice delle pagine interne */
.frame-wrap{padding:clamp(28px,4vw,48px) clamp(20px,5vw,48px);max-width:1196px;margin:0 auto}
.frame{display:flex;border:1px solid #b8c6c7;padding:14px;height:236px;background:#fff}
.frame__photo{flex:0 0 44%;height:100%}
.frame__img{width:100%;height:100%;object-fit:cover}
.frame__text{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(24px,4vw,56px)}
.frame__label{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#2f6b78;display:flex;align-items:center;gap:12px;margin-bottom:10px}
.frame__label::before{content:"";width:26px;height:2px;background:#c49a5a}
.frame h1{font-size:54px;color:#0e3b4a;margin:0}
.frame-wrap + .section:not(.soft){padding-top:clamp(20px,3vw,32px)}

/* citazione su fondo bianco, tra due linee dorate */
.quote{background:#fff;padding:clamp(56px,8vw,96px) 24px}
.quote::before{display:none}
.quote blockquote{color:#0e3b4a}
.quote blockquote::before,.quote blockquote::after{content:"";display:block;width:44px;height:2px;background:#c49a5a;margin:0 auto 30px}
.quote blockquote::after{margin:30px auto 0}

/* ritratto piccolo */
.portrait{max-width:50%}
h2.big{font-size:clamp(1.9rem,4vw,2.7rem)}

@media (max-width:820px){
  .hero__img{height:46vh}
  .hero__text{position:static;max-width:none;text-align:center;padding:32px 22px 8px}
  .hero__actions{justify-content:center}
  .frame{flex-direction:column;height:auto}
  .frame__photo{height:170px;flex:none}
  .frame__text{padding:22px 8px 10px}
  .frame h1{font-size:40px}
  .portrait{max-width:60%}
}

/* ===== revisione home (1 novembre) ===== */
.section{padding:clamp(40px,5.5vw,64px) 0}
.hero__img{height:min(68vh,620px)}
.hero__label{font-size:14px;font-weight:600;letter-spacing:.2em;color:#0e3b4a}
.btn--outline{background:transparent;color:var(--teal);border:1px solid var(--teal);padding:14px 22px}
.btn--outline:hover{background:rgba(255,255,255,.6);color:var(--teal)}
.hero__actions{gap:14px}
.duo{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.duo ul.dots{margin-bottom:1em}
.q{margin:0;font-family:var(--display);font-style:italic;font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.45;color:#0e3b4a;text-align:center}
.q::before,.q::after{content:"";display:block;width:44px;height:2px;background:#c49a5a;margin:0 auto 26px}
.q::after{margin:26px auto 0}
@media (max-width:820px){
  .duo{grid-template-columns:1fr}
  .hero__img{height:42vh}
  .hero__actions .btn{padding:13px 18px}
}
.hero .btn--outline{background:rgba(255,255,255,.88)}
.hero .btn--outline:hover{background:#fff}
.hero__text{top:clamp(28px,5vh,56px)}

/* aree e cornice "Chi sono" in home */
.areas{display:grid;grid-template-columns:1fr 1fr;gap:26px 36px;margin:8px 0 26px}
.areas h3{font-size:1.15rem;margin:0 0 8px;padding-top:14px;border-top:2px solid #c49a5a;display:inline-block;padding-right:6px}
.areas p{font-size:.97rem;margin:0;color:var(--ink)}
.boxed{border:1px solid #b8c6c7;padding:clamp(28px,4vw,48px)}
.boxed.split{align-items:start}
.boxed .label{margin-top:4px}
.boxed h2{margin-bottom:0}
@media (max-width:820px){.areas{grid-template-columns:1fr}}
.areas h3{border-top:0;display:block;padding-top:0}
.areas h3::before{content:"";display:block;width:40px;height:2px;background:#c49a5a;margin-bottom:12px}
.label{align-items:flex-start}
.label::before,.label::after{flex:none;margin-top:.62em}
.label span{line-height:1.5}
.split .label{letter-spacing:.18em}

/* righe: titolo a sinistra, testo a destra */
.lead-block{max-width:760px;margin:0 auto 36px;text-align:center}
.lead-block .label{justify-content:center}
.lead-block .label::after{content:"";width:28px;height:1px;background:var(--accent);flex:none;margin-top:.62em}
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:clamp(24px,5vw,72px);padding:clamp(28px,4vw,44px) 0;border-bottom:1px solid var(--line)}
.row > h2{font-size:clamp(1.35rem,2.4vw,1.75rem);margin:0}
.row > h2::before{content:"";display:block;width:40px;height:2px;background:#c49a5a;margin-bottom:14px}
.row p:last-child,.row ul:last-child{margin-bottom:0}
@media (max-width:820px){.row{grid-template-columns:1fr;gap:14px}}
.actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.band .steps{margin:30px 0 0}
.steps--short p{font-size:1rem;color:var(--muted)}
.row h2.plain{font-size:clamp(1.35rem,2.4vw,1.75rem);margin:0}
.row .side-img{max-width:260px;margin-top:22px}
.areas + .note{margin-top:40px;font-size:1.12rem;color:var(--teal)}
.areas + .note{border-top:1px solid var(--line);padding-top:24px;margin-top:44px}
.row .portrait{max-width:200px;margin-top:26px}
.training li:first-child{padding-top:0}
.row > div > h2:first-child{font-size:clamp(1.35rem,2.4vw,1.75rem);margin:0}
.row > div > h2:first-child::before{content:"";display:block;width:40px;height:2px;background:#c49a5a;margin-bottom:14px}
.fineprint{font-size:.9rem;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:26px}
.row .numbered:last-child{margin-bottom:0}
.boxed h2{margin-bottom:.6em}.boxed .faq details:last-child{border-bottom:0}
.boxed .faq details:first-child{padding-top:4px}
.strip-img{width:100%;height:clamp(200px,28vw,340px);object-fit:cover;object-position:center 60%;margin:clamp(28px,4vw,44px) 0;display:block}
.rows .strip-img + .row{border-top:1px solid var(--line)}
.areas--3{grid-template-columns:repeat(3,1fr);gap:34px 44px}
.areas__quote{display:flex;align-items:center;justify-content:center;background:var(--soft);padding:26px 22px}
.q--small{font-size:1.2rem;line-height:1.45}
.q--small::before{margin-bottom:16px}.q--small::after{margin-top:16px}
.areas--3 + .note{border-top:1px solid var(--line);padding-top:24px;margin-top:40px;font-size:1.12rem;color:var(--teal)}
@media (max-width:980px){.areas--3{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.areas--3{grid-template-columns:1fr}}
.areas--3 + .note{text-align:center}

@media (max-width:600px){.hero__label{font-size:10.5px;letter-spacing:.16em}}

/* riquadro Chi sono in home */
.boxed.split.home-about{align-items:center;padding:clamp(32px,5vw,64px) clamp(28px,6vw,80px)}
.home-about h2{font-size:clamp(1.6rem,2.4vw,2rem)}
.boxed.split.home-about p:not(.label){font-size:1.22rem;line-height:1.7;margin-bottom:26px}
@media (min-width:821px){.boxed.split.home-about{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* righe dei paragrafi centrati distribuite in modo equilibrato */
.center p{text-wrap:balance}
