/* ==========================================================================
   Mister Frango — pagina inicial
   ========================================================================== */

/* --- hero ---------------------------------------------------------------- */
/* Layout pedido pelo Micael a partir da referencia Hemlock: nav com o logo
   ao centro (ver base.css), titulo centrado sem subtitulo, foto por baixo
   numa caixa muito arredondada. Ja nao ha assimetria aqui de proposito —
   e uma composicao centrada, diferente do resto do site, porque foi o que
   a referencia pedia. O titulo usa a serifa Fraunces (--serif, so aqui) em
   vez do Archivo maiusculo do resto do site — voz tipografica deliberada
   para o tom "caseiro", nao um lapso de consistencia. */

.hero{
  padding-top:calc(var(--nav-h) + 3rem);
  padding-bottom:4rem;
  background:var(--tinta-fundo);
  text-align:center;
}

.hero h1{
  max-width:17ch;
  margin-inline:auto;
  font-family:var(--serif);
  font-weight:500;
  text-transform:none;
  letter-spacing:-.005em;
  line-height:1.1;
  font-size:clamp(2.25rem, 5vw, 4rem);
  color:var(--creme);
}

/* mesmo mecanismo de slider da galeria mais abaixo (cursor a seguir o
   rato, duas fotos a deslizar) — ver .slider__* em baixo no ficheiro.
   Começa sempre na primeira foto listada no HTML (a que já lá estava). */
.hero__media{
  margin-top:3rem;
  border-radius:2.75rem;
  overflow:hidden;
}
.hero__media .slider__pista{aspect-ratio:16/9}

/* --- hero: telemovel ----------------------------------------------------- */

@media (max-width:47.9375rem){
  .hero{
    padding-top:calc(var(--nav-h) + 2rem);
    padding-bottom:3rem;
  }
  .hero h1{font-size:2rem;max-width:none}
  .hero__media{margin-top:2rem;border-radius:1.5rem}
  .hero__media .slider__pista{aspect-ratio:4/3}
}

/* ==========================================================================
   Destaques — dois cartoes grandes + um estreito (nunca tres iguais)
   ========================================================================== */

.destaques{padding-block:5rem 4rem}

.destaques__cabecalho{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:2rem;flex-wrap:wrap;
  margin-bottom:2.5rem;
}
.destaques__cabecalho h2{max-width:20ch}

.destaques__grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  grid-template-rows:repeat(2,1fr);
  gap:1.25rem;
}

.prato-destaque{
  position:relative;
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;
  border-radius:var(--radio);
  background:var(--carvao);
  text-decoration:none;
  color:inherit;
  min-height:20rem;
}
.prato-destaque::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(0deg,
    rgba(23,20,21,.94) 0%,
    rgba(23,20,21,.55) 34%,
    rgba(23,20,21,.05) 62%);
  z-index:1;
}
.prato-destaque img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.prato-destaque:hover img{transform:scale(1.045)}

.prato-destaque__corpo{position:relative;z-index:2;padding:1.5rem}
.prato-destaque__preco{
  display:block;
  font-family:var(--mono);font-weight:700;font-size:var(--fs-preco);
  color:var(--creme);
}
.prato-destaque__nome{
  display:block;
  margin-top:.375rem;
  font-size:1.375rem;
  font-weight:700;
  line-height:1.2;
}
.prato-destaque__desc{
  display:block;
  margin-top:.5rem;max-width:26rem;
  font-size:.9375rem;color:var(--creme-70);
}

.prato-destaque--grande{grid-column:1;grid-row:1 / span 2;min-height:26rem}
.prato-destaque--grande .prato-destaque__nome{font-size:1.875rem}
.prato-destaque--media{grid-column:2;grid-row:1}
.prato-destaque--estreito{grid-column:2;grid-row:2;min-height:14rem}
.prato-destaque--estreito .prato-destaque__corpo{padding:1.25rem}
.prato-destaque--estreito .prato-destaque__nome{font-size:1.125rem}

@media (max-width:56.25rem){
  .destaques__grid{grid-template-columns:1fr;grid-template-rows:none}
  .prato-destaque--grande,
  .prato-destaque--media,
  .prato-destaque--estreito{grid-column:1;grid-row:auto;min-height:18rem}
}

/* ==========================================================================
   Feijoada dos sabados - destaque isolado. Fundo escuro como o resto do
   site (era vermelho solido, o Micael achou "demasiado vivo") — o
   vermelho fica so como acento (etiqueta, icone, friso). Grelha com um
   marcador de lugar para video: quando houver material real, troca-se
   .feijoada__media pelo video, sem mexer no resto.
   ========================================================================== */

.feijoada{
  background:var(--tinta-fundo);
  padding-block:4.5rem;
  border-block:1px solid var(--linha);
}
.feijoada__grid{
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:clamp(2.5rem,6vw,5rem);
  align-items:center;
}
.feijoada .etiqueta{color:var(--vermelho)}
.feijoada h2{margin-top:.625rem;max-width:13ch}
.feijoada__texto p:last-child{
  margin-top:1.25rem;
  max-width:30rem;
  font-size:var(--fs-lead);
  color:var(--creme-70);
}

.feijoada__media{
  position:relative;
  width:100%;
  aspect-ratio:4/5;
  max-width:22rem;
  margin-left:auto;
  border-radius:var(--radio);
  background:var(--carvao);
  border:1px solid var(--linha-forte);
  overflow:hidden;
}
/* videos verticais reais (Videos/Feijoada) — silenciosos, sem controlos,
   um a seguir ao outro (main.js troca a fonte quando um acaba). Cada
   clipe original tem a sua propria resolucao/proporcao, e trocar o `src`
   dava um "salto" porque o proprio elemento <video> podia influenciar o
   tamanho do quadro (comportamento normal de elemento substituido dentro
   de um grid). Position:absolute tira o <video> de qualquer influencia
   no tamanho do .feijoada__media — o quadro fica sempre fixo (definido
   só pelo aspect-ratio do proprio .feijoada__media) e o video, seja qual
   for a sua proporcao original, enche esse quadro com object-fit:cover. */
.feijoada__media video{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}

@media (max-width:56.25rem){
  .feijoada__grid{grid-template-columns:1fr;gap:2.5rem}
  .feijoada__media{order:-1;max-width:16rem;margin-inline:auto}
}

/* ==========================================================================
   Teaser "sobre" - bloco de vermelho atras da foto, texto assimetrico
   ========================================================================== */

.teaser-sobre{padding-block:5rem}

.teaser-sobre__grid{
  display:grid;
  grid-template-columns:.86fr 1fr;
  gap:clamp(2.5rem,6vw,5rem);
  align-items:center;
}

.teaser-sobre__media{position:relative}
.teaser-sobre__media::before{
  content:"";
  position:absolute;
  top:1.25rem;left:-1.25rem;right:1.25rem;bottom:-1.25rem;
  background:var(--vermelho);
  border-radius:var(--radio);
  z-index:0;
}
.teaser-sobre__media img{
  position:relative;z-index:1;
  border-radius:var(--radio);
  aspect-ratio:4/5;object-fit:cover;
  width:100%;
}

.teaser-sobre__texto .etiqueta{margin-bottom:1rem}
.teaser-sobre__texto h2{max-width:14ch}
.teaser-sobre__texto p{
  margin-top:1.5rem;
  max-width:34rem;
  font-size:var(--fs-lead);
  color:var(--creme-70);
}
.teaser-sobre__texto .btn{margin-top:2rem}

@media (max-width:56.25rem){
  .teaser-sobre__grid{grid-template-columns:1fr;gap:3.5rem}
  .teaser-sobre__media{order:-1;max-width:20rem;margin-inline:auto}
}

/* ==========================================================================
   Galeria - slider com cursor de navegacao (adaptado do Originkit
   "Cursor Image Gallery" para HTML/CSS/JS vanilla, sem React nem
   framer-motion). O cursor do sistema esconde-se sobre a imagem e um
   circulo vermelho com seta segue o rato; clicar na metade esquerda ou
   direita avanca a imagem nessa direcao.
   ========================================================================== */

/* isolada com fundo mais escuro (pedido do Micael) para se destacar como
   bloco proprio, em vez de se perder contra o --tinta a volta */
.galeria{
  background:var(--tinta-fundo);
  padding-block:4rem;
  border-block:1px solid var(--linha);
}

/* Mecanica do slider (cursor a seguir o rato, duas camadas a deslizar) e'
   generica — [data-slider] — porque agora e' usada em dois sitios: aqui
   (.galeria-slider) e no hero (.hero__media). Cada sitio so' define o que
   e' proprio dele (proporcao, raio, fundo); o resto vive nas classes
   .slider__* partilhadas mais abaixo. */
.galeria-slider{
  border-radius:var(--radio);
  overflow:hidden;
  background:var(--carvao);
}
.galeria-slider .slider__pista{aspect-ratio:16/8}

[data-slider]{position:relative;cursor:default}
[data-slider].is-sem-cursor{cursor:none}

.slider__pista{
  position:relative;
  width:100%;
  overflow:hidden;
}
.slider__camada{
  position:absolute;inset:0;
  will-change:transform;
}
.slider__camada img{
  width:100%;height:100%;
  object-fit:cover;display:block;
  -webkit-user-drag:none;user-select:none;
  pointer-events:none;
}

.slider__zona{
  position:absolute;top:0;bottom:0;width:50%;
  border:0;padding:0;margin:0;
  background:transparent;
  cursor:inherit;
}
.slider__zona--prev{left:0}
.slider__zona--next{right:0}
.slider__zona:disabled{pointer-events:none}

.slider__cursor{
  position:absolute;top:0;left:0;
  width:3.75rem;height:3.75rem;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:var(--vermelho);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
  color:var(--creme);
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
  opacity:0;
  z-index:5;
  transition:opacity .15s ease;
}
.slider__cursor svg{width:1.5rem;height:1.5rem;transition:transform .15s ease}
.slider__cursor.is-visivel{opacity:1}
.slider__cursor.is-esquerda svg{transform:scaleX(-1)}

.slider__pontos{
  position:absolute;left:50%;bottom:1.25rem;
  transform:translateX(-50%);
  display:flex;gap:.5rem;
  z-index:4;
}
.slider__pontos button{
  width:.5rem;height:.5rem;border-radius:50%;
  border:0;padding:0;
  background:rgba(249,241,231,.4);
  cursor:pointer;
  transition:background-color .18s ease,transform .18s ease;
}
.slider__pontos button.is-ativo{background:var(--vermelho);transform:scale(1.3)}

@media (max-width:47.9375rem){
  .galeria-slider .slider__pista{aspect-ratio:4/5}
}
@media (hover:none),(pointer:coarse){
  .slider__cursor{display:none}
}

/* ==========================================================================
   Faixa clara - localizacao e contacto. O unico bloco em creme da pagina.
   ========================================================================== */

.faixa-clara{
  background:var(--creme);
  color:var(--tinta);
  padding-block:4.5rem;
}

.faixa-clara__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,6vw,5rem);
  align-items:start;
}

.faixa-clara .etiqueta{color:rgba(35,31,32,.55)}

.faixa-clara h2{margin-top:.75rem;max-width:12ch;color:var(--tinta)}

.faixa-clara__morada{
  margin-top:1.75rem;
  font-size:var(--fs-lead);
  line-height:1.5;
}
.faixa-clara__morada strong{display:block;font-size:1.0625rem;margin-bottom:.25rem}

.faixa-clara__accoes{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.faixa-clara__accoes .btn--linha{border-color:rgba(35,31,32,.3);color:var(--tinta)}
.faixa-clara__accoes .btn--linha:hover{border-color:var(--tinta);background:rgba(35,31,32,.06)}

.faixa-clara__lista{list-style:none;margin:0;padding:0}
.faixa-clara__lista li{
  display:flex;justify-content:space-between;gap:1rem;
  padding-block:.875rem;
  border-bottom:1px solid rgba(35,31,32,.14);
  font-size:.9375rem;
}
.faixa-clara__lista li:first-child{padding-top:0}
.faixa-clara__lista dt{font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:.8125rem}
.faixa-clara__lista dd{margin:0;text-align:right;color:rgba(35,31,32,.75)}
.faixa-clara__lista a{text-decoration-color:rgba(35,31,32,.35)}
.faixa-clara__lista a:hover{color:var(--tinta)}

.faixa-clara__nota{
  margin-top:1.5rem;
  font-family:var(--mono);
  font-size:.8125rem;
  color:rgba(35,31,32,.55);
}

@media (max-width:56.25rem){
  .faixa-clara__grid{grid-template-columns:1fr;gap:3rem}
}

