@font-face{
    font-family:'Fraunces';font-style:italic;font-weight:400 500;font-display:swap;
    src:url('../fonts/fraunces-italic.woff2') format('woff2');
  }
  @font-face{
    font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;
    src:url('../fonts/fraunces-normal.woff2') format('woff2');
  }
  @font-face{
    font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
    src:url('../fonts/manrope.woff2') format('woff2');
  }
:root{
    --verde-scuro:#2a4538;
    --verde-scuro-2:#1c3026;
    --verde-chiaro:#a1d3b9;
    --verde-chiaro-soft:#e3f1e8;
    --rosa:#f76a9b;
    --rosa-soft:#fde3ec;
    --crema:#faf8f2;
    --blanco:#ffffff;
    --texto:#22301f;
    --texto-muted:#5b6b5f;
    --linea:rgba(42,69,56,0.14);
    --radius:18px;
    --maxw:1180px;
    --shadow: 0 20px 50px -25px rgba(42,69,56,0.35);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  body{margin:0;font-family:'Manrope',sans-serif;color:var(--texto);background:var(--crema);line-height:1.65;}
  a{color:inherit;}
  img{max-width:100%;display:block;}
  .wrap{width:min(var(--maxw),calc(100% - 48px));margin:0 auto;}
  h1,h2,h3,h4{font-family:'Fraunces',serif;margin-top:0;color:var(--verde-scuro-2);line-height:1.12;}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border:2px solid var(--verde-scuro-2);border-radius:40px;background:var(--verde-scuro-2);color:var(--blanco);text-decoration:none;font:800 14px 'Manrope',sans-serif;cursor:pointer;transition:.2s;}
  .btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -20px var(--verde-scuro-2);}
  .btn-outline{background:transparent;color:var(--verde-scuro-2);}
  .btn-white{background:var(--blanco);border-color:var(--blanco);color:var(--verde-scuro-2);}
  .btn-white:hover{box-shadow:0 14px 30px -20px rgba(0,0,0,0.4);}
  .eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--rosa);font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;}
  .eyebrow:before{content:'';display:inline-block;width:22px;height:2px;background:var(--rosa);}
  .section-head{max-width:680px;margin-bottom:42px;}
  .section-head h2{font-size:clamp(30px,3.6vw,44px);font-weight:500;letter-spacing:-.01em;margin-bottom:14px;}
  .section-head p{color:var(--texto-muted);font-size:16px;margin:0;}

  /* ---------- HEADER ---------- */
  header{position:sticky;top:0;z-index:50;background:rgba(250,248,242,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--linea);}
  .nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
  .logo-lockup{display:flex;align-items:center;gap:11px;text-decoration:none;}
  .logo-lockup .icon{width:38px;height:38px;object-fit:contain;}
  .logo-lockup .word{font-family:'Fraunces',serif;font-style:italic;font-size:17px;line-height:1.05;color:var(--verde-scuro-2);}
  .logo-lockup .word small{display:block;margin-top:4px;color:var(--rosa);font-family:'Manrope',sans-serif;font-size:9px;font-style:normal;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
  .nav-links{display:flex;gap:30px;list-style:none;margin:0;padding:0;}
  .nav-links a{text-decoration:none;font-size:14px;font-weight:700;color:var(--verde-scuro-2);}
  .nav-links a:hover{color:var(--rosa);}
  .nav-right{display:flex;align-items:center;gap:16px;}
  .lang-switch{display:flex;padding:3px;border-radius:22px;background:var(--verde-chiaro-soft);}
  .lang-switch button{border:0;background:none;padding:6px 10px;border-radius:18px;color:var(--texto-muted);font:700 11px 'Manrope',sans-serif;cursor:pointer;}
  .lang-switch button.active{background:var(--verde-scuro-2);color:var(--blanco);}
  .nav-toggle{display:none;border:0;background:none;padding:6px;cursor:pointer;}
  .nav-toggle span{display:block;width:22px;height:2px;margin:5px 0;background:var(--verde-scuro-2);}

  /* ---------- HERO ---------- */
  .hero{padding:80px 0 84px;overflow:hidden;}
  .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;}
  h1{max-width:640px;margin-bottom:20px;font-size:clamp(38px,5vw,58px);font-weight:500;letter-spacing:-.02em;}
  h1 em{font-style:normal;}
  .hero-lead{max-width:520px;margin-bottom:26px;color:var(--texto-muted);font-size:17px;}
  .hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
  .hero-note{margin:0;color:#56675c;font-size:12.5px;}
  .hero-visual{position:relative;padding:0 18px 26px 0;}
  .photo-echo{position:absolute;inset:16px 0 6px 16px;transform:rotate(-3deg);border-radius:28px;background:var(--verde-chiaro);z-index:1;}
  .hero-photo-frame{position:relative;z-index:2;border-radius:28px 28px 6px 28px;overflow:hidden;box-shadow:var(--shadow);}
  .hero-photo-frame img{width:100%;max-height:560px;object-fit:cover;object-position:center 25%;}

  /* ---------- SERVIZI ---------- */
  section{padding:84px 0;scroll-margin-top:72px;}
  .service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .service-card{position:relative;min-height:290px;padding:32px 28px;border:1px solid var(--linea);border-radius:22px;background:var(--blanco);overflow:hidden;}
  .service-card:nth-child(2){background:var(--verde-chiaro-soft);}
  .service-card:nth-child(3){background:var(--rosa-soft);}
  .service-num{position:absolute;top:16px;right:22px;color:rgba(42,69,56,.09);font:italic 60px 'Fraunces',serif;}
  .service-card h3{position:relative;margin-top:60px;font-size:24px;}
  .service-card p{position:relative;color:#56675c;font-size:14.5px;margin:10px 0 18px;}
  .service-tags{position:relative;display:flex;flex-wrap:wrap;gap:8px;}
  .service-tags span{background:rgba(28,48,38,.07);color:var(--verde-scuro-2);padding:6px 12px;border-radius:100px;font-size:12.5px;font-weight:700;}

  /* ---------- CHI SONO ---------- */
  .about{background:var(--verde-scuro-2);color:var(--blanco);}
  .about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center;}
  .about h2{color:var(--blanco);}
  .about .section-head p{color:#bdcbc3;}
  .work-photo{position:relative;}
  .work-photo img{width:100%;max-height:560px;object-fit:cover;border-radius:28px 28px 6px 28px;box-shadow:var(--shadow);}
  .work-badge{position:absolute;right:-18px;bottom:32px;display:flex;flex-direction:column;padding:16px 22px;border-radius:20px;background:var(--rosa);color:var(--blanco);font:600 42px 'Fraunces',serif;line-height:.92;}
  .work-badge small{margin-top:6px;font:700 10px 'Manrope',sans-serif;text-transform:uppercase;letter-spacing:.06em;}
  .about-desc p{color:#d6e0da;font-size:15px;margin:0 0 16px;}
  .about-quote{margin:22px 0;padding:20px 24px;border-left:3px solid var(--rosa);background:rgba(255,255,255,.06);}
  .about-quote p{font:italic 19px 'Fraunces',serif;color:var(--blanco);margin:0;}
  .chisono-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
  .chisono-chips .chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);padding:8px 14px;border-radius:100px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,0.92);}
  .chisono-chips .fact-icon{font-size:15px;line-height:1;}

  /* ---------- PERCHÉ ---------- */
  .why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .why-card{padding:26px;border-top:2px solid var(--verde-chiaro);background:var(--blanco);}
  .why-icon{width:42px;height:42px;border-radius:12px;background:var(--rosa-soft);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
  .why-icon svg{width:20px;height:20px;stroke:var(--rosa);}
  .why-card h3{font-size:17px;margin-bottom:6px;}
  .why-card p{font-size:14.5px;color:var(--texto-muted);margin:0;}

  /* ---------- SETTORI ---------- */
  .sectors-box{margin-top:72px;padding:46px;border-radius:28px;background:var(--verde-chiaro-soft);}
  .sectors-box .section-head{margin-bottom:26px;}
  .sectors-tags{display:flex;flex-wrap:wrap;gap:10px;}
  .sectors-tags span{padding:10px 18px;border:1px solid rgba(42,69,56,.18);border-radius:100px;background:var(--blanco);font-size:13.5px;font-weight:700;color:var(--verde-scuro-2);}

  /* ---------- REVIEWS ---------- */
  .review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .review-card{display:flex;flex-direction:column;padding:26px;border:1px solid var(--linea);border-radius:20px;background:var(--blanco);}
  .review-stars{color:var(--rosa);letter-spacing:3px;margin-bottom:10px;}
  .review-card p{flex:1;font-family:'Fraunces',serif;font-size:15.5px;color:var(--texto);line-height:1.55;margin:0 0 14px;}
  .review-name{font-size:12px;font-weight:700;color:var(--texto-muted);}
  .review-more{display:flex;justify-content:center;margin-top:30px;}
  .review-more a{display:inline-flex;align-items:center;gap:10px;padding:13px 26px 13px 14px;border-radius:100px;background:var(--verde-scuro-2);text-decoration:none;color:var(--blanco);font-weight:700;font-size:13.5px;box-shadow:0 12px 28px -14px rgba(42,69,56,0.55);transition:transform .22s ease,box-shadow .22s ease,background .22s ease;}
  .review-more a:hover{transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(42,69,56,0.65);background:var(--verde-scuro-2b,#16261e);}
  .review-more .g-badge{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--blanco);flex:0 0 auto;}
  .review-more .g-badge svg{display:block;}
  .review-more .arrow{transition:transform .22s ease;}
  .review-more a:hover .arrow{transform:translateX(4px);}
  @media (prefers-reduced-motion: reduce){
    .review-more a,.review-more .arrow{transition:none;}
    .review-more a:hover{transform:none;}
  }

  /* ---------- PRESENCE BAR ---------- */
  .presence{display:grid;grid-template-columns:1.15fr .85fr;margin-top:70px;border-radius:28px;overflow:hidden;background:var(--verde-chiaro-soft);}
  .presence-text{padding:46px;}
  .presence-text p{font:500 21px 'Fraunces',serif;color:var(--verde-scuro-2);margin:0 0 20px;}
  .presence-tags{display:flex;flex-wrap:wrap;gap:8px;}
  .presence-tags span{padding:9px 15px;border:1px solid rgba(42,69,56,.2);border-radius:30px;background:var(--blanco);font-size:12.5px;font-weight:700;color:var(--verde-scuro-2);}
  .presence img{width:100%;height:100%;object-fit:cover;min-height:280px;}

  /* ---------- CONTATTI ---------- */
  .contact-section{background:var(--verde-scuro);color:var(--blanco);}
  .contact-section h2{color:var(--blanco);max-width:560px;}
  .contact-section .section-head p{color:#d0dbd5;}
  .contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start;}
  .contact-links{display:grid;gap:12px;max-width:390px;margin-top:26px;}
  .contact-link{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:14px 22px;border:2px solid var(--blanco);border-radius:14px;text-decoration:none;font-size:14px;font-weight:800;transition:.2s;}
  .contact-link.primary{background:var(--blanco);color:var(--verde-scuro);}
  .contact-link.secondary{background:transparent;color:var(--blanco);}
  .contact-link:hover{transform:translateY(-2px);}
  .contact-link.secondary:hover{background:rgba(255,255,255,.1);}
  .form-card{padding:34px;border-radius:24px;background:var(--blanco);color:var(--texto);}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .form-card label{display:block;margin-bottom:15px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}
  .form-card input,.form-card select,.form-card textarea{width:100%;margin-top:7px;padding:13px;border:1px solid #d6ded8;border-radius:10px;background:var(--crema);color:var(--texto);font:14px 'Manrope',sans-serif;}
  .form-card textarea{min-height:110px;resize:vertical;}
  .form-card .btn{width:100%;border:none;}
  .form-note{display:block;margin-top:12px;color:#56675c;text-align:center;font-size:12px;}
  .form-success{display:none;padding:60px 20px;text-align:center;}
  .form-success.show{display:block;}
  .form-success .ic{font-size:36px;margin-bottom:12px;}

  /* ---------- FOOTER ---------- */
  footer{padding:50px 0 20px;background:var(--verde-scuro-2);color:var(--blanco);}
  .footer-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.12);}
  .footer-brand{display:flex;align-items:center;gap:11px;}
  .footer-brand .word{font-family:'Fraunces',serif;font-style:italic;font-size:17px;color:var(--blanco);}
  .footer-brand .word small{display:block;margin-top:4px;color:#9bb0a4;font-family:'Manrope',sans-serif;font-size:12px;font-style:normal;font-weight:600;text-transform:none;}
  .footer-assoc-label{color:#a3b5aa;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;}
  .footer-assoc-logos{display:flex;align-items:center;gap:12px;}
  .footer-assoc-logo{height:28px;width:auto;background:var(--blanco);padding:5px 9px;border-radius:8px;}
  .footer-legal-text{margin-top:26px;font-size:11.5px;line-height:1.7;color:rgba(255,255,255,0.5);text-align:right;}
  .footer-legal-text p{margin:0;}
  .footer-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);color:#82968b;font-size:11px;}
  .footer-bottom a{color:inherit;text-decoration:underline;}

  @media (max-width:900px){
    .nav-links,.lang-switch{display:none;}
    .nav-links.open{
      display:flex;flex-direction:column;gap:4px;position:absolute;top:100%;left:0;right:0;
      padding:18px 24px;background:var(--crema);border-bottom:1px solid var(--linea);
    }
    .nav-links.open a{padding:10px 0;}
    .nav-toggle{display:block;}
    header{position:sticky;}
    .nav{position:relative;}
    .hero-grid,.about-grid,.contact-grid,.presence{grid-template-columns:1fr;}
    .hero-visual{order:-1;max-width:280px;margin:0 auto 24px;}
    .work-photo{order:-1;max-width:280px;margin:0 auto 24px;}
    .work-badge{right:0;}
    .service-grid,.why-grid,.review-grid{grid-template-columns:1fr;}
    .presence img{max-height:260px;}
    section,.about{padding:60px 0;}
    .hero{padding:56px 0 60px;}
    .sectors-box{margin-top:48px;padding:26px 20px;}
    .footer-top{flex-direction:column;align-items:flex-start;}
    .footer-legal-text{text-align:left;}
    .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;}
  }

  /* ---------- MEJORAS (accesibilidad, móvil, formulario) ---------- */
  .skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:10px;background:var(--verde-scuro-2);color:var(--blanco);font-weight:800;font-size:14px;text-decoration:none;transition:top .15s;}
  .skip-link:focus{top:12px;}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--rosa);outline-offset:2px;}
  .lang-switch button{min-width:36px;min-height:32px;}
  .form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:var(--rosa);outline:none;box-shadow:0 0 0 3px rgba(247,106,155,.25);}
  .form-error{display:none;margin:14px 0 0;padding:12px 14px;border-radius:10px;background:var(--rosa-soft);color:#7a1f42;font-size:13.5px;font-weight:700;}
  .form-error.show{display:block;}
  .btn[disabled]{opacity:.65;cursor:progress;transform:none;box-shadow:none;}
  .form-success:focus{outline:none;}
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

  /* Selector de idioma visible también en móvil */
  @media (max-width:900px){
    .lang-switch{display:flex;}
    .nav-right{gap:10px;}
    .nav-right > .btn{display:none;}
    .nav-toggle{padding:10px 8px;}
  }
  @media (max-width:380px){
    .logo-lockup .word{font-size:15px;}
    .logo-lockup .word small{font-size:8px;letter-spacing:.08em;}
    .lang-switch button{padding:6px 8px;min-width:32px;}
    .wrap{width:calc(100% - 32px);}
  }
  @media (max-width:900px){
    .nav-links.open .nav-cta-mobile{display:block;}
  }
  .nav-cta-mobile{display:none;}

  /* ---------- Formulario en móvil ---------- */
  @media (max-width:640px){
    .form-card{padding:24px 18px;}
    .form-row{grid-template-columns:1fr;gap:0;}
    .form-card label{font-size:11.5px;}
    .form-card input,.form-card select,.form-card textarea{font-size:16px;min-height:48px;}
    .form-card textarea{min-height:130px;}
    .form-card select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232a4538' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;}
    .form-card .btn{min-height:52px;}
  }


  /* ---------- Banner de cookies ---------- */
  .cc-banner{position:fixed;z-index:200;left:16px;right:16px;bottom:16px;max-width:560px;margin:0 auto;padding:20px 22px;border-radius:18px;background:#1c3026;color:#fff;box-shadow:0 24px 60px -20px rgba(0,0,0,.55);font-family:'Manrope',sans-serif;}
  .cc-banner[hidden]{display:none;}
  .cc-title{margin:0 0 6px;font:600 17px 'Fraunces',serif;color:#fff;}
  .cc-body{margin:0 0 16px;font-size:13.5px;line-height:1.55;color:#d6e0da;}
  .cc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
  .cc-btn{flex:1 1 120px;min-height:46px;padding:11px 20px;border-radius:40px;border:2px solid #fff;background:transparent;color:#fff;font:800 14px 'Manrope',sans-serif;cursor:pointer;}
  .cc-btn[data-cc=accept]{background:#fff;color:#1c3026;}
  .cc-btn:hover{transform:translateY(-1px);}
  .cc-more{flex:1 1 100%;text-align:center;color:#a1d3b9;font-size:12.5px;font-weight:700;}
  .cc-banner a:focus-visible,.cc-banner button:focus-visible{outline:3px solid #f76a9b;outline-offset:2px;}
  .cookie-link{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;}
  @media (min-width:641px){.cc-more{flex:0 0 auto;margin-left:6px;}}
