
:root{
  --black:#0a0a0a;
  --white:#ffffff;
  --off:#f5f4f2;
  --line: rgba(10,10,10,.12);
  --grey: #6f6f6f;
}

*{box-sizing:border-box;}
html,body{margin:0; padding:0;}
body{
  font-family:'Montserrat',Arial,sans-serif;
  color:var(--black);
  background:var(--white);
  font-weight:300;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}

.wrap{max-width:1240px; margin:0 auto; padding-inline:32px;}

/* ---- nav ---- */
header.site{
  position:sticky; top:0; z-index:50;
  background:var(--white);
  border-bottom:1px solid var(--line);
}
header.site .bar{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:24px;
}
.logo{
  display:flex; align-items:center; gap:14px;
  font-weight:600; font-size:1rem; letter-spacing:.32em; text-transform:uppercase;
}
.logo img{height:38px; width:auto;}
.ig-link{display:inline-flex; align-items:center; gap:8px;}
.ig-link svg{width:18px; height:18px; flex:none;}
nav.main .ig-link{border:none; padding:0;}
nav.main .ig-link:hover{opacity:.6;}
nav.main{display:flex; gap:38px;}
nav.main a{
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  padding-bottom:4px; border-bottom:1px solid transparent;
}
nav.main a:hover, nav.main a.active{border-color:var(--black);}
.nav-toggle{display:none; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; border:1px solid var(--black); padding:8px 14px; background:none; cursor:pointer;}

.langs{display:flex; align-items:center; gap:6px; margin-left:34px; font-size:.7rem; letter-spacing:.1em; font-weight:500;}
.langs a{opacity:.4;}
.langs a.active{opacity:1; border-bottom:1px solid var(--black);}
.langs .sep{opacity:.3;}

/* ---- hero ---- */
.hero{position:relative; height:86vh; min-height:520px; background:var(--black); overflow:hidden;}
.hero img{width:100%; height:100%; object-fit:cover; opacity:.86;}
.hero .scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,.15) 0%, rgba(10,10,10,.55) 100%);}
.hero .htext{position:absolute; left:0; right:0; bottom:0; padding:0 32px 60px;}
.hero .eyebrow{color:#fff; opacity:.8; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; font-weight:500;}
.hero h1{
  color:#fff; font-weight:600; text-transform:uppercase;
  font-size:clamp(2.4rem,7vw,5.6rem); letter-spacing:.02em; line-height:.98; margin:18px 0 0;
}
.hero p{color:#fff; opacity:.86; max-width:44ch; margin-top:18px; font-size:1rem; line-height:1.6; font-weight:300;}

.page-hero{
  padding-block:130px 60px; border-bottom:1px solid var(--line); background:var(--off);
}
.page-hero .eyebrow{font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--grey); font-weight:500;}
.page-hero h1{
  font-weight:600; text-transform:uppercase; letter-spacing:.02em;
  font-size:clamp(2rem,5vw,3.4rem); margin:14px 0 0;
}
.page-hero p{max-width:60ch; margin-top:16px; color:var(--grey); font-size:1rem; line-height:1.6;}

section{padding-block:96px;}
.section-tight{padding-block:64px;}

.section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;
  border-bottom:1px solid var(--line); padding-bottom:22px; margin-bottom:48px;
}
.section-head .eyebrow{font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--grey); font-weight:500;}
.section-head h2{
  font-weight:600; text-transform:uppercase; letter-spacing:.02em;
  font-size:clamp(1.5rem,3vw,2.2rem); margin:10px 0 0;
}
.section-head .count{font-size:.72rem; letter-spacing:.1em; color:var(--grey); text-transform:uppercase;}

/* ---- project grid (home) ---- */
.projects{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line);}
.proj-card{position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--black);}
.proj-card img{width:100%; height:100%; object-fit:cover; filter:grayscale(100%); transition:filter .5s ease, transform .6s ease; opacity:.92;}
.proj-card:hover img{filter:grayscale(0%); transform:scale(1.04);}
.proj-card .scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,0) 40%, rgba(10,10,10,.82) 100%);}
.proj-card .label{position:absolute; left:0; right:0; bottom:0; padding:26px;}
.proj-card .label .n{color:#fff; opacity:.7; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;}
.proj-card .label h3{color:#fff; font-weight:600; text-transform:uppercase; letter-spacing:.02em; font-size:1.4rem; margin:8px 0 0;}
.proj-card .label .c{color:#fff; opacity:.75; font-size:.72rem; margin-top:6px;}

/* ---- gallery grid ---- */
.gal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line);}
.gal-grid.g3{grid-template-columns:repeat(3,1fr);}
.gal-grid.g2{grid-template-columns:repeat(2,1fr);}
.gal-grid.g5{grid-template-columns:repeat(5,1fr);}
.gal-item{position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--white);}
.gal-item img{width:100%; height:100%; object-fit:cover; filter:grayscale(100%); transition:filter .45s ease, transform .5s ease;}
.gal-item:hover img{filter:grayscale(0%); transform:scale(1.035);}
.gal-item .cap{
  position:absolute; left:0; bottom:0; right:0; padding:12px 14px;
  background:linear-gradient(180deg, rgba(10,10,10,0), rgba(10,10,10,.7));
  color:#fff; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  opacity:0; transition:opacity .3s ease;
}
.gal-item:hover .cap{opacity:1;}

.intro-text{max-width:70ch; color:var(--grey); font-size:1.02rem; line-height:1.75; margin-bottom:44px;}
.intro-text em{font-style:italic; color:var(--black);}

/* ---- bio ---- */
.bio-grid{display:grid; grid-template-columns:.9fr 1.3fr; gap:70px; align-items:start;}
.bio-grid img{width:100%; aspect-ratio:4/5; object-fit:cover; filter:grayscale(20%);}
.bio-copy p{font-size:1.02rem; line-height:1.8; color:#2b2b2b; margin:0 0 20px; font-weight:300;}
.bio-copy strong{font-weight:600;}
.bio-facts{display:grid; grid-template-columns:1fr 1fr; gap:22px 30px; margin-top:36px; padding-top:28px; border-top:1px solid var(--line);}
.bio-facts dt{font-size:.68rem; text-transform:uppercase; letter-spacing:.14em; color:var(--grey); font-weight:500;}
.bio-facts dd{margin:6px 0 0; font-size:.94rem; line-height:1.5;}

/* ---- contatti ---- */
.contact-wrap{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.contact-title{margin:0; font-weight:600; text-transform:uppercase; letter-spacing:.02em; font-size:clamp(1.9rem,4vw,3rem); line-height:1.06;}
.contact-copy p{color:var(--grey); font-size:1.02rem; line-height:1.7; margin-top:18px; max-width:44ch;}
.contact-field{margin-top:30px;}
.contact-field .eyebrow{font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); display:block; margin-bottom:8px; font-weight:500;}
.copy-row{display:flex; align-items:center; gap:12px; font-size:1.15rem; font-weight:500;}
.copy-btn{
  font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; font-weight:500;
  border:1px solid var(--black); background:none; color:var(--black); padding:7px 12px; cursor:pointer;
}
.copy-btn:hover{background:var(--black); color:#fff;}
.social-list{display:flex; gap:20px; margin-top:8px; flex-wrap:wrap;}
.social-list a{font-size:.86rem; border-bottom:1px solid var(--line); padding-bottom:2px;}
.social-list a:hover{border-color:var(--black);}

.contact-card{background:var(--off); border:1px solid var(--line); padding:36px;}
.contact-card h3{font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:1rem; margin:0 0 20px;}
.form-row{margin-bottom:18px; display:flex; flex-direction:column; gap:8px;}
.form-row label{font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; color:var(--grey); font-weight:500;}
.form-row input, .form-row textarea{
  font-family:'Montserrat',sans-serif; font-size:.94rem; padding:12px 14px; border:1px solid var(--line);
  background:var(--white); color:var(--black);
}
.form-row textarea{resize:vertical; min-height:100px;}
.send-btn{
  margin-top:6px; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  background:var(--black); color:#fff; border:none; padding:15px 20px; cursor:pointer; width:100%;
}
.send-btn:hover{background:#2a2a2a;}
.form-note{font-size:.76rem; color:var(--grey); margin-top:12px;}

footer.site{border-top:1px solid var(--line); padding-block:36px; margin-top:0;}
footer.site .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
footer.site .flogo{font-weight:600; letter-spacing:.28em; text-transform:uppercase; font-size:.82rem;}
footer.site .fmeta{font-size:.7rem; letter-spacing:.04em; color:var(--grey);}
footer.site .fnav{display:flex; gap:22px;}
footer.site .fnav a{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--grey);}
footer.site .fnav a:hover{color:var(--black);}

@media (max-width:900px){
  .wrap{padding-inline:20px;}
  header.site .bar{flex-direction:column; align-items:flex-start; gap:14px; padding-block:18px;}
  nav.main{flex-wrap:wrap; gap:10px 18px;}
  .langs{margin-left:0;}
  .page-hero{padding-block:60px 40px;}
  .hero{height:70vh; min-height:420px;}
  .hero .htext{padding:0 20px 40px;}
  .projects{grid-template-columns:1fr;}
  .gal-grid, .gal-grid.g3, .gal-grid.g5{grid-template-columns:repeat(2,1fr);}
  .bio-grid, .contact-wrap{grid-template-columns:1fr;}
  .bio-facts{grid-template-columns:1fr;}
  section{padding-block:64px;}
}

/* ---- lightbox ---- */
.gal-item, [data-zoom]{cursor:zoom-in;}
.gal-item:focus-visible, [data-zoom]:focus-visible{outline:2px solid var(--black); outline-offset:2px;}
.lightbox{
  border:none; padding:0; margin:0; width:100vw; height:100vh; max-width:none; max-height:none;
  background:rgba(10,10,10,.96); color:#fff;
}
.lightbox::backdrop{background:rgba(10,10,10,.96);}
.lightbox figure{margin:0; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:56px 72px;}
.lightbox img{max-width:100%; max-height:calc(100vh - 150px); object-fit:contain; cursor:default;}
.lightbox figcaption{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; opacity:.8;}
.lb-btn{position:absolute; background:none; border:none; color:#fff; cursor:pointer; font-family:'Montserrat',sans-serif; font-weight:300; line-height:1; opacity:.7; padding:12px;}
.lb-btn:hover, .lb-btn:focus-visible{opacity:1;}
.lb-close{top:14px; right:18px; font-size:2.2rem;}
.lb-prev, .lb-next{top:50%; transform:translateY(-50%); font-size:3.4rem;}
.lb-prev{left:10px;}
.lb-next{right:10px;}
.lb-count{position:absolute; top:26px; left:28px; font-size:.7rem; letter-spacing:.14em; opacity:.6;}
@media (max-width:900px){
  .lightbox figure{padding:56px 12px 40px;}
  .lb-prev, .lb-next{top:auto; bottom:8px; transform:none; font-size:2.6rem;}
}
.lightbox.single .lb-prev, .lightbox.single .lb-next, .lightbox.single .lb-count{display:none;}

/* ---- WordPress ---- */
.admin-bar header.site{top:32px;}
@media (max-width:782px){ .admin-bar header.site{top:46px;} }
.copy-row--plain{font-size:1rem; font-weight:400;}
#email-text{border-bottom:1px solid var(--line);}
#email-text:hover{border-color:var(--black);}
.lp-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-msg{font-size:.86rem; line-height:1.5; padding:12px 14px; margin:0 0 18px; border:1px solid var(--line); background:var(--white);}
.form-msg.ok{border-color:var(--black);}
.form-msg.err{border-color:#a33; color:#a33;}
.entry{max-width:70ch; line-height:1.75;}
