
:root{--paper:#f7f4ee;--white:#fff;--ink:#20201e;--muted:#6e6b64;--gold:#b88a4a;--line:#ded8cd;--max:1220px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
header{position:relative;max-width:var(--max);margin:auto;padding:25px 30px;display:flex;align-items:center;justify-content:space-between;background:rgba(247,244,238,.95)}.brand strong{display:block;font:500 1.4rem Georgia,serif;letter-spacing:.04em}.brand span,.eyebrow,.kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
nav{display:flex;gap:30px;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.menu{display:none}
.hero{min-height:650px;display:grid;grid-template-columns:minmax(360px,.75fr) 1.25fr;background:var(--white)}.hero-copy{padding:80px max(30px,calc((100vw - var(--max))/2 + 30px));padding-right:55px;align-self:center}.hero h1{font:500 clamp(3.4rem,6vw,6.5rem)/.95 Georgia,serif;margin:.15em 0 .3em;letter-spacing:-.045em}.hero h2{font:400 clamp(1.8rem,3vw,3rem)/1.15 Georgia,serif;margin:25px 0 20px}.rule{width:55px;border-top:2px solid var(--gold);margin:22px 0}.hero-image{background:url('../images/hero.jpg') center/cover no-repeat;min-height:650px}
.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{padding:13px 20px;border:1px solid var(--gold);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em}.btn.primary{background:#936e3b;border-color:#936e3b;color:#fff}
.section{max-width:var(--max);margin:auto;padding:95px 30px}.section h2{font:400 clamp(2.3rem,4vw,4.4rem)/1.05 Georgia,serif;margin:.2em 0 .4em}.lead{font-size:1.08rem;color:var(--muted);max-width:720px}.two{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.feature-img{width:100%;height:520px;object-fit:cover}.credentials{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:30px}.credential{border-top:1px solid var(--line);padding-top:14px}.credential strong{display:block;font:500 1.05rem Georgia,serif}.credential span{font-size:.86rem;color:var(--muted)}
.photo-band{background:#22211f;color:#f8f5ef}.photo-band .section{padding-top:85px;padding-bottom:85px}.photo-band .lead{color:#c9c4bb}.photo-feature{display:grid;grid-template-columns:1.2fr .8fr;gap:55px;align-items:center}.photo-feature img{height:540px;width:100%;object-fit:cover}
.quote{text-align:center;padding:80px 30px;background:#eee8de}.quote p{max-width:850px;margin:auto;font:400 clamp(1.8rem,3vw,3rem)/1.35 Georgia,serif}
.pagehead{max-width:var(--max);margin:auto;padding:85px 30px 55px}.pagehead h1{font:500 clamp(3rem,6vw,6rem)/1 Georgia,serif;margin:.15em 0}.content{max-width:900px;margin:auto;padding:20px 30px 100px}.content h2{font:400 2rem Georgia,serif;margin-top:2em}.pubs li{margin-bottom:16px}
.gallery{max-width:var(--max);margin:auto;padding:20px 30px 100px;columns:3 280px;column-gap:14px}.gallery img{width:100%;margin:0 0 14px;break-inside:avoid}
.contact-card{max-width:760px;margin:0 auto 100px;padding:45px;background:#fff;border:1px solid var(--line)}.notice{padding:18px;border-left:3px solid var(--gold);background:#f1ece3;color:var(--muted)}
footer{max-width:var(--max);margin:auto;padding:30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem}
@media(max-width:780px){header{padding:18px 20px}.menu{display:block;border:1px solid var(--line);padding:8px 12px;background:transparent}nav{display:none;position:absolute;top:75px;left:15px;right:15px;padding:20px;background:var(--white);z-index:10;flex-direction:column}nav.open{display:flex}.hero{grid-template-columns:1fr}.hero-copy{padding:55px 22px}.hero-image{min-height:420px;order:-1}.two,.photo-feature{grid-template-columns:1fr;gap:35px}.section{padding:65px 22px}.feature-img,.photo-feature img{height:auto}.credentials{grid-template-columns:1fr}.pagehead,.content,.gallery{padding-left:22px;padding-right:22px}footer{margin:0 22px;padding-left:0;padding-right:0;flex-direction:column;gap:8px}}

.contact-card form{display:grid;gap:20px}.contact-card label{display:grid;gap:7px;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}
.contact-card input,.contact-card textarea{width:100%;padding:13px 14px;border:1px solid var(--line);background:#fff;font:inherit;color:var(--ink)}
.contact-card textarea{resize:vertical}.contact-card .consent{grid-template-columns:auto 1fr;align-items:start;text-transform:none;letter-spacing:0;color:var(--muted);font-size:.85rem}
.contact-card .consent input{width:auto;margin-top:5px}.hp{position:absolute!important;left:-9999px!important}.form-status{min-height:1.5em;color:var(--muted)}
.gallery-item{display:block;break-inside:avoid;margin-bottom:14px}.gallery-item img{transition:transform .2s ease}.gallery-item:hover img{transform:scale(1.01)}

.photo-page{max-width:var(--max);margin:auto;padding:0 30px 100px}.gallery-tabs{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:42px;border-bottom:1px solid var(--line);padding-bottom:16px}.gallery-tab{border:0;background:none;padding:8px 0;font:inherit;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);cursor:pointer}.gallery-tab.active{color:var(--ink);border-bottom:1px solid var(--gold)}.theme-gallery{display:none}.theme-gallery.active{display:block}.theme-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.theme-heading h2{font:400 clamp(2rem,4vw,3.5rem)/1 Georgia,serif;margin:.15em 0}.theme-heading span{color:var(--muted);font-size:.8rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.photo-thumb{padding:0;border:0;background:none;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in}.photo-thumb img{width:100%;height:100%;object-fit:cover}.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;background:rgba(12,12,12,.96);z-index:1000;display:grid;grid-template-columns:65px 1fr 65px;align-items:center}.lightbox figure{margin:0;height:100vh;display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:20px}.lightbox img{max-width:100%;max-height:calc(100vh - 70px);object-fit:contain}.lightbox figcaption{color:white;padding:8px}.lb-prev,.lb-next,.lb-close{border:0;background:none;color:white;font-size:2rem;cursor:pointer}.lb-close{position:absolute;right:16px;top:10px;font-size:2.5rem}.no-scroll{overflow:hidden}@media(max-width:780px){.photo-page{padding:0 18px 70px}.gallery-tabs{overflow-x:auto;flex-wrap:nowrap}.gallery-tab{white-space:nowrap}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:6px}.photo-thumb{aspect-ratio:1/1}.lightbox{grid-template-columns:42px 1fr 42px}}
.brand:focus-visible,.menu:focus-visible,nav a:focus-visible,.btn:focus-visible,.gallery-tab:focus-visible,.photo-thumb:focus-visible,.lb-prev:focus-visible,.lb-next:focus-visible,.lb-close:focus-visible,.contact-card input:focus-visible,.contact-card textarea:focus-visible,.contact-card button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.lightbox .lb-prev:focus-visible,.lightbox .lb-next:focus-visible,.lightbox .lb-close:focus-visible{outline-color:#fff}

/* Home palette derived from DSCN6889: warm, light and deliberately restrained. */
:root{--paper:#f5efe5;--white:#fbf7f0;--ink:#2f2b26;--muted:#746b61;--gold:#a77d4f;--line:#ddd1c1}
.hero{min-height:540px;grid-template-columns:minmax(360px,.9fr) 1.1fr;background:var(--white)}
.hero-copy{padding-top:62px;padding-bottom:62px}
.hero h1{font-size:clamp(2.75rem,4.5vw,5rem);line-height:1.02;letter-spacing:-.035em}
.hero-image{min-height:540px;background-position:center 48%}
.photo-band{background:#39342f;color:#faf5ed}
.quote{background:#e9dfd0}
@media(max-width:780px){.hero{min-height:0}.hero-image{min-height:340px}.hero-copy{padding-top:46px;padding-bottom:50px}.hero h1{font-size:clamp(2.5rem,12vw,3.5rem)}}


/* V6 — Home più equilibrata e sezioni simmetriche */
.hero{
  max-width:var(--max);
  margin:30px auto 70px;
  min-height:0;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:42px;
  padding:0 30px;
  background:transparent;
}
.hero-copy{
  padding:55px 10px 55px 0;
  align-self:center;
}
.hero-image{
  min-height:450px;
  border-radius:16px;
  overflow:hidden;
  background-position:center;
}
.hero h1{
  font-size:clamp(2.6rem,4.4vw,4.4rem);
  line-height:1.04;
}
.section.two,
.photo-band .section.photo-feature{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:48px;
  align-items:stretch;
}
.section.two > div,
.photo-band .section.photo-feature > div{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.feature-img,
.photo-feature img{
  width:100%;
  height:410px;
  object-fit:cover;
  border-radius:14px;
}
.photo-band{
  padding:0;
}
.photo-band .section{
  padding-top:82px;
  padding-bottom:82px;
}
@media(max-width:780px){
  .hero{
    grid-template-columns:1fr;
    margin:18px auto 45px;
    padding:0 20px;
    gap:24px;
  }
  .hero-copy{padding:16px 0 34px}
  .hero-image{min-height:300px;border-radius:12px}
  .section.two,
  .photo-band .section.photo-feature{
    grid-template-columns:1fr;
    gap:26px;
  }
  .feature-img,
  .photo-feature img{height:280px}
}


/* V7 — gallerie fotografiche */
.gallery-help{
  max-width:700px;
  margin-top:18px;
  color:var(--muted);
  font-size:.84rem;
}
.photo-page{
  padding-top:0;
}
.gallery-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.photo-thumb{
  aspect-ratio:4/3;
  border-radius:10px;
}
.photo-thumb img{
  object-fit:cover;
}
@media(max-width:780px){
  .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .photo-thumb{
    aspect-ratio:4/3;
  }
}

/* V8 — Profilo */
.profile-content{max-width:900px}.profile-section{margin-bottom:52px}.profile-section h2{margin-bottom:20px}.timeline p{margin:0 0 14px}
.publications{margin-top:12px;border-top:1px solid rgba(60,52,44,.18);border-bottom:1px solid rgba(60,52,44,.18)}
.publications summary{cursor:pointer;padding:20px 0;font-family:Georgia,serif;font-size:1.08rem}
.publications summary:hover{text-decoration:underline;text-underline-offset:4px}.publications-list{padding:0 0 22px}
.publications-list p{margin:0 0 18px;padding-left:22px;text-indent:-22px;line-height:1.65}

/* V9 — Psicologia */
.psychology-content{max-width:880px}
.psych-section{padding:0 0 38px;margin:0 0 38px;border-bottom:1px solid rgba(60,52,44,.14)}
.psych-section h2{margin-bottom:18px}
.psych-section p{max-width:760px}
.psych-section blockquote{max-width:720px;margin:30px 0 0;padding:20px 0 20px 26px;border-left:2px solid var(--accent);font-family:Georgia,serif;font-size:1.2rem;line-height:1.55}
.psych-contact{padding:8px 0 24px}
.psych-contact .btn{margin-top:8px}

/* V10 — Contatti e privacy */
.contact-content{max-width:760px}.privacy-note{margin:0 0 30px;color:var(--muted);font-size:.94rem}
.contact-form{display:grid;gap:10px}.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{width:100%;box-sizing:border-box;padding:13px 14px;border:1px solid rgba(60,52,44,.25);border-radius:7px;background:rgba(255,255,255,.55);font:inherit}
.contact-form textarea{resize:vertical}.privacy-check{display:flex;gap:10px;align-items:flex-start;margin:13px 0 8px;font-size:.9rem;line-height:1.45}.privacy-check input{margin-top:3px}.hp-field{position:absolute;left:-10000px}.form-status{min-height:1.4em}
.legal-content{max-width:850px}.legal-content h2{margin-top:34px}.draft-warning{padding:16px 18px;border:1px solid rgba(60,52,44,.2);border-radius:8px}
footer a{color:inherit}

/* V12 — prova grafico-fotografica: immagini originali, senza filtro cromatico */
.hero-image{
  background-image:url('../images/hero-v12.jpg');
  background-position:center center;
}
.psychology-content{max-width:1080px}
body:has(.psychology-content) .pagehead h1{
  font-size:clamp(2.45rem,4.1vw,4.25rem);
  letter-spacing:-.025em;
}
.psych-with-image{
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:46px;
  align-items:center;
  padding-bottom:46px;
  margin-bottom:46px;
}
.psych-with-image.reverse .psych-text{order:2}
.psych-with-image.reverse .psych-image{order:1}
.psych-with-image h2{margin-top:0}
.psych-image{
  width:100%;
  height:210px;
  object-fit:cover;
  border-radius:12px;
}
@media(max-width:780px){
  body:has(.psychology-content) .pagehead h1{font-size:clamp(2.25rem,10vw,3.15rem)}
  .psych-with-image{grid-template-columns:1fr;gap:22px}
  .psych-with-image.reverse .psych-text,.psych-with-image.reverse .psych-image{order:initial}
  .psych-image{height:240px}
}

/* V13 — gabbiano hero e dettaglio fotografico */
.hero-image{
  background-image:url('../images/hero-v13.jpg');
  background-position:center 38%;
}
.psych-title-detail{
  max-width:1080px;
  height:118px;
  margin:-34px auto 58px;
  border-radius:12px;
  overflow:hidden;
}
.psych-title-detail img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}
@media(max-width:780px){
  .hero-image{background-position:center 32%}
  .psych-title-detail{height:82px;margin:-18px 22px 42px}
}

/* V14 — continuità verde/terra, senza filtri sulle fotografie */
:root{
  --gold:#aa8a63;
  --line:#ded5c8;
}
.btn.primary{
  background:#8d7457;
  border-color:#8d7457;
}
.hero-image{
  background-image:url('../images/hero-v14.jpg');
  background-position:center center;
}
.profile-photo-detail{
  max-width:1160px;
  height:150px;
  margin:-25px auto 28px;
  padding:0 30px;
  overflow:hidden;
}
.profile-photo-detail img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
  border-radius:12px;
}
@media(max-width:780px){
  .hero-image{background-position:center center}
  .profile-photo-detail{height:92px;margin:-15px auto 18px;padding:0 22px}
}

/* V15 — rifiniture finali */
.psychology-content{max-width:1120px}
.psych-with-image{
  grid-template-columns:minmax(0,1fr) 320px;
  gap:54px;
  align-items:center;
}
.psych-with-image .psych-text{min-width:0}
.psych-with-image .psych-text p{max-width:none}
.psych-image{width:320px;height:230px;object-fit:cover;justify-self:end}
.psych-with-image.reverse .psych-image{justify-self:start}
.legal-content{max-width:760px;font-size:.96rem;line-height:1.7}
.legal-content h2{font-size:1.28rem;line-height:1.25;margin-top:32px;margin-bottom:10px}
@media(max-width:780px){
 .psych-with-image{grid-template-columns:1fr;gap:22px}
 .psych-image{width:100%;height:240px;justify-self:stretch}
 .psych-with-image.reverse .psych-image{justify-self:stretch}
 .legal-content{font-size:.94rem}
}

/* V16 — rifiniture visuali */
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand-mark{width:48px;height:48px;display:block;flex:0 0 auto}
.brand-copy{display:block}.brand-copy>span{display:block}

.profile-layout{max-width:1160px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:64px;align-items:start}
.profile-layout .profile-content{max-width:none}
.profile-side-photo{height:640px;position:sticky;top:28px;overflow:hidden;border-radius:12px}
.profile-side-photo img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}

.psychology-content{max-width:1160px}
.psych-with-image{grid-template-columns:minmax(0,1fr) minmax(420px,1fr);gap:64px;align-items:center}
.psych-image{width:100%;height:500px;object-fit:cover;justify-self:stretch;border-radius:12px}
.psych-with-image.reverse .psych-image{justify-self:stretch}

.theme-heading h2{font-size:clamp(1.25rem,2vw,1.7rem);letter-spacing:.01em}
.theme-heading .kicker{font-size:.62rem}
.theme-heading span{font-size:.72rem}

@media(max-width:900px){
 .profile-layout{grid-template-columns:1fr;gap:30px}
 .profile-side-photo{height:380px;position:static;order:-1}
 .psych-with-image{grid-template-columns:1fr;gap:28px}
 .psych-image{height:420px}
}
@media(max-width:780px){
 .brand-mark{width:40px;height:40px}.brand{gap:9px}.brand strong{font-size:1.08rem}
 .profile-side-photo{height:340px;order:initial}
 .psych-image{height:340px}
 .theme-heading h2{font-size:1.25rem}
}

/* V17 — ultime correzioni */
.brand-mark{
  width:62px;
  height:48px;
  object-fit:contain;
  flex:0 0 auto;
}
.profile-side-photo img{
  object-position:center 45%;
}
@media(max-width:780px){
  .brand-mark{width:52px;height:40px}
}

/* V18 — logo definitivo fornito dall'utente */
.brand-mark{
  width:46px;
  height:58px;
  object-fit:contain;
  object-position:center;
  flex:0 0 auto;
}
@media(max-width:780px){
  .brand-mark{
    width:40px;
    height:50px;
  }
}
