:root{
  --red:#851400;
  --cream:#ece5d7;
  --brown:#4b2c1f;
  --brown-soft:#6b463690;
  --cream-2:#e2d9c6;
  --maxw:1180px;
  /* Temporary fallbacks — final brand fonts (Cocomat Pro, Hibernate) drop in later
     via @font-face without changing the rest of the design system. */
  --font-primary:'Cocomat Pro','Helvetica Neue',Arial,sans-serif;
  --font-accent:'Hibernate','Cocomat Pro','Helvetica Neue',Arial,sans-serif;
  --font-hand:'Hibernate','Cocomat Pro',cursive;
  --space:clamp(2.25rem,4.5vw,3.5rem);
}

/* ---- Typography test variants (temporary) — switch globally via ?font=a|b|c ----
   All "important info" (nav, body, menu, dish names, prices, CTA) uses --font-primary.
   --font-hand (handwritten) is used ONLY for claims / Nonna's phrases / short quotes.
   When the brand fonts (Cocomat Pro, Hibernate) are purchased, they drop in from :root
   above and these three blocks are simply removed. */
html[data-font="a"]{
  --font-primary:'Nunito Sans','Helvetica Neue',Arial,sans-serif;
  --font-accent:'Nunito Sans','Helvetica Neue',Arial,sans-serif;
  --font-hand:'Kalam','Comic Sans MS',cursive;
}
html[data-font="b"]{
  --font-primary:'Quicksand','Helvetica Neue',Arial,sans-serif;
  --font-accent:'Quicksand','Helvetica Neue',Arial,sans-serif;
  --font-hand:'Caveat','Comic Sans MS',cursive;
}
html[data-font="c"]{
  --font-primary:'Poppins','Helvetica Neue',Arial,sans-serif;
  --font-accent:'Poppins','Helvetica Neue',Arial,sans-serif;
  --font-hand:'Patrick Hand','Comic Sans MS',cursive;
}
/*
@font-face{font-family:'Cocomat Pro';src:url('/site-assets/fonts/CocomatPro.woff2') format('woff2');font-weight:400 700;font-display:swap;}
@font-face{font-family:'Hibernate';src:url('/site-assets/fonts/Hibernate.woff2') format('woff2');font-display:swap;}
*/

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--cream);color:var(--brown);
  font-family:var(--font-primary);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--red);text-decoration:none;}
a:hover{text-decoration:underline;}

h1,h2,h3{font-family:var(--font-accent);line-height:1.08;font-weight:700;letter-spacing:-.01em;margin:0 0 .5em;}
h1{font-size:clamp(2.4rem,7vw,4.2rem);}
h2{font-size:clamp(1.7rem,4vw,2.6rem);}
h3{font-size:1.25rem;}
p{margin:0 0 1rem;}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.15rem,4vw,2.5rem);}
.narrow{max-width:760px;}
.center{text-align:center;}
.section{padding:var(--space) 0;}
.section-alt{background:var(--cream-2);}
.section-head{padding-top:calc(var(--space)*.6);padding-bottom:0;}
.section-red{background:var(--red);color:var(--cream);}
.section-red h1,.section-red h2{color:var(--cream);}
.section-red a{color:var(--cream);}
.section-closing{background:var(--brown);color:var(--cream);text-align:center;}
.section-closing h2{color:var(--cream);}
.section-closing .payoff-lg{color:var(--cream);}

.eyebrow{font-family:var(--font-accent);text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;color:var(--red);margin:0 0 .6rem;}
.section-red .eyebrow{color:var(--cream);}
.lead{font-size:1.15rem;}
.payoff,.payoff-lg{font-family:var(--font-hand);}
.payoff-lg{font-size:clamp(1.3rem,3vw,1.9rem);color:var(--red);margin:.4rem 0 1.4rem;}
.section-red .payoff-lg{color:var(--cream);}
.placeholder-copy,.placeholder-note{color:var(--brown-soft);font-style:italic;}
.placeholder-note{font-size:.85rem;}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-accent);font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  font-size:.9rem;padding:.8rem 1.6rem;border-radius:999px;border:2px solid transparent;
  cursor:pointer;transition:background-color .18s ease,color .18s ease,border-color .18s ease;
  text-decoration:none;line-height:1;
}
.btn:hover{text-decoration:none;}
.btn-prenota{background:var(--red);color:var(--cream);border-color:var(--red);}
.btn-prenota:hover{background:#6d1000;border-color:#6d1000;}
.btn-outline{background:transparent;color:var(--red);border-color:var(--red);}
.btn-outline:hover{background:var(--red);color:var(--cream);}
.btn-outline-light{background:transparent;color:var(--cream);border-color:var(--cream);}
.btn-outline-light:hover{background:var(--cream);color:var(--red);}
.hero-ctas{margin:1.6rem 0;}

/* Skip + a11y */
.skip-link{position:absolute;left:-999px;top:0;background:var(--brown);color:var(--cream);padding:.7rem 1rem;z-index:100;}
.skip-link:focus{left:.5rem;top:.5rem;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:2px;}
.section-red a:focus-visible,.section-red button:focus-visible{outline-color:var(--cream);}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:var(--cream);border-bottom:1px solid #4b2c1f22;box-sizing:border-box;}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:70px;box-sizing:border-box;}
.brand{display:flex;align-items:center;text-decoration:none;}
.brand-logo{display:block;height:44px;width:auto;max-width:220px;object-fit:contain;}
.brand-wordmark{display:flex;flex-direction:column;line-height:1;}
.brand-name{font-family:var(--font-accent);font-weight:700;font-size:1.15rem;letter-spacing:.02em;color:var(--brown);}
.brand-sub{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red);}
.primary-nav{display:flex;align-items:center;gap:2rem;}
.primary-nav ul{display:flex;gap:1.7rem;list-style:none;margin:0;padding:0;}
.primary-nav a{color:var(--brown);font-family:var(--font-accent);font-weight:600;font-size:1rem;}
.primary-nav a:hover{color:var(--red);text-decoration:none;}
.header-prenota{display:none;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:.5rem;cursor:pointer;}
.nav-toggle span{width:26px;height:2px;background:var(--brown);display:block;transition:transform .2s;}

/* Hero */
.hero{padding:clamp(2.75rem,7vw,5rem) 0 clamp(1.75rem,4vw,3rem);}
.hero-home h1{font-size:clamp(3rem,11vw,6rem);}
.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1.6rem 0 0;}
.tag-list li{font-family:var(--font-accent);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--red);color:var(--red);padding:.35rem .7rem;border-radius:999px;}

/* Breadcrumbs */
.breadcrumbs{padding:1rem 0 0;}
.breadcrumbs ol{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.15rem,4vw,2.5rem);list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;font-size:.82rem;}
.breadcrumbs a{color:var(--brown-soft);}
.breadcrumbs span[aria-current]{color:var(--brown);}
.breadcrumbs span[aria-hidden]{margin-left:.5rem;color:var(--brown-soft);}

/* Status */
.status-line,.location-status{font-family:var(--font-accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;}
.status-seasonal_closure,.status-temporarily_closed{color:#9a3b2a;}
.status-open,.status-weekend_only{color:#2f6b3a;}
.status-message{font-weight:600;color:#9a3b2a;}

/* Layout helpers */
.two-col{display:grid;gap:var(--space);grid-template-columns:1fr 1fr;align-items:start;}
.pillars{display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr);}
.pillar{border-top:3px solid var(--red);padding-top:1rem;}
.locations-grid,.links-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);}
.location-card{background:var(--cream-2);padding:1.8rem;}
.location-links{display:flex;align-items:center;gap:1rem;margin-top:1rem;}
.tile{display:block;background:var(--cream-2);padding:1.5rem;color:var(--brown);}
.tile:hover{background:#d8cdb7;text-decoration:none;}
.tile h3{color:var(--red);}
.approf-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(3,1fr);}
.approf-card{display:flex;flex-direction:column;gap:.45rem;background:var(--cream-2);border:1px solid rgba(75,44,31,.12);border-left:3px solid var(--red);border-radius:6px;padding:1.2rem 1.3rem;color:var(--brown);transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;}
.approf-card:hover{background:#e6ddcb;transform:translateY(-3px);box-shadow:0 10px 24px rgba(75,44,31,.12);text-decoration:none;}
.approf-card h3{color:var(--red);margin:0;font-size:1.12rem;}
.approf-card p{margin:0;font-size:.94rem;line-height:1.45;color:var(--brown);}
.approf-more{font-family:var(--font-accent);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:700;margin-top:.2rem;}
.approf-card:hover .approf-more span{margin-left:.25rem;}
@media(max-width:860px){.approf-grid{grid-template-columns:1fr;}}

/* Prenota — venue selector conversion page */
.prenota-head{text-align:left;}
.prenota-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);}
.prenota-card{display:flex;flex-direction:column;justify-content:space-between;gap:1.4rem;background:var(--cream-2);border:1px solid rgba(75,44,31,.12);border-top:4px solid var(--red);border-radius:8px;padding:1.8rem 1.7rem;color:var(--brown);transition:transform .2s ease,box-shadow .2s ease;}
.prenota-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(75,44,31,.12);}
.prenota-card h2{color:var(--red);margin:0 0 .15rem;font-size:1.6rem;}
.prenota-city{margin:0;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;color:var(--brown);opacity:.7;}
.prenota-desc{margin:.7rem 0 0;font-size:1rem;line-height:1.5;}
.prenota-card-cta{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;}
.prenota-card-cta .btn-prenota{align-self:stretch;text-align:center;}
.prenota-status{margin:0;font-weight:600;color:var(--brown);}
.prenota-more{font-size:.9rem;color:var(--red);font-weight:600;}
.prenota-more span{transition:margin-left .2s ease;}
.prenota-more:hover span{margin-left:.25rem;}
@media(max-width:860px){.prenota-grid{grid-template-columns:1fr;}}

/* Hours + address */
.hours-table{border-collapse:collapse;width:100%;max-width:420px;}
.hours-table th{text-align:left;font-weight:600;padding:.45rem 1rem .45rem 0;font-family:var(--font-primary);}
.hours-table td{padding:.45rem 0;border-bottom:1px solid #4b2c1f22;}
.hours-table tr:last-child td{border-bottom:0;}
.hours-closed{color:var(--brown-soft);}
.service-note{margin-top:1rem;font-size:.9rem;color:var(--brown-soft);}
.address-block{font-style:normal;line-height:1.9;}

/* Menu — editorial layout, deliberately not a price-list */
.menu-wrap{max-width:820px;margin-left:auto;margin-right:auto;}
.menu-head{padding-bottom:0;}
.menu-masthead{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.menu-title{text-transform:uppercase;letter-spacing:.02em;margin:0;}
.lang-toggle{display:inline-flex;border:1px solid var(--red);border-radius:999px;overflow:hidden;flex:none;}
.lang-opt{font-family:var(--font-accent);font-weight:700;font-size:.78rem;letter-spacing:.08em;padding:.4rem .95rem;background:transparent;color:var(--red);border:0;cursor:pointer;line-height:1;}
.lang-opt.is-active{background:var(--red);color:var(--cream);}
.lang-opt[disabled]{opacity:.45;cursor:not-allowed;}

/* Sticky, discreet category navigation */
.menu-catnav{position:sticky;top:69px;z-index:30;background:var(--cream);border-bottom:1px solid #4b2c1f22;}
.menu-catnav ul{list-style:none;display:flex;flex-wrap:wrap;gap:.55rem 1.4rem;margin:0;padding:.75rem 0;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.menu-catnav ul::-webkit-scrollbar{display:none;}
.menu-catnav a{font-family:var(--font-accent);font-weight:600;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--brown);white-space:nowrap;padding-bottom:3px;border-bottom:2px solid transparent;transition:color .18s ease,border-color .18s ease;}
.menu-catnav a:hover{color:var(--red);text-decoration:none;border-bottom-color:var(--red);}

.menu-body{padding-top:calc(var(--space)*.7);}
.menu-category{margin-bottom:calc(var(--space)*.85);scroll-margin-top:150px;}
.menu-cat-title{color:var(--red);border-bottom:2px solid var(--red);padding-bottom:.4rem;margin-bottom:1.9rem;}
.menu-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.8rem;}
.menu-item{padding:0;border:0;}
.menu-item-head{display:flex;justify-content:space-between;gap:1.6rem;align-items:baseline;}
.menu-item-name{margin:0;font-size:1.15rem;flex:1 1 auto;}
.menu-item-price{font-family:var(--font-accent);font-weight:700;white-space:nowrap;color:var(--brown);flex:0 0 auto;text-align:right;}
.menu-item-price small{font-weight:600;font-size:.68em;color:var(--brown-soft);}
.menu-item-desc{margin:.35rem 0 0;color:#6b4636;font-size:.95rem;line-height:1.5;max-width:60ch;}
.menu-item-notes{margin:.35rem 0 0;font-size:.82rem;color:var(--brown-soft);}

/* Badges — small, refined, brand-coherent */
.menu-badges{list-style:none;display:flex;gap:.4rem;padding:0;margin:.6rem 0 0;flex-wrap:wrap;}
.badge{font-family:var(--font-accent);font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;border:1px solid #4b2c1f40;color:var(--brown-soft);border-radius:999px;padding:.18rem .55rem;line-height:1.5;}
.badge-fav{border-color:var(--red);color:var(--red);background:#8514000f;}

/* Bere — compact accordions grouped by subgroup */
.drink-groups{display:flex;flex-direction:column;gap:.65rem;}
.drink-group{border:1px solid #4b2c1f22;border-radius:8px;background:#4b2c1f05;}
.drink-group summary{display:flex;align-items:center;gap:.7rem;cursor:pointer;list-style:none;padding:.9rem 1.15rem;font-family:var(--font-accent);color:var(--brown);}
.drink-group summary::-webkit-details-marker{display:none;}
.drink-group summary::after{content:"+";font-size:1.15rem;font-weight:700;color:var(--red);line-height:1;flex:0 0 auto;}
.drink-group[open] summary::after{content:"–";}
.drink-group-name{flex:1 1 auto;font-size:1rem;font-weight:700;letter-spacing:.01em;}
.drink-group-count{flex:0 0 auto;font-family:var(--font-primary);font-weight:600;font-size:.75rem;color:var(--brown-soft);}
.drink-list{list-style:none;margin:0;padding:.2rem 1.15rem 1.1rem;display:flex;flex-direction:column;gap:.75rem;}
.drink-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;}
.drink-name{font-size:.98rem;}
.drink-price{font-family:var(--font-accent);font-weight:700;white-space:nowrap;color:var(--brown);}

.menu-foot{margin-top:var(--space);}
.menu-allergen-note{font-size:.8rem;color:var(--brown-soft);margin-top:1rem;line-height:1.5;}

/* Responsive image placeholders (professional photos assigned later) */
.img-placeholder{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/9;background:#4b2c1f0d;border:1px dashed #4b2c1f40;border-radius:10px;color:var(--brown-soft);font-family:var(--font-accent);font-weight:600;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;}
.img-placeholder-wide{aspect-ratio:21/9;}
.hero-brand .eyebrow-on-red{color:var(--cream);}
.ps-payoff{margin-top:1.8rem;}
.ps-cta{margin-top:2rem;}
.img-placeholder-portrait{aspect-ratio:4/5;max-width:520px;margin:0 auto;}
.storia-portrait{display:block;width:100%;max-width:520px;margin:0 auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%;border-radius:4px;}
.storia-section{padding-top:clamp(1.6rem,4vw,2.4rem);padding-bottom:clamp(1.6rem,4vw,2.4rem);}
.storia-section-alt{background:var(--cream-2);}
.storia-h2{font-size:clamp(1.5rem,4vw,2rem);color:var(--red);margin:0 0 1.1rem;}
.storia-media{margin:0 0 1.4rem;}
.storia-img{display:block;width:100%;height:auto;border-radius:3px;}
/* --- Photo layout system (media-split, pillars, horizontal gallery, reveal) --- */
.media-split{display:grid;grid-template-columns:1fr;gap:clamp(1.2rem,4vw,2.6rem);align-items:center;}
@media(min-width:861px){.media-split{grid-template-columns:1.05fr .95fr;}.media-split-right .media-split-photo{order:2;}}
.media-split-body{min-width:0;}
.media-split-photo picture{display:block;}
.media-split-photo picture img,.ms-img{width:100%;height:auto;border-radius:4px;display:block;}
.pillar-photo picture{display:block;}
.pillar-photo picture img,.pillar-img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:4px;margin-bottom:1rem;display:block;}
.pillar-photo .img-placeholder.pillar-ph{aspect-ratio:3/4;margin-bottom:1rem;width:100%;}
.pillar-img-mare{object-position:50% 72%;}
.hgallery{position:relative;}
.hg-track{list-style:none;margin:0;padding:0 0 .7rem;display:flex;gap:clamp(.6rem,1.4vw,1rem);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.hg-item{flex:0 0 auto;height:clamp(230px,44vw,380px);scroll-snap-align:start;}
.hg-item picture{display:block;height:100%;}
.hg-item picture img,.hg-img{height:100%;width:auto;max-width:none;border-radius:4px;object-fit:cover;display:block;}
.hg-arrow{position:absolute;top:calc(50% - 24px);z-index:2;width:46px;height:46px;border-radius:50%;border:none;background:rgba(75,44,31,.85);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;display:none;transition:background-color .2s ease;}
.hg-arrow:hover{background:var(--red);}
@media(min-width:861px){.hg-arrow{display:block;}}
.hg-prev{left:-8px;}.hg-next{right:-8px;}
.hg-arrow[hidden]{display:none!important;}
.hgallery.dragging .hg-track{scroll-snap-type:none;cursor:grabbing;}
.hg-uniform .hg-item{height:auto;flex-basis:clamp(180px,42vw,240px);}
.hg-uniform .hg-item picture{height:auto;}
.hg-uniform .hg-item picture img,.hg-uniform .hg-img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;}
.rav-closing{display:flex;justify-content:center;}
.rav-closing picture{display:block;max-width:min(100%,560px);}
.rav-closing picture img,.closing-img{width:100%;height:auto;max-height:78vh;object-fit:contain;border-radius:4px;display:block;}
.reveal-on .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal-on .reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.reveal-on .reveal{opacity:1!important;transform:none!important;transition:none!important;}}
.img-placeholder-loc{aspect-ratio:16/10;margin-bottom:1rem;}
.hero-media picture{display:block;}
.hero-media picture .hero-img{width:100%;max-height:540px;object-fit:cover;border-radius:3px;}
.gallery-grid picture{display:block;}
.gallery-grid picture img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px;}
.loc-media picture{display:block;}
.loc-media picture img{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:1rem;border-radius:3px;}
.storia-close{background:var(--cream-2);}
.storia-close-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.8rem,5vw,3.6rem);align-items:center;max-width:1040px;margin:0 auto;}
.storia-close-media{margin:0;}
.storia-close-img{display:block;width:100%;height:auto;max-width:440px;margin:0 auto;border-radius:4px;}
.storia-close-text .payoff-lg{margin:0;}
@media(max-width:800px){.storia-close-grid{grid-template-columns:1fr;gap:1.5rem;text-align:center;}.storia-close-img{max-width:320px;}}
.storia-payoff{margin-top:.4rem;}
.racconto-more{margin-top:1.1rem;margin-bottom:0;}
.racconto-more a{font-family:var(--font-accent);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:700;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease;}
.racconto-more a:hover{border-bottom-color:var(--red);}
.racconto-more a:hover span{margin-left:.25rem;}
.reviews{background:var(--cream-2);}
.reviews-head{max-width:720px;margin:0 auto 2.2rem;text-align:center;}
.reviews-intro{font-family:var(--font-hand);font-size:clamp(1.1rem,2.4vw,1.5rem);color:var(--brown);margin:.6rem 0 0;}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.review-card{display:flex;flex-direction:column;gap:.55rem;background:var(--cream);border:1px solid rgba(75,44,31,.12);border-radius:8px;padding:1.3rem 1.35rem;}
.review-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;}
.review-rating{color:#e8a300;letter-spacing:.06em;font-size:1rem;}
.review-platform{font-family:var(--font-accent);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:.22rem .55rem;border-radius:999px;white-space:nowrap;}
.review-platform-google{color:#1a73e8;background:rgba(26,115,232,.1);}
.review-platform-tripadvisor{color:#1b6f5b;background:rgba(27,111,91,.12);}
.review-title{font-weight:700;margin:0;color:var(--brown);}
.review-text{margin:0;color:var(--brown);line-height:1.55;font-size:.96rem;}
.review-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.82rem;color:#6b5647;margin-top:auto;padding-top:.3rem;}
.review-meta .dot{opacity:.5;}
.review-author{font-weight:600;}
.review-link{font-size:.8rem;color:var(--red);font-weight:600;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease;}
.review-link:hover{border-bottom-color:var(--red);}
.reviews-pager{display:flex;justify-content:center;gap:.6rem;margin-top:1.4rem;}
.reviews-pager button{width:42px;height:42px;border-radius:999px;border:1px solid var(--red);background:transparent;color:var(--red);font-size:1.25rem;line-height:1;cursor:pointer;transition:background-color .2s ease,color .2s ease;}
.reviews-pager button:hover{background:var(--red);color:var(--cream);}
.reviews-ctas{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.8rem;}
.reviews-note{max-width:640px;margin:1.5rem auto 0;text-align:center;font-size:.78rem;line-height:1.5;color:#6b5647;}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:1200;background:var(--brown);color:var(--cream);box-shadow:0 -6px 24px rgba(0,0,0,.18);}
.cookie-banner-inner{max-width:var(--maxw);margin:0 auto;padding:1rem 1.2rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.cookie-banner-text{margin:0;font-size:.86rem;line-height:1.45;flex:1 1 320px;}
.cookie-banner-text a{color:var(--cream);text-decoration:underline;text-underline-offset:2px;}
.cookie-banner-actions{display:flex;gap:.6rem;flex:0 0 auto;}
@media(max-width:860px){.reviews-grid{grid-template-columns:1fr;}}
.storia-claim-close{font-family:var(--font-hand);font-size:clamp(1.15rem,2.6vw,1.5rem);color:var(--brown);margin:.6rem 0 0;}
.storia-cta-block{text-align:center;}
.storia-ctas{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;}
.storia-pizzino{margin-top:1.4rem;font-size:.95rem;}
.storia-pizzino a{color:var(--brown-soft);text-decoration:underline;text-underline-offset:3px;}
.location-card .img-placeholder{aspect-ratio:4/3;margin-bottom:1.1rem;}

/* Booking modal */
.booking-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1rem;}
.booking-modal[hidden]{display:none;}
.booking-backdrop{position:absolute;inset:0;background:#2a180fcc;}
.booking-dialog{position:relative;background:var(--cream);max-width:440px;width:100%;padding:2.2rem;border-radius:6px;}
.booking-dialog h2{color:var(--red);}
.booking-sub{color:var(--brown-soft);margin-top:-.6rem;}
.booking-close{position:absolute;top:.7rem;right:1rem;background:none;border:0;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--brown);}
.booking-choices{list-style:none;padding:0;margin:1.4rem 0 0;}
.booking-choices li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid #4b2c1f22;}
.booking-loc{display:flex;flex-direction:column;}
.booking-loc-name{font-family:var(--font-accent);font-weight:700;}
.booking-loc-city{font-size:.85rem;color:var(--brown-soft);}
.booking-status{font-size:.8rem;color:#9a3b2a;text-align:right;max-width:150px;}

/* Footer */
.site-footer{background:var(--brown);color:var(--cream);padding:var(--space) 0 2rem;margin-top:0;}
.footer-grid{display:grid;gap:2.5rem;grid-template-columns:1.4fr 1fr 1fr 1fr;}
.site-footer h2{color:var(--cream);font-size:1.05rem;}
.site-footer a{color:var(--cream);}
.site-footer .brand-name{color:var(--cream);}
.footer-logo{display:block;width:210px;height:auto;max-width:100%;object-fit:contain;margin-bottom:.4rem;}
.ravenna-hero-img{object-position:center 40%;}
.pillar-img-ricordi{object-position:center 45%;}
.ravenna-intro{padding-top:calc(var(--space)*.55);padding-bottom:calc(var(--space)*.4);}
.hg-grid3 .hg-track{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible;padding-bottom:0;}
.hg-grid3 .hg-item{height:auto;flex:initial;scroll-snap-align:none;}
.hg-grid3 .hg-item img,.hg-grid3 .hg-img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;}
@media(max-width:720px){.hg-grid3 .hg-track{grid-template-columns:1fr;}}
.footer-loc address{font-style:normal;line-height:1.9;font-size:.92rem;}
.footer-legal ul{list-style:none;padding:0;margin:0;line-height:2;}
.socials{display:flex;gap:1.2rem;margin-top:1rem;}
.footer-bottom{margin-top:2.5rem;opacity:.7;font-size:.8rem;}
.footer-link{display:inline-block;margin-top:.6rem;font-size:.85rem;}

/* Photography */
.hero-media{margin-top:1.5rem;}
.hero-media .hero-img{width:100%;max-height:540px;object-fit:cover;border-radius:3px;}
.rich{white-space:pre-line;}
.hero-descr{font-size:1.05rem;margin:-.2rem 0 .4rem;}
.hero-home .hero-ctas{display:flex;gap:.8rem;flex-wrap:wrap;}
.ps-claim{font-family:var(--font-hand);font-weight:700;font-size:clamp(1.35rem,2.9vw,1.9rem);line-height:1.2;margin:0 0 1rem;color:var(--cream);}
.loc-address{font-size:.95rem;margin:.2rem 0 .6rem;}
.location-ctas{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-top:1rem;}
.lunch-lines{list-style:none;padding:0;margin:0;}
.lunch-lines li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid #4b2c1f22;}
.menu-validity{font-size:.85rem;color:var(--brown-soft);}
.pullquote{font-family:var(--font-hand);font-weight:700;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.2;color:var(--red);border-left:4px solid var(--red);padding:.3rem 0 .3rem 1.2rem;margin:1.6rem 0;white-space:pre-line;}
.landing-links{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-top:2.2rem;}
.section-red .hero-media{margin:1.6rem 0;}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;}
.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px;}
.loc-media img{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:1rem;border-radius:3px;}

@media (max-width:860px){
  .menu-catnav ul{flex-wrap:nowrap;overflow-x:auto;gap:1.3rem;}
  .two-col,.pillars,.locations-grid,.links-grid,.footer-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .site-header{padding-top:env(safe-area-inset-top,0);}
  .primary-nav{display:none;position:fixed;left:0;right:0;top:calc(70px + env(safe-area-inset-top,0));background:var(--cream);flex-direction:column;align-items:flex-start;gap:1.2rem;padding:1.5rem clamp(1.15rem,4vw,2.5rem);border-bottom:1px solid #4b2c1f22;box-shadow:0 8px 20px #0002;z-index:45;max-height:calc(100vh - 70px - env(safe-area-inset-top,0));overflow-y:auto;box-sizing:border-box;}
  .primary-nav.open{display:flex;}
  .primary-nav ul{flex-direction:column;gap:1.1rem;width:100%;}
  .nav-prenota{display:none;}
  .header-prenota{display:inline-flex;}
  .nav-toggle{display:flex;order:3;}
  .header-prenota{order:2;padding:.6rem 1.1rem;}
}
