/* ==========================================================================
   Restaurante Duque — variáveis
   ========================================================================== */
:root{
  --color-primary:#903915;
  --color-primary-light:#b2521f;
  --color-primary-dark:#6b2a0f;
  --color-cream:#fdf6ea;
  --color-cream-soft:#f4e9d8;
  --color-dark:#221007;
  --color-ink:#2a1a10;
  --shadow-soft:0 20px 45px -20px rgba(34,16,7,.55);
  --shadow-btn:0 12px 30px -10px rgba(144,57,21,.65);
  --radius-lg:26px;
  --radius-md:16px;
  --ff-display:'Playfair Display', Georgia, serif;
  --ff-body:'Mulish', system-ui, -apple-system, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{
  scroll-behavior:smooth;
}
html, body{
  overscroll-behavior:none;
}
html:has(.snap), body:has(.snap){
  height:100%;
  overflow:hidden;
}
body{
  margin:0;
  font-family:var(--ff-body);
  color:var(--color-cream);
  background:var(--color-dark);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3{ font-family:var(--ff-display); margin:0; }

/* ==========================================================================
   Fundo fixo (a mesma fotografia em todas as secções)
   ========================================================================== */
.site-bg{
  position:fixed;
  inset:0;
  z-index:-2;
  background-image:url('../img/bg-main.jpg');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  will-change:transform;
  backface-visibility:hidden;
}
@media (max-width:760px), (min-width:761px) and (max-width:1024px) and (orientation:portrait){
  .site-bg{ background-image:url('../img/bg-main-mobile.jpg'); }
}

.section__overlay{
  position:absolute;
  inset:0;
  z-index:0;
  background:rgba(23,11,5,.7);
  backdrop-filter:saturate(105%);
}

/* ==========================================================================
   Scroll snap — sem scroll contínuo, "stop" no final de cada secção
   ========================================================================== */
.snap{
  height:100vh;
  height:100svh;
  height:calc(var(--vh, 1vh) * 100);
  overflow-y:scroll;
  scroll-snap-type:y mandatory;
  scroll-padding-top:0;
  overscroll-behavior-y:none;
}
.section{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  min-height:calc(var(--vh, 1vh) * 100);
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  padding:120px 6vw 60px;
  overflow:hidden;
}
.section > *:not(.section__overlay):not(.t-arrow){
  opacity:0;
  transform:translateY(36px);
  transition:opacity .7s ease, transform .7s ease;
}
.section.is-visible > *:not(.section__overlay):not(.t-arrow){
  opacity:1;
  transform:translateY(0);
}
.t-arrow{ opacity:0; }
.section.is-visible .t-arrow{ opacity:1; }
#sobre > .sobre__grid{
  opacity:1;
  transform:none;
  transition:none;
}
#hero > .hero__content{
  opacity:1;
  transform:none;
  transition:none;
}

/* ==========================================================================
   Topbar
   ========================================================================== */
.topbar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  padding:48px 6vw 22px;
  transition:opacity .5s ease, visibility .5s ease;
  opacity:1;
  visibility:visible;
  pointer-events:none;
}
.topbar.is-hidden{ opacity:0; visibility:hidden; }
.topbar__inner > *{ pointer-events:auto; }
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  max-width:1400px;
  margin:0 auto;
}
.topbar__logo img{ height:44px; width:auto; }

.topbar__actions{ display:flex; align-items:center; gap:14px; }

.lang-switch{ position:relative; }
.lang-switch__toggle{
  display:flex;
  align-items:center;
  gap:7px;
  background:rgba(253,246,234,.1);
  border:1px solid rgba(253,246,234,.32);
  border-radius:999px;
  padding:9px 14px;
  color:var(--color-cream);
  font-family:var(--ff-body);
  font-weight:800;
  font-size:.68rem;
  letter-spacing:.05em;
  cursor:pointer;
  transition:background .3s ease, border-color .3s ease;
}
.lang-switch__toggle:hover{ background:rgba(253,246,234,.18); }
.lang-switch__chevron{
  font-size:.6rem;
  transition:transform .3s ease;
}
.lang-switch.is-open .lang-switch__chevron{ transform:rotate(180deg); }

.lang-switch__menu{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  transform:translateX(-50%) translateY(-6px);
  min-width:150px;
  background:var(--color-dark);
  border:1px solid rgba(253,246,234,.2);
  border-radius:14px;
  padding:6px;
  box-shadow:var(--shadow-soft);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
  z-index:80;
}
.lang-switch.is-open .lang-switch__menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.lang-switch__option{
  display:block;
  width:100%;
  text-align:left;
  background:transparent;
  border:none;
  color:var(--color-cream-soft);
  font-family:var(--ff-body);
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.01em;
  padding:10px 14px;
  border-radius:9px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.lang-switch__option:hover{ background:rgba(253,246,234,.08); color:var(--color-cream); }
.lang-switch__option.is-active{ color:var(--color-primary-light); }

.topbar__nav{
  display:flex;
  gap:38px;
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.82rem;
}
.topbar__nav a{
  position:relative;
  padding:4px 0;
}
.topbar__nav a::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-3px;
  height:2px;
  background:var(--color-primary-light);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
.topbar__nav a:hover::after{ transform:scaleX(1); }

.btn.topbar__cta{ font-size:.68rem; padding:9px 18px; }

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px;
  height:38px;
  background:rgba(253,246,234,.12);
  border:1px solid rgba(253,246,234,.3);
  border-radius:10px;
  cursor:pointer;
}
.nav-toggle span{
  width:18px;
  height:2px;
  margin:0 auto;
  background:var(--color-cream);
  border-radius:2px;
  transition:transform .3s ease, opacity .3s ease;
}
.nav-toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Botões animados
   ========================================================================== */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:16px 34px;
  border-radius:999px;
  font-family:var(--ff-body);
  font-weight:800;
  font-size:.92rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  border:1px solid transparent;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background .35s ease, color .35s ease;
}
.btn::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(115deg, transparent 20%, rgba(255,255,255,.35) 45%, transparent 70%);
  transform:translateX(-120%);
  transition:transform .7s ease;
}
.btn:hover::before{ transform:translateX(120%); }
.btn:hover{ transform:translateY(-3px) scale(1.03); }
.btn:active{ transform:translateY(-1px) scale(.98); }

.btn--primary{
  background:linear-gradient(135deg, var(--color-primary-light), var(--color-primary));
  color:var(--color-cream);
  box-shadow:var(--shadow-btn);
}
.btn--primary:hover{ box-shadow:0 18px 40px -12px rgba(144,57,21,.8); }

.btn--ghost{
  background:rgba(253,246,234,.08);
  color:var(--color-cream);
  border-color:rgba(253,246,234,.55);
  backdrop-filter:blur(6px);
}
.btn--ghost:hover{ background:rgba(253,246,234,.16); border-color:var(--color-cream); }

.btn--pill{
  padding:11px 24px;
  background:rgba(253,246,234,.1);
  border-color:rgba(253,246,234,.4);
  color:var(--color-cream);
}
.btn--pill:hover{ background:var(--color-primary); border-color:var(--color-primary); }

.btn--outline-dark{
  padding:13px 28px;
  background:transparent;
  color:var(--color-primary-dark);
  border-color:var(--color-primary-dark);
}
.btn--outline-dark:hover{ background:var(--color-primary-dark); color:var(--color-cream); }

.btn--sm{ padding:10px 26px; font-size:.78rem; }

/* ==========================================================================
   SECÇÃO 1 — HERO
   ========================================================================== */
.hero__content{
  position:relative;
  z-index:1;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:54px;
  margin-top:-70px;
}
.hero__logo{ width:min(190px, 40vw); filter:drop-shadow(0 18px 40px rgba(0,0,0,.45)); }
.hero__actions{ display:flex; gap:22px; flex-wrap:wrap; justify-content:center; margin-top:34px; }
.hero__actions .btn{ padding:13px 28px; font-size:.82rem; }

/* ==========================================================================
   SECÇÃO 2 — SOBRE + PORTFÓLIO
   ========================================================================== */
.section--sobre{ padding:0; }
.sobre__grid{
  position:relative;
  z-index:1;
  width:100%;
  height:100vh;
  height:100svh;
  height:calc(var(--vh, 1vh) * 100);
  display:grid;
  grid-template-columns:minmax(280px, 560px) 1fr;
  gap:0;
  align-items:stretch;
}
.sobre__card{
  height:100%;
  background:var(--color-cream);
  color:var(--color-ink);
  padding:44px 52px 60px;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  overflow-y:auto;
}
.sobre__logo{ width:56px; margin:26px auto 64px; flex:none; }
.sobre__body{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.sobre__title{
  font-size:1.05rem;
  color:var(--color-primary);
  text-align:center;
  margin-bottom:6px;
}
.sobre__text{
  font-size:1.02rem;
  line-height:1.75;
  color:#4a382c;
  text-align:center;
  margin-bottom:14px;
}
.sobre__text:last-child{ margin-bottom:0; }

.sobre__slider{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
}
.sobre__slider-viewport{
  width:100%;
  height:100%;
  overflow:hidden;
}
.sobre__slider::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  background:rgba(20,9,3,.22);
  pointer-events:none;
}
.slider__track{
  display:flex;
  width:100%;
  height:100%;
  transition:transform .9s cubic-bezier(.65,0,.35,1);
}
.slider__slide{
  flex:0 0 100%;
  height:100%;
  background-size:cover;
  background-position:center;
}
.slider__arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  border:none;
  background:transparent;
  color:var(--color-cream);
  font-size:1.3rem;
  width:auto;
  height:auto;
  padding:10px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:color .3s ease, transform .3s ease;
}
.slider__arrow:hover{
  color:var(--color-primary-light);
  transform:translateY(-50%) scale(1.15);
}
.slider__arrow--prev{ left:20px; }
.slider__arrow--next{ right:20px; }

.slider__dots{
  position:absolute;
  bottom:18px; left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:9px;
  z-index:3;
}
.slider__dots span{
  width:8px; height:8px;
  border-radius:50%;
  background:rgba(253,246,234,.45);
  cursor:pointer;
  transition:background .3s ease, transform .3s ease;
}
.slider__dots span.is-active{
  background:var(--color-cream);
  transform:scale(1.3);
}

/* ==========================================================================
   Título de secção genérico
   ========================================================================== */
.section__title{
  position:absolute;
  top:120px;
  left:0;
  right:0;
  z-index:1;
  font-size:clamp(2.6rem, 6vw, 4.2rem);
  color:var(--color-cream);
  text-align:center;
  margin:0;
}

/* ==========================================================================
   SECÇÃO 3 — CARTÕES FLUTUANTES
   ========================================================================== */
.section--menu{ overflow-y:auto; }
.cards-shell{ width:100%; position:relative; }
.cards-viewport{ width:100%; }
.cards__arrow{
  display:none;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  border:none;
  background:transparent;
  color:var(--color-cream);
  font-size:1.3rem;
  padding:10px;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  transition:color .3s ease, transform .3s ease;
}
.cards__arrow:hover{
  color:var(--color-primary-light);
  transform:translateY(-50%) scale(1.15);
}
.cards__arrow--prev{ left:0; }
.cards__arrow--next{ right:0; }
.cards{
  position:relative;
  z-index:1;
  display:flex;
  gap:30px;
  flex-wrap:wrap;
  justify-content:center;
  max-width:1400px;
  margin:0 auto;
}
.card{
  position:relative;
  display:flex;
  align-items:flex-end;
  width:360px;
  height:580px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background-size:cover;
  background-position:center;
  box-shadow:0 0 60px -10px rgba(178,82,31,.42), 0 26px 50px -18px rgba(10,5,2,.6);
  transition:transform .4s ease, box-shadow .4s ease;
}
.card::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  background:rgba(10,5,2,.3);
}
.card:hover{
  transform:translateY(-8px);
  box-shadow:0 0 75px -8px rgba(178,82,31,.52), 0 34px 60px -18px rgba(0,0,0,.65);
}
.card__overlay{
  position:relative;
  z-index:1;
  width:100%;
  padding:34px 30px 34px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:32px;
  text-align:center;
  background:linear-gradient(180deg, transparent 0%, rgba(20,9,3,.5) 40%, rgba(15,7,3,.92) 100%);
}
.card__text{
  display:flex;
  flex-direction:column;
  gap:1px;
}
.card__desc{
  font-size:.82rem;
  color:var(--color-cream-soft);
  opacity:.85;
  line-height:1.4;
}
.card__title{
  font-size:1.05rem;
  color:var(--color-cream);
  text-transform:uppercase;
  letter-spacing:.02em;
  white-space:nowrap;
}

/* ==========================================================================
   SECÇÃO 4 — FEEDBACKS
   ========================================================================== */
.section--feedbacks{ gap:0; padding-top:60px; }
.testimonials{
  position:relative;
  z-index:1;
  width:100%;
  max-width:680px;
  margin-top:26px;
}
.t-viewport{ overflow:hidden; }
.t-track{
  display:flex;
  transition:transform .6s cubic-bezier(.65,0,.35,1);
}
.testimonial{
  flex:0 0 100%;
  margin:0;
  text-align:center;
  padding:20px 30px;
}
.testimonial__stars{
  color:var(--color-primary-light);
  font-size:1.1rem;
  letter-spacing:4px;
  margin-bottom:10px;
}
.testimonial blockquote{
  margin:0;
  font-family:var(--ff-display);
  font-style:italic;
  font-size:clamp(0.92rem, 1.7vw, 1.2rem);
  line-height:1.5;
  color:var(--color-cream);
}
.testimonial blockquote::before{ content:'\201C'; }
.testimonial blockquote::after{ content:'\201D'; }
.t-arrow{
  position:absolute;
  top:calc(50% + 26px);
  transform:translateY(-50%);
  z-index:2;
  width:auto; height:auto;
  border:none;
  background:transparent;
  color:var(--color-primary);
  font-size:1.3rem;
  cursor:pointer;
  padding:10px;
  display:flex; align-items:center; justify-content:center;
  transition:color .3s ease, transform .3s ease, opacity .5s ease;
}
.t-arrow--prev{ left:3vw; }
.t-arrow--next{ right:3vw; }
.t-arrow:hover{
  color:var(--color-primary-light);
  transform:translateY(-50%) scale(1.15);
}

/* ==========================================================================
   SECÇÃO 5 — RESERVAS
   ========================================================================== */
.section--reservas{ padding-left:6vw; padding-right:6vw; }
.reservas__panel{
  background:rgba(253,246,234,.05);
  border:1px solid rgba(253,246,234,.16);
  backdrop-filter:blur(8px);
  border-radius:var(--radius-lg);
  padding:34px;
  box-shadow:0 0 75px -12px rgba(178,82,31,.38);
}
.reservas__grid{
  position:relative;
  z-index:1;
  width:100%;
  max-width:1380px;
  height:80vh;
  min-height:540px;
  display:grid;
  grid-template-columns:1fr 1.15fr;
  grid-template-rows:minmax(0, 1fr);
  gap:24px;
}
.reservas__left{
  position:relative;
  grid-column:1;
  grid-row:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:36px;
}
.reservas__intro{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
  margin-top:18px;
}
.reservas__intro h2{
  font-size:clamp(1.4rem, 2.2vw, 1.9rem);
  color:var(--color-primary-light);
}
.reservas__info{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  margin-top:22px;
}
.reservas__cta{
  margin-top:auto;
}
.reservas__info ul{ display:flex; flex-direction:column; gap:20px; }
.reservas__info li{ font-size:1.28rem; line-height:1.7; color:var(--color-cream-soft); }
.reservas__info strong{ color:var(--color-cream); }
.reservas__info a:hover{ color:var(--color-primary-light); }
.reservas__note{
  display:inline-block;
  margin-top:4px;
  font-size:.82rem;
  color:var(--color-cream-soft);
  opacity:.65;
}

.reservas__social{ display:flex; gap:14px; }
.reservas__social-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(253,246,234,.3);
  color:var(--color-cream-soft);
  transition:color .3s ease, border-color .3s ease, transform .3s ease;
}
.reservas__social-link svg{ width:20px; height:20px; }
.reservas__social-link:hover{
  color:var(--color-primary-light);
  border-color:var(--color-primary-light);
  transform:translateY(-3px);
}

.reservas__map{
  grid-column:2;
  grid-row:1;
  border-radius:var(--radius-md);
  overflow:hidden;
  position:relative;
}
.reservas__map iframe{ width:100%; height:100%; border:0; filter:saturate(.9) contrast(1.05); }
.reservas__map-static{
  display:none;
  width:100%;
  height:100%;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-align:center;
  padding:24px;
  background:linear-gradient(160deg, rgba(144,57,21,.35), rgba(20,9,3,.85)), var(--color-dark);
  color:var(--color-cream);
  font-weight:700;
  font-size:.95rem;
  transition:opacity .3s ease;
}
.reservas__map-static svg{ width:34px; height:34px; color:var(--color-primary-light); }
.reservas__map-static:hover{ opacity:.85; }

/* ==========================================================================
   RODAPÉ
   ========================================================================== */
.site-footer{
  position:relative;
  width:100%;
  min-height:130px;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:28px 6vw;
  text-align:center;
  overflow:hidden;
}
.site-footer__logo{ position:relative; z-index:1; width:40px; opacity:.9; }
.site-footer__copy{
  position:relative;
  z-index:1;
  font-size:.72rem;
  color:var(--color-cream-soft);
  opacity:.75;
  max-width:560px;
}
.site-footer__link{
  position:relative;
  z-index:1;
  font-size:.7rem;
  color:var(--color-cream-soft);
  text-decoration:underline;
  opacity:.85;
  transition:color .3s ease, opacity .3s ease;
}
.site-footer__link:hover{ color:var(--color-primary-light); opacity:1; }

/* ==========================================================================
   COOKIE BANNER
   ========================================================================== */
.cookie-banner{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:200;
  max-width:640px;
  margin:0 auto;
  background:rgba(20,9,3,.55);
  backdrop-filter:blur(14px);
  border:1px solid rgba(253,246,234,.2);
  border-radius:var(--radius-md);
  padding:22px 26px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px;
  justify-content:space-between;
  box-shadow:var(--shadow-soft);
  opacity:0;
  visibility:hidden;
  transform:translateY(20px);
  transition:opacity .4s ease, transform .4s ease, visibility .4s ease;
}
.cookie-banner.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.cookie-banner__text{
  flex:1 1 320px;
  font-size:.85rem;
  line-height:1.6;
  color:var(--color-cream-soft);
  margin:0;
}
.cookie-banner__text a{ color:var(--color-primary-light); text-decoration:underline; }
.cookie-banner__btn{ flex:none; padding:11px 26px; font-size:.75rem; }

/* ==========================================================================
   PÁGINA — POLÍTICA DE PRIVACIDADE
   ========================================================================== */
.legal-overlay{
  position:fixed;
  inset:0;
  z-index:0;
  background:rgba(10,5,2,.84);
  pointer-events:none;
}
.legal-topbar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  padding:28px 6vw;
  text-align:center;
}
.legal-topbar__logo{ display:inline-block; }
.legal-topbar__logo img{ height:38px; width:auto; }
.legal-main{
  position:relative;
  z-index:1;
  min-height:100vh;
  min-height:100svh;
  min-height:calc(var(--vh, 1vh) * 100);
  display:flex;
  justify-content:center;
  padding:140px 6vw 100px;
}
.legal-card{
  width:100%;
  max-width:760px;
  background:rgba(253,246,234,.05);
  border:1px solid rgba(253,246,234,.15);
  backdrop-filter:blur(10px);
  border-radius:var(--radius-lg);
  padding:52px 56px;
}
.legal-card h1{
  font-family:var(--ff-display);
  font-size:clamp(1.4rem, 2.4vw, 1.8rem);
  color:var(--color-primary-light);
  text-align:center;
  margin-bottom:50px;
}
.legal-card h2{
  font-family:var(--ff-display);
  font-size:1.3rem;
  color:var(--color-cream);
  margin:36px 0 14px;
}
.legal-card h2:first-of-type{ margin-top:0; }
.legal-card p{
  font-size:.98rem;
  line-height:1.75;
  color:var(--color-cream-soft);
  margin:0 0 14px;
}
.legal-card ul{ margin:0 0 18px 22px; padding:0; list-style:disc; }
.legal-card li{
  font-size:.98rem;
  line-height:1.7;
  color:var(--color-cream-soft);
  margin-bottom:8px;
}
.legal-card a{ color:var(--color-primary-light); }
.legal-card table{ width:100%; border-collapse:collapse; margin:18px 0 28px; font-size:.88rem; }
.legal-card th, .legal-card td{ text-align:left; padding:10px 12px; border-bottom:1px solid rgba(253,246,234,.15); color:var(--color-cream-soft); }
.legal-card th{ color:var(--color-cream); font-weight:800; }

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width:960px), (min-width:961px) and (max-width:1024px) and (orientation:portrait){
  .sobre__grid{ grid-template-columns:1fr; grid-template-rows:1fr 1fr; height:100vh; height:100svh; height:calc(var(--vh, 1vh) * 100); gap:0; }
  .sobre__card{ height:100%; max-height:none; padding:44px 34px; }
  .sobre__slider{ height:100%; }
  .reservas__grid{
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
    height:auto;
  }
  .reservas__map{ grid-column:1; grid-row:2; height:340px; }
  .reservas__map-iframe{ display:none; }
  .reservas__map-static{ display:flex; }
}

@media (max-width:760px), (min-width:761px) and (max-width:1024px) and (orientation:portrait){
  .topbar__nav{ display:none; }
  .nav-toggle{ display:flex; }
  .topbar__actions{ display:none; }

  .topbar.nav-open .topbar__nav{
    display:flex;
    position:fixed;
    inset:0;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:34px;
    background:rgba(20,9,3,.97);
    font-size:1.3rem;
    transform:none;
    left:0; top:0;
  }
  .topbar.nav-open .topbar__actions{
    display:flex;
    flex-direction:column;
    gap:16px;
    position:fixed;
    bottom:64px; left:50%;
    transform:translateX(-50%);
    width:min(300px, 78vw);
    z-index:60;
  }
  .topbar.nav-open .topbar__actions .topbar__cta{ display:none; }
  .topbar.nav-open .topbar__actions .lang-switch{ display:flex; justify-content:center; }
  .topbar.nav-open .lang-switch__menu{
    top:auto;
    bottom:calc(100% + 10px);
    transform:translateX(-50%) translateY(6px);
  }
  .topbar.nav-open .lang-switch.is-open .lang-switch__menu{
    transform:translateX(-50%) translateY(0);
  }
  .section{ padding:110px 6vw 50px; }
  .section--feedbacks{ min-height:auto; padding:90px 6vw 50px; }
  .cards-shell{ max-width:340px; margin:0 auto; }
  .cards-viewport{ overflow:visible; }
  .cards{ display:flex; flex-direction:column; flex-wrap:nowrap; width:100%; gap:24px; }
  .card{ width:100%; max-width:none; height:460px; flex:none; scroll-snap-align:none; scroll-snap-stop:normal; }
  .cards__arrow{ display:none; }
  .testimonials{ margin-top:100px; }
  .t-viewport{
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-user-select:none;
    user-select:none;
  }
  .t-viewport::-webkit-scrollbar{ display:none; }
  .t-track{ width:500%; }
  .testimonial{ width:20%; flex:0 0 auto; scroll-snap-align:start; scroll-snap-stop:always; }
  .t-arrow{ font-size:1.1rem; padding:8px; }
  .legal-main{ padding:120px 6vw 70px; }
  .legal-card{ padding:36px 26px; }
  .cookie-banner{ left:14px; right:14px; bottom:14px; padding:18px 20px; }
  .snap{ scroll-snap-type:none; }
  .section{ scroll-snap-align:none; scroll-snap-stop:normal; }
  .section--sobre{ padding:60px 8vw 30px; }
  .sobre__grid{ height:calc(100vh - 90px); height:calc(100svh - 90px); height:calc(var(--vh, 1vh) * 100 - 90px); }
  .sobre__slider{ border-radius:0 0 18px 18px; }
  .sobre__card{ border-radius:18px 18px 0 0; overflow-y:hidden; }
  .sobre__logo{ display:none; }
  .reservas__intro h2{ font-size:1.3rem; }
  .reservas__info li{ font-size:1.05rem; line-height:1.6; }
  .sobre__slider-viewport{
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .sobre__slider-viewport::-webkit-scrollbar{ display:none; }
  .slider__track{ width:800%; }
  .slider__slide{ width:12.5%; flex:0 0 auto; scroll-snap-align:start; scroll-snap-stop:always; }
}

@media (max-width:480px){
  .hero__actions{ flex-direction:column; width:100%; }
  .hero__actions .btn{ width:100%; }
  .sobre__card{ padding:16px 24px; }
  .sobre__title{ font-size:1rem; margin-bottom:4px; }
  .sobre__text{ font-size:.92rem; line-height:1.55; }
}
