:root{--bg:#1E2224;--ink:#ECEAE4;--gold:#B39E51;--gold-l:#D9C68A;--gold-d:#7A6A2E;--line:#33393B;--muted:#B4B7B6;--muted2:#9A9E9D;--card:#23282A;--card2:#2A2F31;--px:clamp(24px,4.4vw,56px);--display:'Bricolage Grotesque',system-ui,sans-serif;--sans:'Hanken Grotesk',system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--display);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
main{flex:1}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--gold-l)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
img{max-width:100%;display:block}
h1,h2{margin:0;font-weight:600;letter-spacing:-.035em;text-wrap:balance}
p{margin:0}
.sans{font-family:var(--sans)}
.muted{color:var(--muted);font-size:17px;line-height:1.6}
.muted2{color:var(--muted2);font-size:15px;line-height:1.5}
.gold{color:var(--gold)}
.gold-l{color:var(--gold-l);font-size:16px}
.gold-dark{color:var(--gold-d)}
.stack{display:flex;flex-direction:column;gap:20px}
.num{font-size:14px;color:var(--gold);letter-spacing:.1em}
.label{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#8A8E8D}
.label.gold{color:var(--gold)}
.kicker{font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.eyebrow{position:relative;display:flex;align-items:center;gap:12px;font-size:14px;color:var(--gold);letter-spacing:.14em;text-transform:uppercase}
.eyebrow .rule{width:32px;height:1px;background:var(--gold)}
.eyebrow-plain{font-size:14px;color:var(--gold);letter-spacing:.14em;text-transform:uppercase}
.lead{font-family:var(--sans);font-size:clamp(17px,1.6vw,20px);line-height:1.55;color:var(--muted);max-width:620px;text-wrap:pretty}
.btn-gold{display:inline-block;background:var(--gold);color:var(--bg);padding:18px 28px;font-weight:600;font-size:16px;border-radius:999px;border:0;cursor:pointer;font-family:var(--display)}
.btn-gold:hover{background:#C9B46A;color:var(--bg)}
.btn-outline{border:1px solid var(--gold);color:var(--gold-l);padding:11px 20px;font-size:14px;border-radius:999px}
.btn-outline:hover{background:var(--gold);color:var(--bg)}
.link-plain{padding:18px 8px;font-size:16px}
/* header/footer */
.site-header{position:sticky;top:0;z-index:10;background:rgba(30,34,36,.94);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:16px 24px;padding:20px var(--px);border-bottom:1px solid #2A2F31;flex-wrap:wrap}
.logo img{height:40px;width:auto}
.main-nav{display:flex;gap:8px 32px;font-size:15px;flex-wrap:wrap}
.main-nav a.active{color:var(--gold-l)}
.site-footer{padding:28px var(--px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:#8A8E8D;font-family:var(--sans)}
.site-footer nav{display:flex;gap:24px}
.site-footer a{color:#8A8E8D}
.site-footer a.gold{color:var(--gold-l)}
.cta-box{margin:56px var(--px);border:1px solid var(--gold);padding:clamp(32px,5vw,64px);display:flex;justify-content:space-between;align-items:center;gap:32px;border-radius:24px;flex-wrap:wrap}
.cta-box h2{font-size:clamp(32px,4vw,48px)}
/* home */
.hero{position:relative;padding:clamp(72px,9vw,120px) var(--px) clamp(72px,8vw,110px);display:flex;flex-direction:column;gap:36px;overflow:hidden}
.glyph{position:absolute;right:-60px;top:0;font-size:clamp(240px,40vw,520px);line-height:1;font-weight:700;color:#262B2D;letter-spacing:-.06em;pointer-events:none;user-select:none}
.hero h1{position:relative;font-size:clamp(44px,7.2vw,92px);line-height:.98;max-width:1000px}
.hero .lead,.hero .actions{position:relative}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.service-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));border-top:1px solid var(--line)}
.tile{padding:40px var(--px) 48px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:14px}
.tile:hover{background:#23282A;color:var(--ink)}
.tile-title{font-size:24px;font-weight:600;line-height:1.15}
.light-band{background:var(--ink);color:var(--bg);padding:96px var(--px);display:flex;flex-direction:column;gap:48px}
.light-band a{color:var(--bg)}
.band-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.band-head h2{font-size:clamp(40px,5vw,56px);line-height:1}
.case-home{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px}
.light-band .case-feature{background:var(--bg);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;min-height:420px;padding:36px;gap:32px}
.light-band .case-feature:hover{background:#262B2D;color:var(--ink)}
.case-feature-title{font-size:clamp(28px,3vw,36px);font-weight:600;line-height:1.1;letter-spacing:-.02em;max-width:520px;margin-bottom:14px}
.case-mini-col{display:grid;grid-template-rows:1fr 1fr;gap:24px}
.case-mini{border:1px solid #CFCCC3;padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:180px}
.case-mini:hover{border-color:var(--bg)}
.case-mini-title{font-size:24px;font-weight:600;line-height:1.2}
.team-teaser{padding:96px var(--px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:64px;align-items:center}
.team-teaser h2{font-size:clamp(36px,4vw,48px);line-height:1.05}
.dots{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:520px}
.dot{aspect-ratio:1;background:var(--card2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:12px;color:#6E7372}
/* inner pages */
.page-head{padding:clamp(64px,8vw,104px) var(--px) 64px;display:flex;flex-direction:column;gap:28px;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(40px,6vw,76px);line-height:1;max-width:960px}
.service-block{padding:64px var(--px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:48px;scroll-margin-top:90px}
.service-block h2{font-size:clamp(34px,4vw,44px);line-height:1.05}
.points{list-style:none;margin:16px 0 0;padding:0}
.points li{padding:16px 0 16px 32px;border-top:1px solid var(--line);font-family:var(--sans);font-size:17px;position:relative}
.points li::before{content:"—";color:var(--gold);position:absolute;left:0}
.steps-wrap{padding:64px var(--px);display:flex;flex-direction:column;gap:32px}
.steps-wrap h2{font-size:40px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.step{background:var(--card);padding:28px;display:flex;flex-direction:column;gap:12px;border-radius:16px}
.step .num{font-size:13px}
.step-title{font-size:22px;font-weight:600}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filter{padding:10px 18px;border-radius:999px;font-size:14px;border:1px solid #44494B;background:transparent;color:var(--ink);cursor:pointer;font-family:var(--display)}
.filter.is-on{background:var(--gold);border-color:var(--gold);color:var(--bg)}
.case-grid{padding:48px var(--px) 40px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:24px}
.case-card{background:var(--card);display:flex;flex-direction:column;border-radius:4px;overflow:hidden}
.case-card:hover{background:var(--card2);color:var(--ink)}
.case-card[hidden]{display:none}
.case-card-body{padding:28px;display:flex;flex-direction:column;gap:12px}
.case-card .kicker{font-size:12px}
.case-card-title{font-size:24px;font-weight:600;line-height:1.2}
.ph{aspect-ratio:16/10;background:repeating-linear-gradient(45deg,#2A2F31 0 10px,#262B2D 10px 20px);display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:12px;color:#6E7372}
.ph-wide{aspect-ratio:21/9;margin:48px var(--px);font-size:13px}
.ph-portrait{aspect-ratio:4/5;background:var(--card2);align-items:flex-end;justify-content:flex-start;padding:14px}
.case-head{padding:56px var(--px) 0;display:flex;flex-direction:column;gap:28px}
.case-head h1{font-size:clamp(36px,5.6vw,72px);line-height:1.02;max-width:1000px}
.back{font-size:15px;color:var(--muted2)}
.case-cols{padding:0 var(--px) 40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:48px}
.case-col{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--gold);padding-top:24px}
.case-col p{font-family:var(--sans);font-size:17px;line-height:1.6;color:#C9CBCA}
.team-grid{padding:48px var(--px) 40px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px}
.member{display:flex;flex-direction:column;gap:6px}
.member-name{font-size:20px;font-weight:600;margin-top:8px}
/* contact */
.contact{padding:clamp(64px,8vw,104px) var(--px) 96px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:64px}
.contact h1{font-size:clamp(40px,5.6vw,72px);line-height:1}
.contact-mail{display:flex;flex-direction:column;gap:6px;font-family:var(--sans);border-top:1px solid var(--line);padding-top:24px;margin-top:12px}
.contact-mail a{color:var(--gold-l);font-size:20px}
.form{background:var(--card);border-radius:20px;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:22px;font-family:var(--sans)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.form label{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--muted)}
.form input:not([type=checkbox]),.form textarea{background:var(--bg);border:1px solid #3A4042;color:var(--ink);padding:14px 16px;border-radius:10px;font:inherit;font-size:16px;outline:none;width:100%}
.form input:focus,.form textarea:focus{border-color:var(--gold)}
.form textarea{resize:vertical}
.form ::placeholder{color:#6E7372}
.form .is-invalid{border-color:#D27A6A!important}
.chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips legend{font-size:14px;color:var(--muted);margin-bottom:10px;padding:0}
.form .chip{position:relative;display:inline-flex}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{padding:10px 16px;border-radius:999px;font-size:14px;border:1px solid #44494B;color:var(--ink)}
.chip input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--bg)}
.chip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.form .consent{flex-direction:row;align-items:flex-start;gap:10px;font-size:13px;color:var(--muted2);line-height:1.5}
.consent input{margin-top:3px;accent-color:var(--gold)}
.consent a{color:var(--gold-l);text-decoration:underline}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-error{color:#E8A091;font-size:15px}
.form .btn-gold{align-self:flex-start}
.form .btn-gold[disabled]{opacity:.6;cursor:wait}
.sent{background:var(--card);border-radius:20px;padding:48px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--gold)}
.sent[hidden]{display:none}
.sent-glyph{font-size:40px;font-weight:700;color:var(--gold)}
.sent h2{font-size:36px}
@media (max-width:640px){.site-header{padding-top:14px;padding-bottom:14px}.btn-outline{display:none}.glyph{right:-30px}}
.prose{padding:48px var(--px) 96px;max-width:820px;display:flex;flex-direction:column;gap:20px;font-family:var(--sans);font-size:17px;line-height:1.7;color:#C9CBCA}
/* immagini */
.case-img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:#1E2224}
.case-img-wide{display:block;width:calc(100% - 2 * var(--px));margin:48px var(--px);aspect-ratio:21/9;object-fit:cover;border-radius:4px;background:#1E2224}
.avatar{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
img.dot{width:100%;object-fit:cover;padding:0}
/* indice privacy: sempre in colonna */
.toc{display:block}
.toc-list{list-style:decimal;margin:0;padding:0 0 0 22px;display:flex;flex-direction:column;gap:10px}
.toc-list li{display:list-item;color:var(--gold)}
.toc-list a{display:inline;color:var(--muted2)}
.toc-list a:hover{color:var(--gold-l)}
.case-img,.case-img-wide,.avatar{height:auto}
img.dot{aspect-ratio:1;height:auto;object-fit:cover;object-position:center 30%}
