@font-face {
  font-family: "Studio Serif";
  src: url("../fonts/EBGaramond12-Regular.woff") format("woff");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Studio Serif";
  src: url("../fonts/EBGaramond12-Italic.woff") format("woff");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Studio Serif";
  src: url("../fonts/EBGaramond12-Bold.woff") format("woff");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Studio Sans";
  src: url("../fonts/Lato-Light.ttf") format("truetype");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "Studio Sans";
  src: url("../fonts/Lato-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Studio Sans";
  src: url("../fonts/Lato-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

:root{
  --bg:#080809;
  --bg-2:#0e0e10;
  --bg-3:#141417;
  --gold:#c8a45c;
  --gold-light:#e8d5a8;
  --text:#ece9e2;
  --muted:#8f8a81;
  --line:rgba(200,164,92,.22);
  --serif:"Studio Serif", Georgia, serif;
  --sans:"Studio Sans", Arial, sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;line-height:1.75;overflow-x:hidden}
::selection{background:var(--gold);color:#080809}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ---------- INTRO ---------- */
#intro{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity 1s ease,visibility 1s}
#intro.done{opacity:0;visibility:hidden}
#intro .mark{font-family:var(--serif);font-size:clamp(1.4rem,3vw,2rem);letter-spacing:.5em;text-transform:uppercase;color:var(--text);opacity:0;animation:introIn 1.6s ease forwards}
#intro .mark span{color:var(--gold)}
@keyframes introIn{0%{opacity:0;letter-spacing:.9em}100%{opacity:1;letter-spacing:.5em}}

/* ---------- NAV ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .5s,box-shadow .5s;padding:0 5vw}
header.scrolled{background:rgba(8,8,9,.9);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:92px;max-width:1500px;margin:0 auto}
.logo{font-family:var(--serif);font-size:1.35rem;letter-spacing:.32em;text-transform:uppercase;font-weight:500}
.logo span{color:var(--gold)}
nav ul{display:flex;gap:2.8rem;list-style:none;align-items:center}
nav a{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(236,233,226,.75);transition:color .3s}
nav a:hover{color:var(--gold-light)}
.btn{display:inline-block;border:1px solid var(--gold);color:var(--gold-light);padding:.85rem 2.4rem;font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;transition:.4s;background:transparent;cursor:pointer;font-family:var(--sans);font-weight:400}
.btn:hover{background:var(--gold);color:#080809}
.btn.solid{background:var(--gold);color:#080809}
.btn.solid:hover{background:var(--gold-light);border-color:var(--gold-light)}
.burger{display:none;flex-direction:column;gap:6px;background:none;border:none;cursor:pointer;padding:8px;z-index:110}
.burger span{width:28px;height:1px;background:var(--text);transition:.3s}

/* ---------- HERO VIDEO ---------- */
.hero{height:100vh;position:relative;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:brightness(.85) saturate(.9)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(8,8,9,.55) 0%,rgba(8,8,9,.15) 35%,rgba(8,8,9,.35) 65%,rgba(8,8,9,.96) 100%)}
.hero-in{width:100%;max-width:1500px;margin:0 auto;padding:0 5vw 11vh}
.eyebrow{font-size:.7rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold);margin-bottom:1.6rem}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,9vw,7.5rem);line-height:1.02;letter-spacing:.01em;max-width:14ch}
.hero h1 em{font-style:italic;color:var(--gold-light)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-top:3rem;flex-wrap:wrap}
.hero-foot p{max-width:440px;color:rgba(236,233,226,.72);font-size:.98rem}
.scroll-hint{position:absolute;bottom:36px;right:5vw;color:rgba(236,233,226,.55);font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;writing-mode:vertical-rl;display:flex;align-items:center;gap:12px}
.scroll-hint::after{content:"";width:1px;height:56px;background:linear-gradient(var(--gold),transparent);animation:drop 2.4s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- SHARED ---------- */
section{padding:140px 5vw}
.wrap{max-width:1400px;margin:0 auto}
.sec-head{margin-bottom:5rem}
.sec-head .eyebrow{margin-bottom:1.2rem}
.sec-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,4rem);line-height:1.12}
.sec-head h2 em{font-style:italic;color:var(--gold-light)}
.sec-head p{color:var(--muted);max-width:640px;margin-top:1.4rem}
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s ease,transform 1s ease}
.info-list .email-list a {
    display: block;
    line-height: 1.8;
    overflow-wrap: anywhere;
}.reveal.on{opacity:1;transform:none}

/* ---------- SERVIZI — CONDOMINIO INTERATTIVO ---------- */
#servizi{background:var(--bg-2)}
.building-wrap{display:grid;grid-template-columns:minmax(320px,480px) 1fr;gap:6rem;align-items:center}
.building{width:100%;height:auto;display:block}
.building .stroke{stroke:rgba(236,233,226,.8);stroke-width:1.3;fill:none;vector-effect:non-scaling-stroke}
.building .thin{stroke:rgba(236,233,226,.35);stroke-width:1;fill:none;vector-effect:non-scaling-stroke}
.building .win{fill:rgba(236,233,226,.03);stroke:rgba(236,233,226,.55);stroke-width:1;transition:fill .6s,stroke .6s,filter .6s;vector-effect:non-scaling-stroke}
.building .hit{fill:transparent;cursor:pointer}
.building .fl-label{font-family:var(--serif);font-size:15px;fill:rgba(236,233,226,.35);letter-spacing:.2em;transition:fill .5s;text-anchor:end}
.building .floor.lit .win{fill:var(--gold);stroke:var(--gold-light);filter:drop-shadow(0 0 7px rgba(200,164,92,.9))}
.building .floor.lit .fl-label{fill:var(--gold)}
.building .glow{opacity:0;transition:opacity .6s}
.building .floor.lit .glow{opacity:1}
.svc-panel{position:relative;min-height:260px}
.svc-text{position:absolute;inset:0;opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.svc-text.show{opacity:1;transform:none;pointer-events:auto}
.svc-text .eyebrow{margin-bottom:1rem}
.svc-text h3{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;margin-bottom:1.2rem}
.svc-text h3 em{font-style:italic;color:var(--gold-light)}
.svc-text p{color:var(--muted);max-width:52ch}
.svc-nav{display:flex;gap:.9rem;margin-top:9rem;position:relative;z-index:2}
.svc-dot{width:34px;height:34px;border:1px solid var(--line);background:transparent;color:var(--muted);font-family:var(--serif);font-size:.8rem;cursor:pointer;transition:.4s;display:flex;align-items:center;justify-content:center}
.svc-dot.on{border-color:var(--gold);background:var(--gold);color:#080809}
.svc-hint{color:var(--muted);font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;margin-top:1.6rem}

/* ---------- PECULIARITÀ ---------- */
#valori .values{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));border-left:1px solid var(--line)}
.value{padding:3.2rem 2.4rem 3.6rem;border-right:1px solid var(--line);position:relative;transition:background .6s;cursor:default;overflow:hidden}
.value::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--gold),var(--gold-light));transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.value::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%, rgba(200,164,92,.09), transparent 65%);opacity:0;transition:opacity .6s;pointer-events:none}
.value:hover{background:var(--bg-3)}
.value:hover::before{transform:scaleX(1)}
.value:hover::after{opacity:1}
.value .vnum{font-family:var(--serif);font-size:4.5rem;color:transparent;-webkit-text-stroke:1px var(--gold);line-height:1;margin-bottom:1.6rem;transition:color .7s,transform .6s;display:inline-block}
.value:hover .vnum{color:var(--gold);transform:translateY(-6px)}
.value h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin-bottom:.8rem;letter-spacing:.02em;transition:color .5s}
.value:hover h3{color:var(--gold-light)}
.value p{color:var(--muted);font-size:.95rem}
.value .vline{position:absolute;left:2.4rem;bottom:2.2rem;width:30px;height:1px;background:var(--gold);opacity:.4;transition:width .6s,opacity .6s}
.value:hover .vline{width:64px;opacity:1}

/* ---------- TEAM ---------- */
#team{background:var(--bg-2);position:relative;isolation:isolate}
#team::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse 60% 70% at 50% 0%, rgba(200,164,92,.07), transparent 65%)}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem;max-width:1250px;margin:0 auto}
.member{text-align:center;position:relative;padding:0 0 2.4rem;border:1px solid var(--line);background:var(--bg);transition:border-color .5s,transform .5s}
.member:hover{border-color:var(--gold);transform:translateY(-6px)}
.member .photo{aspect-ratio:4/5;overflow:hidden;position:relative;background:
  radial-gradient(ellipse 120% 80% at 50% 110%, rgba(200,164,92,.12), transparent 60%),
  linear-gradient(170deg,#16161a,#0b0b0d);border-bottom:1px solid var(--line)}
.member .photo svg{width:100%;height:100%;display:block}
.wframe{stroke:rgba(236,233,226,.6);stroke-width:1.2;fill:none;vector-effect:non-scaling-stroke}
.wthin{stroke:rgba(236,233,226,.28);stroke-width:1;fill:none;vector-effect:non-scaling-stroke}
.wpane{fill:rgba(236,233,226,.02);transition:fill .7s,filter .7s}
.winit{font-family:var(--serif);font-size:30px;fill:rgba(236,233,226,.85);letter-spacing:.2em;transition:fill .6s}
.member:hover .wpane{fill:rgba(200,164,92,.7);filter:drop-shadow(0 0 9px rgba(200,164,92,.85))}
.member:hover .winit{fill:var(--gold-light)}
.member h3{font-family:var(--serif);font-weight:500;font-size:1.45rem;margin:1.7rem 0 .35rem;letter-spacing:.03em;padding:0 1rem}
.member .role{color:var(--gold);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;padding:0 1rem}
.member .desc{color:var(--muted);font-size:.82rem;line-height:1.6;padding:0 1.6rem;margin-top:.7rem}

/* ---------- PARTNER — STRIP LIBERA ---------- */
#partner{padding-bottom:110px}
.partner-strip{display:flex;justify-content:center;align-items:flex-start;gap:5.5rem 6.5rem;flex-wrap:wrap;margin-top:1rem}
.plogo{text-align:center;transition:transform .5s}
.plogo:hover{transform:translateY(-5px)}
.plogo svg{height:58px;width:auto;display:block;margin:0 auto}
.plogo .bc{fill:rgba(236,233,226,.72);transition:fill .5s}
.plogo .bs{stroke:rgba(236,233,226,.72);fill:none;transition:stroke .5s}
.plogo:hover .bc{fill:var(--c,var(--gold))}
.plogo:hover .bs{stroke:var(--c,var(--gold))}
.plogo .gmb-g{fill:#0e0e10;transition:fill .5s}
.plogo:hover .gmb-g{fill:#fff}
.plogo .pname{font-family:var(--serif);font-size:1.2rem;letter-spacing:.16em;margin-top:1.1rem;text-transform:uppercase;line-height:1}
.plogo .pname span{color:rgba(236,233,226,.85);transition:color .5s}
.plogo:hover .pname span{color:var(--c,var(--gold-light))}
.plogo .ptag{color:var(--muted);font-size:.58rem;letter-spacing:.32em;text-transform:uppercase;margin-top:.7rem;transition:color .5s}
.plogo:hover .ptag{color:var(--gold)}

/* ---------- STUDIO ---------- */
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:5.5rem;align-items:center}
.split .sec-head{margin-bottom:2rem}
.info-list{list-style:none;margin-top:2rem;border-top:1px solid var(--line)}
.info-list li{display:flex;justify-content:space-between;gap:2rem;padding:1.3rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.info-list .k{color:var(--gold);letter-spacing:.24em;text-transform:uppercase;font-size:.68rem;padding-top:.3rem;white-space:nowrap}
.info-list .v{text-align:right}
.map-frame{border:1px solid var(--line);padding:12px;background:var(--bg-3)}
.map-frame iframe{width:100%;height:760px;border:0;filter:grayscale(1) invert(.92) contrast(.9) sepia(.15);display:block}

/* ---------- CONTATTI ---------- */
#contatti{background:var(--bg-2)}
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:5.5rem}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
input,textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--text);font-family:var(--sans);font-weight:300;font-size:.98rem;padding:1.1rem .2rem;margin-bottom:1.4rem;transition:border-color .3s}
input:focus,textarea:focus{outline:none;border-color:var(--gold)}
::placeholder{color:var(--muted);letter-spacing:.05em}
textarea{min-height:140px;resize:vertical}
.form-msg{margin-top:1.2rem;font-size:.85rem;letter-spacing:.08em;display:none}
.form-msg.ok{display:block;color:var(--gold-light)}
.form-msg.err{display:block;color:#d98080}
.contact-item{padding:1.5rem 0;border-bottom:1px solid var(--line)}
.contact-item .k{color:var(--gold);letter-spacing:.26em;text-transform:uppercase;font-size:.68rem;margin-bottom:.4rem}
.contact-item .v{font-family:var(--serif);font-size:1.35rem}
.contact-item a:hover{color:var(--gold-light)}

/* ---------- FOOTER ---------- */
footer{padding:4rem 5vw;border-top:1px solid var(--line)}
.foot{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.foot p{color:var(--muted);font-size:.75rem;letter-spacing:.16em}
.foot .logo{font-size:1rem}

/* ---------- RESPONSIVE ---------- */
@media(max-width:960px){
  .split,.contact-grid{grid-template-columns:1fr;gap:3.5rem}
  .building-wrap{grid-template-columns:1fr;gap:3rem}
  .building{max-width:340px;margin:0 auto}
  .svc-panel{min-height:300px;text-align:center}
  .svc-text p{margin:0 auto}
  .svc-nav{justify-content:center;margin-top:13rem}
  .svc-hint{text-align:center}
  nav{position:fixed;inset:0;background:rgba(8,8,9,.97);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s}
  nav.open{opacity:1;pointer-events:auto}
  nav ul{flex-direction:column;gap:2.4rem;text-align:center}
  nav a{font-size:.95rem}
  .burger{display:flex}
  body.lock{overflow:hidden}
  section{padding:100px 6vw}
  .hero-in{padding-bottom:14vh}
 .info-list .email-list a {
    display: block;
    line-height: 1.8;
    overflow-wrap: anywhere;
} .scroll-hint{display:none}
}

/* ---------- CSP / ACCESSIBILITÀ / UTILITÀ ---------- */
.skip-link {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 1000;
  transform: translateY(-180%);
  background: var(--gold);
  color: var(--bg);
  padding: .75rem 1rem;
  font-weight: 500;
  transition: transform .2s ease;
}

.skip-link:focus { transform: translateY(0); }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sec-head--center { text-align: center; }
.contact-email { font-size: 1.05rem; }

.floor:focus-visible .win,
.svc-dot:focus-visible,
.burger:focus-visible,
.btn:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.partner-color--anaci-red { --c: #e2001a; }
.partner-color--anaci-green { --c: #008c45; }
.partner-color--tmax { --c: #69a8b0; }
.partner-color--tmax-lab { --c: #8a8f98; }
.partner-color--gecomax-gray { --c: #6b7280; }
.partner-color--gecomax-green { --c: #009b8e; }
.partner-color--gecomax-red { --c: #c1121f; }
.partner-color--google-blue { --c: #4285f4; }
.partner-color--google-light-blue { --c: #7baaf7; }
.partner-color--google-red { --c: #ea4335; }
.partner-color--google-yellow { --c: #fbbc05; }
.partner-color--google-green { --c: #34a853; }
.partner-color--claude { --c: #d97757; }

.hero {
  padding: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 25%, rgba(200,164,92,.12), transparent 65%),
    linear-gradient(160deg, #17171a, #080809 70%);
}

.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

button:disabled {
  cursor: wait;
  opacity: .65;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  #intro { display: none; }
  .reveal { opacity: 1; transform: none; }
}

.info-list .email-list a {
    display: block;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.field-help {
    margin: -0.5rem 0 1rem;
    font-size: 0.8rem;
    opacity: 0.65;
}

