/* =========================================================
   COZINHA DA ROÇA — estilos
   Versão 2 · "varanda mineira"

   A paleta e os ornamentos vêm da própria casa:
   verde-oliva da logomarca e dos lambrequins da varanda,
   paredes cor de ocre, terracota, madeira, tijolinho,
   os ladrilhos da mesa do café e as plaquinhas do buffet.
   ========================================================= */

/* ---------- Fontes (arquivos em assets/fonts) ---------- */
@font-face{
  font-family:"Fraunces";
  src:url("assets/fonts/fraunces.woff2") format("woff2");
  font-weight:400 800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Karla";
  src:url("assets/fonts/karla.woff2") format("woff2");
  font-weight:200 800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Caveat";
  src:url("assets/fonts/caveat.woff2") format("woff2");
  font-weight:400 700; font-style:normal; font-display:swap;
}

:root{
  /* Cores */
  --oliva-escuro:  #33351A;   /* verde-oliva escuro (base da marca) */
  --oliva:         #656529;   /* verde-oliva exato da logomarca */
  --limao:         #A6CE3A;   /* verde-limão da logomarca, só em detalhes */
  --ocre:          #E0A43A;   /* luz de lampião */
  --parede:        #E4AE4C;   /* parede cor de ocre do salão */
  --terracota:     #B5592A;   /* terracota exato da logomarca */
  --terracota-esc: #94441E;
  --madeira:       #7B4F2C;
  --madeira-esc:   #4A2F1B;
  --cafe:          #1F140C;   /* fundo da seção da brasa */
  --creme:         #FBF5E8;
  --papel:         #F5EAD4;
  --papel-esc:     #EADBBC;
  --tinta:         #2B2419;
  --tinta-suave:   #5E5444;
  --azul-ladrilho: #34507C;

  /* Tipografia */
  --serifa:  "Fraunces", Georgia, "Times New Roman", serif;
  --sans:    "Karla", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mao:     "Caveat", "Segoe Print", "Bradley Hand", cursive;

  --t-xs:   0.8125rem;
  --t-sm:   0.9375rem;
  --t-base: 1.0625rem;
  --t-md:   1.1875rem;
  --t-lg:   1.45rem;
  --t-xl:   clamp(1.6rem, 3vw, 2.1rem);
  --t-2xl:  clamp(2.15rem, 5.2vw, 3.45rem);
  --t-hero: clamp(2.55rem, 7.2vw, 5.35rem);

  /* Espaços */
  --secao-y:   clamp(4.5rem, 10vw, 8rem);
  --margem:    clamp(1.25rem, 5vw, 4.5rem);
  --largura:   1240px;
  --topo-h:    74px;
  --raio:      16px;

  --sombra-foto: 0 24px 40px -26px rgba(58,34,14,.55), 0 2px 6px rgba(58,34,14,.12);

  /* ---------- Ornamentos desenhados em SVG ---------- */

  /* Lambrequim: a "renda de madeira" da beirada do telhado da varanda */
  --lambrequim: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 20'%3E%3Cpath fill-rule='evenodd' d='M0 0H44V3.6H0Z M10 3.6C10 9.2 16 12.6 22 19.6 28 12.6 34 9.2 34 3.6Z M22 5.9a2.3 2.3 0 1 0 .01 0Z M0 3.6V11.8C2.3 9.8 4.8 7.2 5 3.6Z M44 3.6V11.8C41.7 9.8 39.2 7.2 39 3.6Z'/%3E%3C/svg%3E");

  /* Raminho das plaquinhas do buffet */
  --raminho: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.4 22.5C11.6 16.5 12.6 9 12 1.8' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'/%3E%3Cg%3E%3Cellipse cx='9.2' cy='17.2' rx='2.9' ry='1.35' transform='rotate(-32 9.2 17.2)'/%3E%3Cellipse cx='9.4' cy='11.6' rx='2.7' ry='1.3' transform='rotate(-32 9.4 11.6)'/%3E%3Cellipse cx='10' cy='6.2' rx='2.4' ry='1.2' transform='rotate(-32 10 6.2)'/%3E%3Cellipse cx='15.2' cy='14.4' rx='2.8' ry='1.35' transform='rotate(32 15.2 14.4)'/%3E%3Cellipse cx='14.9' cy='8.9' rx='2.6' ry='1.3' transform='rotate(32 14.9 8.9)'/%3E%3Cellipse cx='14.1' cy='3.8' rx='2.1' ry='1.1' transform='rotate(32 14.1 3.8)'/%3E%3C/g%3E%3C/svg%3E");

  /* Ladrilho hidráulico (faixa) */
  --ladrilho: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Crect width='40' height='40' fill='%23F3E6CB'/%3E%3Cg fill='%23B5592A'%3E%3Ccircle r='7'/%3E%3Ccircle cx='40' r='7'/%3E%3Ccircle cy='40' r='7'/%3E%3Ccircle cx='40' cy='40' r='7'/%3E%3C/g%3E%3Cg fill='%2334507C'%3E%3Cellipse cx='20' cy='12.2' rx='3.4' ry='5.8'/%3E%3Cellipse cx='20' cy='27.8' rx='3.4' ry='5.8'/%3E%3Cellipse cx='12.2' cy='20' rx='5.8' ry='3.4'/%3E%3Cellipse cx='27.8' cy='20' rx='5.8' ry='3.4'/%3E%3C/g%3E%3Ccircle cx='20' cy='20' r='3' fill='%23B5592A'/%3E%3Cg fill='%23D99A2B'%3E%3Cpath d='M20-3.2 23.2 0 20 3.2 16.8 0Z'/%3E%3Cpath d='M20 36.8 23.2 40 20 43.2 16.8 40Z'/%3E%3Cpath d='M-3.2 20 0 16.8 3.2 20 0 23.2Z'/%3E%3Cpath d='M36.8 20 40 16.8 43.2 20 40 23.2Z'/%3E%3C/g%3E%3C/svg%3E");

  /* Grão de papel */
  --grao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .3 0 0 0 0 .15 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

  /* Reboco da parede de ocre */
  --reboco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .28 0 0 0 0 .08 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

  /* Tijolinho da churrasqueira */
  --tijolos: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='32'%3E%3Cpath d='M0 .5H64M0 16.5H64M.5 0V16M32.5 0V16M16.5 16V32M48.5 16V32' fill='none' stroke='%23fff' stroke-opacity='.055'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }

/* Garante que o atributo hidden funcione mesmo em elementos com display definido */
[hidden]{ display:none !important; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--sans);
  font-size:var(--t-base);
  line-height:1.66;
  color:var(--tinta);
  background:var(--grao), var(--papel);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,svg{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3{
  margin:0; font-family:var(--serifa); font-weight:650; line-height:1.06;
  font-optical-sizing:auto; text-wrap:balance;
}
p{ margin:0 0 1.05em; }
p:last-child{ margin-bottom:0; }
ul,ol{ margin:0; padding:0; }

:focus-visible{
  outline:3px solid var(--terracota);
  outline-offset:3px;
  border-radius:4px;
}

.pular{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--oliva-escuro); color:var(--creme);
  padding:.85rem 1.25rem; font-weight:700;
}
.pular:focus{ left:.5rem; top:.5rem; }

section[id]{ scroll-margin-top:calc(var(--topo-h) + 22px); }

.icone{ width:1.25em; height:1.25em; flex:none; }

/* ---------- Peças reutilizadas ---------- */
.secao{ padding:var(--secao-y) var(--margem); position:relative; overflow-x:clip; }

.sobretitulo{
  display:flex; align-items:center; gap:.55rem;
  font-size:var(--t-sm); font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--terracota);
  margin:0 0 1rem;
}
.sobretitulo::before{
  content:""; width:22px; height:22px; flex:none;
  background:currentColor;
  -webkit-mask:var(--raminho) center/contain no-repeat;
          mask:var(--raminho) center/contain no-repeat;
}

.titulo-secao{
  font-size:var(--t-2xl);
  color:var(--oliva-escuro);
  letter-spacing:-.018em;
  margin:0 0 1.25rem;
  max-width:17ch;
}

/* Bilhete escrito à mão */
.bilhete{
  font-family:var(--mao); font-weight:600;
  font-size:clamp(1.35rem, 2.4vw, 1.65rem);
  line-height:1.1; color:var(--terracota);
}

.botao{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--sans); font-size:var(--t-sm); font-weight:700;
  letter-spacing:.01em;
  text-decoration:none; cursor:pointer;
  padding:.95rem 1.55rem;
  border-radius:999px;
  border:2px solid transparent;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
  text-align:center; line-height:1.2;
}
.botao:hover{ transform:translateY(-1px); }
.botao--terracota{
  background:var(--terracota); color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 10px 20px -12px rgba(148,68,30,.9);
}
.botao--terracota:hover{ background:var(--terracota-esc); }
.botao--vazado{ border-color:var(--oliva); color:var(--oliva-escuro); background:transparent; }
.botao--vazado:hover{ background:var(--oliva); color:var(--creme); }
.botao--claro{ border-color:rgba(251,245,232,.7); color:var(--creme); background:rgba(31,20,12,.18); backdrop-filter:blur(2px); }
.botao--claro:hover{ background:rgba(251,245,232,.16); border-color:var(--creme); }
.botao--creme{ background:var(--creme); color:var(--oliva-escuro); }
.botao--creme:hover{ background:#fff; }
.botao--vazado-claro{ border-color:rgba(251,245,232,.55); color:var(--creme); }
.botao--vazado-claro:hover{ background:rgba(251,245,232,.14); border-color:var(--creme); }

.link-seta{
  display:inline-block;
  font-weight:700; font-size:var(--t-sm);
  color:var(--terracota); text-decoration:none;
  border-bottom:2px solid rgba(181,89,42,.35);
  padding-bottom:1px;
  transition:border-color .2s ease, color .2s ease;
}
.link-seta::after{ content:" →"; }
.link-seta:hover{ color:var(--terracota-esc); border-color:var(--terracota); }
.link-seta--claro{ color:var(--creme); border-color:rgba(251,245,232,.35); }
.link-seta--claro:hover{ color:#fff; border-color:#fff; }

/* Plaquinha de madeira, igual às do buffet */
.plaquinha{
  position:relative;
  color:#2A1B0E;
  border-radius:8px;
  background:
    radial-gradient(120% 70% at 25% 18%, rgba(255,255,255,.24), transparent 60%),
    repeating-linear-gradient(92deg, rgba(120,70,28,.075) 0 1px, transparent 1px 6px, rgba(120,70,28,.05) 6px 7px, transparent 7px 13px),
    linear-gradient(180deg, #F1D49F, #E2B877);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -2px 0 rgba(120,70,28,.2),
    0 16px 26px -16px rgba(60,35,15,.65),
    0 2px 4px rgba(60,35,15,.12);
}
.plaquinha::after{
  /* raminho no canto, como nas plaquinhas de verdade */
  content:""; position:absolute; right:.7rem; bottom:.6rem;
  width:26px; height:26px; background:rgba(42,27,14,.8);
  -webkit-mask:var(--raminho) center/contain no-repeat;
          mask:var(--raminho) center/contain no-repeat;
}

/* ---------- Fotos e espaços demonstrativos ---------- */
.foto{
  margin:0;
  position:relative;
  overflow:hidden;
  background:var(--papel-esc);
  border-radius:var(--raio);
}
.foto img{ width:100%; height:100%; object-fit:cover; }
img[data-ampliar]{ cursor:zoom-in; }

.foto--vazia{
  background-color:var(--papel-esc);
  display:grid; place-items:center;
  border:1px dashed rgba(78,93,46,.35);
  min-height:180px;
}
.foto--vazia .vazio{
  display:grid; place-items:center; gap:.55rem;
  padding:1.25rem; text-align:center; color:var(--oliva);
}
.foto--vazia svg{ width:46px; height:46px; opacity:.72; }
.foto--vazia .vazio__nome{
  font-size:var(--t-xs); color:var(--tinta-suave); opacity:.85;
  word-break:break-all; max-width:22ch; line-height:1.4;
}
.foto--vazia .vazio__rotulo{
  font-family:var(--serifa); font-size:var(--t-md); color:var(--oliva-escuro);
}

/* =========================================================
   CABEÇALHO (com o lambrequim da varanda pendurado embaixo)
   ========================================================= */
.topo{
  position:sticky; top:0; z-index:90;
  background:var(--creme);
  transition:box-shadow .3s ease;
}
.topo::before,
.topo::after{
  content:""; position:absolute; left:0; right:0; top:100%;
  height:18px; pointer-events:none;
  -webkit-mask:var(--lambrequim) repeat-x 0 0 / 40px 18px;
          mask:var(--lambrequim) repeat-x 0 0 / 40px 18px;
}
.topo::before{ background:rgba(31,20,12,.22); transform:translateY(2px); }   /* sombrinha */
.topo::after{ background:var(--oliva); }
.topo--rolado{ box-shadow:0 12px 26px -20px rgba(40,25,10,.7); }

.topo__interno{
  max-width:var(--largura); margin:0 auto;
  min-height:var(--topo-h);
  padding:.55rem var(--margem);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}

.marca{ text-decoration:none; display:flex; align-items:center; line-height:1; flex:none; }
.marca__logo{ height:56px; width:auto; }
.marca__texto{ display:flex; flex-direction:column; }
.marca__linha1,
.marca__linha2{
  font-family:var(--serifa); color:var(--oliva-escuro);
  letter-spacing:-.02em; line-height:.96;
}
.marca__linha1{ font-size:1.2rem; font-weight:500; }
.marca__linha2{ font-size:1.6rem; font-weight:750; color:var(--madeira); }
.marca__assinatura{
  font-family:var(--mao); font-weight:600;
  font-size:1.05rem; color:var(--tinta-suave); margin-top:.2rem;
}

.menu{ display:flex; align-items:center; gap:clamp(1rem,2.2vw,2rem); }
.menu__lista{
  display:flex; gap:clamp(.9rem,1.8vw,1.7rem);
  list-style:none; margin:0; padding:0;
}
.menu__lista a{
  position:relative;
  text-decoration:none; font-weight:600; font-size:var(--t-sm);
  color:var(--tinta); padding:.4rem 0;
  transition:color .2s ease;
}
.menu__lista a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--terracota); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.menu__lista a:hover{ color:var(--oliva-escuro); }
.menu__lista a:hover::after{ transform:scaleX(1); }
.menu__acoes{ display:flex; gap:.6rem; align-items:center; }
.menu__cta{ padding:.72rem 1.3rem; }
.menu__reserva{ display:none; }

.menu-botao{
  display:none;
  align-items:center; gap:.55rem;
  background:transparent; border:2px solid var(--oliva);
  color:var(--oliva-escuro); border-radius:999px;
  padding:.5rem 1rem; cursor:pointer;
  font-family:var(--sans); font-weight:700; font-size:var(--t-sm);
}
.menu-botao__barras{ display:grid; gap:4px; width:18px; }
.menu-botao__barras i{ display:block; height:2px; background:currentColor; border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.menu-botao[aria-expanded="true"] .menu-botao__barras i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.menu-botao[aria-expanded="true"] .menu-botao__barras i:nth-child(2){ opacity:0; }
.menu-botao[aria-expanded="true"] .menu-botao__barras i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width: 1080px){
  .menu-botao{ display:inline-flex; }
  .menu{
    position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--creme);
    padding:1.6rem var(--margem) 1.75rem;
    box-shadow:0 26px 40px -26px rgba(44,30,16,.55);
    max-height:calc(100svh - var(--topo-h)); overflow-y:auto;
    display:none;
  }
  .menu.aberto{ display:flex; }
  .menu__lista{ flex-direction:column; gap:0; }
  .menu__lista a{
    display:block; padding:.85rem 0;
    font-family:var(--serifa); font-size:1.45rem; font-weight:600; color:var(--oliva-escuro);
    border-bottom:1px solid rgba(78,93,46,.14);
  }
  .menu__lista a::after{ display:none; }
  .menu__acoes{ flex-direction:column; align-items:stretch; margin-top:1.25rem; }
  .menu__cta{ padding:.95rem 1.5rem; }
  .menu__reserva{ display:inline-flex; }
}
@media (max-width: 480px){
  :root{ --topo-h:66px; }
  .marca__logo{ height:46px; }
}

/* =========================================================
   ABERTURA
   ========================================================= */
.abertura{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:clamp(560px, calc(100vh - var(--topo-h)), 880px);
  min-height:clamp(560px, calc(100svh - var(--topo-h)), 880px);
  display:flex; align-items:flex-end;
  background:var(--cafe);
  color:var(--creme);
}
.abertura__fundo{ position:absolute; inset:0; margin:0; z-index:-2; }
.abertura__fundo img{
  width:100%; height:100%; object-fit:cover; object-position:58% 38%;
  animation:zoom-lento 24s cubic-bezier(.2,.6,.3,1) both;
}
@keyframes zoom-lento{ from{ transform:scale(1.09); } to{ transform:scale(1); } }

.abertura::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(0deg, rgba(24,15,8,.94) 0%, rgba(24,15,8,.74) 30%, rgba(24,15,8,.28) 60%, rgba(24,15,8,.12) 100%),
    linear-gradient(90deg, rgba(24,15,8,.62) 0%, rgba(24,15,8,.22) 50%, rgba(24,15,8,0) 75%);
}
.abertura__conteudo{
  width:100%; max-width:var(--largura);
  margin:0 auto;
  padding:clamp(7rem,14vh,9rem) var(--margem) clamp(2.5rem,6vw,4.5rem);
}
.abertura__sobre{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:var(--t-sm); font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ocre); margin-bottom:1.1rem;
}
.abertura__sobre::before{
  content:""; width:22px; height:22px; background:currentColor;
  -webkit-mask:var(--raminho) center/contain no-repeat;
          mask:var(--raminho) center/contain no-repeat;
}
.abertura__titulo{
  font-size:var(--t-hero);
  font-weight:680;
  letter-spacing:-.025em;
  line-height:1.02;
  color:var(--creme);
  max-width:13.5ch;
  margin:0 0 1.35rem;
  text-shadow:0 2px 30px rgba(20,10,4,.35);
}
.abertura__texto{
  font-size:clamp(1.08rem, 1.6vw, 1.25rem);
  line-height:1.6;
  color:rgba(251,245,232,.9);
  max-width:40ch;
  margin-bottom:2rem;
}
.abertura__acoes{ display:flex; flex-wrap:wrap; gap:.8rem 1rem; margin-bottom:1.6rem; }
.abertura__horario{
  display:inline-flex; align-items:center; gap:.65rem;
  margin:0; padding:.6rem 1rem .6rem .85rem;
  border-radius:999px;
  background:rgba(31,20,12,.5);
  border:1px solid rgba(224,164,58,.35);
  color:rgba(251,245,232,.92);
  font-size:var(--t-sm); line-height:1.35;
  backdrop-filter:blur(3px);
}
.abertura__horario .icone{ color:var(--ocre); width:1.35em; height:1.35em; }

.abertura__entrar{
  position:absolute; right:max(var(--margem), calc((100vw - var(--largura)) / 2 + var(--margem)));
  bottom:clamp(2.5rem,6vw,4.5rem);
  display:flex; flex-direction:column; align-items:center; gap:.2rem;
  color:var(--ocre); text-decoration:none;
  transform:rotate(-4deg);
}
.abertura__entrar .bilhete{ color:var(--ocre); font-size:clamp(1.5rem, 2.4vw, 1.95rem); }
.abertura__entrar svg{ width:54px; height:54px; transform:rotate(12deg); }
.abertura__entrar:hover svg{ animation:balanca 1s ease-in-out infinite; }
@keyframes balanca{ 0%,100%{ transform:rotate(12deg) translateY(0); } 50%{ transform:rotate(12deg) translateY(5px); } }

@media (max-width: 900px){
  .abertura__fundo img{ object-position:60% 30%; }
  .abertura::before{
    background:
      linear-gradient(0deg, rgba(24,15,8,.96) 0%, rgba(24,15,8,.88) 42%, rgba(24,15,8,.62) 68%, rgba(24,15,8,.3) 86%, rgba(24,15,8,.22) 100%);
  }
  .abertura__sobre{ text-shadow:0 1px 12px rgba(20,10,4,.6); }
  .abertura__entrar{
    right:var(--margem); top:clamp(1.5rem,5vw,2.25rem); bottom:auto;
    flex-direction:row-reverse; gap:.1rem; transform:rotate(-3deg);
    padding:.45rem .5rem .45rem .9rem; border-radius:16px;
    background:rgba(31,20,12,.62);
    backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  }
  .abertura__entrar svg{ width:40px; height:40px; transform:rotate(40deg); }
  .abertura__entrar .bilhete{ font-size:1.35rem; max-width:9ch; text-align:right; }
}
@media (max-width: 520px){
  .abertura__acoes .botao{ flex:1 1 auto; }
  .abertura__horario{ border-radius:16px; }
}

/* Entrada da abertura (uma vez) */
.js .abertura .entra{ opacity:0; transform:translateY(16px); }
.js .abertura .entra.entrou{
  opacity:1; transform:none;
  transition:opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1);
}

/* =========================================================
   FAIXA DE DESTAQUES
   ========================================================= */
.faixa{
  background:var(--oliva-escuro);
  color:var(--creme);
  position:relative;
}
.faixa::after{
  /* faixa de ladrilho hidráulico, como no piso do salão */
  content:""; display:block; height:18px;
  background:var(--ladrilho) 0 50% / 18px 18px repeat-x;
  border-top:2px solid var(--oliva);
}
.faixa__lista{
  max-width:var(--largura); margin:0 auto;
  padding:1.05rem var(--margem);
  list-style:none;
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:.55rem 1.45rem;
}
.faixa__lista li{
  display:flex; align-items:center; gap:.55rem;
  font-weight:700; font-size:var(--t-sm); letter-spacing:.015em;
}
@media (max-width: 600px){
  .faixa__lista{ gap:.4rem 1rem; padding-block:.9rem; }
  .faixa__lista li{ font-size:.84rem; gap:.4rem; }
  .faixa__lista li::before{ width:14px; height:14px; }
}
.faixa__lista li::before{
  content:""; width:18px; height:18px; flex:none;
  background:var(--limao);
  -webkit-mask:var(--raminho) center/contain no-repeat;
          mask:var(--raminho) center/contain no-repeat;
}

/* =========================================================
   A CASA
   ========================================================= */
.casa__grade{
  max-width:var(--largura); margin:0 auto;
  display:grid; grid-template-columns:1fr 1.08fr;
  gap:clamp(3rem,6vw,5.5rem);
  align-items:center;
}
.casa__texto{ max-width:54ch; }
.casa__texto > p:not(.sobretitulo){ color:var(--tinta-suave); }
.casa__abre{
  font-family:var(--serifa); font-size:clamp(1.2rem,1.9vw,1.4rem);
  line-height:1.45; font-weight:500;
  color:var(--oliva-escuro) !important;
}

.citacao{ margin:2.2rem 0 0; }
.plaquinha--frase{
  display:inline-block; margin:0;
  padding:1.15rem 3.4rem 1.15rem 1.4rem;
  transform:rotate(-1.2deg);
}
.plaquinha--frase p{
  margin:0;
  font-family:var(--sans); font-weight:800;
  font-size:clamp(1rem,1.7vw,1.15rem); line-height:1.25;
  letter-spacing:.03em; text-transform:uppercase;
}
.citacao figcaption{ margin:.7rem 0 0 .6rem; font-size:1.3rem; color:var(--madeira); }

.casa__fotos{ position:relative; padding:0 0 22% 8%; }
.casa__foto-grande{
  aspect-ratio:4/3.1;
  border-radius:22px;
  box-shadow:var(--sombra-foto);
}
.casa__foto-menor{
  position:absolute; left:0; bottom:0;
  width:50%; aspect-ratio:4/3;
  border:9px solid var(--creme);
  border-radius:14px;
  box-shadow:0 22px 34px -18px rgba(58,34,14,.6);
  transform:rotate(-3deg);
}
.casa__foto-menor img{ border-radius:6px; }
.selo{
  position:absolute; right:-1.5%; bottom:3%;
  width:clamp(118px, 13vw, 158px); height:auto;
  transform:rotate(9deg);
  filter:drop-shadow(0 12px 16px rgba(58,34,14,.3));
}
.selo__fundo{ fill:var(--creme); }
.selo__aro{ fill:none; stroke:var(--terracota); stroke-width:2; }
.selo__miolo{ fill:none; stroke:var(--terracota); stroke-width:1.2; stroke-dasharray:2 4; }
.selo__volta{ font-family:var(--sans); font-weight:800; font-size:12.5px; letter-spacing:1px; fill:var(--madeira); }
.selo__desde{ font-family:var(--mao); font-weight:600; font-size:21px; fill:var(--terracota); }
.selo__ano{ font-family:var(--serifa); font-weight:750; font-size:31px; fill:var(--oliva-escuro); }

@media (max-width: 900px){
  .casa__grade{ grid-template-columns:1fr; }
  .casa__fotos{ padding:0 0 26% 6%; max-width:640px; }
}

/* =========================================================
   DETALHES DO AMBIENTE — parede de quadrinhos
   ========================================================= */
.detalhes{
  background:
    radial-gradient(38% 55% at 18% 0%, rgba(255,236,178,.75), transparent 70%),
    radial-gradient(38% 55% at 82% 0%, rgba(255,236,178,.6), transparent 70%),
    radial-gradient(60% 60% at 80% 85%, rgba(196,110,34,.28), transparent 70%),
    radial-gradient(55% 50% at 15% 80%, rgba(206,122,40,.22), transparent 70%),
    var(--reboco),
    var(--parede);
  overflow:hidden;
}
.detalhes__cabecalho{ max-width:var(--largura); margin:0 auto; text-align:center; }
.detalhes .sobretitulo{ justify-content:center; color:var(--madeira-esc); }
.detalhes .titulo-secao{ color:#2A1B0E; margin-inline:auto; }
.detalhes__cabecalho p:last-child{ color:#4A3218; font-size:var(--t-md); }

.parede{
  list-style:none;
  max-width:var(--largura);
  margin:clamp(2.5rem,5vw,3.75rem) auto 0;
  display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start;
  gap:clamp(1.75rem,3.5vw,2.75rem) clamp(1.25rem,2.8vw,2.25rem);
}
.quadro{ --altura:clamp(140px, 16vw, 205px); --giro:-1.6deg; }
.quadro:nth-child(2){ --giro:1.4deg; margin-top:1.2rem; }
.quadro:nth-child(3){ --giro:-.8deg; }
.quadro:nth-child(4){ --giro:1.8deg; margin-top:.6rem; }
.quadro:nth-child(5){ --giro:-1.2deg; margin-top:1.4rem; }
.quadro:nth-child(6){ --giro:1deg; }
.quadro figure{
  width:min-content; margin:0;
  padding:9px 9px 0;
  background:var(--creme);
  border-radius:3px;
  box-shadow:
    inset 0 0 0 1px rgba(120,80,40,.12),
    0 20px 26px -16px rgba(80,40,10,.7),
    0 3px 6px rgba(80,40,10,.22);
  transform:rotate(var(--giro));
  transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.quadro figure:hover{ transform:rotate(0) translateY(-4px); }
.quadro img{ height:var(--altura); width:auto; max-width:none; border-radius:2px; }
.quadro figcaption{
  font-family:var(--mao); font-weight:600;
  font-size:1.2rem; line-height:1.1; color:var(--madeira-esc);
  text-align:center; padding:.5rem .3rem .65rem;
}
@media (max-width: 560px){
  .quadro{ --altura:104px; }
  .quadro:nth-child(n){ margin-top:0; }
  .parede{ gap:1.25rem .75rem; }
  .quadro figure{ padding:7px 7px 0; }
  .quadro figcaption{ font-size:1.05rem; padding:.4rem .2rem .5rem; }
}

/* =========================================================
   O BUFFET
   ========================================================= */
.buffet{ background:var(--grao), var(--creme); }
.buffet__topo{
  max-width:var(--largura); margin:0 auto clamp(2rem,4vw,3rem);
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(1.5rem,4vw,4rem);
  align-items:end;
}
.buffet__topo .titulo-secao{ margin-bottom:0; max-width:15ch; }
.buffet__apoio{ color:var(--tinta-suave); font-size:var(--t-md); margin:0; }

.buffet__destaque{ position:relative; max-width:var(--largura); margin:0 auto; }
.buffet__destaque .foto{ aspect-ratio:16/8.2; border-radius:24px; box-shadow:var(--sombra-foto); }
.buffet__destaque figcaption{
  position:absolute; right:clamp(1rem,3vw,2.25rem); bottom:clamp(-1.4rem,-2vw,-1rem);
  background:var(--creme); padding:.55rem 1.1rem .7rem;
  border-radius:12px; transform:rotate(-2.5deg);
  box-shadow:0 12px 22px -12px rgba(58,34,14,.55);
  font-size:clamp(1.3rem,2.2vw,1.65rem);
}

.balcao{ max-width:var(--largura); margin:clamp(3.5rem,6vw,4.75rem) auto 0; outline-offset:6px; }
.balcao__lista{
  list-style:none;
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(2rem,3.5vw,3rem) clamp(1.25rem,2.6vw,2.25rem);
}
.prato:nth-child(3n+2){ margin-top:2.25rem; }
.prato .foto{ aspect-ratio:4/5; box-shadow:var(--sombra-foto); }
.prato .foto img{ transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.prato .foto:hover img{ transform:scale(1.04); }
.prato h3{
  font-size:var(--t-lg); color:var(--oliva-escuro);
  margin:1.15rem 0 .45rem;
}
.prato p{ color:var(--tinta-suave); font-size:var(--t-sm); max-width:34ch; }
.prato .link-seta{ margin-top:.25rem; }
.balcao__dica{ display:none; }

@media (max-width: 1000px){
  .balcao__lista{ grid-template-columns:repeat(2,1fr); }
  .prato:nth-child(3n+2){ margin-top:0; }
  .prato:nth-child(2n){ margin-top:1.75rem; }
}
@media (max-width: 700px){
  .buffet__topo{ grid-template-columns:1fr; gap:1rem; }
  .buffet__destaque .foto{ aspect-ratio:4/3; border-radius:18px; }
  .balcao{ margin-inline:calc(var(--margem) * -1); }
  .balcao__lista{
    display:flex; gap:1rem;
    overflow-x:auto; overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--margem);
    padding:0 var(--margem) 1.2rem;
    scrollbar-width:none;
  }
  .balcao__lista::-webkit-scrollbar{ display:none; }
  .prato,
  .prato:nth-child(2n),
  .prato:nth-child(3n+2){ flex:0 0 76%; scroll-snap-align:start; margin-top:0; }
  .balcao__dica{ display:block; text-align:right; margin:.2rem 0 0; font-size:1.3rem; color:var(--madeira); }
}

/* ---- Como funciona e preços ---- */
.almoco{
  position:relative;
  max-width:var(--largura);
  margin:clamp(4.5rem,8vw,6.5rem) auto 0;
  padding:clamp(2rem,4.5vw,3.5rem);
  border-radius:26px;
  background:
    radial-gradient(45% 70% at 12% 0%, rgba(255,236,178,.7), transparent 70%),
    radial-gradient(60% 70% at 90% 100%, rgba(196,110,34,.25), transparent 70%),
    var(--reboco),
    var(--parede);
  box-shadow:inset 0 0 0 1px rgba(120,70,20,.12), var(--sombra-foto);
  overflow:hidden;
}
.almoco::before{
  /* rodapé de madeira da parede */
  content:""; position:absolute; left:0; right:0; bottom:0; height:12px;
  background:linear-gradient(180deg, #8A5A33, #6B4225);
}
.almoco__cabecalho{ display:block; }
.almoco__titulo{ font-size:var(--t-xl); color:#2A1B0E; }
.passos{
  list-style:none;
  display:grid; grid-template-columns:repeat(3, auto); justify-content:start;
  gap:.75rem clamp(1.25rem,3vw,2.5rem);
  margin-top:1.15rem;
  color:#3B2814; font-size:var(--t-base);
}
.passos li{ display:flex; align-items:center; gap:.55rem; }
.passos__n{
  display:grid; place-items:center; flex:none;
  width:1.9rem; height:1.9rem; border-radius:50%;
  background:var(--oliva-escuro); color:var(--creme);
  font-family:var(--serifa); font-weight:700; font-size:.95rem;
}

.precos{
  list-style:none;
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(1.25rem,2.5vw,2rem);
  margin:clamp(2rem,4vw,2.75rem) 0 0;
}
.plaquinha--preco{
  display:flex; flex-direction:column; gap:.35rem;
  padding:1.9rem 1.4rem 1.5rem;
}
.plaquinha--preco::before{
  /* dois preguinhos segurando a plaquinha */
  content:""; position:absolute; top:.7rem; left:.9rem; right:.9rem; height:7px;
  background:
    radial-gradient(circle at 3.5px 3.5px, #6E5A45 2.2px, #4A3A2A 2.8px, transparent 3.2px) left center/7px 7px no-repeat,
    radial-gradient(circle at 3.5px 3.5px, #6E5A45 2.2px, #4A3A2A 2.8px, transparent 3.2px) right center/7px 7px no-repeat;
}
.precos li:nth-child(1){ transform:rotate(-1.2deg); }
.precos li:nth-child(2){ transform:rotate(.8deg) translateY(.4rem); }
.precos li:nth-child(3){ transform:rotate(-.5deg); }
.plaquinha__rotulo{
  font-weight:800; font-size:var(--t-sm); letter-spacing:.07em; text-transform:uppercase;
}
.plaquinha__valor{
  font-family:var(--serifa); font-weight:700;
  font-size:clamp(2rem,3.6vw,2.6rem); line-height:1.05; letter-spacing:-.02em;
  color:#3A2410;
}
.plaquinha__valor small{
  font-family:var(--sans); font-size:.42em; font-weight:700; letter-spacing:0;
  margin-left:.2rem; color:#5A3D22;
}
.plaquinha__texto{ font-size:var(--t-sm); color:#4A3218; padding-right:2rem; }

.almoco__nota{
  margin:clamp(1.75rem,3vw,2.25rem) 0 .75rem;
  font-weight:600; color:#3B2814; font-size:var(--t-sm);
}

.aviso{
  max-width:var(--largura);
  margin:clamp(2.5rem,4vw,3rem) auto 0;
  font-size:var(--t-sm); color:var(--madeira);
  font-style:italic;
}

@media (max-width: 900px){
  .passos{ grid-template-columns:1fr; font-size:var(--t-sm); }
  .precos{ grid-template-columns:1fr; max-width:28rem; }
  .precos li:nth-child(n){ transform:none; }
  .precos li:nth-child(2){ transform:rotate(.6deg); }
}

/* =========================================================
   NA BRASA
   ========================================================= */
.brasa{
  background-color:var(--cafe);
  background-image:
    radial-gradient(70% 45% at 30% 102%, rgba(214,92,30,.42), transparent 72%),
    radial-gradient(40% 35% at 85% 0%, rgba(224,164,58,.12), transparent 70%),
    var(--tijolos);
  color:var(--creme);
  overflow:hidden;
}
.brasa::before{
  /* beirada do telhado: o lambrequim creme descendo sobre a seção escura */
  content:""; position:absolute; left:0; right:0; top:0; height:18px;
  background:var(--creme);
  -webkit-mask:var(--lambrequim) repeat-x 0 0 / 40px 18px;
          mask:var(--lambrequim) repeat-x 0 0 / 40px 18px;
}
.brasa::after{
  /* brasa respirando, bem de leve */
  content:""; position:absolute; left:-10%; right:-10%; bottom:-30%; height:60%;
  background:radial-gradient(50% 50% at 35% 50%, rgba(232,110,38,.28), transparent 70%);
  animation:respira 6s ease-in-out infinite alternate;
  pointer-events:none; z-index:0;
}
@keyframes respira{ from{ opacity:.55; } to{ opacity:1; } }

.brasa__grade{
  position:relative; z-index:1;
  max-width:var(--largura); margin:0 auto;
  display:grid; grid-template-columns:.9fr 1.1fr;
  gap:clamp(2.5rem,6vw,5rem);
  align-items:center;
}
.brasa__principal{
  aspect-ratio:4/5;
  border-radius:24px;
  box-shadow:0 40px 70px -35px rgba(0,0,0,.9), 0 0 0 1px rgba(255,200,120,.1);
}
.brasa .sobretitulo{ color:var(--ocre); }
.brasa .titulo-secao{ color:var(--creme); max-width:13ch; }
.brasa__texto > p:not(.sobretitulo){ color:rgba(251,245,232,.82); max-width:46ch; font-size:var(--t-md); }
.brasa__fotos{
  list-style:none;
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(.75rem,1.6vw,1.15rem);
  margin-top:clamp(2rem,4vw,2.75rem);
}
.brasa__fotos .foto{
  aspect-ratio:3/4; border-radius:14px;
  box-shadow:0 20px 34px -22px rgba(0,0,0,.9), 0 0 0 1px rgba(255,200,120,.08);
}
.brasa__fotos p{
  margin:.6rem 0 0; font-family:var(--mao); font-weight:600;
  font-size:1.2rem; line-height:1.1; color:var(--ocre);
}
.brasa :focus-visible{ outline-color:var(--ocre); }

@media (max-width: 900px){
  .brasa__grade{ grid-template-columns:1fr; }
  .brasa__principal{ aspect-ratio:4/4.2; max-width:560px; }
}
@media (max-width: 520px){
  .brasa__fotos{ gap:.6rem; }
  .brasa__fotos p{ font-size:1.05rem; }
}

/* =========================================================
   DOCES E CAFEZINHO
   ========================================================= */
.doces{ background:var(--grao), var(--papel); }
.doces__grade{
  max-width:var(--largura); margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  grid-template-areas:
    "foto texto"
    "foto cafe";
  gap:clamp(2rem,4vw,3rem) clamp(2.5rem,5vw,4.5rem);
  align-items:start;
}
.doces__foto{ grid-area:foto; aspect-ratio:4/4.6; border-radius:24px; box-shadow:var(--sombra-foto); }
.doces__texto{ grid-area:texto; align-self:end; }
.doces__texto > p:not(.sobretitulo){ color:var(--tinta-suave); }
.doces__nota{ font-size:var(--t-sm); font-style:italic; color:var(--madeira) !important; }
.doces__cafe{
  grid-area:cafe;
  aspect-ratio:4/3;
  overflow:visible;
  background:transparent;
  border-radius:0;
  margin:0 1.25rem 1.25rem 0;
}
.doces__cafe img{
  position:relative; z-index:1;
  border:9px solid var(--creme);
  border-radius:16px;
  box-shadow:var(--sombra-foto);
  transform:rotate(1.8deg);
  background:var(--creme);
}
.doces__cafe::before{
  /* ladrilhos atrás da foto do café, como na mesa de verdade */
  content:""; position:absolute; z-index:0;
  right:-18px; bottom:-18px; width:62%; height:62%;
  background:var(--ladrilho) 0 0 / 34px 34px;
  border-radius:12px;
  transform:rotate(-4deg);
  box-shadow:0 10px 20px -12px rgba(58,34,14,.5);
}

@media (max-width: 900px){
  .doces__grade{
    grid-template-columns:1fr;
    grid-template-areas:"texto" "foto" "cafe";
  }
  .doces__foto{ aspect-ratio:4/3; }
  .doces__cafe{ max-width:520px; width:calc(100% - 1.5rem); justify-self:start; }
}

/* =========================================================
   GALERIA
   ========================================================= */
.galeria{ background:var(--grao), var(--creme); }
.galeria__cabecalho{ max-width:var(--largura); margin:0 auto 2.5rem; }
.galeria__apoio{ color:var(--tinta-suave); font-size:var(--t-sm); margin:0; }

.galeria__grade{
  max-width:var(--largura); margin:0 auto;
  list-style:none;
  columns:3 260px;
  column-gap:clamp(.75rem,1.6vw,1.2rem);
}
.galeria__item{
  break-inside:avoid;
  margin:0 0 clamp(.75rem,1.6vw,1.2rem);
}
.galeria__item .foto{ border-radius:14px; }
.galeria__item .foto img{ height:auto; transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.galeria__item .foto:hover img{ transform:scale(1.035); }

.galeria__mais-bloco{ text-align:center; margin:1.75rem 0 0; }

@media (max-width: 700px){
  .galeria__grade{ columns:2; column-gap:.65rem; }
  .galeria__item{ margin-bottom:.65rem; }
  .galeria__item .foto{ border-radius:10px; }
  .galeria--recolhida .galeria__item:nth-child(n+11){ display:none; }
}
@media (min-width: 701px){
  .galeria__mais{ display:none !important; }
}

/* =========================================================
   CONVITE (Instagram e Google)
   ========================================================= */
.convite{
  background:
    radial-gradient(70% 90% at 100% 0%, rgba(52,64,31,.6), transparent 60%),
    radial-gradient(60% 80% at 0% 100%, rgba(166,206,58,.14), transparent 60%),
    var(--grao),
    var(--oliva);
  text-align:center;
  color:var(--creme);
}
.convite__interno{ max-width:46rem; margin:0 auto; }
.convite .titulo-secao{ color:var(--creme); margin-inline:auto; max-width:18ch; }
.convite__texto{
  color:rgba(251,245,232,.88); font-size:var(--t-md);
  max-width:46ch; margin:0 auto 2rem;
}
.convite__acoes{ display:flex; flex-wrap:wrap; gap:.85rem; justify-content:center; }
.convite__bilhete{ margin:1.6rem 0 0; color:var(--limao); transform:rotate(-2deg); }
.convite :focus-visible{ outline-color:var(--creme); }

/* =========================================================
   ANTES DE VIR
   ========================================================= */
.servicos{ background:var(--grao), var(--papel); }
.servicos__cabecalho{ max-width:var(--largura); margin:0 auto 2.5rem; }
.servicos__lista{
  max-width:var(--largura); margin:0 auto;
  list-style:none;
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(1rem,2vw,1.5rem);
}
.servico{
  background:var(--creme);
  border-radius:20px;
  padding:1.6rem 1.5rem 1.5rem;
  box-shadow:inset 0 0 0 1px rgba(123,79,44,.12), 0 14px 26px -22px rgba(58,34,14,.5);
}
.servico__icone{
  display:grid; place-items:center;
  width:3rem; height:3rem; border-radius:50%;
  background:rgba(181,89,42,.1); color:var(--terracota);
  margin-bottom:1rem;
}
.servico__icone svg{ width:1.55rem; height:1.55rem; }
.servico h3{ font-size:var(--t-md); color:var(--oliva-escuro); margin:0 0 .45rem; }
.servico p{ font-size:var(--t-sm); color:var(--tinta-suave); margin:0 0 .7rem; }
.servico--destaque{
  grid-column:span 2;
  background:
    radial-gradient(80% 120% at 100% 0%, rgba(166,206,58,.16), transparent 60%),
    var(--oliva-escuro);
  color:var(--creme);
}
.servico--destaque h3{ color:var(--creme); }
.servico--destaque p{ color:rgba(251,245,232,.82); }
.servico--destaque .servico__icone{ background:rgba(166,206,58,.16); color:var(--limao); }
.servico--destaque .link-seta{ color:var(--creme); border-color:rgba(251,245,232,.4); }
.servico__cortesia{
  display:block; margin:.1rem 0 .8rem !important;
  font-family:var(--mao); font-weight:600; font-size:1.55rem !important; line-height:1.1;
  color:var(--limao) !important;
}
@media (max-width: 1000px){
  .servicos__lista{ grid-template-columns:repeat(2,1fr); }
  .servico--destaque{ grid-column:span 2; }
}
@media (max-width: 560px){
  .servicos__lista{ grid-template-columns:1fr; gap:.85rem; }
  .servico--destaque{ grid-column:auto; }
  .servico{
    display:grid; grid-template-columns:2.75rem 1fr; column-gap:1rem;
    padding:1.25rem 1.2rem;
  }
  .servico > *{ grid-column:2; }
  .servico > .servico__icone{ grid-column:1; grid-row:1 / span 4; width:2.75rem; height:2.75rem; margin:0; }
  .servico h3{ margin-top:.45rem; }
}

/* =========================================================
   LOCALIZAÇÃO
   ========================================================= */
.local{ background:var(--grao), var(--creme); }
.local__grade{
  max-width:var(--largura); margin:0 auto;
  display:grid; grid-template-columns:1fr 1.05fr;
  gap:clamp(2.5rem,5vw,4.5rem);
  align-items:start;
}
.local__bloco{ margin-top:2rem; }
.local__bloco h3{
  font-family:var(--sans); font-size:var(--t-xs); font-weight:800;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--terracota); margin:0 0 .6rem;
}
.local address{ font-style:normal; font-size:var(--t-md); line-height:1.6; }
.local__zap{ margin:.9rem 0 0; font-size:var(--t-sm); color:var(--tinta-suave); }
.local__zap a{ color:var(--oliva-escuro); font-weight:700; text-underline-offset:3px; }

.horarios{ border-collapse:collapse; width:100%; max-width:26rem; }
.horarios th,
.horarios td{
  text-align:left; padding:.7rem .6rem;
  border-bottom:1px dashed rgba(123,79,44,.3);
  font-weight:500; font-size:var(--t-base);
}
.horarios th{ color:var(--tinta); }
.horarios td{ text-align:right; color:var(--oliva-escuro); font-weight:700; white-space:nowrap; }
.horarios td a{ color:var(--terracota); text-underline-offset:3px; }
.horarios tr.hoje th,
.horarios tr.hoje td{ background:rgba(224,164,58,.18); }
.horarios tr.hoje th{ border-radius:10px 0 0 10px; }
.horarios tr.hoje td{ border-radius:0 10px 10px 0; }
.hoje-selo{
  display:inline-block; margin-left:.5rem; padding:.05rem .55rem .15rem;
  border-radius:999px; background:var(--terracota); color:#fff;
  font-family:var(--mao); font-size:1.05rem; font-weight:600; line-height:1.2;
  transform:rotate(-3deg); vertical-align:1px;
}
.local__nota{ margin:.9rem 0 0; font-size:var(--t-sm); color:var(--tinta-suave); max-width:48ch; }

.vizinhanca{ list-style:none; display:grid; gap:.85rem; max-width:46ch; }
.vizinhanca li{
  border-left:3px solid var(--limao);
  padding-left:.95rem;
  font-size:var(--t-sm); color:var(--tinta-suave); line-height:1.55;
}
.vizinhanca strong{ color:var(--oliva-escuro); font-weight:700; }

.local__acoes{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:2.25rem; }
@media (max-width: 520px){
  .local__acoes .botao{ flex:1 1 100%; }
}

.local__mapa{
  position:relative;
  background:var(--creme);
  padding:10px;
  border-radius:22px;
  box-shadow:var(--sombra-foto), inset 0 0 0 1px rgba(123,79,44,.12);
  transform:rotate(.6deg);
}
.local__mapa iframe{
  width:100%; aspect-ratio:4/4.2; min-height:340px; border:0; display:block;
  border-radius:14px; background:var(--papel-esc);
}
.local__etiqueta{
  position:absolute; left:-.75rem; top:-1rem;
  background:var(--terracota); color:#fff;
  padding:.35rem .9rem .5rem; border-radius:10px;
  transform:rotate(-4deg); font-size:1.35rem;
  box-shadow:0 10px 18px -10px rgba(148,68,30,.8);
}

@media (max-width: 900px){
  .local__grade{ grid-template-columns:1fr; }
  .local__mapa{ transform:none; }
  .local__mapa iframe{ aspect-ratio:4/3.4; min-height:0; }
}

/* =========================================================
   RODAPÉ
   ========================================================= */
.rodape{
  position:relative;
  background:
    radial-gradient(60% 80% at 100% 0%, rgba(166,206,58,.08), transparent 60%),
    var(--oliva-escuro);
  color:rgba(251,245,232,.84);
  padding:clamp(4rem,7vw,5.5rem) var(--margem) 2rem;
  font-size:var(--t-sm);
}
.rodape::before{
  /* lambrequim creme pendurado sobre o rodapé */
  content:""; position:absolute; left:0; right:0; top:0; height:18px;
  background:var(--creme);
  -webkit-mask:var(--lambrequim) repeat-x 0 0 / 40px 18px;
          mask:var(--lambrequim) repeat-x 0 0 / 40px 18px;
}
.rodape__placa{ max-width:var(--largura); margin:0 auto clamp(2.5rem,5vw,3.5rem); }
.placa-escura{
  display:inline-block; margin:0;
  padding:1rem 1.6rem 1.1rem;
  background:
    radial-gradient(120% 90% at 20% 10%, rgba(255,255,255,.06), transparent 60%),
    #2A2016;
  color:#EFE3C8;
  border-radius:8px;
  font-family:var(--sans); font-weight:800;
  font-size:clamp(1.05rem,2.2vw,1.35rem); letter-spacing:.08em; text-transform:uppercase;
  line-height:1.25;
  box-shadow:
    inset 0 0 0 2px rgba(239,227,200,.08),
    0 0 0 5px #7B4F2C,
    0 0 0 6px rgba(0,0,0,.28),
    0 18px 28px -14px rgba(0,0,0,.65);
  transform:rotate(-1.2deg);
}
.rodape__grade{
  max-width:var(--largura); margin:0 auto;
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:clamp(1.75rem,3.5vw,3rem);
}
.rodape h3{
  font-family:var(--sans); font-size:var(--t-xs); font-weight:800;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--limao); margin:0 0 .7rem;
}
.rodape address{ font-style:normal; line-height:1.65; margin-bottom:.85rem; }
.rodape a{ color:var(--creme); text-decoration:underline; text-underline-offset:3px; }
.rodape .link-seta--claro{ text-decoration:none; }
.rodape__marca .marca__linha1,
.rodape__marca .marca__linha2{ display:block; color:var(--creme); }
.rodape__marca .marca__assinatura{ display:block; color:var(--limao); font-size:1.3rem; margin-top:.25rem; }
.rodape__marca .marca__linha1{ font-size:1.4rem; }
.rodape__marca .marca__linha2{ font-size:1.95rem; }
.rodape__marca p{ margin-top:.85rem; max-width:26ch; color:rgba(251,245,232,.7); }
.rodape :focus-visible{ outline-color:var(--creme); }

.rodape__fim{
  max-width:var(--largura); margin:clamp(2.5rem,5vw,3.5rem) auto 0;
  padding-top:1.5rem;
  border-top:1px solid rgba(251,245,232,.16);
  font-size:var(--t-xs); color:rgba(251,245,232,.6);
}

@media (max-width: 860px){
  .rodape__grade{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 480px){
  .rodape__grade{ grid-template-columns:1fr; }
}

/* =========================================================
   BOTÃO FLUTUANTE DE WHATSAPP
   ========================================================= */
.zap{
  position:fixed;
  right:max(clamp(1rem,3vw,1.75rem), env(safe-area-inset-right));
  bottom:max(clamp(1rem,3vw,1.75rem), env(safe-area-inset-bottom));
  z-index:80;
  display:inline-flex; align-items:center; gap:.55rem;
  background:#2E7D52; color:#fff; text-decoration:none;
  padding:.85rem 1.25rem; border-radius:999px;
  font-weight:700; font-size:var(--t-sm);
  box-shadow:0 14px 28px -12px rgba(20,50,34,.8);
  transition:background-color .2s ease, transform .3s ease, opacity .3s ease, visibility .3s;
}
.zap--escondido{ opacity:0; visibility:hidden; transform:translateY(14px) scale(.96); pointer-events:none; }
.zap:hover{ background:#256743; transform:translateY(-2px); }
.zap svg{ width:22px; height:22px; flex:none; }
@media (max-width: 480px){
  .zap{ padding:.85rem 1.1rem; font-size:var(--t-xs); }
  .zap svg{ width:24px; height:24px; }
}

/* =========================================================
   FOTO AMPLIADA
   ========================================================= */
.lupa{
  position:fixed; inset:0; z-index:120;
  background:rgba(24,16,9,.95);
  display:grid; place-items:center;
  padding:clamp(3.5rem,8vw,5rem) clamp(1rem,5vw,4.5rem);
}
.lupa__quadro{ margin:0; max-width:min(1150px,100%); max-height:100%; }
.lupa__quadro img{
  max-width:100%; max-height:76vh; margin:0 auto;
  object-fit:contain; border-radius:10px;
  background:var(--cafe);
}
.lupa__quadro figcaption{
  margin-top:1rem; text-align:center;
  color:rgba(251,245,232,.85); font-size:var(--t-sm);
  display:flex; flex-wrap:wrap; justify-content:center; gap:.3rem .9rem;
}
.lupa__contador{ color:var(--ocre); font-weight:700; white-space:nowrap; }
.lupa__fechar{
  position:absolute; top:clamp(.75rem,2.5vw,1.5rem); right:clamp(.75rem,2.5vw,1.5rem);
  display:inline-flex; align-items:center; gap:.45rem;
  background:var(--creme); color:var(--oliva-escuro);
  border:0; border-radius:999px; cursor:pointer;
  padding:.6rem 1.15rem;
  font-family:var(--sans); font-weight:700; font-size:var(--t-sm);
}
.lupa__fechar span{ font-size:1.35rem; line-height:1; }
.lupa__fechar:hover{ background:#fff; }
.lupa__seta{
  position:absolute; top:50%; transform:translateY(-50%);
  width:50px; height:50px; border-radius:50%;
  background:rgba(251,245,232,.12); color:var(--creme);
  border:1px solid rgba(251,245,232,.3);
  font-size:1.9rem; line-height:1; cursor:pointer;
}
.lupa__seta:hover{ background:rgba(251,245,232,.24); }
.lupa__seta--ant{ left:clamp(.5rem,2vw,1.5rem); }
.lupa__seta--prox{ right:clamp(.5rem,2vw,1.5rem); }
.lupa :focus-visible{ outline-color:var(--ocre); }
@media (max-width: 560px){
  .lupa__seta{ top:auto; bottom:1rem; transform:none; }
}

/* =========================================================
   REVELAR AO ROLAR (suave, uma única vez)
   ========================================================= */
.js .revelar{ opacity:0; transform:translateY(18px); }
.js .revelar.visivel{
  opacity:1; transform:none;
  transition:opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1);
}

@media (prefers-reduced-motion: reduce){
  .js .revelar,
  .js .abertura .entra{ opacity:1 !important; transform:none; transition:none !important; }
  .abertura__fundo img,
  .brasa::after{ animation:none; }
  .abertura__entrar:hover svg{ animation:none; }
  .galeria__item .foto:hover img,
  .prato .foto:hover img{ transform:none; }
  *{ transition-duration:.001ms !important; }
}

@media print{
  .topo,.zap,.lupa,.local__mapa,.abertura__entrar{ display:none !important; }
  body{ background:#fff; }
  .abertura{ min-height:0; color:var(--tinta); background:#fff; }
  .abertura::before,.abertura__fundo{ display:none; }
  .abertura__titulo,.abertura__texto{ color:var(--tinta); text-shadow:none; }
  .js .revelar,.js .abertura .entra{ opacity:1 !important; transform:none !important; }
}
