/* ===== Blocchi CMS (versione responsive delle sezioni originali) ===== */
.skip{position:absolute;left:-999px;top:8px;z-index:9999;background:var(--navy);color:#fff;padding:10px 16px;font-size:13px;font-weight:600;text-decoration:none}
.skip:focus{left:8px}
.logo-txt{font-family:'Poppins',sans-serif;font-weight:900;font-size:18px;color:var(--navy);letter-spacing:-.3px}
a:focus-visible,button:focus-visible,[role=button]:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.nav-links a[aria-current="page"]:not(.nav-cta){color:var(--navy);box-shadow:0 2px 0 var(--sky);padding-bottom:4px}
.nav-dropdown a[aria-current="page"]{color:var(--navy);background:rgba(11,29,74,.06)}
.mobile-menu a.sub{padding-left:32px;font-size:11px;opacity:.7;letter-spacing:1px}
.mobile-menu a[aria-current="page"]{color:var(--navy);font-weight:800}
.nav-links>li{position:relative}
.nav-item:focus-within .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.sec{padding:100px 0}
.sec-white{background:var(--bg2)}
.sec-grey{background:var(--bg3)}
.sec-navy{background:var(--navy);padding:80px 0}
.sec-tight{padding:80px 0}
.sec-tag-light{color:var(--sky2)}
.sec-tag-light::before{background:var(--sky2)}
.btn-lg{font-size:12px;padding:15px 44px}
.btn-block{width:100%;justify-content:center;font-size:13px;padding:16px}
.cta-btn{align-self:flex-start;position:relative;z-index:1}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.file-in{padding:8px 0!important;border:none!important;background:transparent!important}

/* story / image-text */
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:start}
.story-grid.rev>div:first-child{order:2}
.story-text p{font-size:15px;font-weight:300;line-height:1.9;color:var(--ink2);margin-bottom:18px}
.story-text strong{color:var(--navy);font-weight:600}
.story-text{margin-top:22px}
.story-quote{border-left:3px solid var(--sky);padding-left:24px;margin:28px 0}
.story-quote p{font-size:14px;font-weight:300;line-height:1.85;color:var(--ink3);font-style:italic}
.story-img{position:relative}
.story-img .pic{width:100%;aspect-ratio:3/4;background-size:cover;background-position:center;filter:saturate(.8);background-color:var(--bg3)}
.story-badge{position:absolute;bottom:-18px;left:-18px;background:var(--navy);color:#fff;padding:24px 28px}
.story-badge .n{font-family:'Poppins',sans-serif;font-size:44px;font-weight:900;font-style:italic;line-height:1;margin-bottom:4px;color:var(--sky2)}
.story-badge .l{font-size:9px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.55);line-height:1.4}

/* timeline */
.tl-h{margin-bottom:52px}
.tl{list-style:none;position:relative;padding-left:32px;border-left:2px solid rgba(111,163,232,.25)}
.tl-item{position:relative;padding:0 0 36px 32px}
.tl-item:last-child{padding-bottom:0}
.tl-item .dot{position:absolute;left:-41px;top:4px;width:18px;height:18px;border-radius:50%;border:3px solid var(--navy)}
.dot.c-sky2{background:var(--sky2)}.dot.c-sky{background:var(--sky)}.dot.c-blue{background:var(--blue)}
.dot.glow{box-shadow:0 0 0 4px rgba(111,163,232,.2)}
.tl-year{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--sky2);margin-bottom:6px}
.tl-title{font-family:'Poppins',sans-serif;font-size:16px;font-weight:800;color:#fff;margin-bottom:6px}
.tl-text{font-size:14px;font-weight:300;color:rgba(255,255,255,.62);line-height:1.7;max-width:600px}

/* settori + certificazioni */
.sc-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.sc-intro{font-size:15px;font-weight:300;line-height:1.9;color:var(--ink2);margin-bottom:24px}
.sc-intro strong{color:var(--navy);font-weight:600}
.sc-list{list-style:none}
.sc-list li{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px;font-weight:500;color:var(--ink)}
.sc-list li:last-child{border-bottom:none}
.dot6{width:6px;height:6px;background:var(--sky);border-radius:50%;flex-shrink:0;display:inline-block}
.dot6.light{background:var(--sky2)}
.sc-h2{margin-bottom:28px}
.sc-cards{display:flex;flex-direction:column;gap:12px}
.sc-card{background:var(--bg2);border:1px solid var(--line2);padding:20px 24px;display:flex;align-items:flex-start;gap:14px}
.sc-card .ico{font-size:24px;flex-shrink:0;margin-top:2px}
.sc-card .t{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:4px}
.sc-card .s{font-size:12px;font-weight:300;color:var(--ink3)}
.sc-btn{margin-top:20px}

/* team */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.team-card{background:var(--bg3);padding:36px 28px;border-top:3px solid var(--navy)}
.team-card.c1{border-top-color:var(--blue)}.team-card.c2{border-top-color:var(--sky)}
.team-card h3{font-family:'Poppins',sans-serif;font-size:20px;font-weight:900;color:var(--navy);margin-bottom:6px}
.team-card .role{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--sky);margin-bottom:16px}
.team-card p{font-size:13px;font-weight:300;line-height:1.8;color:var(--ink3)}

/* fascia CTA */
.band{background:var(--navy);padding:80px 0}
.band-in{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.band h2{font-family:'Poppins',sans-serif;font-size:clamp(26px,4vw,46px);font-weight:900;color:#fff;line-height:1.05}
.band h2 em{color:var(--sky2);font-style:italic}
.band-btns{display:flex;gap:14px;flex-wrap:wrap}
.cta-simple{text-align:center}
.cta-simple .sec-tag{justify-content:center}
.cta-simple .sec-title{text-align:center;margin-bottom:20px}
.cta-simple p{font-size:15px;font-weight:300;color:var(--ink3);max-width:500px;margin:0 auto 36px}
.btn-outline-navy+.btn,.btn+.btn-outline-navy{margin-left:8px}

/* servizi dettaglio */
.svc-ico-lg{font-size:36px;margin-bottom:18px}
.svc-plain h2{font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--navy);margin-bottom:14px}
.svc-plain p{font-size:14px;font-weight:300;line-height:1.85;color:var(--ink3);margin-bottom:18px}
.svc-plain ul{font-size:13px;font-weight:300;line-height:2;color:var(--ink2);list-style:none;border-top:1px solid var(--line);padding-top:14px}
.svc-plain li{display:flex;align-items:center;gap:8px}
.svc-plain li::before{content:'';width:6px;height:6px;background:var(--sky);border-radius:50%;flex-shrink:0}

/* lavori */
.works-wrap{background:var(--navy)}
.proj-hero-wrap img{aspect-ratio:16/7;object-fit:cover}
.proj-hero-wrap,.proj-gal-item,.gal-item,.cert-card{-webkit-tap-highlight-color:transparent}
.proj-gallery{grid-template-columns:repeat(3,1fr)}
.proj-block{scroll-margin-top:90px}
.proj-hero-wrap{min-height:160px}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:40px}
.gal-item{position:relative;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3;background:var(--bg3)}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gal-item:hover img{transform:scale(1.05)}
.proj-hero-wrap,.proj-gal-item{cursor:zoom-in}

/* lightbox generico */
.lb{position:fixed;inset:0;background:rgba(5,9,22,.95);z-index:9999;display:none;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(8px)}
.lb.open{display:flex}
.lb-fig{max-width:1200px;width:100%;text-align:center;position:relative}
.lb-fig img{max-width:100%;max-height:84vh;object-fit:contain;display:inline-block}
.lb-cap{color:rgba(255,255,255,.7);font-size:13px;margin-top:10px;min-height:18px}
.lb button{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2);width:44px;height:44px;font-size:22px;cursor:pointer;line-height:1}
.lb button:hover{background:var(--sky);border-color:var(--sky)}
.lb-x{top:16px;right:16px}.lb-p{left:16px;top:50%;margin-top:-22px}.lb-n{right:16px;top:50%;margin-top:-22px}
.lb-count{position:absolute;top:26px;left:24px;color:rgba(255,255,255,.55);font-size:12px;letter-spacing:2px}

/* certificazioni */
.cg-h{margin-bottom:12px}
.cg-intro{font-size:14px;font-weight:300;color:var(--ink3);margin-bottom:48px;max-width:560px}
.cert-info{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.ci-card{display:flex;align-items:flex-start;gap:20px;background:var(--bg3);border:1px solid var(--line2);padding:36px}
.ci-card .ico{font-size:40px;flex-shrink:0}
.ci-card h2{font-size:20px;font-weight:700;color:var(--navy);margin-bottom:8px}
.ci-card .sub{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--sky);margin-bottom:14px}
.ci-card p{font-size:14px;font-weight:300;line-height:1.8;color:var(--ink3)}
body.cert-lightbox-open{overflow:hidden}
.cert-lightbox.is-open{display:flex}

/* organigramma */
.org-conn{display:flex;justify-content:center}
.org-row{position:relative;display:flex;align-items:flex-start;justify-content:center}
.org-bar{position:absolute;top:0;height:2px;background:var(--line2)}
.org-col{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}
.org-single{margin-bottom:0}
.org-stub{width:2px;height:24px;background:var(--line2)}
.org-row.wide .org-node{width:90%}
.org-row.wide .node{width:100%;justify-content:center}
.org-node.narrow{width:90%}
.org-node.narrow .node{width:100%}
.org-node{text-align:center}
.node-dark{background:var(--navy2)!important;color:#fff!important;border-color:var(--navy2)!important}
.oc-wrap{max-width:1100px;margin:0 auto;padding:0 40px}
.oc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.oc{background:var(--bg2);padding:32px 24px;border-top:3px solid var(--navy)}
.oc-blue{border-top-color:var(--blue)}.oc-sky{border-top-color:var(--sky)}.oc-navy2{border-top-color:var(--navy2)}
.oc .t{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--sky);margin-bottom:10px}
.oc h3{font-family:'Poppins',sans-serif;font-size:16px;font-weight:900;color:var(--navy);margin-bottom:10px}
.oc p{font-size:13px;font-weight:300;line-height:1.8;color:var(--ink3)}

/* contatti / candidature */
.contact-grid{display:grid;grid-template-columns:3fr 2fr;gap:48px;align-items:start}
.form-title{font-family:'Poppins',sans-serif;font-size:22px;font-weight:900;color:var(--navy);margin-bottom:28px}
.form-wrap{min-width:0}
.form-group input,.form-group textarea{border-radius:0}
.ci-title{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--blue);margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--line2)}
.ci-list{margin-bottom:32px}
.ci-list .it{display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.ci-list .it:last-child{border-bottom:none}
.ci-list .ico{font-size:20px;flex-shrink:0;margin-top:2px}
.ci-list .lbl{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ink3);margin-bottom:4px}
.ci-list .val{font-size:14px;font-weight:500;color:var(--ink);line-height:1.6;display:block;word-break:break-word}
.ci-list a.val{color:var(--blue);text-decoration:none}
.ci-list a.val:hover{text-decoration:underline}
.corp-box{background:var(--navy);padding:28px}
.corp-box .lbl{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--sky2);margin-bottom:8px}
.corp-box .txt{font-size:13px;font-weight:300;color:rgba(255,255,255,.62);line-height:1.9}
.form-privacy a{color:var(--blue)}
.job-profiles{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-bottom:80px}
.jp{background:var(--bg2);padding:36px 28px;border-top:3px solid var(--navy)}
.jp-blue{border-top-color:var(--blue)}.jp-sky{border-top-color:var(--sky)}.jp-navy2{border-top-color:var(--navy2)}
.jp .ico{font-size:32px;margin-bottom:16px}
.jp h3{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}
.jp p{font-size:13px;font-weight:300;line-height:1.8;color:var(--ink3)}
.job-grid{display:grid;grid-template-columns:3fr 2fr;gap:48px;align-items:start}
.offer-box{background:var(--navy);padding:36px;margin-bottom:16px}
.offer-box .lbl{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--sky2);margin-bottom:12px}
.offer-box ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.offer-box li{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(255,255,255,.72)}
.spont-box{background:var(--bg2);border:1px solid var(--line2);padding:28px}
.spont-box .lbl{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.spont-box p{font-size:13px;font-weight:300;line-height:1.75;color:var(--ink3);margin-bottom:14px}
.spont-box a{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue);text-decoration:none}
.form-wrap button[disabled]{opacity:.6;cursor:wait}
.form-group input:invalid.touched,.form-group textarea:invalid.touched{border-color:#ef5350}
.alert{display:none}

/* testi */
.prose-legal h2{font-family:'Poppins',sans-serif;font-size:22px;font-weight:800;color:var(--navy);margin:36px 0 14px;padding-top:12px;border-top:1px solid var(--line)}
.prose-legal h2:first-child{border-top:none;margin-top:0}
.prose-legal p{line-height:1.9}
.prose-legal ul li{margin-bottom:6px}
.prose ol{padding-left:22px;margin-bottom:16px}
.prose ol li{font-size:14px;font-weight:300;line-height:1.8;color:var(--ink2);margin-bottom:6px}
.prose blockquote{border-left:3px solid var(--sky);padding-left:20px;margin:20px 0;font-style:italic;color:var(--ink3)}
.prose table{border-collapse:collapse;width:100%;margin-bottom:16px;font-size:14px}
.prose th,.prose td{border:1px solid var(--line2);padding:8px 12px;text-align:left}
.prose th{background:var(--bg3)}

/* FAQ */
.faq-wrap{max-width:860px}
.faq{margin-top:32px;border-top:1px solid var(--line2)}
.faq details{border-bottom:1px solid var(--line2)}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-size:16px;font-weight:600;color:var(--navy);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--sky);transition:transform .2s}
.faq details[open] summary::after{content:'−'}
.faq-a{padding:0 0 20px}
.faq-a p{font-size:14px;font-weight:300;line-height:1.85;color:var(--ink2);margin-bottom:10px}

/* footer / cookie */
.foot-legal{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.ck-reopen{background:none;border:none;color:rgba(255,255,255,.45);font:inherit;font-size:11px;letter-spacing:.5px;cursor:pointer;padding:0}
.ck-reopen:hover{color:var(--sky2)}
#ck-banner{position:fixed;bottom:0;left:0;right:0;z-index:99998;background:rgba(11,29,74,.98);backdrop-filter:blur(10px);border-top:1px solid rgba(111,163,232,.2);box-shadow:0 -10px 30px rgba(0,0,0,.2)}
#ck-banner[hidden]{display:none}
.ck-in{max-width:1200px;margin:0 auto;padding:22px 52px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.ck-txt{flex:1;min-width:260px}
.ck-h{font-size:14px;font-weight:700;color:#fff;margin-bottom:6px}
.ck-txt p{font-size:12px;font-weight:300;color:rgba(255,255,255,.65);line-height:1.6}
.ck-txt strong{color:rgba(255,255,255,.88)}
.ck-txt a{color:#6fa3e8;text-decoration:none}
.ck-btns{display:flex;gap:10px;flex-wrap:wrap}
.ck-btns button{background:#3b7dd8;color:#fff;border:1px solid #3b7dd8;padding:12px 28px;font:inherit;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;min-height:44px}
.ck-btns button.ghost{background:transparent;color:rgba(255,255,255,.75);border-color:rgba(255,255,255,.25);font-weight:600}
.ck-btns button:hover{filter:brightness(1.12)}

@media(max-width:1100px){
  .oc-grid{grid-template-columns:1fr 1fr}
  .oc-wrap{padding:0 24px}
}
@media(max-width:900px){
  .story-grid,.sc-grid,.contact-grid,.job-grid{grid-template-columns:1fr;gap:48px}
  .story-grid.rev>div:first-child{order:0}
  .story-img .pic{aspect-ratio:16/10}
  .story-badge{left:12px;bottom:-12px}
  .team-grid,.job-profiles{grid-template-columns:1fr}
  .team-grid{gap:16px;margin-top:32px}
  .job-profiles{margin-bottom:48px}
  .cert-info{grid-template-columns:1fr}
  .sec{padding:72px 0}
  .sec-navy{padding:64px 0}
  .proj-gallery,.gal-grid{grid-template-columns:repeat(2,1fr)}
  .band-in{flex-direction:column;align-items:flex-start}
  .ck-in{padding:18px 20px}
  .tl{padding-left:22px}
  .tl-item{padding-left:24px}
  .tl-item .dot{left:-33px}
}
@media(max-width:640px){
  .oc-grid{grid-template-columns:1fr}
  .org-row.wide{flex-direction:column;align-items:center}
  .org-row.wide .org-bar{display:none}
  .org-row.wide .org-col{width:100%;margin-bottom:6px}
  .org-row.wide .org-node{width:70%}
  .org-row:not(.wide) .org-node{width:auto}
  .proj-gallery,.gal-grid{grid-template-columns:1fr 1fr;gap:3px}
  .lb button{width:40px;height:40px}
  .btn-lg{padding:15px 28px}
  .ck-btns{width:100%}.ck-btns button{flex:1}
  .form-wrap{padding:24px 18px}
  .foot-legal{gap:14px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .r{opacity:1;transform:none}
  .hero-bg{animation:none}
}
@media print{
  nav,.mobile-menu,#ck-banner,.hamburger,.skip{display:none!important}
  .r,.org-node{opacity:1!important;transform:none!important}
  body{background:#fff}
}

.doc-sec{padding-top:56px;padding-bottom:64px}
.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:1180px}
.doc-card{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid #e5e7eb;border-left:4px solid var(--navy);border-radius:14px;padding:22px 24px;text-decoration:none;color:var(--ink);box-shadow:0 10px 30px rgba(15,23,42,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.doc-card:hover,.doc-card:focus-visible{transform:translateY(-3px);box-shadow:0 16px 40px rgba(15,23,42,.12);border-left-color:var(--sky)}
.doc-ico{flex:none;width:52px;height:64px;border-radius:6px;background:var(--navy);color:#fff;font:800 13px/64px 'Poppins',sans-serif;letter-spacing:1px;text-align:center}
.doc-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.doc-body strong{font-size:17px;line-height:1.3;color:var(--navy)}
.doc-body span{font-size:14px;font-weight:300;color:var(--ink3)}
.doc-body em{font-style:normal;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--sky)}
@media(max-width:760px){.doc-grid{grid-template-columns:1fr}.doc-card{padding:18px}}
