/* ============================================================
   Da.co — DACO Capital Invest S.r.l.
   Design system — dark premium, accento oro (dal logo) + signal
   ============================================================ */

/* ---------- Font (self-hosted, GDPR) ---------- */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/Fraunces-600-latin.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/Inter-400-latin.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/Inter-500-latin.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/Inter-600-latin.woff2') format('woff2');}

/* ---------- Tokens ---------- */
:root{
  --bg:#080B0F;
  --surface:#0E141B;
  --surface-2:#151E27;
  --line:#1E2932;
  --line-strong:#2C3A46;
  --text:#EDF1F4;
  --text-muted:#95A3AF;
  --text-faint:#5F6E7A;
  --bronze:#F2B32B;        /* oro del logo — accento istituzionale, statico */
  --bronze-dim:#A87C1D;
  --signal:#00D4A0;        /* accento segnale — solo elementi interattivi */
  --signal-dim:#00A47C;
  --paper:#F7F9FA;
  --paper-ink:#0B1219;
  --danger:#FF6B6B;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --container:1240px;
  --ease:cubic-bezier(.16,1,.3,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;font-weight:400;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit;}
ul,ol{list-style:none;}
::selection{background:var(--bronze);color:#0B0800;}

/* Focus ring — signal, 2px */
:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px;}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--signal);color:#04110D;padding:10px 18px;font-weight:600;z-index:200;}
.skip-link:focus{left:16px;top:16px;}

/* ---------- Tipografia ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-0.01em;line-height:1.15;text-wrap:balance;}
h1{font-size:clamp(38px,5vw,64px);}
h2{font-size:clamp(30px,3.5vw,44px);}
h3{font-size:clamp(22px,2vw,28px);}
p{max-width:68ch;}
.lead{font-size:clamp(18px,1.6vw,20px);color:var(--text-muted);}
.overline{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--bronze);display:block;margin-bottom:16px;}
.small{font-size:14px;}
.num{font-variant-numeric:tabular-nums;}

/* ---------- Layout ---------- */
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.section{padding:128px 0;}
.section--surface{background:var(--surface);}
.section--paper{background:var(--paper);color:var(--paper-ink);}
.section--paper .overline{color:var(--bronze-dim);}
.section--paper .lead{color:#4A5865;}
.section-head{max-width:720px;margin-bottom:64px;}
.section-head h2{margin-bottom:20px;}
.grid{display:grid;gap:24px;}
@media(min-width:768px){
  .grid-2{grid-template-columns:1fr 1fr;}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-4{grid-template-columns:repeat(2,1fr);}
}
@media(min-width:1024px){
  .grid-4{grid-template-columns:repeat(4,1fr);}
}

/* ---------- Header ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s,border-color .3s;border-bottom:1px solid transparent;}
.header.is-scrolled{background:rgba(8,11,15,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:var(--line);}
.header-inner{max-width:var(--container);margin:0 auto;padding:0 24px;height:112px;display:flex;align-items:center;gap:32px;}
.brand{display:flex;align-items:center;gap:16px;flex-shrink:0;}
.brand img{width:84px;height:84px;}
@media(max-width:640px){.header-inner{height:88px;}.brand img{width:64px;height:64px;}}
.brand-name{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.03em;line-height:1.1;white-space:nowrap;}
.brand-name .bn-sub{display:block;font-family:var(--sans);font-weight:400;font-size:13px;color:var(--text-muted);letter-spacing:.1em;margin-top:3px;}
@media(max-width:640px){.brand-name{font-size:17px;}.brand-name .bn-sub{font-size:11px;}}
.nav{display:none;align-items:center;gap:28px;margin-left:auto;}
@media(min-width:1024px){.nav{display:flex;}}
.nav a,.nav .nav-drop-btn{font-size:15px;font-weight:500;color:var(--text-muted);position:relative;padding:6px 0;transition:color .2s;}
.nav a:hover,.nav a:focus-visible,.nav .nav-drop-btn:hover{color:var(--text);}
.nav a::after{content:'';position:absolute;left:0;bottom:0;height:1.5px;width:100%;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .24s var(--ease);}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);}
.nav a[aria-current="page"]{color:var(--text);}
.nav-drop{position:relative;}
.nav-drop-btn{display:flex;align-items:center;gap:6px;}
.nav-drop-btn svg{transition:transform .2s;}
.nav-drop.open .nav-drop-btn svg{transform:rotate(180deg);}
.nav-drop-menu{position:absolute;top:calc(100% + 14px);left:-16px;min-width:280px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:all .2s var(--ease);}
.nav-drop.open .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;visibility:visible;transform:none;}
.nav-drop-menu a{display:block;padding:10px 14px;border-radius:4px;color:var(--text-muted);}
.nav-drop-menu a:hover{background:var(--surface-2);color:var(--text);}
.nav-drop-menu a::after{display:none;}
.header-actions{display:flex;align-items:center;gap:16px;margin-left:auto;}
@media(min-width:1024px){.header-actions{margin-left:0;}}
.lang-switch{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;font-size:13px;font-weight:600;}
.lang-switch a,.lang-switch span{padding:5px 10px;color:var(--text-faint);}
.lang-switch a:hover{color:var(--text);}
.lang-switch .active{background:var(--surface-2);color:var(--text);}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;border-radius:4px;font-size:15px;font-weight:600;transition:all .2s;border:1px solid transparent;}
.btn-primary{background:var(--bronze);color:#140E00;}
.btn-primary:hover{background:#F6C355;transform:translateY(-1px);}
.btn-ghost{border-color:var(--line-strong);color:var(--text);}
.btn-ghost:hover{border-color:var(--signal);color:var(--signal);}
.section--paper .btn-ghost{border-color:#C6CFD6;color:var(--paper-ink);}
.section--paper .btn-ghost:hover{border-color:var(--signal-dim);color:var(--signal-dim);}
.header .btn{padding:10px 20px;display:none;}
@media(min-width:640px){.header .btn{display:inline-flex;}}

/* Mobile menu */
.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;}
@media(min-width:1024px){.menu-toggle{display:none;}}
.menu-toggle span{display:block;height:2px;background:var(--text);transition:transform .3s var(--ease),opacity .2s;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{position:fixed;inset:0;top:88px;background:var(--bg);z-index:99;padding:32px 24px;overflow-y:auto;display:none;}
.mobile-menu.open{display:block;}
.mobile-menu a{display:block;padding:14px 0;font-family:var(--serif);font-size:26px;border-bottom:1px solid var(--line);}
.mobile-menu .sub a{font-family:var(--sans);font-size:17px;color:var(--text-muted);padding:10px 0 10px 20px;border-bottom:none;}
.mobile-menu .btn{margin-top:28px;width:100%;}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:92vh;display:flex;align-items:center;padding:160px 0 96px;overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(1.12) sepia(.10) contrast(1.02) brightness(1.05);}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,10,6,.42) 0%,rgba(12,10,6,.55) 60%,var(--bg) 100%);}
.hero .container{position:relative;z-index:1;}
.hero h1{max-width:860px;margin-bottom:28px;text-shadow:0 2px 28px rgba(0,0,0,.55);}
.hero .lead{max-width:640px;margin-bottom:44px;color:#C9D3DB;text-shadow:0 1px 16px rgba(0,0,0,.6);}
.page-hero h1{text-shadow:0 2px 28px rgba(0,0,0,.55);}
.page-hero .lead{color:#C9D3DB;text-shadow:0 1px 16px rgba(0,0,0,.6);}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;}
.hero-cities{position:absolute;bottom:28px;left:0;right:0;z-index:1;}
.hero-cities .container{display:flex;gap:10px 28px;flex-wrap:wrap;align-items:center;}
.hero-cities span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-weight:500;}
.hero-cities i{width:3px;height:3px;border-radius:50%;background:var(--bronze);display:inline-block;}

/* Page hero (pagine interne) */
.page-hero{position:relative;padding:190px 0 96px;overflow:hidden;}
.page-hero-bg{position:absolute;inset:0;}
.page-hero-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(1.12) sepia(.10) contrast(1.02) brightness(1.05);}
.page-hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,10,6,.48),var(--bg));}
.page-hero .container{position:relative;}
.page-hero h1{margin-bottom:22px;max-width:820px;}
.page-hero .lead{max-width:660px;}

/* ---------- StatBand ---------- */
.stat-band{background:var(--surface);border-bottom:1px solid var(--line);padding:64px 0;}
.stat .rule{margin-bottom:14px;}
.stat b{display:block;font-family:var(--sans);font-size:clamp(34px,3.4vw,46px);font-weight:600;font-variant-numeric:tabular-nums;margin-bottom:6px;}
.stat span:last-child{color:var(--text-muted);font-size:14px;}

/* ---------- PortfolioCard ---------- */
.pf-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:34px 32px;transition:transform .2s,border-color .2s;}
.pf-card:hover{transform:translateY(-2px);border-color:var(--line-strong);}
.pf-card .sec{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);display:block;margin-bottom:10px;}
.pf-card .meta{font-size:13.5px;color:var(--text-faint);display:block;margin-bottom:18px;}
.pf-card hr{border:none;border-top:1px solid var(--line);margin:0 0 18px;}
.pf-card p{font-size:14.5px;color:var(--text-muted);margin-bottom:10px;}

/* ---------- AreaCard ---------- */
.area-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:36px 32px;transition:transform .2s,border-color .2s;position:relative;}
.area-card:hover{transform:translateY(-2px);border-color:var(--line-strong);}
.area-card .n{font-size:14px;font-weight:600;color:var(--bronze);font-variant-numeric:tabular-nums;letter-spacing:.1em;margin-bottom:22px;}
.area-card h3{font-size:22px;margin-bottom:14px;}
.area-card p{color:var(--text-muted);font-size:15px;flex-grow:1;margin-bottom:24px;}
.area-card .more{font-size:14px;font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:8px;position:relative;width:fit-content;}
.area-card .more::after{content:'';position:absolute;left:0;bottom:-3px;height:1.5px;width:100%;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .24s var(--ease);}
.area-card:hover .more::after{transform:scaleX(1);}
.area-card .more svg{transition:transform .2s;}
.area-card:hover .more svg{transform:translateX(3px);}

/* ---------- SectorGrid ---------- */
.sector{border-top:1px solid var(--line);padding:28px 4px 8px;}
.sector svg{stroke:var(--text-muted);stroke-width:1.5;fill:none;width:30px;height:30px;margin-bottom:18px;}
.sector h3{font-size:19px;font-family:var(--sans);font-weight:600;letter-spacing:0;margin-bottom:8px;}
.sector p{font-size:14.5px;color:var(--text-muted);}

/* ---------- ProcessSteps ---------- */
.steps{display:grid;gap:0;position:relative;counter-reset:step;}
@media(min-width:1024px){.steps{grid-template-columns:repeat(4,1fr);gap:40px;}}
.step{position:relative;padding:0 0 40px 44px;}
@media(min-width:1024px){.step{padding:44px 0 0;}}
.step::before{content:'';position:absolute;left:11px;top:34px;bottom:0;width:1.5px;background:var(--line);}
.step:last-child::before{display:none;}
@media(min-width:1024px){
  .step::before{left:34px;top:11px;right:-40px;bottom:auto;width:auto;height:1.5px;}
  .step:last-child::before{display:none;}
}
.step .dot{position:absolute;left:0;top:4px;width:23px;height:23px;border-radius:50%;border:1.5px solid var(--bronze);display:flex;align-items:center;justify-content:center;background:var(--bg);}
@media(min-width:1024px){.step .dot{top:0;}}
.step .dot i{width:7px;height:7px;border-radius:50%;background:var(--bronze);}
.step .k{font-size:13px;font-weight:600;color:var(--bronze);letter-spacing:.1em;font-variant-numeric:tabular-nums;display:block;margin-bottom:10px;}
.step h3{font-size:20px;font-family:var(--sans);font-weight:600;letter-spacing:0;margin-bottom:10px;}
.step p{font-size:15px;color:var(--text-muted);}

/* ---------- CriteriaList ---------- */
.criteria{display:grid;gap:24px;}
@media(min-width:768px){.criteria{grid-template-columns:1fr 1fr;}}
.criteria-col{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:40px 36px;}
.criteria-col h3{font-size:20px;font-family:var(--sans);font-weight:600;letter-spacing:0;margin-bottom:26px;}
.criteria-col li{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-size:15.5px;color:var(--text-muted);}
.criteria-col li b{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;margin-top:2px;}
.criteria-col.plus li b{color:var(--signal);border:1px solid var(--signal-dim);}
.criteria-col.minus li b{color:var(--text-faint);border:1px solid var(--line-strong);}

/* ---------- Presidente ---------- */
.portrait{width:100%;max-width:400px;border-radius:6px;border:1px solid var(--line);filter:grayscale(1) contrast(1.03);}
.pres-grid{display:grid;gap:48px;align-items:start;}
@media(min-width:768px){.pres-grid{grid-template-columns:minmax(260px,400px) 1fr;gap:64px;}}

/* ---------- QuoteBlock ---------- */
.quote{border-left:2px solid var(--bronze);padding:8px 0 8px 32px;max-width:760px;}
.quote p{font-family:var(--serif);font-size:clamp(21px,2.2vw,27px);line-height:1.4;font-weight:600;}
.quote cite{display:block;margin-top:18px;font-style:normal;font-size:14px;color:var(--text-muted);}

/* ---------- CTASection ---------- */
.cta-band{background:var(--surface);border-top:2px solid var(--bronze);padding:96px 0;}
.cta-band h2{margin-bottom:18px;}
.cta-band p{color:var(--text-muted);margin-bottom:36px;max-width:560px;}
.cta-band .hero-ctas{margin:0;}

/* ---------- Values / feature list ---------- */
.value{border-top:1px solid var(--line);padding:28px 4px 8px;}
.value h3{font-size:19px;font-family:var(--sans);font-weight:600;letter-spacing:0;margin-bottom:10px;}
.value h3 b{color:var(--bronze);font-weight:600;}
.value p{font-size:15px;color:var(--text-muted);}

/* Cosa non facciamo */
.nots li{display:flex;gap:18px;align-items:baseline;padding:22px 0;border-top:1px solid var(--line);font-size:clamp(17px,1.8vw,21px);font-weight:500;}
.nots li:last-child{border-bottom:1px solid var(--line);}
.nots li span:first-child{color:var(--text-faint);font-family:var(--serif);font-size:15px;}

/* ---------- Param sheet ---------- */
.params{background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.params-head{padding:22px 32px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);}
.params dl{padding:12px 32px 20px;}
.params .row{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--line);}
.params .row:first-child{border-top:none;}
.params dt{font-size:13.5px;color:var(--text-faint);font-weight:500;padding-top:2px;}
.params dd{font-size:15.5px;color:var(--text);}
@media(max-width:640px){.params .row{grid-template-columns:1fr;gap:4px;}}

/* Info box */
.infobox{background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--bronze);border-radius:0 6px 6px 0;padding:28px 32px;}
.infobox h3{font-size:16px;font-family:var(--sans);font-weight:600;letter-spacing:0;margin-bottom:10px;}
.infobox p{font-size:15px;color:var(--text-muted);}

/* Check list (cosa portiamo) */
.checks li{display:flex;gap:14px;padding:13px 0;border-top:1px solid var(--line);font-size:15.5px;color:var(--text-muted);align-items:baseline;}
.checks li::before{content:'—';color:var(--bronze);flex-shrink:0;}

/* ---------- Candidature hub ---------- */
.path-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:48px 40px;transition:transform .2s,border-color .2s;}
.path-card:hover{transform:translateY(-2px);border-color:var(--line-strong);}
.path-card .overline{margin-bottom:20px;}
.path-card h3{margin-bottom:14px;}
.path-card p{color:var(--text-muted);flex-grow:1;margin-bottom:32px;}

/* ---------- Accordion ---------- */
.accordion{border-top:1px solid var(--line);}
.acc-item{border-bottom:1px solid var(--line);}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;text-align:left;padding:24px 4px;font-size:17px;font-weight:500;color:var(--text);transition:color .2s;}
.acc-btn:hover{color:var(--signal);}
.acc-btn svg{flex-shrink:0;transition:transform .3s var(--ease);stroke:var(--text-faint);}
.acc-item.open .acc-btn svg{transform:rotate(45deg);stroke:var(--signal);}
.acc-panel{overflow:hidden;max-height:0;transition:max-height .35s var(--ease);}
.acc-panel p{padding:0 4px 24px;color:var(--text-muted);font-size:15.5px;}

/* ---------- Form ---------- */
.form-wrap{max-width:720px;}
.form-progress{display:flex;gap:8px;margin-bottom:48px;}
.form-progress li{flex:1;}
.form-progress .bar{height:2px;background:var(--line);border-radius:2px;overflow:hidden;position:relative;}
.form-progress .bar::after{content:'';position:absolute;inset:0;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);}
.form-progress li.done .bar::after,.form-progress li.active .bar::after{transform:scaleX(1);}
.form-progress .lbl{display:block;margin-top:10px;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);}
.form-progress li.active .lbl{color:var(--signal);}
.form-progress li.done .lbl{color:var(--text-muted);}
.form-step{display:none;}
.form-step.active{display:block;animation:fadeUp .4s var(--ease);}
.field{margin-bottom:26px;}
.field label{display:block;font-size:14px;font-weight:600;margin-bottom:9px;}
.field label .req{color:var(--bronze);}
.field label .opt{color:var(--text-faint);font-weight:400;}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=url],.field input[type=number],.field select,.field textarea{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:13px 16px;font:inherit;font-size:15.5px;color:var(--text);transition:border-color .2s;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--signal);}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2395A3AF' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px;}
.field textarea{min-height:120px;resize:vertical;}
.field .hint{font-size:13px;color:var(--text-faint);margin-top:7px;display:flex;justify-content:space-between;}
.field .err{display:none;font-size:13px;color:var(--danger);margin-top:7px;}
.field.invalid .err{display:block;}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger);}
.field-radio-row{display:flex;gap:24px;flex-wrap:wrap;}
.field-radio-row label{display:flex;align-items:center;gap:9px;font-weight:400;font-size:15.5px;margin:0;cursor:pointer;}
.field input[type=radio],.field input[type=checkbox]{accent-color:var(--signal-dim);width:17px;height:17px;flex-shrink:0;}
.field-check{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--text-muted);cursor:pointer;}
.field-check input{margin-top:3px;}
.field-check a{color:var(--text);text-decoration:underline;text-underline-offset:3px;}
.field-file{border:1.5px dashed var(--line-strong);border-radius:6px;padding:28px;text-align:center;color:var(--text-muted);font-size:14.5px;cursor:pointer;transition:border-color .2s;}
.field-file:hover{border-color:var(--signal);}
.field-file input{position:absolute;width:1px;height:1px;opacity:0;}
.form-nav{display:flex;justify-content:space-between;gap:16px;margin-top:44px;}
.form-nav .btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;}
.form-msg{display:none;margin-top:24px;padding:16px 20px;border-radius:4px;font-size:15px;}
.form-msg.error{display:block;background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.35);color:var(--danger);}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden;}

/* ---------- Contatti ---------- */
.contact-item{padding:20px 0;border-top:1px solid var(--line);}
.contact-item .k{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);display:block;margin-bottom:6px;}
.contact-item a{color:var(--text);position:relative;}
.contact-item a:hover{color:var(--signal);}

/* ---------- TODO (solo sviluppo — rimuovere in produzione) ---------- */
.todo{border:1.5px dashed var(--bronze-dim);border-radius:6px;padding:20px 24px;font-size:14px;color:var(--text-muted);background:rgba(242,179,43,.04);}
.todo::before{content:'TODO — dato da confermare';display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);margin-bottom:8px;}

/* ---------- Banner cookie ---------- */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:150;max-width:760px;margin:0 auto;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:6px;padding:20px 24px;display:flex;gap:16px 24px;align-items:center;flex-wrap:wrap;box-shadow:0 12px 40px rgba(0,0,0,.5);}
.cookie-banner p{font-size:14px;line-height:1.55;color:var(--text-muted);flex:1 1 320px;margin:0;max-width:none;}
.cookie-banner a{color:var(--text);text-decoration:underline;text-underline-offset:3px;}
.cookie-banner a:hover{color:var(--signal);}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;}
.cookie-actions .btn{padding:10px 18px;font-size:14px;}
@media(prefers-reduced-motion:no-preference){.cookie-banner{animation:fadeUp .4s var(--ease);}}

/* ---------- Footer ---------- */
.footer{border-top:1px solid var(--line);padding:80px 0 40px;background:var(--bg);}
.footer-grid{display:grid;gap:48px;margin-bottom:64px;}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;}}
.footer .brand{margin-bottom:20px;}
.footer .brand img{width:76px;height:76px;}
.footer-pos{font-size:14.5px;color:var(--text-muted);max-width:300px;margin-bottom:20px;}
.footer-soc{font-size:13px;color:var(--text-faint);line-height:1.8;}
.footer h4{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:20px;}
.footer-col a{display:block;padding:5px 0;font-size:14.5px;color:var(--text-muted);width:fit-content;position:relative;}
.footer-col a:hover{color:var(--signal);}
.footer-bottom{border-top:1px solid var(--line);padding-top:32px;font-size:13px;color:var(--text-faint);}
.footer-bottom p+p{margin-top:14px;max-width:none;font-size:12.5px;line-height:1.7;}

/* ---------- Reveal animations ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease);}
.rv.in{opacity:1;transform:none;}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}

/* Filetto bronzo animato sopra le metriche / sezioni */
.rule{height:2px;background:var(--bronze);width:0;transition:width .8s var(--ease);margin-bottom:18px;}
.rv.in .rule,.rule.in{width:48px;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .rv{opacity:1;transform:none;transition:none;}
  .rule{width:48px;transition:none;}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;}
}

/* ---------- Responsive ---------- */
@media(max-width:767px){
  .section{padding:72px 0;}
  .section-head{margin-bottom:40px;}
  .hero{min-height:auto;padding:150px 0 110px;}
  .page-hero{padding:150px 0 64px;}
  .cta-band{padding:72px 0;}
  .criteria-col,.path-card{padding:32px 24px;}
}
