@font-face{font-family:"Bree Serif";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bree-serif-400.woff2) format("woff2")}
@font-face{font-family:"Rokkitt";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/rokkitt-500.woff2) format("woff2")}
@font-face{font-family:"Rokkitt";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/rokkitt-700.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/source-sans-3-400.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/source-sans-3-600.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/source-sans-3-400-italic.woff2) format("woff2")}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.day .when{font-family:var(--label);font-weight:700;letter-spacing:.1em;color:var(--gold-ink);font-size:.9rem;text-transform:uppercase}
.contacts dd a{color:var(--ink);text-decoration-color:var(--gold)}
.lang a{color:var(--mute);text-decoration:none}
.lang a:hover{color:var(--ink)}
.legal{display:grid;gap:1.5rem;margin-top:2rem;border-top:1.5px solid var(--ink);padding-top:1.5rem}
.legal h2{font-size:1.2rem;margin-bottom:.4rem}
.legal p{color:var(--mute)}
footer a{color:var(--mute)}

/* Layout: mobile-first, una colonna come un menu stampato; il tetto del logo divide le sezioni; barra contatti fissa in basso sul telefono. */
:root{
  --paper:#FFFFFF; --ink:#16130F; --gold:#B88F22; --gold-ink:#7A5D0F;
  --mute:#5E574C; --line:#E4DED2; --wash:#F7F4EC;
  --display:"Bree Serif",Georgia,serif;
  --label:"Rokkitt",Georgia,serif;
  --body:"Source Sans 3",system-ui,-apple-system,sans-serif;
  --gut-l:max(16px,env(safe-area-inset-left,0px)); --gut-r:max(16px,env(safe-area-inset-right,0px));
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#14120F; --ink:#F1ECE2; --gold:#D4AE45; --gold-ink:#E3C46B;
  --mute:#B3AA9A; --line:#332E26; --wash:#1D1A16; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#14120F; --ink:#F1ECE2; --gold:#D4AE45; --gold-ink:#E3C46B;
  --mute:#B3AA9A; --line:#332E26; --wash:#1D1A16; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;
  padding-left:var(--gut-l);padding-right:var(--gut-r);padding-bottom:5.5rem}
a{color:var(--gold-ink);text-underline-offset:3px}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.wrap{max-width:46rem;margin:0 auto}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.15;text-wrap:balance;margin:0}
h1{font-size:clamp(1.9rem,7vw,2.8rem)}
h2{font-size:clamp(1.5rem,5.5vw,2rem)}
h3{font-size:1.25rem}
p{margin:0}
.label{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;color:var(--gold-ink)}
.todo{background:color-mix(in srgb,var(--gold) 24%,transparent);padding:0 .3em;border-radius:3px;font-style:normal}
.mute{color:var(--mute)}
.stack{display:grid;gap:1rem}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--paper);border-bottom:1px solid var(--line);
  margin-inline:calc(-1*var(--gut-l)) calc(-1*var(--gut-r));padding-left:var(--gut-l);padding-right:var(--gut-r)}
.bar{max-width:46rem;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.5rem}
.brand{font-family:var(--label);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;font-size:1rem}
.brand b{font-family:var(--display);font-weight:400;letter-spacing:0;text-transform:none;color:var(--gold);font-size:1.3rem;margin-right:.3rem}
.bar-right{display:flex;align-items:center;gap:.9rem}
.lang{font-family:var(--label);font-weight:700;font-size:.85rem;letter-spacing:.1em;color:var(--mute)}
.lang strong{color:var(--ink)}
.menubtn{font:inherit;font-family:var(--label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;background:none;border:1.5px solid var(--ink);color:var(--ink);padding:.45rem .8rem;min-height:2.6rem;cursor:pointer}
#nav{max-width:46rem;margin:0 auto;padding-bottom:1rem}
#nav ul{list-style:none;margin:0;padding:0;display:grid}
#nav a{display:block;padding:.8rem 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;font-family:var(--display);font-size:1.2rem}
#nav a small{display:block;font-family:var(--body);font-size:.85rem;color:var(--mute)}

/* pagine */
.page{display:grid;gap:0;padding-top:1.75rem}
.crumb{font-size:.9rem;color:var(--mute);margin-bottom:1rem}
.crumb a{color:var(--mute)}
.roof{display:block;width:100%;max-width:11rem;height:24px;margin:3rem auto 2rem;color:var(--gold)}

/* hero home: logo centrale */
.hero{display:grid;gap:1.1rem;justify-items:center;text-align:center}
.hero .lead{max-width:34rem}
.plate{background:#FFFFFF;border-radius:6px;padding:.75rem;width:min(15rem,70%);max-width:100%}
.plate img{display:block;width:100%;height:auto}
.lead{font-size:1.15rem;color:var(--mute)}
.cta{display:grid;gap:.6rem;margin-top:.25rem}
.btn{display:block;text-align:center;font-family:var(--label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.95rem;padding:.9rem 1.2rem;text-decoration:none;border:1.5px solid var(--ink);color:var(--ink)}
.btn.solid{background:var(--ink);color:var(--paper)}

/* fatti */
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1.5px solid var(--ink);margin:2rem 0 0}
.facts div{padding:.9rem .75rem .9rem 0;border-bottom:1px solid var(--line);display:grid;gap:.15rem;min-width:0}
.facts div:nth-child(even){padding-left:.9rem;border-left:1px solid var(--line)}
.facts dt{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:var(--mute)}
.facts dd{margin:0;font-family:var(--display);font-size:1.05rem;line-height:1.3}

.sechead{display:grid;gap:.4rem;margin-bottom:1.25rem}

/* servizi */
.menu{list-style:none;margin:0;padding:0;display:grid}
.menu li{border-top:1px solid var(--line)}
.menu a.item{display:grid;gap:.35rem;padding:1.1rem 0;text-decoration:none;color:inherit}
.menu .row{display:flex;align-items:baseline;gap:.6rem}
.menu .dots{flex:1;border-bottom:1.5px dotted var(--line);transform:translateY(-.3rem);min-width:.75rem}
.menu .go{font-family:var(--label);font-weight:700;color:var(--gold-ink);font-size:1.1rem}
.menu p{color:var(--mute);font-size:1rem}

/* recensioni */
.score{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.score strong{font-family:var(--display);font-size:2.6rem;font-weight:400;line-height:1}
.stars{color:var(--gold);letter-spacing:.1em;font-size:1.2rem}
.reviews{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;gap:1.25rem}
.reviews li{border-left:2px solid var(--gold);padding-left:1rem;display:grid;gap:.3rem}
.reviews q{font-family:var(--display);font-size:1.15rem;line-height:1.4;quotes:"«" "»"}
.reviews small{color:var(--mute)}

/* staff */
.duo{display:grid;gap:1.75rem}
.duo figure{margin:0;display:grid;gap:.5rem}
.duo blockquote{margin:0;font-family:var(--display);font-size:1.2rem;line-height:1.4}
.duo figcaption{color:var(--mute)}
.duo figcaption strong{color:var(--ink);font-weight:600}

/* blocchi su fondo */
.band{background:var(--wash);margin-inline:calc(-1*var(--gut-l)) calc(-1*var(--gut-r));padding:2.25rem var(--gut-r) 2.25rem var(--gut-l);margin-top:3rem}
.band .wrap{display:grid;gap:1.75rem}
.band article{display:grid;gap:.4rem}
.band p{color:var(--mute)}

/* tabella info */
.info{margin:0;display:grid;border-top:1.5px solid var(--ink)}
.info div{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.info dt{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--mute);padding-top:.15rem}
.info dd{margin:0;min-width:0}

/* passi */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem;counter-reset:s}
.steps li{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:.75rem;counter-increment:s}
.steps li::before{content:counter(s);font-family:var(--display);font-size:1.4rem;color:var(--gold);line-height:1.2}
.steps h3{font-size:1.1rem;margin-bottom:.2rem}

/* menu esempio */
.carta{border:1.5px solid var(--ink);padding:1.5rem 1.25rem;text-align:center;display:grid;gap:1.1rem}
.carta h3{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.85rem;color:var(--gold-ink)}
.carta ul{list-style:none;margin:.35rem 0 0;padding:0;display:grid;gap:.25rem;font-family:var(--display);font-size:1.08rem}
.photo{aspect-ratio:4/3;max-width:100%;border:1.5px dashed var(--line);display:grid;place-items:center;text-align:center;color:var(--mute);font-size:.95rem;padding:1rem;background:var(--wash)}

/* faq */
.faq{border-top:1.5px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;font-family:var(--display);font-size:1.1rem;min-height:3rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{padding-bottom:1.1rem;color:var(--mute)}

/* mappa sito */
.sitemap{list-style:none;margin:0;padding:0;display:grid;border-top:1.5px solid var(--ink)}
.sitemap li{padding:1rem 0;border-bottom:1px solid var(--line);display:grid;gap:.3rem}
.sitemap code{font-size:.85rem;color:var(--gold-ink);overflow-wrap:anywhere}
.sitemap .q{font-size:.92rem;color:var(--mute)}
.sitemap .q b{color:var(--ink);font-weight:600}
.tag{font-family:var(--label);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);padding:.05rem .4rem;color:var(--mute);margin-left:.4rem;vertical-align:middle}
.tag.ok{border-color:var(--gold);color:var(--gold-ink)}

/* contatti */
.contacts{margin:0;display:grid;border-top:1.5px solid var(--ink)}
.contacts div{padding:.85rem 0;border-bottom:1px solid var(--line);display:grid;gap:.1rem}
.contacts dt{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--mute)}
.contacts dd{margin:0;font-size:1.1rem;user-select:all}
.contacts dd.addr{user-select:text}

footer{margin-top:3rem;padding:1.5rem 0;border-top:1px solid var(--line);color:var(--mute);font-size:.88rem;display:grid;gap:.3rem}

/* barra fissa contatti */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--ink);display:grid;grid-template-columns:1fr 1fr 1fr;
  padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
.dock a{color:var(--paper);text-decoration:none;text-align:center;padding:.7rem .25rem;font-family:var(--label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;display:grid;gap:.1rem;min-height:3.5rem;align-content:center}
.dock a + a{border-left:1px solid color-mix(in srgb,var(--paper) 20%,transparent)}
.dock a span{font-family:var(--body);font-weight:400;letter-spacing:0;text-transform:none;font-size:.72rem;opacity:.75}
.dock a.main{background:var(--gold);color:#16130F}
.dock a.main span{opacity:.8}

@media (min-width:760px){
  .cta{grid-template-columns:auto auto;justify-content:center}
  .facts{grid-template-columns:repeat(4,minmax(0,1fr))}
  .facts div:nth-child(even){padding-left:.9rem}
  .facts div:nth-child(n+2){padding-left:.9rem;border-left:1px solid var(--line)}
  .duo{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

.cta{width:100%;max-width:26rem}
.places{list-style:none;margin:0;padding:0;display:grid;border-top:1.5px solid var(--ink)}
.places li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
.places b{font-family:var(--display);font-weight:400;font-size:1.12rem}
.places span{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;color:var(--gold-ink);align-self:center}
.places p{grid-column:1 / -1;color:var(--mute);font-size:.98rem}
.appendix{border:1px solid var(--line);padding:1.1rem 1.1rem;display:grid;gap:.35rem;margin-top:1.5rem}
.appendix p{color:var(--mute);font-size:.98rem}
.day{list-style:none;margin:0;padding:0;display:grid;border-left:2px solid var(--gold);margin-left:.4rem}
.day li{padding:0 0 1.1rem 1.1rem;display:grid;gap:.15rem}
.day time{font-family:var(--label);font-weight:700;letter-spacing:.1em;color:var(--gold-ink);font-size:.9rem}

[hidden]{display:none!important}
.excl{display:grid;gap:.5rem;margin-top:1.75rem;padding:1.4rem 1.25rem;background:var(--ink);color:var(--paper);text-decoration:none;border-top:3px solid var(--gold)}
.excl .label{color:var(--gold)}
.excl b{font-family:var(--display);font-weight:400;font-size:1.35rem;line-height:1.3;text-wrap:balance}
.excl small{opacity:.8;font-size:.95rem}
.excl .go{color:var(--gold);font-size:.95rem;letter-spacing:.1em;text-transform:uppercase}
.phead + .info{margin-top:2rem}
.lang{white-space:nowrap}
@media (max-width:400px){.brand{letter-spacing:.1em;font-size:.92rem}.bar-right{gap:.6rem}}
.ico{width:2.4rem;height:2.4rem;flex:none;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ico .g,.ico use{}
.ico.big{width:3.6rem;height:3.6rem;stroke-width:1.5}
symbol .g{stroke:var(--gold)}
.phead{display:grid;gap:.7rem;justify-items:center;text-align:center}
.phead .lead{max-width:36rem}
.crumb{text-align:center}
.cta{width:100%;max-width:26rem}
.btn.wide{margin-top:2rem}
/* menu a tendina con icone */
#nav ul{grid-template-columns:1fr}
#nav a{display:flex;align-items:center;gap:.85rem}
#nav a .ico{width:2rem;height:2rem}
#nav a span small{display:block;font-family:var(--body);font-size:.85rem;color:var(--mute)}
@media (min-width:640px){#nav ul{grid-template-columns:1fr 1fr;column-gap:2rem}}
/* servizi */
.svc{list-style:none;margin:0;padding:0;display:grid;border-top:1.5px solid var(--ink)}
.svc li{border-bottom:1px solid var(--line)}
.svc a{display:flex;align-items:center;gap:1rem;padding:1rem 0;text-decoration:none;color:inherit;min-height:3.5rem}
.svc .t{flex:1;min-width:0;display:grid;gap:.2rem}
.svc p{color:var(--mute);font-size:.98rem}
.go{font-family:var(--label);font-weight:700;color:var(--gold-ink);font-size:1.2rem}
.season,.b2b{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit;border:1.5px solid var(--gold);padding:1rem 1.1rem;margin-top:1.75rem;background:var(--wash)}
.season > span,.b2b > span:not(.go){display:grid;gap:.15rem;min-width:0;flex:1}
.season b,.b2b b{font-family:var(--display);font-weight:400;font-size:1.2rem}
.season small,.b2b small{color:var(--mute);font-size:.95rem}
.b2b{background:transparent;border-color:var(--ink)}
.score{margin-bottom:.25rem}
.more{margin-top:1.25rem;color:var(--mute)}
.textlink{font-family:var(--label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.sechead{justify-items:start}
/* liste */
.places{list-style:none;margin:0;padding:0;display:grid;border-top:1.5px solid var(--ink)}
.places li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
.places b{font-family:var(--display);font-weight:400;font-size:1.12rem}
.places span{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--gold-ink);align-self:center;text-align:right}
.places p{grid-column:1 / -1;color:var(--mute);font-size:.98rem}
.day{list-style:none;margin:0;padding:0;display:grid;border-left:2px solid var(--gold);margin-left:.4rem}
.day li{padding:0 0 1.1rem 1.1rem;display:grid;gap:.15rem}
.day time{font-family:var(--label);font-weight:700;letter-spacing:.1em;color:var(--gold-ink);font-size:.9rem}
.carta .ctitle{font-family:var(--display);font-size:1.35rem}
.carta .cnote{color:var(--mute);font-size:.9rem;font-style:italic}
.cards{display:grid;gap:1.25rem}
.cards article{border:1px solid var(--line);padding:1.25rem;display:grid;gap:.5rem;align-content:start}
.cards p{color:var(--mute)}
.en{border-left:2px solid var(--gold);padding-left:1rem;margin-top:2rem;display:grid;gap:.5rem}
.en h2{font-size:1.35rem}
.en p{color:var(--mute)}
.next{margin-top:3rem;display:grid;gap:.75rem}
.next ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.next a{display:flex;align-items:center;gap:.75rem;border:1px solid var(--line);padding:.6rem .8rem;text-decoration:none;color:var(--ink);font-family:var(--display);font-size:1.05rem}
.next .ico{width:1.9rem;height:1.9rem}
footer{gap:1rem}
.fnav{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.35rem 1rem}
.fnav a{color:var(--mute);text-decoration:none}
.fnav a.b2blink{color:var(--gold-ink);font-weight:600}
@media (min-width:760px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.next ul{grid-template-columns:repeat(3,1fr)}.fnav{grid-template-columns:repeat(4,1fr)}}
