  :root{
    --bordeaux-900:#3D0F18;
    --bordeaux-700:#641C29;
    --bordeaux-600:#7A2433;
    --brick:#9A3B34;
    --gold:#C9A24B;
    --gold-soft:#E7D6A6;
    --gold-deep:#A9822F;
    --cream:#FAF6EF;
    --white:#FFFFFF;
    --ink:#2A1A1C;
    --ink-soft:#5C4A4C;
    --line:rgba(42,26,28,0.12);
    --shadow:0 18px 40px -22px rgba(61,15,24,0.35);
    --ff-display:'Fraunces', Georgia, serif;
    --ff-body:'Outfit', sans-serif;
    --container:1240px;
    --pad:clamp(1.25rem, 4vw, 4.5rem);
    --dur:.7s;
  }

  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }

  body{
    font-family:var(--ff-body);
    color:var(--ink);
    background:var(--cream);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit;cursor:pointer;}
  input,textarea,select{font-family:inherit;}

  .container{max-width:var(--container); margin-inline:auto; padding-inline:var(--pad);}

  .skip-link{
    position:absolute; left:-999px; top:auto;
    background:var(--bordeaux-700); color:var(--white); padding:.8rem 1.4rem;
    z-index:999; border-radius:0 0 8px 0;
  }
  .skip-link:focus{left:0; top:0;}

  :focus-visible{outline:2.5px solid var(--gold); outline-offset:3px;}

  h1,h2,h3,h4{font-family:var(--ff-display); font-weight:500; line-height:1.12; color:var(--bordeaux-900);}
  .eyebrow{
    font-family:var(--ff-body); font-weight:600; letter-spacing:.18em; text-transform:uppercase;
    font-size:.78rem; color:var(--brick);
    display:inline-flex; align-items:center; gap:.6rem;
  }
  .eyebrow::before{content:""; width:26px; height:1.5px; background:var(--gold-deep); display:inline-block;}
  .eyebrow.on-dark{color:var(--gold-soft);}
  .eyebrow.on-dark::before{background:var(--gold);}

  .section{padding-block:clamp(4.5rem, 9vw, 8rem);}
  .section-head{max-width:640px; margin-bottom:clamp(2.5rem,5vw,4rem);}
  .section-head h2{font-size:clamp(2rem, 4.2vw, 3rem); margin-top:.6rem;}
  .section-head p{margin-top:1.1rem; color:var(--ink-soft); font-size:1.05rem; max-width:54ch;}
  .section-head.center{margin-inline:auto; text-align:center;}

  .btn{
    display:inline-flex; align-items:center; gap:.6rem;
    font-family:var(--ff-body); font-weight:600; font-size:.92rem; letter-spacing:.02em;
    padding:.95rem 1.9rem; border-radius:2px; border:1.5px solid transparent;
    transition:transform .35s ease, box-shadow .35s ease, background .35s ease, color .35s ease, border-color .35s ease;
    white-space:nowrap;
  }
  .btn svg{width:16px; height:16px; flex-shrink:0; transition:transform .35s ease;}
  .btn:hover svg{transform:translateX(4px);}
  .btn-gold{background:var(--gold); color:var(--bordeaux-900); border-color:var(--gold);}
  .btn-gold:hover{background:var(--gold-soft); transform:translateY(-2px); box-shadow:var(--shadow);}
  .btn-outline-light{border-color:rgba(250,246,239,.55); color:var(--cream); background:transparent;}
  .btn-outline-light:hover{background:rgba(250,246,239,.12); border-color:var(--cream); transform:translateY(-2px);}
  .btn-outline-dark{border-color:var(--bordeaux-700); color:var(--bordeaux-700); background:transparent;}
  .btn-outline-dark:hover{background:var(--bordeaux-700); color:var(--cream); transform:translateY(-2px);}
  .btn-block{width:100%; justify-content:center;}

  /* ---------- FLOW DIVIDER (signature element: respiro / cerchi concentrici) ---------- */
  .flow-divider{width:100%; display:flex; justify-content:center; padding-block:.5rem; overflow:hidden;}
  .flow-divider svg{width:min(420px,80%); height:auto; overflow:visible;}
  .flow-path{
    fill:none; stroke:var(--gold-deep); stroke-width:1.4; stroke-linecap:round;
    stroke-dasharray:600; stroke-dashoffset:600;
    transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1);
  }
  .flow-divider.in-view .flow-path{stroke-dashoffset:0;}
  .flow-node{fill:none; stroke:var(--gold); stroke-width:1.3; opacity:0; transform:scale(.4); transform-origin:center;
    transition:opacity .6s ease .9s, transform .6s ease .9s;}
  .flow-divider.in-view .flow-node{opacity:1; transform:scale(1);}

  /* ---------- HEADER ---------- */
  .site-header{
    position:fixed; inset:0 0 auto 0; z-index:200;
    padding-block:1.3rem;
    transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  }
  .site-header .container{display:flex; align-items:center; justify-content:space-between;}
  .site-header.scrolled{background:rgba(58,15,23,.92); backdrop-filter:blur(8px); padding-block:.8rem; box-shadow:0 8px 30px -16px rgba(0,0,0,.5);}

  .brand{display:flex; align-items:center; gap:.7rem; font-family:var(--ff-display); color:var(--cream); font-size:1.25rem; letter-spacing:.01em;}
  .brand-mark{width:38px; height:38px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .brand-mark svg{width:22px; height:22px;}
  .brand em{font-style:italic; color:var(--gold-soft); font-weight:400;}

  .nav-desktop{display:flex; align-items:center; gap:clamp(1.2rem,2vw,2.4rem);}
  .nav-desktop a{
    color:var(--cream); font-size:.92rem; font-weight:500; position:relative; padding-block:.3rem;
  }
  .nav-desktop a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--gold);
    transition:width .35s ease;
  }
  .nav-desktop a:hover::after, .nav-desktop a:focus-visible::after{width:100%;}
  .nav-desktop .btn{margin-left:.4rem; padding:.65rem 1.4rem; font-size:.85rem;}

  .nav-toggle{
    display:none; width:44px; height:44px; border:1px solid rgba(250,246,239,.4); border-radius:50%;
    background:transparent; position:relative; flex-shrink:0;
  }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:""; position:absolute; left:13px; width:18px; height:1.6px; background:var(--cream);
    transition:transform .35s ease, opacity .35s ease, top .35s ease;
  }
  .nav-toggle span{top:21px;}
  .nav-toggle span::before{top:-6px;}
  .nav-toggle span::after{top:6px;}
  .nav-toggle.open span{background:transparent;}
  .nav-toggle.open span::before{top:0; transform:rotate(45deg);}
  .nav-toggle.open span::after{top:0; transform:rotate(-45deg);}

  .nav-mobile{
    position:fixed; inset:0; background:var(--bordeaux-900); z-index:190;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2rem;
    transform:translateY(-100%); transition:transform .5s cubic-bezier(.4,0,.2,1);
  }
  .nav-mobile.open{transform:translateY(0);}
  .nav-mobile a{font-family:var(--ff-display); font-size:1.7rem; color:var(--cream);}
  .nav-mobile a:hover{color:var(--gold-soft);}

  /* ---------- HERO ---------- */
  .hero{
    position:relative; min-height:100svh; display:flex; align-items:flex-end;
    color:var(--cream); overflow:hidden;
  }
  .hero-media{position:absolute; inset:0; z-index:0; background:linear-gradient(160deg,#4a1118,#1f0509);}
  .hero-media img{width:100%; height:100%; object-fit:cover; opacity:.78;}
  .hero-media::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(40,9,15,.55) 0%, rgba(40,9,15,.25) 38%, rgba(31,5,9,.92) 100%);
  }
  .hero-content{position:relative; z-index:1; width:100%; padding-bottom:clamp(3rem,7vw,5.5rem);}
  .hero-content .eyebrow{margin-bottom:1.4rem;}
  .hero-content h1{
    font-size:clamp(2.4rem, 6.4vw, 4.9rem); color:var(--white); max-width:22ch;
    opacity:0; transform:translateY(28px); animation:riseIn 1s ease .25s forwards;
  }
  .hero-content h1 em{font-style:italic; color:var(--gold-soft); font-weight:400;}
  .hero-sub{
    margin-top:1.4rem; font-size:clamp(1rem,1.6vw,1.2rem); max-width:46ch; color:rgba(250,246,239,.86);
    opacity:0; transform:translateY(24px); animation:riseIn 1s ease .5s forwards;
  }
  .hero-actions{
    margin-top:2.4rem; display:flex; flex-wrap:wrap; gap:1rem;
    opacity:0; transform:translateY(20px); animation:riseIn 1s ease .75s forwards;
  }
  @keyframes riseIn{to{opacity:1; transform:none;}}

  .scroll-cue{
    position:absolute; right:var(--pad); bottom:2.4rem; z-index:1;
    display:flex; flex-direction:column; align-items:center; gap:.6rem;
    color:var(--gold-soft); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  }
  .scroll-cue .line{width:1px; height:46px; background:linear-gradient(var(--gold), transparent); position:relative; overflow:hidden;}
  .scroll-cue .line::after{
    content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold-soft);
    animation:scrollLine 2.2s ease-in-out infinite;
  }
  @keyframes scrollLine{50%{top:100%;}100%{top:100%;}}
  @media (max-width:760px){.scroll-cue{display:none;}}

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0; transform:translateY(34px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);}
  .reveal.is-visible{opacity:1; transform:none;}
  .reveal-stagger > *{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
  .reveal-stagger.is-visible > *{opacity:1; transform:none;}
  .reveal-stagger.is-visible > *:nth-child(1){transition-delay:.05s;}
  .reveal-stagger.is-visible > *:nth-child(2){transition-delay:.15s;}
  .reveal-stagger.is-visible > *:nth-child(3){transition-delay:.25s;}
  .reveal-stagger.is-visible > *:nth-child(4){transition-delay:.35s;}
  .reveal-stagger.is-visible > *:nth-child(5){transition-delay:.45s;}
  .reveal-stagger.is-visible > *:nth-child(6){transition-delay:.55s;}

  /* ---------- CHI SIAMO ---------- */
  .about-grid{display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2.5rem,5vw,5rem); align-items:center;}
  .about-media{position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden; box-shadow:var(--shadow); background:linear-gradient(150deg,#7a2433,#3d0f18);}
  .about-media img{width:100%; height:100%; object-fit:cover;}
  .about-media-frame{
    position:absolute; inset:18px; border:1px solid rgba(250,246,239,.55); pointer-events:none; border-radius:2px;
  }
  .about-text p{color:var(--ink-soft); margin-top:1.1rem; max-width:56ch;}
  .stat-row{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:2.6rem; border-top:1px solid var(--line); padding-top:1.8rem;}
  .stat{display:flex; flex-direction:column; gap:.2rem;}
  .stat .num{font-family:var(--ff-display); font-size:clamp(1.6rem,3vw,2.3rem); color:var(--bordeaux-700);}
  .stat .label{font-size:.78rem; color:var(--ink-soft); letter-spacing:.03em;}

  /* ---------- PERCORSI ---------- */
  .services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;}
  .service-card{
    background:var(--white); border:1px solid var(--line); border-radius:4px; padding:2.3rem 1.9rem;
    transition:transform .45s ease, box-shadow .45s ease, border-color .45s ease;
    position:relative;
  }
  .service-card:hover{transform:translateY(-8px); box-shadow:var(--shadow); border-color:rgba(201,162,75,.5);}
  .seal{
    width:58px; height:58px; border-radius:50%; background:var(--bordeaux-700);
    display:flex; align-items:center; justify-content:center; margin-bottom:1.4rem;
    box-shadow:inset 0 0 0 1px rgba(201,162,75,.6);
  }
  .seal svg{width:26px; height:26px; stroke:var(--gold-soft); fill:none; stroke-width:1.5;}
  .service-card h3{font-size:1.25rem;}
  .service-card p{color:var(--ink-soft); margin-top:.7rem; font-size:.95rem;}

  /* ---------- SEMINARI / EVENTI ---------- */
  .events-list{display:flex; flex-direction:column; border-top:1px solid var(--line);}
  .event-row{
    display:grid; grid-template-columns:110px 1fr auto; gap:1.8rem; align-items:center;
    padding-block:1.9rem; border-bottom:1px solid var(--line);
    transition:background .35s ease, padding-inline .35s ease;
  }
  .event-row:hover{background:rgba(201,162,75,.07); padding-inline:1rem;}
  .event-date{
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    background:var(--bordeaux-700); color:var(--cream); border-radius:3px; padding:.7rem 0; text-align:center;
  }
  .event-date .day{font-family:var(--ff-display); font-size:1.7rem; line-height:1;}
  .event-date .month{font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-soft); margin-top:.3rem;}
  .event-info h3{font-size:1.2rem;}
  .event-info p{color:var(--ink-soft); font-size:.92rem; margin-top:.35rem;}
  .event-row .btn{padding:.75rem 1.4rem; font-size:.82rem;}
  @media (max-width:680px){
    .event-row{grid-template-columns:72px 1fr; row-gap:1rem;}
    .event-row .btn{grid-column:1 / -1;}
    .event-date{padding:.5rem 0;}
    .event-date .day{font-size:1.3rem;}
  }

  /* ---------- TESTIMONIANZE ---------- */
  .testimonials{
    background:var(--bordeaux-900); color:var(--cream); position:relative; overflow:hidden;
  }
  .testimonials::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(circle at 15% 20%, rgba(201,162,75,.10), transparent 45%),
               radial-gradient(circle at 85% 80%, rgba(201,162,75,.08), transparent 45%);
  }
  .testimonials .container{position:relative;}
  .t-slider{max-width:760px; margin-inline:auto; text-align:center; position:relative; min-height:260px;}
  .t-slide{
    position:absolute; inset:0; opacity:0; visibility:hidden; transform:translateY(14px);
    transition:opacity .6s ease, transform .6s ease, visibility .6s;
  }
  .t-slide.active{opacity:1; visibility:visible; transform:none; position:relative;}
  .t-stars{display:flex; justify-content:center; gap:.3rem; margin-bottom:1.6rem;}
  .t-stars svg{width:17px; height:17px; fill:var(--gold);}
  .t-quote{font-family:var(--ff-display); font-style:italic; font-size:clamp(1.2rem,2.4vw,1.65rem); line-height:1.55; color:var(--cream);}
  .t-name{margin-top:1.8rem; font-weight:600; letter-spacing:.03em;}
  .t-role{font-size:.85rem; color:var(--gold-soft); margin-top:.2rem;}
  .t-controls{display:flex; justify-content:center; align-items:center; gap:1.6rem; margin-top:2.8rem;}
  .t-arrow{
    width:42px; height:42px; border-radius:50%; border:1px solid rgba(250,246,239,.4); background:transparent;
    display:flex; align-items:center; justify-content:center; transition:background .3s ease, border-color .3s ease;
  }
  .t-arrow:hover{background:rgba(250,246,239,.12); border-color:var(--gold);}
  .t-arrow svg{width:16px; height:16px; stroke:var(--cream); fill:none; stroke-width:1.8;}
  .t-dots{display:flex; gap:.55rem;}
  .t-dot{width:8px; height:8px; border-radius:50%; background:rgba(250,246,239,.3); border:none; transition:background .3s ease, transform .3s ease;}
  .t-dot.active{background:var(--gold); transform:scale(1.25);}

  /* ---------- CONTATTI ---------- */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start;}
  .contact-info-list{display:flex; flex-direction:column; gap:1.5rem; margin-top:2.2rem;}
  .info-item{display:flex; gap:1rem; align-items:flex-start;}
  .info-item .ic{
    width:42px; height:42px; border-radius:50%; border:1px solid var(--gold-deep); flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
  }
  .info-item .ic svg{width:18px; height:18px; stroke:var(--bordeaux-700); fill:none; stroke-width:1.6;}
  .info-item h4{font-family:var(--ff-body); font-weight:600; font-size:.95rem; color:var(--bordeaux-900);}
  .info-item p{font-size:.92rem; color:var(--ink-soft); margin-top:.15rem;}

  .map-box{
    margin-top:2.2rem; border-radius:4px; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/10;
    position:relative; background:
      linear-gradient(rgba(122,36,51,.08), rgba(122,36,51,.08)),
      repeating-linear-gradient(0deg, var(--gold-soft) 0 1px, transparent 1px 34px),
      repeating-linear-gradient(90deg, var(--gold-soft) 0 1px, transparent 1px 34px),
      var(--cream);
  }
  .map-box .pin{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-100%);
    display:flex; flex-direction:column; align-items:center;
  }
  .map-box .pin svg{width:34px; height:34px; fill:var(--bordeaux-700); filter:drop-shadow(0 6px 8px rgba(61,15,24,.35));}
  .map-box .pin span{
    margin-top:.3rem; background:var(--bordeaux-900); color:var(--cream); font-size:.72rem; padding:.3rem .7rem;
    border-radius:2px; white-space:nowrap;
  }
  .social-row{display:flex; gap:.8rem; margin-top:2rem;}
  .social-row a{
    width:40px; height:40px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    transition:background .3s ease, border-color .3s ease, transform .3s ease;
  }
  .social-row a svg{width:17px; height:17px; stroke:var(--bordeaux-700); fill:none; stroke-width:1.6;}
  .social-row a:hover{background:var(--bordeaux-700); border-color:var(--bordeaux-700); transform:translateY(-3px);}
  .social-row a:hover svg{stroke:var(--gold-soft);}

  .form-card{background:var(--white); border:1px solid var(--line); border-radius:4px; padding:clamp(1.8rem,4vw,2.8rem); box-shadow:var(--shadow);}
  .field{margin-bottom:1.3rem;}
  .field label{display:block; font-size:.82rem; font-weight:600; color:var(--bordeaux-900); margin-bottom:.5rem; letter-spacing:.02em;}
  .field input, .field select, .field textarea{
    width:100%; border:1px solid var(--line); border-radius:2px; padding:.85rem 1rem; font-size:.95rem;
    background:var(--cream); color:var(--ink); transition:border-color .3s ease, box-shadow .3s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:none; border-color:var(--gold-deep); box-shadow:0 0 0 3px rgba(201,162,75,.18);
  }
  .field textarea{resize:vertical; min-height:110px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
  .form-note{font-size:.8rem; color:var(--ink-soft); margin-top:1rem; text-align:center;}
  .form-success{
    display:none; align-items:center; gap:.7rem; background:rgba(122,36,51,.08); color:var(--bordeaux-700);
    border:1px solid rgba(122,36,51,.25); padding:.9rem 1.1rem; border-radius:2px; font-size:.88rem; margin-bottom:1.3rem;
  }
  .form-success.show{display:flex;}
  .form-success svg{width:18px; height:18px; flex-shrink:0; stroke:var(--bordeaux-700); fill:none; stroke-width:1.8;}

  /* ---------- CTA BAND ---------- */
  .cta-band{
    background:linear-gradient(135deg, var(--bordeaux-700), var(--bordeaux-900));
    color:var(--cream); text-align:center; padding-block:clamp(3.5rem,7vw,5.5rem); position:relative; overflow:hidden;
  }
  .cta-band h2{color:var(--white); font-size:clamp(1.8rem,4vw,2.7rem); max-width:20ch; margin-inline:auto;}
  .cta-band p{margin-top:1rem; color:rgba(250,246,239,.8);}
  .cta-band .btn{margin-top:2rem;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--bordeaux-900); color:rgba(250,246,239,.78); padding-block:clamp(3rem,6vw,4.5rem) 2rem;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem; padding-bottom:2.5rem;}
  .footer-brand .brand{margin-bottom:1rem;}
  .footer-brand p{max-width:38ch; font-size:.92rem; color:rgba(250,246,239,.65);}
  .footer-col h4{font-family:var(--ff-body); font-weight:600; color:var(--gold-soft); font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1rem;}
  .footer-col ul{display:flex; flex-direction:column; gap:.7rem;}
  .footer-col a{font-size:.92rem; transition:color .3s ease;}
  .footer-col a:hover{color:var(--gold-soft);}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
    padding-top:2rem; border-top:1px solid rgba(250,246,239,.14); font-size:.8rem; color:rgba(250,246,239,.55);
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:980px){
    .nav-desktop{display:none;}
    .nav-toggle{display:block;}
    .about-grid{grid-template-columns:1fr;}
    .about-media{max-width:420px; margin-inline:auto;}
    .services-grid{grid-template-columns:repeat(2,1fr);}
    .contact-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .footer-brand{grid-column:1/-1;}
  }
  @media (max-width:640px){
    .services-grid{grid-template-columns:1fr;}
    .stat-row{grid-template-columns:1fr; gap:1rem;}
    .field-row{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr; gap:2rem;}
    .event-row{padding-inline:0;}
  }
