
:root{--green:#16221c;--green2:#0e1712;--gold:#c7a663;--cream:#f2eadc;--ink:#171713;--muted:#aaa596}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--green2);color:var(--cream);font-family:'DM Sans',Arial,sans-serif}
a{color:inherit;text-decoration:none}.nav{position:fixed;z-index:50;top:0;left:0;right:0;height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#0d1511e8,transparent);transition:.3s}.nav.scrolled{background:#0e1712f5;border-bottom:1px solid #ffffff12}
.brand{display:flex;flex-direction:column;line-height:.8}.brand span{font:600 30px/1 'Italiana',serif;letter-spacing:.18em}.brand small{font-size:7px;letter-spacing:.34em;color:var(--gold);margin-top:8px}.nav nav{display:flex;align-items:center;gap:28px;font-size:11px;letter-spacing:.14em}.reserve{border:1px solid var(--gold);padding:13px 18px}.menu-toggle{display:none;background:none;border:0;color:var(--cream);font-size:24px}
.hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;padding:0 8vw 10vh;overflow:hidden}.hero-bg{position:absolute;inset:0}.photo-hero{background-image:linear-gradient(90deg,#0b110ddd 0%,#0b110d88 48%,#0b110d25 75%),linear-gradient(0deg,#0b110d88 0%,transparent 35%),url('assets/sala.jpg');background-size:cover;background-position:center 56%}
.hero-content{position:relative;max-width:900px}.eyebrow,.kicker{font-size:10px;letter-spacing:.28em;color:var(--gold);font-weight:600}.hero h1,.section h2,.cta h2{font:500 clamp(48px,7vw,98px)/.92 'Italiana',serif;margin:20px 0}.hero h1 em,.contact h2 em{color:var(--gold);font-weight:500}.lead{max-width:580px;font:400 17px/1.7 'DM Sans';color:#ded8cd}.actions{display:flex;gap:12px;margin-top:34px}.btn{display:inline-block;padding:15px 24px;text-transform:uppercase;font-size:10px;letter-spacing:.17em;font-weight:600}.gold{background:var(--gold);color:#10150f}.ghost{border:1px solid #ffffff55}.light{background:var(--cream);color:var(--ink)}.scroll{position:absolute;right:5vw;bottom:6vh;color:var(--gold);font-size:25px}
.section{padding:120px 8vw}.intro{background:var(--cream);color:var(--ink)}.intro h2,.menu h2,.groups h2,.contact h2{font-size:clamp(48px,6vw,78px)}.intro>p,.section-copy,.groups-copy>p{max-width:650px;font:400 16px/1.8 'DM Sans';color:#57564f}.image-grid{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:250px 250px;gap:16px;margin-top:70px}.photo{background-size:cover;background-position:center;min-height:250px}.ph{background:linear-gradient(135deg,#334237,#17221c);display:flex;align-items:center;justify-content:center;min-height:250px}.ph span{font-size:9px;letter-spacing:.22em;color:#ffffff45}.tall{grid-row:1/3}
.menu{background:var(--green);}.menu-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ffffff20;margin:60px 0 42px}.menu-columns article{background:var(--green);padding:38px 32px}.num{color:var(--gold);font:500 18px "Cormorant Garamond"}.menu h3{font:500 31px "Cormorant Garamond";margin:12px 0 18px}.menu article p{font-size:13px;line-height:1.8;color:#c7c1b6}.text-link{font-size:10px;letter-spacing:.2em;border-bottom:1px solid var(--gold);padding-bottom:8px}.quote{min-height:58vh;display:grid;place-items:center;text-align:center;background:var(--cream);color:var(--ink);padding:60px 20px}.quote p{font:500 clamp(46px,6vw,82px)/.95 "Cormorant Garamond";margin:0}.quote em{color:#7c693e}
.groups{display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;align-items:center;background:#101813}.groups-photo{min-height:620px}.groups-copy .btn{margin-top:20px}.groups-copy>p{color:#bcb7ad}
.cta{padding:90px 8vw;background:var(--gold);color:#10150f;display:flex;align-items:end;justify-content:space-between;gap:30px}.cta .kicker{color:#4d432c}.cta h2{font-size:clamp(45px,6vw,76px);margin-bottom:0}.contact{background:var(--cream);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:10vw}.details{display:grid;grid-template-columns:1fr 1fr;gap:35px}.details p{line-height:1.7;font-size:13px}.details strong{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#75613b}.details a{border-bottom:1px solid #b69b65}.muted{color:#9a958b;font-size:11px}
footer{padding:55px 8vw;background:#0a100d;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:20px}footer p{font-size:11px;color:#8e8b82}.copyright{text-align:right}
@media(max-width:800px){.nav{height:72px}.nav nav{display:none;position:absolute;top:72px;left:0;right:0;background:#0e1712;padding:25px 6vw;flex-direction:column;align-items:flex-start}.nav nav.open{display:flex}.menu-toggle{display:block}.hero{padding:0 6vw 9vh}.hero h1{font-size:52px}.lead{font-size:15px}.actions{flex-direction:column;align-items:flex-start}.section{padding:85px 6vw}.image-grid{grid-template-columns:1fr;grid-template-rows:auto}.tall{grid-row:auto;min-height:430px}.menu-columns{grid-template-columns:1fr}.groups{grid-template-columns:1fr}.groups-photo{min-height:430px}.cta{align-items:flex-start;flex-direction:column}.contact{grid-template-columns:1fr}.details{grid-template-columns:1fr 1fr}footer{grid-template-columns:1fr}.copyright{text-align:left}}

.photo-story{display:grid;grid-template-columns:1fr .72fr 1fr;min-height:620px;background:#0b110d}
.story-img{background-size:cover;background-position:center}.story-a{background-image:url('assets/mesa-neon.jpg')}.story-b{background-image:url('assets/ovos-dourados.jpg')}
.story-copy{display:flex;flex-direction:column;justify-content:center;padding:55px;text-align:center}
.story-copy p{font:500 clamp(40px,5vw,65px)/.98 'Italiana',serif;margin:18px 0}
.signature-photo{min-height:72vh;background-image:linear-gradient(90deg,#0a100ddd,#0a100d22),url('assets/carta-mesa.jpg');background-size:cover;background-position:center;display:flex;align-items:center;padding:8vw}
.signature-inner p{font:500 clamp(50px,7vw,90px)/.9 'Italiana',serif;margin:20px 0}.signature-inner em{color:var(--gold)}
@media(max-width:800px){.photo-story{grid-template-columns:1fr;min-height:auto}.story-img{min-height:460px}.story-copy{padding:70px 25px}.signature-photo{min-height:68vh;background-position:center}.photo-hero{background-position:52% center}}

.logo-brand{flex-direction:row;align-items:center;gap:12px}
.logo-brand>img{width:43px;height:43px;object-fit:contain}
.logo-brand>div{display:flex;flex-direction:column;line-height:.8}
.footer-logo>img{width:55px;height:55px}
@media(max-width:800px){.logo-brand>img{width:36px;height:36px}.logo-brand span{font-size:25px}}

.official-logo{display:flex;align-items:center}
.official-logo img{display:block;width:58px;height:58px;object-fit:contain}
.footer-official-logo img{width:72px;height:72px}
@media(max-width:800px){.official-logo img{width:48px;height:48px}}

/* V5 typography + collision protection */
html,body{overflow-x:hidden}
h1,h2,h3,p,blockquote{overflow-wrap:break-word}
.hero h1,.section h2,.cta h2,.quote p,.story-copy p,.signature-inner p{
  letter-spacing:-.025em;
  text-wrap:balance;
}
.hero h1{font-size:clamp(44px,6.4vw,92px);line-height:1.02;max-width:980px}
.section h2,.cta h2{line-height:1.02}
.nav nav{white-space:nowrap}
.official-logo{flex:0 0 auto}
.reviews{background:#f2eadc;color:#171713}
.reviews-head{display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;align-items:end}
.reviews-head h2{margin-bottom:0}
.reviews-head>p{font-size:14px;line-height:1.8;color:#6c675d;max-width:360px}
.ratings{display:grid;grid-template-columns:repeat(3,1fr);margin-top:65px;border-top:1px solid #cfc5b3;border-bottom:1px solid #cfc5b3}
.rating-card{padding:38px 32px;display:flex;flex-direction:column;min-width:0;border-right:1px solid #cfc5b3;transition:.25s}
.rating-card:last-child{border-right:0}.rating-card:hover{background:#e9decb}
.rating-card.featured{background:#17221c;color:#f2eadc}
.platform{text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:600}
.rating-card strong{font:400 clamp(42px,5vw,67px)/1 'Italiana',serif;margin:22px 0 8px}
.rating-card strong span{font:400 18px/1 'DM Sans';color:#8a806e;margin-left:3px}
.featured strong span{color:#bdb5a7}.stars{color:#b68e45;letter-spacing:.13em;font-size:12px}
.rating-card small{margin-top:10px;color:#817b70;font-size:11px}.featured small{color:#bdb5a7}
.review-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}
.review-quotes article{border:1px solid #d6cdbd;padding:28px;min-height:230px;display:flex;flex-direction:column}
.review-quotes .quote-mark{font:400 50px/1 'Italiana',serif;color:#b68e45}
.review-quotes blockquote{font:400 23px/1.35 'Italiana',serif;margin:10px 0 30px}
.review-quotes footer{margin-top:auto;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#6d675d}
.review-quotes footer span{color:#9a9285}.ratings-note{font-size:9px;color:#948c7e;margin:22px 0 0}
@media(max-width:1050px){.nav nav{gap:16px;font-size:9px}.hero h1{font-size:clamp(44px,7vw,76px)}}
@media(max-width:800px){
  .hero h1{font-size:clamp(40px,12vw,60px);line-height:1.02}
  .section h2,.cta h2{font-size:clamp(39px,11vw,58px)}
  .reviews-head{grid-template-columns:1fr;gap:25px}
  .ratings,.review-quotes{grid-template-columns:1fr}
  .rating-card{border-right:0;border-bottom:1px solid #cfc5b3}
  .rating-card:last-child{border-bottom:0}
  .review-quotes article{min-height:190px}
  .story-copy p{font-size:clamp(38px,11vw,55px)}
  .signature-inner p{font-size:clamp(42px,12vw,65px)}
}

.direct-booking{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;padding:0 0 75px;margin-bottom:70px;border-bottom:1px solid rgba(255,255,255,.14)}
.direct-booking h3{font:400 clamp(38px,5vw,62px)/1.02 'Italiana',serif;margin:12px 0 18px;letter-spacing:-.025em}
.direct-booking p{max-width:480px;color:#c8c1b5;line-height:1.7}
.booking-actions{display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.dark-ghost{border-color:#776c57;color:#f2eadc}
.booking-mail{margin-top:7px;color:#c7a663}
@media(max-width:800px){.direct-booking{grid-template-columns:1fr;gap:32px;padding-bottom:55px;margin-bottom:55px}.booking-actions{width:100%}.booking-actions .btn{width:100%;text-align:center}}

.menu-full{background:#111a15}
.menu-full-head{display:grid;grid-template-columns:1.25fr .75fr;gap:7vw;align-items:end}
.menu-full-head>p{color:#aaa397;font-size:13px;line-height:1.8;max-width:390px}
.menu-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:65px;border-top:1px solid #4d493f;border-bottom:1px solid #4d493f}
.menu-col{padding:35px 34px 42px;border-right:1px solid #4d493f}.menu-col:last-child{border-right:0}
.menu-col h3{font:400 29px/1.1 'Italiana',serif;color:#c7a663;margin:0 0 30px}
.dish{padding:17px 0;border-bottom:1px solid rgba(255,255,255,.09);display:flex;flex-direction:column;gap:6px}
.dish span{font:400 18px/1.25 'Italiana',serif}.dish small{font-size:10px;line-height:1.5;color:#918b80}
.menu-contact{display:inline-block;margin-top:28px;font-size:10px;letter-spacing:.08em;color:#c7a663;text-transform:uppercase}
.external-links{display:grid;grid-template-columns:repeat(2,1fr);margin-top:60px;border-top:1px solid rgba(255,255,255,.14)}
.external-links a{padding:24px 0;border-bottom:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:7px}
.external-links a:nth-child(odd){padding-right:30px}.external-links a:nth-child(even){padding-left:30px;border-left:1px solid rgba(255,255,255,.14)}
.external-links span{font-size:9px;letter-spacing:.18em;color:#8f897e}.external-links strong{font-size:13px;font-weight:500;color:#f2eadc}
@media(max-width:800px){
 .menu-full-head,.menu-columns{grid-template-columns:1fr}
 .menu-full-head{gap:24px}.menu-col{border-right:0;border-bottom:1px solid #4d493f;padding:30px 0}.menu-col:last-child{border-bottom:0}
 .external-links{grid-template-columns:1fr}.external-links a:nth-child(n){padding:22px 0;border-left:0}
}

/* ---------- V8 visual refinement ---------- */
:root{--line:rgba(242,234,220,.16)}
body{font-family:'DM Sans',Arial,sans-serif;font-weight:400}
.hero h1,.section h2,.cta h2,.story-copy p,.signature-inner p,.direct-booking h3,
.rating-card strong,.review-quotes blockquote,.menu-col h3,.dish span{
  font-family:'Italiana',serif;
  font-weight:400;
}
.hero h1{font-size:clamp(46px,6.25vw,88px);line-height:1.01;max-width:850px;letter-spacing:-.02em}
.section h2,.cta h2{font-size:clamp(44px,5.7vw,78px);line-height:1.04;letter-spacing:-.018em}
.lead{font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.8;max-width:540px}
.eyebrow,.kicker{font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:.25em}
.btn,.nav nav{font-family:'DM Sans',sans-serif}
.section{padding-top:clamp(80px,9vw,135px);padding-bottom:clamp(80px,9vw,135px)}
.about-grid,.groups-grid{gap:clamp(45px,7vw,110px)}
.photo-story{min-height:540px}
.story-copy{padding:clamp(40px,5vw,72px)}
.story-copy p{font-size:clamp(36px,4.4vw,58px);line-height:1.05}
.insta-kicker{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.signature-photo{min-height:64vh}
.signature-inner p{font-size:clamp(45px,6vw,78px);line-height:.98}

/* quieter menu */
.menu-full{background:#101813}
.menu-full-head{grid-template-columns:minmax(0,1.15fr) minmax(250px,.65fr);gap:9vw}
.menu-columns{margin-top:52px}
.menu-col{padding:34px 30px 38px}
.menu-col h3{font-size:26px}
.dish span{font-size:17px;line-height:1.35}
.dish small{font-family:'DM Sans',sans-serif;letter-spacing:.015em}

/* reviews: proof, not a dashboard */
.reviews{background:#eee5d6}
.reviews-head{grid-template-columns:minmax(0,1.1fr) minmax(250px,.55fr);gap:10vw}
.ratings{margin-top:52px;border-color:#cfc4b2}
.rating-card{padding:32px 28px;background:transparent}
.rating-card.featured{background:#17221c}
.rating-card strong{font-size:clamp(40px,4.5vw,60px)}
.rating-card .platform{font-family:'DM Sans',sans-serif}
.review-quotes{gap:0;margin-top:0;border-bottom:1px solid #d6cbb9}
.review-quotes article{border:0;border-right:1px solid #d6cbb9;min-height:205px;padding:34px 30px}
.review-quotes article:last-child{border-right:0}
.review-quotes blockquote{font-size:21px;line-height:1.45}
.review-quotes .quote-mark{font-family:'Italiana',serif;font-size:43px}
.ratings-note{margin-top:16px}

/* visual transition using official mark */
.brand-divider{height:155px;background:#17221c;display:flex;align-items:center;justify-content:center;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.brand-divider img{width:46px;height:46px;object-fit:contain}
.brand-divider span{font:500 8px/1.4 'DM Sans',sans-serif;letter-spacing:.27em;color:#bda77c;max-width:270px}

/* direct booking simplified */
.direct-booking{gap:10vw}
.direct-booking h3{font-size:clamp(38px,4.8vw,58px)}
.booking-actions .btn{min-width:260px}

/* nav/logo spacing */
.nav{gap:28px}
.official-logo img{width:52px;height:52px}
.nav nav{gap:20px;font-size:9px}

/* collision safety */
.hero-content,.reviews-head>*,.menu-full-head>*,.direct-booking>*{min-width:0}
h1,h2,h3,p,blockquote,.dish span{word-break:normal;overflow-wrap:break-word}
@media(max-width:1000px){
  .nav nav{gap:11px;font-size:8px}
  .reserve{padding:11px 12px}
}
@media(max-width:800px){
  .hero{min-height:92svh}
  .hero h1{font-size:clamp(43px,12vw,60px);line-height:1.03}
  .section h2,.cta h2{font-size:clamp(39px,10.5vw,54px)}
  .photo-story{grid-template-columns:1fr}
  .story-img{min-height:390px}
  .story-copy{padding:60px 24px}
  .signature-photo{min-height:58vh;padding:65px 24px}
  .menu-full-head,.reviews-head{grid-template-columns:1fr;gap:24px}
  .menu-columns{margin-top:38px}
  .ratings{margin-top:38px}
  .review-quotes article{border-right:0;border-bottom:1px solid #d6cbb9;min-height:170px}
  .review-quotes article:last-child{border-bottom:0}
  .brand-divider{height:125px;padding:0 25px}
  .brand-divider span{font-size:7px}
}

/* Requested refinement pass */
:root{--nav-clearance:92px}
body{padding-top:var(--nav-clearance)}
.nav{top:0}
.hero{margin-top:0}

/* Keep fixed navigation from covering first photograph/content */
@media(min-width:801px){
  .hero{min-height:calc(100vh - var(--nav-clearance))}
}
.hero-side,.hero-meta,.hero-info{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.hero-side a,.hero-meta a,.hero-info a{
  display:inline-block;
  margin-top:4px;
}
.story-copy-simple{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.story-copy-simple p{margin:0}
@media(max-width:800px){
  :root{--nav-clearance:74px}
  body{padding-top:var(--nav-clearance)}
  .hero{min-height:calc(92svh - var(--nav-clearance))}
}

/* ---------- V10 requested refinements ---------- */
.photo-hero{
  background-position:center 52%;
  background-size:cover;
}
.hero-content{padding-top:clamp(45px,7vh,90px);padding-bottom:clamp(55px,8vh,105px)}
.hero h1{max-width:900px;text-shadow:0 2px 24px rgba(0,0,0,.28)}
.hero-side,.hero-meta,.hero-info{
  gap:0!important;
  align-items:flex-start;
}
.hero-side a,.hero-meta a,.hero-info a{
  width:100%;
  padding:14px 0;
  margin:0!important;
  border-bottom:1px solid rgba(255,255,255,.18);
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.hero-side a:first-child,.hero-meta a:first-child,.hero-info a:first-child{border-top:1px solid rgba(255,255,255,.18)}

/* One menu preview only; full carta opens official PDF */
.menu-full{display:none!important}

/* Rotating customer voice */
.review-rotator{
  margin-top:0;
  padding:clamp(42px,6vw,78px) clamp(28px,6vw,78px);
  background:#17221c;
  color:#f2eadc;
  min-height:330px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}
.review-platform{
  font:600 9px/1 'DM Sans',sans-serif;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#c7a663;
  margin-bottom:25px;
}
.review-rotator blockquote{
  margin:0;
  max-width:900px;
  font:400 clamp(26px,3.4vw,45px)/1.3 'Italiana',serif;
  transition:opacity .35s ease,transform .35s ease;
}
.review-author{
  margin-top:28px;
  font:500 10px/1.4 'DM Sans',sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#b9b2a6;
  transition:opacity .35s ease;
}
.review-progress{
  position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.1)
}
.review-progress span{display:block;height:100%;width:0;background:#c7a663}
.review-rotator.changing blockquote,.review-rotator.changing .review-author{opacity:0;transform:translateY(5px)}

/* Contact data + verified opening hours */
.contact-details-v10{
  display:grid;
  grid-template-columns:.85fr .85fr 1.6fr;
  border-top:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
  margin-top:60px;
}
.contact-card{padding:32px 30px 34px 0;display:flex;flex-direction:column;gap:10px}
.contact-card+.contact-card{border-left:1px solid rgba(255,255,255,.16);padding-left:30px}
.contact-card>span{font:600 8px/1 'DM Sans',sans-serif;letter-spacing:.22em;color:#c7a663;margin-bottom:9px}
.contact-card a,.contact-card p{font-size:12px;line-height:1.7;color:#eee7db;margin:0}
.hours-card p{display:grid;grid-template-columns:135px 1fr;gap:15px}
.hours-card b{font-weight:500;color:#aaa397}
@media(max-width:800px){
  .photo-hero{background-position:58% center}
  .contact-details-v10{grid-template-columns:1fr}
  .contact-card{padding:26px 0}
  .contact-card+.contact-card{border-left:0;border-top:1px solid rgba(255,255,255,.16);padding-left:0}
  .hours-card p{grid-template-columns:1fr;gap:0;margin-bottom:8px}
  .review-rotator{min-height:360px}
}

/* ---------- V11 corrections ---------- */
.hero{
  position:relative;
  min-height:calc(100svh - var(--nav-clearance, 92px));
  isolation:isolate;
  background:#0e1712;
}
.hero-photo{
  position:absolute;
  z-index:-3;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 52%;
  display:block;
}
.hero-shade{
  position:absolute;
  z-index:-2;
  inset:0;
  background:
    linear-gradient(90deg,rgba(8,14,10,.88) 0%,rgba(8,14,10,.63) 42%,rgba(8,14,10,.20) 76%,rgba(8,14,10,.10) 100%),
    linear-gradient(0deg,rgba(8,14,10,.70) 0%,transparent 42%);
}
.photo-hero,.hero-bg{display:none!important}

/* generous desktop navigation spacing */
.nav{padding-left:4.5vw;padding-right:4.5vw}
.nav nav{
  display:flex;
  align-items:center;
  gap:0!important;
  white-space:nowrap;
}
.nav nav>a:not(.reserve){
  display:flex;
  align-items:center;
  min-height:88px;
  padding:0 26px;
  margin:0;
}
.nav nav>a:not(.reserve)+a:not(.reserve){
  border-left:1px solid rgba(255,255,255,.09);
}
.nav nav .reserve{
  margin-left:34px;
  padding:14px 22px;
  flex:0 0 auto;
}

/* rebuilt contacts */
.contact-v11{background:#0e1712;color:#f2eadc}
.contact-v11-head{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);
  gap:8vw;
  align-items:end;
  padding-bottom:58px;
}
.contact-v11 h2{
  font:400 clamp(46px,6vw,78px)/1.03 'Italiana',serif;
  margin:18px 0 0;
}
.contact-v11 h2 em{color:#c7a663;font-style:normal}
.contact-reserve{padding-bottom:8px}
.contact-reserve p{color:#bdb6aa;font-size:13px;margin:0 0 20px}
.contact-v11-grid{
  display:grid;
  grid-template-columns:1.1fr .85fr 1.75fr .65fr;
  border-top:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
}
.contact-v11-grid article{
  min-width:0;
  padding:34px 28px;
}
.contact-v11-grid article:first-child{padding-left:0}
.contact-v11-grid article+article{border-left:1px solid rgba(255,255,255,.16)}
.contact-v11-grid article>span{
  display:block;
  margin-bottom:18px;
  color:#c7a663;
  font:600 8px/1 'DM Sans',sans-serif;
  letter-spacing:.22em;
}
.contact-v11-grid a{
  display:block;
  font-size:12px;
  line-height:1.8;
  color:#eee7db;
}
.hours-v11 p{
  display:grid;
  grid-template-columns:125px 1fr;
  gap:14px;
  margin:0 0 10px;
  font-size:11px;
  line-height:1.5;
}
.hours-v11 b{font-weight:500;color:#bdb6aa}
.hours-v11 i{font-style:normal;color:#eee7db}

/* make first image and nav robust on narrower desktop */
@media(max-width:1120px) and (min-width:801px){
  .nav nav>a:not(.reserve){padding:0 15px;font-size:8px}
  .nav nav .reserve{margin-left:18px}
}
@media(max-width:800px){
  .hero-photo{object-position:58% center}
  .nav nav>a:not(.reserve){
    min-height:auto;
    width:100%;
    padding:15px 0;
    border-left:0!important;
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  .nav nav .reserve{margin:20px 0 0}
  .contact-v11-head{grid-template-columns:1fr;gap:32px;padding-bottom:42px}
  .contact-v11-grid{grid-template-columns:1fr}
  .contact-v11-grid article{padding:26px 0}
  .contact-v11-grid article+article{border-left:0;border-top:1px solid rgba(255,255,255,.16)}
  .hours-v11 p{grid-template-columns:1fr;gap:2px;margin-bottom:12px}
}

/* ---------- V12 requested refinements ---------- */
html{scroll-behavior:smooth}
#carta,.anchor-target{scroll-margin-top:110px}
.hero{overflow:hidden;background:#0d1511}
.hero-photo{
  object-fit:contain!important;
  object-position:center center!important;
  z-index:-2!important;
  background:#0d1511;
}
.hero::before{
  content:"";
  position:absolute;
  z-index:-3;
  inset:-24px;
  background:url('assets/mesa-led.jpg') center center/cover no-repeat;
  filter:blur(22px) brightness(.48);
  transform:scale(1.05);
}
.hero-shade{
  z-index:-1!important;
  background:
    linear-gradient(90deg,rgba(8,14,10,.78) 0%,rgba(8,14,10,.50) 40%,rgba(8,14,10,.16) 78%,rgba(8,14,10,.12) 100%),
    linear-gradient(0deg,rgba(8,14,10,.55) 0%,transparent 45%)!important;
}
@media(max-width:800px){
  #carta,.anchor-target{scroll-margin-top:86px}
  .hero-photo{object-fit:cover!important;object-position:center center!important}
  .hero::before{display:none}
}

/* ---------- V13: hero image right aligned + CARTA same-page navigation ---------- */
.hero-photo{
  object-fit:contain!important;
  object-position:right center!important;
  background:#0d1511!important;
}
.hero::before{
  background-position:right center!important;
}
@media(max-width:800px){
  .hero-photo{
    object-fit:contain!important;
    object-position:right center!important;
  }
}

/* ---------- V14: full hero photo visible, framed and right aligned ---------- */
/* The photo is no longer treated as a full-bleed background. It sits fully inside
   the hero, aligned right, so no part of the original photograph is hidden. */
.hero{
  background:#0d1511!important;
  overflow:hidden;
}
.hero-photo{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:auto!important;
  width:58%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:right center!important;
  display:block!important;
  z-index:-2!important;
  background:#0d1511!important;
}
.hero::before{
  display:none!important;
}
.hero-shade{
  z-index:-1!important;
  background:
    linear-gradient(90deg,
      #0d1511 0%,
      rgba(13,21,17,.98) 34%,
      rgba(13,21,17,.80) 48%,
      rgba(13,21,17,.25) 65%,
      rgba(13,21,17,.05) 100%)!important;
}
.hero-content{
  position:relative;
  z-index:1;
}
.hero-copy{
  max-width:54%;
}
@media(max-width:1000px){
  .hero-photo{width:62%!important}
  .hero-copy{max-width:58%}
}
@media(max-width:800px){
  .hero{
    min-height:auto!important;
    display:flex;
    flex-direction:column;
  }
  .hero-photo{
    position:relative!important;
    order:2;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:right center!important;
    z-index:0!important;
    margin-left:auto;
  }
  .hero-shade{display:none!important}
  .hero-content{
    order:1;
    width:100%;
    background:#0d1511;
  }
  .hero-copy{max-width:100%}
}

/* ---------- V15: stronger hero using the room photograph ---------- */
.hero{
  min-height:760px!important;
}
.hero-photo{
  right:4%!important;
  left:auto!important;
  width:62%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
}
.hero-shade{
  display:block!important;
  background:
    linear-gradient(90deg,
      #0d1511 0%,
      rgba(13,21,17,.98) 27%,
      rgba(13,21,17,.82) 40%,
      rgba(13,21,17,.25) 57%,
      rgba(13,21,17,.02) 78%,
      rgba(13,21,17,0) 100%)!important;
}
.hero-copy{
  max-width:48%!important;
}
@media(max-width:1100px) and (min-width:801px){
  .hero-photo{right:1%!important;width:66%!important}
  .hero-copy{max-width:50%!important}
}
@media(max-width:800px){
  .hero{min-height:auto!important}
  .hero-photo{
    position:relative!important;
    width:100%!important;
    height:auto!important;
    right:auto!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
  .hero-shade{display:none!important}
  .hero-copy{max-width:100%!important}
}

/* V16 — deslocação subtil da fotografia para a direita */
@media(min-width:1101px){
  .hero-photo{right:-1.5%!important;}
}
@media(max-width:1100px) and (min-width:801px){
  .hero-photo{right:-4.5%!important;}
}

/* ---------- V17: new high-impact SANTOS hero photograph ---------- */
@media(min-width:1101px){
  .hero{
    min-height:780px!important;
  }
  .hero-photo{
    top:38px!important;
    right:-5.5%!important;
    bottom:auto!important;
    left:auto!important;
    width:auto!important;
    height:calc(100% - 76px)!important;
    max-width:57%!important;
    object-fit:contain!important;
    object-position:right center!important;
    z-index:-2!important;
    background:transparent!important;
  }
  .hero-copy{
    max-width:49%!important;
  }
  .hero-shade{
    display:block!important;
    background:
      linear-gradient(90deg,
        #0d1511 0%,
        rgba(13,21,17,.99) 31%,
        rgba(13,21,17,.88) 42%,
        rgba(13,21,17,.38) 54%,
        rgba(13,21,17,.06) 68%,
        rgba(13,21,17,0) 82%)!important;
  }
}
@media(max-width:1100px) and (min-width:801px){
  .hero-photo{
    top:42px!important;
    right:-8%!important;
    width:auto!important;
    height:calc(100% - 84px)!important;
    max-width:61%!important;
    object-fit:contain!important;
  }
}
@media(max-width:800px){
  .hero-photo{
    position:relative!important;
    width:100%!important;
    height:auto!important;
    right:auto!important;
    top:auto!important;
    max-width:none!important;
    object-fit:contain!important;
  }
}

/* ---------- V18: arrow is the right-hand limit of the hero photograph ---------- */
@media(min-width:1101px){
  .hero-photo{
    right:4.5%!important;
  }
}
@media(max-width:1100px) and (min-width:801px){
  .hero-photo{
    right:2.5%!important;
  }
}

/* ==========================================================
   V33 — based strictly on V18
   1) Hero photo visually occupies centre -> right with edge fades
   2) All desktop nav items read as buttons and nav is more central
   ========================================================== */

@media(min-width:801px){
  .nav{
    display:grid!important;
    grid-template-columns:120px 1fr 120px!important;
    align-items:center!important;
    padding:0 4vw!important;
  }
  .nav .official-logo{
    grid-column:1!important;
    justify-self:start!important;
  }
  .nav nav{
    grid-column:2!important;
    justify-self:center!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    font-size:10px!important;
    letter-spacing:.13em!important;
  }
  .nav nav>a{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:42px!important;
    padding:0 17px!important;
    border:1px solid rgba(199,166,99,.58)!important;
    transition:background .2s ease,color .2s ease,border-color .2s ease!important;
  }
  .nav nav>a:hover{
    border-color:var(--gold)!important;
    background:rgba(199,166,99,.10)!important;
  }
  .nav nav>a.reserve{
    border-color:var(--gold)!important;
    background:rgba(199,166,99,.08)!important;
  }

  .hero{
    background:#0e1712!important;
  }

  /* Photo remains proportional; it begins around the middle of the hero.
     No stretching. */
  .hero-photo{
    position:absolute!important;
    z-index:0!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:42%!important;
    width:58%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 55%!important;
    transform:none!important;
  }

  /* Fade on all photo edges, strongest where it meets the copy on the left. */
  .hero-shade{
    position:absolute!important;
    z-index:1!important;
    inset:0!important;
    pointer-events:none!important;
    background:
      linear-gradient(90deg,
        #0e1712 0%,
        #0e1712 34%,
        rgba(14,23,18,.98) 40%,
        rgba(14,23,18,.72) 47%,
        rgba(14,23,18,.22) 57%,
        rgba(14,23,18,.04) 72%,
        rgba(14,23,18,.30) 100%),
      linear-gradient(180deg,
        rgba(14,23,18,.50) 0%,
        rgba(14,23,18,0) 16%,
        rgba(14,23,18,0) 78%,
        rgba(14,23,18,.52) 100%)!important;
  }
  .hero-content,.scroll{
    z-index:2!important;
  }
  .hero-content{
    max-width:720px!important;
  }
}

/* Mobile: retain V18 behavior but keep photo legible behind the copy. */
@media(max-width:800px){
  .hero-photo{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:62% center!important;
    transform:none!important;
  }
  .hero-shade{
    position:absolute!important;
    inset:0!important;
    background:linear-gradient(90deg,rgba(14,23,18,.93),rgba(14,23,18,.55) 68%,rgba(14,23,18,.22)),
               linear-gradient(180deg,rgba(14,23,18,.32),transparent 25%,rgba(14,23,18,.38))!important;
  }
  .hero-content,.scroll{z-index:2!important}
}

/* ==========================================================
   V34 — refinements requested on V33
   - stronger soft/corner fade around hero image
   - central rounded navigation buttons
   - RESERVAR restored to the far-right position
   ========================================================== */

@media(min-width:801px){
  .nav{
    position:fixed!important;
    display:grid!important;
    grid-template-columns:120px 1fr 150px!important;
    align-items:center!important;
    padding:0 5vw!important;
  }

  .nav .official-logo{
    grid-column:1!important;
    justify-self:start!important;
  }

  .nav nav{
    grid-column:2 / 4!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr auto 1fr!important;
    align-items:center!important;
    gap:0!important;
  }

  /* The first four links form the centered group */
  .nav nav > a:not(.reserve){
    grid-row:1!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:40px!important;
    padding:0 18px!important;
    margin:0 5px!important;
    border:1px solid rgba(199,166,99,.55)!important;
    border-radius:999px!important;
    background:rgba(14,23,18,.16)!important;
  }

  .nav nav > a:nth-child(1){grid-column:2!important; transform:translateX(-210px)}
  .nav nav > a:nth-child(2){grid-column:2!important; transform:translateX(-70px)}
  .nav nav > a:nth-child(3){grid-column:2!important; transform:translateX(70px)}
  .nav nav > a:nth-child(4){grid-column:2!important; transform:translateX(210px)}

  .nav nav > a:not(.reserve):hover{
    border-color:var(--gold)!important;
    background:rgba(199,166,99,.12)!important;
  }

  /* RESERVAR back to its original far-right role */
  .nav nav > a.reserve{
    grid-column:3!important;
    grid-row:1!important;
    justify-self:end!important;
    transform:none!important;
    margin:0!important;
    min-height:auto!important;
    padding:13px 18px!important;
    border:1px solid var(--gold)!important;
    border-radius:0!important;
    background:transparent!important;
  }

  /* Softer silhouette: stronger fades around every visible photo edge/corner */
  .hero-shade{
    background:
      radial-gradient(ellipse at 42% 0%,
        rgba(14,23,18,.92) 0%,
        rgba(14,23,18,.55) 14%,
        rgba(14,23,18,0) 34%),
      radial-gradient(ellipse at 100% 0%,
        rgba(14,23,18,.82) 0%,
        rgba(14,23,18,.42) 15%,
        rgba(14,23,18,0) 35%),
      radial-gradient(ellipse at 42% 100%,
        rgba(14,23,18,.94) 0%,
        rgba(14,23,18,.55) 15%,
        rgba(14,23,18,0) 35%),
      radial-gradient(ellipse at 100% 100%,
        rgba(14,23,18,.88) 0%,
        rgba(14,23,18,.48) 16%,
        rgba(14,23,18,0) 36%),
      linear-gradient(90deg,
        #0e1712 0%,
        #0e1712 34%,
        rgba(14,23,18,.99) 40%,
        rgba(14,23,18,.78) 47%,
        rgba(14,23,18,.30) 57%,
        rgba(14,23,18,.08) 72%,
        rgba(14,23,18,.46) 100%),
      linear-gradient(180deg,
        rgba(14,23,18,.64) 0%,
        rgba(14,23,18,.08) 19%,
        rgba(14,23,18,.05) 75%,
        rgba(14,23,18,.68) 100%)!important;
  }
}

/* ==========================================================
   V35 — stronger photo-edge fade + rounded RESERVAR
   ========================================================== */
@media(min-width:801px){

  /* RESERVAR keeps its far-right position, but now has the same pill language */
  .nav nav > a.reserve{
    min-height:40px!important;
    padding:0 18px!important;
    border:1px solid rgba(199,166,99,.70)!important;
    border-radius:999px!important;
    background:rgba(14,23,18,.16)!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .nav nav > a.reserve:hover{
    border-color:var(--gold)!important;
    background:rgba(199,166,99,.12)!important;
  }

  /* The photo itself is feathered: hard rectangle disappears into the hero green. */
  .hero-photo{
    -webkit-mask-image:
      radial-gradient(ellipse 78% 82% at 67% 50%,
        #000 0%,
        #000 43%,
        rgba(0,0,0,.98) 53%,
        rgba(0,0,0,.82) 64%,
        rgba(0,0,0,.52) 75%,
        rgba(0,0,0,.20) 86%,
        transparent 100%)!important;
    mask-image:
      radial-gradient(ellipse 78% 82% at 67% 50%,
        #000 0%,
        #000 43%,
        rgba(0,0,0,.98) 53%,
        rgba(0,0,0,.82) 64%,
        rgba(0,0,0,.52) 75%,
        rgba(0,0,0,.20) 86%,
        transparent 100%)!important;
    -webkit-mask-repeat:no-repeat!important;
    mask-repeat:no-repeat!important;
  }

  /* Additional green feathering specifically at all four photo corners. */
  .hero-shade{
    background:
      radial-gradient(circle at 42% 0%, rgba(14,23,18,.98) 0 7%, rgba(14,23,18,.75) 15%, transparent 31%),
      radial-gradient(circle at 100% 0%, rgba(14,23,18,.96) 0 8%, rgba(14,23,18,.70) 17%, transparent 33%),
      radial-gradient(circle at 42% 100%, rgba(14,23,18,.98) 0 8%, rgba(14,23,18,.76) 17%, transparent 33%),
      radial-gradient(circle at 100% 100%, rgba(14,23,18,.98) 0 9%, rgba(14,23,18,.74) 18%, transparent 34%),
      linear-gradient(90deg,
        #0e1712 0%,
        #0e1712 35%,
        rgba(14,23,18,.98) 41%,
        rgba(14,23,18,.70) 47%,
        rgba(14,23,18,.22) 55%,
        transparent 66%,
        rgba(14,23,18,.24) 91%,
        rgba(14,23,18,.62) 100%),
      linear-gradient(180deg,
        rgba(14,23,18,.62) 0%,
        rgba(14,23,18,.12) 13%,
        transparent 25%,
        transparent 72%,
        rgba(14,23,18,.16) 86%,
        rgba(14,23,18,.68) 100%)!important;
  }
}

/* ==========================================================
   V36 — lighter header, clean navigation, smaller hero title
   ========================================================== */

@media(min-width:801px){

  /* Very light/translucent top bar: about 15% visual opacity */
  .nav,
  .nav.scrolled{
    background:rgba(14,23,18,.15)!important;
    border-bottom:1px solid rgba(255,255,255,.035)!important;
    backdrop-filter:blur(5px)!important;
    -webkit-backdrop-filter:blur(5px)!important;
  }

  /* Central navigation returns to clean text — no boxes */
  .nav nav > a:not(.reserve){
    min-height:auto!important;
    padding:10px 8px!important;
    margin:0 8px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
  }

  .nav nav > a:not(.reserve):hover{
    border:0!important;
    background:transparent!important;
    color:var(--gold)!important;
  }

  /* RESERVAR remains the only framed control */
  .nav nav > a.reserve{
    min-height:40px!important;
    padding:0 18px!important;
    border:1px solid rgba(199,166,99,.78)!important;
    border-radius:999px!important;
    background:rgba(14,23,18,.16)!important;
  }

  /* Reduce both lines of the main hero statement together */
  .hero h1{
    font-size:clamp(42px,5.15vw,72px)!important;
    line-height:.98!important;
    margin:18px 0!important;
    max-width:760px!important;
  }

  .hero h1 em{
    font-size:.92em!important;
  }

  .hero-content{
    max-width:760px!important;
  }
}

@media(max-width:800px){
  .hero h1{
    font-size:42px!important;
    line-height:1!important;
  }
  .hero h1 em{
    font-size:.92em!important;
  }
}
\n/* ==========================================================\n   V37 — photo pulled toward centre-right + seamless left fade\n   Hero CTAs removed in HTML; top RESERVAR remains.\n   ========================================================== */\n@media(min-width:801px){\n  .hero-photo{\n    left:36%!important;\n    width:64%!important;\n    right:0!important;\n    object-position:center 55%!important;\n    -webkit-mask-image:linear-gradient(90deg,\n      transparent 0%,\n      rgba(0,0,0,.12) 5%,\n      rgba(0,0,0,.48) 12%,\n      rgba(0,0,0,.82) 20%,\n      #000 31%,\n      #000 78%,\n      rgba(0,0,0,.86) 88%,\n      rgba(0,0,0,.45) 96%,\n      transparent 100%),\n      linear-gradient(180deg,transparent 0%,#000 12%,#000 88%,transparent 100%)!important;\n    mask-image:linear-gradient(90deg,\n      transparent 0%,\n      rgba(0,0,0,.12) 5%,\n      rgba(0,0,0,.48) 12%,\n      rgba(0,0,0,.82) 20%,\n      #000 31%,\n      #000 78%,\n      rgba(0,0,0,.86) 88%,\n      rgba(0,0,0,.45) 96%,\n      transparent 100%),\n      linear-gradient(180deg,transparent 0%,#000 12%,#000 88%,transparent 100%)!important;\n    -webkit-mask-composite:source-in!important;\n    mask-composite:intersect!important;\n  }\n  .hero-shade{\n    background:\n      linear-gradient(90deg,\n        #0e1712 0%,\n        #0e1712 29%,\n        rgba(14,23,18,.98) 35%,\n        rgba(14,23,18,.82) 40%,\n        rgba(14,23,18,.48) 46%,\n        rgba(14,23,18,.14) 54%,\n        transparent 64%,\n        rgba(14,23,18,.08) 88%,\n        rgba(14,23,18,.42) 100%),\n      linear-gradient(180deg,rgba(14,23,18,.58),transparent 20%,transparent 78%,rgba(14,23,18,.62))!important;\n  }\n  .hero-content{padding-bottom:12px!important;}\n}\n
/* ==========================================================
   V38 — 80% hero image, no zoom/crop, borderless fade
   ========================================================== */

@media(min-width:801px){
  .hero{
    position:relative!important;
    background:#0e1712!important;
    overflow:hidden!important;
  }

  .hero-photo{
    position:absolute!important;
    z-index:0!important;
    top:50%!important;
    right:-2vw!important;
    left:auto!important;
    bottom:auto!important;

    /* Approximately 80% of viewport width, original aspect ratio preserved */
    width:80vw!important;
    height:auto!important;
    max-width:none!important;

    object-fit:contain!important;
    object-position:center center!important;
    transform:translateY(-50%)!important;

    /* Strong feathering makes the portrait disappear into the green
       instead of reading as a rectangular image. */
    -webkit-mask-image:
      radial-gradient(ellipse 72% 72% at 58% 50%,
        #000 0%,
        #000 45%,
        rgba(0,0,0,.96) 56%,
        rgba(0,0,0,.76) 68%,
        rgba(0,0,0,.44) 79%,
        rgba(0,0,0,.16) 89%,
        transparent 100%)!important;
    mask-image:
      radial-gradient(ellipse 72% 72% at 58% 50%,
        #000 0%,
        #000 45%,
        rgba(0,0,0,.96) 56%,
        rgba(0,0,0,.76) 68%,
        rgba(0,0,0,.44) 79%,
        rgba(0,0,0,.16) 89%,
        transparent 100%)!important;
    -webkit-mask-repeat:no-repeat!important;
    mask-repeat:no-repeat!important;
  }

  /* Additional blending at the left and viewport edges */
  .hero-shade{
    position:absolute!important;
    z-index:1!important;
    inset:0!important;
    pointer-events:none!important;
    background:
      linear-gradient(90deg,
        #0e1712 0%,
        rgba(14,23,18,.98) 15%,
        rgba(14,23,18,.84) 24%,
        rgba(14,23,18,.48) 34%,
        rgba(14,23,18,.12) 46%,
        transparent 58%,
        transparent 83%,
        rgba(14,23,18,.18) 94%,
        rgba(14,23,18,.46) 100%),
      linear-gradient(180deg,
        rgba(14,23,18,.52) 0%,
        rgba(14,23,18,.08) 15%,
        transparent 28%,
        transparent 72%,
        rgba(14,23,18,.10) 86%,
        rgba(14,23,18,.58) 100%)!important;
  }

  .hero-content{
    z-index:2!important;
  }

  /* Supporting lead was removed from HTML; safety rule */
  .hero .lead{display:none!important;}
}

@media(max-width:800px){
  .hero .lead{display:none!important;}
  .hero-photo{
    object-fit:contain!important;
    width:100%!important;
    height:auto!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
  }
}

/* ==========================================================
   V39 — hero image with real horizontal presence
   ========================================================== */
@media(min-width:801px){
  .hero{background:#0e1712!important;overflow:hidden!important;}

  /* Occupies the right 80% of the hero. The source stays proportional;
     only the unavoidable vertical crop is used to fill the opening. */
  .hero-photo{
    position:absolute!important;
    z-index:0!important;
    left:20%!important;
    right:0!important;
    top:0!important;
    bottom:0!important;
    width:80%!important;
    height:100%!important;
    max-width:none!important;
    object-fit:cover!important;
    object-position:center 53%!important;
    transform:none!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }

  /* No oval mask: long, natural dissolves into the green on every edge. */
  .hero-shade{
    position:absolute!important;
    z-index:1!important;
    inset:0!important;
    pointer-events:none!important;
    background:
      linear-gradient(90deg,
        #0e1712 0%,
        #0e1712 17%,
        rgba(14,23,18,.98) 22%,
        rgba(14,23,18,.84) 29%,
        rgba(14,23,18,.58) 36%,
        rgba(14,23,18,.28) 44%,
        rgba(14,23,18,.08) 52%,
        transparent 62%,
        transparent 88%,
        rgba(14,23,18,.14) 95%,
        rgba(14,23,18,.38) 100%),
      linear-gradient(180deg,
        rgba(14,23,18,.48) 0%,
        rgba(14,23,18,.18) 8%,
        transparent 19%,
        transparent 79%,
        rgba(14,23,18,.18) 91%,
        rgba(14,23,18,.52) 100%)!important;
  }

  .hero-content{z-index:2!important;max-width:680px!important;}
}

/* ==========================================================
   V40 — same V39 image occupation, much deeper edge feather
   ========================================================== */
@media(min-width:801px){

  /* Keep V39 geometry exactly: image occupies the right ~80% */
  .hero-photo{
    left:20%!important;
    right:0!important;
    top:0!important;
    bottom:0!important;
    width:80%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
    transform:none!important;

    /* Long feather on every edge; no oval treatment */
    -webkit-mask-image:
      linear-gradient(90deg,
        transparent 0%,
        rgba(0,0,0,.10) 5%,
        rgba(0,0,0,.32) 11%,
        rgba(0,0,0,.62) 18%,
        rgba(0,0,0,.88) 27%,
        #000 38%,
        #000 82%,
        rgba(0,0,0,.90) 89%,
        rgba(0,0,0,.55) 95%,
        transparent 100%),
      linear-gradient(180deg,
        transparent 0%,
        rgba(0,0,0,.35) 7%,
        rgba(0,0,0,.78) 15%,
        #000 25%,
        #000 76%,
        rgba(0,0,0,.76) 86%,
        rgba(0,0,0,.30) 94%,
        transparent 100%)!important;
    -webkit-mask-composite:source-in!important;

    mask-image:
      linear-gradient(90deg,
        transparent 0%,
        rgba(0,0,0,.10) 5%,
        rgba(0,0,0,.32) 11%,
        rgba(0,0,0,.62) 18%,
        rgba(0,0,0,.88) 27%,
        #000 38%,
        #000 82%,
        rgba(0,0,0,.90) 89%,
        rgba(0,0,0,.55) 95%,
        transparent 100%),
      linear-gradient(180deg,
        transparent 0%,
        rgba(0,0,0,.35) 7%,
        rgba(0,0,0,.78) 15%,
        #000 25%,
        #000 76%,
        rgba(0,0,0,.76) 86%,
        rgba(0,0,0,.30) 94%,
        transparent 100%)!important;
    mask-composite:intersect!important;
    -webkit-mask-repeat:no-repeat!important;
    mask-repeat:no-repeat!important;
  }

  /* Extra colour blending so corners disappear into the exact hero green */
  .hero-shade{
    background:
      linear-gradient(90deg,
        #0e1712 0%,
        #0e1712 19%,
        rgba(14,23,18,.98) 24%,
        rgba(14,23,18,.82) 31%,
        rgba(14,23,18,.48) 39%,
        rgba(14,23,18,.18) 48%,
        transparent 59%,
        transparent 84%,
        rgba(14,23,18,.16) 91%,
        rgba(14,23,18,.62) 100%),
      linear-gradient(180deg,
        rgba(14,23,18,.72) 0%,
        rgba(14,23,18,.38) 7%,
        rgba(14,23,18,.10) 17%,
        transparent 29%,
        transparent 70%,
        rgba(14,23,18,.12) 83%,
        rgba(14,23,18,.42) 93%,
        rgba(14,23,18,.78) 100%)!important;
  }
}

/* ==========================================================
   V42 — V40 unchanged; only hero slogan typography adjusted
   ========================================================== */
@media(min-width:801px){
  .hero-content h1{
    font-size:clamp(31px,3.15vw,49px)!important;
    line-height:1.08!important;
    letter-spacing:-.025em!important;
    max-width:none!important;
    white-space:nowrap!important;
  }

  .hero-content h1 em{
    display:block!important;
    margin-top:.22em!important;
    font-size:.64em!important;
    line-height:1.12!important;
    white-space:nowrap!important;
  }
}

/* ==========================================================
   V45 — text-led opening: no hero image, slogan is the focus
   ========================================================== */
.hero{
  background:#0e1712!important;
}

.hero-photo,
.hero-shade{
  display:none!important;
}

.hero-content{
  position:absolute!important;
  z-index:2!important;
  inset:0!important;
  width:100%!important;
  max-width:none!important;
  padding:0 7vw!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  transform:none!important;
}

.hero-content h1{
  margin:0!important;
  max-width:none!important;
  color:#f2ecdf!important;
  font-size:clamp(44px,5.25vw,82px)!important;
  line-height:.98!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  white-space:nowrap!important;
}

.hero-content h1 em{
  display:block!important;
  margin-top:.34em!important;
  color:#c7a45b!important;
  font-size:.53em!important;
  line-height:1.12!important;
  letter-spacing:-.015em!important;
  white-space:nowrap!important;
}

@media(max-width:800px){
  .hero-content{
    padding:0 24px!important;
  }
  .hero-content h1{
    font-size:clamp(37px,10vw,56px)!important;
    white-space:normal!important;
  }
  .hero-content h1 em{
    font-size:.58em!important;
    white-space:normal!important;
  }
}

/* ==========================================================
   V47 — exact geometric centering of the hero statement
   ========================================================== */
.hero-content{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  inset:auto!important;
  width:max-content!important;
  max-width:90vw!important;
  padding:0!important;
  display:block!important;
  text-align:center!important;
  transform:translate(-50%,-50%)!important;
}

.hero-content h1{
  margin:0!important;
  text-align:center!important;
}

.hero-content h1 em{
  display:block!important;
  text-align:center!important;
}

@media(max-width:800px){
  .hero-content{
    left:50%!important;
    top:50%!important;
    width:88vw!important;
    max-width:88vw!important;
    transform:translate(-50%,-50%)!important;
  }
}

/* ==========================================================
   V48 — photographic carousel directly below the V47 hero
   ========================================================== */
.photo-carousel{
  position:relative;
  overflow:hidden;
  background:#0e1712;
  padding:0 0 68px;
}
.carousel-track{
  display:flex;
  gap:18px;
  padding:0 4vw;
  transition:transform .8s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.gallery-slide{
  flex:0 0 calc((92vw - 36px)/3);
  height:clamp(390px,48vw,620px);
  overflow:hidden;
  background:#18231c;
}
.gallery-slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease;
}
.gallery-slide:hover img{transform:scale(1.025)}

.carousel-arrow{
  position:absolute;
  top:45%;
  z-index:3;
  width:48px;
  height:48px;
  border:1px solid rgba(199,164,91,.52);
  border-radius:50%;
  background:rgba(14,23,18,.72);
  color:#d4b56f;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.carousel-prev{left:22px}
.carousel-next{right:22px}

.carousel-dots{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:25px;
}
.carousel-dots span{
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(242,236,223,.28);
  transition:.3s ease;
}
.carousel-dots span.active{
  width:22px;
  border-radius:10px;
  background:#c7a45b;
}

@media(max-width:1100px){
  .gallery-slide{flex-basis:calc((92vw - 18px)/2)}
}
@media(max-width:700px){
  .photo-carousel{padding-bottom:48px}
  .carousel-track{gap:12px;padding:0 6vw}
  .gallery-slide{
    flex-basis:88vw;
    height:118vw;
    max-height:620px;
  }
  .carousel-arrow{width:42px;height:42px}
  .carousel-prev{left:12px}
  .carousel-next{right:12px}
}

/* ==========================================================
   V49 — carousel becomes the moving backdrop of the hero text
   ========================================================== */

/* Pull the carousel up behind the full hero */
.hero{
  position:relative!important;
  z-index:1!important;
  overflow:hidden!important;
  background:#0e1712!important;
}

.photo-carousel{
  position:absolute!important;
  z-index:0!important;
  top:0!important;
  left:0!important;
  width:100%!important;
  height:100%!important;
  padding:0!important;
  overflow:hidden!important;
  background:#0e1712!important;
}

/* The photo strip fills the opening */
.photo-carousel .carousel-track{
  height:100%!important;
  gap:0!important;
  padding:0!important;
}

.photo-carousel .gallery-slide{
  flex:0 0 100vw!important;
  width:100vw!important;
  height:100%!important;
  max-height:none!important;
  position:relative!important;
}

.photo-carousel .gallery-slide img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}

/* Deep SANTOS-green veil so the statement remains the hero */
.photo-carousel::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 50%,
      rgba(14,23,18,.38) 0%,
      rgba(14,23,18,.48) 34%,
      rgba(14,23,18,.64) 70%,
      rgba(14,23,18,.82) 100%),
    linear-gradient(180deg,
      rgba(14,23,18,.55) 0%,
      rgba(14,23,18,.18) 30%,
      rgba(14,23,18,.18) 70%,
      rgba(14,23,18,.64) 100%);
}

/* Hide carousel controls in hero: motion should feel cinematic, not like a gallery */
.photo-carousel .carousel-arrow,
.photo-carousel .carousel-dots{
  display:none!important;
}

/* Text stays exactly geometrically centred as in V47 */
.hero-content{
  z-index:4!important;
}

/* Navigation and scroll cue remain above the moving backdrop */
.nav{z-index:20!important}
.hero .scroll{z-index:5!important}

@media(max-width:700px){
  .photo-carousel .gallery-slide{
    flex-basis:100vw!important;
    width:100vw!important;
    height:100%!important;
  }
}

/* V50 — only #santos changed; V49 hero untouched */
@media(min-width:801px){
 #santos{padding-left:5vw!important;padding-right:5vw!important;}
 #santos .section-inner,#santos .container,#santos .wrap{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;}
 #santos .eyebrow{max-width:none!important;}
 #santos h2{max-width:90vw!important;width:100%!important;}
 #santos p{max-width:88vw!important;width:100%!important;font-size:clamp(18px,1.55vw,24px)!important;line-height:1.65!important;}
}
@media(max-width:800px){
 #santos{padding-left:24px!important;padding-right:24px!important;}
 #santos .section-inner,#santos .container,#santos .wrap{width:100%!important;max-width:none!important;}
 #santos h2,#santos p{width:100%!important;max-width:none!important;}
}

/* V51 — align the section headline with the full-width copy */
@media(min-width:801px){
  #santos h2{
    width:88vw!important;
    max-width:88vw!important;
    white-space:nowrap!important;
    font-size:clamp(42px,5vw,78px)!important;
    line-height:1.02!important;
  }
}

/* V52 — only #santos supporting copy matches .section-copy typography */
#santos > p,
#santos .section-inner > p,
#santos .container > p,
#santos .wrap > p{
  font:400 16px/1.8 'DM Sans',sans-serif!important;
  color:#57564f!important;
}

/* V55 — requested changes only:
   1) Ovos Dourados stays only in the welcome section; story image returns to brûlée.
   2) Header bar takes on the warm terracotta tone of the LED wall. */
.story-b{background-image:url('assets/brulee.jpg')!important;}

.nav,
.nav.scrolled{
  background:rgba(151,75,55,.88)!important;
  border-bottom:1px solid rgba(242,236,223,.10)!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}

/* V56 — undo V55 terracotta header only; retain V55 image corrections */
@media(min-width:801px){
  .nav,
  .nav.scrolled{
    background:rgba(14,23,18,.15)!important;
    border-bottom:1px solid rgba(255,255,255,.035)!important;
    backdrop-filter:blur(5px)!important;
    -webkit-backdrop-filter:blur(5px)!important;
  }
}


/* V61 — robust synchronized photo-story carousels */
.photo-story .story-carousel{position:relative;overflow:hidden;background-image:none!important;}
.photo-story .story-carousel .story-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1.25s ease;display:block;}
.photo-story .story-carousel .story-slide.active{opacity:1;}

/* V62 — central story panel: SANTOS deep green */
.story-copy{background:var(--green);}


/* V64 — menu de almoço compacto */
.lunch-callout{
  margin:6px 0 34px;
  padding:22px 0 20px;
  border-top:1px solid rgba(199,166,99,.48);
  border-bottom:1px solid rgba(199,166,99,.48);
}
.lunch-label{
  margin-bottom:12px;
  color:var(--gold);
  font-size:9px;
  font-weight:600;
  letter-spacing:.20em;
}
.lunch-main{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:30px;
  align-items:end;
}
.lunch-main h3{
  margin:0;
  font:400 clamp(25px,3vw,40px)/1.04 'Italiana',serif;
  color:var(--cream);
}
.lunch-main strong{
  color:var(--gold);
  font:400 clamp(34px,4vw,50px)/.92 'Italiana',serif;
  white-space:nowrap;
}
.lunch-price{display:inline-flex;align-items:center;gap:7px}
.lunch-price img{width:.43em;height:.43em;object-fit:contain;display:block;flex:none}
.lunch-details{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:baseline;
  margin-top:15px;
}
.lunch-details p,.lunch-details span{margin:0;font-size:12px;line-height:1.55}
.lunch-details p{color:#d8d1c5}
.lunch-details span{color:#aaa397;font-style:italic;text-align:right}
@media(max-width:800px){
  .lunch-callout{margin-top:2px;padding:20px 0}
  .lunch-main{grid-template-columns:1fr;gap:14px;align-items:start}
  .lunch-main strong{font-size:38px}
  .lunch-details{flex-direction:column;gap:5px;margin-top:13px}
  .lunch-details span{text-align:left}
}


/* V65 — almoço ainda mais compacto + logo oficial; citação a meia altura */
.lunch-callout{
  margin:2px 0 26px;
  padding:15px 0 14px;
}
.lunch-label{margin-bottom:8px;font-size:8px;letter-spacing:.19em}
.lunch-main{gap:22px;align-items:center}
.lunch-main h3{font-size:clamp(21px,2.35vw,32px);line-height:1.05}
.lunch-main strong{font-size:clamp(26px,3vw,36px);line-height:1}
.lunch-price{gap:8px}
.lunch-price img{width:.62em;height:.62em;object-fit:contain}
.lunch-details{margin-top:10px;gap:18px}
.lunch-details p,.lunch-details span{font-size:11px;line-height:1.45}
.quote{min-height:29vh;padding:30px 20px}
@media(max-width:800px){
  .lunch-callout{margin-top:0;padding:14px 0 13px}
  .lunch-main{gap:9px}
  .lunch-main strong{font-size:29px}
  .lunch-details{gap:4px;margin-top:9px}
  .quote{min-height:29vh;padding:26px 18px}
}

/* V66 — quote typography scaled to the reduced band */
.quote p{
  font-size:clamp(32px,4.1vw,56px)!important;
  line-height:.98!important;
}
@media(max-width:800px){
  .quote p{
    font-size:clamp(30px,8.2vw,42px)!important;
    line-height:1!important;
  }
}


/* V69 — reviews heading grouped as one editorial block */
.reviews-head.reviews-head-stacked{
  display:block;
}
.reviews-head.reviews-head-stacked>div{
  max-width:760px;
}
.reviews-head.reviews-head-stacked h2{
  margin:0;
}
.reviews-head .reviews-subtitle{
  margin:20px 0 0;
  max-width:430px;
  font-size:14px;
  line-height:1.75;
  color:#6c675d;
}
@media(max-width:800px){
  .reviews-head .reviews-subtitle{margin-top:14px;}
}


/* V70 — reviews hierarchy + platform highlight follows active review */
.reviews-head{display:block;}
.reviews-head>div{max-width:980px;}
.reviews-head .kicker{color:#b68e45;margin-bottom:18px;}
.reviews-head h2{margin:0;max-width:920px;}
.rating-card{background:transparent;color:#171713;}
.rating-card.featured{background:transparent;color:#171713;}
.rating-card.active{background:#17221c;color:#f2eadc;}
.rating-card.active strong span,.rating-card.active small{color:#bdb5a7;}
.rating-card.active .stars{color:#c7a663;}
@media(max-width:800px){.reviews-head .kicker{margin-bottom:14px;}}

/* V73 — reviews title follows Carta editorial treatment; reservation CTA centered */
#avaliacoes .reviews-head h2{
  font-size:clamp(48px,6vw,78px);
  line-height:1.04;
  letter-spacing:-.018em;
  max-width:none;
}
.cta{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:30px;
}
.cta>div{width:100%;}
.cta .btn.light{
  border:1px solid #10150f;
  border-radius:999px;
  background:transparent;
  color:#10150f;
  padding:13px 22px;
  margin:0 auto;
}
@media(max-width:800px){
  #avaliacoes .reviews-head h2{font-size:clamp(39px,10.5vw,54px);}
  .cta{align-items:center;text-align:center;}
  .cta .btn.light{width:auto;}
}

/* V74 — exact review title break + CTA breathing room */
.cta .btn.light{margin-top:14px;}

/* V76 — social icons */
.contact-v11-head{grid-template-columns:1fr!important;}
.social-icons{display:flex;align-items:center;gap:18px;margin-top:18px}
.social-icon{width:27px;height:27px;display:inline-flex!important;align-items:center;justify-content:center;color:var(--gold)!important;opacity:.95;transition:opacity .2s ease,transform .2s ease}
.social-icon svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.social-icon svg .social-fill{fill:currentColor;stroke:none}
a.social-icon:hover{opacity:1;transform:translateY(-2px)}
.social-pending{cursor:default}


/* V77 — unified footer + confirmed social profiles */
.social-icon{color:#eee7db!important;}
footer{background:#0e1712!important;}
footer>p{color:var(--gold)!important;}
footer .copyright{color:var(--gold)!important;}

/* V84 — desktop navigation: six items evenly distributed across available space */
@media(min-width:801px){
  .nav{
    grid-template-columns:120px minmax(0,1fr)!important;
    column-gap:clamp(28px,3.2vw,58px)!important;
  }
  .nav nav{
    grid-column:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    gap:0!important;
  }
  .nav nav > a,
  .nav nav > a:not(.reserve),
  .nav nav > a.reserve{
    grid-column:auto!important;
    grid-row:auto!important;
    transform:none!important;
    margin:0!important;
    flex:0 0 auto!important;
  }
  .nav nav > a:not(.reserve){
    padding:10px 0!important;
  }
  .nav nav > a.reserve{
    justify-self:auto!important;
  }
}

/* V85 — desktop navigation centred as one balanced group */
@media(min-width:801px){
  .nav{
    display:grid!important;
    grid-template-columns:120px minmax(0,1fr) 120px!important;
    column-gap:clamp(18px,2.4vw,38px)!important;
  }
  .nav nav{
    grid-column:2!important;
    justify-self:center!important;
    width:auto!important;
    max-width:100%!important;
    justify-content:center!important;
    gap:clamp(22px,2.25vw,38px)!important;
  }
}

/* V86 — desktop header: three independent zones
   logo left | five-link menu truly centred | reserve right */
@media(min-width:801px){
  .nav{
    display:grid!important;
    grid-template-columns:120px minmax(0,1fr) 120px!important;
    align-items:center!important;
    column-gap:clamp(18px,2.4vw,38px)!important;
  }
  .nav .official-logo{
    grid-column:1!important;
    justify-self:start!important;
  }
  .nav nav{
    grid-column:2 / 4!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 120px!important;
    align-items:center!important;
    width:100%!important;
    max-width:none!important;
    gap:clamp(18px,2.4vw,38px)!important;
    justify-self:stretch!important;
  }
  .nav nav > a:not(.reserve){
    grid-column:1!important;
    grid-row:1!important;
    transform:none!important;
    margin:0!important;
    padding:10px 0!important;
  }
  .nav nav > a:nth-child(1){justify-self:center!important; transform:translateX(-240px)!important;}
  .nav nav > a:nth-child(2){justify-self:center!important; transform:translateX(-120px)!important;}
  .nav nav > a:nth-child(3){justify-self:center!important; transform:none!important;}
  .nav nav > a:nth-child(4){justify-self:center!important; transform:translateX(120px)!important;}
  .nav nav > a:nth-child(5){justify-self:center!important; transform:translateX(240px)!important;}
  .nav nav > a.reserve{
    grid-column:2!important;
    grid-row:1!important;
    justify-self:end!important;
    transform:none!important;
    margin:0!important;
  }
}

/* V88 — secondary delivery route beneath direct booking */
.cta-actions{display:flex;flex-direction:column;align-items:center;gap:18px;}
.cta-actions .btn.light{margin-top:14px;}
.delivery-link{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#10150f;border-bottom:1px solid rgba(16,21,15,.45);padding-bottom:4px;transition:opacity .2s ease;}
.delivery-link span{font-weight:400;opacity:.72;text-transform:none;letter-spacing:.02em;margin-right:5px;}
.delivery-link:hover{opacity:.65;}
@media(max-width:800px){.cta-actions{width:100%;}.delivery-link{font-size:10px;}}

/* V89 — give the secondary Uber Eats route the same breathing room as the CTA copy */
.cta-actions{gap:30px;}

/* V90 — separate the secondary Uber Eats route more clearly from direct booking */
.cta-actions{gap:68px;}
@media(max-width:800px){.cta-actions{gap:58px;}}


/* V91 — structural separation between direct booking and delivery */
.cta-actions{gap:0;}
.delivery-route{display:block;width:100%;text-align:center;margin-top:56px;}
@media(max-width:800px){.cta-actions{gap:0;}.delivery-route{margin-top:46px;}}

/* V93 — compact delivery spacing without enlarging the booking banner */
.delivery-route{margin-top:24px;}
@media(max-width:800px){.delivery-route{margin-top:22px;}}

/* V95 — definitive hero statement alignment.
   Full-width positioning prevents max-content overflow from shifting the slogan off-screen. */
@media(min-width:801px){
  .hero-content{
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:50%!important;
    bottom:auto!important;
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    padding:0 5vw!important;
    transform:translateY(-50%)!important;
    text-align:center!important;
  }
  .hero-content h1{
    width:100%!important;
    margin:0 auto!important;
    text-align:center!important;
  }
}

/* ==========================================================
   V96 MOBILE — same editorial reading as approved V95 desktop
   Desktop (min-width:801px) remains untouched.
   ========================================================== */
@media(max-width:800px){
  html{scroll-padding-top:76px;}
  body{background:#0e1712;}
  body.mobile-menu-open{overflow:hidden;}
  #santos,#carta,#grupos,#avaliacoes,#contactos{scroll-margin-top:76px!important;}

  /* Header: same dark-green visual language as desktop */
  .nav,
  .nav.scrolled{
    height:76px!important;
    padding:0 24px!important;
    background:rgba(14,23,18,.94)!important;
    border-bottom:1px solid rgba(255,255,255,.07)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
  }
  .official-logo img{width:46px!important;height:46px!important;}
  .menu-toggle{
    display:block!important;
    position:relative;
    z-index:62;
    width:44px;
    height:44px;
    padding:0;
    font-size:0!important;
    line-height:1;
  }
  .menu-toggle::before{
    content:'☰';
    font:400 28px/44px 'DM Sans',sans-serif;
    color:var(--cream);
  }
  body.mobile-menu-open .menu-toggle::before{content:'×';font-size:34px;}

  /* Menu is an overlay, never part of the document flow */
  .nav nav{
    display:flex!important;
    position:fixed!important;
    z-index:60!important;
    top:76px!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    height:auto!important;
    padding:24px 24px max(32px,env(safe-area-inset-bottom))!important;
    background:#0e1712!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:0!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .22s ease,transform .22s ease,visibility .22s;
    overflow-y:auto;
  }
  .nav nav.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  .nav nav>a:not(.reserve){
    width:100%!important;
    min-height:58px!important;
    padding:0!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    border-left:0!important;
    border-bottom:1px solid rgba(255,255,255,.11)!important;
    font-size:11px!important;
    letter-spacing:.18em!important;
  }
  .nav nav .reserve{
    align-self:center!important;
    margin:30px 0 0!important;
    padding:15px 27px!important;
    font-size:10px!important;
    letter-spacing:.18em!important;
  }

  /* Opening keeps the desktop hierarchy and cinematic reading */
  .hero{
    min-height:100svh!important;
    height:100svh!important;
    padding:76px 24px 30px!important;
    display:grid!important;
    place-items:center!important;
  }
  .hero-content{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    max-width:620px!important;
    height:auto!important;
    padding:0!important;
    display:block!important;
    text-align:center!important;
  }
  .hero-content h1{
    margin:0!important;
    font-size:clamp(44px,13vw,64px)!important;
    line-height:.98!important;
    letter-spacing:-.035em!important;
    text-align:center!important;
  }
  .hero-content h1 em{
    display:block!important;
    margin-top:10px!important;
    font-size:.57em!important;
    line-height:1.08!important;
  }
  .hero .scroll{right:24px!important;bottom:24px!important;font-size:20px!important;}
  .photo-carousel .gallery-slide img{object-position:center center!important;}

  /* Global mobile rhythm: same proportions, smaller canvas */
  .section{padding:74px 24px!important;}
  .kicker,.eyebrow{font-size:9px!important;letter-spacing:.24em!important;}
  .intro h2,.menu h2,.groups h2,.contact-v11 h2,#avaliacoes .reviews-head h2{
    font-size:clamp(42px,12.5vw,58px)!important;
    line-height:1.01!important;
    letter-spacing:-.03em!important;
  }
  .intro>p,.section-copy,.groups-copy>p{
    font-size:15px!important;
    line-height:1.75!important;
  }

  /* About: preserve desktop image hierarchy instead of three unrelated blocks */
  .image-grid{
    margin-top:48px!important;
    display:grid!important;
    grid-template-columns:1.25fr .75fr!important;
    grid-template-rows:210px 210px!important;
    gap:10px!important;
  }
  .image-grid .tall{grid-row:1/3!important;min-height:0!important;}
  .image-grid .photo{min-height:0!important;}

  /* Carta: retain the three-part editorial sequence */
  .menu-columns{margin:44px 0 30px!important;}
  .menu-columns article{padding:28px 0!important;border-bottom:1px solid rgba(255,255,255,.14)!important;}
  .menu-columns article:first-child{padding-top:0!important;}
  .menu-columns article:last-child{border-bottom:0!important;}
  .menu h3{font-size:29px!important;line-height:1.08!important;margin:10px 0 14px!important;}
  .menu article p{font-size:13px!important;line-height:1.75!important;}
  .lunch-callout{margin:8px 0 30px!important;padding:18px 0!important;}
  .lunch-main h3{font-size:29px!important;}
  .lunch-main strong{font-size:31px!important;}
  .text-link{display:inline-block;font-size:10px!important;}

  /* Photo story: desktop sequence, adapted vertically with controlled heights */
  .photo-story{display:grid!important;grid-template-columns:1fr!important;}
  .story-img{min-height:56svh!important;}
  .story-copy{padding:54px 24px!important;min-height:250px!important;}
  .story-copy p{font-size:clamp(42px,12vw,56px)!important;line-height:1!important;}
  .quote{min-height:260px!important;padding:46px 24px!important;}

  /* Groups: image first, message second — same desktop reading order */
  .groups{display:grid!important;grid-template-columns:1fr!important;gap:46px!important;}
  .groups-photo{min-height:56svh!important;}
  .groups-copy .btn{margin-top:18px!important;}

  /* Reviews: compact cards, still clearly three platforms */
  .ratings{margin-top:42px!important;}
  .rating-card{padding:28px 0!important;min-height:0!important;}
  .rating-card strong{font-size:54px!important;margin:18px 0 7px!important;}
  .review-rotator{margin-top:38px!important;}
  .review-rotator blockquote{font-size:clamp(30px,8.5vw,42px)!important;line-height:1.16!important;}

  /* Reservation: no oversized empty gold panel */
  .cta{padding:64px 24px!important;gap:26px!important;}
  .cta h2{font-size:clamp(42px,12vw,56px)!important;line-height:1.01!important;}
  .cta-actions{gap:0!important;width:100%!important;}
  .cta .btn.light{margin-top:6px!important;padding:14px 20px!important;font-size:9px!important;}
  .delivery-route{margin-top:24px!important;}
  .delivery-link{font-size:9px!important;line-height:1.6!important;}

  /* Closing image and contacts */
  .signature-photo{min-height:72svh!important;padding:70px 24px!important;background-position:center!important;}
  .signature-inner p{font-size:clamp(44px,12.5vw,60px)!important;line-height:.98!important;}
  .contact-v11-head{padding-bottom:38px!important;}
  .contact-v11-grid article{padding:25px 0!important;}
  .hours-v11 p{grid-template-columns:1fr!important;gap:3px!important;}

  footer{padding:42px 24px!important;gap:18px!important;}
  .footer-official-logo img{width:58px!important;height:58px!important;}
}

/* ==========================================================
   V97 MOBILE — hero + reviews fidelity to approved desktop
   Mobile only. Desktop remains untouched.
   ========================================================== */
@media(max-width:800px){
  /* Hero: centered editorial statement directly on photograph; no backing panel */
  .hero{overflow:hidden!important;}
  .hero-content{
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:50%!important;
    bottom:auto!important;
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    padding:0 24px!important;
    transform:translateY(-50%)!important;
    text-align:center!important;
    background:transparent!important;
    overflow:visible!important;
  }
  .hero-content h1{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 auto!important;
    padding:0!important;
    font-size:clamp(40px,11.4vw,54px)!important;
    line-height:1.02!important;
    letter-spacing:-.035em!important;
    text-align:center!important;
    white-space:normal!important;
    background:transparent!important;
    color:var(--cream)!important;
  }
  .hero-content h1 em{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:9px auto 0!important;
    padding:0!important;
    font-size:.54em!important;
    line-height:1.1!important;
    white-space:normal!important;
    background:transparent!important;
  }

  /* Reviews: desktop narrative translated vertically:
     heading -> rotating testimony -> synchronized platform scores */
  #avaliacoes{
    display:flex!important;
    flex-direction:column!important;
  }
  #avaliacoes .reviews-head{order:1!important;}
  #avaliacoes .review-rotator{
    order:2!important;
    width:100%!important;
    box-sizing:border-box!important;
    margin:42px 0 0!important;
    padding:42px 28px 46px!important;
    min-height:390px!important;
  }
  #avaliacoes .review-rotator blockquote{
    font-size:clamp(31px,8.9vw,43px)!important;
    line-height:1.14!important;
  }
  #avaliacoes .ratings{
    order:3!important;
    margin-top:34px!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    border-top:1px solid #cfc5b3!important;
    border-bottom:1px solid #cfc5b3!important;
  }
  #avaliacoes .rating-card{
    min-width:0!important;
    min-height:174px!important;
    padding:22px 10px!important;
    border-right:1px solid #cfc5b3!important;
    border-bottom:0!important;
    justify-content:center!important;
  }
  #avaliacoes .rating-card:last-child{border-right:0!important;}
  #avaliacoes .rating-card .platform{
    font-size:8px!important;
    letter-spacing:.13em!important;
    white-space:nowrap!important;
  }
  #avaliacoes .rating-card strong{
    margin:14px 0 6px!important;
    font-size:clamp(31px,9vw,42px)!important;
    white-space:nowrap!important;
  }
  #avaliacoes .rating-card strong span{font-size:13px!important;}
  #avaliacoes .rating-card .stars{
    font-size:12px!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
  }
  #avaliacoes .rating-card small{
    margin-top:8px!important;
    font-size:8px!important;
    line-height:1.3!important;
    white-space:normal!important;
  }
  #avaliacoes .ratings-note{
    order:4!important;
    margin:18px 0 0!important;
  }
}

/* V97 mobile footer — preserve desktop three-part reading on one line */
@media (max-width:800px){
  footer{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:10px!important;
    padding:24px 18px!important;
  }
  footer .footer-official-logo{
    justify-self:start!important;
    margin:0!important;
  }
  footer .footer-official-logo img{
    width:34px!important;
    height:34px!important;
    display:block!important;
  }
  footer>p{
    margin:0!important;
    min-width:0!important;
    font-size:7px!important;
    line-height:1.25!important;
  }
  footer>p:not(.copyright){
    justify-self:center!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  footer .copyright{
    justify-self:end!important;
    text-align:right!important;
    white-space:nowrap!important;
    font-size:6.5px!important;
  }
}

/* ==========================================================
   V98 MOBILE — reviews order correction only
   Desktop untouched. Mobile: heading -> ratings -> carousel -> note.
   ========================================================== */
@media (max-width:800px){
  #avaliacoes .reviews-head{order:1!important;}
  #avaliacoes .ratings{
    order:2!important;
    margin-top:42px!important;
  }
  #avaliacoes .review-rotator{
    order:3!important;
    margin-top:34px!important;
  }
  #avaliacoes .ratings-note{order:4!important;}
}

/* ==========================================================
   V101 MOBILE HEADER — faithful desktop header translation
   Real links, desktop translucency, logo left + nav + reserve right.
   ========================================================== */
@media(max-width:800px){
  .nav,
  .nav.scrolled{
    height:72px!important;
    padding:0 16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    background:rgba(14,23,18,.15)!important;
    border-bottom:1px solid rgba(255,255,255,.035)!important;
    backdrop-filter:blur(5px)!important;
    -webkit-backdrop-filter:blur(5px)!important;
    overflow:visible!important;
  }
  .nav .official-logo{
    position:relative!important;
    z-index:64!important;
    flex:0 0 44px!important;
    width:44px!important;
    height:44px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }
  .nav .official-logo img{width:42px!important;height:42px!important;}
  .menu-toggle{display:none!important;}

  .nav nav,
  .nav nav.open{
    position:absolute!important;
    z-index:62!important;
    top:0!important;
    left:72px!important;
    right:14px!important;
    bottom:auto!important;
    height:72px!important;
    width:auto!important;
    padding:0 92px 0 0!important;
    margin:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:22px!important;
    background:transparent!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .nav nav::-webkit-scrollbar{display:none!important;}
  .nav nav>a:not(.reserve){
    flex:0 0 auto!important;
    width:auto!important;
    min-height:auto!important;
    height:auto!important;
    padding:10px 0!important;
    margin:0!important;
    display:block!important;
    border:0!important;
    background:transparent!important;
    font-size:8px!important;
    line-height:1!important;
    letter-spacing:.15em!important;
    color:var(--cream)!important;
    transform:none!important;
  }
  .nav nav>a.reserve{
    position:fixed!important;
    z-index:65!important;
    top:16px!important;
    right:14px!important;
    width:auto!important;
    height:40px!important;
    min-height:40px!important;
    margin:0!important;
    padding:0 13px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(199,166,99,.78)!important;
    border-radius:999px!important;
    background:rgba(14,23,18,.16)!important;
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:.14em!important;
    color:var(--cream)!important;
    transform:none!important;
  }
  body.mobile-menu-open{overflow:auto!important;}
  html{scroll-padding-top:72px!important;}
  #santos,#carta,#grupos,#avaliacoes,#contactos{scroll-margin-top:72px!important;}
}

/* ==========================================================
   V103 MOBILE HEADER — hard boundaries for centre navigation
   Logo and RESERVAR stay fixed; nav can scroll only between them.
   ========================================================== */
@media(max-width:800px){
  .nav nav,
  .nav nav.open{
    left:76px!important;
    right:108px!important;
    width:auto!important;
    padding:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    contain:paint!important;
  }
  .nav nav>a:not(.reserve){
    flex:0 0 auto!important;
  }
  .nav nav>a.reserve{
    position:fixed!important;
    right:14px!important;
  }
}


/* ==========================================================
   V104 MOBILE HEADER — true clipped navigation window
   Mobile-only reserve is a sibling of nav so it can never be
   affected by the nav scrolling/clipping context.
   ========================================================== */
.mobile-reserve{display:none;}
@media(max-width:800px){
  .nav{
    position:fixed!important;
    isolation:isolate!important;
    overflow:hidden!important;
  }
  .nav .official-logo{
    position:absolute!important;
    left:16px!important;
    top:14px!important;
    z-index:80!important;
  }
  .nav nav,
  .nav nav.open{
    position:absolute!important;
    left:76px!important;
    right:112px!important;
    top:0!important;
    height:72px!important;
    width:auto!important;
    padding:0!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    gap:22px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    clip-path:inset(0)!important;
    contain:none!important;
    z-index:60!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x!important;
  }
  .nav nav::-webkit-scrollbar{display:none!important;}
  .nav nav>a:not(.reserve){
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }
  .nav nav>a.reserve{display:none!important;}
  .nav .mobile-reserve{
    position:absolute!important;
    display:flex!important;
    z-index:90!important;
    top:16px!important;
    right:14px!important;
    width:92px!important;
    height:40px!important;
    padding:0!important;
    margin:0!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(199,166,99,.78)!important;
    border-radius:999px!important;
    background:rgba(14,23,18,.16)!important;
    color:var(--cream)!important;
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:.14em!important;
    text-decoration:none!important;
    white-space:nowrap!important;
  }
}

/* GA4 consent banner — V112 */
.santos-cookie-consent{position:fixed;left:18px;right:18px;bottom:18px;z-index:99999;max-width:760px;margin:auto;padding:14px 16px;display:flex;align-items:center;gap:18px;justify-content:space-between;background:#16221c;color:#fff;border:1px solid rgba(199,166,106,.55);box-shadow:0 10px 35px rgba(0,0,0,.28);font-family:"DM Sans",sans-serif;font-size:13px;line-height:1.45}
.santos-cookie-consent[hidden]{display:none}
.santos-cookie-copy{display:flex;flex-direction:column;gap:3px}
.santos-cookie-copy strong{color:#c7a66a;font-weight:600}
.santos-cookie-actions{display:flex;gap:8px;flex:0 0 auto}
.santos-cookie-actions button{border:1px solid #c7a66a;background:transparent;color:#fff;padding:8px 12px;cursor:pointer;font:inherit}
.santos-cookie-actions button.accept{background:#c7a66a;color:#16221c}
@media(max-width:640px){.santos-cookie-consent{left:10px;right:10px;bottom:10px;align-items:stretch;flex-direction:column;gap:10px}.santos-cookie-actions{width:100%}.santos-cookie-actions button{flex:1}}
