@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* pagine.css — nato il 12/09/2026 dai <style> inline di landing, chi-siamo, ristoranti,
   menu, camere, agriturismo e contatti (_lavoro/2026-09-12-css-un-bundle/costruisci.py).

   ⚠️ DA QUI LA SORGENTE È QUESTO FILE: si modifica a mano. Quei <style> non esistono più,
   e lo script NON va rilanciato — ora il primo <style> dei template è quello dentro
   <noscript>, e lo trasformerebbe in silenzio. Lo script si rifiuta da solo.

   Ogni pagina tiene le sue regole NELL'ORDINE ORIGINALE, avvolte in
   :where(body.ms-p--<slug>) — specificita' ZERO, quindi pesano quanto prima.
   Le regole su html/:root/body/* restano globali: sono identiche fra i 7
   template, ripeterle non cambia un valore. */

/* ============ LANDING ============ */
:root{--red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15; --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff; --border:#E5DFD4; --muted:#6B6459; --charcoal:#1A1917; --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250; --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --container:1280px; --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.16,1,.3,1);}
:where(body.ms-p--landing) *, :where(body.ms-p--landing) *::before, :where(body.ms-p--landing) *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:clamp(15px,1vw+13px,17px); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.ms-p--landing) img{max-width:100%; height:auto; display:block}
:where(body.ms-p--landing) a{text-decoration:none}
body a,body a:visited{color:inherit}
:where(body.ms-p--landing) h1, :where(body.ms-p--landing) h2, :where(body.ms-p--landing) h3{font-family:var(--serif); font-weight:600; line-height:1.03; letter-spacing:-.02em; margin:0}
:where(body.ms-p--landing) .grain{position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
:where(body.ms-p--landing) .wrap{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px)}
:where(body.ms-p--landing) .eyebrow{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
:where(body.ms-p--landing) .eyebrow::before{content:""; width:26px; height:1px; background:var(--red)}
:where(body.ms-p--landing) .eyebrow.on-dark{color:#c9c2b6}
:where(body.ms-p--landing) .btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:var(--ms-r-btn,24px); border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform}
:where(body.ms-p--landing) .btn:hover{transform:translateY(-2px)}
:where(body.ms-p--landing) .btn-primary{background:var(--red); color:#fff}
:where(body.ms-p--landing) .btn-primary:hover{background:var(--red-hover)}
:where(body.ms-p--landing) .btn-ghost{border-color:currentColor; color:var(--ink)}
:where(body.ms-p--landing) .btn-ghost.on-dark{color:var(--cream)}
:where(body.ms-p--landing) .btn-ghost:hover{background:var(--ink); color:var(--cream)}
:where(body.ms-p--landing) .btn-ghost.on-dark:hover{background:var(--cream); color:var(--ink)}
:where(body.ms-p--landing) .btn .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--landing) .btn:hover .ar{transform:translateX(4px)}
:where(body.ms-p--landing) [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-io),transform 1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--landing) [data-reveal].vis{opacity:1; transform:none}
:where(body.ms-p--landing) .mask{display:block; overflow:hidden}
:where(body.ms-p--landing) .mask>span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--landing) .mask.vis>span{transform:none}
:where(body.ms-p--landing) .nav{position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:clamp(14px,2vw,22px) clamp(20px,5vw,64px); transition:background .4s,backdrop-filter .4s,padding .4s,box-shadow .4s}
:where(body.ms-p--landing) .nav.scrolled{background:rgba(245,240,232,.86); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border); padding-top:12px; padding-bottom:12px}
:where(body.ms-p--landing) .nav__logo{height:38px; width:auto; transition:height .4s}
:where(body.ms-p--landing) .nav.scrolled .nav__logo{height:32px}
:where(body.ms-p--landing) .nav__menu{display:flex; gap:2rem; font-size:.86rem; font-weight:500; letter-spacing:.02em; color:var(--cream); transition:color .4s}
:where(body.ms-p--landing) .nav.scrolled .nav__menu{color:var(--ink)}
:where(body.ms-p--landing) .nav__menu a{position:relative; padding:4px 0}
:where(body.ms-p--landing) .nav__menu a::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease)}
:where(body.ms-p--landing) .nav__menu a:hover::after{transform:scaleX(1); transform-origin:left}
:where(body.ms-p--landing) .nav__cta{display:flex; align-items:center; gap:1.2rem}
:where(body.ms-p--landing) .nav__cta .btn{padding:.6em 1.2em; font-size:.82rem}
:where(body.ms-p--landing) .nav__burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; background:transparent}
:where(body.ms-p--landing) .nav__burger span{display:block; width:24px; height:2px; background:var(--cream); margin:0 auto; transition:transform .35s var(--ease),opacity .25s,background .4s}
:where(body.ms-p--landing) .nav.scrolled .nav__burger span{background:var(--ink)}
body.menu-open .nav__burger span{background:var(--cream)}
body.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open .nav{background:transparent!important; box-shadow:none!important}
:where(body.ms-p--landing) .mnav{position:fixed; inset:0; z-index:95; background:var(--charcoal-2); display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:5rem clamp(28px,9vw,56px) 3rem; transform:translateX(100%); opacity:0; visibility:hidden; transition:transform .55s var(--ease),opacity .4s,visibility .55s}
body.menu-open .mnav{transform:none; opacity:1; visibility:visible}
:where(body.ms-p--landing) .mnav a{font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--cream); padding:.32em 0; border-bottom:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between}
:where(body.ms-p--landing) .mnav a .ar{color:var(--red); font-size:1.2rem}
:where(body.ms-p--landing) .mnav .btn{margin-top:1.6rem; font-family:var(--sans); font-size:1rem; justify-content:center; border:none}
:where(body.ms-p--landing) .hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--landing) .hero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--landing) .hero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.62) contrast(1.05) saturate(.92)}
:where(body.ms-p--landing) .hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.55) 0%,rgba(18,16,14,.15) 35%,rgba(18,16,14,.35) 60%,rgba(18,16,14,.92) 100%)}
:where(body.ms-p--landing) .hero__inner{position:relative; z-index:2; width:100%; min-width:0; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,96px)}
:where(body.ms-p--landing) .hero__eyebrow{margin-bottom:clamp(20px,3vw,34px)}
:where(body.ms-p--landing) .hero h1{font-size:clamp(3rem,10.5vw,9.5rem); font-weight:500; letter-spacing:-.035em}
:where(body.ms-p--landing) .hero h1 em{font-style:italic; font-weight:400; color:var(--cream)}
:where(body.ms-p--landing) .hero__sub{max-width:46ch; margin:clamp(22px,3vw,34px) 0 clamp(30px,4vw,42px); font-size:clamp(1rem,1.3vw,1.18rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--landing) .hero__actions{display:flex; flex-wrap:wrap; gap:1rem}
:where(body.ms-p--landing) .hero__scroll{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:#c9c2b6}
:where(body.ms-p--landing) .hero__scroll .line{width:1px; height:46px; background:linear-gradient(var(--cream),transparent); position:relative; overflow:hidden}
:where(body.ms-p--landing) .hero__scroll .line::after{content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--red); animation:scrolldot 2.2s var(--ease) infinite}
:where(body.ms-p--landing) .trust{background:var(--ink); color:var(--cream); border-bottom:1px solid rgba(255,255,255,.08)}
:where(body.ms-p--landing) .trust__row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; padding:20px 0; font-size:.78rem; letter-spacing:.04em}
:where(body.ms-p--landing) .trust__row span{display:inline-flex; align-items:center; gap:.6em; color:#cfc8bc}
:where(body.ms-p--landing) .trust__row b{color:var(--cream); font-weight:600}
:where(body.ms-p--landing) .trust .dot{width:5px; height:5px; border-radius:50%; background:var(--red)}
:where(body.ms-p--landing) .section{padding:clamp(72px,11vw,150px) 0; position:relative}
:where(body.ms-p--landing) .section__head{max-width:760px; margin-bottom:clamp(40px,6vw,72px)}
:where(body.ms-p--landing) .section__head h2{font-size:clamp(2rem,5.2vw,4rem); margin-top:.4em}
:where(body.ms-p--landing) .section__head p{margin-top:1.1em; color:var(--muted); font-size:1.06rem; max-width:56ch}
:where(body.ms-p--landing) .worlds{display:grid; grid-template-columns:repeat(12,1fr); gap:14px}
:where(body.ms-p--landing) .world{position:relative; overflow:hidden; border-radius:3px; min-height:300px; display:flex; flex-direction:column; justify-content:flex-end; padding:28px; color:var(--cream); isolation:isolate}
:where(body.ms-p--landing) .world:nth-child(1){grid-column:span 7}
:where(body.ms-p--landing) .world:nth-child(2){grid-column:span 5}
:where(body.ms-p--landing) .world:nth-child(3){grid-column:span 4}
:where(body.ms-p--landing) .world:nth-child(4){grid-column:span 4}
:where(body.ms-p--landing) .world:nth-child(5){grid-column:span 4}
:where(body.ms-p--landing) .worlds[data-n="4"] .world:nth-child(3), :where(body.ms-p--landing) .worlds[data-n="4"] .world:nth-child(4){grid-column:span 6}
:where(body.ms-p--landing) .world__img{position:absolute; inset:0; z-index:-2}
:where(body.ms-p--landing) .world__img img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); transform:scale(1.02)}
:where(body.ms-p--landing) .world:hover .world__img img{transform:scale(1.09)}
:where(body.ms-p--landing) .world::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(18,16,14,.05),rgba(18,16,14,.82))}
:where(body.ms-p--landing) .world__n{font-family:var(--serif); font-size:.9rem; color:var(--cream); margin-bottom:auto} /* [D1.2] era ocra: 1,17:1 sulla foto chiara della card 02 */
:where(body.ms-p--landing) .world__t{font-family:var(--serif); font-size:clamp(1.5rem,2.4vw,2.1rem); font-weight:600}
:where(body.ms-p--landing) .world__d{font-size:.9rem; color:var(--cream); margin-top:.4em; max-width:34ch; opacity:1; /* [D1.2] era #d4cdc1 a .85: 3,56:1 sul fondo più chiaro */ max-height:80px; transform:none; transition:opacity .5s var(--ease)}
:where(body.ms-p--landing) .world:hover .world__d{opacity:1}
:where(body.ms-p--landing) .world__link{margin-top:16px; display:inline-flex; align-items:center; gap:.5em; font-size:.82rem; font-weight:600; letter-spacing:.04em}
:where(body.ms-p--landing) .world__link .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--landing) .world:hover .world__link .ar{transform:translateX(5px)}
:where(body.ms-p--landing) .world--red{background:var(--red)}
:where(body.ms-p--landing) .world--red::after{display:none}
:where(body.ms-p--landing) .world--red .world__n{color:rgba(255,255,255,.7)}
:where(body.ms-p--landing) .story{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--landing) .story__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center}
:where(body.ms-p--landing) .story__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:4/5}
:where(body.ms-p--landing) .story__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
:where(body.ms-p--landing) .story__media.vis img{transform:scale(1)}
:where(body.ms-p--landing) .story__badge{position:absolute; left:20px; bottom:20px; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.82rem; padding:10px 16px; border-radius:2px}
:where(body.ms-p--landing) .story__badge b{color:var(--red)}
:where(body.ms-p--landing) .story h2{font-size:clamp(1.9rem,4.4vw,3.4rem)}
:where(body.ms-p--landing) .story p{color:var(--muted); margin:1.2em 0}
:where(body.ms-p--landing) .stats{display:flex; gap:clamp(24px,4vw,54px); margin-top:2.2em; flex-wrap:wrap}
:where(body.ms-p--landing) .stat__n{font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:600; color:var(--red); line-height:1}
:where(body.ms-p--landing) .stat__l{font-size:.8rem; color:var(--muted); letter-spacing:.03em; margin-top:.5em; max-width:14ch}
:where(body.ms-p--landing) .agri{position:relative; color:var(--cream); background:var(--charcoal-2); overflow:hidden}
:where(body.ms-p--landing) .agri__bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform}
:where(body.ms-p--landing) .agri__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.64)}
:where(body.ms-p--landing) .agri__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,16,14,.7),rgba(18,16,14,.26))}
:where(body.ms-p--landing) .agri__inner{position:relative; z-index:2; max-width:620px}
:where(body.ms-p--landing) .agri h2{font-size:clamp(2rem,5vw,3.8rem)}
:where(body.ms-p--landing) .agri p{color:#d9d2c6; margin:1.2em 0 1.8em}
:where(body.ms-p--landing) .agri__srv{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:2rem}
:where(body.ms-p--landing) .chip{border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:.5em 1.1em; font-size:.8rem; color:#e6e0d5}
:where(body.ms-p--landing) .chip b{color:var(--ochre); font-weight:600}
:where(body.ms-p--landing) .news{background:var(--red); color:#fff; text-align:center}
:where(body.ms-p--landing) .news h2{font-size:clamp(1.8rem,4.2vw,3rem); color:#fff}
:where(body.ms-p--landing) .news p{color:rgba(255,255,255,.85); margin:1em auto 2em; max-width:44ch}
:where(body.ms-p--landing) .news__form{display:flex; gap:10px; max-width:460px; margin:0 auto; flex-wrap:wrap; justify-content:center}
:where(body.ms-p--landing) .news__form input{flex:1; min-width:220px; padding:1em 1.2em; border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.1); color:#fff; border-radius:var(--ms-r-btn,24px); font:inherit}
:where(body.ms-p--landing) .news__form input::placeholder{color:rgba(255,255,255,.7)}
:where(body.ms-p--landing) .news__form button{background:#fff; color:var(--red); border:none; padding:1em 1.6em; border-radius:var(--ms-r-btn,24px); font-weight:600; cursor:pointer; transition:transform .4s var(--ease)}
:where(body.ms-p--landing) .news__form button:hover{transform:translateY(-2px)}
:where(body.ms-p--landing) .foot{background:var(--charcoal-2); color:#cfc8bc; padding:clamp(56px,8vw,90px) 0 40px}
:where(body.ms-p--landing) .foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
:where(body.ms-p--landing) .foot__logo{height:40px; margin-bottom:20px}
:where(body.ms-p--landing) .foot h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#7d766a; margin:0 0 16px}
:where(body.ms-p--landing) .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem}
:where(body.ms-p--landing) .foot a:hover{color:var(--cream)}
:where(body.ms-p--landing) .foot__sedi{font-size:.86rem; line-height:1.7}
:where(body.ms-p--landing) .foot__sedi b{color:var(--cream); font-weight:600}
:where(body.ms-p--landing) .foot__bar{border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.76rem; color:#7d766a}
:where(body.ms-p--landing) .pre{position:fixed; inset:0; z-index:9999; background:var(--charcoal-2); display:grid; place-items:center; transition:transform 1s var(--ease) .2s}
:where(body.ms-p--landing) .pre.done{transform:translateY(-100%)}
:where(body.ms-p--landing) .pre img{height:52px; opacity:0; transform:translateY(10px); animation:preIn 1s var(--ease) forwards}
@media(max-width:900px){
  :where(body.ms-p--landing) .nav__menu, :where(body.ms-p--landing) .nav__cta .btn{display:none}
  :where(body.ms-p--landing) .nav__burger{display:flex}
}
@keyframes scrolldot{
  :where(body.ms-p--landing) 0%{top:-50%}
  :where(body.ms-p--landing) 60%, :where(body.ms-p--landing) 100%{top:100%}
}
@media(max-width:820px){
  :where(body.ms-p--landing) .worlds{grid-template-columns:1fr 1fr}
  :where(body.ms-p--landing) .world, :where(body.ms-p--landing) .world:nth-child(n){grid-column:span 1!important}
  :where(body.ms-p--landing) .world__d{opacity:1; max-height:80px; transform:none}
  :where(body.ms-p--landing) .story__grid{grid-template-columns:1fr}
  :where(body.ms-p--landing) .story__media{aspect-ratio:16/11}
  :where(body.ms-p--landing) .foot__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  :where(body.ms-p--landing) .worlds{grid-template-columns:1fr}
  :where(body.ms-p--landing) .foot__grid{grid-template-columns:1fr}
}
@keyframes preIn{
  :where(body.ms-p--landing) to{opacity:1; transform:none}
}
@media(max-width:640px){
  :where(body.ms-p--landing) .hero{min-height:100svh}
  :where(body.ms-p--landing) .hero__inner{padding-bottom:clamp(70px,16vw,110px)}
  :where(body.ms-p--landing) .hero h1{font-size:clamp(3.2rem,17vw,5rem)}
  :where(body.ms-p--landing) .hero__sub{font-size:1.02rem}
  :where(body.ms-p--landing) .hero__actions{flex-direction:column; align-items:stretch; gap:.7rem}
  :where(body.ms-p--landing) .hero__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
  :where(body.ms-p--landing) .hero__scroll{display:none}
  :where(body.ms-p--landing) .trust__row{display:grid; grid-template-columns:1fr; gap:12px; padding:22px 0}
  :where(body.ms-p--landing) .trust__row span{font-size:.82rem}
  :where(body.ms-p--landing) .section__head p{font-size:1rem}
  :where(body.ms-p--landing) .stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 16px} /* [D1.2] tre numeri su una riga: prima 2 + 1 */
  :where(body.ms-p--landing) .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
  :where(body.ms-p--landing) .agri{padding-top:clamp(64px,14vw,96px)}
}
@media(max-width:420px){
  :where(body.ms-p--landing) .foot__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  :where(body.ms-p--landing) *{animation:none!important; transition-duration:.01ms!important}
  :where(body.ms-p--landing) [data-reveal], :where(body.ms-p--landing) .mask>span{opacity:1!important; transform:none!important}
  :where(body.ms-p--landing) .pre{display:none}
}

/* ============ CHI-SIAMO ============ */
:root{--red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15; --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff; --border:#E5DFD4; --muted:#6B6459; --charcoal:#1A1917; --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250; --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --container:1280px; --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.16,1,.3,1);}
:where(body.ms-p--chi-siamo) *, :where(body.ms-p--chi-siamo) *::before, :where(body.ms-p--chi-siamo) *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:clamp(15px,1vw+13px,17px); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.ms-p--chi-siamo) img{max-width:100%; height:auto; display:block}
:where(body.ms-p--chi-siamo) a{text-decoration:none}
body a,body a:visited{color:inherit}
:where(body.ms-p--chi-siamo) h1, :where(body.ms-p--chi-siamo) h2, :where(body.ms-p--chi-siamo) h3{font-family:var(--serif); font-weight:600; line-height:1.03; letter-spacing:-.02em; margin:0}
:where(body.ms-p--chi-siamo) .grain{position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
:where(body.ms-p--chi-siamo) .wrap{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px)}
:where(body.ms-p--chi-siamo) .eyebrow{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
:where(body.ms-p--chi-siamo) .eyebrow::before{content:""; width:26px; height:1px; background:var(--red)}
:where(body.ms-p--chi-siamo) .eyebrow.on-dark{color:#c9c2b6}
:where(body.ms-p--chi-siamo) .btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:var(--ms-r-btn,24px); border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform}
:where(body.ms-p--chi-siamo) .btn:hover{transform:translateY(-2px)}
:where(body.ms-p--chi-siamo) .btn-primary{background:var(--red); color:#fff}
:where(body.ms-p--chi-siamo) .btn-primary:hover{background:var(--red-hover)}
:where(body.ms-p--chi-siamo) .btn-ghost{border-color:currentColor; color:var(--ink)}
:where(body.ms-p--chi-siamo) .btn-ghost.on-dark{color:var(--cream)}
:where(body.ms-p--chi-siamo) .btn-ghost:hover{background:var(--ink); color:var(--cream)}
:where(body.ms-p--chi-siamo) .btn-ghost.on-dark:hover{background:var(--cream); color:var(--ink)}
:where(body.ms-p--chi-siamo) .btn .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--chi-siamo) .btn:hover .ar{transform:translateX(4px)}
:where(body.ms-p--chi-siamo) [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-io),transform 1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--chi-siamo) [data-reveal].vis{opacity:1; transform:none}
:where(body.ms-p--chi-siamo) .mask{display:block; overflow:hidden}
:where(body.ms-p--chi-siamo) .mask>span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--chi-siamo) .mask.vis>span{transform:none}
:where(body.ms-p--chi-siamo) .nav{position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:clamp(14px,2vw,22px) clamp(20px,5vw,64px); transition:background .4s,backdrop-filter .4s,padding .4s,box-shadow .4s}
:where(body.ms-p--chi-siamo) .nav.scrolled{background:rgba(245,240,232,.86); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border); padding-top:12px; padding-bottom:12px}
:where(body.ms-p--chi-siamo) .nav__logo{height:38px; width:auto; transition:height .4s}
:where(body.ms-p--chi-siamo) .nav.scrolled .nav__logo{height:32px}
:where(body.ms-p--chi-siamo) .nav__menu{display:flex; gap:2rem; font-size:.86rem; font-weight:500; letter-spacing:.02em; color:var(--cream); transition:color .4s}
:where(body.ms-p--chi-siamo) .nav.scrolled .nav__menu{color:var(--ink)}
:where(body.ms-p--chi-siamo) .nav__menu a{position:relative; padding:4px 0}
:where(body.ms-p--chi-siamo) .nav__menu a::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease)}
:where(body.ms-p--chi-siamo) .nav__menu a:hover::after{transform:scaleX(1); transform-origin:left}
:where(body.ms-p--chi-siamo) .nav__menu a.active::after{transform:scaleX(1)}
:where(body.ms-p--chi-siamo) .nav__cta{display:flex; align-items:center; gap:1.2rem}
:where(body.ms-p--chi-siamo) .nav__cta .btn{padding:.6em 1.2em; font-size:.82rem}
:where(body.ms-p--chi-siamo) .nav__burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; background:transparent}
:where(body.ms-p--chi-siamo) .nav__burger span{display:block; width:24px; height:2px; background:var(--cream); margin:0 auto; transition:transform .35s var(--ease),opacity .25s,background .4s}
:where(body.ms-p--chi-siamo) .nav.scrolled .nav__burger span{background:var(--ink)}
body.menu-open .nav__burger span{background:var(--cream)}
body.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open .nav{background:transparent!important; box-shadow:none!important}
:where(body.ms-p--chi-siamo) .mnav{position:fixed; inset:0; z-index:95; background:var(--charcoal-2); display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:5rem clamp(28px,9vw,56px) 3rem; transform:translateX(100%); opacity:0; visibility:hidden; transition:transform .55s var(--ease),opacity .4s,visibility .55s}
body.menu-open .mnav{transform:none; opacity:1; visibility:visible}
:where(body.ms-p--chi-siamo) .mnav a{font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--cream); padding:.32em 0; border-bottom:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between}
:where(body.ms-p--chi-siamo) .mnav a .ar{color:var(--red); font-size:1.2rem}
:where(body.ms-p--chi-siamo) .mnav a.active{color:var(--ochre)}
:where(body.ms-p--chi-siamo) .mnav .btn{margin-top:1.6rem; font-family:var(--sans); font-size:1rem; justify-content:center; border:none}
:where(body.ms-p--chi-siamo) .hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--chi-siamo) .hero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--chi-siamo) .hero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.62) contrast(1.05) saturate(.92)}
:where(body.ms-p--chi-siamo) .hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.55) 0%,rgba(18,16,14,.15) 35%,rgba(18,16,14,.35) 60%,rgba(18,16,14,.92) 100%)}
:where(body.ms-p--chi-siamo) .hero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,96px)}
:where(body.ms-p--chi-siamo) .hero__eyebrow{margin-bottom:clamp(20px,3vw,34px)}
:where(body.ms-p--chi-siamo) .hero h1{font-size:clamp(3rem,10.5vw,9.5rem); font-weight:500; letter-spacing:-.035em}
:where(body.ms-p--chi-siamo) .hero h1 em{font-style:italic; font-weight:400; color:var(--cream)}
:where(body.ms-p--chi-siamo) .hero__sub{max-width:46ch; margin:clamp(22px,3vw,34px) 0 clamp(30px,4vw,42px); font-size:clamp(1rem,1.3vw,1.18rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--chi-siamo) .hero__actions{display:flex; flex-wrap:wrap; gap:1rem}
:where(body.ms-p--chi-siamo) .hero__scroll{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:#c9c2b6}
:where(body.ms-p--chi-siamo) .hero__scroll .line{width:1px; height:46px; background:linear-gradient(var(--cream),transparent); position:relative; overflow:hidden}
:where(body.ms-p--chi-siamo) .hero__scroll .line::after{content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--red); animation:scrolldot 2.2s var(--ease) infinite}
:where(body.ms-p--chi-siamo) .trust{background:var(--ink); color:var(--cream); border-bottom:1px solid rgba(255,255,255,.08)}
:where(body.ms-p--chi-siamo) .trust__row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; padding:20px 0; font-size:.78rem; letter-spacing:.04em}
:where(body.ms-p--chi-siamo) .trust__row span{display:inline-flex; align-items:center; gap:.6em; color:#cfc8bc}
:where(body.ms-p--chi-siamo) .trust__row b{color:var(--cream); font-weight:600}
:where(body.ms-p--chi-siamo) .trust .dot{width:5px; height:5px; border-radius:50%; background:var(--red)}
:where(body.ms-p--chi-siamo) .section{padding:clamp(72px,11vw,150px) 0; position:relative}
:where(body.ms-p--chi-siamo) .section__head{max-width:760px; margin-bottom:clamp(40px,6vw,72px)}
:where(body.ms-p--chi-siamo) .section__head h2{font-size:clamp(2rem,5.2vw,4rem); margin-top:.4em}
:where(body.ms-p--chi-siamo) .section__head p{margin-top:1.1em; color:var(--muted); font-size:1.06rem; max-width:56ch}
:where(body.ms-p--chi-siamo) .worlds{display:grid; grid-template-columns:repeat(12,1fr); gap:14px}
:where(body.ms-p--chi-siamo) .world{position:relative; overflow:hidden; border-radius:3px; min-height:300px; display:flex; flex-direction:column; justify-content:flex-end; padding:28px; color:var(--cream); isolation:isolate}
:where(body.ms-p--chi-siamo) .world:nth-child(1){grid-column:span 7}
:where(body.ms-p--chi-siamo) .world:nth-child(2){grid-column:span 5}
:where(body.ms-p--chi-siamo) .world:nth-child(3){grid-column:span 4}
:where(body.ms-p--chi-siamo) .world:nth-child(4){grid-column:span 4}
:where(body.ms-p--chi-siamo) .world:nth-child(5){grid-column:span 4}
:where(body.ms-p--chi-siamo) .world__img{position:absolute; inset:0; z-index:-2}
:where(body.ms-p--chi-siamo) .world__img img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); transform:scale(1.02)}
:where(body.ms-p--chi-siamo) .world:hover .world__img img{transform:scale(1.09)}
:where(body.ms-p--chi-siamo) .world::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(18,16,14,.05),rgba(18,16,14,.82))}
:where(body.ms-p--chi-siamo) .world__n{font-family:var(--serif); font-size:.9rem; color:var(--ochre); margin-bottom:auto}
:where(body.ms-p--chi-siamo) .world__t{font-family:var(--serif); font-size:clamp(1.5rem,2.4vw,2.1rem); font-weight:600}
:where(body.ms-p--chi-siamo) .world__d{font-size:.9rem; color:#d4cdc1; margin-top:.4em; max-width:34ch; opacity:0; max-height:0; transform:translateY(8px); transition:.6s var(--ease)}
:where(body.ms-p--chi-siamo) .world:hover .world__d{opacity:1; max-height:80px; transform:none}
:where(body.ms-p--chi-siamo) .world__link{margin-top:16px; display:inline-flex; align-items:center; gap:.5em; font-size:.82rem; font-weight:600; letter-spacing:.04em}
:where(body.ms-p--chi-siamo) .world__link .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--chi-siamo) .world:hover .world__link .ar{transform:translateX(5px)}
:where(body.ms-p--chi-siamo) .world--red{background:var(--red)}
:where(body.ms-p--chi-siamo) .world--red::after{display:none}
:where(body.ms-p--chi-siamo) .world--red .world__n{color:rgba(255,255,255,.7)}
:where(body.ms-p--chi-siamo) .story{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--chi-siamo) .story__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center}
:where(body.ms-p--chi-siamo) .story__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:4/5}
:where(body.ms-p--chi-siamo) .story__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
:where(body.ms-p--chi-siamo) .story__media.vis img{transform:scale(1)}
:where(body.ms-p--chi-siamo) .story__badge{position:absolute; left:20px; bottom:20px; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.82rem; padding:10px 16px; border-radius:2px}
:where(body.ms-p--chi-siamo) .story__badge b{color:var(--red)}
:where(body.ms-p--chi-siamo) .story h2{font-size:clamp(1.9rem,4.4vw,3.4rem)}
:where(body.ms-p--chi-siamo) .story p{color:var(--muted); margin:1.2em 0}
:where(body.ms-p--chi-siamo) .stats{display:flex; gap:clamp(24px,4vw,54px); margin-top:2.2em; flex-wrap:wrap}
:where(body.ms-p--chi-siamo) .stat__n{font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:600; color:var(--red); line-height:1}
:where(body.ms-p--chi-siamo) .stat__l{font-size:.8rem; color:var(--muted); letter-spacing:.03em; margin-top:.5em; max-width:14ch}
:where(body.ms-p--chi-siamo) .prods{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
:where(body.ms-p--chi-siamo) .card{background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
:where(body.ms-p--chi-siamo) .card:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--chi-siamo) .card__img{aspect-ratio:1; overflow:hidden}
:where(body.ms-p--chi-siamo) .card__img img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease)}
:where(body.ms-p--chi-siamo) .card:hover .card__img img{transform:scale(1.07)}
:where(body.ms-p--chi-siamo) .card__b{padding:18px}
:where(body.ms-p--chi-siamo) .card__cat{font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
:where(body.ms-p--chi-siamo) .card__t{font-family:var(--serif); font-size:1.18rem; margin:.35em 0 .1em}
:where(body.ms-p--chi-siamo) .card__meta{font-size:.78rem; color:var(--muted)}
:where(body.ms-p--chi-siamo) .card__f{display:flex; align-items:center; justify-content:space-between; margin-top:14px}
:where(body.ms-p--chi-siamo) .card__price{font-family:var(--serif); font-size:1.3rem; font-weight:600; color:var(--red)}
:where(body.ms-p--chi-siamo) .card__add{width:38px; height:38px; border-radius:2px; background:var(--ink); color:var(--cream); display:grid; place-items:center; font-size:1.1rem; transition:background .3s,transform .4s var(--ease)}
:where(body.ms-p--chi-siamo) .card__add:hover{background:var(--red); transform:rotate(90deg)}
:where(body.ms-p--chi-siamo) .agri{position:relative; color:var(--cream); background:var(--charcoal-2); overflow:hidden}
:where(body.ms-p--chi-siamo) .agri__bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform}
:where(body.ms-p--chi-siamo) .agri__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.5)}
:where(body.ms-p--chi-siamo) .agri__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,16,14,.88),rgba(18,16,14,.4))}
:where(body.ms-p--chi-siamo) .agri__inner{position:relative; z-index:2; max-width:620px}
:where(body.ms-p--chi-siamo) .agri h2{font-size:clamp(2rem,5vw,3.8rem)}
:where(body.ms-p--chi-siamo) .agri p{color:#d9d2c6; margin:1.2em 0 1.8em}
:where(body.ms-p--chi-siamo) .agri__srv{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:2rem}
:where(body.ms-p--chi-siamo) .chip{border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:.5em 1.1em; font-size:.8rem; color:#e6e0d5}
:where(body.ms-p--chi-siamo) .chip b{color:var(--ochre); font-weight:600}
:where(body.ms-p--chi-siamo) .news{background:var(--red); color:#fff; text-align:center}
:where(body.ms-p--chi-siamo) .news h2{font-size:clamp(1.8rem,4.2vw,3rem); color:#fff}
:where(body.ms-p--chi-siamo) .news p{color:rgba(255,255,255,.85); margin:1em auto 2em; max-width:44ch}
:where(body.ms-p--chi-siamo) .news__form{display:flex; gap:10px; max-width:460px; margin:0 auto; flex-wrap:wrap; justify-content:center}
:where(body.ms-p--chi-siamo) .news__form input{flex:1; min-width:220px; padding:1em 1.2em; border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.1); color:#fff; border-radius:var(--ms-r-btn,24px); font:inherit}
:where(body.ms-p--chi-siamo) .news__form input::placeholder{color:rgba(255,255,255,.7)}
:where(body.ms-p--chi-siamo) .news__form button{background:#fff; color:var(--red); border:none; padding:1em 1.6em; border-radius:var(--ms-r-btn,24px); font-weight:600; cursor:pointer; transition:transform .4s var(--ease)}
:where(body.ms-p--chi-siamo) .news__form button:hover{transform:translateY(-2px)}
:where(body.ms-p--chi-siamo) .foot{background:var(--charcoal-2); color:#cfc8bc; padding:clamp(56px,8vw,90px) 0 40px}
:where(body.ms-p--chi-siamo) .foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
:where(body.ms-p--chi-siamo) .foot__logo{height:40px; margin-bottom:20px}
:where(body.ms-p--chi-siamo) .foot h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#7d766a; margin:0 0 16px}
:where(body.ms-p--chi-siamo) .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem}
:where(body.ms-p--chi-siamo) .foot a:hover{color:var(--cream)}
:where(body.ms-p--chi-siamo) .foot__sedi{font-size:.86rem; line-height:1.7}
:where(body.ms-p--chi-siamo) .foot__sedi b{color:var(--cream); font-weight:600}
:where(body.ms-p--chi-siamo) .foot__bar{border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.76rem; color:#7d766a}
:where(body.ms-p--chi-siamo) .pre{position:fixed; inset:0; z-index:9999; background:var(--charcoal-2); display:grid; place-items:center; transition:transform 1s var(--ease) .2s}
:where(body.ms-p--chi-siamo) .pre.done{transform:translateY(-100%)}
:where(body.ms-p--chi-siamo) .pre img{height:52px; opacity:0; transform:translateY(10px); animation:preIn 1s var(--ease) forwards}
:where(body.ms-p--chi-siamo) .subhero{position:relative; min-height:82svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--chi-siamo) .subhero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--chi-siamo) .subhero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.6) contrast(1.04) saturate(.92)}
:where(body.ms-p--chi-siamo) .subhero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.5) 0%,rgba(18,16,14,.12) 34%,rgba(18,16,14,.38) 62%,rgba(18,16,14,.94) 100%)}
:where(body.ms-p--chi-siamo) .subhero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(46px,7vw,92px)}
:where(body.ms-p--chi-siamo) .subhero__eyebrow{margin-bottom:clamp(18px,3vw,30px)}
:where(body.ms-p--chi-siamo) .subhero h1{font-size:clamp(2.6rem,7.6vw,6.4rem); font-weight:500; letter-spacing:-.03em; max-width:16ch}
:where(body.ms-p--chi-siamo) .subhero h1 em{font-style:italic; font-weight:400}
:where(body.ms-p--chi-siamo) .subhero__sub{max-width:50ch; margin:clamp(20px,3vw,30px) 0 0; font-size:clamp(1rem,1.3vw,1.18rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--chi-siamo) .manifesto{background:var(--cream)}
:where(body.ms-p--chi-siamo) .manifesto__grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px,6vw,90px); align-items:start}
:where(body.ms-p--chi-siamo) .manifesto__lead{font-family:var(--serif); font-size:clamp(1.5rem,3vw,2.4rem); font-weight:500; line-height:1.28; letter-spacing:-.01em}
:where(body.ms-p--chi-siamo) .manifesto__lead b{color:var(--red); font-weight:600}
:where(body.ms-p--chi-siamo) .manifesto__body p{color:var(--muted); margin:0 0 1.2em}
:where(body.ms-p--chi-siamo) .manifesto__body p:last-child{margin-bottom:0}
:where(body.ms-p--chi-siamo) .manifesto__sign{margin-top:1.6em; font-family:var(--serif); font-style:italic; color:var(--ink); font-size:1.05rem}
:where(body.ms-p--chi-siamo) .saga{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--chi-siamo) .saga__block{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,84px); align-items:center; padding:clamp(48px,7vw,92px) 0}
:where(body.ms-p--chi-siamo) .saga__block + .saga__block{border-top:1px solid var(--border)}
:where(body.ms-p--chi-siamo) .saga__block:nth-child(even) .saga__media{order:2}
:where(body.ms-p--chi-siamo) .saga__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:5/4}
:where(body.ms-p--chi-siamo) .saga__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.5s var(--ease)}
:where(body.ms-p--chi-siamo) .saga__media.vis img{transform:scale(1)}
:where(body.ms-p--chi-siamo) .saga__yr{position:absolute; left:18px; top:16px; z-index:2; font-family:var(--serif); font-weight:600; font-size:.82rem; letter-spacing:.04em; color:var(--cream); background:rgba(18,16,14,.55); backdrop-filter:blur(4px); padding:8px 14px; border-radius:2px}
:where(body.ms-p--chi-siamo) .saga__yr b{color:var(--ochre)}
:where(body.ms-p--chi-siamo) .saga__k{font-family:var(--sans); font-weight:600; font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; color:var(--red)}
:where(body.ms-p--chi-siamo) .saga__t{font-family:var(--serif); font-size:clamp(1.7rem,3.6vw,2.9rem); font-weight:600; margin:.5em 0 .55em; line-height:1.08}
:where(body.ms-p--chi-siamo) .saga__p{color:var(--muted); margin:0 0 1em}
:where(body.ms-p--chi-siamo) .saga__p:last-child{margin-bottom:0}
:where(body.ms-p--chi-siamo) .saga__p b{color:var(--ink); font-weight:600}
:where(body.ms-p--chi-siamo) .tline{background:var(--charcoal-2); color:var(--cream); position:relative; overflow:hidden}
:where(body.ms-p--chi-siamo) .tline .section__head h2{color:var(--cream)}
:where(body.ms-p--chi-siamo) .tline .section__head p{color:#b7b0a4}
:where(body.ms-p--chi-siamo) .tl{position:relative; max-width:900px; margin:0 auto; padding-left:clamp(28px,6vw,60px)}
:where(body.ms-p--chi-siamo) .tl::before{content:""; position:absolute; left:clamp(6px,1.4vw,14px); top:6px; bottom:6px; width:2px; background:linear-gradient(180deg,rgba(200,135,58,.15),rgba(212,17,25,.6),rgba(200,135,58,.15))}
:where(body.ms-p--chi-siamo) .tl__item{position:relative; padding:0 0 clamp(34px,5vw,52px)}
:where(body.ms-p--chi-siamo) .tl__item:last-child{padding-bottom:0}
:where(body.ms-p--chi-siamo) .tl__dot{position:absolute; left:clamp(-28px,-6vw,-52px); top:4px; width:15px; height:15px; border-radius:50%; background:var(--charcoal-2); border:2px solid var(--ochre); transform:translateX(0)}
:where(body.ms-p--chi-siamo) .tl__item--red .tl__dot{border-color:var(--red); background:var(--red); box-shadow:0 0 0 5px rgba(212,17,25,.18)}
:where(body.ms-p--chi-siamo) .tl__yr{font-family:var(--serif); font-size:clamp(1.5rem,3.4vw,2.4rem); font-weight:600; color:var(--ochre); line-height:1}
:where(body.ms-p--chi-siamo) .tl__item--red .tl__yr{color:var(--red)}
:where(body.ms-p--chi-siamo) .tl__t{font-family:var(--serif); font-size:clamp(1.1rem,1.8vw,1.35rem); font-weight:600; margin:.35em 0 .3em; color:var(--cream)}
:where(body.ms-p--chi-siamo) .tl__d{color:#b7b0a4; font-size:.96rem; max-width:52ch; margin:0}
:where(body.ms-p--chi-siamo) .tl__dot::before{content:""; position:absolute; left:-52px; top:5px}
:where(body.ms-p--chi-siamo) .values{background:var(--cream)}
:where(body.ms-p--chi-siamo) .values__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,3vw,32px)}
:where(body.ms-p--chi-siamo) .vcard{background:var(--paper); border:1px solid var(--border); border-radius:3px; padding:clamp(24px,3vw,38px) clamp(20px,2.4vw,30px); text-align:left; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
:where(body.ms-p--chi-siamo) .vcard:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--chi-siamo) .vcard__n{font-family:var(--serif); font-size:clamp(2.6rem,5vw,3.6rem); font-weight:600; color:var(--red); line-height:1; display:flex; align-items:baseline}
:where(body.ms-p--chi-siamo) .vcard__suf{font-size:.5em; margin-left:.06em}
:where(body.ms-p--chi-siamo) .vcard__l{font-size:.92rem; color:var(--ink); font-weight:600; margin-top:.6em}
:where(body.ms-p--chi-siamo) .vcard__s{font-size:.82rem; color:var(--muted); margin-top:.25em; line-height:1.5}
:where(body.ms-p--chi-siamo) .cta2{position:relative; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--chi-siamo) .cta2__bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform}
:where(body.ms-p--chi-siamo) .cta2__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.42) saturate(.95)}
:where(body.ms-p--chi-siamo) .cta2__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.7),rgba(18,16,14,.88))}
:where(body.ms-p--chi-siamo) .cta2__inner{position:relative; z-index:2; max-width:820px; margin:0 auto; text-align:center}
:where(body.ms-p--chi-siamo) .cta2 h2{font-size:clamp(2rem,5vw,3.8rem); color:var(--cream)}
:where(body.ms-p--chi-siamo) .cta2 p{color:#d9d2c6; margin:1.1em auto 2em; max-width:48ch}
:where(body.ms-p--chi-siamo) .cta2__actions{display:flex; flex-wrap:wrap; gap:1rem; justify-content:center}
@media(max-width:900px){
  :where(body.ms-p--chi-siamo) .nav__menu, :where(body.ms-p--chi-siamo) .nav__cta .btn{display:none}
  :where(body.ms-p--chi-siamo) .nav__burger{display:flex}
}
@keyframes scrolldot{
  :where(body.ms-p--chi-siamo) 0%{top:-50%}
  :where(body.ms-p--chi-siamo) 60%, :where(body.ms-p--chi-siamo) 100%{top:100%}
}
@media(max-width:820px){
  :where(body.ms-p--chi-siamo) .worlds{grid-template-columns:1fr 1fr}
  :where(body.ms-p--chi-siamo) .world, :where(body.ms-p--chi-siamo) .world:nth-child(n){grid-column:span 1!important}
  :where(body.ms-p--chi-siamo) .world__d{opacity:1; max-height:80px; transform:none}
  :where(body.ms-p--chi-siamo) .story__grid{grid-template-columns:1fr}
  :where(body.ms-p--chi-siamo) .story__media{aspect-ratio:16/11}
  :where(body.ms-p--chi-siamo) .prods{grid-template-columns:1fr 1fr}
  :where(body.ms-p--chi-siamo) .foot__grid{grid-template-columns:1fr 1fr}
  :where(body.ms-p--chi-siamo) .manifesto__grid{grid-template-columns:1fr; gap:34px}
  :where(body.ms-p--chi-siamo) .saga__block{grid-template-columns:1fr; gap:26px}
  :where(body.ms-p--chi-siamo) .saga__block:nth-child(even) .saga__media{order:0}
  :where(body.ms-p--chi-siamo) .saga__media{aspect-ratio:16/11}
  :where(body.ms-p--chi-siamo) .values__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  :where(body.ms-p--chi-siamo) .worlds{grid-template-columns:1fr}
  :where(body.ms-p--chi-siamo) .foot__grid{grid-template-columns:1fr}
  :where(body.ms-p--chi-siamo) .cta2__actions{flex-direction:column; align-items:stretch}
  :where(body.ms-p--chi-siamo) .cta2__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
}
@keyframes preIn{
  :where(body.ms-p--chi-siamo) to{opacity:1; transform:none}
}
@media(max-width:640px){
  :where(body.ms-p--chi-siamo) .hero{min-height:100svh}
  :where(body.ms-p--chi-siamo) .hero__inner{padding-bottom:clamp(70px,16vw,110px)}
  :where(body.ms-p--chi-siamo) .hero h1{font-size:clamp(3.2rem,17vw,5rem)}
  :where(body.ms-p--chi-siamo) .hero__sub{font-size:1.02rem}
  :where(body.ms-p--chi-siamo) .hero__actions{flex-direction:column; align-items:stretch; gap:.7rem}
  :where(body.ms-p--chi-siamo) .hero__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
  :where(body.ms-p--chi-siamo) .hero__scroll{display:none}
  :where(body.ms-p--chi-siamo) .trust__row{display:grid; grid-template-columns:1fr; gap:12px; padding:22px 0}
  :where(body.ms-p--chi-siamo) .trust__row span{font-size:.82rem}
  :where(body.ms-p--chi-siamo) .section__head p{font-size:1rem}
  :where(body.ms-p--chi-siamo) .stats{gap:26px 32px}
  :where(body.ms-p--chi-siamo) .prods{grid-template-columns:1fr 1fr; gap:12px}
  :where(body.ms-p--chi-siamo) .card__b{padding:14px}
  :where(body.ms-p--chi-siamo) .card__t{font-size:1.05rem}
  :where(body.ms-p--chi-siamo) .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
  :where(body.ms-p--chi-siamo) .agri{padding-top:clamp(64px,14vw,96px)}
}
@media(max-width:420px){
  :where(body.ms-p--chi-siamo) .prods{grid-template-columns:1fr}
  :where(body.ms-p--chi-siamo) .foot__grid{grid-template-columns:1fr}
  :where(body.ms-p--chi-siamo) .values__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  :where(body.ms-p--chi-siamo) *{animation:none!important; transition-duration:.01ms!important}
  :where(body.ms-p--chi-siamo) [data-reveal], :where(body.ms-p--chi-siamo) .mask>span{opacity:1!important; transform:none!important}
  :where(body.ms-p--chi-siamo) .pre{display:none}
}

/* ============ RISTORANTI ============ */
:root{--red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15; --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff; --border:#E5DFD4; --muted:#6B6459; --charcoal:#1A1917; --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250; --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --container:1280px; --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.16,1,.3,1);}
:where(body.ms-p--ristoranti) *, :where(body.ms-p--ristoranti) *::before, :where(body.ms-p--ristoranti) *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:clamp(15px,1vw+13px,17px); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.ms-p--ristoranti) img{max-width:100%; height:auto; display:block}
:where(body.ms-p--ristoranti) a{text-decoration:none}
body a,body a:visited{color:inherit}
:where(body.ms-p--ristoranti) h1, :where(body.ms-p--ristoranti) h2, :where(body.ms-p--ristoranti) h3{font-family:var(--serif); font-weight:600; line-height:1.03; letter-spacing:-.02em; margin:0}
:where(body.ms-p--ristoranti) .grain{position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
:where(body.ms-p--ristoranti) .wrap{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px)}
:where(body.ms-p--ristoranti) .eyebrow{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
:where(body.ms-p--ristoranti) .eyebrow::before{content:""; width:26px; height:1px; background:var(--red)}
:where(body.ms-p--ristoranti) .eyebrow.on-dark{color:#c9c2b6}
:where(body.ms-p--ristoranti) .btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:var(--ms-r-btn,24px); border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform}
:where(body.ms-p--ristoranti) .btn:hover{transform:translateY(-2px)}
:where(body.ms-p--ristoranti) .btn-primary{background:var(--red); color:#fff}
:where(body.ms-p--ristoranti) .btn-primary:hover{background:var(--red-hover)}
:where(body.ms-p--ristoranti) .btn-ghost{border-color:currentColor; color:var(--ink)}
:where(body.ms-p--ristoranti) .btn-ghost.on-dark{color:var(--cream)}
:where(body.ms-p--ristoranti) .btn-ghost:hover{background:var(--ink); color:var(--cream)}
:where(body.ms-p--ristoranti) .btn-ghost.on-dark:hover{background:var(--cream); color:var(--ink)}
:where(body.ms-p--ristoranti) .btn .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--ristoranti) .btn:hover .ar{transform:translateX(4px)}
:where(body.ms-p--ristoranti) [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-io),transform 1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--ristoranti) [data-reveal].vis{opacity:1; transform:none}
:where(body.ms-p--ristoranti) .mask{display:block; overflow:hidden}
:where(body.ms-p--ristoranti) .mask>span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--ristoranti) .mask.vis>span{transform:none}
:where(body.ms-p--ristoranti) .nav{position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:clamp(14px,2vw,22px) clamp(20px,5vw,64px); transition:background .4s,backdrop-filter .4s,padding .4s,box-shadow .4s}
:where(body.ms-p--ristoranti) .nav.scrolled{background:rgba(245,240,232,.86); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border); padding-top:12px; padding-bottom:12px}
:where(body.ms-p--ristoranti) .nav__logo{height:38px; width:auto; transition:height .4s}
:where(body.ms-p--ristoranti) .nav.scrolled .nav__logo{height:32px}
:where(body.ms-p--ristoranti) .nav__menu{display:flex; gap:2rem; font-size:.86rem; font-weight:500; letter-spacing:.02em; color:var(--cream); transition:color .4s}
:where(body.ms-p--ristoranti) .nav.scrolled .nav__menu{color:var(--ink)}
:where(body.ms-p--ristoranti) .nav__menu a{position:relative; padding:4px 0}
:where(body.ms-p--ristoranti) .nav__menu a::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease)}
:where(body.ms-p--ristoranti) .nav__menu a:hover::after{transform:scaleX(1); transform-origin:left}
:where(body.ms-p--ristoranti) .nav__menu a.active::after{transform:scaleX(1)}
:where(body.ms-p--ristoranti) .nav__cta{display:flex; align-items:center; gap:1.2rem}
:where(body.ms-p--ristoranti) .nav__cta .btn{padding:.6em 1.2em; font-size:.82rem}
:where(body.ms-p--ristoranti) .nav__burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; background:transparent}
:where(body.ms-p--ristoranti) .nav__burger span{display:block; width:24px; height:2px; background:var(--cream); margin:0 auto; transition:transform .35s var(--ease),opacity .25s,background .4s}
:where(body.ms-p--ristoranti) .nav.scrolled .nav__burger span{background:var(--ink)}
body.menu-open .nav__burger span{background:var(--cream)}
body.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open .nav{background:transparent!important; box-shadow:none!important}
:where(body.ms-p--ristoranti) .mnav{position:fixed; inset:0; z-index:95; background:var(--charcoal-2); display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:5rem clamp(28px,9vw,56px) 3rem; transform:translateX(100%); opacity:0; visibility:hidden; transition:transform .55s var(--ease),opacity .4s,visibility .55s}
body.menu-open .mnav{transform:none; opacity:1; visibility:visible}
:where(body.ms-p--ristoranti) .mnav a{font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--cream); padding:.32em 0; border-bottom:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between}
:where(body.ms-p--ristoranti) .mnav a.active{color:var(--red)}
:where(body.ms-p--ristoranti) .mnav a .ar{color:var(--red); font-size:1.2rem}
:where(body.ms-p--ristoranti) .mnav .btn{margin-top:1.6rem; font-family:var(--sans); font-size:1rem; justify-content:center; border:none}
:where(body.ms-p--ristoranti) .hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--ristoranti) .hero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--ristoranti) .hero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.62) contrast(1.05) saturate(.92)}
:where(body.ms-p--ristoranti) .hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.55) 0%,rgba(18,16,14,.15) 35%,rgba(18,16,14,.35) 60%,rgba(18,16,14,.92) 100%)}
:where(body.ms-p--ristoranti) .hero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,96px)}
:where(body.ms-p--ristoranti) .hero__eyebrow{margin-bottom:clamp(20px,3vw,34px)}
:where(body.ms-p--ristoranti) .hero h1{font-size:clamp(3rem,10.5vw,9.5rem); font-weight:500; letter-spacing:-.035em}
:where(body.ms-p--ristoranti) .hero h1 em{font-style:italic; font-weight:400; color:var(--cream)}
:where(body.ms-p--ristoranti) .hero__sub{max-width:46ch; margin:clamp(22px,3vw,34px) 0 clamp(30px,4vw,42px); font-size:clamp(1rem,1.3vw,1.18rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--ristoranti) .hero__actions{display:flex; flex-wrap:wrap; gap:1rem}
:where(body.ms-p--ristoranti) .hero__scroll{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:#c9c2b6}
:where(body.ms-p--ristoranti) .hero__scroll .line{width:1px; height:46px; background:linear-gradient(var(--cream),transparent); position:relative; overflow:hidden}
:where(body.ms-p--ristoranti) .hero__scroll .line::after{content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--red); animation:scrolldot 2.2s var(--ease) infinite}
:where(body.ms-p--ristoranti) .trust{background:var(--ink); color:var(--cream); border-bottom:1px solid rgba(255,255,255,.08)}
:where(body.ms-p--ristoranti) .trust__row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; padding:20px 0; font-size:.78rem; letter-spacing:.04em}
:where(body.ms-p--ristoranti) .trust__row span{display:inline-flex; align-items:center; gap:.6em; color:#cfc8bc}
:where(body.ms-p--ristoranti) .trust__row b{color:var(--cream); font-weight:600}
:where(body.ms-p--ristoranti) .trust .dot{width:5px; height:5px; border-radius:50%; background:var(--red)}
:where(body.ms-p--ristoranti) .section{padding:clamp(72px,11vw,150px) 0; position:relative}
:where(body.ms-p--ristoranti) .section__head{max-width:760px; margin-bottom:clamp(40px,6vw,72px)}
:where(body.ms-p--ristoranti) .section__head h2{font-size:clamp(2rem,5.2vw,4rem); margin-top:.4em}
:where(body.ms-p--ristoranti) .section__head p{margin-top:1.1em; color:var(--muted); font-size:1.06rem; max-width:56ch}
:where(body.ms-p--ristoranti) .worlds{display:grid; grid-template-columns:repeat(12,1fr); gap:14px}
:where(body.ms-p--ristoranti) .world{position:relative; overflow:hidden; border-radius:3px; min-height:300px; display:flex; flex-direction:column; justify-content:flex-end; padding:28px; color:var(--cream); isolation:isolate}
:where(body.ms-p--ristoranti) .world:nth-child(1){grid-column:span 7}
:where(body.ms-p--ristoranti) .world:nth-child(2){grid-column:span 5}
:where(body.ms-p--ristoranti) .world:nth-child(3){grid-column:span 4}
:where(body.ms-p--ristoranti) .world:nth-child(4){grid-column:span 4}
:where(body.ms-p--ristoranti) .world:nth-child(5){grid-column:span 4}
:where(body.ms-p--ristoranti) .world__img{position:absolute; inset:0; z-index:-2}
:where(body.ms-p--ristoranti) .world__img img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); transform:scale(1.02)}
:where(body.ms-p--ristoranti) .world:hover .world__img img{transform:scale(1.09)}
:where(body.ms-p--ristoranti) .world::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(18,16,14,.05),rgba(18,16,14,.82))}
:where(body.ms-p--ristoranti) .world__n{font-family:var(--serif); font-size:.9rem; color:var(--ochre); margin-bottom:auto}
:where(body.ms-p--ristoranti) .world__t{font-family:var(--serif); font-size:clamp(1.5rem,2.4vw,2.1rem); font-weight:600}
:where(body.ms-p--ristoranti) .world__d{font-size:.9rem; color:#d4cdc1; margin-top:.4em; max-width:34ch; opacity:0; max-height:0; transform:translateY(8px); transition:.6s var(--ease)}
:where(body.ms-p--ristoranti) .world:hover .world__d{opacity:1; max-height:80px; transform:none}
:where(body.ms-p--ristoranti) .world__link{margin-top:16px; display:inline-flex; align-items:center; gap:.5em; font-size:.82rem; font-weight:600; letter-spacing:.04em}
:where(body.ms-p--ristoranti) .world__link .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--ristoranti) .world:hover .world__link .ar{transform:translateX(5px)}
:where(body.ms-p--ristoranti) .world--red{background:var(--red)}
:where(body.ms-p--ristoranti) .world--red::after{display:none}
:where(body.ms-p--ristoranti) .world--red .world__n{color:rgba(255,255,255,.7)}
:where(body.ms-p--ristoranti) .story{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--ristoranti) .story__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center}
:where(body.ms-p--ristoranti) .story__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:4/5}
:where(body.ms-p--ristoranti) .story__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
:where(body.ms-p--ristoranti) .story__media.vis img{transform:scale(1)}
:where(body.ms-p--ristoranti) .story__badge{position:absolute; left:20px; bottom:20px; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.82rem; padding:10px 16px; border-radius:2px}
:where(body.ms-p--ristoranti) .story__badge b{color:var(--red)}
:where(body.ms-p--ristoranti) .story h2{font-size:clamp(1.9rem,4.4vw,3.4rem)}
:where(body.ms-p--ristoranti) .story p{color:var(--muted); margin:1.2em 0}
:where(body.ms-p--ristoranti) .stats{display:flex; gap:clamp(24px,4vw,54px); margin-top:2.2em; flex-wrap:wrap}
:where(body.ms-p--ristoranti) .stat__n{font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:600; color:var(--red); line-height:1}
:where(body.ms-p--ristoranti) .stat__l{font-size:.8rem; color:var(--muted); letter-spacing:.03em; margin-top:.5em; max-width:14ch}
:where(body.ms-p--ristoranti) .prods{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
:where(body.ms-p--ristoranti) .card{background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
:where(body.ms-p--ristoranti) .card:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--ristoranti) .card__img{aspect-ratio:1; overflow:hidden}
:where(body.ms-p--ristoranti) .card__img img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease)}
:where(body.ms-p--ristoranti) .card:hover .card__img img{transform:scale(1.07)}
:where(body.ms-p--ristoranti) .card__b{padding:18px}
:where(body.ms-p--ristoranti) .card__cat{font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
:where(body.ms-p--ristoranti) .card__t{font-family:var(--serif); font-size:1.18rem; margin:.35em 0 .1em}
:where(body.ms-p--ristoranti) .card__meta{font-size:.78rem; color:var(--muted)}
:where(body.ms-p--ristoranti) .card__f{display:flex; align-items:center; justify-content:space-between; margin-top:14px}
:where(body.ms-p--ristoranti) .card__price{font-family:var(--serif); font-size:1.3rem; font-weight:600; color:var(--red)}
:where(body.ms-p--ristoranti) .card__add{width:38px; height:38px; border-radius:2px; background:var(--ink); color:var(--cream); display:grid; place-items:center; font-size:1.1rem; transition:background .3s,transform .4s var(--ease)}
:where(body.ms-p--ristoranti) .card__add:hover{background:var(--red); transform:rotate(90deg)}
:where(body.ms-p--ristoranti) .agri{position:relative; color:var(--cream); background:var(--charcoal-2); overflow:hidden}
:where(body.ms-p--ristoranti) .agri__bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform}
:where(body.ms-p--ristoranti) .agri__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.5)}
:where(body.ms-p--ristoranti) .agri__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,16,14,.88),rgba(18,16,14,.4))}
:where(body.ms-p--ristoranti) .agri__inner{position:relative; z-index:2; max-width:620px}
:where(body.ms-p--ristoranti) .agri h2{font-size:clamp(2rem,5vw,3.8rem)}
:where(body.ms-p--ristoranti) .agri p{color:#d9d2c6; margin:1.2em 0 1.8em}
:where(body.ms-p--ristoranti) .agri__srv{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:2rem}
:where(body.ms-p--ristoranti) .chip{border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:.5em 1.1em; font-size:.8rem; color:#e6e0d5}
:where(body.ms-p--ristoranti) .chip b{color:var(--ochre); font-weight:600}
:where(body.ms-p--ristoranti) .news{background:var(--red); color:#fff; text-align:center}
:where(body.ms-p--ristoranti) .news h2{font-size:clamp(1.8rem,4.2vw,3rem); color:#fff}
:where(body.ms-p--ristoranti) .news p{color:rgba(255,255,255,.85); margin:1em auto 2em; max-width:44ch}
:where(body.ms-p--ristoranti) .news__form{display:flex; gap:10px; max-width:460px; margin:0 auto; flex-wrap:wrap; justify-content:center}
:where(body.ms-p--ristoranti) .news__form input{flex:1; min-width:220px; padding:1em 1.2em; border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.1); color:#fff; border-radius:var(--ms-r-btn,24px); font:inherit}
:where(body.ms-p--ristoranti) .news__form input::placeholder{color:rgba(255,255,255,.7)}
:where(body.ms-p--ristoranti) .news__form button{background:#fff; color:var(--red); border:none; padding:1em 1.6em; border-radius:var(--ms-r-btn,24px); font-weight:600; cursor:pointer; transition:transform .4s var(--ease)}
:where(body.ms-p--ristoranti) .news__form button:hover{transform:translateY(-2px)}
:where(body.ms-p--ristoranti) .foot{background:var(--charcoal-2); color:#cfc8bc; padding:clamp(56px,8vw,90px) 0 40px}
:where(body.ms-p--ristoranti) .foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
:where(body.ms-p--ristoranti) .foot__logo{height:40px; margin-bottom:20px}
:where(body.ms-p--ristoranti) .foot h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#7d766a; margin:0 0 16px}
:where(body.ms-p--ristoranti) .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem}
:where(body.ms-p--ristoranti) .foot a:hover{color:var(--cream)}
:where(body.ms-p--ristoranti) .foot__sedi{font-size:.86rem; line-height:1.7}
:where(body.ms-p--ristoranti) .foot__sedi b{color:var(--cream); font-weight:600}
:where(body.ms-p--ristoranti) .foot__bar{border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.76rem; color:#7d766a}
:where(body.ms-p--ristoranti) .pre{position:fixed; inset:0; z-index:9999; background:var(--charcoal-2); display:grid; place-items:center; transition:transform 1s var(--ease) .2s}
:where(body.ms-p--ristoranti) .pre.done{transform:translateY(-100%)}
:where(body.ms-p--ristoranti) .pre img{height:52px; opacity:0; transform:translateY(10px); animation:preIn 1s var(--ease) forwards}
:where(body.ms-p--ristoranti) .subhero{position:relative; min-height:60vh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--ristoranti) .subhero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--ristoranti) .subhero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.5) contrast(1.04) saturate(.92)}
:where(body.ms-p--ristoranti) .subhero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.6) 0%,rgba(18,16,14,.2) 40%,rgba(18,16,14,.9) 100%)}
:where(body.ms-p--ristoranti) .subhero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(44px,6vw,80px)}
:where(body.ms-p--ristoranti) .subhero h1{font-size:clamp(2.6rem,8vw,6rem); font-weight:500; letter-spacing:-.03em; margin-top:clamp(16px,2.4vw,26px)}
:where(body.ms-p--ristoranti) .subhero h1 em{font-style:italic; font-weight:400}
:where(body.ms-p--ristoranti) .subhero__sub{max-width:52ch; margin-top:clamp(18px,2.4vw,26px); font-size:clamp(1rem,1.3vw,1.16rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--ristoranti) .places{display:flex; flex-direction:column; gap:clamp(28px,4.4vw,60px)}
:where(body.ms-p--ristoranti) .ms-place-card{display:grid; grid-template-columns:1.02fr .98fr; background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:box-shadow .6s var(--ease),transform .6s var(--ease)}
:where(body.ms-p--ristoranti) .ms-place-card:hover{box-shadow:0 22px 50px rgba(35,33,29,.14)}
:where(body.ms-p--ristoranti) .ms-place-card:nth-child(even){grid-template-columns:.98fr 1.02fr}
:where(body.ms-p--ristoranti) .ms-place-card:nth-child(even) .ms-place-card__media{order:2}
:where(body.ms-p--ristoranti) .ms-place-card__media{position:relative; overflow:hidden; min-height:340px}
:where(body.ms-p--ristoranti) .ms-place-card__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); transform:scale(1.03)}
:where(body.ms-p--ristoranti) .ms-place-card:hover .ms-place-card__media img{transform:scale(1.08)}
:where(body.ms-p--ristoranti) .ms-place-card__tag{position:absolute; left:18px; top:18px; z-index:2; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.78rem; padding:8px 14px; border-radius:2px}
:where(body.ms-p--ristoranti) .ms-place-card__tag b{color:var(--red)}
:where(body.ms-p--ristoranti) .ms-place-card__body{padding:clamp(28px,3.6vw,52px); display:flex; flex-direction:column; justify-content:center}
:where(body.ms-p--ristoranti) .ms-place-card__city{font-family:var(--sans); font-weight:600; font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--olive)}
:where(body.ms-p--ristoranti) .ms-place-card__name{font-family:var(--serif); font-size:clamp(1.7rem,3vw,2.5rem); font-weight:600; margin:.3em 0 .5em; line-height:1.05}
:where(body.ms-p--ristoranti) .ms-place-card__rows{display:flex; flex-direction:column; gap:12px; margin-bottom:clamp(22px,2.6vw,30px)}
:where(body.ms-p--ristoranti) .ms-place-card__row{display:flex; gap:12px; align-items:flex-start; font-size:.94rem; color:var(--ink)}
:where(body.ms-p--ristoranti) .ms-place-card__row .ic{flex:0 0 auto; width:18px; height:18px; margin-top:2px; color:var(--red)}
:where(body.ms-p--ristoranti) .ms-place-card__row .ic svg{width:18px; height:18px; display:block}
:where(body.ms-p--ristoranti) .ms-place-card__row span b{font-weight:600}
:where(body.ms-p--ristoranti) .ms-place-card__row small{display:block; color:var(--muted); font-size:.86rem; margin-top:2px}
:where(body.ms-p--ristoranti) .ms-place-card__cta{display:flex; flex-wrap:wrap; gap:10px}
:where(body.ms-p--ristoranti) .ms-place-card__cta .btn{padding:0 1.35em; font-size:.86rem} /* [D1.8] altezza dal token: era 47 px */
:where(body.ms-p--ristoranti) .book{background:var(--cream-card); border-top:1px solid var(--border)}
:where(body.ms-p--ristoranti) .book__grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(32px,5vw,72px); align-items:center}
:where(body.ms-p--ristoranti) .book__aside h2{font-size:clamp(2rem,4.6vw,3.4rem)}
:where(body.ms-p--ristoranti) .book__aside p{color:var(--muted); margin:1.2em 0}
:where(body.ms-p--ristoranti) .book__note{display:inline-flex; align-items:center; gap:.6em; font-size:.86rem; color:var(--ink); margin-top:.4em}
:where(body.ms-p--ristoranti) .book__note .dot{width:6px; height:6px; border-radius:50%; background:var(--red); display:inline-block}
:where(body.ms-p--ristoranti) .book__form{background:var(--paper); border:1px solid var(--border); border-radius:3px; padding:clamp(24px,3vw,40px)}
:where(body.ms-p--ristoranti) .book__fields{display:grid; grid-template-columns:1fr 1fr; gap:16px}
:where(body.ms-p--ristoranti) .field{display:flex; flex-direction:column; gap:7px}
:where(body.ms-p--ristoranti) .field.full{grid-column:1 / -1}
:where(body.ms-p--ristoranti) .field label{font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--muted)}
:where(body.ms-p--ristoranti) .field input, :where(body.ms-p--ristoranti) .field select{font:inherit; font-size:.95rem; color:var(--ink); background:var(--cream); border:1px solid var(--border); border-radius:2px; padding:.85em 1em; transition:border-color .3s,background .3s}
:where(body.ms-p--ristoranti) .field input:focus, :where(body.ms-p--ristoranti) .field select:focus{outline:none; border-color:var(--red); background:var(--paper)}
:where(body.ms-p--ristoranti) .field select{appearance:none; 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' stroke='%236B6459' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1em center; padding-right:2.6em}
:where(body.ms-p--ristoranti) .book__form .btn{margin-top:22px; width:100%; justify-content:center; padding:0 1.6em}
:where(body.ms-p--ristoranti) .book__legal{margin-top:14px; font-size:.76rem; color:var(--muted); text-align:center}
@media(max-width:900px){
  :where(body.ms-p--ristoranti) .nav__menu, :where(body.ms-p--ristoranti) .nav__cta .btn{display:none}
  :where(body.ms-p--ristoranti) .nav__burger{display:flex}
}
@keyframes scrolldot{
  :where(body.ms-p--ristoranti) 0%{top:-50%}
  :where(body.ms-p--ristoranti) 60%, :where(body.ms-p--ristoranti) 100%{top:100%}
}
@media(max-width:820px){
  :where(body.ms-p--ristoranti) .worlds{grid-template-columns:1fr 1fr}
  :where(body.ms-p--ristoranti) .world, :where(body.ms-p--ristoranti) .world:nth-child(n){grid-column:span 1!important}
  :where(body.ms-p--ristoranti) .world__d{opacity:1; max-height:80px; transform:none}
  :where(body.ms-p--ristoranti) .story__grid{grid-template-columns:1fr}
  :where(body.ms-p--ristoranti) .story__media{aspect-ratio:16/11}
  :where(body.ms-p--ristoranti) .prods{grid-template-columns:1fr 1fr}
  :where(body.ms-p--ristoranti) .foot__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  :where(body.ms-p--ristoranti) .worlds{grid-template-columns:1fr}
  :where(body.ms-p--ristoranti) .foot__grid{grid-template-columns:1fr}
}
@keyframes preIn{
  :where(body.ms-p--ristoranti) to{opacity:1; transform:none}
}
@media(max-width:640px){
  :where(body.ms-p--ristoranti) .hero{min-height:100svh}
  :where(body.ms-p--ristoranti) .hero__inner{padding-bottom:clamp(70px,16vw,110px)}
  :where(body.ms-p--ristoranti) .hero h1{font-size:clamp(3.2rem,17vw,5rem)}
  :where(body.ms-p--ristoranti) .hero__sub{font-size:1.02rem}
  :where(body.ms-p--ristoranti) .hero__actions{flex-direction:column; align-items:stretch; gap:.7rem}
  :where(body.ms-p--ristoranti) .hero__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
  :where(body.ms-p--ristoranti) .hero__scroll{display:none}
  :where(body.ms-p--ristoranti) .trust__row{display:grid; grid-template-columns:1fr; gap:12px; padding:22px 0}
  :where(body.ms-p--ristoranti) .trust__row span{font-size:.82rem}
  :where(body.ms-p--ristoranti) .section__head p{font-size:1rem}
  :where(body.ms-p--ristoranti) .stats{gap:26px 32px}
  :where(body.ms-p--ristoranti) .prods{grid-template-columns:1fr 1fr; gap:12px}
  :where(body.ms-p--ristoranti) .card__b{padding:14px}
  :where(body.ms-p--ristoranti) .card__t{font-size:1.05rem}
  :where(body.ms-p--ristoranti) .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
  :where(body.ms-p--ristoranti) .agri{padding-top:clamp(64px,14vw,96px)}
  :where(body.ms-p--ristoranti) .ms-place-card__cta{flex-direction:column; align-items:stretch}
  :where(body.ms-p--ristoranti) .ms-place-card__cta .btn{width:100%; justify-content:center}
}
@media(max-width:420px){
  :where(body.ms-p--ristoranti) .prods{grid-template-columns:1fr}
  :where(body.ms-p--ristoranti) .foot__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  :where(body.ms-p--ristoranti) *{animation:none!important; transition-duration:.01ms!important}
  :where(body.ms-p--ristoranti) [data-reveal], :where(body.ms-p--ristoranti) .mask>span{opacity:1!important; transform:none!important}
  :where(body.ms-p--ristoranti) .pre{display:none}
}
@media(max-width:860px){
  :where(body.ms-p--ristoranti) .ms-place-card, :where(body.ms-p--ristoranti) .ms-place-card:nth-child(even){grid-template-columns:1fr}
  :where(body.ms-p--ristoranti) .ms-place-card:nth-child(even) .ms-place-card__media{order:0}
  :where(body.ms-p--ristoranti) .ms-place-card__media{min-height:0; aspect-ratio:16/10}
  :where(body.ms-p--ristoranti) .book__grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  :where(body.ms-p--ristoranti) .book__fields{grid-template-columns:1fr}
}

/* ============ MENU ============ */
:root{--red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15; --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff; --border:#E5DFD4; --muted:#6B6459; --charcoal:#1A1917; --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250; --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --container:1280px; --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.16,1,.3,1);}
:where(body.ms-p--menu) *, :where(body.ms-p--menu) *::before, :where(body.ms-p--menu) *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:clamp(15px,1vw+13px,17px); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.ms-p--menu) img{max-width:100%; height:auto; display:block}
:where(body.ms-p--menu) a{text-decoration:none}
body a,body a:visited{color:inherit}
:where(body.ms-p--menu) h1, :where(body.ms-p--menu) h2, :where(body.ms-p--menu) h3{font-family:var(--serif); font-weight:600; line-height:1.03; letter-spacing:-.02em; margin:0}
:where(body.ms-p--menu) .grain{position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
:where(body.ms-p--menu) .wrap{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px)}
:where(body.ms-p--menu) .eyebrow{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
:where(body.ms-p--menu) .eyebrow::before{content:""; width:26px; height:1px; background:var(--red)}
:where(body.ms-p--menu) .eyebrow.on-dark{color:#c9c2b6}
:where(body.ms-p--menu) .btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:var(--ms-r-btn,24px); border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform}
:where(body.ms-p--menu) .btn:hover{transform:translateY(-2px)}
:where(body.ms-p--menu) .btn-primary{background:var(--red); color:#fff}
:where(body.ms-p--menu) .btn-primary:hover{background:var(--red-hover)}
:where(body.ms-p--menu) .btn-ghost{border-color:currentColor; color:var(--ink)}
:where(body.ms-p--menu) .btn-ghost.on-dark{color:var(--cream)}
:where(body.ms-p--menu) .btn-ghost:hover{background:var(--ink); color:var(--cream)}
:where(body.ms-p--menu) .btn-ghost.on-dark:hover{background:var(--cream); color:var(--ink)}
:where(body.ms-p--menu) .btn .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--menu) .btn:hover .ar{transform:translateX(4px)}
:where(body.ms-p--menu) [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-io),transform 1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--menu) [data-reveal].vis{opacity:1; transform:none}
:where(body.ms-p--menu) .mask{display:block; overflow:hidden}
:where(body.ms-p--menu) .mask>span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--menu) .mask.vis>span{transform:none}
:where(body.ms-p--menu) .nav{position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:clamp(14px,2vw,22px) clamp(20px,5vw,64px); transition:background .4s,backdrop-filter .4s,padding .4s,box-shadow .4s}
:where(body.ms-p--menu) .nav.scrolled{background:rgba(245,240,232,.86); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border); padding-top:12px; padding-bottom:12px}
:where(body.ms-p--menu) .nav__logo{height:38px; width:auto; transition:height .4s}
:where(body.ms-p--menu) .nav.scrolled .nav__logo{height:32px}
:where(body.ms-p--menu) .nav__menu{display:flex; gap:2rem; font-size:.86rem; font-weight:500; letter-spacing:.02em; color:var(--cream); transition:color .4s}
:where(body.ms-p--menu) .nav.scrolled .nav__menu{color:var(--ink)}
:where(body.ms-p--menu) .nav__menu a{position:relative; padding:4px 0}
:where(body.ms-p--menu) .nav__menu a::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease)}
:where(body.ms-p--menu) .nav__menu a:hover::after, :where(body.ms-p--menu) .nav__menu a.active::after{transform:scaleX(1); transform-origin:left}
:where(body.ms-p--menu) .nav__cta{display:flex; align-items:center; gap:1.2rem}
:where(body.ms-p--menu) .nav__cta .btn{padding:.6em 1.2em; font-size:.82rem}
:where(body.ms-p--menu) .nav__burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; background:transparent}
:where(body.ms-p--menu) .nav__burger span{display:block; width:24px; height:2px; background:var(--cream); margin:0 auto; transition:transform .35s var(--ease),opacity .25s,background .4s}
:where(body.ms-p--menu) .nav.scrolled .nav__burger span{background:var(--ink)}
body.menu-open .nav__burger span{background:var(--cream)}
body.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open .nav{background:transparent!important; box-shadow:none!important}
:where(body.ms-p--menu) .mnav{position:fixed; inset:0; z-index:95; background:var(--charcoal-2); display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:5rem clamp(28px,9vw,56px) 3rem; transform:translateX(100%); opacity:0; visibility:hidden; transition:transform .55s var(--ease),opacity .4s,visibility .55s}
body.menu-open .mnav{transform:none; opacity:1; visibility:visible}
:where(body.ms-p--menu) .mnav a{font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--cream); padding:.32em 0; border-bottom:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between}
:where(body.ms-p--menu) .mnav a.active{color:var(--ochre)}
:where(body.ms-p--menu) .mnav a .ar{color:var(--red); font-size:1.2rem}
:where(body.ms-p--menu) .mnav .btn{margin-top:1.6rem; font-family:var(--sans); font-size:1rem; justify-content:center; border:none}
:where(body.ms-p--menu) .hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--menu) .hero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--menu) .hero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.62) contrast(1.05) saturate(.92)}
:where(body.ms-p--menu) .hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.55) 0%,rgba(18,16,14,.15) 35%,rgba(18,16,14,.35) 60%,rgba(18,16,14,.92) 100%)}
:where(body.ms-p--menu) .hero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,96px)}
:where(body.ms-p--menu) .hero__eyebrow{margin-bottom:clamp(20px,3vw,34px)}
:where(body.ms-p--menu) .hero h1{font-size:clamp(3rem,10.5vw,9.5rem); font-weight:500; letter-spacing:-.035em}
:where(body.ms-p--menu) .hero h1 em{font-style:italic; font-weight:400; color:var(--cream)}
:where(body.ms-p--menu) .hero__sub{max-width:46ch; margin:clamp(22px,3vw,34px) 0 clamp(30px,4vw,42px); font-size:clamp(1rem,1.3vw,1.18rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--menu) .hero__actions{display:flex; flex-wrap:wrap; gap:1rem}
:where(body.ms-p--menu) .hero__scroll{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:#c9c2b6}
:where(body.ms-p--menu) .hero__scroll .line{width:1px; height:46px; background:linear-gradient(var(--cream),transparent); position:relative; overflow:hidden}
:where(body.ms-p--menu) .hero__scroll .line::after{content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--red); animation:scrolldot 2.2s var(--ease) infinite}
:where(body.ms-p--menu) .trust{background:var(--ink); color:var(--cream); border-bottom:1px solid rgba(255,255,255,.08)}
:where(body.ms-p--menu) .trust__row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; padding:20px 0; font-size:.78rem; letter-spacing:.04em}
:where(body.ms-p--menu) .trust__row span{display:inline-flex; align-items:center; gap:.6em; color:#cfc8bc}
:where(body.ms-p--menu) .trust__row b{color:var(--cream); font-weight:600}
:where(body.ms-p--menu) .trust .dot{width:5px; height:5px; border-radius:50%; background:var(--red)}
:where(body.ms-p--menu) .section{padding:clamp(72px,11vw,150px) 0; position:relative}
:where(body.ms-p--menu) .section__head{max-width:760px; margin-bottom:clamp(40px,6vw,72px)}
:where(body.ms-p--menu) .section__head h2{font-size:clamp(2rem,5.2vw,4rem); margin-top:.4em}
:where(body.ms-p--menu) .section__head p{margin-top:1.1em; color:var(--muted); font-size:1.06rem; max-width:56ch}
:where(body.ms-p--menu) .worlds{display:grid; grid-template-columns:repeat(12,1fr); gap:14px}
:where(body.ms-p--menu) .world{position:relative; overflow:hidden; border-radius:3px; min-height:300px; display:flex; flex-direction:column; justify-content:flex-end; padding:28px; color:var(--cream); isolation:isolate}
:where(body.ms-p--menu) .world:nth-child(1){grid-column:span 7}
:where(body.ms-p--menu) .world:nth-child(2){grid-column:span 5}
:where(body.ms-p--menu) .world:nth-child(3){grid-column:span 4}
:where(body.ms-p--menu) .world:nth-child(4){grid-column:span 4}
:where(body.ms-p--menu) .world:nth-child(5){grid-column:span 4}
:where(body.ms-p--menu) .world__img{position:absolute; inset:0; z-index:-2}
:where(body.ms-p--menu) .world__img img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); transform:scale(1.02)}
:where(body.ms-p--menu) .world:hover .world__img img{transform:scale(1.09)}
:where(body.ms-p--menu) .world::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(18,16,14,.05),rgba(18,16,14,.82))}
:where(body.ms-p--menu) .world__n{font-family:var(--serif); font-size:.9rem; color:var(--ochre); margin-bottom:auto}
:where(body.ms-p--menu) .world__t{font-family:var(--serif); font-size:clamp(1.5rem,2.4vw,2.1rem); font-weight:600}
:where(body.ms-p--menu) .world__d{font-size:.9rem; color:#d4cdc1; margin-top:.4em; max-width:34ch; opacity:0; max-height:0; transform:translateY(8px); transition:.6s var(--ease)}
:where(body.ms-p--menu) .world:hover .world__d{opacity:1; max-height:80px; transform:none}
:where(body.ms-p--menu) .world__link{margin-top:16px; display:inline-flex; align-items:center; gap:.5em; font-size:.82rem; font-weight:600; letter-spacing:.04em}
:where(body.ms-p--menu) .world__link .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--menu) .world:hover .world__link .ar{transform:translateX(5px)}
:where(body.ms-p--menu) .world--red{background:var(--red)}
:where(body.ms-p--menu) .world--red::after{display:none}
:where(body.ms-p--menu) .world--red .world__n{color:rgba(255,255,255,.7)}
:where(body.ms-p--menu) .story{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--menu) .story__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center}
:where(body.ms-p--menu) .story__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:4/5}
:where(body.ms-p--menu) .story__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
:where(body.ms-p--menu) .story__media.vis img{transform:scale(1)}
:where(body.ms-p--menu) .story__badge{position:absolute; left:20px; bottom:20px; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.82rem; padding:10px 16px; border-radius:2px}
:where(body.ms-p--menu) .story__badge b{color:var(--red)}
:where(body.ms-p--menu) .story h2{font-size:clamp(1.9rem,4.4vw,3.4rem)}
:where(body.ms-p--menu) .story p{color:var(--muted); margin:1.2em 0}
:where(body.ms-p--menu) .stats{display:flex; gap:clamp(24px,4vw,54px); margin-top:2.2em; flex-wrap:wrap}
:where(body.ms-p--menu) .stat__n{font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:600; color:var(--red); line-height:1}
:where(body.ms-p--menu) .stat__l{font-size:.8rem; color:var(--muted); letter-spacing:.03em; margin-top:.5em; max-width:14ch}
:where(body.ms-p--menu) .prods{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
:where(body.ms-p--menu) .card{background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
:where(body.ms-p--menu) .card:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--menu) .card__img{aspect-ratio:1; overflow:hidden}
:where(body.ms-p--menu) .card__img img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease)}
:where(body.ms-p--menu) .card:hover .card__img img{transform:scale(1.07)}
:where(body.ms-p--menu) .card__b{padding:18px}
:where(body.ms-p--menu) .card__cat{font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
:where(body.ms-p--menu) .card__t{font-family:var(--serif); font-size:1.18rem; margin:.35em 0 .1em}
:where(body.ms-p--menu) .card__meta{font-size:.78rem; color:var(--muted)}
:where(body.ms-p--menu) .card__f{display:flex; align-items:center; justify-content:space-between; margin-top:14px}
:where(body.ms-p--menu) .card__price{font-family:var(--serif); font-size:1.3rem; font-weight:600; color:var(--red)}
:where(body.ms-p--menu) .card__add{width:38px; height:38px; border-radius:2px; background:var(--ink); color:var(--cream); display:grid; place-items:center; font-size:1.1rem; transition:background .3s,transform .4s var(--ease)}
:where(body.ms-p--menu) .card__add:hover{background:var(--red); transform:rotate(90deg)}
:where(body.ms-p--menu) .agri{position:relative; color:var(--cream); background:var(--charcoal-2); overflow:hidden}
:where(body.ms-p--menu) .agri__bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform}
:where(body.ms-p--menu) .agri__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.5)}
:where(body.ms-p--menu) .agri__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,16,14,.88),rgba(18,16,14,.4))}
:where(body.ms-p--menu) .agri__inner{position:relative; z-index:2; max-width:620px}
:where(body.ms-p--menu) .agri h2{font-size:clamp(2rem,5vw,3.8rem)}
:where(body.ms-p--menu) .agri p{color:#d9d2c6; margin:1.2em 0 1.8em}
:where(body.ms-p--menu) .agri__srv{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:2rem}
:where(body.ms-p--menu) .chip{border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:.5em 1.1em; font-size:.8rem; color:#e6e0d5}
:where(body.ms-p--menu) .chip b{color:var(--ochre); font-weight:600}
:where(body.ms-p--menu) .news{background:var(--red); color:#fff; text-align:center}
:where(body.ms-p--menu) .news h2{font-size:clamp(1.8rem,4.2vw,3rem); color:#fff}
:where(body.ms-p--menu) .news p{color:rgba(255,255,255,.85); margin:1em auto 2em; max-width:44ch}
:where(body.ms-p--menu) .news__form{display:flex; gap:10px; max-width:460px; margin:0 auto; flex-wrap:wrap; justify-content:center}
:where(body.ms-p--menu) .news__form input{flex:1; min-width:220px; padding:1em 1.2em; border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.1); color:#fff; border-radius:var(--ms-r-btn,24px); font:inherit}
:where(body.ms-p--menu) .news__form input::placeholder{color:rgba(255,255,255,.7)}
:where(body.ms-p--menu) .news__form button{background:#fff; color:var(--red); border:none; padding:1em 1.6em; border-radius:var(--ms-r-btn,24px); font-weight:600; cursor:pointer; transition:transform .4s var(--ease)}
:where(body.ms-p--menu) .news__form button:hover{transform:translateY(-2px)}
:where(body.ms-p--menu) .foot{background:var(--charcoal-2); color:#cfc8bc; padding:clamp(56px,8vw,90px) 0 40px}
:where(body.ms-p--menu) .foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
:where(body.ms-p--menu) .foot__logo{height:40px; margin-bottom:20px}
:where(body.ms-p--menu) .foot h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#7d766a; margin:0 0 16px}
:where(body.ms-p--menu) .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem}
:where(body.ms-p--menu) .foot a:hover{color:var(--cream)}
:where(body.ms-p--menu) .foot__sedi{font-size:.86rem; line-height:1.7}
:where(body.ms-p--menu) .foot__sedi b{color:var(--cream); font-weight:600}
:where(body.ms-p--menu) .foot__bar{border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.76rem; color:#7d766a}
:where(body.ms-p--menu) .pre{position:fixed; inset:0; z-index:9999; background:var(--charcoal-2); display:grid; place-items:center; transition:transform 1s var(--ease) .2s}
:where(body.ms-p--menu) .pre.done{transform:translateY(-100%)}
:where(body.ms-p--menu) .pre img{height:52px; opacity:0; transform:translateY(10px); animation:preIn 1s var(--ease) forwards}
:where(body.ms-p--menu) .subhero{position:relative; min-height:60vh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--menu) .subhero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--menu) .subhero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.5) contrast(1.05) saturate(.92)}
:where(body.ms-p--menu) .subhero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.55) 0%,rgba(18,16,14,.2) 40%,rgba(18,16,14,.9) 100%)}
:where(body.ms-p--menu) .subhero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(40px,6vw,72px)}
:where(body.ms-p--menu) .subhero h1{font-size:clamp(2.4rem,7vw,5.4rem); font-weight:500; letter-spacing:-.03em; margin-top:clamp(16px,2.5vw,26px)}
:where(body.ms-p--menu) .subhero h1 em{font-style:italic; font-weight:400}
:where(body.ms-p--menu) .subhero__sub{max-width:52ch; margin-top:clamp(16px,2.5vw,26px); font-size:clamp(1rem,1.3vw,1.16rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--menu) .ms-locbar{position:sticky; top:0; z-index:60; background:rgba(245,240,232,.9); backdrop-filter:blur(14px); border-bottom:1px solid var(--border)}
:where(body.ms-p--menu) .ms-loctabs{display:flex; flex-wrap:wrap; gap:10px; padding:16px 0}
:where(body.ms-p--menu) .ms-loctab{font-family:var(--sans); font-weight:600; font-size:.86rem; letter-spacing:.01em; color:var(--ink); background:transparent; border:1px solid var(--border); border-radius:var(--ms-r-btn,24px); padding:.62em 1.25em; cursor:pointer; display:inline-flex; align-items:center; gap:.5em; transition:background .3s,color .3s,border-color .3s,transform .4s var(--ease)}
:where(body.ms-p--menu) .ms-loctab small{font-weight:500; color:var(--muted); font-size:.72rem; letter-spacing:.02em; transition:color .3s}
:where(body.ms-p--menu) .ms-loctab:hover{transform:translateY(-2px); border-color:var(--ink)}
:where(body.ms-p--menu) .ms-loctab.active{background:var(--ink); color:var(--cream); border-color:var(--ink)}
:where(body.ms-p--menu) .ms-loctab.active small{color:#c9c2b6}
:where(body.ms-p--menu) .ms-menu{display:none}
:where(body.ms-p--menu) .ms-menu.active{display:block}
:where(body.ms-p--menu) .ms-menu__meta{display:flex; flex-wrap:wrap; align-items:baseline; gap:.6em 1.4em; margin-bottom:clamp(30px,5vw,52px); padding-bottom:24px; border-bottom:1px solid var(--border)}
:where(body.ms-p--menu) .ms-menu__city{font-family:var(--serif); font-size:clamp(1.5rem,3vw,2.2rem); font-weight:600}
:where(body.ms-p--menu) .ms-menu__addr{font-size:.92rem; color:var(--muted)}
:where(body.ms-p--menu) .ms-menu__note{font-size:.86rem; color:var(--olive); font-style:italic}
:where(body.ms-p--menu) .ms-cat{margin-bottom:clamp(40px,6vw,68px)}
:where(body.ms-p--menu) .ms-cat__h{display:flex; align-items:center; gap:1.2em; margin-bottom:clamp(18px,2.5vw,30px)}
:where(body.ms-p--menu) .ms-cat__h h3{font-family:var(--sans); font-weight:600; font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:var(--red)}
:where(body.ms-p--menu) .ms-cat__h::after{content:""; flex:1; height:1px; background:var(--border)}
:where(body.ms-p--menu) .ms-dish-row{padding:16px 0; border-bottom:1px solid rgba(229,223,212,.6)}
:where(body.ms-p--menu) .ms-dish-row:last-child{border-bottom:none}
:where(body.ms-p--menu) .ms-dish-line{display:flex; align-items:baseline; gap:.5em; width:100%}
:where(body.ms-p--menu) .ms-dish-name{font-family:var(--serif); font-size:clamp(1.12rem,1.6vw,1.34rem); font-weight:600; color:var(--ink); flex:0 1 auto}
:where(body.ms-p--menu) .ms-dish-leader{flex:1 1 auto; border-bottom:2px dotted rgba(35,33,29,.26); transform:translateY(-.26em); min-width:24px; margin:0 .15em}
:where(body.ms-p--menu) .ms-dish-price{font-family:var(--serif); font-size:clamp(1.12rem,1.6vw,1.34rem); font-weight:600; color:var(--ink); flex:0 0 auto; white-space:nowrap}
:where(body.ms-p--menu) .ms-dish-desc{margin-top:.4em; color:var(--muted); font-size:.94rem; max-width:60ch; line-height:1.55}
:where(body.ms-p--menu) .ms-dish-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:.7em}
:where(body.ms-p--menu) .ms-badge-filiera{display:inline-flex; align-items:center; gap:.45em; font-family:var(--sans); font-weight:600; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--olive); border:1px solid rgba(110,114,80,.35); border-radius:999px; padding:.32em .8em; background:rgba(110,114,80,.06)}
:where(body.ms-p--menu) .ms-badge-filiera::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--olive)}
:where(body.ms-p--menu) .ms-chip-allerg{font-family:var(--sans); font-weight:500; font-size:.68rem; letter-spacing:.06em; color:var(--muted); border:1px solid var(--border); border-radius:999px; padding:.32em .75em; background:var(--cream-card)}
:where(body.ms-p--menu) .ms-cta{background:var(--red); color:#fff; text-align:center}
:where(body.ms-p--menu) .ms-cta h2{font-size:clamp(1.9rem,4.4vw,3.2rem); color:#fff}
:where(body.ms-p--menu) .ms-cta p{color:rgba(255,255,255,.86); margin:1em auto 2em; max-width:46ch}
:where(body.ms-p--menu) .ms-cta .btn{background:#fff; color:var(--red); border:none}
:where(body.ms-p--menu) .ms-cta .btn:hover{background:var(--cream)}
@media(max-width:900px){
  :where(body.ms-p--menu) .nav__menu, :where(body.ms-p--menu) .nav__cta .btn{display:none}
  :where(body.ms-p--menu) .nav__burger{display:flex}
}
@keyframes scrolldot{
  :where(body.ms-p--menu) 0%{top:-50%}
  :where(body.ms-p--menu) 60%, :where(body.ms-p--menu) 100%{top:100%}
}
@media(max-width:820px){
  :where(body.ms-p--menu) .worlds{grid-template-columns:1fr 1fr}
  :where(body.ms-p--menu) .world, :where(body.ms-p--menu) .world:nth-child(n){grid-column:span 1!important}
  :where(body.ms-p--menu) .world__d{opacity:1; max-height:80px; transform:none}
  :where(body.ms-p--menu) .story__grid{grid-template-columns:1fr}
  :where(body.ms-p--menu) .story__media{aspect-ratio:16/11}
  :where(body.ms-p--menu) .prods{grid-template-columns:1fr 1fr}
  :where(body.ms-p--menu) .foot__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  :where(body.ms-p--menu) .worlds{grid-template-columns:1fr}
  :where(body.ms-p--menu) .foot__grid{grid-template-columns:1fr}
}
@keyframes preIn{
  :where(body.ms-p--menu) to{opacity:1; transform:none}
}
@media(max-width:640px){
  :where(body.ms-p--menu) .hero{min-height:100svh}
  :where(body.ms-p--menu) .hero__inner{padding-bottom:clamp(70px,16vw,110px)}
  :where(body.ms-p--menu) .hero h1{font-size:clamp(3.2rem,17vw,5rem)}
  :where(body.ms-p--menu) .hero__sub{font-size:1.02rem}
  :where(body.ms-p--menu) .hero__actions{flex-direction:column; align-items:stretch; gap:.7rem}
  :where(body.ms-p--menu) .hero__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
  :where(body.ms-p--menu) .hero__scroll{display:none}
  :where(body.ms-p--menu) .trust__row{display:grid; grid-template-columns:1fr; gap:12px; padding:22px 0}
  :where(body.ms-p--menu) .trust__row span{font-size:.82rem}
  :where(body.ms-p--menu) .section__head p{font-size:1rem}
  :where(body.ms-p--menu) .stats{gap:26px 32px}
  :where(body.ms-p--menu) .prods{grid-template-columns:1fr 1fr; gap:12px}
  :where(body.ms-p--menu) .card__b{padding:14px}
  :where(body.ms-p--menu) .card__t{font-size:1.05rem}
  :where(body.ms-p--menu) .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
  :where(body.ms-p--menu) .agri{padding-top:clamp(64px,14vw,96px)}
  :where(body.ms-p--menu) .subhero{min-height:56vh}
  :where(body.ms-p--menu) .subhero__inner{padding-bottom:clamp(40px,10vw,60px)}
  :where(body.ms-p--menu) .ms-loctabs{gap:8px; overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; margin:0 calc(-1*clamp(20px,5vw,64px)); padding-left:clamp(20px,5vw,64px); padding-right:clamp(20px,5vw,64px)}
  :where(body.ms-p--menu) .ms-loctabs::-webkit-scrollbar{display:none}
  :where(body.ms-p--menu) .ms-loctab{flex:0 0 auto}
  :where(body.ms-p--menu) .ms-loctab small{display:none}
  :where(body.ms-p--menu) .ms-dish-name, :where(body.ms-p--menu) .ms-dish-price{font-size:1.06rem}
  :where(body.ms-p--menu) .ms-dish-desc{font-size:.9rem}
}
@media(max-width:420px){
  :where(body.ms-p--menu) .prods{grid-template-columns:1fr}
  :where(body.ms-p--menu) .foot__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  :where(body.ms-p--menu) *{animation:none!important; transition-duration:.01ms!important}
  :where(body.ms-p--menu) [data-reveal], :where(body.ms-p--menu) .mask>span{opacity:1!important; transform:none!important}
  :where(body.ms-p--menu) .pre{display:none}
}

/* ============ CAMERE ============ */
:root{--red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15; --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff; --border:#E5DFD4; --muted:#6B6459; --charcoal:#1A1917; --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250; --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --container:1280px; --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.16,1,.3,1);}
:where(body.ms-p--camere) *, :where(body.ms-p--camere) *::before, :where(body.ms-p--camere) *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:clamp(15px,1vw+13px,17px); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.ms-p--camere) img{max-width:100%; height:auto; display:block}
:where(body.ms-p--camere) a{color:inherit; text-decoration:none}
:where(body.ms-p--camere) h1, :where(body.ms-p--camere) h2, :where(body.ms-p--camere) h3{font-family:var(--serif); font-weight:600; line-height:1.03; letter-spacing:-.02em; margin:0}
:where(body.ms-p--camere) .grain{position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
:where(body.ms-p--camere) .wrap{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px)}
:where(body.ms-p--camere) .eyebrow{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
:where(body.ms-p--camere) .eyebrow::before{content:""; width:26px; height:1px; background:var(--red)}
:where(body.ms-p--camere) .eyebrow.on-dark{color:#c9c2b6}
:where(body.ms-p--camere) .btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:var(--ms-r-btn,24px); border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform; cursor:pointer}
:where(body.ms-p--camere) .btn:hover{transform:translateY(-2px)}
:where(body.ms-p--camere) .btn-primary{background:var(--red); color:#fff}
:where(body.ms-p--camere) .btn-primary:hover{background:var(--red-hover)}
:where(body.ms-p--camere) .btn-ghost{border-color:currentColor; color:var(--ink)}
:where(body.ms-p--camere) .btn-ghost.on-dark{color:var(--cream)}
:where(body.ms-p--camere) .btn-ghost:hover{background:var(--ink); color:var(--cream)}
:where(body.ms-p--camere) .btn-ghost.on-dark:hover{background:var(--cream); color:var(--ink)}
:where(body.ms-p--camere) .btn .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--camere) .btn:hover .ar{transform:translateX(4px)}
:where(body.ms-p--camere) [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-io),transform 1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--camere) [data-reveal].vis{opacity:1; transform:none}
:where(body.ms-p--camere) .mask{display:block; overflow:hidden}
:where(body.ms-p--camere) .mask>span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--camere) .mask.vis>span{transform:none}
:where(body.ms-p--camere) .nav{position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:clamp(14px,2vw,22px) clamp(20px,5vw,64px); transition:background .4s,backdrop-filter .4s,padding .4s,box-shadow .4s}
:where(body.ms-p--camere) .nav.scrolled{background:rgba(245,240,232,.86); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border); padding-top:12px; padding-bottom:12px}
:where(body.ms-p--camere) .nav__logo{height:38px; width:auto; transition:height .4s}
:where(body.ms-p--camere) .nav.scrolled .nav__logo{height:32px}
:where(body.ms-p--camere) .nav__menu{display:flex; gap:2rem; font-size:.86rem; font-weight:500; letter-spacing:.02em; color:var(--cream); transition:color .4s}
:where(body.ms-p--camere) .nav.scrolled .nav__menu{color:var(--ink)}
:where(body.ms-p--camere) .nav__menu a{position:relative; padding:4px 0}
:where(body.ms-p--camere) .nav__menu a::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease)}
:where(body.ms-p--camere) .nav__menu a:hover::after, :where(body.ms-p--camere) .nav__menu a.active::after{transform:scaleX(1); transform-origin:left}
:where(body.ms-p--camere) .nav__menu a.active{color:var(--red)}
:where(body.ms-p--camere) .nav__cta{display:flex; align-items:center; gap:1.2rem}
:where(body.ms-p--camere) .nav__cta .btn{padding:.6em 1.2em; font-size:.82rem}
:where(body.ms-p--camere) .nav__burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; background:transparent}
:where(body.ms-p--camere) .nav__burger span{display:block; width:24px; height:2px; background:var(--cream); margin:0 auto; transition:transform .35s var(--ease),opacity .25s,background .4s}
:where(body.ms-p--camere) .nav.scrolled .nav__burger span{background:var(--ink)}
body.menu-open .nav__burger span{background:var(--cream)}
body.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open .nav{background:transparent!important; box-shadow:none!important}
:where(body.ms-p--camere) .mnav{position:fixed; inset:0; z-index:95; background:var(--charcoal-2); display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:5rem clamp(28px,9vw,56px) 3rem; transform:translateX(100%); opacity:0; visibility:hidden; transition:transform .55s var(--ease),opacity .4s,visibility .55s}
body.menu-open .mnav{transform:none; opacity:1; visibility:visible}
:where(body.ms-p--camere) .mnav a{font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--cream); padding:.32em 0; border-bottom:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between}
:where(body.ms-p--camere) .mnav a .ar{color:var(--red); font-size:1.2rem}
:where(body.ms-p--camere) .mnav .btn{margin-top:1.6rem; font-family:var(--sans); font-size:1rem; justify-content:center; border:none}
:where(body.ms-p--camere) .hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--camere) .hero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--camere) .hero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.62) contrast(1.05) saturate(.92)}
:where(body.ms-p--camere) .hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.55) 0%,rgba(18,16,14,.15) 35%,rgba(18,16,14,.35) 60%,rgba(18,16,14,.92) 100%)}
:where(body.ms-p--camere) .hero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,96px)}
:where(body.ms-p--camere) .hero__eyebrow{margin-bottom:clamp(20px,3vw,34px)}
:where(body.ms-p--camere) .hero h1{font-size:clamp(3rem,10.5vw,9.5rem); font-weight:500; letter-spacing:-.035em}
:where(body.ms-p--camere) .hero h1 em{font-style:italic; font-weight:400; color:var(--cream)}
:where(body.ms-p--camere) .hero__sub{max-width:46ch; margin:clamp(22px,3vw,34px) 0 clamp(30px,4vw,42px); font-size:clamp(1rem,1.3vw,1.18rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--camere) .hero__actions{display:flex; flex-wrap:wrap; gap:1rem}
:where(body.ms-p--camere) .hero__scroll{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:#c9c2b6}
:where(body.ms-p--camere) .hero__scroll .line{width:1px; height:46px; background:linear-gradient(var(--cream),transparent); position:relative; overflow:hidden}
:where(body.ms-p--camere) .hero__scroll .line::after{content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--red); animation:scrolldot 2.2s var(--ease) infinite}
:where(body.ms-p--camere) .trust{background:var(--ink); color:var(--cream); border-bottom:1px solid rgba(255,255,255,.08)}
:where(body.ms-p--camere) .trust__row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; padding:20px 0; font-size:.78rem; letter-spacing:.04em}
:where(body.ms-p--camere) .trust__row span{display:inline-flex; align-items:center; gap:.6em; color:#cfc8bc}
:where(body.ms-p--camere) .trust__row b{color:var(--cream); font-weight:600}
:where(body.ms-p--camere) .trust .dot{width:5px; height:5px; border-radius:50%; background:var(--red)}
:where(body.ms-p--camere) .section{padding:clamp(72px,11vw,150px) 0; position:relative}
:where(body.ms-p--camere) .section__head{max-width:760px; margin-bottom:clamp(40px,6vw,72px)}
:where(body.ms-p--camere) .section__head h2{font-size:clamp(2rem,5.2vw,4rem); margin-top:.4em}
:where(body.ms-p--camere) .section__head p{margin-top:1.1em; color:var(--muted); font-size:1.06rem; max-width:56ch}
:where(body.ms-p--camere) .story{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--camere) .story__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center}
:where(body.ms-p--camere) .story__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:4/5}
:where(body.ms-p--camere) .story__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
:where(body.ms-p--camere) .story__media.vis img{transform:scale(1)}
:where(body.ms-p--camere) .story__badge{position:absolute; left:20px; bottom:20px; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.82rem; padding:10px 16px; border-radius:2px}
:where(body.ms-p--camere) .story__badge b{color:var(--red)}
:where(body.ms-p--camere) .agri{position:relative; color:var(--cream); background:var(--charcoal-2); overflow:hidden}
:where(body.ms-p--camere) .agri__bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform}
:where(body.ms-p--camere) .agri__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.5)}
:where(body.ms-p--camere) .agri__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,16,14,.88),rgba(18,16,14,.4))}
:where(body.ms-p--camere) .agri__inner{position:relative; z-index:2; max-width:620px}
:where(body.ms-p--camere) .agri h2{font-size:clamp(2rem,5vw,3.8rem)}
:where(body.ms-p--camere) .agri p{color:#d9d2c6; margin:1.2em 0 1.8em}
:where(body.ms-p--camere) .agri__srv{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:2rem}
:where(body.ms-p--camere) .chip{border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:.5em 1.1em; font-size:.8rem; color:#e6e0d5}
:where(body.ms-p--camere) .chip b{color:var(--ochre); font-weight:600}
:where(body.ms-p--camere) .foot{background:var(--charcoal-2); color:#cfc8bc; padding:clamp(56px,8vw,90px) 0 40px}
:where(body.ms-p--camere) .foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
:where(body.ms-p--camere) .foot__logo{height:40px; margin-bottom:20px}
:where(body.ms-p--camere) .foot h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#7d766a; margin:0 0 16px}
:where(body.ms-p--camere) .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem}
:where(body.ms-p--camere) .foot a:hover{color:var(--cream)}
:where(body.ms-p--camere) .foot__sedi{font-size:.86rem; line-height:1.7}
:where(body.ms-p--camere) .foot__sedi b{color:var(--cream); font-weight:600}
:where(body.ms-p--camere) .foot__bar{border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.76rem; color:#7d766a}
:where(body.ms-p--camere) .pre{position:fixed; inset:0; z-index:9999; background:var(--charcoal-2); display:grid; place-items:center; transition:transform 1s var(--ease) .2s}
:where(body.ms-p--camere) .pre.done{transform:translateY(-100%)}
:where(body.ms-p--camere) .pre img{height:52px; opacity:0; transform:translateY(10px); animation:preIn 1s var(--ease) forwards}
:where(body.ms-p--camere) .subhero{min-height:82svh}
:where(body.ms-p--camere) .subhero .hero__inner{padding-bottom:clamp(40px,6vw,80px)}
:where(body.ms-p--camere) .subhero h1{font-size:clamp(2.6rem,8.5vw,7rem)}
:where(body.ms-p--camere) .booking-sec{background:var(--cream-card); border-bottom:1px solid var(--border); position:relative; z-index:60}
:where(body.ms-p--camere) .booking-sec .wrap{padding-top:0; padding-bottom:0}
:where(body.ms-p--camere) .ms-booking-widget{background:var(--paper); border:1px solid var(--border); border-radius:2px; box-shadow:0 18px 40px rgba(35,33,29,.13); /* [D1.8] raggio 4→2 e l'ombra canonica delle card */ margin-top:-52px; position:relative; z-index:60; padding:clamp(18px,2.4vw,26px); display:grid; grid-template-columns:1fr 1fr .9fr auto; gap:clamp(14px,1.6vw,22px); align-items:end;}
:where(body.ms-p--camere) .bk-field{display:flex; flex-direction:column; gap:.5em; min-width:0}
:where(body.ms-p--camere) .bk-field label{font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--muted)}
:where(body.ms-p--camere) .bk-field input[type=date]{font:inherit; font-size:16px; color:var(--ink); background:var(--cream); border:1px solid var(--border); border-radius:2px; padding:.85em 1em; width:100%; transition:border-color .3s;}
:where(body.ms-p--camere) .bk-field input[type=date]:focus{outline:none; border-color:var(--olive)}
:where(body.ms-p--camere) .bk-stepper{display:flex; align-items:center; justify-content:space-between; gap:.6em; background:var(--cream); border:1px solid var(--border); border-radius:2px; padding:.5em .7em}
:where(body.ms-p--camere) .bk-stepper button{width:44px; height:44px; /* [D1.5] era 34: bersaglio pieno anche col mouse */ flex:0 0 auto; border:1px solid var(--border); background:var(--paper); border-radius:2px; font-size:1.1rem; line-height:1; color:var(--ink); cursor:pointer; display:grid; place-items:center; transition:background .3s,color .3s,border-color .3s}
:where(body.ms-p--camere) .bk-stepper button:hover{background:var(--ink); color:var(--cream); border-color:var(--ink)}
:where(body.ms-p--camere) .bk-stepper .bk-count{font-family:var(--serif); font-size:1.25rem; font-weight:600; min-width:1.4ch; text-align:center}
:where(body.ms-p--camere) .bk-submit{display:flex; flex-direction:column; gap:.5em; align-items:stretch}
:where(body.ms-p--camere) .bk-submit .btn{justify-content:center; white-space:nowrap}
:where(body.ms-p--camere) .bk-trust{font-size:.75rem; color:var(--muted); display:inline-flex; align-items:center; gap:.45em; justify-content:center}
:where(body.ms-p--camere) .bk-trust svg{width:13px; height:13px; flex:0 0 auto; color:var(--olive)}
:where(body.ms-p--camere) .bk-summary{grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:clamp(16px,3vw,42px); border-top:1px dashed var(--border); margin-top:2px; padding-top:clamp(16px,2vw,22px);}
:where(body.ms-p--camere) .bk-sum-item{display:flex; flex-direction:column; gap:.2em}
:where(body.ms-p--camere) .bk-sum-item .k{font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:600}
:where(body.ms-p--camere) .bk-sum-item .v{font-family:var(--serif); font-size:1.35rem; font-weight:600; color:var(--ink)}
:where(body.ms-p--camere) .bk-sum-item.total .v{color:var(--red)}
:where(body.ms-p--camere) .bk-sum-item.acconto .v{color:var(--ochre)}
:where(body.ms-p--camere) .bk-sum-spacer{flex:1 1 auto; min-width:20px}
:where(body.ms-p--camere) .bk-sum-note{font-size:.78rem; color:var(--muted); max-width:30ch}
:where(body.ms-p--camere) .rooms{display:flex; flex-direction:column; gap:clamp(28px,4vw,52px)}
:where(body.ms-p--camere) .room{display:grid; grid-template-columns:1.05fr .95fr; gap:0; background:var(--paper); border:1px solid var(--border); border-radius:2px; /* [D1.8] era 4 */ overflow:hidden; transition:box-shadow .6s var(--ease),transform .6s var(--ease);}
:where(body.ms-p--camere) .room:hover{box-shadow:0 24px 60px rgba(35,33,29,.14)}
:where(body.ms-p--camere) .room:nth-child(even){grid-template-columns:.95fr 1.05fr}
:where(body.ms-p--camere) .room:nth-child(even) .room__media{order:2}
:where(body.ms-p--camere) .room:nth-child(even) .room__body{order:1}
:where(body.ms-p--camere) .room__media{position:relative; overflow:hidden; min-height:340px}
:where(body.ms-p--camere) .room__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); transform:scale(1.03)}
:where(body.ms-p--camere) .room:hover .room__media img{transform:scale(1.08)}
:where(body.ms-p--camere) .room__tag{position:absolute; top:18px; left:18px; background:var(--olive); color:var(--cream); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; padding:.5em .9em; border-radius:2px}
:where(body.ms-p--camere) .room__body{padding:clamp(26px,3.4vw,46px); display:flex; flex-direction:column; justify-content:center}
:where(body.ms-p--camere) .room__cat{font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--olive); font-weight:600}
:where(body.ms-p--camere) .room__name{font-family:var(--serif); font-size:clamp(1.7rem,3vw,2.6rem); font-weight:600; margin:.28em 0 .1em; line-height:1.05}
:where(body.ms-p--camere) .room__desc{color:var(--muted); font-size:.98rem; margin:.6em 0 1.3em; max-width:44ch}
:where(body.ms-p--camere) .room__srv{list-style:none; padding:0; margin:0 0 1.6em; display:grid; grid-template-columns:1fr 1fr; gap:.7em 1.4em}
:where(body.ms-p--camere) .room__srv li{display:flex; align-items:center; gap:.6em; font-size:.88rem; color:var(--ink)}
:where(body.ms-p--camere) .room__srv svg{width:17px; height:17px; flex:0 0 auto; color:var(--olive)}
:where(body.ms-p--camere) .room__foot{display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:auto; border-top:1px solid var(--border); padding-top:1.3em}
:where(body.ms-p--camere) .room__price{display:flex; flex-direction:column; gap:.1em}
:where(body.ms-p--camere) .room__price .from{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:600}
:where(body.ms-p--camere) .room__price .amt{font-family:var(--serif); font-size:1.9rem; font-weight:600; color:var(--red); line-height:1}
:where(body.ms-p--camere) .room__price .amt small{font-family:var(--sans); font-size:.82rem; font-weight:500; color:var(--muted); letter-spacing:.02em}
:where(body.ms-p--camere) .incl{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--camere) .incl__grid{display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(24px,3vw,36px)}
:where(body.ms-p--camere) .incl-chip{display:inline-flex; align-items:center; gap:.6em; border:1px solid var(--border); background:var(--paper); border-radius:999px; padding:.7em 1.2em; font-size:.9rem; color:var(--ink); transition:border-color .3s,transform .4s var(--ease)}
:where(body.ms-p--camere) .incl-chip:hover{border-color:var(--olive); transform:translateY(-2px)}
:where(body.ms-p--camere) .incl-chip svg{width:17px; height:17px; flex:0 0 auto; color:var(--olive)}
:where(body.ms-p--camere) .gal{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
:where(body.ms-p--camere) .gal figure{margin:0; position:relative; overflow:hidden; border-radius:3px; aspect-ratio:3/4; cursor:default; background:var(--charcoal-2)}
:where(body.ms-p--camere) .room__foot{justify-content:flex-end}
:where(body.ms-p--camere) .gal figure:nth-child(1){grid-column:span 2; grid-row:span 2; aspect-ratio:auto}
:where(body.ms-p--camere) .gal img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); transform:scale(1.02)}
:where(body.ms-p--camere) .gal figure:hover img{transform:scale(1.08)}
:where(body.ms-p--camere) .gal figure::after{content:none}
:where(body.ms-p--camere) .lightbox{position:fixed; inset:0; z-index:9990; background:rgba(12,10,8,.94); display:flex; align-items:center; justify-content:center; padding:clamp(20px,5vw,60px); opacity:0; visibility:hidden; transition:opacity .45s var(--ease),visibility .45s}
:where(body.ms-p--camere) .lightbox.open{opacity:1; visibility:visible}
:where(body.ms-p--camere) .lightbox img{max-width:100%; max-height:86vh; width:auto; border-radius:3px; box-shadow:0 30px 80px rgba(0,0,0,.5)}
:where(body.ms-p--camere) .lightbox__close{position:absolute; top:22px; right:26px; width:46px; height:46px; border:1px solid rgba(255,255,255,.3); background:transparent; color:var(--cream); border-radius:2px; font-size:1.3rem; cursor:pointer; display:grid; place-items:center; transition:background .3s}
:where(body.ms-p--camere) .lightbox__close:hover{background:rgba(255,255,255,.12)}
:where(body.ms-p--camere) .lightbox__nav{position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border:1px solid rgba(255,255,255,.3); background:transparent; color:var(--cream); border-radius:50%; font-size:1.4rem; cursor:pointer; display:grid; place-items:center; transition:background .3s}
:where(body.ms-p--camere) .lightbox__nav:hover{background:rgba(255,255,255,.12)}
:where(body.ms-p--camere) .lightbox__nav.prev{left:clamp(12px,3vw,34px)}
:where(body.ms-p--camere) .lightbox__nav.next{right:clamp(12px,3vw,34px)}
@media(max-width:900px){
  :where(body.ms-p--camere) .nav__menu, :where(body.ms-p--camere) .nav__cta .btn{display:none}
  :where(body.ms-p--camere) .nav__burger{display:flex}
  :where(body.ms-p--camere) .ms-booking-widget{grid-template-columns:1fr 1fr; margin-top:-40px}
  :where(body.ms-p--camere) .bk-field.guests{grid-column:span 1}
  :where(body.ms-p--camere) .bk-submit{grid-column:1 / -1}
}
@keyframes scrolldot{
  :where(body.ms-p--camere) 0%{top:-50%}
  :where(body.ms-p--camere) 60%, :where(body.ms-p--camere) 100%{top:100%}
}
@media(max-width:820px){
  :where(body.ms-p--camere) .foot__grid{grid-template-columns:1fr 1fr}
  :where(body.ms-p--camere) .room, :where(body.ms-p--camere) .room:nth-child(even){grid-template-columns:1fr}
  :where(body.ms-p--camere) .room:nth-child(even) .room__media{order:0}
  :where(body.ms-p--camere) .room:nth-child(even) .room__body{order:0}
  :where(body.ms-p--camere) .room__media{min-height:260px; aspect-ratio:16/10}
  :where(body.ms-p--camere) .gal{grid-template-columns:1fr 1fr}
  :where(body.ms-p--camere) .gal figure:nth-child(1){grid-column:span 2; grid-row:auto; aspect-ratio:3/4}
}
@media(max-width:520px){
  :where(body.ms-p--camere) .foot__grid{grid-template-columns:1fr}
}
@keyframes preIn{
  :where(body.ms-p--camere) to{opacity:1; transform:none}
}
@media(max-width:640px){
  :where(body.ms-p--camere) .hero{min-height:100svh}
  :where(body.ms-p--camere) .hero__inner{padding-bottom:clamp(70px,16vw,110px)}
  :where(body.ms-p--camere) .hero h1{font-size:clamp(3.2rem,17vw,5rem)}
  :where(body.ms-p--camere) .hero__sub{font-size:1.02rem}
  :where(body.ms-p--camere) .hero__actions{flex-direction:column; align-items:stretch; gap:.7rem}
  :where(body.ms-p--camere) .hero__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
  :where(body.ms-p--camere) .hero__scroll{display:none}
  :where(body.ms-p--camere) .trust__row{display:grid; grid-template-columns:1fr; gap:12px; padding:22px 0}
  :where(body.ms-p--camere) .trust__row span{font-size:.82rem}
  :where(body.ms-p--camere) .section__head p{font-size:1rem}
  :where(body.ms-p--camere) .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
  :where(body.ms-p--camere) .agri{padding-top:clamp(64px,14vw,96px)}
  /* [D1.5 15/09/2026] 9 pillole una per riga a 390 (le più lunghe non stanno in due):
     due colonne di voci compatte, stesso bordo, angoli di sistema. */
  :where(body.ms-p--camere) .incl__grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px}
  :where(body.ms-p--camere) .incl-chip{border-radius:2px; padding:.6em .7em; font-size:.84rem; align-items:flex-start; line-height:1.35}
}
@media(max-width:420px){
  :where(body.ms-p--camere) .foot__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  :where(body.ms-p--camere) *{animation:none!important; transition-duration:.01ms!important}
  :where(body.ms-p--camere) [data-reveal], :where(body.ms-p--camere) .mask>span{opacity:1!important; transform:none!important}
  :where(body.ms-p--camere) .pre{display:none}
}
@media(pointer:coarse){
  :where(body.ms-p--camere) .bk-stepper button{min-width:44px; min-height:44px}
}
@media(max-width:560px){
  :where(body.ms-p--camere) .ms-booking-widget{grid-template-columns:1fr; margin-top:-32px; gap:14px}
  :where(body.ms-p--camere) .bk-summary{flex-direction:column; align-items:flex-start; gap:14px}
  :where(body.ms-p--camere) .bk-sum-spacer{display:none}
  :where(body.ms-p--camere) .bk-submit .btn{width:100%}
  :where(body.ms-p--camere) .lightbox__nav{width:42px; height:42px}
}
@media(max-width:480px){
  :where(body.ms-p--camere) .room__srv{grid-template-columns:1fr}
  :where(body.ms-p--camere) .room__foot{flex-direction:column; align-items:stretch}
  :where(body.ms-p--camere) .room__foot .btn{width:100%; justify-content:center}
  :where(body.ms-p--camere) .gal{grid-template-columns:1fr 1fr}
  :where(body.ms-p--camere) .gal figure:nth-child(1){grid-column:span 2}
}

/* ============ AGRITURISMO ============ */
:root{--red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15; --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff; --border:#E5DFD4; --muted:#6B6459; --charcoal:#1A1917; --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250; --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --container:1280px; --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.16,1,.3,1);}
:where(body.ms-p--agriturismo) *, :where(body.ms-p--agriturismo) *::before, :where(body.ms-p--agriturismo) *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:clamp(15px,1vw+13px,17px); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.ms-p--agriturismo) img{max-width:100%; height:auto; display:block}
:where(body.ms-p--agriturismo) a{color:inherit; text-decoration:none}
:where(body.ms-p--agriturismo) h1, :where(body.ms-p--agriturismo) h2, :where(body.ms-p--agriturismo) h3{font-family:var(--serif); font-weight:600; line-height:1.03; letter-spacing:-.02em; margin:0}
:where(body.ms-p--agriturismo) .grain{position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
:where(body.ms-p--agriturismo) .wrap{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px)}
:where(body.ms-p--agriturismo) .eyebrow{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
:where(body.ms-p--agriturismo) .eyebrow::before{content:""; width:26px; height:1px; background:var(--red)}
:where(body.ms-p--agriturismo) .eyebrow.on-dark{color:#c9c2b6}
:where(body.ms-p--agriturismo) .btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:var(--ms-r-btn,24px); border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform}
:where(body.ms-p--agriturismo) .btn:hover{transform:translateY(-2px)}
:where(body.ms-p--agriturismo) .btn-primary{background:var(--red); color:#fff}
:where(body.ms-p--agriturismo) .btn-primary:hover{background:var(--red-hover)}
:where(body.ms-p--agriturismo) .btn-ghost{border-color:currentColor; color:var(--ink)}
:where(body.ms-p--agriturismo) .btn-ghost.on-dark{color:var(--cream)}
:where(body.ms-p--agriturismo) .btn-ghost:hover{background:var(--ink); color:var(--cream)}
:where(body.ms-p--agriturismo) .btn-ghost.on-dark:hover{background:var(--cream); color:var(--ink)}
:where(body.ms-p--agriturismo) .btn .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--agriturismo) .btn:hover .ar{transform:translateX(4px)}
:where(body.ms-p--agriturismo) [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-io),transform 1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--agriturismo) [data-reveal].vis{opacity:1; transform:none}
:where(body.ms-p--agriturismo) .mask{display:block; overflow:hidden}
:where(body.ms-p--agriturismo) .mask>span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--agriturismo) .mask.vis>span{transform:none}
:where(body.ms-p--agriturismo) .nav{position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:clamp(14px,2vw,22px) clamp(20px,5vw,64px); transition:background .4s,backdrop-filter .4s,padding .4s,box-shadow .4s}
:where(body.ms-p--agriturismo) .nav.scrolled{background:rgba(245,240,232,.86); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border); padding-top:12px; padding-bottom:12px}
:where(body.ms-p--agriturismo) .nav__logo{height:38px; width:auto; transition:height .4s}
:where(body.ms-p--agriturismo) .nav.scrolled .nav__logo{height:32px}
:where(body.ms-p--agriturismo) .nav__menu{display:flex; gap:2rem; font-size:.86rem; font-weight:500; letter-spacing:.02em; color:var(--cream); transition:color .4s}
:where(body.ms-p--agriturismo) .nav.scrolled .nav__menu{color:var(--ink)}
:where(body.ms-p--agriturismo) .nav__menu a{position:relative; padding:4px 0}
:where(body.ms-p--agriturismo) .nav__menu a::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease)}
:where(body.ms-p--agriturismo) .nav__menu a:hover::after, :where(body.ms-p--agriturismo) .nav__menu a.active::after{transform:scaleX(1); transform-origin:left}
:where(body.ms-p--agriturismo) .nav__menu a.active{color:var(--red)}
:where(body.ms-p--agriturismo) .nav__cta{display:flex; align-items:center; gap:1.2rem}
:where(body.ms-p--agriturismo) .nav__cta .btn{padding:.6em 1.2em; font-size:.82rem}
:where(body.ms-p--agriturismo) .nav__burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; background:transparent}
:where(body.ms-p--agriturismo) .nav__burger span{display:block; width:24px; height:2px; background:var(--cream); margin:0 auto; transition:transform .35s var(--ease),opacity .25s,background .4s}
:where(body.ms-p--agriturismo) .nav.scrolled .nav__burger span{background:var(--ink)}
body.menu-open .nav__burger span{background:var(--cream)}
body.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open .nav{background:transparent!important; box-shadow:none!important}
:where(body.ms-p--agriturismo) .mnav{position:fixed; inset:0; z-index:95; background:var(--charcoal-2); display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:5rem clamp(28px,9vw,56px) 3rem; transform:translateX(100%); opacity:0; visibility:hidden; transition:transform .55s var(--ease),opacity .4s,visibility .55s}
body.menu-open .mnav{transform:none; opacity:1; visibility:visible}
:where(body.ms-p--agriturismo) .mnav a{font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--cream); padding:.32em 0; border-bottom:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between}
:where(body.ms-p--agriturismo) .mnav a .ar{color:var(--red); font-size:1.2rem}
:where(body.ms-p--agriturismo) .mnav .btn{margin-top:1.6rem; font-family:var(--sans); font-size:1rem; justify-content:center; border:none}
:where(body.ms-p--agriturismo) .hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--agriturismo) .hero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--agriturismo) .hero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.62) contrast(1.05) saturate(.92)}
:where(body.ms-p--agriturismo) .hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.55) 0%,rgba(18,16,14,.15) 35%,rgba(18,16,14,.35) 60%,rgba(18,16,14,.92) 100%)}
:where(body.ms-p--agriturismo) .hero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,96px)}
:where(body.ms-p--agriturismo) .hero__eyebrow{margin-bottom:clamp(20px,3vw,34px)}
:where(body.ms-p--agriturismo) .hero h1{font-size:clamp(3rem,10.5vw,9.5rem); font-weight:500; letter-spacing:-.035em}
:where(body.ms-p--agriturismo) .hero h1 em{font-style:italic; font-weight:400; color:var(--cream)}
:where(body.ms-p--agriturismo) .hero__sub{max-width:46ch; margin:clamp(22px,3vw,34px) 0 clamp(30px,4vw,42px); font-size:clamp(1rem,1.3vw,1.18rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--agriturismo) .hero__actions{display:flex; flex-wrap:wrap; gap:1rem}
:where(body.ms-p--agriturismo) .hero__scroll{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:#c9c2b6}
:where(body.ms-p--agriturismo) .hero__scroll .line{width:1px; height:46px; background:linear-gradient(var(--cream),transparent); position:relative; overflow:hidden}
:where(body.ms-p--agriturismo) .hero__scroll .line::after{content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--red); animation:scrolldot 2.2s var(--ease) infinite}
:where(body.ms-p--agriturismo) .trust{background:var(--ink); color:var(--cream); border-bottom:1px solid rgba(255,255,255,.08)}
:where(body.ms-p--agriturismo) .trust__row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; padding:20px 0; font-size:.78rem; letter-spacing:.04em}
:where(body.ms-p--agriturismo) .trust__row span{display:inline-flex; align-items:center; gap:.6em; color:#cfc8bc}
:where(body.ms-p--agriturismo) .trust__row b{color:var(--cream); font-weight:600}
:where(body.ms-p--agriturismo) .trust .dot{width:5px; height:5px; border-radius:50%; background:var(--red)}
:where(body.ms-p--agriturismo) .section{padding:clamp(72px,11vw,150px) 0; position:relative}
:where(body.ms-p--agriturismo) .section__head{max-width:760px; margin-bottom:clamp(40px,6vw,72px)}
:where(body.ms-p--agriturismo) .section__head h2{font-size:clamp(2rem,5.2vw,4rem); margin-top:.4em}
:where(body.ms-p--agriturismo) .section__head p{margin-top:1.1em; color:var(--muted); font-size:1.06rem; max-width:56ch}
:where(body.ms-p--agriturismo) .story{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--agriturismo) .story__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center}
:where(body.ms-p--agriturismo) .story__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:4/5}
:where(body.ms-p--agriturismo) .story__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
:where(body.ms-p--agriturismo) .story__media.vis img{transform:scale(1)}
:where(body.ms-p--agriturismo) .story__badge{position:absolute; left:20px; bottom:20px; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.82rem; padding:10px 16px; border-radius:2px}
:where(body.ms-p--agriturismo) .story__badge b{color:var(--red)}
:where(body.ms-p--agriturismo) .story h2{font-size:clamp(1.9rem,4.4vw,3.4rem)}
:where(body.ms-p--agriturismo) .story p{color:var(--muted); margin:1.2em 0}
:where(body.ms-p--agriturismo) .stats{display:flex; gap:clamp(24px,4vw,54px); margin-top:2.2em; flex-wrap:wrap}
:where(body.ms-p--agriturismo) .stat__n{font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:600; color:var(--red); line-height:1}
:where(body.ms-p--agriturismo) .stat__l{font-size:.8rem; color:var(--muted); letter-spacing:.03em; margin-top:.5em; max-width:14ch}
:where(body.ms-p--agriturismo) .foot{background:var(--charcoal-2); color:#cfc8bc; padding:clamp(56px,8vw,90px) 0 40px}
:where(body.ms-p--agriturismo) .foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
:where(body.ms-p--agriturismo) .foot__logo{height:40px; margin-bottom:20px}
:where(body.ms-p--agriturismo) .foot h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#7d766a; margin:0 0 16px}
:where(body.ms-p--agriturismo) .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem}
:where(body.ms-p--agriturismo) .foot a:hover{color:var(--cream)}
:where(body.ms-p--agriturismo) .foot__sedi{font-size:.86rem; line-height:1.7}
:where(body.ms-p--agriturismo) .foot__sedi b{color:var(--cream); font-weight:600}
:where(body.ms-p--agriturismo) .foot__bar{border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.76rem; color:#7d766a}
:where(body.ms-p--agriturismo) .pre{position:fixed; inset:0; z-index:9999; background:var(--charcoal-2); display:grid; place-items:center; transition:transform 1s var(--ease) .2s}
:where(body.ms-p--agriturismo) .pre.done{transform:translateY(-100%)}
:where(body.ms-p--agriturismo) .pre img{height:52px; opacity:0; transform:translateY(10px); animation:preIn 1s var(--ease) forwards}
:where(body.ms-p--agriturismo) .intro{background:var(--cream)}
:where(body.ms-p--agriturismo) .intro__grid{display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(30px,5vw,80px); align-items:center}
:where(body.ms-p--agriturismo) .intro__media{position:relative; border-radius:3px; overflow:hidden; aspect-ratio:4/5}
:where(body.ms-p--agriturismo) .intro__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
:where(body.ms-p--agriturismo) .intro__media.vis img{transform:scale(1)}
:where(body.ms-p--agriturismo) .intro__media--stack{display:grid; grid-template-rows:1.3fr 1fr; gap:14px; aspect-ratio:auto}
:where(body.ms-p--agriturismo) .intro__media--stack figure{position:relative; overflow:hidden; border-radius:3px; margin:0}
:where(body.ms-p--agriturismo) .intro__media--stack img{width:100%; height:100%; object-fit:cover}
:where(body.ms-p--agriturismo) .intro__badge{position:absolute; left:20px; bottom:20px; background:var(--cream); color:var(--ink); font-family:var(--serif); font-size:.82rem; padding:10px 16px; border-radius:2px; z-index:2}
:where(body.ms-p--agriturismo) .intro__badge b{color:var(--red)}
:where(body.ms-p--agriturismo) .intro h2{font-size:clamp(1.9rem,4.6vw,3.4rem); margin-top:.35em}
:where(body.ms-p--agriturismo) .intro p{color:var(--muted); margin:1.2em 0}
:where(body.ms-p--agriturismo) .svc{display:grid; grid-template-columns:repeat(12,1fr); gap:16px}
:where(body.ms-p--agriturismo) .ms-service-card{position:relative; background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden; display:flex; flex-direction:column; min-height:280px; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
:where(body.ms-p--agriturismo) .ms-service-card:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--agriturismo) .ms-service-card:nth-child(1){grid-column:span 7}
:where(body.ms-p--agriturismo) .ms-service-card:nth-child(2){grid-column:span 5}
:where(body.ms-p--agriturismo) .ms-service-card:nth-child(3){grid-column:span 5}
:where(body.ms-p--agriturismo) .ms-service-card:nth-child(4){grid-column:span 7}
:where(body.ms-p--agriturismo) .ms-service-card:nth-child(5){grid-column:span 12}
:where(body.ms-p--agriturismo) .ms-service-card__img{position:relative; overflow:hidden; aspect-ratio:16/10}
:where(body.ms-p--agriturismo) .ms-service-card__img img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease)}
:where(body.ms-p--agriturismo) .ms-service-card:hover .ms-service-card__img img{transform:scale(1.06)}
:where(body.ms-p--agriturismo) .ms-service-card__b{padding:24px 26px 28px; display:flex; flex-direction:column; gap:.55em; flex:1}
:where(body.ms-p--agriturismo) .ms-service-card__ic{width:44px; height:44px; color:var(--olive); margin-bottom:.2em}
:where(body.ms-p--agriturismo) .ms-service-card__ic svg{width:100%; height:100%; display:block}
:where(body.ms-p--agriturismo) .ms-service-card__t{font-family:var(--serif); font-size:1.4rem; font-weight:600}
:where(body.ms-p--agriturismo) .ms-service-card__d{font-size:.92rem; color:var(--muted); max-width:44ch}
:where(body.ms-p--agriturismo) .ms-badge{position:absolute; top:16px; left:16px; z-index:3; background:var(--ochre); color:#fff; font-family:var(--sans); font-weight:600; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; padding:.5em .9em; border-radius:2px}
:where(body.ms-p--agriturismo) .ms-service-card--wide{flex-direction:row; align-items:stretch}
:where(body.ms-p--agriturismo) .ms-service-card--wide .ms-service-card__img{flex:1.1; aspect-ratio:auto; min-height:100%}
:where(body.ms-p--agriturismo) .ms-service-card--wide .ms-service-card__b{flex:1; justify-content:center}
:where(body.ms-p--agriturismo) .svc__exp{display:flex; flex-wrap:wrap; gap:10px; margin-top:.6em}
:where(body.ms-p--agriturismo) .svc__exp span{border:1px solid var(--border); border-radius:999px; padding:.45em 1em; font-size:.8rem; color:var(--ink); display:inline-flex; align-items:center; gap:.5em}
:where(body.ms-p--agriturismo) .svc__exp span i{color:var(--olive)}
:where(body.ms-p--agriturismo) .rooms{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
:where(body.ms-p--agriturismo) .ms-room-card{background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden; display:flex; flex-direction:column; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
:where(body.ms-p--agriturismo) .ms-room-card:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--agriturismo) .ms-room-card__img{position:relative; aspect-ratio:4/5; overflow:hidden}
:where(body.ms-p--agriturismo) .ms-room-card__img img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease)}
:where(body.ms-p--agriturismo) .ms-room-card:hover .ms-room-card__img img{transform:scale(1.06)}
:where(body.ms-p--agriturismo) .ms-room-card__cap{position:absolute; top:14px; left:14px; z-index:2; background:rgba(18,16,14,.72); color:var(--cream); font-size:.75rem; letter-spacing:.08em; padding:.45em .8em; border-radius:2px; backdrop-filter:blur(4px)}
:where(body.ms-p--agriturismo) .ms-room-card__b{padding:20px 22px 24px; display:flex; flex-direction:column; gap:.35em; flex:1}
:where(body.ms-p--agriturismo) .ms-room-card__cat{font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
:where(body.ms-p--agriturismo) .ms-room-card__t{font-family:var(--serif); font-size:1.35rem; margin:.1em 0 .15em}
:where(body.ms-p--agriturismo) .ms-room-card__d{font-size:.88rem; color:var(--muted)}
:where(body.ms-p--agriturismo) .ms-room-card__f{display:flex; align-items:flex-end; justify-content:space-between; margin-top:auto; padding-top:16px}
:where(body.ms-p--agriturismo) .ms-room-card__price{line-height:1.1}
:where(body.ms-p--agriturismo) .ms-room-card__price b{font-family:var(--serif); font-size:1.4rem; font-weight:600; color:var(--red)}
:where(body.ms-p--agriturismo) .ms-room-card__price small{display:block; font-size:.7rem; color:var(--muted); letter-spacing:.04em; margin-top:.2em}
:where(body.ms-p--agriturismo) .ms-room-card__link{display:inline-flex; align-items:center; gap:.5em; font-size:.82rem; font-weight:600; color:var(--ink)}
:where(body.ms-p--agriturismo) .ms-room-card__link .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--agriturismo) .ms-room-card:hover .ms-room-card__link .ar{transform:translateX(4px)}
:where(body.ms-p--agriturismo) .rooms__foot{margin-top:clamp(28px,4vw,44px); display:flex; justify-content:center}
/* [D1.5 15/09/2026] Da colonne a griglia: con column-count le 7 foto (una verticale)
   finivano 3 + 3 + 1 e la terza colonna restava 215 px più corta. Ora righe a passo
   fisso: la prima foto 2×2, la palestra (l'unica verticale) 1×2, la sesta su due
   colonne: 12 celle su 12, nessun buco. Le foto si ritagliano (object-fit), non si deformano. */
:where(body.ms-p--agriturismo) .ms-gallery{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:clamp(180px,18vw,240px); gap:14px}
:where(body.ms-p--agriturismo) .ms-gallery figure{margin:0; position:relative; overflow:hidden; border-radius:3px; cursor:pointer}
:where(body.ms-p--agriturismo) .ms-gallery figure:nth-child(1){grid-column:1 / span 2; grid-row:1 / span 2}
:where(body.ms-p--agriturismo) .ms-gallery figure:nth-child(7){grid-column:3; grid-row:1 / span 2}
:where(body.ms-p--agriturismo) .ms-gallery figure:nth-child(6){grid-column:span 2}
:where(body.ms-p--agriturismo) .ms-gallery img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 1s var(--ease),filter .5s}
:where(body.ms-p--agriturismo) .ms-gallery figure::after{content:"↗"; position:absolute; right:14px; bottom:12px; color:#fff; font-size:1.1rem; opacity:0; transform:translateY(6px); transition:.4s var(--ease); z-index:2}
:where(body.ms-p--agriturismo) .ms-gallery figure:hover img{transform:scale(1.05); filter:brightness(.82)}
:where(body.ms-p--agriturismo) .ms-gallery figure:hover::after{opacity:1; transform:none}
:where(body.ms-p--agriturismo) .lightbox{border:none; padding:0; background:transparent; max-width:none; max-height:none; width:100%; height:100%; overflow:hidden}
:where(body.ms-p--agriturismo) .lightbox::backdrop{background:rgba(12,10,8,.92); backdrop-filter:blur(6px)}
:where(body.ms-p--agriturismo) .lightbox[open]{display:grid; place-items:center}
:where(body.ms-p--agriturismo) .lightbox img{max-width:92vw; max-height:86vh; width:auto; height:auto; border-radius:3px; box-shadow:0 30px 80px rgba(0,0,0,.5)}
:where(body.ms-p--agriturismo) .lightbox__close{position:fixed; top:22px; right:24px; width:46px; height:46px; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.06); color:#fff; border-radius:2px; font-size:1.4rem; cursor:pointer; display:grid; place-items:center; transition:background .3s}
:where(body.ms-p--agriturismo) .lightbox__close:hover{background:rgba(255,255,255,.18)}
:where(body.ms-p--agriturismo) .lightbox__nav{position:fixed; top:50%; transform:translateY(-50%); width:52px; height:52px; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.06); color:#fff; border-radius:2px; font-size:1.4rem; cursor:pointer; display:grid; place-items:center; transition:background .3s}
:where(body.ms-p--agriturismo) .lightbox__nav:hover{background:rgba(255,255,255,.18)}
:where(body.ms-p--agriturismo) .lightbox__nav.prev{left:22px}
:where(body.ms-p--agriturismo) .lightbox__nav.next{right:22px}
:where(body.ms-p--agriturismo) .book{position:relative; color:var(--cream); background:var(--charcoal-2); overflow:hidden; text-align:center}
:where(body.ms-p--agriturismo) .book__bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform}
:where(body.ms-p--agriturismo) .book__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.42)}
:where(body.ms-p--agriturismo) .book__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.7),rgba(18,16,14,.55))}
:where(body.ms-p--agriturismo) .book__inner{position:relative; z-index:2; max-width:640px; margin:0 auto}
:where(body.ms-p--agriturismo) .book h2{font-size:clamp(2rem,5.4vw,4rem)}
:where(body.ms-p--agriturismo) .book p{color:#d9d2c6; margin:1.1em auto 2em; max-width:48ch}
:where(body.ms-p--agriturismo) .book__actions{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap}
@media(max-width:900px){
  :where(body.ms-p--agriturismo) .nav__menu, :where(body.ms-p--agriturismo) .nav__cta .btn{display:none}
  :where(body.ms-p--agriturismo) .nav__burger{display:flex}
  :where(body.ms-p--agriturismo) .ms-service-card, :where(body.ms-p--agriturismo) .ms-service-card:nth-child(n){grid-column:span 6!important}
  :where(body.ms-p--agriturismo) .ms-service-card--wide{flex-direction:column}
  :where(body.ms-p--agriturismo) .ms-service-card--wide .ms-service-card__img{aspect-ratio:16/10}
}
@keyframes scrolldot{
  :where(body.ms-p--agriturismo) 0%{top:-50%}
  :where(body.ms-p--agriturismo) 60%, :where(body.ms-p--agriturismo) 100%{top:100%}
}
@media(max-width:820px){
  :where(body.ms-p--agriturismo) .story__grid{grid-template-columns:1fr}
  :where(body.ms-p--agriturismo) .story__media{aspect-ratio:16/11}
  :where(body.ms-p--agriturismo) .foot__grid{grid-template-columns:1fr 1fr}
  :where(body.ms-p--agriturismo) .intro__grid{grid-template-columns:1fr}
  :where(body.ms-p--agriturismo) .intro__media{aspect-ratio:16/11}
  :where(body.ms-p--agriturismo) .intro__media--stack{aspect-ratio:auto}
  :where(body.ms-p--agriturismo) .rooms{grid-template-columns:1fr 1fr}
  :where(body.ms-p--agriturismo) .rooms > :nth-child(3){grid-column:1/-1}
  :where(body.ms-p--agriturismo) .ms-gallery{grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:clamp(150px,44vw,240px)}
  :where(body.ms-p--agriturismo) .ms-gallery figure:nth-child(1){grid-column:1 / -1; grid-row:auto}
  :where(body.ms-p--agriturismo) .ms-gallery figure:nth-child(7){grid-column:2; grid-row:2 / span 2}
  :where(body.ms-p--agriturismo) .ms-gallery figure:nth-child(6){grid-column:1 / -1}
}
@media(max-width:520px){
  :where(body.ms-p--agriturismo) .foot__grid{grid-template-columns:1fr}
}
@keyframes preIn{
  :where(body.ms-p--agriturismo) to{opacity:1; transform:none}
}
@media(max-width:640px){
  :where(body.ms-p--agriturismo) .hero{min-height:100svh}
  :where(body.ms-p--agriturismo) .hero__inner{padding-bottom:clamp(70px,16vw,110px)}
  :where(body.ms-p--agriturismo) .hero h1{font-size:clamp(3.2rem,17vw,5rem)}
  :where(body.ms-p--agriturismo) .hero__sub{font-size:1.02rem}
  :where(body.ms-p--agriturismo) .hero__actions{flex-direction:column; align-items:stretch; gap:.7rem}
  :where(body.ms-p--agriturismo) .hero__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
  :where(body.ms-p--agriturismo) .hero__scroll{display:none}
  :where(body.ms-p--agriturismo) .trust__row{display:grid; grid-template-columns:1fr; gap:12px; padding:22px 0}
  :where(body.ms-p--agriturismo) .trust__row span{font-size:.82rem}
  :where(body.ms-p--agriturismo) .section__head p{font-size:1rem}
  :where(body.ms-p--agriturismo) .stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 16px} /* [D1.2] come la home */
  :where(body.ms-p--agriturismo) .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
  :where(body.ms-p--agriturismo) .lightbox__nav{width:44px; height:44px}
  :where(body.ms-p--agriturismo) .lightbox__nav.prev{left:10px}
  :where(body.ms-p--agriturismo) .lightbox__nav.next{right:10px}
  :where(body.ms-p--agriturismo) .book__actions{flex-direction:column; align-items:stretch}
  :where(body.ms-p--agriturismo) .book__actions .btn{width:100%; justify-content:center; padding:0 1.6em}
}
@media(max-width:420px){
  :where(body.ms-p--agriturismo) .foot__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  :where(body.ms-p--agriturismo) *{animation:none!important; transition-duration:.01ms!important}
  :where(body.ms-p--agriturismo) [data-reveal], :where(body.ms-p--agriturismo) .mask>span{opacity:1!important; transform:none!important}
  :where(body.ms-p--agriturismo) .pre{display:none}
}
@media(max-width:560px){
  :where(body.ms-p--agriturismo) .ms-service-card, :where(body.ms-p--agriturismo) .ms-service-card:nth-child(n){grid-column:span 12!important}
  :where(body.ms-p--agriturismo) .rooms{grid-template-columns:1fr}
  :where(body.ms-p--agriturismo) .rooms > :nth-child(3){grid-column:auto}
}
@media(max-width:380px){
  :where(body.ms-p--agriturismo) .ms-gallery{grid-template-columns:1fr; grid-auto-rows:60vw}
  :where(body.ms-p--agriturismo) .ms-gallery figure:nth-child(n){grid-column:auto; grid-row:auto}
}

/* ============ CONTATTI ============ */
:root{--red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15; --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff; --border:#E5DFD4; --muted:#6B6459; --charcoal:#1A1917; --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250; --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --container:1280px; --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.16,1,.3,1);}
:where(body.ms-p--contatti) *, :where(body.ms-p--contatti) *::before, :where(body.ms-p--contatti) *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:clamp(15px,1vw+13px,17px); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
:where(body.ms-p--contatti) img{max-width:100%; height:auto; display:block}
:where(body.ms-p--contatti) a{text-decoration:none}
body a,body a:visited{color:inherit}
:where(body.ms-p--contatti) h1, :where(body.ms-p--contatti) h2, :where(body.ms-p--contatti) h3{font-family:var(--serif); font-weight:600; line-height:1.03; letter-spacing:-.02em; margin:0}
:where(body.ms-p--contatti) .grain{position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
:where(body.ms-p--contatti) .wrap{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px)}
:where(body.ms-p--contatti) .eyebrow{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
:where(body.ms-p--contatti) .eyebrow::before{content:""; width:26px; height:1px; background:var(--red)}
:where(body.ms-p--contatti) .eyebrow.on-dark{color:#c9c2b6}
:where(body.ms-p--contatti) .btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:var(--ms-r-btn,24px); border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform}
:where(body.ms-p--contatti) .btn:hover{transform:translateY(-2px)}
:where(body.ms-p--contatti) .btn-primary{background:var(--red); color:#fff}
:where(body.ms-p--contatti) .btn-primary:hover{background:var(--red-hover)}
:where(body.ms-p--contatti) .btn-ghost{border-color:currentColor; color:var(--ink)}
:where(body.ms-p--contatti) .btn-ghost.on-dark{color:var(--cream)}
:where(body.ms-p--contatti) .btn-ghost:hover{background:var(--ink); color:var(--cream)}
:where(body.ms-p--contatti) .btn-ghost.on-dark:hover{background:var(--cream); color:var(--ink)}
:where(body.ms-p--contatti) .btn .ar{transition:transform .5s var(--ease)}
:where(body.ms-p--contatti) .btn:hover .ar{transform:translateX(4px)}
:where(body.ms-p--contatti) [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-io),transform 1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--contatti) [data-reveal].vis{opacity:1; transform:none}
:where(body.ms-p--contatti) .mask{display:block; overflow:hidden}
:where(body.ms-p--contatti) .mask>span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease-io); transition-delay:var(--d,0ms)}
:where(body.ms-p--contatti) .mask.vis>span{transform:none}
:where(body.ms-p--contatti) .nav{position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:clamp(14px,2vw,22px) clamp(20px,5vw,64px); transition:background .4s,backdrop-filter .4s,padding .4s,box-shadow .4s}
:where(body.ms-p--contatti) .nav.scrolled{background:rgba(245,240,232,.86); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border); padding-top:12px; padding-bottom:12px}
:where(body.ms-p--contatti) .nav__logo{height:38px; width:auto; transition:height .4s}
:where(body.ms-p--contatti) .nav.scrolled .nav__logo{height:32px}
:where(body.ms-p--contatti) .nav__menu{display:flex; gap:2rem; font-size:.86rem; font-weight:500; letter-spacing:.02em; color:var(--cream); transition:color .4s}
:where(body.ms-p--contatti) .nav.scrolled .nav__menu{color:var(--ink)}
:where(body.ms-p--contatti) .nav__menu a{position:relative; padding:4px 0}
:where(body.ms-p--contatti) .nav__menu a::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease)}
:where(body.ms-p--contatti) .nav__menu a:hover::after{transform:scaleX(1); transform-origin:left}
:where(body.ms-p--contatti) .nav__menu a.active::after{transform:scaleX(1)}
:where(body.ms-p--contatti) .nav__cta{display:flex; align-items:center; gap:1.2rem}
:where(body.ms-p--contatti) .nav__cta .btn{padding:.6em 1.2em; font-size:.82rem}
:where(body.ms-p--contatti) .nav__burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; background:transparent}
:where(body.ms-p--contatti) .nav__burger span{display:block; width:24px; height:2px; background:var(--cream); margin:0 auto; transition:transform .35s var(--ease),opacity .25s,background .4s}
:where(body.ms-p--contatti) .nav.scrolled .nav__burger span{background:var(--ink)}
body.menu-open .nav__burger span{background:var(--cream)}
body.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open .nav{background:transparent!important; box-shadow:none!important}
:where(body.ms-p--contatti) .mnav{position:fixed; inset:0; z-index:95; background:var(--charcoal-2); display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:5rem clamp(28px,9vw,56px) 3rem; transform:translateX(100%); opacity:0; visibility:hidden; transition:transform .55s var(--ease),opacity .4s,visibility .55s}
body.menu-open .mnav{transform:none; opacity:1; visibility:visible}
:where(body.ms-p--contatti) .mnav a{font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--cream); padding:.32em 0; border-bottom:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between}
:where(body.ms-p--contatti) .mnav a.active{color:var(--red)}
:where(body.ms-p--contatti) .mnav a .ar{color:var(--red); font-size:1.2rem}
:where(body.ms-p--contatti) .mnav .btn{margin-top:1.6rem; font-family:var(--sans); font-size:1rem; justify-content:center; border:none}
:where(body.ms-p--contatti) .section{padding:clamp(72px,11vw,150px) 0; position:relative}
:where(body.ms-p--contatti) .section__head{max-width:760px; margin-bottom:clamp(40px,6vw,72px)}
:where(body.ms-p--contatti) .section__head h2{font-size:clamp(2rem,5.2vw,4rem); margin-top:.4em}
:where(body.ms-p--contatti) .section__head p{margin-top:1.1em; color:var(--muted); font-size:1.06rem; max-width:56ch}
:where(body.ms-p--contatti) .foot{background:var(--charcoal-2); color:#cfc8bc; padding:clamp(56px,8vw,90px) 0 40px}
:where(body.ms-p--contatti) .foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
:where(body.ms-p--contatti) .foot__logo{height:40px; margin-bottom:20px}
:where(body.ms-p--contatti) .foot h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#7d766a; margin:0 0 16px}
:where(body.ms-p--contatti) .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem}
:where(body.ms-p--contatti) .foot a:hover{color:var(--cream)}
:where(body.ms-p--contatti) .foot__sedi{font-size:.86rem; line-height:1.7}
:where(body.ms-p--contatti) .foot__sedi b{color:var(--cream); font-weight:600}
:where(body.ms-p--contatti) .foot__bar{border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.76rem; color:#7d766a}
:where(body.ms-p--contatti) .pre{position:fixed; inset:0; z-index:9999; background:var(--charcoal-2); display:grid; place-items:center; transition:transform 1s var(--ease) .2s}
:where(body.ms-p--contatti) .pre.done{transform:translateY(-100%)}
:where(body.ms-p--contatti) .pre img{height:52px; opacity:0; transform:translateY(10px); animation:preIn 1s var(--ease) forwards}
:where(body.ms-p--contatti) .subhero{position:relative; min-height:50vh; min-height:50svh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--charcoal-2)}
:where(body.ms-p--contatti) .subhero__bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
:where(body.ms-p--contatti) .subhero__bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.58) contrast(1.05) saturate(.92)}
:where(body.ms-p--contatti) .subhero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,16,14,.5) 0%,rgba(18,16,14,.15) 42%,rgba(18,16,14,.88) 100%)}
:where(body.ms-p--contatti) .subhero__inner{position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:clamp(96px,14vw,140px) clamp(20px,5vw,64px) clamp(40px,6vw,72px)}
:where(body.ms-p--contatti) .subhero h1{font-size:clamp(2.6rem,8vw,6rem); font-weight:500; letter-spacing:-.035em; margin-top:clamp(16px,2vw,24px)}
:where(body.ms-p--contatti) .subhero h1 em{font-style:italic; font-weight:400}
:where(body.ms-p--contatti) .subhero__sub{max-width:48ch; margin:clamp(18px,2.4vw,26px) 0 0; font-size:clamp(1rem,1.2vw,1.14rem); color:#d9d2c6; line-height:1.65}
:where(body.ms-p--contatti) .sedi{display:grid; grid-template-columns:repeat(2,1fr); gap:18px}
:where(body.ms-p--contatti) .sede{background:var(--paper); border:1px solid var(--border); border-radius:3px; padding:clamp(24px,3vw,34px); display:flex; flex-direction:column; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
:where(body.ms-p--contatti) .sede:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--contatti) .sede__tag{font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
:where(body.ms-p--contatti) .sede__tag.agri{color:#8A5A22} /* [D1.6] ocra #C8873A su bianco = 3,01:1; il bronzo dei badge di sistema regge 4,5 */
:where(body.ms-p--contatti) .sede__t{font-family:var(--serif); font-size:clamp(1.5rem,2.4vw,2rem); font-weight:600; margin:.3em 0 .1em}
:where(body.ms-p--contatti) .sede__addr{color:var(--muted); font-size:.95rem; margin-top:.5em}
:where(body.ms-p--contatti) .sede__meta{margin-top:1.3em; display:flex; flex-direction:column; gap:.55em; font-size:.9rem}
:where(body.ms-p--contatti) .sede__meta a:hover{color:var(--red)}
:where(body.ms-p--contatti) .sede__row{display:flex; align-items:flex-start; gap:.7em; color:var(--ink)}
:where(body.ms-p--contatti) .sede__ic{flex:none; width:20px; height:20px; margin-top:1px; color:var(--red)}
:where(body.ms-p--contatti) .sede__ic svg{width:100%; height:100%; display:block}
:where(body.ms-p--contatti) .sede__orari{color:var(--muted)}
:where(body.ms-p--contatti) .sede__orari > span{white-space:nowrap} /* [D1.6] «19–» / «23» spezzati a 390: si va a capo solo al punto */
:where(body.ms-p--contatti) .sede__cta{margin-top:auto; padding-top:1.6em}
:where(body.ms-p--contatti) .sede__cta .btn{border-color:var(--border); color:var(--ink); background:var(--cream-card)}
:where(body.ms-p--contatti) .sede__cta .btn:hover{background:var(--ink); color:var(--cream); border-color:var(--ink)}
:where(body.ms-p--contatti) .contact{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
:where(body.ms-p--contatti) .contact__grid{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(32px,5vw,72px); align-items:start}
:where(body.ms-p--contatti) .cform{display:grid; grid-template-columns:1fr 1fr; gap:16px}
:where(body.ms-p--contatti) .cform .full{grid-column:1 / -1}
:where(body.ms-p--contatti) .field{display:flex; flex-direction:column; gap:.5em}
:where(body.ms-p--contatti) .field label{font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--muted)}
:where(body.ms-p--contatti) .field input, :where(body.ms-p--contatti) .field select, :where(body.ms-p--contatti) .field textarea{width:100%; padding:.9em 1em; border:1px solid var(--border); background:var(--paper); color:var(--ink); border-radius:2px; font:inherit; transition:border-color .3s,box-shadow .3s}
:where(body.ms-p--contatti) .field input:focus, :where(body.ms-p--contatti) .field select:focus, :where(body.ms-p--contatti) .field textarea:focus{outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(212,17,25,.12)}
:where(body.ms-p--contatti) .field textarea{resize:vertical; min-height:130px}
:where(body.ms-p--contatti) .consent{grid-column:1 / -1; display:flex; align-items:flex-start; gap:.7em; font-size:.86rem; color:var(--muted); line-height:1.5}
:where(body.ms-p--contatti) .consent input{flex:none; width:18px; height:18px; margin-top:2px; accent-color:var(--red)}
:where(body.ms-p--contatti) .consent a{color:var(--red); text-decoration:underline; text-underline-offset:2px}
:where(body.ms-p--contatti) .cform__submit{grid-column:1 / -1; margin-top:4px}
:where(body.ms-p--contatti) .cform__submit .btn{width:100%; justify-content:center} /* [D1.8] tolto border:none: bordo come tutti */
:where(body.ms-p--contatti) .cinfo{border:1px solid var(--border); border-radius:3px; padding:clamp(24px,3vw,32px); background:var(--paper)}
:where(body.ms-p--contatti) .cinfo h3{font-family:var(--serif); font-size:1.5rem; margin-bottom:.3em}
:where(body.ms-p--contatti) .cinfo p{color:var(--muted); font-size:.95rem; margin:0 0 1.4em}
:where(body.ms-p--contatti) .cinfo__list{display:flex; flex-direction:column; gap:1em; margin:0; padding:0; list-style:none}
:where(body.ms-p--contatti) .cinfo__list li{display:flex; align-items:flex-start; gap:.8em}
:where(body.ms-p--contatti) .cinfo__ic{flex:none; width:22px; height:22px; margin-top:1px; color:var(--red)}
:where(body.ms-p--contatti) .cinfo__ic svg{width:100%; height:100%; display:block}
:where(body.ms-p--contatti) .cinfo__k{font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:600; display:block; margin-bottom:.15em}
:where(body.ms-p--contatti) .cinfo__v{font-size:.98rem; color:var(--ink)}
:where(body.ms-p--contatti) .cinfo__v a:hover{color:var(--red)}
:where(body.ms-p--contatti) .quick{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
:where(body.ms-p--contatti) .qcard{position:relative; overflow:hidden; border:1px solid var(--border); border-radius:3px; padding:clamp(26px,3vw,36px); background:var(--paper); display:flex; flex-direction:column; gap:.6em; transition:transform .6s var(--ease),box-shadow .6s var(--ease),background .4s}
:where(body.ms-p--contatti) .qcard:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
:where(body.ms-p--contatti) .qcard__ic{width:34px; height:34px; color:var(--red)}
:where(body.ms-p--contatti) .qcard__ic svg{width:100%; height:100%; display:block}
:where(body.ms-p--contatti) .qcard__t{font-family:var(--serif); font-size:1.35rem; font-weight:600}
:where(body.ms-p--contatti) .qcard__d{font-size:.9rem; color:var(--muted)}
:where(body.ms-p--contatti) .qcard__v{font-size:.98rem; font-weight:600; margin-top:.2em; overflow-wrap:anywhere} /* [D1.6] la freccia resta attaccata (nbsp nel markup), l'email va a capo dove serve */
:where(body.ms-p--contatti) .qcard__v .ar{color:var(--red); transition:transform .5s var(--ease); display:inline-block}
:where(body.ms-p--contatti) .qcard:hover .qcard__v .ar{transform:translateX(5px)}
:where(body.ms-p--contatti) .qcard--red{background:var(--red); color:#fff; border-color:var(--red)}
:where(body.ms-p--contatti) .qcard--red .qcard__ic, :where(body.ms-p--contatti) .qcard--red .qcard__d{color:rgba(255,255,255,.85)}
:where(body.ms-p--contatti) .qcard--red .qcard__v .ar{color:#fff}
:where(body.ms-p--contatti) .legal{background:var(--ink); color:var(--cream)}
:where(body.ms-p--contatti) .legal__row{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.8rem 2rem; padding:26px 0; font-size:.82rem; letter-spacing:.03em; text-align:center}
:where(body.ms-p--contatti) .legal__row span{display:inline-flex; align-items:center; gap:.6em; color:#cfc8bc}
:where(body.ms-p--contatti) .legal__row b{color:var(--cream); font-weight:600}
:where(body.ms-p--contatti) .legal .dot{width:5px; height:5px; border-radius:50%; background:var(--red)}
@media(max-width:900px){
  :where(body.ms-p--contatti) .nav__menu, :where(body.ms-p--contatti) .nav__cta .btn{display:none}
  :where(body.ms-p--contatti) .nav__burger{display:flex}
}
@media(max-width:820px){
  :where(body.ms-p--contatti) .foot__grid{grid-template-columns:1fr 1fr}
  :where(body.ms-p--contatti) .sedi{grid-template-columns:1fr}
  :where(body.ms-p--contatti) .contact__grid{grid-template-columns:minmax(0,1fr)} /* [D1.6] 1fr = minmax(auto,1fr): un testo lungo (email, oggetto) allargava la colonna oltre lo schermo */
  :where(body.ms-p--contatti) .quick{grid-template-columns:1fr}
}
@media(max-width:520px){
  :where(body.ms-p--contatti) .foot__grid{grid-template-columns:1fr}
  :where(body.ms-p--contatti) .cform{grid-template-columns:minmax(0,1fr)}
}
@keyframes preIn{
  :where(body.ms-p--contatti) to{opacity:1; transform:none}
}
@media(max-width:640px){
  :where(body.ms-p--contatti) .subhero{min-height:56svh}
  :where(body.ms-p--contatti) .subhero h1{font-size:clamp(2.6rem,13vw,4rem)}
  :where(body.ms-p--contatti) .section__head p{font-size:1rem}
  :where(body.ms-p--contatti) .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
  :where(body.ms-p--contatti) .legal__row{flex-direction:column; gap:.5rem; padding:24px 0}
}
@media(max-width:420px){
  :where(body.ms-p--contatti) .foot__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  :where(body.ms-p--contatti) *{animation:none!important; transition-duration:.01ms!important}
  :where(body.ms-p--contatti) [data-reveal], :where(body.ms-p--contatti) .mask>span{opacity:1!important; transform:none!important}
  :where(body.ms-p--contatti) .pre{display:none}
}

/* ===== [23/10/2026, a11y reperto 2 · WCAG 1.4.3] Velo sotto il menu in testata, sopra la foto =====
   Voci crema sulla foto dell'hero: misurate fino a 1,6-1,8:1 (contatti, ristoranti, agriturismo).
   Stesso velo della testata del negozio (coherence.css, SHOP coerenza hero/nav), un po' più denso
   nella fascia del testo. Solo con la nav trasparente (non .scrolled) e a menu mobile chiuso.
   :where() = specificità zero sul body, come il resto di questo file. */
:where(body[class*="ms-p--"]:not(.menu-open)) .nav:not(.scrolled)::before{content:""; position:absolute; inset:0 0 -48px 0; background:linear-gradient(180deg,rgba(18,16,14,.66) 0%,rgba(18,16,14,.58) 62%,rgba(18,16,14,0) 100%); z-index:-1; pointer-events:none}
/* Agriturismo e Camere colorano di rosso la voce attiva: sopra la foto, anche col velo, misurata 1,6:1.
   Lì resta crema (la sottolineatura ::after continua a segnarla); a testata piena (.scrolled) torna rossa. */
:where(body.ms-p--agriturismo, body.ms-p--camere) .nav:not(.scrolled) .nav__menu a.active{color:var(--cream)}
