/* São Roque — Beach & Seafood · v3 "clean"
   Fundo branco, texto em tinta escura, um só acento quente (terracota da ementa),
   site guiado pela fotografia. Títulos em Jost; apontamentos em Cormorant Garamond itálico. */
:root{
  --ink:#1C1C1A; --ink2:#55524D; --line:#E6E1DA; --paper:#FFFFFF; --soft:#F6F3EF;
  --accent:#C2805D;            /* terracota da ementa, ligeiramente mais escura para contraste */
  --accent-d:#A86744;
  --max:1200px; --radius:2px;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --serif:"Cormorant Garamond",Georgia,serif;
  /* compatibilidade com nomes antigos usados em desenhos/scripts */
  --blush:#FFFFFF; --cobalt:#1C1C1A; --cobalt-d:#1C1C1A; --terra:#C2805D; --rust:#55524D; --ochre:#C2805D; --peach:#E9D9CC; --lilac:#E9D9CC; --white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-weight:300;font-size:18px;line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
svg.draw{display:block;height:auto}
[hidden]{display:none!important}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
section[id]{scroll-margin-top:76px}
.deco{position:absolute;pointer-events:none}

/* títulos */
h1,h2,h3{font-family:var(--sans);font-weight:500;letter-spacing:-.01em;margin:0}
h2{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.08;margin:0 0 22px}
.k{font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--accent);margin:0 0 8px;letter-spacing:0}
.k.light{color:#F1E3D7}
.small{font-size:.92rem;color:var(--ink2)}
.lead{font-size:1.15rem;color:var(--ink2);max-width:60ch}

/* botões */
.btn{display:inline-block;font-family:var(--sans);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;
  background:var(--ink);color:#fff!important;padding:14px 26px;border:1px solid var(--ink);border-radius:var(--radius);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.btn:hover{background:var(--accent);border-color:var(--accent)}
.btn.line{background:transparent;color:var(--ink)!important}
.btn.line:hover{background:var(--ink);color:#fff!important;border-color:var(--ink)}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.85);color:#fff!important}
.btn.ghost:hover{background:#fff;color:var(--ink)!important}
.btn.white,.btn.light{background:#fff;border-color:#fff;color:var(--ink)!important}
.btn.white:hover,.btn.light:hover{background:var(--accent);border-color:var(--accent);color:#fff!important}
.actions{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- cabeçalho ---------- */
.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);transition:background .3s,border-color .3s}
.home .top{position:fixed;left:0;right:0}
.top .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;max-width:1320px}
.brand{color:var(--ink);text-decoration:none;justify-self:center}
.brand svg{width:132px}
.nav{display:flex;gap:26px;align-items:center}
.nav.l{justify-self:start}.nav.r{justify-self:end}
.nav a{font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;text-decoration:none;color:var(--ink)}
.nav a:not(.btn):hover{color:var(--accent)}
.nav .btn{padding:11px 18px}
.top.over{background:transparent;border-color:transparent}
.top.over .brand,.top.over .nav a:not(.btn){color:#fff}
.top.over .btn{background:transparent;border-color:#fff}
.top.over .btn:hover{background:#fff;color:var(--ink)!important}
@media (max-width:900px){.nav.l,.nav .tel{display:none}.top .wrap{grid-template-columns:auto 1fr}.brand{justify-self:start}.nav{gap:14px}}
@media (max-width:480px){.brand svg{width:104px}.nav .btn{padding:9px 12px;font-size:.72rem}}

/* ---------- abertura ---------- */
.hero3{position:relative;min-height:100vh;background:#222 center/cover no-repeat;display:flex;align-items:flex-end;color:#fff}
.hero3 .veil,.statement .veil,.band2 .veil,.revband .veil{position:absolute;inset:0}
.hero3 .veil{background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.05) 35%,rgba(0,0,0,.55) 100%)}
.hero3 .in{position:relative;width:100%;max-width:1320px;margin:0 auto;padding:0 28px 110px}
.hero3 .kicker{font-family:var(--serif);font-style:italic;font-size:1.5rem;margin:0 0 6px}
.hero3 h1{font-size:clamp(3.2rem,9vw,7.5rem);line-height:.95;font-weight:500;letter-spacing:-.03em;margin:0 0 18px}
.hero3 .claim{font-size:clamp(1.1rem,1.8vw,1.35rem);max-width:40ch;margin:0 0 30px;font-weight:300}
.hero3 .scroll{position:absolute;left:50%;bottom:28px;width:1px;height:46px;background:rgba(255,255,255,.7)}

/* ---------- blocos fotografia | texto ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;min-height:660px;background:var(--paper)}
.duo .ph{position:relative;overflow:hidden;min-height:440px;border:0;width:100%;height:100%;margin:0}
.duo .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.duo .tx{position:relative;padding:110px max(28px, calc((100vw - var(--max))/2 + 28px)) 110px 80px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.duo.rv .tx{padding:110px 80px 110px max(28px, calc((100vw - var(--max))/2 + 28px))}
.duo .tx p{color:var(--ink2);max-width:54ch;margin:0 0 16px}
.duo .tx p.note{font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.45;color:var(--ink);margin-top:10px}
.duo .tx .btn{margin-top:14px}
.duo.dark{background:var(--ink);color:#fff}
.duo.dark .tx p,.duo.dark .small{color:#CFC8C0}
.duo.dark h2{color:#fff}
@media (max-width:900px){
  .duo,.duo.rv{grid-template-columns:1fr;min-height:0}
  .duo.rv .ph{order:-1}
  .duo .tx,.duo.rv .tx{padding:64px 28px}
  .duo .ph{min-height:320px;aspect-ratio:4/3}
}

/* frase de impacto sobre fotografia */
.statement{position:relative;min-height:78vh;background:#222 center/cover no-repeat fixed;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}
.statement .veil{background:rgba(0,0,0,.52)}
.statement .in{position:relative;max-width:900px;padding:80px 28px}
.statement h2{font-size:clamp(2.2rem,5.4vw,4.4rem);line-height:1.05;letter-spacing:-.02em;margin:0 0 20px}
.statement p{font-size:1.2rem;max-width:56ch;margin:0 auto;color:#EEE7E0}
@media (max-width:900px){.statement{background-attachment:scroll;min-height:60vh}}

/* secções simples */
.sec{position:relative;padding:120px 0}
.sec.center{text-align:center}
.sec.narrow{max-width:820px;margin:0 auto;padding-left:28px;padding-right:28px}
.sec.narrow p{color:var(--ink2);font-size:1.15rem}
#praia{padding-top:170px}
.head2{margin-bottom:48px}

/* mosaico de pratos (como uma página de revista) */
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:10px;padding:0 10px}
.mosaic figure{position:relative;margin:0;overflow:hidden;background:#eee}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.mosaic figure:hover img{transform:scale(1.04)}
.mosaic figcaption{position:absolute;left:14px;bottom:12px;color:#fff;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.mosaic .m0{grid-column:span 2;grid-row:span 2}
.mosaic .m3,.mosaic .m4,.mosaic .m5{grid-column:span 2}
@media (max-width:900px){.mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:200px}.mosaic .m3,.mosaic .m4,.mosaic .m5{grid-column:span 2}}
.menu-row{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;margin-top:56px}
@media (max-width:900px){.menu-row{grid-template-columns:1fr}}
.mlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.mlist li{border-top:1px solid var(--line)}
.mlist a{display:flex;gap:18px;align-items:baseline;padding:16px 0;text-decoration:none;font-size:1.25rem;font-weight:400;color:var(--ink)}
.mlist a span{font-size:.78rem;color:var(--accent);letter-spacing:.1em}
.mlist a:hover{color:var(--accent)}
@media (max-width:600px){.mlist{grid-template-columns:1fr}}

/* recomendações */
.recs{list-style:none;margin:6px 0 18px;padding:0;width:100%;max-width:560px}
.recs li{display:flex;align-items:flex-end;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.recs b{display:block;font-weight:500;font-size:1.15rem;color:var(--ink)}
.recs small{display:block;color:var(--ink2);font-size:.92rem;line-height:1.35}
.recs i{flex:1}
.recs span{white-space:nowrap;font-weight:400;color:var(--accent-d)}
@media (max-width:600px){.recs li{flex-wrap:wrap}}

/* cocktails */
.cks{list-style:none;margin:6px 0 16px;padding:0;max-width:560px}
.cks li{padding:12px 0;border-top:1px solid rgba(255,255,255,.18)}
.cks li:last-child{border-bottom:1px solid rgba(255,255,255,.18)}
.cks b{display:block;font-weight:500;font-size:1.12rem;color:#fff}
.cks span{display:block;color:#CFC8C0;font-size:.95rem;line-height:1.4}

/* faixa de eventos */
.band2{position:relative;background:#222 center/cover no-repeat;padding:150px 28px;color:#fff;text-align:center}
.band2 .veil{background:rgba(0,0,0,.5)}
.band2 .in{position:relative;max-width:760px;margin:0 auto}
.band2 h2{color:#fff}
.band2 p{color:#EEE7E0;font-size:1.15rem;margin:0 0 30px}
.band2 .actions{justify-content:center}

/* testemunhos */
.revsec{padding-bottom:90px}
.revband{position:relative;background:#222 center/cover no-repeat;margin-top:20px;padding:96px 28px 76px;color:#fff}
.revband .veil{background:rgba(0,0,0,.55)}
.rbin{position:relative;max-width:900px;margin:0 auto}
.rev-sum{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;justify-content:center;margin:0 0 14px}
.rev-score{font-weight:500;font-size:2.8rem;line-height:1;color:#fff}
.rev-stars{color:#E8C27A;font-size:1.3rem;letter-spacing:.08em}
.rev-count{color:#E9D9CC;font-size:.95rem}
.rc{position:relative;overflow:hidden}
.rc-track{display:flex;transition:transform .7s ease}
.rc-slide{flex:0 0 100%;text-align:center;padding:0 80px}
.rc-q{font-family:var(--serif);font-size:5rem;line-height:.6;color:#E9D9CC;height:40px;margin-bottom:6px}
.rc-t{font-family:var(--serif);font-style:italic;font-size:1.6rem;line-height:1.45;margin:0 auto 22px;max-width:46ch;color:#fff}
.rc-stars{color:#E8C27A;letter-spacing:.12em;font-size:1rem;margin-bottom:10px}
.rc-src{height:28px;margin-bottom:6px;display:flex;justify-content:center}
.rc-name{display:inline-block;text-transform:uppercase;letter-spacing:.16em;color:#fff;text-decoration:none;font-size:.85rem}
.rc-when{font-size:.85rem;color:#E9D9CC;margin-top:2px}
.rc-dots{display:flex;justify-content:center;gap:9px;margin-top:30px}
.rc-dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.4);cursor:pointer}
.rc-dot.on{background:#fff}
.rc-arrow{position:absolute;top:38%;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:transparent;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}
.rc-arrow:hover{background:#fff;color:var(--ink)}
.rc-arrow.prev{left:0}.rc-arrow.next{right:0}
.rev-pending{color:#fff;text-align:center}
.rev-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:34px}
.rev-note{font-size:.85rem;color:var(--ink2);margin:18px auto 0;max-width:70ch;text-align:center}
@media (max-width:700px){.rc-slide{padding:0 4px}.rc-arrow{display:none}.rc-t{font-size:1.3rem}.revband{padding:64px 18px 50px}}

/* reservas */
.booking{background:var(--soft)}
.booking .grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
.booking .rtx p{color:var(--ink2)}
.formcard{background:#fff;padding:34px;border:1px solid var(--line);position:relative}
form.book{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
form.book .full{grid-column:1/-1}
form.book label{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:500;color:var(--ink2);margin-bottom:6px}
form.book input,form.book select,form.book textarea{width:100%;padding:12px 2px;border:0;border-bottom:1px solid #CFC8C0;border-radius:0;background:transparent;font:inherit;font-size:1.02rem;color:var(--ink)}
form.book input:focus,form.book select:focus,form.book textarea:focus{outline:none;border-bottom-color:var(--accent)}
form.book textarea{min-height:76px;resize:vertical}
form.book .check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:.92rem;font-weight:300}
form.book .check input{width:auto;margin-top:6px}
.hp{position:absolute;left:-5000px}
.msg{display:none;padding:12px 14px;margin-top:16px;font-size:1rem;border-left:3px solid}
.msg.ok{display:block;background:#EEF3EA;border-color:#4b7a3b;color:#2f5424}
.msg.err{display:block;background:#F7E5E0;border-color:#A8473A;color:#7a2a1f}
.msg.info{display:block;background:#fff;border-color:var(--ink);color:var(--ink)}
@media (max-width:900px){.booking .grid{grid-template-columns:1fr;gap:36px}}
@media (max-width:560px){form.book{grid-template-columns:1fr}.formcard{padding:22px}}

/* contactos */
.facts{list-style:none;margin:6px 0 22px;padding:0;width:100%;max-width:520px}
.facts li{padding:12px 0;border-bottom:1px solid var(--line)}
.facts b{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:500;color:var(--ink)}
.facts span{color:var(--ink2)}
#contactos .map{height:auto;min-height:440px;align-self:stretch;background:var(--soft)}

/* redes sociais */
.social{display:flex;gap:12px;margin-top:18px}
.social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.5);color:#fff;transition:background .2s,color .2s}
.social a:hover{background:#fff;color:var(--ink)}
.social svg{width:18px;height:18px}
.social.dark a{border-color:var(--line);color:var(--ink)}
.social.dark a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* rodapé */
footer{background:var(--ink);color:#E9E4DE;padding:80px 0 28px;font-size:.95rem}
footer .cols{display:grid;grid-template-columns:1.3fr .8fr .8fr 1.1fr;gap:40px}
footer svg{width:140px;color:#fff}
footer h4{text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:500;margin:6px 0 16px;color:#fff}
footer a{color:#E9E4DE}
footer .fc a:not(.btn):not(.box){display:block;text-decoration:none;padding:3px 0}
footer .fc a:hover{color:var(--accent)}
footer .fc p{margin:14px 0 0;line-height:1.65;color:#BDB6AE}
footer .box{display:block;border:1px solid #4A4743;padding:9px 12px;margin:0 0 10px;text-decoration:none;text-align:center}
footer .addr{font-size:.9rem}
footer .fc .btn{margin-top:14px;width:100%;text-align:center}
footer .fc .social a:not(.btn):not(.box){display:inline-flex;padding:0}
footer .social svg{width:18px;height:18px}
footer .legalbar{margin-top:48px;padding-top:20px;border-top:1px solid #34322F;font-size:.8rem;color:#8F8981}
@media (max-width:900px){footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){footer .cols{grid-template-columns:1fr}}

/* ---------- ementa completa (página própria) ---------- */
.menu-page{padding-top:0}
.wrap.menu-intro{padding:96px 28px 40px}
.menu-intro h1{font-size:clamp(2.4rem,5vw,3.8rem);margin:0 0 10px}
.menu-intro p{color:var(--ink2);margin:0}
.legend{display:flex;gap:18px;margin-top:14px;font-size:.92rem;color:var(--ink2)}
.jump{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:26px}
.jump a{text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px}
.jump a:hover{border-color:var(--accent);color:var(--accent)}
.spread{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.page{position:relative;padding:64px 56px 64px 40px;background:#fff}
.page.terra,.page.blue{background:var(--soft)}
.spread .page:first-child{padding-left:max(28px, calc((100vw - var(--max))/2 + 28px))}
.spread .page:last-child{padding-right:max(28px, calc((100vw - var(--max))/2 + 28px))}
.page.has-top{padding-top:64px}
.msec{margin-bottom:52px}
.msec:last-child{margin-bottom:0}
.ruled{display:block}
.vt{font-size:1.5rem;font-weight:500;letter-spacing:-.01em;margin:0 0 14px;color:var(--ink);writing-mode:horizontal-tb;transform:none}
.ruled>.body{border:0;padding:0}
.msec .note{font-size:.92rem;margin:0 0 12px;color:var(--ink2)}
.dish{display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid var(--line)}
.dish .n{font-weight:400;font-size:1.05rem;color:var(--ink);line-height:1.3}
.dish .d{font-size:.92rem;line-height:1.4;color:var(--ink2);margin-top:2px}
.dish .p{white-space:nowrap;color:var(--accent-d);font-weight:400}
.tag{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 4px;border:1px solid var(--accent);border-radius:9px;color:var(--accent-d);
  font-size:.6rem;font-weight:500;margin-left:6px;vertical-align:2px;letter-spacing:.04em}
.menu-foot{padding:36px 0 20px;font-size:.88rem;color:var(--ink2);max-width:80ch}
.actions.center{justify-content:center;margin:24px 0 90px}
@media (max-width:900px){
  .spread{grid-template-columns:1fr}
  .page,.spread .page:first-child,.spread .page:last-child{padding:48px 28px}
}

/* páginas legais */
.legal{max-width:760px;padding:96px 28px}
.legal h1{font-size:2.4rem;margin:0 0 20px}
.legal p{color:var(--ink2)}
@media (max-width:900px){.sec .deco,.duo .deco{display:none}}
.social .lr{margin-left:0}

/* cor de Verão (pôr-do-sol) em vez do fundo preto */
:root{--sun:#B5694A;--sun-txt:#FBEDE4;--sun-line:rgba(255,255,255,.28)}
.duo.dark{background:var(--sun)}
.duo.dark .tx p,.duo.dark .small,.cks span{color:var(--sun-txt)}
.duo.dark .k{color:#FFE3CF}
.cks li{border-color:var(--sun-line)}
.cks li:last-child{border-color:var(--sun-line)}
footer{background:var(--sun);color:#fff}
footer a{color:#fff}
footer .fc p,footer .addr{color:var(--sun-txt)}
footer .fc a:hover{color:#FFE3CF}
footer .box{border-color:rgba(255,255,255,.5)}
footer .btn.light{color:var(--sun)!important}
footer .btn.light:hover{background:var(--ink);border-color:var(--ink);color:#fff!important}
footer .legalbar{border-color:var(--sun-line);color:var(--sun-txt)}
footer .social a{border-color:rgba(255,255,255,.6)}
footer .social a:hover{color:var(--sun)}

/* botões na cor de Verão (sem preto) */
:root{--sun-d:#9A553A}
.btn{background:var(--sun);border-color:var(--sun);color:#fff!important}
.btn:hover{background:var(--sun-d);border-color:var(--sun-d)}
.btn.line{background:transparent;border-color:var(--sun);color:var(--sun)!important}
.btn.line:hover{background:var(--sun);border-color:var(--sun);color:#fff!important}
.btn.white,.btn.light{background:#fff;border-color:#fff;color:var(--sun)!important}
.btn.white:hover,.btn.light:hover{background:var(--sun);border-color:var(--sun);color:#fff!important}
.btn.ghost:hover{color:var(--sun)!important}
.top.over .btn:hover{color:var(--sun)!important}
.duo.dark .btn.ghost:hover{background:#fff;color:var(--sun)!important}
footer .btn.light:hover{background:var(--sun-d);border-color:var(--sun-d);color:#fff!important}
.rc-arrow:hover{color:var(--sun)}
.social.dark a:hover{background:var(--sun);border-color:var(--sun);color:#fff}
form.book input:focus,form.book select:focus,form.book textarea:focus{border-bottom-color:var(--sun)}

/* logótipo e ícones na cor de Verão */
.brand{color:var(--sun)}
.top.over .brand{color:#fff}
.social.dark a{border-color:var(--sun);color:var(--sun)}
.social.dark a:hover{background:var(--sun);color:#fff}
.mlist a span,.dish .p{color:var(--sun)}
.duo .ph.fam img{object-position:50% 18%}
.duo .ph.fam figcaption{position:absolute;left:20px;bottom:16px;color:#fff;font-family:var(--serif);font-style:italic;font-size:1.1rem;text-shadow:0 1px 10px rgba(0,0,0,.55)}
figcaption{display:none}
/* três fotografias da praia e da cidade */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 10px 10px}
.trio figure{margin:0;aspect-ratio:3/4;overflow:hidden}
.trio img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.trio figure:hover img{transform:scale(1.03)}
#praia{padding-bottom:70px}
@media (max-width:700px){.trio{grid-template-columns:1fr 1fr}.trio figure:last-child{display:none}}
.hero3{background-position:center 60%}
/* testemunhos: fotografia mais clara, véu mais leve */
.revband .veil{background:linear-gradient(180deg,rgba(20,14,10,.28),rgba(20,14,10,.42))}
.rc-t,.rc-name,.rev-score,.rev-pending{text-shadow:0 1px 14px rgba(0,0,0,.55)}
/* reservas temporárias pela DISH */
.formcard.dish{padding:0;overflow:hidden}
.dishres{display:block;width:100%;height:620px;border:0;background:#fff}
.formcard.dish .small{padding:14px 22px;margin:0;border-top:1px solid var(--line)}
/* cafetaria: duas fotografias lado a lado */
.duo .ph.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--paper)}
.duo .ph.pair img{position:static;width:100%;height:100%;min-height:440px;object-fit:cover}
.duo.cafe .cks span{color:var(--ink2)}
@media (max-width:900px){.duo .ph.pair img{min-height:0}}
.duo.cafe .cks b{color:var(--ink)}
.duo.cafe .cks li,.duo.cafe .cks li:last-child{border-color:var(--line)}
/* reservar mesa (widget DISH) — v2 */
.booking .grid{grid-template-columns:1fr minmax(0,560px);gap:80px;align-items:center;justify-content:space-between}
.booking .rtx h2{margin-bottom:18px}
.booking .rtx>p{font-size:1.12rem;max-width:44ch}
.bkinfo{list-style:none;margin:30px 0 28px;padding:0;max-width:460px}
.bkinfo li{padding:14px 0;border-top:1px solid var(--line)}
.bkinfo li:last-child{border-bottom:1px solid var(--line)}
.bkinfo b{display:block;font-weight:500;color:var(--ink);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}
.bkinfo span{color:var(--ink2);line-height:1.5}
.dishwrap{width:100%}
.formcard.dish{padding:18px 18px 6px;background:#fff;border:0;border-top:3px solid var(--sun);box-shadow:0 18px 50px rgba(60,40,30,.10)}
.dishres{height:470px}
.dishopen{display:inline-block;margin-top:14px;font-size:.92rem;color:var(--ink2);text-decoration:none;border-bottom:1px solid var(--line)}
.dishopen:hover{color:var(--sun);border-color:var(--sun)}
@media (max-width:900px){.booking .grid{grid-template-columns:1fr;gap:40px}.formcard.dish{padding:10px 6px 0}.dishres{height:500px}}
/* régua: logótipo à esquerda, menu à direita */
.top .wrap{display:flex;justify-content:space-between;align-items:center}
.brand{justify-self:auto}
.nav.r{gap:30px}
.nav .lang{margin-left:6px;padding-left:22px;border-left:1px solid var(--line)}
.top.over .nav .lang{border-left-color:rgba(255,255,255,.4)}
@media (max-width:900px){.nav .lk{display:none}.nav .lang{border:0;padding-left:0;margin-left:0}.nav.r{gap:16px}}
/* contactos: fotografia do restaurante em vez do mapa */
.duo .ph.ext{display:block}
.duo .ph.ext img{object-position:50% 78%;transition:transform .6s ease}
.duo .ph.ext:hover img{transform:scale(1.02)}
/* botão Reservar mesa da régua: escondido na abertura e na própria secção de reservas */
.top .nav .btn{transition:opacity .35s ease,visibility .35s ease,background .3s,color .3s}
.top.nobook .nav .btn{opacity:0;visibility:hidden;pointer-events:none}
/* como chegar: mapa sem o cartão do Google, com marcador e botão próprios */
.duo .ph.mapwrap{position:relative;overflow:hidden}
.duo .ph.mapwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.85)}
.mapwrap .pin{position:absolute;left:50%;top:50%;width:30px;transform:translate(-50%,-100%);color:var(--sun);pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.3))}
.mapwrap .pin svg{display:block;width:100%}
.mapwrap .mapbtn{position:absolute;left:24px;top:24px;box-shadow:0 6px 18px rgba(0,0,0,.18)}
@media (max-width:900px){.mapwrap .mapbtn{left:16px;top:16px}}
/* régua v3: menu encostado à direita quando o botão está escondido; o botão entra e empurra o menu */
.nav.r{gap:30px}
.top .nav .btn{max-width:240px;overflow:hidden;white-space:nowrap;transition:max-width .45s ease,padding .45s ease,margin .45s ease,opacity .3s ease,border-width .45s ease,background .3s,color .3s}
.top.nobook .nav .btn{max-width:0;padding-left:0;padding-right:0;border-width:0;margin-left:-30px;opacity:0;visibility:visible;pointer-events:none}
/* logótipo: na abertura sai da régua e fica grande por cima de "Beach & Seafood" */
.hero3 .herologo{color:#fff;width:clamp(200px,24vw,320px);margin:0 0 26px}
.hero3 .herologo svg{display:block;width:100%;height:auto}
@media (max-width:900px){.hero3 .herologo{width:200px;margin-bottom:18px}}
/* logótipo grande, centrado no céu da abertura (ocupa o espaço livre acima do texto) */
.hero3 .in{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:96px}
.hero3 .herologo{align-self:center;margin:auto 0;width:clamp(240px,min(42vw,64vh),600px);filter:drop-shadow(0 2px 14px rgba(0,0,0,.25))}
@media (max-width:900px){.hero3 .herologo{width:min(78vw,340px);margin:auto 0}}
/* logótipo na régua: na abertura da página inicial 3x maior; encolhe para o tamanho normal ao descer */
.brand svg{transition:width .45s ease}
.top .wrap{transition:height .45s ease,padding .45s ease}
.top.inhero .wrap{height:auto;align-items:flex-start;padding-top:22px}
.top.inhero .brand svg{width:396px}
.top.inhero .nav.r{padding-top:16px}
@media (max-width:900px){.top.inhero .brand svg{width:230px}.top.inhero .nav.r{padding-top:10px}}
/* desenhos de traço à mão (estilo da ementa) nas secções sem fotografia */
.duo .tx{position:relative}.booking .rtx{position:relative}.legal{position:relative}
.draw.deco{color:var(--sun);opacity:.9;z-index:0}
.page .draw.deco{opacity:.8}
@media (max-width:1180px){.duo .deco,.sec .deco,.booking .deco{display:none}}
@media (max-width:900px){.page .deco,.legal .deco{display:none}}
.page.has-top{padding-top:176px}
@media (max-width:900px){.page.has-top{padding-top:64px}}
/* como chegar: mapa ilustrado (estilo Sea Me) com São Roque e Tasca da Lota */
.duo .ph.mapwrap{background:#F4EADF}
.mapwrap svg.mapa{position:absolute;inset:0;width:100%;height:100%;display:block}
.mapa .ml{font-family:var(--serif);font-style:italic}
.mapa .mt{font-family:Jost,system-ui,sans-serif;font-size:17px;letter-spacing:.14em;font-weight:600}
.mapa a:hover .mt{fill:#B5694A}
.mapwrap .pin{display:none}
@media (max-width:900px){.duo .ph.mapwrap{aspect-ratio:1/1;min-height:0}}
.mapcredit{position:absolute;right:10px;bottom:8px;font-size:.68rem;color:#8A6A5C;text-decoration:none;opacity:.8}
/* redes sociais: ícone com legenda "Siga-nos no …" por baixo */
.social{gap:26px;align-items:flex-start}
.social a.sn,footer .fc .social a.sn:not(.btn):not(.box){display:flex;flex-direction:column;align-items:center;gap:8px;width:auto;height:auto;border:0;border-radius:0;padding:0;background:none;text-decoration:none}
.social a.sn:hover{background:none}
.social a.sn .ic{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.6);transition:background .2s,color .2s}
.social a.sn:hover .ic{background:#fff;color:var(--sun)}
.social a.sn .cap{font-size:.74rem;letter-spacing:.04em;line-height:1.2;white-space:nowrap;color:inherit;opacity:.9}
.social.dark a.sn{color:var(--sun)}
.social.dark a.sn .ic{border-color:var(--sun)}
.social.dark a.sn:hover .ic{background:var(--sun);color:#fff}
/* rodapé: logótipo, texto e redes centrados */
footer .fc.fbrand{text-align:center;display:flex;flex-direction:column;align-items:center}
footer .fc.fbrand svg.draw{margin:0 auto}
footer .fc.fbrand .social{justify-content:center}

/* ===== v4: tipografia legível e descontraída, régua de vidro fosco, desenhos vivos ===== */
:root{--sans:"DM Sans","Helvetica Neue",Arial,sans-serif;--serif:"Fraunces",Georgia,serif}
body{font-weight:400;font-size:19px;line-height:1.7;color:#2E2824}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.015em;font-variation-settings:"SOFT" 100,"WONK" 1}
h2{font-size:clamp(2.6rem,5vw,4.2rem);line-height:1.04;margin:0 0 24px}
.k{font-family:var(--serif);font-style:italic;font-size:1.55rem;font-weight:400}
.small{font-size:1rem}
.lead{font-size:1.25rem}
.duo .tx p,.sec.narrow p,.booking .rtx>p{color:#3E3631;font-size:1.12rem}
.duo .tx p.note{font-family:var(--serif);font-size:1.45rem}
.hero3 .kicker{font-family:var(--serif);font-size:1.7rem}
.hero3 h1{font-family:var(--serif);font-weight:500;font-size:clamp(3.8rem,10vw,8.6rem);letter-spacing:-.025em}
.hero3 .claim{font-size:clamp(1.2rem,2vw,1.5rem);font-weight:400}
.statement h2{font-size:clamp(2.6rem,6vw,5rem)}
.statement p{font-size:1.35rem}
.band2 h2{font-size:clamp(3rem,6.4vw,5.4rem)}
.band2 p{font-size:1.35rem;line-height:1.6;max-width:44ch;margin-left:auto;margin-right:auto}
.band2 .k{font-size:1.7rem}
.mlist a{font-size:1.4rem;font-family:var(--serif)}
.recs b,.cks b{font-size:1.2rem}
.recs small,.cks span{font-size:1rem}
.rc-t{font-family:var(--serif);font-size:1.75rem}
.bkinfo span,.facts span{font-size:1.05rem}
.vt{font-family:var(--serif);font-size:1.9rem}
.dish .n{font-size:1.14rem;font-weight:500}
.dish .d{font-size:1rem}
.menu-intro h1,.legal h1{font-family:var(--serif)}
.nav a{font-size:.84rem;font-weight:500}
.btn{font-size:.86rem}
footer{font-size:1.02rem}
.mapa .mt{font-family:var(--sans)}
/* régua: transparente na abertura; nas restantes zonas, vidro fosco */
.top{background:rgba(250,246,240,.58);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);border-bottom:1px solid rgba(255,255,255,.4)}
.top.over{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:transparent}
/* desenhos: maiores, a sangrar para fora do bloco, com movimento suave */
.duo .tx,.sec{overflow:hidden}
.booking{overflow:visible}
.draw.deco{opacity:.92}
.draw.deco.sway{transform-origin:50% 90%;animation:sway 7s ease-in-out infinite alternate}
.draw.deco.float{animation:floaty 6s ease-in-out infinite alternate}
.draw.deco.drift{animation:drift 11s ease-in-out infinite alternate}
@keyframes sway{from{rotate:calc(var(--r,0deg) - 3deg)}to{rotate:calc(var(--r,0deg) + 3deg)}}
@keyframes floaty{from{translate:0 -5px}to{translate:0 6px}}
@keyframes drift{from{translate:-14px 4px}to{translate:16px -6px}}
@media (prefers-reduced-motion:reduce){.draw.deco{animation:none!important}}
.page .draw.deco{transform-origin:50% 90%;animation:sway 8s ease-in-out infinite alternate}
/* mapa desenhado por uma criança: letra manuscrita */
.mapa .ml{font-family:"Gochi Hand","Comic Sans MS",cursive;font-style:normal}
.mapa .mt{font-family:"Gochi Hand","Comic Sans MS",cursive;font-size:25px;letter-spacing:0;font-weight:400}
.duo .ph.mapwrap{background:#FBF6EE}

/* ===== desenhos por detrás do texto, como na ementa original ===== */
.draw.deco{opacity:.26;z-index:0}
.duo.dark .draw.deco{opacity:.2}
.duo .tx>*:not(.deco),.sec>*:not(.deco),.sec .wrap,.booking .rtx>*:not(.deco),.page .msec,.legal>*:not(.deco){position:relative;z-index:1}
.page.has-top{padding-top:64px}
.page .draw.deco{opacity:.24}
@media (max-width:1180px){.duo .deco,.sec .deco,.booking .deco{display:block}}
@media (max-width:900px){.page .deco,.legal .deco{display:block}.draw.deco{max-width:52vw;height:auto}}
/* eventos: texto bem legível */
.band2 .veil{background:radial-gradient(ellipse at center,rgba(20,12,8,.72) 0%,rgba(20,12,8,.55) 55%,rgba(20,12,8,.4) 100%)}
.band2 p{color:#fff;font-weight:500;font-size:1.45rem;text-shadow:0 1px 14px rgba(0,0,0,.55)}
.band2 h2,.band2 .k{text-shadow:0 2px 18px rgba(0,0,0,.5)}
.band2 .k{color:#FFE3CF}
/* avaliações do Google: legíveis */
.revband .veil{background:linear-gradient(180deg,rgba(20,12,8,.62),rgba(20,12,8,.72))!important}
.rc-t{font-size:1.9rem;line-height:1.45;font-weight:500;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.rc-name{font-size:1rem;font-weight:600}
.rc-when,.rev-count{font-size:1rem;color:#F3E6DA}
.rev-score{font-size:3.2rem}
@media (max-width:700px){.rc-t{font-size:1.4rem}.band2 p{font-size:1.2rem}}

/* v50 — mais desenhos, tom mais claro */
.draw.deco{opacity:.15}
.duo.dark .draw.deco{opacity:.13}
.page .draw.deco{opacity:.14}
.page{position:relative;overflow:hidden}
.booking .rtx{position:relative}
@media (max-width:900px){.draw.deco{max-width:40vw}}

/* v52 — ecrãs grandes: o site cresce com a janela em vez de ficar numa coluna de 1200–1320 px */
@media (min-width:1500px){
  :root{--max:min(80vw,1900px)}
  .top .wrap,.hero3 .in{max-width:min(90vw,2200px)}
  .top .wrap{height:5.4rem}
  .brand svg{width:8.6rem}
  .top.inhero .brand svg{width:clamp(396px,27vw,640px)}
  .hero3 .in{padding-bottom:7rem}
  .duo .tx{padding-top:7rem;padding-bottom:7rem}
  .statement .in{max-width:62vw}
  .band2 .in{max-width:52vw}
  .rbin{max-width:62vw}
  .sec.narrow{max-width:56vw}
  .legal{max-width:52vw}
}
@media (min-width:1900px){.draw.deco{transform-origin:center;scale:1.3}}
@media (min-width:2300px){.draw.deco{scale:1.55}}

/* v54 — tudo se ajusta à largura E à altura do ecrã */
.hero3,.hero3 .in{min-height:100svh}
@media (min-width:901px){
  /* a letra escala pelo lado mais apertado do ecrã: largura (1440 px = 16 px) ou altura (830 px = 16 px) */
  html{font-size:clamp(14px,min(calc(100vw / 90),calc(100svh / 52)),24px)}
  body{font-size:1.19rem}
  .top .wrap{height:4.75rem}
  .brand svg{width:8.25rem}
  .duo{min-height:100svh}
  .duo .ph,.duo .ph.pair img{min-height:0}
  .duo .tx{padding-top:max(6.5rem,8svh);padding-bottom:max(4rem,8svh)}
  .statement{min-height:100svh}
  .band2{min-height:100svh;display:flex;align-items:center;justify-content:center;padding-top:6rem;padding-bottom:6rem}
  .band2 .in{width:100%}
  .mosaic{grid-auto-rows:calc((100svh - 7rem) / 3.2)}
  .trio figure{aspect-ratio:auto;height:min(70svh,calc(33vw * 4 / 3))}
  .hero3 .herologo{width:clamp(220px,min(42vw,46svh),640px)}
  .top.inhero .brand svg{width:clamp(260px,min(27vw,30svh),640px)}
}

/* v55 — ementa: leitura por secção em ecrã inteiro (zoom) */
.msec{scroll-margin-top:110px}
.menu-page .msec h3{cursor:zoom-in}
html.mz-on,html.mz-on body{overflow:hidden}
.mz{position:fixed;inset:0;z-index:100;background:#FAF4EC;color:var(--ink);display:flex;flex-direction:column;opacity:0;transition:opacity .35s ease}
.mz.on{opacity:1}
.mz.terra{background:#F1E1D3}.mz.blue{background:#EAF0F4}.mz.blush{background:#FBEFE6}
.mz-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;color:var(--sun,#C9845E)}
.mzd{position:absolute;opacity:.16;width:clamp(120px,16vw,260px);height:auto}
.mzd0{left:4vw;top:12vh}.mzd1{right:5vw;top:9vh;width:clamp(100px,12vw,200px)}.mzd2{right:7vw;bottom:12vh}.mzd3{left:6vw;bottom:10vh;width:clamp(100px,13vw,220px)}.mzd4{left:44vw;top:3vh;width:clamp(90px,9vw,150px)}
.mz-top{position:relative;display:flex;justify-content:space-between;align-items:center;padding:18px 28px}
.mz-count{font-size:.8rem;letter-spacing:.18em;color:var(--ink2)}
.mz-x{width:52px;height:52px;border-radius:50%;border:1px solid rgba(0,0,0,.18);background:rgba(255,255,255,.6);font-size:2rem;line-height:1;cursor:pointer;color:var(--ink)}
.mz-x:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.mz-scroll{position:relative;flex:1;overflow:auto;-webkit-overflow-scrolling:touch;display:flex}
.mz-in{margin:auto;width:min(860px,88vw);padding:2vh 0 6vh}
.mz-in.in{animation:mzin .5s cubic-bezier(.2,.7,.2,1) both}
.mz-in.from-l.in{animation-name:mzinl}
@keyframes mzin{from{opacity:0;transform:translateX(40px) scale(.97)}to{opacity:1;transform:none}}
@keyframes mzinl{from{opacity:0;transform:translateX(-40px) scale(.97)}to{opacity:1;transform:none}}
.mz .msec{display:block;margin:0;padding:0;border:0}
.mz .msec h3{font-family:var(--serif);font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.02;margin:0 0 .5em;writing-mode:horizontal-tb;transform:none;cursor:default;text-align:center}
.mz .msec .note{text-align:center;max-width:52ch;margin:0 auto 1.6em;font-size:1.05rem}
.mz .dish{padding:.95em 0;font-size:1.18rem}
.mz .dish .n{font-size:1.28rem}
.mz .dish .d{font-size:1.02rem}
.mz .dish .p{font-size:1.24rem}
.mz-nav{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 28px 22px;border-top:1px solid rgba(0,0,0,.08)}
.mz-nav button{background:none;border:0;cursor:pointer;font:inherit;color:var(--ink);font-size:.95rem;padding:8px 4px;display:flex;align-items:center;gap:10px;max-width:38%}
.mz-nav button em{font-style:normal;font-family:var(--serif);font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mz-nav button span{font-size:1.4rem;color:var(--accent)}
.mz-nav .mz-all{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);justify-content:center}
.mz-nav button:hover em,.mz-nav .mz-all:hover{color:var(--accent)}
@media (max-width:700px){.mz-nav button em{display:none}.mz-top{padding:12px 16px}.mz-nav{padding:10px 16px 16px}.mzd{width:30vw}.mz .dish{font-size:1.05rem}.mz .dish .n{font-size:1.1rem}}
/* v57 — setas laterais grandes no zoom da ementa */
.mz-side{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:64px;height:64px;border-radius:50%;border:1px solid rgba(0,0,0,.14);background:rgba(255,255,255,.75);color:var(--accent);font-size:2.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 6px;box-shadow:0 4px 18px rgba(0,0,0,.08);transition:background .2s,color .2s,transform .2s}
.mz-side:hover{background:var(--accent);color:#fff;transform:translateY(-50%) scale(1.06)}
.mz-sp{left:max(16px,3vw)}.mz-sn{right:max(16px,3vw)}
.mz-nav{padding-bottom:max(22px,env(safe-area-inset-bottom))}
.mz-nav button{position:relative;z-index:3;min-height:48px}
.mz-scroll{z-index:1}
@media (max-width:700px){.mz-side{width:46px;height:46px;font-size:2rem;top:auto;bottom:max(84px,calc(env(safe-area-inset-bottom) + 70px));transform:none}.mz-side:hover{transform:none}.mz-nav{padding-bottom:max(18px,calc(env(safe-area-inset-bottom) + 10px))}}
@media (max-width:700px){.mz-side{display:none}.mz-nav button span{font-size:1.9rem;padding:4px 10px}}
/* v58 — rodapé do zoom (couvert, legenda, alergénios, IVA) e marca Volta */
.mz-foot{margin:3.2em auto 0;max-width:62ch;text-align:center;font-size:.82rem;line-height:1.55;color:var(--ink2);border-top:1px solid rgba(0,0,0,.1);padding-top:1.4em}
.mz-foot p{margin:0 0 .7em}
.mzf-legend{display:flex;justify-content:center;gap:22px;flex-wrap:wrap}
.mzf-legend>span{display:inline-flex;align-items:center;gap:6px}
.tag.volta{border-color:#2D7A5F;color:#2D7A5F;padding:0 3px}
.tag.volta svg{width:12px;height:12px;display:block}
.sfoot{margin:1.4em 0 0;font-size:.82rem;line-height:1.5;color:var(--ink2);display:flex;gap:10px;align-items:flex-start;text-align:left}
.sfoot .tag{flex:0 0 auto;margin-top:2px}
.mz .sfoot{justify-content:center;text-align:center;max-width:58ch;margin:1.8em auto 0;font-size:.85rem}
/* v61 — "Entre a Meia Praia e Lagos": secção a toda a largura (os desenhos já não ficam cortados) e centrada na altura */
#praia.sec.narrow{max-width:none;margin:0;padding-left:28px;padding-right:28px;position:relative;overflow:hidden}
#praia>*:not(.deco){max-width:min(54rem,70vw);margin-left:auto;margin-right:auto}
@media (min-width:901px){#praia{min-height:78svh;display:flex;flex-direction:column;justify-content:center}}
@media (max-width:900px){#praia>*:not(.deco){max-width:none}}
/* v62 — mapa da página (roadmap) */
.roadmap{position:fixed;right:max(14px,1.2vw);top:50%;transform:translateY(-50%);z-index:25;padding:10px 8px;border-radius:999px;background:rgba(250,246,240,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 16px rgba(0,0,0,.08);transition:opacity .4s}
.roadmap ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.roadmap a{position:relative;display:flex;align-items:center;justify-content:flex-end;height:26px;width:26px;text-decoration:none;color:var(--ink)}
.roadmap a i{display:block;width:8px;height:8px;margin:0 auto;border-radius:50%;background:rgba(46,40,36,.35);transition:all .3s ease}
.roadmap a:hover i{background:var(--accent);transform:scale(1.3)}
.roadmap a.on i{width:10px;height:22px;border-radius:6px;background:var(--accent)}
.roadmap .rm-n{display:none}
.roadmap .rm-l{position:absolute;right:34px;top:50%;transform:translate(8px,-50%);white-space:nowrap;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;background:rgba(250,246,240,.92);color:var(--ink);padding:5px 11px;border-radius:999px;box-shadow:0 2px 10px rgba(0,0,0,.08);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.roadmap a:hover .rm-l,.roadmap a.on .rm-l{opacity:1;transform:translate(0,-50%)}
.roadmap a.on .rm-l{background:var(--accent);color:#fff}
.roadmap:hover a.on:not(:hover) .rm-l{opacity:.0}
html.rm-hero .roadmap a.on .rm-l{opacity:0}
html.rm-hero .roadmap:hover a.on .rm-l,html.rm-hero .roadmap a.on:hover .rm-l{opacity:1}
.rm-mob{display:none}
@media (max-width:900px){
 .roadmap{display:none}
 .rm-mob{display:flex;position:fixed;left:50%;bottom:16px;transform:translate(-50%,12px);z-index:25;gap:10px;align-items:center;padding:8px 16px;border-radius:999px;background:rgba(46,40,36,.82);color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}
 .rm-mob b{font-weight:500;color:#F2C6AE}
 .rm-mob.show{opacity:1;transform:translate(-50%,0)}
}
/* v63 — aviso de cookies, política, couvert, animações fora do ecrã em pausa */
.ck{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:90;width:min(680px,calc(100vw - 32px));background:#FBF6EE;color:var(--ink);border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.18);padding:18px 20px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:.92rem;line-height:1.5}
.ck[hidden]{display:none}
.ck p{margin:0;flex:1 1 300px}
.ck a{color:var(--accent-d,#9a5538)}
.ck-b{display:flex;gap:10px}
.ck .btn{padding:10px 18px;font-size:.74rem}
footer .ck-open{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
.legal h2{font-family:var(--serif);font-size:1.45rem;margin:1.8em 0 .4em;color:var(--ink);scroll-margin-top:100px}
.sfoot.couv{display:block;text-align:left}
.mz .sfoot.couv{display:none}
.draw.deco.off{animation-play-state:paused}
/* v64 — modo mesa (QR) e sugestão de língua */
html.mesa .top .nav .btn,html.mesa .top .nav .lk,html.mesa .ck,html.mesa .menu-page .actions{display:none!important}
html.mesa .top .nav .lang{border:1px solid currentColor;border-radius:999px;padding:7px 16px;margin:0;letter-spacing:.08em}
html.mesa .menu-intro{padding-top:28px}
.lsug{position:sticky;top:76px;z-index:20;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:12px 18px;background:#2E2824;color:#fff;font-size:.95rem}
.lsug[hidden]{display:none}
.lsug .btn{padding:8px 16px;font-size:.72rem}
.lsug .btn.line{color:#fff!important;border-color:rgba(255,255,255,.6)!important;background:transparent!important}
@media (max-width:900px){.lsug{top:64px}}
/* v65 — avisos legais (fumo, atendimento prioritário, álcool) */
.avisos{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.avisos li{display:flex;gap:10px;align-items:flex-start}
.avisos .avi{flex:0 0 22px;width:22px;height:22px;margin-top:1px}
.avisos .avi svg{width:22px;height:22px;display:block}
.avisos.ft{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;margin-top:40px;padding-top:24px;border-top:1px solid var(--sun-line,rgba(255,255,255,.25));font-size:.8rem;line-height:1.5;color:var(--sun-txt,#F3E3D6)}
@media (max-width:900px){.avisos.ft{grid-template-columns:1fr}}
.avisos.mzf{margin:1.2em auto 0;max-width:62ch;text-align:left;font-size:.78rem;color:var(--ink2)}
.avisos.mzf .avi{color:var(--accent)}
/* v68 — títulos da ementa crescem ao passar o rato (convite a clicar) */
.menu-page .msec h3{cursor:pointer;display:inline-block;transform-origin:left center;transition:transform .25s ease,color .25s ease}
.menu-page .msec h3:hover,.menu-page .msec h3:focus-visible{transform:scale(1.12);color:var(--accent)}
.mz .msec h3,.mz .msec h3:hover{cursor:default;transform:none;color:inherit;display:block}
/* v71 — carta de vinhos: regiões como subtítulos */
.msec .subh{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--accent);margin:1.4em 0 .2em;padding-bottom:.25em;border-bottom:1px solid rgba(181,105,74,.35)}
.msec .body>.subh:first-child,.msec .note+.subh{margin-top:.4em}
.mz .msec .subh{font-size:1.45rem;text-align:left;margin-top:1.6em}
/* v72 — ligação entre ementa e menu Bom dia */
.menu-intro .bdlink{margin:18px 0 0;font-size:.95rem}
.menu-intro .bdlink a{color:var(--accent);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px}
html.mesa .menu-intro .bdlink{display:none}

/* v78 — recomendações: categorias sem numeração, subtítulo «Da nossa banca» e botão para a ementa */
#recomendacoes .rlist{width:100%;max-width:560px;margin:8px 0 34px}
#recomendacoes .rlist a{padding:14px 0}
#recomendacoes .rlist a::after{content:"\2192";margin-left:auto;font-family:var(--sans,inherit);font-size:.9rem;color:var(--accent);opacity:.7;transition:transform .2s}
#recomendacoes .rlist a:hover::after{transform:translateX(4px);opacity:1}
#recomendacoes .rlist li:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
@media (max-width:600px){#recomendacoes .rlist li:nth-last-child(2){border-bottom:0}}
#recomendacoes .rec-sub{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.2vw,2rem);margin:0 0 4px;color:var(--ink)}
#recomendacoes .btn{margin-top:22px}
.mz.rec .mz-count{letter-spacing:.08em}
.mz.rec .mz-all{background:var(--accent);color:#fff;padding:12px 22px;border-radius:2px;letter-spacing:.14em}
.mz.rec .mz-all:hover{background:var(--accent-d,var(--accent));color:#fff}

/* v83 — Eventos em duas colunas: fotografia com o destaque de Natal + texto com os tipos de evento */
#eventos .ph{min-height:720px}
#eventos .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.35));pointer-events:none}
#eventos .xmas{position:absolute;z-index:2;left:40px;right:40px;bottom:40px;max-width:460px;padding:30px 32px;background:var(--accent);color:#fff;box-shadow:0 18px 40px rgba(0,0,0,.25)}
#eventos .xmas .k{color:#fff;opacity:.85;margin:0 0 6px}
#eventos .xmas h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,2.3vw,2.1rem);line-height:1.15;color:#fff;margin:0 0 12px}
#eventos .xmas p{color:#fff;margin:0 0 20px;font-size:1rem;line-height:1.6}
#eventos .xmas .btn{margin:0}
#eventos .evs{margin:10px 0 26px}
#eventos .evs li{align-items:center}
#eventos .actions{display:flex;flex-wrap:wrap;gap:12px}
#eventos .actions .btn{margin:0}
@media (max-width:900px){
 #eventos .ph{display:contents}
 #eventos .ph img{position:relative;height:320px;order:0}
 #eventos .tx{order:1}
 #eventos .xmas{order:2}
 #eventos .ph::after{display:none}
 #eventos .xmas{position:relative;left:auto;right:auto;bottom:auto;max-width:none;box-shadow:none;padding:28px}
}
#cocktails .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
#cocktails .actions .btn{margin:0}

/* v81 — rodapé da página inicial sem duplicar a secção Contactos */


/* v82 — botões de avaliação (Google, Tripadvisor) junto às redes sociais */
.social{flex-wrap:wrap;row-gap:18px}

/* v84 — rodapé reorganizado: marca + avaliações à esquerda, páginas em duas colunas, avisos alinhados */
footer .fc.fbrand{text-align:left;align-items:flex-start}
footer .fc.fbrand svg.draw{margin:0}
footer .fc.fbrand p{max-width:40ch}
footer .fc.fbrand .social{justify-content:flex-start;margin-top:26px}
footer .social.reviews{gap:28px}
footer .cols.slim{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:96px;align-items:start}
footer .fpages>div{display:grid;grid-template-columns:repeat(2,max-content);column-gap:64px;row-gap:2px}
footer .fc .social{margin:16px 0 4px}
.avisos.ft{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
@media (max-width:1200px){.avisos.ft{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){footer .cols.slim{grid-template-columns:1fr;row-gap:44px}.avisos.ft{grid-template-columns:1fr}}
@media (max-width:560px){footer .fpages>div{column-gap:32px}}
/* rodapé: avaliações e redes em botões-pílula (ícone + texto na mesma linha) */
footer .social{display:flex;flex-wrap:wrap;gap:10px}
footer .social a.sn,footer .fc .social a.sn:not(.btn):not(.box){flex-direction:row;gap:9px;align-items:center;padding:8px 16px 8px 12px;border:1px solid rgba(255,255,255,.55);border-radius:999px;text-decoration:none;transition:background .2s,color .2s}
footer .social a.sn .ic{width:auto;height:auto;border:0;border-radius:0}
footer .social a.sn .ic svg{width:16px;height:16px}
footer .social a.sn .cap{font-size:.78rem;opacity:1}
footer .social a.sn:hover{background:#fff;color:var(--sun,var(--accent))}
footer .social a.sn:hover .ic{background:none;color:inherit}
footer .fc:not(.fbrand) .social{flex-direction:column;align-items:stretch}
footer .legalbar{border-top:0;position:relative}
footer .legalbar::before{content:"";position:absolute;top:0;left:28px;right:28px;border-top:1px solid rgba(255,255,255,.25)}
footer .social{row-gap:10px}
/* v86 — Eventos: como pedir proposta (dados a enviar e prazo de resposta) */
#eventos .evhow{margin:0 0 24px;max-width:560px}
#eventos .evhow p{margin:0 0 10px;font-size:1rem;color:var(--ink)}
#eventos .evhow ol{list-style:none;counter-reset:ev;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
#eventos .evhow ol li{counter-increment:ev;display:flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border:1px solid var(--line);border-radius:999px;font-size:.9rem;color:var(--ink)}
#eventos .evhow ol li::before{content:counter(ev);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:.75rem}
#eventos .evhow .evreply{font-family:var(--serif);font-style:italic;color:var(--accent);margin:0}
#eventos .evs{margin:6px 0 24px}
/* v87 — métodos de pagamento no rodapé */
footer .pay{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;max-width:340px}
footer .pay li{padding:5px 11px;border:1px solid rgba(255,255,255,.45);border-radius:4px;font-size:.78rem;letter-spacing:.02em;color:#fff;line-height:1.3}
footer .cols.slim{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.9fr);column-gap:64px}
footer .fpay2{margin-top:30px}
footer .fpay2 h4{margin-top:0}
@media (max-width:1100px){footer .cols.slim{grid-template-columns:1fr 1fr}footer .cols.slim .fpay{grid-column:2}}
@media (max-width:900px){footer .cols.slim{grid-template-columns:1fr}footer .cols.slim .fpay{grid-column:auto}}
/* v91 — marca do rodapé centrada (logótipo, texto justificado, botões) e avisos justificados */
footer .fc.fbrand{align-items:center;text-align:center;max-width:44ch}
footer .fc.fbrand svg.draw{margin:0 auto}
footer .fc.fbrand p{text-align:justify;text-align-last:center;hyphens:auto;-webkit-hyphens:auto;max-width:none}
footer .fc.fbrand .social{justify-content:center}
.avisos.ft li>span:not(.avi),.avisos.ft li p,.avisos.ft li div{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
footer .legalbar{text-align:center}

/* v99 — página «Trabalhe connosco» */
.wrap.jobs{position:relative;max-width:980px;padding-top:150px;padding-bottom:90px}
.jobs h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,5vw,3.8rem);margin:0 0 18px}
.jobs .lead{font-size:1.15rem;line-height:1.7;color:var(--ink2);max-width:64ch;margin:0 0 44px}
.jgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.jgrp h2{font-family:var(--serif);font-weight:400;font-size:1.6rem;margin:0 0 10px}
.jgrp ul{list-style:none;margin:0;padding:0}
.jgrp li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.jgrp li span{font-size:1rem;color:var(--ink)}
.btn.sm{padding:7px 12px;font-size:.68rem;letter-spacing:.12em;white-space:nowrap}
.jopen{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:48px 0 26px;padding:28px 32px;background:var(--accent);color:#fff}
.jopen h2{font-family:var(--serif);font-weight:400;font-size:1.6rem;margin:0 0 6px;color:#fff}
.jopen p{margin:0;color:#fff}
.jopen a.btn{background:#fff!important;color:var(--accent)!important;border-color:#fff!important;white-space:nowrap}
.jhow{color:var(--ink2);margin:0 0 10px}
.jpriv{font-size:.85rem;color:var(--ink2)}
@media (max-width:900px){.jgrid{grid-template-columns:1fr}.jopen{flex-direction:column;align-items:flex-start}.wrap.jobs{padding-top:110px}}
/* v102 — política de privacidade com texto justificado */
.legal p{text-align:justify;hyphens:auto;-webkit-hyphens:auto}

/* v115 — rodapé da ementa (zoom) com o mesmo tamanho das descrições dos pratos */
.mz .mz-foot{font-size:1.02rem;line-height:1.5;max-width:none}
.mz .mz-foot p{margin:0 0 .85em}

/* v118 — carta de vinhos fora da ementa completa */
.wl-store{display:none!important}
.jump .jwine{font-style:italic}
