@import url('https://fonts.googleapis.com/css2?family=Parkinsans:wght@600&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-family);font-size:var(--font-base);line-height:var(--leading-normal);color:var(--color-on-surface);background:var(--color-surface)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;padding:0}
button{font-family:inherit;cursor:pointer}
fieldset{border:0;padding:0;margin:0}

:root{
  --color-primary:#0B4F6C;
  --color-primary-dark:#083D54;
  --color-primary-light:#127696;
  --color-secondary:#0D7A8A;
  --color-accent:#E29578;
  --color-surface:#ffffff;
  --color-surface-alt:#F0F5F4;
  --color-surface-dark:#0B4F6C;
  --color-on-surface:#0f172a;
  --color-on-surface-muted:#5C6B6B;
  --color-on-dark:#f8fafc;
  --color-success:#10b981;
  --color-success-bg:#d1fae5;
  --color-success-border:#6ee7b7;
  --color-error:#ef4444;
  --color-error-bg:#fee2e2;
  --color-error-border:#fca5a5;
  --color-warning:#f59e0b;
  --color-warning-bg:#fef3c7;
  --color-warning-border:#fcd34d;
  --color-info:#3b82f6;
  --color-info-bg:#dbeafe;
  --color-info-border:#93c5fd;

  --font-family:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --font-serif:'Parkinsans','Georgia',sans-serif;
  --font-mono:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,Courier,monospace;

  --font-xs:clamp(0.7rem,0.8vw,0.75rem);
  --font-sm:clamp(0.8rem,0.9vw,0.875rem);
  --font-base:clamp(1rem,1vw,1.125rem);
  --font-lg:clamp(1.125rem,1.2vw,1.25rem);
  --font-xl:clamp(1.25rem,1.5vw,1.5rem);
  --font-2xl:clamp(1.5rem,2vw,2rem);
  --font-3xl:clamp(1.875rem,2.5vw,2.5rem);
  --font-4xl:clamp(2.25rem,3vw,3rem);
  --font-5xl:clamp(3rem,4vw,3.75rem);

  --leading-tight:1.2;
  --leading-normal:1.6;
  --leading-relaxed:1.75;

  --space-1:0.25rem;
  --space-2:0.5rem;
  --space-3:0.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-10:2.5rem;
  --space-12:3rem;
  --space-16:4rem;
  --space-20:5rem;
  --space-24:6rem;

  --radius-sm:0.25rem;
  --radius-md:0.5rem;
  --radius-lg:0.75rem;
  --radius-xl:1rem;
  --radius-full:9999px;

  --shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1);

  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --ease-editorial:cubic-bezier(0.22,1,0.36,1);

  --container-sm:640px;
  --container-md:768px;
  --container-lg:1024px;
  --container-xl:1280px;
  --container-2xl:1440px;
}

.container{width:92%;max-width:var(--container-xl);margin-inline:auto}
.section{padding-block:var(--space-16)}
.section--sm{padding-block:var(--space-10)}
.section--lg{padding-block:var(--space-24)}
.section--alt{background:var(--color-surface-alt)}
.section--dark{background:var(--color-surface-dark);color:var(--color-on-dark)}
.section--primary{background:var(--color-primary);color:var(--color-on-dark)}

h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:var(--leading-tight);letter-spacing:-0.02em;text-wrap:balance}
.display{font-size:var(--font-5xl);font-family:var(--font-serif);font-weight:600}
h2{font-size:var(--font-3xl)}
h3{font-size:var(--font-xl)}
.lede{font-size:var(--font-lg);color:var(--color-on-surface-muted);max-width:65ch}
.mono{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0.18em;font-size:var(--font-xs)}

.grid{display:grid;gap:var(--space-6)}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
.grid-4{grid-template-columns:1fr}
@media(min-width:768px){.grid-2{grid-template-columns:repeat(2,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)}}

.flex{display:flex}
.flex-col{flex-direction:column}
.items-center{align-items:center}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.flex-wrap{flex-wrap:wrap}
.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.gap-10{gap:var(--space-10)}.gap-12{gap:var(--space-12)}
.text-center{text-align:center}.text-left{text-align:left}
.mx-auto{margin-inline:auto}.w-full{width:100%}
.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}
.skip-link{position:absolute;top:-40px;left:0;background:var(--color-primary);color:#fff;padding:var(--space-2) var(--space-4);z-index:10000;transition:top .2s}
.skip-link:focus{top:0}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--font-sm);font-weight:500;border-radius:var(--radius-md);border:1px solid transparent;transition:transform .2s var(--ease-out),box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--color-accent);color:var(--color-primary-dark);border-color:var(--color-accent)}
.btn-primary:hover{background:#d6866a}
.btn-secondary{background:var(--color-surface-alt);color:var(--color-primary);border-color:var(--color-primary)}
.btn-outline{background:transparent;color:var(--color-primary);border-color:currentColor}
.btn-outline-accent{background:transparent;color:var(--color-accent);border-color:var(--color-accent)}
.btn-white{background:#fff;color:var(--color-primary)}
.btn-ghost{background:transparent;color:currentColor;border-color:transparent}
.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-base)}
.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-xs)}

.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid rgba(0,0,0,.05)}
.nav-container{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{font-family:var(--font-serif);font-size:var(--font-2xl);font-weight:700;color:var(--color-primary);display:inline-flex;align-items:center}
.brand-logo{height:40px;width:auto;display:block}
.nav-menu{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);padding:var(--space-6)}
.nav-menu.is-open{display:flex;flex-direction:column;gap:var(--space-4)}
.nav-menu a{display:block;padding:var(--space-2) 0;color:var(--color-on-surface-muted);font-weight:500}
.nav-menu a:hover{color:var(--color-primary)}
.nav-menu .btn-primary{color:var(--color-primary);padding-inline:var(--space-6)}
.nav-toggle{display:flex;flex-direction:column;gap:4px;background:0;border:0;padding:var(--space-2)}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--color-primary)}
@media(min-width:1024px){
.nav-menu{display:flex;position:static;flex-direction:row;align-items:center;background:0;border:0;padding:0;gap:var(--space-6)}
.nav-toggle{display:none}
}

.hero{padding-block:var(--space-24) var(--space-16);position:relative;overflow:hidden}
.hero--gradient{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:var(--color-on-dark)}
.hero--primary{background:var(--color-primary);color:var(--color-on-dark)}
.hero .display{margin-bottom:var(--space-6)}
.hero .lede{color:rgba(255,255,255,.85);margin-bottom:var(--space-8);max-width:60ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4)}
.hero h1 em{color:var(--color-accent);font-style:italic}

.card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid rgba(0,0,0,.06);transition:transform .3s var(--ease-out),box-shadow .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card--elevated{box-shadow:var(--shadow-md);border:0}
.card-icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-surface-alt);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4);color:var(--color-secondary)}
.card h3{margin-bottom:var(--space-3);font-family:var(--font-serif);font-size:var(--font-xl)}
.card p{color:var(--color-on-surface-muted);font-size:var(--font-sm);margin-bottom:var(--space-4)}
.card a{color:var(--color-secondary);font-weight:500}
.card-body{padding:var(--space-6)}

.pill{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-xs);font-family:var(--font-mono);border:1px solid transparent}
.pill--ok{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}
.pill--warn{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}
.pill--danger{background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error-border)}

.kpi-grid{display:grid;gap:var(--space-8);grid-template-columns:1fr}
@media(min-width:640px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}
.kpi{text-align:center}
.kpi .k{display:block;font-family:var(--font-mono);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:0.15em;color:var(--color-on-surface-muted);margin-bottom:var(--space-2)}
.kpi .n{display:block;font-family:var(--font-serif);font-size:var(--font-4xl);color:var(--color-primary);line-height:1}
.kpi .d{display:block;font-family:var(--font-mono);font-size:var(--font-xs);color:var(--color-on-surface-muted);margin-top:var(--space-2)}

.spec-list{border-top:1px solid rgba(0,0,0,.1)}
.spec-list dt,.spec-list dd{padding:var(--space-4) 0;border-bottom:1px solid rgba(0,0,0,.08)}
.spec-list dt{font-family:var(--font-mono);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:0.12em;color:var(--color-on-surface-muted)}
.section--about .spec-list dt{color:var(--color-primary)}
.spec-list dd{margin:0;font-size:var(--font-base);color:var(--color-on-surface)}

.process-steps{display:flex;flex-direction:column;gap:var(--space-8);counter-reset:step}
@media(min-width:768px){.process-steps{flex-direction:row;gap:var(--space-6)}}
.process-steps li{flex:1;position:relative;padding-left:var(--space-12)}
.process-steps li::before{counter-increment:step;content:counter(step,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--font-mono);font-size:var(--font-2xl);color:var(--color-secondary);font-weight:700}
.process-steps h4{font-size:var(--font-lg);margin-bottom:var(--space-2)}
.process-steps p{font-size:var(--font-sm);color:var(--color-on-surface-muted)}

.faq-list{display:flex;flex-direction:column;gap:var(--space-4)}
.faq-item{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-lg)}
.faq-item summary{list-style:none;cursor:pointer;padding:var(--space-4) var(--space-6);display:flex;justify-content:space-between;align-items:center;font-weight:500}
.faq-item summary::-webkit-details-marker{display:none}
.faq-icon{transition:transform .3s var(--ease-spring);color:var(--color-secondary)}
.faq-item[open] .faq-icon{transform:rotate(45deg)}
.faq-answer{padding:0 var(--space-6) var(--space-6);color:var(--color-on-surface-muted);font-size:var(--font-sm);line-height:var(--leading-relaxed)}

.testimonial{background:var(--color-surface-alt);border-radius:var(--radius-lg);padding:var(--space-8)}
.testimonial-quote{font-family:var(--font-serif);font-size:var(--font-2xl);line-height:var(--leading-tight);margin-bottom:var(--space-6);color:var(--color-primary)}
.testimonial-author{font-weight:600}
.testimonial-role{font-size:var(--font-sm);color:var(--color-on-surface-muted)}

.form-group{margin-bottom:var(--space-5)}
.form-row{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media(min-width:768px){.form-row{grid-template-columns:repeat(2,1fr)}}
label{display:block;font-family:var(--font-mono);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:var(--space-2);color:var(--color-on-surface-muted)}
input,textarea,select{width:100%;padding:var(--space-3) var(--space-4);border:1px solid rgba(0,0,0,.12);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-base);background:#fff;transition:border-color .2s}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--color-secondary)}
textarea{min-height:140px;resize:vertical}
.form-hp{position:absolute;left:-9999px;opacity:0}
.form-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-sm);margin-top:var(--space-4)}
.form-message--success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}
.form-message--error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}

.contact-list{display:flex;flex-direction:column;gap:var(--space-4)}
.contact-list li{display:grid;grid-template-columns:120px 1fr;gap:var(--space-4);align-items:baseline;font-size:var(--font-sm)}
.contact-list .mono{color:var(--color-on-surface-muted)}
.contact-list a{color:var(--color-secondary);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.site-footer .contact-list .mono{color:var(--color-accent)}
.site-footer .contact-list a{color:var(--color-accent)}
.site-footer .contact-list li > span:not(.mono){color:var(--color-accent)}

.site-footer{padding-block:var(--space-16) var(--space-8);color:var(--color-on-dark)}
.footer-grid{display:grid;gap:var(--space-10);grid-template-columns:1fr}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.footer-col h4{font-family:var(--font-mono);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:0.15em;margin-bottom:var(--space-4);opacity:.7}
.footer-col ul{display:flex;flex-direction:column;gap:var(--space-3)}
.footer-col a{opacity:.85;font-size:var(--font-sm)}
.footer-col a:hover{opacity:1}
.foot-brand{font-family:var(--font-serif);font-size:var(--font-3xl);margin-bottom:var(--space-4)}
.foot-tagline{font-size:var(--font-base);opacity:.8;max-width:40ch;line-height:var(--leading-relaxed)}
.footer-bottom{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.12);font-size:var(--font-sm);opacity:.6}

.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid rgba(0,0,0,.1);transform:translateY(100%);transition:transform .4s var(--ease-out);z-index:60;padding-block:var(--space-4)}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}
.cookie-actions{display:flex;gap:var(--space-3)}
.cookie-custom{width:100%}
.hidden{display:none}

.app-window{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl);border:1px solid rgba(0,0,0,.08)}
.aw-top{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface-alt);border-bottom:1px solid rgba(0,0,0,.08)}
.aw-dots{display:flex;gap:6px}.aw-dots span{width:10px;height:10px;border-radius:50%;background:rgba(0,0,0,.15)}
.aw-main{padding:var(--space-6)}

.map-embed iframe{width:100%;height:360px;border:0;border-radius:var(--radius-lg);filter:grayscale(30%)}

.legal-page{padding-block:var(--space-16)}
.prose{max-width:70ch;margin-inline:auto}
.prose h1{font-size:var(--font-4xl);margin-bottom:var(--space-6)}
.prose h2{margin-top:var(--space-10);margin-bottom:var(--space-4);font-size:var(--font-2xl)}
.prose p{margin-bottom:var(--space-4);color:var(--color-on-surface-muted)}
.prose ul{list-style:disc;padding-left:var(--space-6);margin-bottom:var(--space-4);color:var(--color-on-surface-muted)}
.prose li{margin-bottom:var(--space-2)}

.section-header{max-width:700px;margin-inline:auto;text-align:center;margin-bottom:var(--space-12)}
.section-badge{display:inline-flex;padding:var(--space-1) var(--space-3);background:var(--color-surface-alt);border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-4);color:var(--color-on-surface-muted)}

.cta-section .section-header{color:inherit}
.cta-section h2{color:inherit}
.cta-section .lede{color:rgba(255,255,255,.85)}

@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.animate-on-scroll,.scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.animate-on-scroll.animated,.scroll-reveal.animated{opacity:1;transform:translateY(0)}
.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}

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

.checkbox-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}
.checkbox-label input[type="checkbox"]{width:auto;margin:0}
.regioni-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2)}
@media(min-width:768px){.regioni-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.regioni-grid{grid-template-columns:repeat(3,1fr)}}
.regioni-grid label{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-family);font-size:var(--font-sm);text-transform:none;letter-spacing:0;margin-bottom:0;color:var(--color-on-surface);cursor:pointer}
.regioni-grid input[type="checkbox"]{width:auto}

.wa-button{position:fixed;bottom:24px;right:24px;z-index:65;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.25);transition:transform .2s var(--ease-out),box-shadow .2s}
.wa-button:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.3)}
@media(max-width:767px){.wa-button{width:48px;height:48px;bottom:16px;right:16px}}