
  @font-face{font-family:'Fraunces';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/fraunces-latin.woff2') format('woff2')}
  @font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/schibsted-grotesk-latin.woff2') format('woff2')}
  :root{
    /* colori reali dal volantino */
    --blu:#252561;        /* blu brand (indaco) */
    --blu-scuro:#1C1C4A;  /* footer / fondi profondi */
    --blu-mid:#34346F;    /* strip sale, fondi medi */
    --blu-vivo:#43439A;   /* accento sezione bambini */
    --blu-tint:#DADAEA;
    --rosso:#C21F25;      /* rosso brand — azione (bottoni, link) */
    --rosso-scuro:#8E1519;/* hover */
    --rosso-link:#A81C21; /* link su crema (extra margine di contrasto) */
    --rosa:#E7A19E;       /* eyebrow/accento su fondi scuri */
    --panna:#F4ECD9; --bianco:#FBF6EA; --sabbia:#E8DBBA;
    --inchiostro:#201F35; --grigio:#5A5566;
    --serif:'Fraunces',Georgia,serif; --sans:'Schibsted Grotesk',-apple-system,sans-serif;
    --gab:clamp(20px,5vw,72px);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:inherit}
  :focus-visible{outline:3px solid var(--rosso-link);outline-offset:2px;border-radius:4px}
  .nav :focus-visible,.footer :focus-visible,.recensioni :focus-visible,.piena :focus-visible,.hero :focus-visible,.glutine :focus-visible{outline-color:var(--rosa)}
  .page:focus{outline:none}
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
    html{scroll-behavior:auto}
  }
  body{font-family:var(--sans);color:var(--inchiostro);background:var(--bianco);line-height:1.6;font-size:16px}
  h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.14}
  a{color:inherit;text-decoration:none}
  img{max-width:100%}

  .proto{background:var(--blu);color:#fff;text-align:center;font-size:12px;letter-spacing:.04em;padding:6px 12px}

  /* NAV */
  .nav{position:sticky;top:0;z-index:100;background:var(--blu);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gab)}
  .logo{font-family:var(--serif);font-weight:700;font-size:23px;color:#fff;letter-spacing:.01em;cursor:pointer}
  .nav-center{display:flex;align-items:center;gap:6px}
  .serv{display:inline-block;color:#fff;font-size:14px;font-weight:600;padding:9px 15px;border-radius:7px;border:1px solid rgba(255,255,255,.26);cursor:pointer;transition:background .15s,border-color .15s}
  .serv:hover,.serv.on{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.55)}
  .nav-sep{width:1px;height:18px;background:rgba(255,255,255,.22);margin:0 6px}
  .nav-sec{display:flex;gap:10px;font-size:13px;color:#BFBFDA}
  .nav-sec button{cursor:pointer;transition:color .15s;color:#BFBFDA;padding:8px 4px}
  .nav-sec button:hover{color:#fff}
  .cta-nav{background:var(--rosso);color:#fff;padding:11px 20px;border-radius:7px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}
  .cta-nav:hover{background:var(--rosso-scuro)}
  .burger{display:none;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:7px;padding:8px 12px;font-size:18px;cursor:pointer}

  .page{display:block}
  .page.on{animation:pagein .35s ease-out}
  @keyframes pagein{from{opacity:0}to{opacity:1}}

  .btn{display:inline-block;padding:13px 26px;border-radius:8px;font-size:14.5px;font-weight:600;cursor:pointer;transition:transform .15s,background .15s;border:none}
  .btn:hover{transform:translateY(-1px)}
  .btn-rosso{background:var(--rosso);color:#fff}
  .btn-rosso:hover{background:var(--rosso-scuro)}
  .btn-chiaro{background:var(--panna);color:var(--blu)}
  .btn-outline{background:transparent;border:1.5px solid var(--blu);color:var(--blu)}

  .eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--rosso-link);margin-bottom:12px}
  .sez{padding:clamp(56px,8vw,104px) var(--gab)}
  .sez-tit{font-size:clamp(26px,3.4vw,34px);margin-bottom:14px}
  .lead{font-size:17px;color:#3E3B4A;max-width:640px}

  /* FOTO PLACEHOLDER */
  .foto{position:relative;display:flex;align-items:flex-end;overflow:hidden;background-size:cover;background-position:center}
  .foto .cap{position:relative;z-index:2;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.92);padding:14px 16px;line-height:1.4}
  .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .bgimg-overlay{position:absolute;inset:0;z-index:1}
  .foto.rosso{background:linear-gradient(150deg,#5A1416,#8E1519 55%,#C21F25)}
  .foto.blu{background:linear-gradient(150deg,#14143A,#252561 55%,#3A3A7A)}
  .foto.misto{background:linear-gradient(150deg,#2A2A6E,#7A2340 55%,#C21F25)}
  .foto.notte{background:linear-gradient(150deg,#101030,#252561 60%,#3A2E52)}

  /* HERO */
  .hero{position:relative;min-height:min(78vh,620px);display:flex;align-items:flex-end;
        background:linear-gradient(to top,rgba(16,16,40,.86) 0%,rgba(16,16,40,.42) 48%,rgba(16,16,40,.2) 100%),
        linear-gradient(120deg,#101030 0%,#252561 46%,#3A3550 76%,#5A2830 100%)}
  .hero-in{position:relative;z-index:2;padding:0 var(--gab) clamp(120px,16vw,150px);color:var(--panna);max-width:680px}
  .hero .eyebrow{color:var(--rosa)}
  .hero h1{font-size:clamp(34px,6vw,56px);color:var(--panna)}
  .hero p{margin-top:16px;font-size:clamp(15px,1.8vw,18px);color:#E6E3F0;max-width:560px}
  .hero .foto-note{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.9);color:#5A4A3F;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:4px}

  @keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
  .home.on .hero .eyebrow{animation:fadeUp .55s ease-out .05s both}
  .home.on .hero h1{animation:fadeUp .55s ease-out .16s both}
  .home.on .hero p{animation:fadeUp .55s ease-out .27s both}
  .home.on .pilastro:nth-child(1){animation:fadeUp .55s ease-out .38s both}
  .home.on .pilastro:nth-child(2){animation:fadeUp .55s ease-out .48s both}
  .home.on .pilastro:nth-child(3){animation:fadeUp .55s ease-out .58s both}

  /* PILASTRI */
  .pilastri{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:0 var(--gab);margin-top:clamp(-96px,-11vw,-80px);position:relative;z-index:5}
  .pilastro{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 18px 44px -22px rgba(16,16,40,.5);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;cursor:pointer}
  .pilastro:hover{transform:translateY(-4px);box-shadow:0 26px 54px -24px rgba(16,16,40,.55)}
  .pilastro .foto{aspect-ratio:1/1}
  .pilastro .body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
  .pilastro .tg{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px}
  .pilastro h3{font-size:21px;color:var(--inchiostro)}
  .pilastro p{font-size:13.5px;color:#4C4958;margin:9px 0 15px;flex:1}
  .pilastro .lnk{font-size:13.5px;font-weight:600;color:var(--rosso-link)}

  /* NUMERI */
  .numeri{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;background:var(--sabbia);padding:38px var(--gab);margin-top:clamp(40px,6vw,60px)}
  .numeri .n{text-align:center}
  .numeri .n b{font-family:var(--serif);font-size:clamp(22px,3vw,28px);font-weight:600;color:var(--blu);display:block}
  .numeri .n span{font-size:12.5px;color:var(--grigio)}

  /* SPLIT 50/50 */
  .split{display:grid;grid-template-columns:1fr 1fr;min-height:clamp(400px,48vw,560px)}
  .split .foto{min-height:300px}
  .split .txt{padding:clamp(40px,6vw,68px) var(--gab);display:flex;flex-direction:column;justify-content:center}
  .split .txt h2{font-size:clamp(24px,3vw,31px)}
  .split .txt p{margin-top:14px;font-size:15px;max-width:440px;color:#3E3B4A}
  .punti{list-style:none;margin:16px 0 22px;font-size:14px}
  .punti li{padding-left:22px;position:relative;margin-bottom:7px}
  .punti li::before{content:"—";position:absolute;left:0;opacity:.55}

  /* EVENTI pattern break */
  .piena{position:relative;min-height:clamp(400px,48vw,480px);display:flex;align-items:flex-end;
         background:linear-gradient(100deg,rgba(16,16,40,.94) 0%,rgba(16,16,40,.62) 42%,rgba(16,16,40,.12) 72%),
         linear-gradient(160deg,#14143A,#252561,#3A3A7A)}
  .piena .pan{position:relative;z-index:2;margin:0 var(--gab) clamp(40px,6vw,56px);max-width:480px;background:var(--blu);padding:clamp(28px,4vw,40px);border-radius:6px}
  .piena .pan .eyebrow{color:var(--rosa)}
  .piena .pan h2{color:#fff;font-size:clamp(24px,3vw,31px)}
  .piena .pan p{color:#D6D6EA;margin-top:12px;font-size:15px}
  .piena .foto-note{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.9);color:#5A4A3F;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:4px}
  .sale-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14)}
  .sale-strip .sala{background:var(--blu-mid);padding:22px var(--gab);color:#D6D6EA}
  .sale-strip .sala b{font-family:var(--serif);color:#fff;font-size:17px;display:block;margin-bottom:4px}
  .sale-strip .sala span{font-size:12.5px;color:#A3A3C4}
  .alert-strip{background:var(--rosso);color:#fff;text-align:center;padding:18px var(--gab);font-weight:700;font-size:15px;line-height:1.5}
  .hero-logo{position:absolute;right:clamp(30px,8vw,120px);top:50%;transform:translateY(-50%);z-index:2;width:min(560px,47%);height:auto;filter:drop-shadow(0 8px 22px rgba(0,0,0,.38))}

  /* GALLERIA */
  .gall-due{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .canale{border-radius:12px;overflow:hidden;position:relative;min-height:210px;display:flex;align-items:flex-end;cursor:pointer;transition:transform .2s}
  .canale:hover{transform:translateY(-3px)}
  .canale .lab{position:relative;z-index:2;padding:22px 24px;color:#fff}
  .canale .lab b{font-family:var(--serif);font-size:21px;font-weight:600;display:block}
  .canale .lab span{font-size:13px;opacity:.9}
  .gall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}
  .gall-grid .foto{aspect-ratio:10/11;border-radius:8px}
  .gall-h{display:flex;align-items:baseline;gap:14px;margin:38px 0 4px}
  .gall-h h3{font-size:22px}
  .gall-h span{font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--grigio)}

  /* RECENSIONI */
  .recensioni{background:var(--blu);color:var(--panna);text-align:center;padding:clamp(48px,7vw,80px) var(--gab)}
  .recensioni .stelle{color:var(--rosa);font-size:24px;letter-spacing:5px}
  .recensioni h2{font-size:clamp(22px,3vw,28px);margin-top:12px;color:#fff}
  .recensioni .badge{font-size:13px;color:#AFAFCE;margin-top:8px}
  .quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:34px;text-align:left;max-width:1000px;margin-left:auto;margin-right:auto}
  .quote{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:22px;font-size:14px;line-height:1.55;color:#E6E3F0}
  .quote i{display:block;margin-top:12px;font-style:normal;font-size:12px;color:#AFAFCE}

  /* STEP / CARDS */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
  .step{background:var(--panna);border-radius:12px;padding:26px}
  .step .no{font-family:var(--serif);font-size:30px;color:var(--rosso);font-weight:600}
  .step h4{font-size:18px;margin:8px 0 6px}
  .step p{font-size:13.5px;color:#4C4958}

  .cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
  .cards2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}
  .pack{background:#fff;border:1px solid #E1D6BC;border-radius:14px;padding:28px;display:flex;flex-direction:column}
  .pack.hi{border-color:var(--rosso);box-shadow:0 14px 30px -18px rgba(194,31,37,.4)}
  .pack .pt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--grigio);font-weight:600}
  .pack h4{font-size:23px;margin:6px 0}
  .pack .prezzo{font-family:var(--serif);font-size:30px;color:var(--blu);font-weight:600;margin:8px 0 4px;line-height:1.1}
  .pack .prezzo small{font-size:14px;color:var(--grigio);font-weight:400;font-family:var(--sans)}
  .pack .prz-note{font-size:12px;color:var(--grigio);margin-bottom:14px}
  .pack ul{list-style:none;font-size:13.5px;color:#3E3B4A;flex:1;margin-bottom:18px}
  .pack ul li{padding:7px 0;border-bottom:1px solid #F0E9D6}

  .prezzi2{display:flex;gap:14px;margin:10px 0 4px;flex-wrap:wrap}
  .prezzi2 .pz{background:var(--panna);border-radius:10px;padding:12px 18px;flex:1;min-width:110px}
  .prezzi2 .pz b{font-family:var(--serif);font-size:28px;color:var(--blu);font-weight:600;display:block;line-height:1.05}
  .prezzi2 .pz small{font-size:11.5px;color:var(--grigio);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
  .pack.hi .prezzi2 .pz{background:#FBEDE9}
  .glutine{display:flex;gap:18px;align-items:center;background:var(--blu);color:#fff;border-radius:14px;padding:24px 28px;margin-top:28px}
  .glutine-tag{flex:0 0 auto;background:var(--rosso);color:#fff;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:8px 14px;border-radius:8px}
  .glutine b{font-family:var(--serif);font-size:19px;color:#fff;display:block;margin-bottom:2px}
  .glutine p{color:#D6D6EA;font-size:14px}
  .tabella{width:100%;border-collapse:collapse;margin-top:24px;background:#fff;border-radius:12px;overflow:hidden;border:1px solid #E1D6BC}
  .tabella th{background:var(--blu);color:#fff;text-align:left;padding:14px 18px;font-size:13px;letter-spacing:.03em}
  .tabella td{padding:13px 18px;border-bottom:1px solid #F0E9D6;font-size:14.5px}
  .tabella tr:last-child td{border-bottom:none}
  .tabella .p{font-family:var(--serif);font-weight:600;color:var(--blu)}
  .tabella .cat td{background:var(--sabbia);color:var(--blu-scuro);font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:9px 18px}
  .tabella .p a{color:var(--rosso-link);text-decoration:none;border-bottom:1px solid rgba(168,28,33,.35)}
  .tabella .p a:hover{border-bottom-color:var(--rosso-link)}

  .duo{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}
  .infoblock{background:var(--panna);border-radius:12px;padding:26px}
  .listini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:22px}
  .listino-card{background:#fff;border:1px solid #E1D6BC;border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:6px}
  .listino-card b{font-family:var(--serif);color:var(--blu);font-size:17px;font-weight:600}
  .listino-card span{font-size:12.5px;color:var(--grigio)}
  .listino-card .dl{margin-top:10px;font-size:13.5px;font-weight:600;color:var(--rosso-link);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
  .listino-card .dl:hover{text-decoration:underline}
  .listino-card.soon{opacity:.55}
  .listino-card.soon .dl{color:var(--grigio);cursor:default}
  .infoblock h4{font-size:19px;margin-bottom:8px}
  .infoblock p{font-size:14px;color:#3E3B4A}

  .faq{margin-top:28px;max-width:760px}
  .faq details{border-bottom:1px solid #E1D6BC;padding:16px 0}
  .faq summary{font-weight:600;cursor:pointer;font-size:15.5px;list-style:none}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::before{content:"+ ";color:var(--rosso);font-weight:700}
  .faq details[open] summary::before{content:"– "}
  .faq p{font-size:14px;color:#4C4958;margin-top:10px}

  .cta-finale{background:var(--sabbia);text-align:center;padding:clamp(48px,7vw,76px) var(--gab)}
  .cta-finale h2{font-size:clamp(24px,3vw,32px)}
  .cta-finale p{font-size:15.5px;color:#3E3B4A;margin:12px auto 24px;max-width:520px}
  .cta-finale .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

  .form{max-width:640px;margin:26px auto 0;text-align:left;display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .form .full{grid-column:1/-1}
  .form label{font-size:12.5px;font-weight:600;color:var(--grigio);display:block;margin-bottom:5px}
  .form input,.form select,.form textarea{width:100%;padding:11px 13px;border:1px solid #D3C8AE;border-radius:8px;font-family:inherit;font-size:14px;background:#fff}
  .form textarea{min-height:90px;resize:vertical}

  /* CALENDARIO DISPONIBILITÀ */
  .modal-ov{position:fixed;inset:0;background:rgba(16,16,40,.6);display:none;align-items:center;justify-content:center;z-index:200;padding:20px}
  .modal-ov.on{display:flex;animation:pagein .25s ease-out}
  .cal{background:#fff;border-radius:16px;max-width:430px;width:100%;padding:26px;box-shadow:0 30px 70px -20px rgba(16,16,40,.55);max-height:92vh;overflow:auto}
  .cal-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
  .cal-h h3{font-family:var(--serif);font-size:21px;color:var(--blu)}
  .cal-close{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--grigio)}
  .cal-sub{font-size:13px;color:var(--grigio);margin:6px 0 18px}
  .cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .cal-nav button{background:var(--panna);border:none;border-radius:8px;width:36px;height:36px;font-size:18px;cursor:pointer;color:var(--blu);display:flex;align-items:center;justify-content:center;line-height:1;padding:0}
  .cal-nav button:disabled{opacity:.35;cursor:default}
  .cal-nav b{font-family:var(--serif);font-size:17px;text-transform:capitalize;color:var(--inchiostro)}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
  .cal-grid .wd{text-align:center;font-size:10.5px;font-weight:700;color:var(--grigio);text-transform:uppercase;padding:4px 0}
  .cal-grid .d{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:9px;cursor:pointer;transition:background .12s}
  .cal-grid .d:hover{background:var(--panna)}
  .cal-grid .d.sel{background:var(--blu);color:#fff;font-weight:700}
  .cal-grid .d.sel:hover{background:var(--blu)}
  .cal-grid .d.off,.cal-grid .d:disabled{color:#CFC8B6;cursor:default}
  .cal-grid .d.empty{pointer-events:none}
  .cal-chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px;min-height:8px}
  .cal-chip{background:var(--blu-tint);color:var(--blu);font-size:12.5px;font-weight:600;padding:6px 6px 6px 11px;border-radius:20px;display:flex;align-items:center;gap:7px}
  .cal-chip .chip-x{cursor:pointer;font-weight:700;font-size:14px;padding:2px 6px;margin:-2px -2px -2px 0;color:inherit}
  .cal-empty-msg{font-size:12.5px;color:var(--grigio);margin:16px 0 4px}
  .cal-actions{display:flex;gap:10px;margin-top:14px}
  .cal-actions .btn{flex:1;text-align:center;padding:12px 10px}

  /* FOOTER */
  .footer{background:var(--blu-scuro);color:#BFBFDA;padding:clamp(40px,6vw,56px) var(--gab) 28px;font-size:13.5px}
  .footer .grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:28px}
  .footer b{color:var(--panna);font-family:var(--serif);font-size:16px;display:block;margin-bottom:12px;font-weight:600}
  .footer .lk{cursor:pointer;transition:color .15s;color:inherit;padding:3px 0;display:inline-block}
  .footer .lk:hover{color:#fff}
  .footer .fine{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:16px;font-size:11.5px;color:#8888AC;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

  @media(max-width:920px){
    .nav-center,.nav-sec{display:none}
    .burger{display:block}
    .nav.open .nav-center{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--blu);flex-direction:column;align-items:stretch;padding:12px var(--gab);gap:8px}
    .nav.open .nav-center .nav-sep{display:none}
    .nav.open .nav-sec{display:flex;padding-top:6px}
    .hero-logo{right:auto;left:50%;top:20px;transform:translateX(-50%);width:min(300px,64%)}
    .pilastri,.numeri,.split,.piena,.sale-strip,.gall-due,.steps,.cards3,.cards2,.gall-grid,.quotes,.duo,.footer .grid{grid-template-columns:1fr}
    .split .foto{aspect-ratio:1/1;min-height:0}
    .numeri{gap:22px}
    .form{grid-template-columns:1fr}
    .glutine{flex-direction:column;align-items:flex-start;gap:12px}
  }
