/* Identità Civico 27 — questo foglio è l'ultimo owner di palette e proporzioni. */
:root{--black:#101010;--panel:#f7f5f1;--wine:#ad1027;--gold:#ad1027;--ivory:#fffdf9;--muted:#706d69;--line:rgba(255,253,249,.2)}

/* Testata: una misura stabile; la sola marca in transito può cambiare scala. */
.header,.header.solid{height:76px!important;padding:0 clamp(24px,4vw,64px)!important;background:rgba(255,253,249,.98)!important;color:var(--black)!important;border-bottom:1px solid rgba(16,16,16,.14)!important;backdrop-filter:blur(12px)}
.header::before{display:none!important}.header,.header.solid{grid-template-columns:1fr auto 1fr!important;align-items:center!important}.header nav,.header.solid nav{justify-self:center!important;align-self:center!important;gap:clamp(22px,2.3vw,38px)!important;margin:0!important;padding:0!important;position:static!important;translate:none!important}.header nav a,.header.solid nav a{padding:9px 0!important;font:700 10px/1 var(--sans)!important;letter-spacing:.13em!important;color:var(--black)!important;transition:border-color .2s ease!important}.header nav a::before{display:none!important}.header nav a:hover,.header nav a:focus-visible{border-color:var(--wine)!important}.header .head-book,.header.solid .head-book{justify-self:end!important;align-self:center!important;min-width:132px!important;height:40px!important;margin:0!important;padding:0 13px!important;position:static!important;translate:none!important;font:700 10px/1 var(--sans)!important;letter-spacing:.13em!important;color:var(--black)!important;border:1px solid rgba(16,16,16,.5)!important;transition:background .2s ease,color .2s ease!important}.header .head-book:hover{background:var(--black)!important;color:var(--ivory)!important}.header .head-book span{color:inherit!important}.header-place{display:none!important}.header .logo,.header.solid .logo{width:76px!important;transition:none!important}
.hero-brand-mark,.brand-in-header .hero-brand-mark{width:var(--logo-scroll-width)!important}.brand-in-header .hero-brand-mark{filter:none!important}

/* Nero, bianco caldo e rubino: il rosso è un accento, non una superficie dominante. */
.hero{background:var(--panel)!important}.hero-image,.hero-tile-main{background-image:url('assets/civico-27/facciata.jpg')!important;filter:saturate(.78) contrast(1.02) brightness(1.18)!important}.hero-tile-left{background-image:url('assets/civico-27/sala-riservata.jpg')!important;filter:saturate(.72) brightness(1.1)!important}.hero-tile-right{background-image:url('assets/civico-27/filetto.jpg')!important;filter:saturate(.72) brightness(1.08)!important}.hero-shade{background:linear-gradient(180deg,rgba(255,253,249,.58),rgba(255,253,249,.06) 46%,rgba(16,16,16,.38))!important}.hero-copy{background:rgba(255,253,249,.92)!important;border-color:rgba(16,16,16,.34)!important;color:var(--black)!important}.hero-copy .eyebrow,.hero-ritual,.hero-note{color:var(--black)!important}.hero-copy .eyebrow{border-bottom-color:rgba(16,16,16,.4)!important}.hero-copy .book{border-color:rgba(16,16,16,.5)!important}.hero-copy .book:hover{background:var(--black)!important;color:var(--ivory)!important}
main>.intro.section{background:var(--panel)!important;color:var(--black)!important}.intro-logo{background:#e9e5dd!important}.intro-logo .intro-photo{filter:saturate(.76) brightness(1.05)!important}.intro-logo::after{background:linear-gradient(90deg,transparent,rgba(16,16,16,.12))!important}.intro-copy::before{color:var(--wine)!important}.intro-copy h2,.intro-copy>p:not(.eyebrow),.intro-copy .text-link{color:var(--black)!important}.intro-copy h2 em,.intro-copy .eyebrow{color:var(--wine)!important}
.photos{background:var(--black)!important;color:var(--ivory)!important}.menu{background:var(--wine)!important;color:var(--ivory)!important}.menu-trigger>span,.menu-trigger b{color:var(--ivory)!important}.menu-trigger p,.menu-copy>p:not(.eyebrow),.menu-info span,.menu-info small{color:#ffe8ec!important}.location{background:var(--panel)!important;color:var(--black)!important}.location .eyebrow{color:var(--wine)!important}.location .location-copy a,.location .text-link{color:var(--black)!important}.location .map-wrap{border-color:rgba(16,16,16,.18)!important}.location .map-wrap:before{content:'Civico 27 Novara'!important;background:var(--ivory)!important;color:var(--black)!important}
.menu .eyebrow{color:var(--ivory)!important}.menu h2 em{color:var(--black)!important}.menu-info span,.menu-info small,.menu-card-copy li span,.menu-card-copy .menu-card-note{color:var(--ivory)!important}.menu-list .menu-trigger b{color:var(--ivory)!important;border-color:rgba(255,253,249,.7)!important}.menu-list .menu-trigger:hover h3,.menu-list .menu-trigger:focus-visible h3{color:var(--ivory)!important}.menu-list .menu-trigger:hover b,.menu-list .menu-trigger:focus-visible b{background:var(--ivory)!important;color:var(--black)!important;border-color:var(--ivory)!important}.menu-card,.menu-card-copy{background:var(--wine)!important;color:var(--ivory)!important}.menu-card-close{background:var(--black)!important;color:var(--ivory)!important}.menu-card-copy .eyebrow{color:var(--ivory)!important}.menu-card-copy .book{border-color:rgba(255,253,249,.72)!important}.menu-card-copy .menu-card-note{border-top-color:rgba(255,253,249,.28)!important}

/* Recensioni: due livelli leggibili, senza elementi che si sovrappongono. */
main>.reviews.section{display:grid!important;grid-template-columns:minmax(210px,.58fr) minmax(0,1.42fr)!important;grid-template-rows:auto auto!important;align-items:start!important;gap:0 clamp(42px,7vw,104px)!important;height:auto!important;min-height:0!important;max-height:none!important;padding:clamp(68px,8vw,118px) clamp(28px,8vw,130px)!important;background:var(--black)!important;color:var(--ivory)!important;overflow:visible!important}.reviews-heading{grid-row:span 2!important;padding-top:3px}.reviews-heading h2{margin:0!important;font-size:clamp(64px,7vw,108px)!important;line-height:.76!important}.reviews-heading h2 em{color:var(--wine)!important}.review-feature{padding:24px 0 30px!important;border-top:1px solid rgba(255,253,249,.24)!important;border-bottom:1px solid rgba(255,253,249,.24)!important}.review-score{display:flex!important;flex-wrap:wrap!important;align-items:baseline!important;gap:10px 14px!important}.review-score strong{font:500 clamp(52px,5vw,70px)/.8 var(--serif)!important}.review-score span{color:#e64157!important;letter-spacing:2px!important;font-size:13px!important}.review-score p{margin:0!important;color:#bcb8b2!important;font-size:10px!important}.review-feature blockquote{max-width:19ch!important;margin:clamp(28px,4vw,52px) 0!important;font:400 clamp(33px,3.7vw,58px)/.96 var(--serif)!important;letter-spacing:-.055em!important}.review-feature-foot{display:flex!important;align-items:end!important;justify-content:space-between!important;gap:20px!important}.review-feature-foot>span,.review-rail footer{color:#bcb8b2!important;font:10px/1 var(--sans)!important;letter-spacing:.12em!important;text-transform:uppercase!important}.review-rail{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;padding-top:14px!important;border:0!important}.review-rail article,.review-rail article:first-child{min-height:176px!important;padding:24px!important;border:1px solid rgba(255,253,249,.2)!important;background:rgba(255,255,255,.035)!important}.review-rail article>span{color:#e64157!important;font-size:10px!important;letter-spacing:.1em!important}.review-rail p{margin:19px 0 auto!important;font-size:clamp(20px,1.8vw,28px)!important}.review-rail footer{padding:0!important;background:transparent!important}

/* Footer raccolto, allineato e coerente con il resto del sito. */
footer{min-height:0!important;padding:28px clamp(24px,4vw,64px)!important;grid-template-columns:112px 1fr auto!important;align-items:center!important;gap:28px!important;background:var(--ivory)!important;color:var(--black)!important;border-top:1px solid rgba(16,16,16,.14)!important}footer img{width:82px!important}footer div{gap:16px!important;font-size:9px!important}footer div a{border-bottom-color:var(--wine)!important}footer p{color:var(--muted)!important;font-size:8px!important}

@media(max-width:760px){.header,.header.solid{height:68px!important;padding:0 20px!important}.header nav,.header .head-book{display:none!important}.header .logo{width:68px!important}.menu-toggle{color:var(--black)!important}.header.solid .menu-toggle{color:var(--black)!important}.mobile-menu{inset:68px 0 auto!important;background:var(--ivory)!important;color:var(--black)!important;border-bottom-color:var(--wine)!important}
main>.reviews.section{grid-template-columns:1fr!important;grid-template-rows:auto!important;gap:34px!important;padding:66px 20px!important}.reviews-heading{grid-row:auto!important}.reviews-heading h2{font-size:clamp(66px,19vw,94px)!important}.review-feature{padding:20px 0 27px!important}.review-feature blockquote{font-size:clamp(36px,10.5vw,52px)!important;margin:36px 0!important}.review-feature-foot{align-items:flex-start!important;flex-direction:column!important;gap:21px!important}.review-rail{grid-template-columns:1fr!important;gap:10px!important}.review-rail article,.review-rail article:first-child{min-height:0!important;padding:22px!important}footer{padding:26px 20px!important;grid-template-columns:1fr!important;gap:18px!important;align-items:start!important}footer img{width:74px!important}footer p{margin-top:4px!important}}

@media(prefers-reduced-motion:reduce){.header,.header.solid,.header nav a,.header .head-book{transition:none!important}}
/* Civico 27 — motion-only refinement. Layout, contenuti, asset e palette restano invariati. */
@keyframes civico-hero-settle{0%{opacity:.58;transform:scale(1.065) translate3d(.4%,.24%,0)}100%{opacity:1;transform:scale(1.032) translate3d(.12%,.08%,0)}}
@keyframes civico-hero-breathe{0%{transform:scale(1.032) translate3d(.12%,.08%,0)}50%{transform:scale(1.052) translate3d(-.18%,-.1%,0)}100%{transform:scale(1.074) translate3d(-.52%,-.3%,0)}}
@keyframes civico-copy-wipe{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translate3d(-18px,0,0)}58%{opacity:1;clip-path:inset(0 0 0 0);transform:translate3d(2px,0,0)}100%{opacity:1;clip-path:inset(0 0 0 0);transform:none}}
@keyframes civico-copy-rule{0%{opacity:0;clip-path:inset(0 100% 0 0)}100%{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes civico-detail-settle{0%{opacity:0;transform:translate3d(0,10px,0)}100%{opacity:1;transform:none}}
@keyframes civico-reveal-mask{0%{clip-path:inset(0 0 100% 0);transform:translate3d(0,18px,0)}62%{clip-path:inset(0 0 0 0);transform:translate3d(0,-2px,0)}100%{clip-path:inset(0 0 0 0);transform:none}}
@keyframes civico-photo-pan{0%{transform:scale(1.018) translate3d(.2%,0,0)}100%{transform:scale(1.035) translate3d(-.7%,-.25%,0)}}
@keyframes civico-lightbox-in{0%{opacity:0;transform:translate3d(0,12px,0) scale(.985)}100%{opacity:1;transform:none}}

/* La hero resta quella approvata: la sua unica modifica è un respiro lento, non uno zoom aggressivo. */
.ready .hero-image{animation:civico-hero-settle 1.8s cubic-bezier(.16,1,.3,1) both,civico-hero-breathe 22s cubic-bezier(.22,.61,.36,1) 1.8s infinite alternate!important;transform-origin:50% 55%;will-change:transform,opacity}
.ready .hero-copy{animation:civico-copy-wipe 1.35s cubic-bezier(.16,1,.3,1) .16s both!important;will-change:clip-path,transform}
.ready .hero-copy .eyebrow{animation:civico-copy-rule .72s cubic-bezier(.16,1,.3,1) .27s both!important}
.ready .hero-copy .hero-text{animation:civico-copy-rule .82s cubic-bezier(.16,1,.3,1) .39s both!important}
.ready .hero-copy .book{animation:civico-detail-settle .72s cubic-bezier(.16,1,.3,1) .56s both!important}
.ready .hero-ritual,.ready .hero-note{animation:civico-detail-settle .72s cubic-bezier(.16,1,.3,1) .7s both!important}

/* Le sezioni entrano per maschera, non come una fila di fade/translateY identici. */
.motion-pending.reveal{opacity:1!important;clip-path:inset(0 0 0 0)!important;transform:none!important;transition:none!important}
.reveal.in{animation:civico-reveal-mask 1.2s cubic-bezier(.16,1,.3,1) both!important;animation-delay:calc(var(--i,0) * 120ms)!important;will-change:clip-path,transform}
.photo-card img{transition:transform 1.45s cubic-bezier(.16,1,.3,1),filter .8s ease!important}
.photo-card:hover img,.photo-card:focus-within img{animation:civico-photo-pan 1.25s cubic-bezier(.16,1,.3,1) both!important}
.menu-list .menu-trigger h3{transition:transform .58s cubic-bezier(.16,1,.3,1),clip-path .58s cubic-bezier(.16,1,.3,1)!important}
.menu-list .menu-trigger:hover h3,.menu-list .menu-trigger:focus-visible h3{transform:translate3d(10px,0,0)!important;clip-path:inset(0 0 0 0)!important}
.menu-list .menu-trigger b{transition:transform .58s cubic-bezier(.16,1,.3,1),background .38s ease,color .38s ease,border-color .38s ease!important}
.menu-list .menu-trigger:hover b,.menu-list .menu-trigger:focus-visible b{transform:translate3d(-4px,0,0)!important}
.lightbox[open]{animation:civico-lightbox-in .62s cubic-bezier(.16,1,.3,1) both!important}

@media(max-width:760px){
  .ready .hero-image{animation-duration:1.6s,24s!important;transform-origin:50% 48%!important}
  .ready .hero-copy{animation-duration:1.18s!important}
  .reveal.in{animation-duration:1.05s!important}
  .menu-list .menu-trigger:hover h3,.menu-list .menu-trigger:focus-visible h3{transform:translate3d(6px,0,0)!important}
}
@media(prefers-reduced-motion:reduce){
  .ready .hero-image,.ready .hero-copy,.ready .hero-copy .eyebrow,.ready .hero-copy .hero-text,.ready .hero-copy .book,.ready .hero-ritual,.ready .hero-note,.reveal.in,.photo-card:hover img,.photo-card:focus-within img,.lightbox[open]{animation:none!important}
  .motion-pending.reveal,.reveal.in{opacity:1!important;clip-path:none!important;transform:none!important;transition:none!important}
}

/* Final motion pass: una regia unica, lenta quanto basta e senza movimento continuo. */
:root{--civico-ease:cubic-bezier(.16,1,.3,1);--civico-ink:#101010;--civico-paper:#fffdf9}

.hero{isolation:isolate;overflow:hidden!important;background:#0e0d0c!important}
.hero .hero-tile{display:none!important}
.hero-video{position:absolute!important;z-index:-3!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 50%!important;left:0!important;right:0!important;top:0!important;bottom:0!important;clip-path:none!important;background:#0e0d0c!important;filter:saturate(.78) contrast(1.08) brightness(.66)!important;transform:scale(1.035)!important;transform-origin:50% 50%;animation:civico-video-arrival 1.35s var(--civico-ease) both!important}
.hero-video.is-fallback{background:url('assets/civico-27/facciata.jpg') 50% 50%/cover no-repeat!important}
.ready .hero-video{animation:civico-video-arrival 1.35s var(--civico-ease) both!important}
.hero-shade{z-index:-2!important;inset:0!important;left:0!important;background:linear-gradient(180deg,rgba(8,6,5,.3) 0%,rgba(8,6,5,.04) 36%,rgba(8,6,5,.24) 63%,rgba(8,6,5,.84) 100%),linear-gradient(90deg,rgba(8,6,5,.48),rgba(8,6,5,.04) 68%,rgba(8,6,5,.24))!important}
.hero::before{z-index:-1!important;background:radial-gradient(circle at 50% 42%,transparent 0 31%,rgba(5,4,3,.2) 100%)!important;pointer-events:none}
.hero::after{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.13;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.26'/%3E%3C/svg%3E")!important}
.hero-copy{z-index:2!important}

@keyframes civico-video-arrival{0%{opacity:0;transform:scale(1.075);filter:saturate(.45) contrast(1.14) brightness(.46)}100%{opacity:1;transform:scale(1.035);filter:saturate(.78) contrast(1.08) brightness(.66)}}
@keyframes civico-luxury-reveal{0%{opacity:0;transform:translate3d(0,26px,0);filter:blur(7px)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes civico-dialog-reveal{0%{opacity:0;transform:translate3d(0,18px,0) scale(.985);filter:blur(4px)}100%{opacity:1;transform:none;filter:blur(0)}}

.motion-pending.reveal{opacity:0!important;transform:translate3d(0,26px,0)!important;filter:blur(7px)!important;clip-path:none!important;animation:none!important;transition:none!important}
.reveal.in{animation:civico-luxury-reveal .86s var(--civico-ease) both!important;animation-delay:calc(var(--i,0) * 90ms)!important;will-change:opacity,transform,filter}
.reveal.in.intro-copy{animation-delay:.12s!important}.reveal.in.section-title{animation-delay:.04s!important}.reveal.in.location-copy{animation-delay:.08s!important}.reveal.in.map-wrap{animation-delay:.2s!important}

.header nav a{position:relative;border-bottom:0!important;transition:color .28s var(--civico-ease)!important}
.header nav a::after{content:'';position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--wine);transform:scaleX(0);transform-origin:right center;transition:transform .42s var(--civico-ease)!important}
.header nav a:hover::after,.header nav a:focus-visible::after{transform:scaleX(1);transform-origin:left center}
.book,.text-link,.header .head-book{transition:color .32s var(--civico-ease),background-color .32s var(--civico-ease),border-color .32s var(--civico-ease),transform .32s var(--civico-ease)!important}
.book span,.text-link span{display:inline-block;transition:transform .32s var(--civico-ease),color .32s var(--civico-ease)!important}
.book:hover span,.book:focus-visible span,.text-link:hover span,.text-link:focus-visible span{transform:translate3d(4px,-3px,0)}
.book:active,.header .head-book:active,.menu-trigger:active{transform:scale(.98)!important}
.book:focus-visible,.text-link:focus-visible,.header nav a:focus-visible,.menu-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:5px}

.photo-card::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 48%,rgba(8,6,5,.68));opacity:.58;transition:opacity .5s var(--civico-ease)!important}
.photo-card span{z-index:1;transform:translate3d(0,5px,0);opacity:.78;transition:opacity .42s var(--civico-ease),transform .42s var(--civico-ease)!important}
.photo-card:hover::after,.photo-card:focus-visible::after{opacity:.82}
.photo-card:hover span,.photo-card:focus-visible span{opacity:1;transform:none}
.photo-card img{transition:transform .95s var(--civico-ease),filter .5s var(--civico-ease)!important}
.photo-card:hover img,.photo-card:focus-visible img{transform:scale(1.055)!important;filter:saturate(1.04) contrast(1.02)!important}

.menu-list .menu-trigger h3{transition:transform .5s var(--civico-ease),color .32s var(--civico-ease)!important}
.menu-list .menu-trigger b{transition:transform .5s var(--civico-ease),background-color .32s var(--civico-ease),color .32s var(--civico-ease),border-color .32s var(--civico-ease)!important}
.menu-list .menu-trigger:hover h3,.menu-list .menu-trigger:focus-visible h3{transform:translate3d(12px,0,0)!important}
.menu-list .menu-trigger:hover b,.menu-list .menu-trigger:focus-visible b{transform:rotate(90deg) scale(1.06)!important}

.menu-card[open],.lightbox[open]{animation:civico-dialog-reveal .62s var(--civico-ease) both!important}

@media(max-width:760px){
  .hero-video{object-position:55% 50%!important;filter:saturate(.7) contrast(1.08) brightness(.58)!important;transform:scale(1.045)!important}
  @keyframes civico-video-arrival-mobile{0%{opacity:0;transform:scale(1.09);filter:saturate(.4) contrast(1.12) brightness(.42)}100%{opacity:1;transform:scale(1.045);filter:saturate(.7) contrast(1.08) brightness(.58)}}
  .ready .hero-video{animation-name:civico-video-arrival-mobile!important}
  .mobile-menu{opacity:0!important;visibility:hidden!important;transform:translate3d(0,-12px,0)!important;pointer-events:none!important;transition:opacity .38s var(--civico-ease),transform .46s var(--civico-ease),visibility 0s linear .46s!important}
  .mobile-menu.is-open{opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important;transition-delay:0s!important}
  .photo-card:hover img,.photo-card:focus-visible img{transform:scale(1.035)!important}
  .menu-list .menu-trigger:hover h3,.menu-list .menu-trigger:focus-visible h3{transform:translate3d(7px,0,0)!important}
}

@media(prefers-reduced-motion:reduce){
  .hero-video{animation:none!important;transform:none!important;filter:saturate(.7) contrast(1.05) brightness(.66)!important}
  .hero::after{display:none!important}
  .motion-pending.reveal,.reveal.in{opacity:1!important;filter:none!important;transform:none!important;animation:none!important;transition:none!important}
  .header nav a::after,.book,.book span,.text-link span,.photo-card::after,.photo-card span,.photo-card img,.menu-list .menu-trigger h3,.menu-list .menu-trigger b,.menu-card[open],.lightbox[open]{transition:none!important;animation:none!important}
  .mobile-menu{opacity:1!important;visibility:visible!important;transform:none!important;transition:none!important}
}

/* Correzione hero: il contenuto deve stare sopra al video, senza filtro nero né motion decorativa. */
.header,.header.solid{background:linear-gradient(180deg,rgba(7,6,5,.9),rgba(7,6,5,.48) 72%,rgba(7,6,5,0))!important;color:var(--ivory)!important;border-bottom-color:rgba(255,253,249,.18)!important}
.header.solid{background:rgba(7,6,5,.92)!important;backdrop-filter:blur(12px)!important}
.header nav a,.header .head-book,.header.solid nav a,.header.solid .head-book{color:var(--ivory)!important}
.header .head-book,.header.solid .head-book{border-color:rgba(255,253,249,.62)!important}
.header .head-book:hover,.header.solid .head-book:hover{background:var(--ivory)!important;color:var(--black)!important}
.header nav a::after{background:var(--gold)!important}
.header .logo img,.hero-brand-mark,.brand-in-header .hero-brand-mark{filter:none!important}

.hero{background:#0e0d0c!important;isolation:isolate!important}
.hero-video,.hero-image.hero-video.hero-tile-main{z-index:0!important;opacity:1!important;filter:saturate(.98) contrast(1.04) brightness(1.02)!important;transform:none!important;animation:none!important}
.hero-shade{z-index:1!important;background:linear-gradient(180deg,rgba(8,6,5,.07),rgba(8,6,5,.01) 42%,rgba(8,6,5,.28) 100%),linear-gradient(90deg,rgba(8,6,5,.14),rgba(8,6,5,.01) 72%)!important}
.hero::before,.hero::after{display:none!important}
.hero-copy{z-index:3!important;background:rgba(8,6,5,.58)!important;border:1px solid rgba(255,253,249,.32)!important;color:var(--ivory)!important;box-shadow:0 18px 56px rgba(0,0,0,.2)!important;backdrop-filter:blur(5px)!important}
.hero-copy .eyebrow,.hero-copy .hero-text,.hero-ritual,.hero-note{color:var(--ivory)!important}
.hero-copy .eyebrow{border-bottom-color:rgba(255,253,249,.46)!important}
.hero-copy .book{color:var(--ivory)!important;border-color:rgba(255,253,249,.64)!important;background:transparent!important}
.hero-copy .book:hover,.hero-copy .book:focus-visible{background:var(--ivory)!important;color:var(--black)!important}
.hero-copy .hero-enter,.ready .hero-copy .hero-enter{opacity:1!important;transform:none!important;transition:none!important}
.hero-copy,.ready .hero-copy,.ready .hero-copy .eyebrow,.ready .hero-copy .hero-text,.ready .hero-copy .book,.ready .hero-ritual,.ready .hero-note{animation:none!important;clip-path:none!important}
.hero-brand-mark,.brand-entering .hero-brand-mark,.brand-entry-hero .hero-brand-mark,.brand-entry-header .hero-brand-mark{opacity:1!important;animation:none!important;clip-path:none!important}
.menu-open .hero-brand-mark{opacity:0!important;visibility:hidden!important}

.reveal,.motion-pending.reveal,.reveal.in{opacity:1!important;filter:none!important;transform:none!important;clip-path:none!important;animation:none!important;transition:none!important}

@media(max-width:760px){
  .header,.header.solid{background:rgba(7,6,5,.78)!important;color:var(--ivory)!important}
  .header .menu-toggle,.header.solid .menu-toggle{color:var(--ivory)!important}
  .mobile-menu{background:rgba(7,6,5,.98)!important;color:var(--ivory)!important;border-bottom-color:var(--gold)!important;opacity:1!important;visibility:visible!important;transform:none!important;transition:none!important}
  .hero-video,.hero-image.hero-video.hero-tile-main{object-position:55% 50%!important;filter:saturate(.94) contrast(1.04) brightness(.94)!important}
  .hero-copy{background:rgba(8,6,5,.64)!important}
}

/* Hero caption: il logo è il soggetto centrale; il testo vive nella fascia bassa a sinistra. */
.hero-copy{
  left:clamp(28px,2.3vw,38px)!important;
  right:auto!important;
  top:auto!important;
  bottom:clamp(28px,3.5vw,42px)!important;
  width:min(500px,34vw)!important;
  max-width:none!important;
  padding:0 0 0 18px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  text-align:left!important;
  background:transparent!important;
  border:0!important;
  border-left:1px solid rgba(255,253,249,.62)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  transform:none!important;
}
.hero-copy::before{display:none!important}
.hero-copy .eyebrow{margin:0 0 13px!important;padding:0!important;border:0!important;color:var(--ivory)!important;font-size:9px!important;letter-spacing:.2em!important;text-shadow:0 2px 14px rgba(0,0,0,.55)}
.hero-copy .hero-text{max-width:14ch!important;margin:0 0 18px!important;color:var(--ivory)!important;font-size:clamp(24px,2.2vw,34px)!important;line-height:1.02!important;text-align:left!important;text-wrap:balance;text-shadow:0 3px 22px rgba(0,0,0,.62)}
.hero-copy .book{width:190px!important;min-width:0!important;align-self:flex-start!important;padding:9px 0!important;background:transparent!important;border:0!important;border-top:1px solid rgba(255,253,249,.72)!important;border-bottom:1px solid rgba(255,253,249,.72)!important;color:var(--ivory)!important;font-size:9px!important;letter-spacing:.16em!important}
.hero-copy .book:hover,.hero-copy .book:focus-visible{background:transparent!important;color:var(--ivory)!important}
.hero-ritual,.hero-note{display:none!important}

@media(max-width:760px){
  .hero-copy{left:16px!important;right:auto!important;top:auto!important;bottom:28px!important;width:min(220px,calc(100vw - 40px))!important;padding-left:12px!important;background:transparent!important;transform:none!important}
  .hero-copy .hero-text{max-width:13ch!important;font-size:clamp(21px,5.6vw,27px)!important;margin-bottom:16px!important}
  .hero-copy .book{width:185px!important;font-size:8px!important}
}

/* Scroll choreography: capitoli editoriali, profondità minima e testo che prende fuoco. */
:root{--civico-motion-ease:cubic-bezier(.16,1,.3,1);--civico-motion-soft:cubic-bezier(.22,.61,.36,1);--civico-hero-shift:0px}

/* Il video accompagna il primo gesto senza diventare un effetto continuo. */
html.motion-ready .hero-video{transform:translate3d(0,var(--civico-hero-shift),0) scale(1.012)!important;transition:transform .18s linear!important}

/* Stato base: senza JS il contenuto resta comunque immediatamente leggibile. */
html.motion-ready .reveal{opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important;transition:none!important}
html.motion-ready .reveal.motion-pending{
  opacity:0!important;
  transform:translate3d(0,34px,0)!important;
  clip-path:inset(0 0 100% 0)!important;
  filter:blur(4px)!important;
  transition:opacity .56s var(--civico-motion-ease),transform .78s var(--civico-motion-ease),clip-path .78s var(--civico-motion-ease),filter .62s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--i,0) * 100ms)!important;
}
html.motion-ready .reveal.in{
  opacity:1!important;
  transform:none!important;
  clip-path:inset(0 0 0 0)!important;
  filter:none!important;
  transition:opacity .46s var(--civico-motion-ease),transform .72s var(--civico-motion-ease),clip-path .72s var(--civico-motion-ease),filter .5s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--i,0) * 100ms)!important;
}

/* Ogni capitolo entra dalla direzione del suo impaginato. */
html.motion-ready .intro-copy.motion-pending,html.motion-ready .location-copy.motion-pending{transform:translate3d(42px,0,0)!important;clip-path:inset(0 0 0 100%)!important}
html.motion-ready .menu-copy.motion-pending,html.motion-ready .reviews-heading.motion-pending{transform:translate3d(-42px,0,0)!important;clip-path:inset(0 100% 0 0)!important}
html.motion-ready .intro-logo.motion-pending{transform:translate3d(0,24px,0) scale(.94)!important;clip-path:inset(0 0 12% 0)!important;filter:none!important}
html.motion-ready .section-title.motion-pending{transform:translate3d(0,28px,0)!important;clip-path:inset(0 0 100% 0)!important}
html.motion-ready .photo-card.motion-pending{transform:translate3d(0,34px,0) scale(.965)!important;clip-path:inset(0 0 14% 0)!important;filter:none!important}
html.motion-ready .review-feature.motion-pending{transform:translate3d(42px,0,0)!important;clip-path:inset(0 0 0 14%)!important}
html.motion-ready .review-rail article.motion-pending{transform:translate3d(0,30px,0) scale(.985)!important;clip-path:inset(0 0 12% 0)!important}
html.motion-ready .map-wrap.motion-pending{transform:translate3d(0,28px,0) scale(.97)!important;clip-path:inset(0 0 10% 0)!important}

/* La tipografia completa il gesto con un ritardo breve rispetto alla superficie. */
html.motion-ready .reveal.motion-pending h2,html.motion-ready .reveal.motion-pending h3,html.motion-ready .reveal.motion-pending blockquote,html.motion-ready .reveal.motion-pending>p:not(.eyebrow),html.motion-ready .reveal.motion-pending address,html.motion-ready .reveal.motion-pending .review-score,html.motion-ready .reveal.motion-pending .review-feature-foot,html.motion-ready .reveal.motion-pending .book{
  opacity:0!important;
  transform:translate3d(0,20px,0)!important;
  clip-path:inset(0 0 100% 0)!important;
  filter:blur(3px)!important;
  transition:opacity .46s var(--civico-motion-ease),transform .68s var(--civico-motion-ease),clip-path .68s var(--civico-motion-ease),filter .5s var(--civico-motion-ease)!important;
}
html.motion-ready .reveal.in h2,html.motion-ready .reveal.in h3,html.motion-ready .reveal.in blockquote,html.motion-ready .reveal.in>p:not(.eyebrow),html.motion-ready .reveal.in address,html.motion-ready .reveal.in .review-score,html.motion-ready .reveal.in .review-feature-foot,html.motion-ready .reveal.in .book{
  opacity:1!important;
  transform:none!important;
  clip-path:inset(0 0 0 0)!important;
  filter:none!important;
  transition-delay:calc(var(--i,0) * 100ms + 110ms)!important;
}

/* Il parallasse è un respiro ottico: poche superfici, pochi pixel, nessuna deriva. */
html.motion-ready .intro-logo.in .intro-photo{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.045)!important;transition:transform .18s linear!important}
html.motion-ready .photo-card.in img{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.045)!important;transition:transform .18s linear,filter .5s var(--civico-motion-soft)!important}
html.motion-ready .photo-card.in:hover img,html.motion-ready .photo-card.in:focus-within img{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.06)!important}
html.motion-ready .review-feature.in blockquote{transform:translate3d(0,var(--civico-scroll-shift),0)!important;transition:transform .18s linear!important}

@media(max-width:760px){
  html.motion-ready .reveal.motion-pending{transform:translate3d(0,24px,0)!important}
  html.motion-ready .intro-copy.motion-pending,html.motion-ready .location-copy.motion-pending{transform:translate3d(24px,0,0)!important}
  html.motion-ready .menu-copy.motion-pending,html.motion-ready .reviews-heading.motion-pending{transform:translate3d(-24px,0,0)!important}
  html.motion-ready .intro-logo.motion-pending,html.motion-ready .photo-card.motion-pending,html.motion-ready .review-rail article.motion-pending,html.motion-ready .map-wrap.motion-pending{transform:translate3d(0,22px,0) scale(.98)!important}
  html.motion-ready .review-feature.motion-pending{transform:translate3d(24px,0,0)!important}
  html.motion-ready .intro-logo.in .intro-photo,html.motion-ready .photo-card.in img{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.025)!important}
  html.motion-ready .photo-card.in:hover img,html.motion-ready .photo-card.in:focus-within img{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.04)!important}
}

@media(prefers-reduced-motion:reduce){
  html.motion-ready .reveal,html.motion-ready .reveal.motion-pending,html.motion-ready .reveal.in,html.motion-ready .reveal.motion-pending h2,html.motion-ready .reveal.motion-pending h3,html.motion-ready .reveal.motion-pending blockquote,html.motion-ready .reveal.motion-pending>p:not(.eyebrow),html.motion-ready .reveal.motion-pending address,html.motion-ready .reveal.motion-pending .review-score,html.motion-ready .reveal.motion-pending .review-feature-foot,html.motion-ready .reveal.motion-pending .book,html.motion-ready .reveal.in h2,html.motion-ready .reveal.in h3,html.motion-ready .reveal.in blockquote,html.motion-ready .reveal.in>p:not(.eyebrow),html.motion-ready .reveal.in address,html.motion-ready .reveal.in .review-score,html.motion-ready .reveal.in .review-feature-foot,html.motion-ready .reveal.in .book{opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important;transition:none!important}
  html.motion-ready .hero-video,html.motion-ready .intro-logo.in .intro-photo,html.motion-ready .photo-card.in img,html.motion-ready .review-feature.in blockquote{transform:none!important;transition:none!important}
}

/* Premium scroll pass: il crop guida lo sguardo, ma il testo non sparisce mai durante il caricamento. */
html.motion-ready .reveal.motion-pending{
  opacity:1!important;
  transform:translate3d(0,18px,0)!important;
  clip-path:inset(0 0 4% 0)!important;
  filter:none!important;
  transition:transform .92s var(--civico-motion-ease),clip-path 1.02s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--i,0) * 80ms)!important;
}
html.motion-ready .reveal.in{
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
  filter:none!important;
  transition:transform .88s var(--civico-motion-ease),clip-path .96s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--i,0) * 80ms)!important;
}
html.motion-ready .intro-copy.motion-pending,html.motion-ready .location-copy.motion-pending{transform:translate3d(24px,0,0)!important;clip-path:inset(0 0 0 5%)!important}
html.motion-ready .menu-copy.motion-pending,html.motion-ready .reviews-heading.motion-pending{transform:translate3d(-24px,0,0)!important;clip-path:inset(0 5% 0 0)!important}
html.motion-ready .intro-logo.motion-pending{transform:translate3d(0,14px,0) scale(.98)!important;clip-path:inset(0 0 4% 0)!important}
html.motion-ready .section-title.motion-pending{transform:translate3d(0,16px,0)!important;clip-path:inset(0 0 5% 0)!important}
html.motion-ready .photo-card.motion-pending{transform:translate3d(0,18px,0) scale(.99)!important;clip-path:inset(0 0 4% 0)!important}
html.motion-ready .review-feature.motion-pending{transform:translate3d(24px,0,0)!important;clip-path:inset(0 0 0 5%)!important}
html.motion-ready .review-rail article.motion-pending,html.motion-ready .map-wrap.motion-pending{transform:translate3d(0,16px,0) scale(.995)!important;clip-path:inset(0 0 4% 0)!important}

/* La parola segue la superficie con un secondo gesto breve, senza blur o dissolvenze nere. */
html.motion-ready .reveal.motion-pending :is(h2,h3,p,blockquote,address,.review-score,.review-feature-foot,.book,.eyebrow){
  opacity:1!important;
  transform:translate3d(0,9px,0)!important;
  clip-path:inset(0 0 6% 0)!important;
  filter:none!important;
  transition:transform .72s var(--civico-motion-ease),clip-path .78s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--i,0) * 80ms + 90ms)!important;
}
html.motion-ready .reveal.in :is(h2,h3,p,blockquote,address,.review-score,.review-feature-foot,.book,.eyebrow){
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
  filter:none!important;
  transition:transform .72s var(--civico-motion-ease),clip-path .78s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--i,0) * 80ms + 90ms)!important;
}

/* Icone reali al posto dei glifi: stesso gesto diagonale, peso sottile e reazione discreta. */
.arrow-icon{
  width:15px!important;
  height:15px!important;
  display:inline-block!important;
  flex:0 0 auto!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.35!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vertical-align:-.18em!important;
  transition:transform .42s var(--civico-motion-ease)!important;
}
.arrow-down{vertical-align:-.28em!important}
.book:hover .arrow-icon,.book:focus-visible .arrow-icon,.text-link:hover .arrow-icon,.text-link:focus-visible .arrow-icon,footer a:hover .arrow-icon,footer a:focus-visible .arrow-icon{transform:translate3d(2px,-2px,0)!important}
.arrow-down:hover,.text-link:hover .arrow-down,.text-link:focus-visible .arrow-down{transform:translate3d(0,2px,0)!important}
footer .arrow-icon{width:12px!important;height:12px!important;vertical-align:-.2em!important}

@media(max-width:760px){
  html.motion-ready .reveal.motion-pending{transform:translate3d(0,14px,0)!important}
  html.motion-ready .intro-copy.motion-pending,html.motion-ready .location-copy.motion-pending{transform:translate3d(16px,0,0)!important}
  html.motion-ready .menu-copy.motion-pending,html.motion-ready .reviews-heading.motion-pending{transform:translate3d(-16px,0,0)!important}
  html.motion-ready .intro-logo.motion-pending,html.motion-ready .photo-card.motion-pending,html.motion-ready .review-rail article.motion-pending,html.motion-ready .map-wrap.motion-pending{transform:translate3d(0,14px,0) scale(.995)!important}
  html.motion-ready .review-feature.motion-pending{transform:translate3d(16px,0,0)!important}
}

@media(prefers-reduced-motion:reduce){
  html.motion-ready .reveal.motion-pending,html.motion-ready .reveal.in,html.motion-ready .reveal.motion-pending :is(h2,h3,p,blockquote,address,.review-score,.review-feature-foot,.book,.eyebrow),html.motion-ready .reveal.in :is(h2,h3,p,blockquote,address,.review-score,.review-feature-foot,.book,.eyebrow){opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important;transition:none!important}
  .arrow-icon{transition:none!important}
}

/* Contact module: la prenotazione online è l'azione principale, telefono e mappa restano secondari. */
.location{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr)!important;align-items:center!important}
.location-copy{min-width:0!important}
.location-copy>.eyebrow{margin-bottom:18px!important;letter-spacing:.16em!important}
.location-actions{display:grid!important;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)!important;grid-template-rows:auto auto!important;gap:14px 18px!important;width:min(100%,570px)!important;margin-top:30px!important;align-items:stretch!important}
.location-actions .location-phone,.location-actions .thefork-booking{min-height:62px!important;margin:0!important}
.location-actions .location-phone{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:13px 0!important;border-top:1px solid rgba(16,16,16,.34)!important;border-bottom:1px solid rgba(16,16,16,.34)!important;white-space:nowrap!important;color:var(--black)!important}
.location-actions .location-phone:hover,.location-actions .location-phone:focus-visible{background:rgba(16,16,16,.045)!important}
.location .location-copy a.thefork-booking{display:grid!important;grid-template-columns:104px minmax(0,1fr) 16px!important;gap:12px!important;align-items:center!important;width:100%!important;padding:8px 13px!important;border:1px solid rgba(16,16,16,.24)!important;background:#ffffff!important;color:#101010!important;box-shadow:0 7px 18px rgba(16,16,16,.08)!important;text-align:left!important;transition:transform .42s var(--civico-motion-ease),background-color .42s var(--civico-motion-ease),border-color .42s var(--civico-motion-ease),box-shadow .42s var(--civico-motion-ease)!important}
.thefork-booking:hover,.thefork-booking:focus-visible{transform:translate3d(0,-2px,0)!important;background:#ffffff!important;border-color:#007e73!important;box-shadow:0 11px 24px rgba(16,16,16,.13)!important}
.thefork-booking-brand{display:block!important;width:104px!important;height:43px!important;overflow:hidden!important}
.thefork-booking-brand img{display:block!important;width:104px!important;height:43px!important;object-fit:cover!important;object-position:center!important}
.thefork-booking-copy{display:grid!important;min-width:0!important;gap:5px!important}
.thefork-booking-copy small{color:#007e73!important;font:700 8px/1 var(--sans)!important;letter-spacing:.16em!important;text-transform:uppercase!important}
.location .location-copy .thefork-booking-copy strong{display:block!important;max-width:100%!important;color:#101010!important;font:500 clamp(18px,1.45vw,23px)/.92 var(--serif)!important;letter-spacing:-.035em!important;white-space:normal!important;text-wrap:balance!important}
.thefork-booking .arrow-icon{color:#007e73!important;width:14px!important;height:14px!important}
.location-actions .location-map{grid-column:1 / -1!important;justify-self:start!important;width:max-content!important;margin:2px 0 0!important;padding-bottom:9px!important;color:var(--black)!important}

@media(max-width:760px){
  .location{grid-template-columns:1fr!important;align-items:start!important}
  .location-actions{grid-template-columns:1fr!important;gap:12px!important;width:100%!important;margin-top:26px!important}
  .location-actions .thefork-booking{min-height:64px!important}
  .location-actions .location-map{grid-column:auto!important;margin-top:5px!important}
  .thefork-booking-copy strong{font-size:22px!important}
}

@media(prefers-reduced-motion:reduce){
  .thefork-booking{transition:none!important}
}

/* Header e footer chiari: il marchio nero deve avere una superficie pulita. */
.header,.header.solid{background:#fffdf9!important;color:#101010!important;border-bottom:1px solid rgba(16,16,16,.16)!important;backdrop-filter:none!important}
html body .header,html body .header.solid{background-color:#fffdf9!important;background-image:none!important}
html body .header:not(.solid),html body .header.solid{background:#fffdf9!important;background-color:#fffdf9!important;background-image:none!important;color:#101010!important}
.header::before{display:none!important}
.header nav a,.header.solid nav a,.header .head-book,.header.solid .head-book{color:#101010!important}
.header nav a::after{background:var(--wine)!important}
.header .head-book,.header.solid .head-book{border-color:rgba(16,16,16,.42)!important}
.header .head-book:hover,.header.solid .head-book:hover{background:#101010!important;color:#fffdf9!important}
.header .logo img,.hero-brand-mark,.brand-in-header .hero-brand-mark,footer img{filter:none!important}
footer{background:#fffdf9!important;color:#101010!important;border-top:1px solid rgba(16,16,16,.14)!important}
html body footer{background-color:#fffdf9!important;background-image:none!important}
footer div a{color:#101010!important;border-bottom-color:var(--wine)!important}
footer p{color:#6f6258!important}

/* Mobile header: hamburger ancorato a destra, tre barre reali, menu su carta chiara. */
@media(max-width:760px){
  .header,.header.solid{height:68px!important;padding:0 20px!important;grid-template-columns:1fr auto!important;background:#fffdf9!important;color:#101010!important}
  .header .logo{grid-column:1!important;justify-self:start!important;opacity:0!important;pointer-events:none!important}
  .header nav,.header .head-book{display:none!important}
  .header .menu-toggle,.header.solid .menu-toggle{display:flex!important;grid-column:2!important;grid-row:1!important;justify-self:end!important;align-self:center!important;margin-left:auto!important;position:relative!important;z-index:3!important;width:44px!important;height:44px!important;padding:0!important;align-items:flex-end!important;justify-content:center!important;gap:5px!important;flex-direction:column!important;background:transparent!important;border:0!important;color:#101010!important}
  .header .menu-toggle i,.header.solid .menu-toggle i{display:block!important;width:26px!important;height:1.5px!important;margin:0!important;background:currentColor!important;transform:none!important;opacity:1!important;transition:transform .42s var(--civico-motion-ease),opacity .3s var(--civico-motion-ease)!important}
  .header .menu-toggle[aria-expanded="true"] i:nth-of-type(1){transform:translateY(6.5px) rotate(45deg)!important}
  .header .menu-toggle[aria-expanded="true"] i:nth-of-type(2){opacity:0!important;transform:scaleX(.35)!important}
  .header .menu-toggle[aria-expanded="true"] i:nth-of-type(3){transform:translateY(-6.5px) rotate(-45deg)!important}
  .mobile-menu,.mobile-menu.is-open{inset:68px 0 auto!important;background:#fffdf9!important;color:#101010!important;border-bottom:1px solid rgba(16,16,16,.18)!important}
  footer{background:#fffdf9!important}
}

/* Entrata unica dei capitoli: l'IntersectionObserver decide quando animare, non il verso dello scroll. */
html.motion-ready .reveal.motion-pending{will-change:transform,clip-path!important}
html.motion-ready .reveal.in{will-change:transform,clip-path!important}
html.motion-ready .hero-video{transform:translate3d(0,var(--civico-hero-shift),0) scale(1.026)!important}
html.motion-ready .intro-logo.in .intro-photo{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.06)!important}
html.motion-ready .photo-card.in img{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.06)!important}
html.motion-ready .photo-card.in:hover img,html.motion-ready .photo-card.in:focus-within img{transform:translate3d(0,var(--civico-scroll-shift),0) scale(1.075)!important}

@media(prefers-reduced-motion:reduce){
  html.motion-ready .reveal.motion-pending,html.motion-ready .reveal.in,html.motion-ready .reveal.motion-pending :is(h2,h3,p,blockquote,address,.review-score,.review-feature-foot,.book,.eyebrow){opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important;transition:none!important;animation:none!important}
  html.motion-ready .hero-video,html.motion-ready .intro-logo.in .intro-photo,html.motion-ready .photo-card.in img{transform:none!important}
}
/* Ultimo stato della testata: sopra la hero il menu accompagna l'immagine in avorio,
   dopo la soglia diventa nero sulla carta chiara. */
.location-map{display:none!important}
html body .header:not(.solid){
  background:linear-gradient(180deg,rgba(7,5,4,.78),rgba(7,5,4,.2) 76%,rgba(7,5,4,0))!important;
  background-color:transparent!important;
  background-image:linear-gradient(180deg,rgba(7,5,4,.78),rgba(7,5,4,.2) 76%,rgba(7,5,4,0))!important;
  color:#fffdf9!important;
  border-bottom-color:rgba(255,253,249,.2)!important;
  backdrop-filter:none!important
}
html body .header:not(.solid) nav a,html body .header:not(.solid) .head-book{color:#fffdf9!important}
html body .header:not(.solid) nav a::after{background:#fffdf9!important}
html body .header:not(.solid) .head-book{border-color:rgba(255,253,249,.64)!important;background:transparent!important}
html body .header:not(.solid) .head-book:hover,html body .header:not(.solid) .head-book:focus-visible{background:#fffdf9!important;color:#101010!important}
html body .header.solid{background:#fffdf9!important;background-color:#fffdf9!important;background-image:none!important;color:#101010!important;border-bottom-color:rgba(16,16,16,.16)!important;backdrop-filter:none!important}
html body .header.solid nav a,html body .header.solid .head-book{color:#101010!important}
html body .header.solid nav a::after{background:var(--wine)!important}
html body .header.solid .head-book{border-color:rgba(16,16,16,.42)!important;background:transparent!important}
html body .header.solid .head-book:hover,html body .header.solid .head-book:focus-visible{background:#101010!important;color:#fffdf9!important}

/* Il testo non entra come un blocco unico: le righe seguono il gesto della superficie. */
html.motion-ready .reveal.motion-pending .text-motion:not(.has-text-lines){
  opacity:1!important;
  transform:translate3d(0,28px,0)!important;
  clip-path:inset(0 0 72% 0)!important;
  filter:none!important;
  transition:opacity .55s var(--civico-motion-ease),transform .96s var(--civico-motion-ease),clip-path .98s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--text-i,0) * 70ms + 120ms)!important
}
html.motion-ready .reveal.motion-pending .text-motion.has-text-lines{opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important;transition:none!important}
html.motion-ready .reveal .text-motion.has-text-lines .text-line{
  display:block!important;
  transform-origin:50% 0;
  transition:opacity .55s var(--civico-motion-ease),transform 1s var(--civico-motion-ease),clip-path 1s var(--civico-motion-ease)!important;
  transition-delay:calc(var(--line-i,0) * 95ms + 150ms)!important
}
html.motion-ready .reveal.in .text-motion:not(.has-text-lines){opacity:1!important;transform:none!important;clip-path:none!important;transition:opacity .55s var(--civico-motion-ease),transform .92s var(--civico-motion-ease),clip-path .95s var(--civico-motion-ease)!important}
html.motion-ready .reveal.in .text-motion.has-text-lines .text-line{opacity:1!important;transform:none!important;clip-path:none!important;transition:opacity .55s var(--civico-motion-ease),transform .98s var(--civico-motion-ease),clip-path .98s var(--civico-motion-ease)!important;transition-delay:calc(var(--line-i,0) * 95ms + 150ms)!important}

/* Il primo gesto della hero resta sobrio, ma anche occhiello, frase e CTA entrano con ritmo. */
html.motion-ready .hero-copy .hero-text,html.motion-ready .hero-copy .eyebrow,html.motion-ready .hero-copy .book,html.motion-ready .hero-note,html.motion-ready .hero-ritual{animation:civico-hero-text-in .9s var(--civico-motion-ease) both!important}
html.motion-ready .hero-copy .hero-text{animation-delay:.14s!important}
html.motion-ready .hero-copy .book{animation-delay:.28s!important}
html.motion-ready .hero-note,html.motion-ready .hero-ritual{animation-delay:.42s!important}
@keyframes civico-hero-text-in{from{opacity:0;transform:translate3d(0,24px,0);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}

@media(max-width:760px){
  html body .header:not(.solid){background:linear-gradient(180deg,rgba(7,5,4,.72),rgba(7,5,4,.12) 78%,rgba(7,5,4,0))!important;background-color:transparent!important;background-image:linear-gradient(180deg,rgba(7,5,4,.72),rgba(7,5,4,.12) 78%,rgba(7,5,4,0))!important}
  html body .header:not(.solid) .menu-toggle{color:#fffdf9!important}
  html body .header.solid .menu-toggle{color:#101010!important}
}

@media(prefers-reduced-motion:reduce){
  html.motion-ready .reveal .text-motion,html.motion-ready .reveal .text-line,html.motion-ready .hero-copy .hero-text,html.motion-ready .hero-copy .eyebrow,html.motion-ready .hero-copy .book,html.motion-ready .hero-note,html.motion-ready .hero-ritual{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important;transition:none!important}
}
/* Aperture narrative: la foto si stacca dalla griglia, la card si apre come una scheda di sala. */
@keyframes civico-photo-card-pick{0%{transform:translate3d(0,0,0) scale(1)}46%{transform:translate3d(0,-4px,0) scale(.975) rotateX(1deg);filter:brightness(1.18)}100%{transform:translate3d(0,0,0) scale(1.015);filter:brightness(1)}}
@keyframes civico-photo-shell-in{0%{opacity:0;transform:translate3d(0,34px,0) scale(.93);clip-path:inset(5% 4% 5% 4%)}56%{opacity:1;transform:translate3d(0,-3px,0) scale(1.012);clip-path:inset(0)}100%{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes civico-photo-shell-out{0%{opacity:1;transform:none;clip-path:inset(0)}100%{opacity:0;transform:translate3d(0,22px,0) scale(.96);clip-path:inset(4% 3% 8% 3%)}}
@keyframes civico-photo-image-in{0%{opacity:0;transform:scale(1.13) translate3d(0,22px,0);clip-path:inset(0 0 16% 0);filter:blur(7px) saturate(.68)}48%{opacity:1;transform:scale(1.035) translate3d(0,-4px,0);clip-path:inset(0);filter:blur(0) saturate(.9)}100%{opacity:1;transform:none;clip-path:inset(0);filter:none}}
@keyframes civico-photo-image-out{0%{opacity:1;transform:none;clip-path:inset(0)}100%{opacity:0;transform:scale(1.045) translate3d(0,-12px,0);clip-path:inset(0 0 10% 0);filter:blur(4px)}}
@keyframes civico-dialog-backdrop-in{0%{background:rgba(8,6,5,0)}100%{background:rgba(8,6,5,.9)}}
@keyframes civico-dialog-backdrop-out{0%{background:rgba(8,6,5,.9)}100%{background:rgba(8,6,5,0)}}
@keyframes civico-dialog-close-in{0%{opacity:0;transform:rotate(-42deg) scale(.45)}70%{opacity:1;transform:rotate(8deg) scale(1.08)}100%{opacity:1;transform:none}}
@keyframes civico-menu-card-in{0%{opacity:0;transform:perspective(1200px) translate3d(0,58px,0) rotateX(8deg) scale(.92);clip-path:inset(0 0 16% 0);filter:blur(7px)}54%{opacity:1;transform:perspective(1200px) translate3d(0,-4px,0) rotateX(-1deg) scale(1.012);clip-path:inset(0);filter:blur(0)}100%{opacity:1;transform:none;clip-path:inset(0);filter:none}}
@keyframes civico-menu-card-out{0%{opacity:1;transform:none;clip-path:inset(0);filter:none}100%{opacity:0;transform:perspective(1200px) translate3d(0,28px,0) rotateX(-5deg) scale(.96);clip-path:inset(0 0 9% 0);filter:blur(4px)}}
@keyframes civico-card-image-in{0%{opacity:0;transform:scale(1.16) translate3d(-18px,0,0);clip-path:inset(0 20% 0 0);filter:blur(6px) saturate(.65)}100%{opacity:1;transform:none;clip-path:inset(0);filter:none}}
@keyframes civico-card-copy-in{0%{opacity:0;transform:translate3d(34px,0,0);clip-path:inset(0 0 0 16%)}100%{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes civico-card-line-in{0%{opacity:0;transform:translate3d(0,22px,0);clip-path:inset(0 0 100% 0)}100%{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes civico-card-content-out{0%{opacity:1;transform:none}100%{opacity:0;transform:translate3d(0,14px,0)}}

.photo-card.is-opening{z-index:3!important;animation:civico-photo-card-pick .72s var(--civico-ease) both!important;transform-origin:50% 50%;will-change:transform,filter}
.photo-card.is-opening::after{opacity:.92!important}
.photo-card.is-opening span{opacity:0!important;transform:translate3d(0,8px,0)!important}

.lightbox[open]{animation:civico-photo-shell-in .9s var(--civico-ease) both!important;transform-origin:50% 50%;will-change:opacity,transform,clip-path}
.lightbox[open]::backdrop{animation:civico-dialog-backdrop-in .9s var(--civico-ease) both!important}
.lightbox[open] img{animation:civico-photo-image-in 1.08s var(--civico-ease) .08s both!important;will-change:opacity,transform,clip-path,filter}
.lightbox[open] button[data-close]{animation:civico-dialog-close-in .62s var(--civico-ease) .3s both!important;transform-origin:50% 50%}
.lightbox.is-closing{animation:civico-photo-shell-out .5s var(--civico-ease) both!important;pointer-events:none!important}
.lightbox.is-closing::backdrop{animation:civico-dialog-backdrop-out .5s var(--civico-ease) both!important}
.lightbox.is-closing img{animation:civico-photo-image-out .46s var(--civico-ease) both!important}
.lightbox.is-closing button[data-close]{animation:civico-photo-shell-out .36s var(--civico-ease) both!important}

.menu-card[open]{animation:civico-menu-card-in 1.02s var(--civico-ease) both!important;transform-origin:50% 8%;perspective:1200px;will-change:opacity,transform,clip-path,filter}
.menu-card[open]::backdrop{animation:civico-dialog-backdrop-in .86s var(--civico-ease) both!important}
.menu-card[open]>img{animation:civico-card-image-in 1.1s var(--civico-ease) .08s both!important;will-change:opacity,transform,clip-path,filter}
.menu-card[open] .menu-card-copy{animation:civico-card-copy-in .86s var(--civico-ease) .16s both!important;will-change:opacity,transform,clip-path}
.menu-card[open] .menu-card-close{animation:civico-dialog-close-in .62s var(--civico-ease) .3s both!important}
.menu-card[open] .menu-card-copy>:is(.eyebrow,h2,ul,.menu-card-note,.book){animation:civico-card-line-in .74s var(--civico-ease) .3s both!important;will-change:opacity,transform,clip-path}
.menu-card[open] .menu-card-copy>h2{animation-delay:.38s!important}
.menu-card[open] .menu-card-copy>ul{animation-delay:.5s!important}
.menu-card[open] .menu-card-copy>.menu-card-note{animation-delay:.66s!important}
.menu-card[open] .menu-card-copy>.book{animation-delay:.76s!important}
.menu-card[open] .menu-card-copy li{animation:civico-card-line-in .68s var(--civico-ease) both!important;will-change:opacity,transform,clip-path}
.menu-card[open] .menu-card-copy li:nth-child(1){animation-delay:.58s!important}
.menu-card[open] .menu-card-copy li:nth-child(2){animation-delay:.69s!important}
.menu-card.is-closing{animation:civico-menu-card-out .52s var(--civico-ease) both!important;pointer-events:none!important}
.menu-card.is-closing::backdrop{animation:civico-dialog-backdrop-out .52s var(--civico-ease) both!important}
.menu-card.is-closing>img,.menu-card.is-closing .menu-card-copy{animation:civico-card-content-out .42s var(--civico-ease) both!important}

@media(max-width:760px){
  .lightbox[open] img{animation-duration:.9s!important}
  .menu-card[open]{animation-duration:.86s!important}
  .menu-card[open]>img{animation-duration:.92s!important}
  .menu-card[open] .menu-card-copy{animation-duration:.74s!important}
}

@media(prefers-reduced-motion:reduce){
  .photo-card.is-opening,.lightbox[open],.lightbox[open]::backdrop,.lightbox[open] img,.lightbox[open] button[data-close],.lightbox.is-closing,.lightbox.is-closing::backdrop,.lightbox.is-closing img,.lightbox.is-closing button[data-close],.menu-card[open],.menu-card[open]::backdrop,.menu-card[open]>img,.menu-card[open] .menu-card-copy,.menu-card[open] .menu-card-close,.menu-card[open] .menu-card-copy>:is(.eyebrow,h2,ul,.menu-card-note,.book),.menu-card[open] .menu-card-copy li,.menu-card.is-closing,.menu-card.is-closing::backdrop,.menu-card.is-closing>img,.menu-card.is-closing .menu-card-copy{animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important}
}

/* Viewport scenes: ogni capitolo deve arrivare intero nel gesto, anche quando
   il viewport Ã¨ stretto. Le proporzioni interne si adattano, senza tagliare
   contenuti: il contenuto resta dentro la scena prima che parta il reveal. */
main>.section:not(.hero),main>.reviews.section,main>.location.section{
  height:100svh!important;
  min-height:100svh!important;
  max-height:100svh!important;
  overflow:hidden!important
}

@media(min-width:900px){
  main>.intro.section{height:100svh!important;min-height:0!important;max-height:100svh!important;overflow:hidden!important}
  main>.photos.section{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;gap:clamp(24px,4vh,42px)!important;padding:clamp(32px,5.5vh,68px) clamp(30px,7vw,120px)!important}
  main>.photos.section .section-title h2{font-size:clamp(54px,5.7vw,94px)!important;line-height:.76!important}
  main>.photos.section .photo-grid{min-height:0!important;height:100%!important;margin:0!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important}
  main>.menu.section{align-items:center!important;gap:clamp(42px,7vw,104px)!important;padding:clamp(36px,5.5vh,70px) clamp(30px,7vw,120px)!important}
  main>.menu.section h2{font-size:clamp(54px,5.6vw,92px)!important}
  main>.menu.section .menu-list .menu-trigger{padding:clamp(18px,2.4vh,30px) 0!important}
  main>.reviews.section{display:grid!important;grid-template-columns:minmax(210px,.58fr) minmax(0,1.42fr)!important;grid-template-rows:auto auto!important;align-items:start!important;align-content:center!important;gap:0 clamp(42px,7vw,104px)!important;padding:clamp(36px,5.5vh,70px) clamp(30px,7vw,120px)!important}
  main>.reviews.section .reviews-heading{grid-row:span 2!important}
  main>.reviews.section .reviews-heading h2{font-size:clamp(60px,6.4vw,100px)!important}
  main>.reviews.section .review-feature{padding:20px 0 24px!important}
  main>.reviews.section .review-feature blockquote{margin:clamp(22px,3.5vh,42px) 0!important;font-size:clamp(34px,3.8vw,58px)!important}
  main>.reviews.section .review-rail article,main>.reviews.section .review-rail article:first-child{min-height:0!important;padding:clamp(18px,2.5vh,28px)!important}
  main>.reviews.section .review-rail p{margin:18px 0 auto!important;font-size:clamp(19px,1.7vw,26px)!important}
  main>.location.section{align-items:center!important;gap:clamp(38px,6vw,90px)!important;padding:clamp(36px,5.5vh,70px) clamp(30px,7vw,120px)!important}
  main>.location.section h2{font-size:clamp(54px,5.6vw,92px)!important}
  main>.location.section .location-copy address{margin:clamp(22px,3vh,34px) 0!important;font-size:clamp(26px,2.5vw,42px)!important}
  main>.location.section .map-wrap,main>.location.section .map-wrap iframe{height:clamp(380px,65svh,620px)!important;min-height:0!important}
}

@media(min-width:761px) and (max-width:899px){
  main>.intro.section{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr)!important;grid-template-rows:none!important}
  main>.intro.section .intro-logo{height:100%!important;min-height:0!important}
  main>.intro.section .intro-copy{height:100%!important;min-height:0!important;padding:34px!important;justify-content:center!important;overflow:hidden!important}
  main>.intro.section .intro-copy h2{font-size:clamp(48px,6vw,72px)!important}
  main>.intro.section .intro-copy>p:not(.eyebrow){font-size:15px!important;margin:18px 0!important}
  main>.photos.section{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;gap:18px!important;padding:30px 36px!important}
  main>.photos.section .section-title h2{font-size:clamp(48px,6vw,72px)!important}
  main>.photos.section .photo-grid{height:100%!important;min-height:0!important;margin:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important}
  main>.photos.section .photo-grid .photo-card{grid-column:auto!important;grid-row:auto!important;min-height:0!important}
  main>.menu.section{display:grid!important;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr)!important;grid-template-rows:none!important;gap:32px!important;padding:30px 36px!important;align-items:center!important}
  main>.menu.section h2{font-size:clamp(48px,6vw,72px)!important}
  main>.menu.section .menu-copy>p:not(.eyebrow){font-size:14px!important;margin:16px 0!important}
  main>.menu.section .menu-list .menu-trigger{padding:16px 0!important}
  main>.reviews.section{display:grid!important;grid-template-columns:minmax(180px,.52fr) minmax(0,1.48fr)!important;grid-template-rows:auto auto!important;gap:0 34px!important;padding:30px 36px!important;align-content:center!important}
  main>.reviews.section .reviews-heading{grid-row:span 2!important}
  main>.reviews.section .reviews-heading h2{font-size:clamp(52px,6vw,76px)!important}
  main>.reviews.section .review-feature{padding:14px 0 18px!important}
  main>.reviews.section .review-feature blockquote{font-size:clamp(26px,3.4vw,38px)!important;margin:18px 0!important}
  main>.reviews.section .review-rail{gap:8px!important;padding-top:8px!important}
  main>.reviews.section .review-rail article,main>.reviews.section .review-rail article:first-child{min-height:0!important;padding:14px!important}
  main>.reviews.section .review-rail p{font-size:16px!important;margin:12px 0 auto!important}
  main>.location.section{display:grid!important;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;grid-template-rows:none!important;gap:28px!important;padding:30px 36px!important;align-items:center!important}
  main>.location.section .location-copy h2{font-size:clamp(48px,6vw,72px)!important}
  main>.location.section .location-copy address{font-size:24px!important;line-height:1!important;margin:16px 0!important}
  main>.location.section .location-actions{margin-top:16px!important;gap:8px!important}
  main>.location.section .map-wrap,main>.location.section .map-wrap iframe{height:100%!important;min-height:0!important}
}

@media(max-width:760px){
  main>.intro.section{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:36svh minmax(0,64svh)!important;background:var(--ivory)!important}
  main>.intro.section .intro-logo{height:auto!important;min-height:0!important}
  main>.intro.section .intro-copy{height:auto!important;min-height:0!important;padding:26px 20px!important;justify-content:center!important;overflow:hidden!important}
  main>.intro.section .intro-copy::before{margin-bottom:14px!important}
  main>.intro.section .intro-copy h2{font-size:clamp(50px,14vw,68px)!important;line-height:.78!important}
  main>.intro.section .intro-copy>p:not(.eyebrow){font-size:15px!important;line-height:1.24!important;margin:17px 0!important}

  main>.photos.section{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;gap:18px!important;padding:34px 20px!important}
  main>.photos.section .section-title h2{font-size:clamp(44px,13vw,62px)!important}
  main>.photos.section .photo-grid{height:100%!important;min-height:0!important;margin:0!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important}
  main>.photos.section .photo-grid .photo-card{grid-column:auto!important;grid-row:auto!important;min-height:0!important}

  main>.menu.section{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,1fr)!important;gap:18px!important;padding:34px 20px!important}
  main>.menu.section h2{font-size:clamp(44px,13vw,62px)!important}
  main>.menu.section .menu-copy>p:not(.eyebrow){font-size:14px!important;line-height:1.25!important;margin:14px 0!important}
  main>.menu.section .menu-list{min-height:0!important}
  main>.menu.section .menu-list .menu-trigger{padding:18px 0!important}

  main>.reviews.section{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,auto) minmax(0,1fr)!important;gap:10px!important;padding:28px 20px!important;align-content:stretch!important}
  main>.reviews.section .reviews-heading{grid-row:auto!important}
  main>.reviews.section .reviews-heading h2{font-size:clamp(48px,14vw,66px)!important}
  main>.reviews.section .review-feature{padding:10px 0 12px!important}
  main>.reviews.section .review-score strong{font-size:40px!important}
  main>.reviews.section .review-feature blockquote{font-size:clamp(23px,7vw,31px)!important;margin:14px 0!important}
  main>.reviews.section .review-feature-foot{gap:8px!important}
  main>.reviews.section .review-rail{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding-top:6px!important}
  main>.reviews.section .review-rail article,main>.reviews.section .review-rail article:first-child{min-height:0!important;padding:12px!important}
  main>.reviews.section .review-rail p{font-size:14px!important;margin:10px 0 auto!important}

  main>.location.section{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:minmax(0,auto) minmax(0,1fr)!important;gap:12px!important;padding:76px 20px 16px!important;align-items:start!important}
  main>.location.section .location-copy{min-height:0!important}
  main>.location.section .location-copy h2{font-size:clamp(46px,13vw,62px)!important}
  main>.location.section .location-copy address{font-size:24px!important;line-height:.96!important;margin:12px 0!important}
  main>.location.section .location-actions{margin-top:12px!important;gap:8px!important}
  main>.location.section .map-wrap,main>.location.section .map-wrap iframe{height:100%!important;min-height:0!important}

  main>.section:not(.hero){overflow:hidden!important}
  .opening-hours{margin:0 0 14px!important;padding:12px 0!important}
  .opening-hours>p{margin:0 0 7px!important}
  .opening-hours dl>div{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:5px 0!important;font-size:11px!important;line-height:1.15!important}
  .opening-hours dd{text-align:right!important;margin-top:0!important}
}

@media(max-width:360px){
  main>.intro.section{grid-template-rows:34svh minmax(0,66svh)!important}
  main>.section:not(.hero){padding-left:16px!important;padding-right:16px!important}
  main>.intro.section .intro-copy{padding:20px 16px!important}
  main>.intro.section .intro-copy h2{font-size:clamp(42px,14vw,56px)!important}
  main>.intro.section .intro-copy>p:not(.eyebrow){font-size:13px!important;margin:11px 0!important}
  main>.photos.section{gap:12px!important}
  main>.photos.section .section-title h2,main>.menu.section h2{font-size:clamp(38px,13vw,54px)!important}
  main>.menu.section{gap:12px!important}
  main>.menu.section .menu-copy>p:not(.eyebrow){font-size:12px!important;margin:10px 0!important}
  main>.menu.section .menu-list .menu-trigger{padding:13px 0!important}
  main>.reviews.section{gap:8px!important}
  main>.reviews.section .reviews-heading h2{font-size:clamp(42px,14vw,58px)!important}
  main>.reviews.section .review-feature blockquote{font-size:22px!important;margin:10px 0!important}
  main>.reviews.section .review-rail p{font-size:12px!important}
  main>.location.section{gap:10px!important;padding-top:76px!important;padding-bottom:12px!important}
  main>.location.section .location-copy address{font-size:21px!important}
  main>.location.section .location-actions{margin-top:9px!important}
  .opening-hours{margin-bottom:10px!important;padding:10px 0!important}
  .opening-hours>p{margin-bottom:6px!important;font-size:8px!important}
  .opening-hours dl>div{padding:3px 0!important;font-size:10px!important;line-height:1.1!important}
  .opening-hours dd{font-size:9px!important}
}

/* Motion pass 2026-08-06: righe editoriali, entrata progressiva e reverse al ritorno. */
:root{--civico-text-ease:cubic-bezier(.16,1,.3,1)}

html.motion-ready .reveal.motion-pending:not(.photo-card):not(.menu-item){
  opacity:0!important;
  transform:translate3d(0,32px,0)!important;
  clip-path:none!important;
  filter:blur(1.5px)!important;
  animation:none!important;
  transition:opacity .82s var(--civico-text-ease),transform 1.05s var(--civico-text-ease),clip-path 1.05s var(--civico-text-ease),filter .82s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 90ms)!important
}
html.motion-ready[data-scroll-direction="up"] .reveal.motion-pending:not(.photo-card):not(.menu-item){
  transform:translate3d(0,-32px,0)!important;
  clip-path:none!important
}
html.motion-ready .reveal.in:not(.photo-card):not(.menu-item){
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
  filter:none!important;
  animation:none!important;
  transition:opacity .92s var(--civico-text-ease),transform 1.08s var(--civico-text-ease),clip-path 1.08s var(--civico-text-ease),filter .88s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 90ms)!important
}

/* La frase del menu resta in una composizione naturale: “gesto” non viene forzato a capo. */
main>.menu.section .menu-copy h2 em{display:inline!important}
main>.menu.section .menu-copy h2{text-wrap:balance!important}
main>.menu.section .menu-copy>p:not(.eyebrow){
  max-width:31ch!important;
  color:var(--ivory)!important;
  font:500 clamp(17px,1.45vw,23px)/1.2 var(--serif)!important;
  letter-spacing:-.018em!important
}

/* La galleria si apre come una sequenza di aperture: sala, cucina, pasta, dehors. */
html.motion-ready .photos .photo-card.motion-pending{
  opacity:0!important;
  transform:translate3d(0,34px,0) scale(.985)!important;
  clip-path:none!important;
  filter:saturate(.82) blur(1.5px)!important;
  animation:none!important;
  transition:opacity 1s var(--civico-text-ease),transform 1.18s var(--civico-text-ease),clip-path 1.18s var(--civico-text-ease),filter 1s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 160ms)!important
}
html.motion-ready[data-scroll-direction="up"] .photos .photo-card.motion-pending{
  transform:translate3d(0,-34px,0) scale(.985)!important;
  clip-path:none!important
}
html.motion-ready .photos .photo-card.in{
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
  filter:none!important;
  animation:none!important;
  transition:opacity 1s var(--civico-text-ease),transform 1.18s var(--civico-text-ease),clip-path 1.18s var(--civico-text-ease),filter 1s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 160ms)!important
}
html.motion-ready .photos .photo-card.motion-pending img{
  opacity:1!important;
  transform:scale(1.045)!important;
  clip-path:inset(0 0 100% 0)!important;
  transition:clip-path 1.18s var(--civico-text-ease),transform 1.18s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 160ms)!important
}
html.motion-ready[data-scroll-direction="up"] .photos .photo-card.motion-pending img{clip-path:inset(100% 0 0 0)!important}
html.motion-ready .photos .photo-card.in img{
  clip-path:inset(0)!important;
  transition:clip-path 1.18s var(--civico-text-ease),transform 1.18s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 160ms)!important
}

/* I tre capitoli del menu entrano più lentamente e avanzano leggermente al focus/hover. */
html.motion-ready .menu-list .menu-item.motion-pending{
  opacity:0!important;
  transform:translate3d(0,34px,0)!important;
  clip-path:none!important;
  filter:blur(1px)!important;
  animation:none!important;
  transition:opacity 1.02s var(--civico-text-ease),transform 1.24s var(--civico-text-ease),clip-path 1.24s var(--civico-text-ease),filter 1.02s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 220ms)!important
}
html.motion-ready[data-scroll-direction="up"] .menu-list .menu-item.motion-pending{
  transform:translate3d(0,-34px,0)!important;
  clip-path:none!important
}
html.motion-ready .menu-list .menu-item.in{
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
  filter:none!important;
  animation:none!important;
  transition:opacity 1.02s var(--civico-text-ease),transform 1.24s var(--civico-text-ease),clip-path 1.24s var(--civico-text-ease),filter 1.02s var(--civico-text-ease)!important;
  transition-delay:calc(var(--i,0) * 220ms)!important
}
html.motion-ready .menu-list .menu-item .menu-trigger h3{transition:transform 1.08s var(--civico-text-ease),color .55s var(--civico-text-ease)!important}
html.motion-ready .menu-list .menu-item .menu-trigger h3 .text-line,html.motion-ready .menu-list .menu-item .menu-trigger h3 .text-word{font:inherit!important;letter-spacing:inherit!important;color:inherit!important}
html.motion-ready .menu-list .menu-item .menu-trigger:focus-visible h3{transform:translate3d(16px,0,0)!important}
@media(hover:hover) and (pointer:fine){
  html.motion-ready .menu-list .menu-item .menu-trigger:hover h3{transform:translate3d(16px,0,0)!important}
}

/* Righe testuali nello stile osservato: 80px, lieve skew, fade e stagger discreto. */
html.motion-ready .reveal.motion-pending .text-motion.has-text-lines{opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important;transition:none!important}
html.motion-ready .reveal .text-motion.has-text-lines .text-line{
  display:block!important;
  transform-origin:50% 0;
  will-change:opacity,transform,clip-path;
  transition:opacity .78s var(--civico-text-ease),transform 1.08s var(--civico-text-ease),clip-path 1.08s var(--civico-text-ease),visibility 0s linear 1.08s!important;
  transition-delay:calc(var(--line-i,0) * 105ms + 140ms)!important
}
html.motion-ready .reveal.motion-pending .text-motion.has-text-lines .text-line{
  opacity:0!important;
  visibility:hidden!important;
  transform:translate3d(0,80px,0) skewY(3deg)!important;
  clip-path:inset(0 0 100% 0)!important;
  animation:none!important
}
html.motion-ready[data-scroll-direction="up"] .reveal.motion-pending .text-motion.has-text-lines .text-line{
  transform:translate3d(0,-80px,0) skewY(-3deg)!important;
  clip-path:inset(100% 0 0 0)!important
}
html.motion-ready .reveal.in .text-motion.has-text-lines .text-line{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  clip-path:inset(0)!important;
  animation:none!important;
  transition:opacity .78s var(--civico-text-ease),transform 1.08s var(--civico-text-ease),clip-path 1.08s var(--civico-text-ease),visibility 0s linear 0s!important;
  transition-delay:calc(var(--line-i,0) * 105ms + 140ms)!important
}

html.motion-ready .reveal.motion-pending .text-motion:not(.has-text-lines){
  opacity:0!important;
  transform:translate3d(0,22px,0)!important;
  clip-path:inset(0 0 100% 0)!important;
  filter:blur(1px)!important;
  transition:opacity .72s var(--civico-text-ease),transform .92s var(--civico-text-ease),clip-path .92s var(--civico-text-ease),filter .72s var(--civico-text-ease)!important;
  transition-delay:calc(var(--text-i,0) * 55ms + 120ms)!important
}
html.motion-ready[data-scroll-direction="up"] .reveal.motion-pending .text-motion:not(.has-text-lines){
  transform:translate3d(0,-22px,0)!important;
  clip-path:inset(100% 0 0 0)!important
}
html.motion-ready .reveal.in .text-motion:not(.has-text-lines){
  opacity:1!important;
  transform:none!important;
  clip-path:inset(0)!important;
  filter:none!important;
  transition:opacity .72s var(--civico-text-ease),transform .92s var(--civico-text-ease),clip-path .92s var(--civico-text-ease),filter .72s var(--civico-text-ease)!important;
  transition-delay:calc(var(--text-i,0) * 55ms + 120ms)!important
}

@media(max-width:760px){
  main>.menu.section .menu-copy>p:not(.eyebrow){font-size:clamp(17px,4.8vw,21px)!important;line-height:1.18!important}
  html.motion-ready .photos .photo-card.motion-pending,html.motion-ready .photos .photo-card.in{transition-duration:.9s,.98s,.98s,.9s!important}
  html.motion-ready .menu-list .menu-item.motion-pending,html.motion-ready .menu-list .menu-item.in{transition-duration:.86s,1.04s,1.04s,.86s!important}
  html.motion-ready .reveal .text-motion.has-text-lines .text-line{transition-duration:.66s,.88s,.88s,0s!important}
}
@media(max-width:360px){
  main>.menu.section .menu-copy>p:not(.eyebrow){font-size:16px!important}
}

@media(prefers-reduced-motion:reduce){
  html.motion-ready .reveal.motion-pending,html.motion-ready .reveal.in,html.motion-ready .reveal .text-motion,html.motion-ready .reveal .text-line{opacity:1!important;visibility:visible!important;transform:none!important;clip-path:none!important;filter:none!important;animation:none!important;transition:none!important}
  html.motion-ready .menu-list .menu-item .menu-trigger h3{transition:none!important}
}

/* Paesaggio stretto: stessa scena, ma con una densità reale da altezza telefono. */
@media (min-width:761px) and (max-height:500px){
  main>.reviews.section,main>.location.section{padding-top:18px!important;padding-bottom:18px!important}
  main>.reviews.section .reviews-heading h2{font-size:clamp(44px,5.5vw,58px)!important}
  main>.reviews.section .review-feature{padding:10px 0 12px!important}
  main>.reviews.section .review-feature blockquote{font-size:clamp(25px,3vw,34px)!important;margin:12px 0!important}
  main>.reviews.section .review-rail{padding-top:6px!important;gap:7px!important}
  main>.reviews.section .review-rail article,main>.reviews.section .review-rail article:first-child{min-height:0!important;padding:10px!important}
  main>.reviews.section .review-rail p{font-size:14px!important;margin:8px 0 auto!important}

  main>.location.section{align-items:center!important;gap:24px!important}
  main>.location.section .location-copy>.eyebrow{margin-bottom:6px!important}
  main>.location.section .location-copy h2{font-size:40px!important;line-height:.76!important}
  main>.location.section .location-copy address{font-size:18px!important;line-height:.95!important;margin:8px 0!important}
  main>.location.section .opening-hours{margin:0 0 8px!important;padding:6px 0!important}
  main>.location.section .opening-hours>p{margin:0 0 5px!important;font-size:8px!important}
  main>.location.section .opening-hours dl>div{gap:8px!important;padding:2px 0!important;font-size:10px!important;line-height:1.05!important}
  main>.location.section .opening-hours dd{font-size:9px!important}
  main>.location.section .location-actions{margin-top:8px!important;gap:6px!important}
  main>.location.section .location-actions .location-phone,main>.location.section .location-actions .thefork-booking{min-height:46px!important}
  main>.location.section .location-actions .location-phone{padding:7px 0!important;font-size:9px!important}
  main>.location.section .location-copy a.thefork-booking{grid-template-columns:82px minmax(0,1fr) 13px!important;gap:7px!important;padding:4px 8px!important}
  main>.location.section .thefork-booking-brand,main>.location.section .thefork-booking-brand img{width:82px!important;height:34px!important}
  main>.location.section .thefork-booking-copy{gap:3px!important}
  main>.location.section .thefork-booking-copy small{font-size:6px!important}
  main>.location.section .location-copy .thefork-booking-copy strong{font-size:15px!important}
  main>.location.section .map-wrap,main>.location.section .map-wrap iframe{height:100%!important;min-height:0!important}
}
