/* Gd Srl - foglio di stile del sito. Verde bottiglia, avorio, ottone. Font self-hosted: Fraunces (titoli) e Figtree (testi), entrambi SIL OFL. */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/fraunces.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:100 900;font-display:swap;src:url(fonts/fraunces-italic.woff2) format('woff2')}
@font-face{font-family:'Figtree';font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/figtree.woff2) format('woff2')}

:root{
 --g0:#140f3a;--g1:#2b2170;--g2:#352a7d;--g3:#463a94;--teal:#352a7d;
 --ivory:#f5efe3;--paper:#fbf8f2;--champ:#dcd8f0;--brass:#e0652a;--brass2:#ff8a4f;--ot:#b94a15;--ink:#17123f;--mut:#5b5878;--line:rgba(23,18,63,.16);
 --serif:'Fraunces',Georgia,'Times New Roman',serif;--sans:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
 --gut:clamp(20px,4.2vw,72px);--hh:78px;--ease:cubic-bezier(.2,.7,.2,1);--r:26px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:clamp(16px,1.05vw + 8px,18.5px);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%}
img{display:block;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--brass);color:var(--g0);padding:10px 16px;border-radius:8px}
.skip:focus{left:12px}
:focus-visible{outline:2px solid var(--brass2);outline-offset:3px}
.wrap{width:100%;max-width:1480px;margin:0 auto;padding:0 var(--gut)}
.sec{padding:clamp(72px,11vw,168px) 0;position:relative}

/* tipografia */
.h1,.h2,.h3,.big{font-family:var(--serif);font-weight:340;letter-spacing:-.025em;line-height:1.02;font-optical-sizing:auto}
.h1{font-size:clamp(2.7rem,6.6vw,7.4rem)}
.h1-xl{font-size:clamp(2.6rem,7.3vw,8.6rem);line-height:.96}
.h2{font-size:clamp(2.1rem,4.8vw,5rem);line-height:1.02}
.h3{font-size:clamp(1.7rem,2.9vw,3.1rem);line-height:1.06}
.big{font-size:clamp(1.7rem,3.7vw,3.9rem);line-height:1.12;letter-spacing:-.02em}
em{font-style:italic;font-weight:300}
.h1 em,.h2 em,.h3 em,.big em{color:var(--brass);font-weight:300}
.dark .h2 em,.t-green em,.t-deep em,.t-teal em{color:var(--brass2)}
.lead{font-size:clamp(1.05rem,1.5vw,1.45rem);line-height:1.5;max-width:34em;color:inherit;opacity:.86}
.hero,.phero,.novita,.proc,.band,.lux,.clienti.dark,.ftr,.subnav,.ovl,.t-green,.t-deep,.t-teal{--ot:#ff8a4f}
.eyebrow{display:inline-flex;align-items:center;gap:.7em;font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ot);margin-bottom:1.6rem}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor}
.eyebrow .dot{display:none}
.hero .eyebrow::before,.phero .eyebrow::before{background:var(--brass)}

/* pulsanti */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.95em 1.7em;border:1px solid transparent;border-radius:999px;font-weight:600;font-size:.93rem;letter-spacing:.04em;text-decoration:none;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .35s var(--ease),border-color .35s,background .35s;white-space:nowrap}
.btn.lg{padding:1.1em 2em;font-size:1rem}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--ivory);transform:translateY(101%);transition:transform .45s var(--ease);z-index:0}
.btn.brass{background:var(--brass);color:var(--g0)}
.btn.brass:hover,.btn.brass:focus-visible{color:var(--g0)}
.btn.brass:hover::before{transform:none}
.btn.line{border-color:rgba(245,239,227,.55);color:var(--ivory)}
.btn.line::before{background:var(--ivory)}
.btn.line:hover{color:var(--g0)}.btn.line:hover::before{transform:none}
.btn.line-d{border-color:var(--ink);color:var(--ink)}
.btn.line-d::before{background:var(--ink)}
.btn.line-d:hover{color:var(--ivory)}.btn.line-d:hover::before{transform:none}
.btn.solid{background:var(--g1);color:var(--ivory)}
.btn.solid::before{background:var(--brass)}
.btn.solid:hover{color:var(--g0)}.btn.solid:hover::before{transform:none}
.lnk{display:inline-flex;align-items:center;gap:.7em;font-weight:600;font-size:.92rem;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}
.lnk .ar{transition:transform .4s var(--ease)}
.lnk:hover .ar,a:hover>.lnk .ar{transform:translateX(6px)}

/* header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:90;height:var(--hh);color:var(--ivory);transition:background .4s,backdrop-filter .4s,box-shadow .4s}
.hdr.solid{background:rgba(20,15,58,.9);backdrop-filter:saturate(1.2) blur(14px);-webkit-backdrop-filter:saturate(1.2) blur(14px);box-shadow:0 1px 0 rgba(255,138,79,.18)}
.hdr-in{height:100%;display:flex;align-items:center;gap:clamp(16px,2.4vw,40px);padding:0 var(--gut);max-width:1760px;margin:0 auto}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ivory);margin-right:auto}
.logo-m{height:50px;width:auto}
.logo-t{display:flex;flex-direction:column;line-height:1.1}
.logo-t b{font-family:var(--serif);font-weight:420;font-size:1.28rem;letter-spacing:-.01em}
.logo-t i{font-style:normal;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;opacity:.8;margin-top:3px}
.lg-g{fill:var(--brass2)}.lg-d{fill:var(--ivory)}.lg-t{fill:var(--ivory)}
.nav ul{display:flex;gap:clamp(12px,1.8vw,30px)}
.nav a{position:relative;display:block;padding:.6em 0;font-size:.88rem;font-weight:500;letter-spacing:.05em;text-decoration:none;color:var(--ivory)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:.3em;height:1px;background:var(--brass2);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.hdr-cta{padding:.75em 1.35em;font-size:.84rem}
.burger{display:none;width:46px;height:46px;border:1px solid rgba(245,239,227,.4);border-radius:50%;background:transparent;position:relative;cursor:pointer}
.burger i{position:absolute;left:13px;right:13px;height:1.5px;background:var(--ivory);transition:transform .45s var(--ease),top .45s var(--ease)}
.burger i:first-child{top:19px}.burger i:last-child{top:26px}
.burger[aria-expanded=true] i:first-child{top:22.5px;transform:rotate(45deg)}
.burger[aria-expanded=true] i:last-child{top:22.5px;transform:rotate(-45deg)}
.ovl{position:fixed;inset:0;z-index:80;background:var(--g0);color:var(--ivory);padding:calc(var(--hh) + 20px) var(--gut) 32px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.ovl[hidden]{display:block}
.ovl.open{opacity:1;visibility:visible}
.ovl::before{content:"";display:none;position:absolute;right:-4vw;bottom:-6vw;font-family:var(--serif);font-size:62vw;line-height:.8;color:rgba(255,138,79,.06);pointer-events:none}
.ovl-in{min-height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:28px;position:relative}
.ovl-c li{border-bottom:1px solid rgba(245,239,227,.12);overflow:hidden}
.ovl-c a{display:flex;align-items:baseline;gap:16px;padding:.34em 0;font-family:var(--serif);font-weight:320;font-size:clamp(2rem,9.5vw,3.4rem);letter-spacing:-.02em;text-decoration:none;transform:translateY(40px);opacity:0;transition:transform .6s var(--ease),opacity .6s}
.ovl-c em{font-family:var(--sans);font-style:normal;font-size:.8rem;color:var(--brass2);letter-spacing:.14em}
.ovl.open .ovl-c a{transform:none;opacity:1}
.ovl.open li:nth-child(2) a{transition-delay:.05s}.ovl.open li:nth-child(3) a{transition-delay:.1s}.ovl.open li:nth-child(4) a{transition-delay:.15s}.ovl.open li:nth-child(5) a{transition-delay:.2s}.ovl.open li:nth-child(6) a{transition-delay:.25s}
.ovl-f{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.ovl-f p{font-size:.95rem;opacity:.8}.ovl-p{font-size:.7rem!important;letter-spacing:.18em;text-transform:uppercase;color:var(--brass2)}
body.menu-open{overflow:hidden}

/* hero home */
.hero{position:relative;min-height:100svh;background:var(--g1);color:var(--ivory);display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 20% 20%,rgba(70,58,148,.75),transparent 70%),radial-gradient(50% 60% at 90% 100%,rgba(224,101,42,.14),transparent 70%);pointer-events:none}
.hero-t{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hh) + 36px) clamp(16px,3vw,48px) 90px var(--gut)}
.hero-t .lead{margin-top:clamp(18px,2.4vw,34px)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(26px,3vw,44px)}
.hero-cols{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,.9vw,14px);padding:calc(var(--hh) + 14px) var(--gut) 0 0;align-items:end}
.hc{position:relative;overflow:hidden;background:var(--g2);border-radius:999px 999px 0 0}
.hc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,33,112,.18),rgba(43,33,112,.42));mix-blend-mode:multiply;pointer-events:none}
.hc1{height:80%}.hc2{height:100%;margin-top:0}.hc3{height:64%}
.hc .ph-in,.svc-ph .ph-in,.nov figure .ph-in,.ph .ph-in,.band-ph .ph-in{position:absolute;inset:-7% 0;display:block;will-change:transform}
.hc img,.svc-ph img,.nov img,.ph img,.band-ph img{width:100%;height:100%;object-fit:cover}
.hero-badge{position:absolute;z-index:3;left:calc(56% - 70px);bottom:8%;width:140px;height:140px;color:var(--brass2)}
.hero-badge .b-bg{fill:var(--g1);stroke:var(--brass);stroke-width:1}
.hero-badge text{font-family:var(--sans);font-size:11.4px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;fill:currentColor;transform-origin:100px 100px;animation:spin 30s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spin-r{to{transform:rotate(-360deg)}}
.hero-down{position:absolute;z-index:4;left:var(--gut);bottom:26px;width:1px;height:54px;background:rgba(245,239,227,.25);overflow:hidden}
.hero-down i{position:absolute;left:0;top:-100%;width:1px;height:100%;background:var(--brass2);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{to{top:100%}}

/* striscia */
.strip{background:var(--brass);color:var(--g0);overflow:hidden;white-space:nowrap;padding:clamp(14px,1.6vw,24px) 0;border-block:1px solid rgba(20,15,58,.25)}
.strip-t{display:inline-flex;animation:marq 38s linear infinite}
.strip ul{display:flex;flex-shrink:0}
.strip li{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.7rem,4vw,3.6rem);letter-spacing:-.02em;padding:0 clamp(18px,2.2vw,36px);display:flex;align-items:center;gap:clamp(18px,2.2vw,36px)}
.strip li::after{content:"";width:.42em;height:.42em;background:currentColor;transform:rotate(45deg);opacity:.7}
@keyframes marq{to{transform:translateX(-33.3333%)}}

/* manifesto */
.manifesto{background:var(--paper)}
.manifesto .big{max-width:20em;margin-bottom:clamp(36px,5vw,72px)}
.mani-g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,90px);max-width:1100px;color:var(--mut)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:clamp(48px,7vw,100px) 0 40px;border-top:1px solid var(--line)}
.facts>div{padding:28px 24px 8px 0;border-right:1px solid var(--line);margin-right:24px}
.facts>div:last-child{border:0;margin:0}
.facts dt{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ot);font-weight:600}
.facts dd{font-family:var(--serif);font-weight:300;font-size:clamp(3.4rem,9vw,9.5rem);line-height:.95;letter-spacing:-.04em;margin:.12em 0 .08em}
.facts small{display:block;font-size:.9rem;color:var(--mut)}

/* servizi impilati */
.svcs{background:var(--paper);padding:0 0 clamp(24px,3vw,48px)}
.svcs-h{padding-top:clamp(40px,5vw,80px);padding-bottom:clamp(32px,4vw,60px)}
.stack{padding:0 var(--gut);max-width:1760px;margin:0 auto}
.svc{--bg:var(--ivory);--fg:var(--ink);--acc:var(--brass);position:sticky;top:calc(var(--hh) + 14px + var(--i)*16px);height:min(calc(100svh - var(--hh) - 70px),780px);margin-bottom:3.5vh;border-radius:var(--r);overflow:hidden;background:var(--bg);color:var(--fg);box-shadow:0 -18px 50px rgba(20,15,58,.12)}
.t-ivory{--bg:#efe6d3;--acc:#b94a15}.t-green{--bg:var(--g1);--fg:var(--ivory);--acc:var(--brass2)}.t-champ{--bg:var(--champ);--acc:#352a7d}.t-deep{--bg:var(--g0);--fg:var(--ivory);--acc:var(--brass2)}.t-brass{--bg:#ee7c3e;--fg:var(--g0);--acc:var(--g1)}.t-teal{--bg:var(--g2);--fg:var(--ivory);--acc:var(--brass2)}
.svc-in{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);height:100%}
.svc:nth-child(even) .svc-in{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
.svc:nth-child(even) .svc-ph{order:-1}
.svc-t{position:relative;padding:clamp(26px,3.6vw,64px);display:flex;flex-direction:column;justify-content:flex-end;gap:1.1em}
.svc-n{position:absolute;top:clamp(8px,1.2vw,22px);left:clamp(20px,3vw,56px);font-family:var(--serif);font-weight:200;font-size:clamp(5.5rem,13vw,13rem);line-height:.9;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--acc);opacity:.75}
.svc-t .h3{max-width:12em}
.svc-p{max-width:30em;font-size:1.05rem;opacity:.86}
.svc-b{display:flex;flex-wrap:wrap;gap:8px}
.svc-b li{font-size:.78rem;letter-spacing:.05em;padding:.4em 1em;border:1px solid currentColor;border-radius:999px;opacity:.78}
.svc-l{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:.4em}
.svc-l .lnk{color:var(--fg)}.svc-l .lnk-q{color:var(--acc)}
.svc-ph{position:relative;overflow:hidden;margin:0}
.svc-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,33,112,.08),rgba(43,33,112,.28));mix-blend-mode:multiply;pointer-events:none}
.svc:hover .svc-ph img{transform:scale(1.04)}
.svc-ph img{transition:transform 1.4s var(--ease)}
.new{display:inline-flex;align-items:center;gap:.6em;align-self:flex-start;padding:.38em 1em .38em .8em;border-radius:999px;background:var(--brass);color:var(--g0);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.new i{width:7px;height:7px;border-radius:50%;background:var(--g0);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.9);opacity:.35}}

/* novita' */
.novita{background:var(--g1);color:var(--ivory);overflow:hidden}
.novita::before{content:"Novità";position:absolute;left:-1vw;top:2vw;font-family:var(--serif);font-style:italic;font-weight:200;font-size:clamp(7rem,27vw,30rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(255,138,79,.22);pointer-events:none;white-space:nowrap}
.nov-h{position:relative;margin-bottom:clamp(40px,6vw,96px);padding-top:clamp(40px,10vw,150px)}
.nov-g{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,40px)}
.nov a{display:block;text-decoration:none}
.nov figure{position:relative;overflow:hidden;aspect-ratio:4/5;border-radius:var(--r) var(--r) 0 0;margin:0}
.nov:nth-child(2){margin-top:clamp(0px,6vw,100px)}
.nov figure img{transition:transform 1.4s var(--ease)}
.nov a:hover figure img{transform:scale(1.05)}
.nov-t{padding:clamp(20px,2.4vw,36px) 0 0;display:flex;flex-direction:column;gap:.9em;align-items:flex-start}
.nov-t p{max-width:30em;opacity:.84}
.nov-t .lnk{color:var(--brass2)}

/* perche' */
.perche{background:var(--ivory)}
.perche-g{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,110px);align-items:start}
.perche-ph{position:sticky;top:calc(var(--hh) + 24px)}
.perche-ph .ph{aspect-ratio:3/4;border-radius:999px 999px var(--r) var(--r)}
.vals{margin-top:clamp(28px,4vw,56px)}
.vals li,.val-l li{display:grid;grid-template-columns:64px 1fr;gap:0 20px;padding:clamp(20px,2.4vw,32px) 0;border-top:1px solid var(--line)}
.vn{font-family:var(--serif);font-size:1rem;color:var(--ot);font-weight:400}
.vals h3,.val-l h3,.app h3,.proc-l h3{font-family:var(--serif);font-weight:360;font-size:clamp(1.5rem,2.3vw,2.4rem);letter-spacing:-.02em;line-height:1.1}
.vals p,.val-l p,.app p,.proc-l p{color:var(--mut);margin-top:.5em;max-width:34em}

/* chi siamo */
.intro-g{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(28px,5vw,90px);align-items:start}
.intro-c{display:grid;gap:1.2em;color:var(--mut);padding-top:.8em}
.approccio{background:var(--ivory)}
.approccio .h2,.valori .h2{margin-bottom:clamp(28px,4vw,56px);max-width:14em}
.app-g{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,56px);margin-top:8px}
.app{border-top:1px solid var(--line);padding-top:22px}
.an{display:block;font-family:var(--serif);font-weight:200;font-size:clamp(3.4rem,6vw,6.4rem);line-height:.9;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--brass);margin-bottom:.35em}
.valori{background:var(--paper)}
.val-l{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.6vw,44px)}
.val-l li{display:block;border-top:1px solid var(--line);padding:22px 0 0}
.val-l .vn{display:block;margin-bottom:1em;font-size:.9rem}
.val-l h3{font-size:clamp(1.8rem,2.8vw,3rem)}

/* per chi lavoriamo */
.clienti{background:var(--paper)}
.cl-l li{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:baseline;padding:clamp(22px,3vw,44px) 0;border-top:1px solid var(--line);transition:padding .5s var(--ease)}
.cl-l li:last-child{border-bottom:1px solid var(--line)}
.cl-t{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,4.6vw,4.8rem);letter-spacing:-.03em;line-height:1;transition:color .4s,transform .5s var(--ease)}
.cl-d{color:var(--mut);max-width:26em}
.cl-l li:hover .cl-t{color:var(--ot);transform:translateX(14px)}
.clienti.dark{background:var(--g1);color:var(--ivory)}
.clienti.dark .cl-l li{border-color:rgba(245,239,227,.16)}.clienti.dark .cl-d{color:rgba(245,239,227,.72)}
.nf-l a{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:baseline;text-decoration:none;width:100%}
.nf-l .cl-l li{display:block;padding:0}.nf-l .cl-l a{padding:clamp(18px,2.4vw,34px) 0}

/* processo */
.proc{background:var(--g0);color:var(--ivory)}
.proc .h2{margin-bottom:clamp(40px,6vw,90px);max-width:14em}
.proc-l{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,40px);counter-reset:p}
.proc-l li{position:relative;padding-top:24px;border-top:1px solid rgba(255,138,79,.5)}
.pn{display:block;font-family:var(--serif);font-weight:200;font-size:clamp(3.6rem,7vw,7.6rem);line-height:.9;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--brass2);margin-bottom:.3em}
.proc-l p{color:rgba(245,239,227,.72)}

/* faq */
.faq{background:var(--paper)}
.faq-in{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,100px)}
.faq-h{position:sticky;top:calc(var(--hh) + 30px);align-self:start}
.faq-l details{border-top:1px solid var(--line)}
.faq-l details:last-child{border-bottom:1px solid var(--line)}
.faq-l summary{display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;padding:1.3em 0;list-style:none;font-family:var(--serif);font-weight:360;font-size:clamp(1.2rem,1.8vw,1.7rem);letter-spacing:-.015em;line-height:1.2}
.faq-l summary::-webkit-details-marker{display:none}
.faq-l summary i{position:relative;flex:none;width:34px;height:34px;border:1px solid var(--ink);border-radius:50%;transition:transform .5s var(--ease),background .3s}
.faq-l summary i::before,.faq-l summary i::after{content:"";position:absolute;left:9px;right:9px;top:50%;height:1px;background:var(--ink)}
.faq-l summary i::after{transform:rotate(90deg);transition:transform .5s var(--ease)}
.faq-l details[open] summary i{background:var(--brass);border-color:var(--brass)}
.faq-l details[open] summary i::after{transform:rotate(0)}
.faq-l details p{padding:0 3.5em 1.6em 0;color:var(--mut);max-width:42em}

/* banda finale */
.band{background:var(--g1);color:var(--ivory);overflow:hidden}
.band-in{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,5vw,90px);align-items:end}
.band-big{font-family:var(--serif);font-weight:260;font-size:clamp(3.4rem,12.5vw,13.5rem);line-height:.9;letter-spacing:-.045em}
.band-big span{color:var(--brass)}
.band-r p{opacity:.8;max-width:26em;margin-bottom:1.6em}

/* heroes interni */
.phero{position:relative;background:var(--g1);color:var(--ivory);padding:calc(var(--hh) + clamp(34px,5vw,80px)) 0 0;overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 70% at 15% 10%,rgba(70,58,148,.8),transparent 70%),radial-gradient(40% 50% at 95% 95%,rgba(224,101,42,.14),transparent 70%);pointer-events:none}
.phero.dark{background:var(--g0)}
.phero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(20px,4vw,70px);align-items:end}
.phero-t{padding-bottom:clamp(50px,7vw,110px)}
.phero-t .h1{font-size:clamp(2.7rem,7vw,8rem);line-height:.97}
.phero-t .lead{margin-top:clamp(16px,2vw,28px)}
.phero-p{position:relative;align-self:end;height:min(66svh,640px);min-height:340px}
.phero-p .ph-a{position:absolute;inset:0 0 0 12%;border-radius:999px 999px 0 0}
.phero-p .ph-b{position:absolute;left:0;bottom:12%;width:30%;aspect-ratio:3/4;border-radius:var(--r);border:6px solid var(--g1);z-index:2}
.phero.dark .ph-b{border-color:var(--g0)}
.phero-line{position:absolute;left:6%;top:0;bottom:0;width:1px;background:linear-gradient(var(--brass),transparent);opacity:.6}
.phero-s{padding-bottom:clamp(30px,5vw,64px)}
.phero-s .phero-in{grid-template-columns:1fr}
.phero-s .phero-t{padding-bottom:0}
.h1-s{font-family:var(--serif);font-weight:340;font-size:clamp(2.6rem,6vw,6.4rem);letter-spacing:-.03em;line-height:1}
.crumbs{margin-bottom:clamp(24px,3vw,44px)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.4em;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.crumbs li+li::before{content:"/";margin-right:.5em;opacity:.5}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--brass2)}

.subnav{position:sticky;top:var(--hh);z-index:40;background:var(--g0);color:var(--ivory);border-bottom:1px solid rgba(255,138,79,.3)}
.subnav ul{display:flex;gap:clamp(18px,3vw,48px);overflow-x:auto;scrollbar-width:none}
.subnav a{display:block;padding:1.05em 0;font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;white-space:nowrap;opacity:.75;border-bottom:2px solid transparent}
.subnav a:hover,.subnav a.on{opacity:1;color:var(--brass2);border-color:var(--brass2)}

/* blocchi dettaglio */
.blk{padding:clamp(70px,10vw,150px) 0;background:var(--paper);scroll-margin-top:calc(var(--hh) + 50px)}
.blk.alt{background:var(--ivory)}
.blk-g{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,6vw,110px);align-items:center}
.blk.flip .blk-ph{order:2}
.blk-ph{position:relative;padding-bottom:clamp(30px,6vw,90px)}
.ph{position:relative;overflow:hidden;margin:0}
.ph-main{aspect-ratio:4/5;border-radius:var(--r)}
.blk-ph .ph-main{border-radius:999px 999px var(--r) var(--r)}
.ph-side{position:absolute;right:-4%;bottom:0;width:44%;aspect-ratio:3/4;border-radius:var(--r);border:8px solid var(--paper);z-index:2}
.blk.alt .ph-side{border-color:var(--ivory)}
.blk.flip .ph-side{right:auto;left:-4%}
.blk-n{font-family:var(--serif);font-weight:200;font-size:clamp(5rem,11vw,11rem);line-height:.85;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--brass);margin-bottom:.1em}
.blk-t .h2{margin-bottom:.5em}
.blk-t .lead{margin-bottom:1.1em;opacity:1;color:var(--ink)}
.blk-t>p:not(.lead):not(.blk-n):not(.blk-lh){color:var(--mut);margin-bottom:1em;max-width:36em}
.blk-lh{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ot);margin:1.6em 0 .6em}
.ticks{display:grid;gap:.1em;margin-bottom:1.8em}
.ticks li{position:relative;padding:.75em 0 .75em 2.2em;border-bottom:1px solid var(--line)}
.ticks li::before{content:"";position:absolute;left:.2em;top:1.25em;width:9px;height:9px;background:var(--brass);transform:rotate(45deg)}
.blk-c{margin-top:1.4em}

/* luxury & yacht */
.lux{position:relative;background:var(--g0);color:var(--ivory);padding:clamp(70px,10vw,150px) 0;overflow:hidden;scroll-margin-top:calc(var(--hh) + 50px)}
.lux-y{background:var(--teal)}
.lux-g{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,6vw,110px);align-items:center}
.lux-g.flip .lux-p{order:-1}
.lux-t .blk-n{-webkit-text-stroke-color:var(--brass2)}
.lux-t .new{margin-bottom:1.2rem}
.lux-t .h2{margin-bottom:.5em}
.lux-t .lead{margin-bottom:1em;opacity:1}
.lux-t>p:not(.lead):not(.blk-n){opacity:.78;max-width:34em}
.lux .ticks li{border-color:rgba(245,239,227,.18)}
.lux-l{margin:1.6em 0 2em}
.lux-l li{display:flex;gap:1.4em;align-items:baseline;padding:.95em 0;border-bottom:1px solid rgba(245,239,227,.16);font-family:var(--serif);font-size:clamp(1.2rem,1.9vw,1.8rem);font-weight:320;letter-spacing:-.01em}
.lux-l span{font-family:var(--sans);font-size:.78rem;color:var(--brass2);letter-spacing:.14em}
.lux-p{position:relative;padding-bottom:clamp(30px,6vw,90px)}
.lux-p .ph-main{border-radius:var(--r) var(--r) 999px 999px}
.lux-p .ph-side{border-color:var(--g0)}.lux-y .lux-p .ph-side{border-color:var(--teal)}
.band-ph{position:relative;overflow:hidden;height:clamp(300px,48vw,620px);display:grid;place-items:center;background:var(--g1)}
.band-ph .ph-in{inset:-16% 0}
.band-ph::after{content:"";position:absolute;inset:0;background:rgba(20,15,58,.42)}
.band-q{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:0 .45em;font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,8.6vw,9.5rem);letter-spacing:-.035em;line-height:1;color:var(--ivory);text-align:center;padding:0 var(--gut)}
.band-q em{color:var(--champ)}
.waves{position:absolute;left:0;right:0;top:0;height:220px;opacity:.5;pointer-events:none}
.waves svg{width:200%;height:100%;animation:wave 22s linear infinite}
.waves path{fill:none;stroke:var(--brass2);stroke-width:1;opacity:.55}
.waves path:nth-child(2){opacity:.4}.waves path:nth-child(3){opacity:.28}.waves path:nth-child(4){opacity:.16}
@keyframes wave{to{transform:translateX(-50%)}}

/* contatti */
.cont{background:var(--paper)}
.cont-g{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,90px);align-items:start}
.cont-f{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3.6vw,56px);box-shadow:0 30px 80px -40px rgba(43,33,112,.35)}
.cont-f .h3{margin-bottom:1em}
.cont-a{display:grid;gap:1.2em;position:sticky;top:calc(var(--hh) + 30px)}
.cont-a .h3{font-size:clamp(1.5rem,2.2vw,2.2rem);margin-top:.6em}
.steps{counter-reset:s;display:grid;gap:.4em}
.steps li{counter-increment:s;position:relative;padding:.8em 0 .8em 3em;border-bottom:1px solid var(--line);color:var(--mut)}
.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:.95em;font-family:var(--serif);color:var(--ot)}
.steps b{color:var(--ink);font-weight:600}
.cont-d p{margin:.3em 0}
.cont-d address{font-style:normal;margin:.3em 0}
.cont-map{margin-top:.8em!important}.cont-map small{display:block;margin-top:.6em;font-size:.78rem;color:var(--mut);max-width:26em}
.cont-d a{text-decoration-color:var(--brass)}

/* modulo lead */
.gd-lead{display:grid;gap:14px}
.gd-lead-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gd-lead label.gd-lead-lab{display:block;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}
.gd-lead input[type=text],.gd-lead input[type=email],.gd-lead input[type=tel],.gd-lead select,.gd-lead textarea{width:100%;padding:15px 16px;border:1px solid rgba(23,18,63,.28);border-radius:14px;background:var(--paper);font:inherit;font-size:1rem;color:var(--ink);transition:border-color .25s,box-shadow .25s}
.gd-lead select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 22px) 55%,calc(100% - 16px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:42px}
.gd-lead textarea{resize:vertical;min-height:130px}
.gd-lead input:focus,.gd-lead select:focus,.gd-lead textarea:focus{outline:0;border-color:var(--brass);box-shadow:0 0 0 3px rgba(224,101,42,.25)}
.gd-lead .chk{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--mut);line-height:1.5}
.gd-lead .chk input{margin-top:.28em;accent-color:var(--g1);width:18px;height:18px;flex:none}
.gd-lead-info{font-size:.82rem;line-height:1.55;color:var(--mut)}
.gd-lead .btn{justify-self:start}
.gd-lead .gd-lead-msg{margin:0;padding:12px 16px;border-radius:12px;font-weight:500;font-size:.95rem}
.gd-lead .gd-lead-msg.ok{background:#e6f1e8;color:#1f4a2c}.gd-lead .gd-lead-msg.err{background:#f8e8e3;color:#7e2a19}
.gd-lead-wrap{scroll-margin-top:110px}

/* pagine legali */
.legal{background:var(--paper)}
.gd-legal{max-width:900px}
.gd-legal .gd-eyebrow,.gd-legal .gd-rule{display:none}
.gd-legal h1{font-family:var(--serif);font-weight:340;font-size:clamp(1.9rem,3.2vw,3rem);letter-spacing:-.02em;margin-bottom:1em;line-height:1.1}
.gd-legal h2{font-family:var(--serif);font-weight:360;font-size:clamp(1.5rem,2.3vw,2.2rem);letter-spacing:-.015em;margin:2.2em 0 .6em;line-height:1.15}
.gd-legal h3{font-size:1.05rem;font-weight:700;margin:1.6em 0 .4em}
.gd-legal p,.gd-legal li{color:#2a2655;margin:.7em 0}
.gd-legal ul{list-style:disc;padding-left:1.3em}
.gd-legal a{color:var(--g1);text-decoration-color:var(--brass)}
.gd-tw{overflow-x:auto;margin:1.2em 0;border:1px solid var(--line);border-radius:14px}
.gd-tw table{border-collapse:collapse;width:100%;min-width:640px;font-size:.88rem}
.gd-tw th,.gd-tw td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.gd-tw th{background:var(--ivory);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.gd-btn-consent{background:var(--g1);color:var(--ivory);border:0;border-radius:999px;padding:.9em 1.6em;font-weight:600;cursor:pointer}

/* footer */
.ftr{background:var(--g0);color:var(--ivory);padding:clamp(60px,8vw,120px) 0 28px;position:relative;overflow:hidden}
.ftr-top{display:flex;flex-wrap:wrap;gap:24px 48px;align-items:center;justify-content:space-between;padding-bottom:clamp(40px,6vw,80px);border-bottom:1px solid rgba(245,239,227,.14);margin-bottom:clamp(36px,5vw,70px)}
.ftr-cta-t{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,4vw,4rem);letter-spacing:-.03em;line-height:1.05;max-width:16em}
.ftr-g{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:clamp(24px,4vw,64px)}
.ftr-m{height:clamp(110px,13vw,190px);width:auto;margin-bottom:1.2rem}
.ftr-brand p{font-family:var(--serif);font-weight:300;font-size:1.25rem;opacity:.85;line-height:1.3}
.ftr-h{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brass2);margin-bottom:1.1em}
.ftr li{margin:.5em 0}
.ftr a{text-decoration:none;opacity:.86}.ftr a:hover{opacity:1;color:var(--brass2)}
.ftr address{font-style:normal;margin-bottom:.8em}
.ftr-c p{font-size:.95rem;opacity:.86}
.ftr-note{margin-top:clamp(36px,5vw,64px);font-size:.8rem;opacity:.55;max-width:60em}
.ftr-b{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:22px;padding-top:22px;border-top:1px solid rgba(245,239,227,.14);font-size:.8rem;opacity:.75}
.ftr-l{display:flex;flex-wrap:wrap;gap:8px 24px}

/* cursore arancione */
.cur{position:fixed;left:0;top:0;z-index:300;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid var(--brass);border-radius:50%;pointer-events:none;opacity:0;transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),background .3s,opacity .3s}
.cur.on{opacity:.9}
.cur.big{width:66px;height:66px;margin:-33px 0 0 -33px;background:rgba(224,101,42,.14)}

/* reveal */
.js [data-r]{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js [data-r].in{opacity:1;transform:none}
.js .ph[data-r]{transform:none}

/* complianz */
.cmplz-cookiebanner{font-family:var(--sans)!important}

@media (max-width:1100px){
 .nav ul{gap:12px}.nav a{font-size:.8rem}.hdr-cta{display:none}
 .logo-t i{display:none}
}
@media (max-width:900px){
 :root{--hh:68px;--r:20px}
 .nav,.hdr-cta{display:none}.burger{display:block}
 .hero{grid-template-columns:1fr;min-height:100svh}
 .hero-t{padding:calc(var(--hh) + 26px) var(--gut) 18px}
 .hero-cols{height:34svh;min-height:230px;padding:0 var(--gut);grid-column:1}
 .hero-badge{left:auto;right:5%;bottom:3%;top:auto;width:84px;height:84px}
 .hero-down{display:none}
 .h1-xl{font-size:clamp(2.3rem,10.4vw,3.6rem)}
 .intro-g,.app-g,.mani-g,.perche-g,.faq-in,.band-in,.cont-g,.blk-g,.lux-g,.phero-in,.nov-g,.ftr-g{grid-template-columns:1fr}
 .facts{grid-template-columns:1fr;border:0}
 .facts>div{border-right:0;border-bottom:1px solid var(--line);margin:0;padding:18px 0}
 .svc{position:relative;top:auto;height:auto;margin-bottom:18px;box-shadow:none}
 .svc-in,.svc:nth-child(even) .svc-in{grid-template-columns:1fr;height:auto}
 .svc-ph,.svc:nth-child(even) .svc-ph{order:-1;aspect-ratio:4/3}
 .svc-t{padding:104px 22px 28px}
 .svc-n{font-size:5.6rem;top:12px}
 .nov:nth-child(2){margin-top:0}
 .perche-ph{position:static}.perche-ph .ph{aspect-ratio:4/3;border-radius:var(--r)}
 .cl-l li{grid-template-columns:1fr;gap:8px}.nf-l a{grid-template-columns:1fr}
 .proc-l,.val-l{grid-template-columns:1fr 1fr}
 .faq-h,.cont-a{position:static}.faq-l details p{padding-right:0}
 .phero-p{height:min(52svh,420px);min-height:260px;margin-top:-10px}
 .phero-p .ph-a{inset:0;border-radius:999px 999px 0 0}
 .phero-p .ph-b{display:none}
 .phero-line{display:none}
 .blk.flip .blk-ph,.lux-g.flip .lux-p{order:0}
 .blk-ph{padding-bottom:40px}.ph-side{right:2%;width:38%}.blk.flip .ph-side{left:2%}
 .gd-lead-row{grid-template-columns:1fr}
 .subnav{top:var(--hh)}
 .ftr-g{gap:36px}
 .band-big{font-size:clamp(2.4rem,12.4vw,5.4rem)}
}
@media (max-width:520px){
 .proc-l,.val-l{grid-template-columns:1fr}
 .btn.lg{padding:1em 1.5em}
 .hero-ctas .btn{flex:1 1 100%}
 .cur{display:none}
}
@media (hover:none){.cur{display:none}}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
 .js [data-r]{opacity:1;transform:none}
 .strip{white-space:normal}.strip-t{display:block}.strip ul{flex-wrap:wrap;justify-content:center}.strip ul+ul{display:none}
 .svc{position:relative;top:auto;margin-bottom:18px}
 .ph-in{transform:none!important}
 .cur{display:none}
}
