
:root{--ink:#161512;--cream:#f3efe5;--gold:#b9975b;--muted:#858075;--white:#fff;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,sans-serif}h1,h2,h3,p{margin-top:0}h1,h2{font-family:"Cormorant Garamond",serif;font-weight:600;line-height:.95}a{color:inherit;text-decoration:none}.topbar{position:absolute;z-index:20;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:22px 5vw;color:#fff}.brand img{width:170px;filter:invert(1)}nav{display:flex;align-items:center;gap:28px;font-size:13px;text-transform:uppercase;letter-spacing:.12em}nav a{opacity:.85}nav a:hover{opacity:1}.nav-cta{border:1px solid #ffffff80;padding:12px 18px}.menu{display:none;background:none;border:0;color:white;font-size:28px}.hero{min-height:100vh;position:relative;display:flex;align-items:center;padding:140px 7vw 80px;color:white;overflow:hidden}.hero-media{position:absolute;inset:0;background:url('gallery-4.jpg') center 45%/cover no-repeat;transform:scale(1.03)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,8,.82),rgba(10,10,8,.25) 70%,rgba(10,10,8,.4))}.hero-content{position:relative;max-width:900px}.eyebrow{font-size:12px;letter-spacing:.22em;font-weight:700;margin-bottom:24px}.eyebrow.dark{color:#756c5d}.hero h1{font-size:clamp(64px,9vw,132px);margin-bottom:28px}.hero h1 em{font-weight:500;color:#d8c29b}.lead{font-size:clamp(17px,2vw,22px);line-height:1.7;max-width:740px;color:#eee9df}.actions{display:flex;gap:14px;margin-top:38px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 24px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;cursor:pointer}.btn.light{background:white;color:#171612}.btn.ghost{border-color:#ffffff80;color:white}.scroll{position:absolute;right:5vw;bottom:35px;font-size:10px;letter-spacing:.2em}.scroll span{font-size:18px;margin-left:8px}.manifesto{max-width:var(--max);margin:auto;padding:130px 24px;display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.manifesto h2,.section-head h2,.process h2,.contact h2{font-size:clamp(52px,6vw,82px)}.manifesto-copy>p{font-family:"Cormorant Garamond",serif;font-size:30px;line-height:1.35}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:55px}.pillars article{border-top:1px solid #c7bfaf;padding-top:18px}.pillars b,.service-grid span{font-size:11px;letter-spacing:.15em;color:var(--gold)}.pillars h3{font-family:"Cormorant Garamond",serif;font-size:28px;margin:12px 0}.pillars p{font-size:14px;line-height:1.7;color:#6d685e}.image-break{height:72vh;min-height:520px;position:relative;overflow:hidden}.image-break img{width:100%;height:100%;object-fit:cover}.quote{position:absolute;right:6vw;bottom:6vw;background:rgba(243,239,229,.95);max-width:520px;padding:45px;font-family:"Cormorant Garamond",serif;font-size:34px}.services{max-width:var(--max);margin:auto;padding:130px 24px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:65px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #c7bfaf;border-left:1px solid #c7bfaf}.service-grid article{padding:36px;min-height:285px;border-right:1px solid #c7bfaf;border-bottom:1px solid #c7bfaf}.service-grid h3{font-family:"Cormorant Garamond",serif;font-size:31px;line-height:1.05;margin:55px 0 18px}.service-grid p{font-size:14px;line-height:1.7;color:#6b665d}.gallery{background:#171612;color:white;padding:130px 5vw}.gallery .section-head{max-width:var(--max);margin:0 auto 60px}.mosaic{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px}.mosaic figure{margin:0;position:relative;height:520px;overflow:hidden}.mosaic figure.wide{grid-column:span 2;height:650px}.mosaic img{width:100%;height:100%;object-fit:cover;transition:.6s}.mosaic figure:hover img{transform:scale(1.035)}.mosaic figcaption{position:absolute;left:25px;bottom:22px;font-family:"Cormorant Garamond",serif;font-size:26px}.process{max-width:var(--max);margin:auto;padding:130px 24px;display:grid;grid-template-columns:1fr 1fr;gap:100px}.process ol{list-style:none;margin:0;padding:0;border-top:1px solid #c7bfaf}.process li{display:flex;gap:30px;padding:27px 0;border-bottom:1px solid #c7bfaf}.process li b{color:var(--gold);font-size:12px}.process li span{font-size:14px;color:#6d685e}.process li strong{display:block;color:var(--ink);font-family:"Cormorant Garamond",serif;font-size:28px;margin-bottom:6px}.contact{background:#8e7754;color:white;padding:120px max(5vw,calc((100vw - 1240px)/2));display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.contact-copy>p{max-width:510px;line-height:1.7;color:#f1eadf}.contacts{display:flex;flex-direction:column;gap:12px;margin-top:36px;font-size:18px}form{background:#f5f0e6;color:var(--ink);padding:42px}.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:20px}input,select,textarea{width:100%;margin-top:9px;border:0;border-bottom:1px solid #aaa08e;background:transparent;padding:11px 3px;font:inherit;outline:none}textarea{border:1px solid #aaa08e;padding:12px;resize:vertical}form .btn{margin-top:5px;background:#171612;color:white}form small{display:block;color:#777166;margin-top:14px}footer{background:#0e0e0c;color:white;padding:70px 5vw 35px;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:end}footer img{width:180px;filter:invert(1)}footer p{color:#aaa49a}footer>div{justify-self:end;display:flex;gap:22px;font-size:13px}footer small{grid-column:span 2;color:#777}
@media(max-width:900px){nav{display:none;position:absolute;top:80px;right:5vw;left:5vw;background:#171612;padding:25px;flex-direction:column;align-items:flex-start}.topbar.open nav{display:flex}.menu{display:block}.hero{padding-left:24px;padding-right:24px}.brand img{width:140px}.manifesto,.process,.contact{grid-template-columns:1fr;gap:45px}.pillars,.service-grid{grid-template-columns:1fr}.section-head{display:block}.mosaic{grid-template-columns:1fr}.mosaic figure,.mosaic figure.wide{grid-column:auto;height:430px}.row{grid-template-columns:1fr}.quote{left:20px;right:20px;bottom:20px;font-size:26px;padding:28px}footer{grid-template-columns:1fr}footer>div{justify-self:start;flex-wrap:wrap}footer small{grid-column:auto}}

/* Language selector and accessibility */
.lang-switch{display:flex;align-items:center;gap:9px;padding-left:18px;margin-left:2px;border-left:1px solid #ffffff55}
.lang-switch a{font-size:11px;letter-spacing:.12em;opacity:.55}
.lang-switch a:hover,.lang-switch a.active{opacity:1;color:#d8c29b}
.lang-switch a::after{display:none}
.menu:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
@media(max-width:900px){.lang-switch{width:100%;padding:16px 0 0;margin:4px 0 0;border-left:0;border-top:1px solid #ffffff33}.lang-switch a{padding:0}.lang-switch a::after{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mosaic img{transition:none}}

/* Selettore lingua sempre visibile nell’intestazione mobile */
.mobile-header-actions{display:none}
.mobile-lang-switch{display:none}
@media(max-width:900px){
  .topbar{padding:16px 18px;gap:12px}
  .mobile-header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
  .mobile-lang-switch{position:relative;display:flex;align-items:center;gap:8px;padding:7px 10px 7px 9px;background:linear-gradient(180deg,rgba(28,26,22,.96),rgba(18,17,14,.78));border:1px solid rgba(216,194,155,.72);border-radius:18px;box-shadow:0 12px 30px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .mobile-lang-switch::before{content:'Language';display:block;margin-right:2px;padding:0 4px 0 2px;color:rgba(255,255,255,.74);font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
  .mobile-lang-switch::after{content:'';width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.24),transparent);margin-right:2px}
  .mobile-lang-switch a{display:flex;align-items:center;justify-content:center;gap:6px;min-width:56px;height:36px;padding:0 11px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.04));color:#fff;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;opacity:.96;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:transform .2s,background .2s,color .2s,border-color .2s,opacity .2s,box-shadow .2s}
  .mobile-lang-switch a:hover,.mobile-lang-switch a:focus-visible{opacity:1;transform:translateY(-1px);background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.07));border-color:rgba(255,255,255,.26);box-shadow:0 6px 14px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.12)}
  .mobile-lang-switch a.active{background:linear-gradient(180deg,#d8c29b,#b9975b);color:#171612;opacity:1;border-color:rgba(255,255,255,0);box-shadow:0 6px 16px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.34)}
  .menu{display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(18,17,14,.6);font-size:24px;line-height:1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  nav .lang-switch{display:none}
}
@media(max-width:460px){
  .mobile-lang-switch::before{content:'Lang'}
  .mobile-lang-switch a{min-width:50px;padding:0 9px;gap:4px}
}
@media(max-width:380px){
  .topbar{padding-left:14px;padding-right:14px;gap:8px}
  .brand img{width:112px}
  .mobile-header-actions{gap:7px}
  .mobile-lang-switch{gap:5px;padding:6px 7px}
  .mobile-lang-switch::before{font-size:8px;letter-spacing:.12em;margin-right:0;padding:0 2px 0 0}
  .mobile-lang-switch::after{height:18px;margin-right:0}
  .mobile-lang-switch a{min-width:42px;height:32px;padding:0 7px;font-size:9px;letter-spacing:.09em}
  .menu{width:38px;height:38px;font-size:22px}
}

/* Premium selector explicit flag styling */
.mobile-lang-switch .flag{display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;filter:saturate(1.05)}
.mobile-lang-switch .lang-code{display:inline-block;line-height:1}
@media(max-width:380px){.mobile-lang-switch .flag{font-size:12px}}


/* Mobile: mostra solo le bandiere nel selettore lingua */
@media(max-width:900px){
  .mobile-lang-switch::before,
  .mobile-lang-switch::after,
  .mobile-lang-switch .lang-code{display:none}
  .mobile-lang-switch{gap:8px;padding:7px 9px}
  .mobile-lang-switch a{min-width:38px;width:38px;height:36px;padding:0;gap:0}
  .mobile-lang-switch .flag{font-size:18px}
}
@media(max-width:380px){
  .mobile-lang-switch{gap:6px;padding:6px 7px}
  .mobile-lang-switch a{min-width:34px;width:34px;height:32px;padding:0}
  .mobile-lang-switch .flag{font-size:16px}
}
