/* SEO.Talenti — font locali (nessuna richiesta a Google) */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-700-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2');}

  :root{
    --ink:#14201c;
    --deep:#0F6E56;
    --leaf:#1D9E75;
    --mint:#E1F5EE;
    --paper:#F7F8F5;
    --slate:#52564F;
    --line:#D8DDD5;
    --white:#FFFFFF;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    line-height:1.6;
    overflow-x:hidden;
  }
  h1,h2,h3,.disp{font-family:'Space Grotesk',sans-serif;}
  .mono{font-family:'JetBrains Mono',monospace;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 32px;}


  /* header */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(247,248,245,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px; max-width:1080px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:10px; flex-shrink:0;}
  .brand img{height:34px; width:auto; max-width:150px; object-fit:contain;}
  .brand-name{font-size:17px; font-weight:600; letter-spacing:-0.01em;}
  .brand-name .dot{color:var(--leaf);}
  nav{display:flex; align-items:center; gap:28px;}
  nav a{font-size:14px; color:var(--slate); transition:color .15s;}
  nav a:hover{color:var(--deep);}
  .nav-desktop{display:flex; align-items:center; gap:26px;}
  .header-actions{display:flex; align-items:center; gap:14px; flex-shrink:0;}
  .menu-toggle{
    display:none; align-items:center; justify-content:center;
    width:38px; height:38px; border-radius:8px; border:1px solid var(--line);
    background:var(--white); color:var(--ink); cursor:pointer; flex-shrink:0;
  }
  .menu-toggle:hover{border-color:var(--deep); color:var(--deep);}
  .mobile-menu{
    display:none; flex-direction:column;
    max-height:0; overflow:hidden;
    border-top:1px solid transparent;
    transition:max-height .25s ease;
  }
  .mobile-menu.open{
    max-height:400px; border-top:1px solid var(--line);
  }
  .mobile-link{
    padding:15px 20px; font-size:15px; color:var(--ink); border-bottom:1px solid var(--line);
    display:block;
  }
  .mobile-link:active{background:var(--mint);}
  .linkedin-link{
    display:flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:50%; color:var(--slate);
    border:1px solid var(--line); transition:color .15s, border-color .15s, background .15s;
  }
  .linkedin-link:hover{color:var(--deep); border-color:var(--deep); background:var(--mint);}
  .lang-switch{
    display:flex; border:1px solid var(--line); border-radius:99px; overflow:hidden;
    font-family:'JetBrains Mono',monospace; font-size:12px;
  }
  .lang-switch a{
    background:none; border:none; padding:6px 12px; cursor:pointer; color:var(--slate);
    letter-spacing:0.04em; display:inline-block;
  }
  .lang-switch a.active{background:var(--deep); color:var(--white);}

  /* hero */
  .hero{
    position:relative;
    padding:120px 32px 100px;
    overflow:hidden;
  }
  .hero-pattern{
    position:absolute; top:-10%; right:-8%; width:560px; height:560px;
    opacity:0.06; pointer-events:none;
  }
  .hero-inner{max-width:1080px; margin:0 auto; position:relative;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.06em;
    color:var(--deep); background:var(--mint); padding:7px 14px; border-radius:99px;
    margin-bottom:28px; text-transform:uppercase;
  }
  .eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--leaf);}
  h1.headline{
    font-size:clamp(36px, 5.4vw, 62px);
    font-weight:600;
    letter-spacing:-0.02em;
    line-height:1.08;
    max-width:820px;
    color:var(--ink);
  }
  h1.headline em{
    font-style:normal; color:var(--deep);
    position:relative;
  }
  .lede{
    margin-top:26px; font-size:18px; color:var(--slate); max-width:560px;
  }
  .hero-cta{margin-top:40px; display:flex; align-items:center; gap:20px; flex-wrap:wrap;}
  .btn-primary{
    background:var(--ink); color:var(--white); padding:14px 26px; border-radius:8px;
    font-size:15px; font-weight:500; display:inline-flex; align-items:center; gap:10px;
    transition:background .15s;
  }
  .btn-primary:hover{background:var(--deep);}
  .btn-primary svg{width:16px; height:16px;}
  .cert-tag{
    font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--slate);
    display:flex; align-items:center; gap:8px;
  }
  .cert-tag .chip{
    background:var(--white); border:1px solid var(--line); border-radius:6px;
    padding:4px 9px; color:var(--deep); font-weight:500;
  }

  /* section shared */
  section{padding:88px 0;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-label{
    font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.08em;
    color:var(--leaf); text-transform:uppercase; margin-bottom:14px; display:block;
  }
  h2.section-title{font-size:clamp(26px,3.4vw,36px); font-weight:600; letter-spacing:-0.015em;}
  .section-desc{margin-top:16px; color:var(--slate); font-size:16px; max-width:560px;}

  /* skills grid */
  .skills{
    background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .skill-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
  .skill-card{background:var(--white); padding:32px 28px;}
  .skill-card .num{
    font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--leaf); display:block; margin-bottom:18px;
  }
  .skill-card h3{font-size:19px; font-weight:600; margin-bottom:10px; letter-spacing:-0.01em;}
  .skill-card p{font-size:14.5px; color:var(--slate); line-height:1.65;}

  /* about */
  .about-grid{
    display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:start;
  }
  .about-text{margin-top:18px; color:var(--slate); font-size:16px; max-width:480px;}
  .about-link{
    margin-top:26px; display:inline-flex; align-items:center; gap:9px;
    font-size:14px; color:var(--deep); font-weight:500; border-bottom:1px solid transparent;
    transition:border-color .15s;
  }
  .about-link:hover{border-color:var(--deep);}
  .badges{
    background:var(--white); border:1px solid var(--line); border-radius:14px; padding:28px;
  }
  .badges-label{
    font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.08em;
    color:var(--leaf); text-transform:uppercase; display:block; margin-bottom:20px;
  }
  .badge-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .badge-item{
    background:var(--mint); border-radius:10px; padding:16px 14px;
    display:flex; flex-direction:column; gap:6px;
  }
  .badge-code{font-size:15px; font-weight:600; color:var(--deep);}
  .badge-name{font-size:12px; color:var(--slate); line-height:1.4;}

  /* projects */
  .project-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
  .project-card{
    background:var(--white); padding:32px 28px; display:flex; flex-direction:column; gap:12px;
    transition:background .15s;
  }
  .project-card:hover{background:var(--mint);}
  .project-top{display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap;}
  .project-name{font-family:'Space Grotesk',sans-serif; font-size:19px; font-weight:600; color:var(--ink);}
  .project-url{font-size:12px; color:var(--leaf);}
  .project-card p{font-size:14.5px; color:var(--slate); line-height:1.65; flex-grow:1;}
  .project-link{
    display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:500; color:var(--deep);
  }

  /* approach */
  .approach-list{display:flex; flex-direction:column;}
  .approach-item{
    display:grid; grid-template-columns:64px 1fr; gap:24px; padding:28px 0; border-top:1px solid var(--line);
  }
  .approach-item:last-child{border-bottom:1px solid var(--line);}
  .approach-item .step{font-family:'JetBrains Mono',monospace; font-size:14px; color:var(--leaf); padding-top:2px;}
  .approach-item h3{font-size:19px; font-weight:600; margin-bottom:8px;}
  .approach-item p{color:var(--slate); font-size:15px; max-width:600px;}

  /* contact */
  .contact{
    background:var(--ink); color:var(--white); border-radius:20px;
    margin:0 32px 40px; padding:64px 48px; text-align:center;
    position:relative; overflow:hidden;
  }
  .contact .hero-pattern{opacity:0.08; right:-15%; top:-30%;}
  .contact h2{font-size:clamp(26px,3.6vw,38px); font-weight:600; letter-spacing:-0.015em; position:relative;}
  .contact p{color:#B8C4BE; margin-top:14px; font-size:16px; position:relative;}
  .contact-links{
    display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap;
    margin-top:34px; position:relative;
  }
  .contact .email-link{
    display:inline-flex; align-items:center; gap:10px;
    font-family:'JetBrains Mono',monospace; font-size:16px; color:var(--white);
    border:1px solid rgba(255,255,255,0.25); padding:14px 24px; border-radius:8px;
    transition:border-color .15s, background .15s; position:relative;
  }
  .contact .email-link:hover{border-color:var(--leaf); background:rgba(29,158,117,0.12);}

  footer{
    padding:32px; text-align:center; font-size:13px; color:var(--slate);
    font-family:'JetBrains Mono',monospace;
  }

  @media (max-width:880px){
    .nav-desktop{display:none;}
    .menu-toggle{display:flex;}
    .mobile-menu{display:flex;}
  }

  @media (max-width:760px){
    .header-inner{padding:12px 14px;}
    .header-actions{gap:8px;}
    .linkedin-link{width:36px; height:36px;}
    .lang-switch a{padding:9px 11px; min-width:34px;}
    .menu-toggle{width:36px; height:36px;}
    .hero{padding:64px 16px 48px;}
    .eyebrow{font-size:11px; padding:6px 12px;}
    .lede{font-size:16px;}
    .hero-cta{gap:14px;}
    .btn-primary{padding:13px 22px; font-size:14px; width:100%; justify-content:center;}
    .cert-tag{font-size:12px; flex-wrap:wrap;}
    .skill-grid{grid-template-columns:1fr;}
    .skill-card{padding:26px 22px;}
    .project-grid{grid-template-columns:1fr;}
    .project-card{padding:26px 22px;}
    .about-grid{grid-template-columns:1fr; gap:32px;}
    .badge-grid{grid-template-columns:1fr 1fr; gap:10px;}
    .badges{padding:22px;}
    .approach-item{grid-template-columns:32px 1fr; gap:16px; padding:22px 0;}
    .contact{margin:0 12px 28px; padding:36px 20px; border-radius:16px;}
    .contact-links{flex-direction:column; align-items:stretch; gap:12px;}
    .contact .email-link{justify-content:center; font-size:14px; padding:14px 18px;}
    section{padding:56px 0;}
    .wrap{padding:0 16px;}
  }

  @media (max-width:400px){
    .badge-grid{grid-template-columns:1fr;}
    .badge-item[style]{grid-column:auto;}
    .brand img{height:26px; max-width:110px;}
  }

  /* pagina servizio */
  .crumbs{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--slate); margin-bottom:22px;}
  .crumbs a{color:var(--deep);} .crumbs a:hover{text-decoration:underline;}
  .btn-ghost{display:inline-flex; align-items:center; gap:8px; padding:13px 22px; border-radius:8px; border:1px solid var(--line); background:var(--white); font-size:15px; font-weight:500; color:var(--ink); transition:border-color .15s,color .15s;}
  .btn-ghost:hover{border-color:var(--deep); color:var(--deep);}
  .facts{display:flex; gap:28px; flex-wrap:wrap; margin-top:44px; padding-top:28px; border-top:1px solid var(--line); max-width:820px;}
  .fact b{display:block; font-family:'Space Grotesk',sans-serif; font-size:26px; font-weight:600; color:var(--deep); letter-spacing:-0.01em;}
  .fact span{font-size:13px; color:var(--slate);}
  .who-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  .who-card{background:var(--white); border:1px solid var(--line); border-radius:14px; padding:26px 24px;}
  .who-card .tag{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--leaf);}
  .who-card h3{font-size:18px; font-weight:600; margin:10px 0 8px;}
  .who-card p{font-size:14.5px; color:var(--slate);}
  .timeline{position:relative; margin-left:8px; border-left:2px solid var(--line);}
  .tl-item{position:relative; padding:0 0 30px 30px;}
  .tl-item:last-child{padding-bottom:0;}
  .tl-item::before{content:""; position:absolute; left:-8px; top:6px; width:14px; height:14px; border-radius:50%; background:var(--white); border:3px solid var(--leaf);}
  .tl-item.done::before{background:var(--leaf);}
  .tl-item.next::before{background:var(--deep); border-color:var(--deep); box-shadow:0 0 0 5px var(--mint);}
  .tl-date{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--deep); font-weight:500;}
  .tl-state{font-family:'JetBrains Mono',monospace; font-size:11px; padding:2px 8px; border-radius:99px; margin-left:8px; background:var(--mint); color:var(--deep); vertical-align:1px;}
  .tl-state.future{background:#FFF4DE; color:#8A5200;}
  .tl-item h3{font-size:17px; font-weight:600; margin:4px 0 4px;}
  .tl-item p{font-size:14.5px; color:var(--slate); max-width:640px;}
  .note{margin-top:28px; font-size:13px; color:var(--slate); max-width:680px;}
  .callout{background:var(--white); border:1px solid var(--line); border-left:4px solid var(--leaf); border-radius:12px; padding:28px; display:grid; grid-template-columns:1fr 1fr; gap:28px;}
  .callout h3{font-size:17px; font-weight:600; margin-bottom:8px;}
  .callout p, .callout li{font-size:14.5px; color:var(--slate);}
  .callout ul{padding-left:18px; margin-top:6px;}
  .fines{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
  .fine{background:var(--white); padding:26px 24px;}
  .fine b{display:block; font-family:'Space Grotesk',sans-serif; font-size:28px; color:var(--ink); letter-spacing:-0.01em;}
  .fine .pct{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--deep);}
  .fine p{font-size:14px; color:var(--slate); margin-top:10px;}
  .faq details{border-top:1px solid var(--line); padding:20px 0;}
  .faq details:last-child{border-bottom:1px solid var(--line);}
  .faq summary{cursor:pointer; list-style:none; font-family:'Space Grotesk',sans-serif; font-size:18px; font-weight:600; display:flex; justify-content:space-between; gap:20px;}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+"; font-family:'JetBrains Mono',monospace; color:var(--leaf); font-size:20px; line-height:1;}
  .faq details[open] summary::after{content:"–";}
  .faq details p{margin-top:12px; color:var(--slate); font-size:15px; max-width:760px;}
  .sources{font-size:12.5px; color:var(--slate); margin-top:24px;}
  .sources a{color:var(--deep); text-decoration:underline;}
  .skill-card a.more{display:inline-flex; gap:6px; margin-top:14px; font-size:13.5px; font-weight:500; color:var(--deep);}
  .skill-card a.more:hover{text-decoration:underline;}
  @media (max-width:880px){ .who-grid{grid-template-columns:1fr;} .fines{grid-template-columns:1fr;} .callout{grid-template-columns:1fr;} }
  @media (max-width:760px){ .facts{gap:18px;} .fact b{font-size:22px;} .btn-ghost{width:100%; justify-content:center;} }

  .tl-item.step::before{background:var(--white); border-color:var(--deep);}
  .related{display:flex; gap:12px; flex-wrap:wrap; margin-top:10px;}
  .related a{display:inline-flex; align-items:center; gap:8px; padding:12px 18px; border:1px solid var(--line); border-radius:10px; background:var(--white); font-size:14.5px; font-weight:500; color:var(--deep); transition:border-color .15s, background .15s;}
  .related a:hover{border-color:var(--deep); background:var(--mint);}
  .skill-card .more + .more{margin-left:14px;}

  /* bio */
  .bio-head{display:flex; align-items:center; gap:18px; margin-top:22px;}
  .bio-photo{width:112px; height:112px; border-radius:18px; object-fit:cover; display:block; box-shadow:0 0 0 4px var(--white), 0 0 0 5px var(--line);}
  .bio-head strong{display:block; font-family:'Space Grotesk',sans-serif; font-size:18px; font-weight:600;}
  .bio-head span{display:block; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--deep); margin-top:4px; line-height:1.5;}
  .bio-head small{display:block; font-size:13px; color:var(--slate); margin-top:2px;}
  .mobile-menu{align-items:stretch; gap:0;} .mobile-menu .mobile-link{text-align:left;}
  /* modulo di contatto */
  .contact .cform{max-width:640px; margin:34px auto 0; text-align:left; position:relative;}
  .cform .hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
  .cgrid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .cgrid .full{grid-column:1 / -1;}
  .cform label{display:flex; flex-direction:column; gap:6px; font-size:13px; color:#B8C4BE; font-weight:500;}
  .cform input, .cform select, .cform textarea{font:inherit; font-size:15px; color:var(--white); background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.22); border-radius:8px; padding:11px 12px; width:100%;}
  .cform select option{color:var(--ink);}
  .cform textarea{resize:vertical; min-height:120px;}
  .cform input:focus, .cform select:focus, .cform textarea:focus{outline:2px solid rgba(29,158,117,0.6); border-color:var(--leaf);}
  .cform .cpriv{flex-direction:row; align-items:flex-start; gap:10px; margin-top:16px; font-size:13.5px;}
  .cform .cpriv input{width:auto; margin-top:3px; accent-color:var(--leaf);}
  .cform .cpriv a{color:var(--white); text-decoration:underline;}
  .btn-send{margin-top:18px; background:var(--leaf); color:var(--white); border:0; border-radius:8px; padding:14px 26px; font:inherit; font-size:15px; font-weight:600; cursor:pointer; transition:background .15s;}
  .btn-send:hover{background:#17876a;} .btn-send[disabled]{opacity:.6; cursor:wait;}
  .cform-msg{margin-top:14px; font-size:14.5px; min-height:1em;}
  .cform-msg.ok{color:#7FE0BA;} .cform-msg.err{color:#FFB4A8;}
  .cform.sent .cgrid, .cform.sent .cpriv, .cform.sent .btn-send{display:none;}
  .cform.sent .cform-msg{font-size:17px; text-align:center; padding:20px 0;}
  .contact .contact-links.alt{margin-top:28px; gap:10px;}
  .contact .contact-links.alt .email-link{font-size:13.5px; padding:10px 16px;}
  .contact noscript p{font-size:13px;}
  @media (max-width:760px){ .cgrid{grid-template-columns:1fr;} .btn-send{width:100%;} }
  footer a{color:var(--deep);} footer a:hover{text-decoration:underline;}
  /* pagine legali */
  .legal{max-width:760px; padding:72px 0 40px;}
  .legal h1{font-size:clamp(30px,4vw,42px); font-weight:600; letter-spacing:-0.02em; margin:14px 0 8px;}
  .legal .upd{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--slate);}
  .legal h2{font-size:20px; font-weight:600; margin:36px 0 10px;}
  .legal p, .legal li{color:var(--slate); font-size:15.5px; margin-top:8px;}
  .legal ul{padding-left:20px;}
  .legal a{color:var(--deep); text-decoration:underline;}
  .legal .box{background:var(--white); border:1px solid var(--line); border-radius:12px; padding:20px 22px; margin-top:12px;}
  .legal .box p{margin-top:2px; color:var(--ink);}
  @media (max-width:760px){ .bio-photo{width:88px; height:88px; border-radius:14px;} .legal{padding:48px 0 24px;} }

  /* ===== menu v3 ===== */
  .nav-desktop{gap:4px;}
  .nav-link{display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:14.5px; font-weight:500; color:var(--slate); background:none; border:0; padding:8px 12px; border-radius:8px; cursor:pointer; transition:color .15s, background .15s; position:relative;}
  .nav-dd.open > .nav-dd-btn{color:var(--deep); background:var(--mint);}
  @media (hover:hover) and (pointer:fine){ .nav-link:hover{color:var(--deep); background:var(--mint);} }
  .nav-dd.is-active > .nav-dd-btn{color:var(--deep);}
  .nav-dd.is-active > .nav-dd-btn::after{content:""; position:absolute; left:12px; right:12px; bottom:2px; height:2px; border-radius:2px; background:var(--leaf);}
  .nav-link .chev{transition:transform .2s;}
  .nav-dd{position:relative;}
  .nav-dd.open .chev{transform:rotate(180deg);}
  .nav-dd-panel{position:absolute; top:100%; left:50%; transform:translate(-50%, 6px); padding-top:10px; opacity:0; visibility:hidden; transition:opacity .18s, transform .18s, visibility .18s; z-index:60;}
  .nav-dd.open .nav-dd-panel{opacity:1; visibility:visible; transform:translate(-50%, 0);}
  /* apertura al passaggio del mouse SOLO con mouse vero: su touch si apre/chiude col tocco */
  @media (hover:hover) and (pointer:fine){
    .nav-dd:not(.closed):hover .nav-dd-panel{opacity:1; visibility:visible; transform:translate(-50%, 0);}
    .nav-dd:not(.closed):hover .chev{transform:rotate(180deg);}
    .nav-dd:not(.closed):hover > .nav-dd-btn{color:var(--deep); background:var(--mint);}
  }
  .dd-grid{display:grid; grid-template-columns:1fr 1fr; gap:4px; width:540px; padding:10px; background:var(--white); border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 40px rgba(20,32,28,.12), 0 2px 6px rgba(20,32,28,.06);}
  .dd-item{display:flex; gap:12px; align-items:flex-start; padding:12px; border-radius:10px; transition:background .15s;}
  .dd-item:hover, .dd-item:focus-visible{background:var(--paper);}
  .dd-item.is-current{background:var(--mint);}
  .dd-ico{flex:0 0 36px; width:36px; height:36px; border-radius:9px; display:grid; place-items:center; background:var(--mint); color:var(--deep);}
  .dd-item:hover .dd-ico, .dd-item.is-current .dd-ico{background:var(--deep); color:var(--white);}
  .dd-txt{display:flex; flex-direction:column; gap:2px; min-width:0;}
  .dd-name{font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:600; color:var(--ink);}
  .dd-desc{font-size:12.5px; color:var(--slate); line-height:1.4;}
  .nav-cta{display:inline-flex; align-items:center; gap:8px; margin-left:10px; padding:9px 16px; border-radius:99px; background:var(--ink); color:var(--white); font-size:14px; font-weight:500; transition:background .15s, transform .15s;}
  .nav-cta:hover{background:var(--deep);}
  .nav-cta:hover svg{transform:translateX(2px);} .nav-cta svg{transition:transform .15s;}
  .nav-link:focus-visible, .nav-cta:focus-visible, .dd-item:focus-visible{outline:2px solid var(--leaf); outline-offset:2px;}
  /* mobile */
  .mobile-menu{transition:max-height .2s ease;} .mobile-menu.open{max-height:720px;}
  .mobile-label{padding:14px 20px 6px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--leaf);}
  .mobile-link.sub{display:flex; align-items:center; gap:12px; padding:10px 20px; border-bottom:0;}
  .mobile-link.sub b{display:block; font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:600;}
  .mobile-link.sub small{display:block; font-size:12.5px; color:var(--slate);}
  .mobile-link.sub.is-current{background:var(--mint);}
  .mobile-link.sub + .mobile-link:not(.sub){border-top:1px solid var(--line);}
  .mobile-cta{display:flex !important; align-items:center; justify-content:center; gap:8px; margin:14px 20px 18px; border:0 !important; border-radius:10px; background:var(--ink); color:var(--white) !important; font-weight:500;}
  @media (max-width:1060px){ .nav-link{padding:8px 9px;} .nav-cta{margin-left:6px; padding:9px 14px;} }
