/* =========================================================
   BLOCO ORIGINAL 01
   ========================================================= */

:root{
    --sage:#8f9c7f;
    --sage-deep:#5f6b52;
    --cream:#f4efe4;
    --cream-warm:#eee6d6;
    --plaster:#e9e2d2;
    --walnut:#3c2f24;
    --walnut-deep:#241c15;
    --marble:#241f1a;
    --gold:#b8925a;
    --gold-bright:#d8b482;
    --ink:#2a281f;
    --line: rgba(42,40,31,0.12);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:300;
    overflow-x:hidden;
  }
  h1,h2,h3{
    font-family:'Cormorant Garamond', serif;
    font-weight:400;
  }
  
  a{color:inherit; text-decoration:none;}
  img{display:block; width:100%; height:100%; object-fit:cover;}
  .eyebrow{
    font-size:0.72rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:500;
  }
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

  /* ---------- Wordmark (recriação do logótipo) ---------- */
  .wordmark{display:inline-flex; flex-direction:column; align-items:center; line-height:1;}
  .wordmark .name{
    font-family:'Mrs Saint Delafield', cursive;
    font-size:2.6rem;
    background:linear-gradient(100deg, #efd9a8, var(--gold) 55%, #c9a468);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  
  .wordmark.light .name{
    background:linear-gradient(100deg, #fff, #f2e6c9 55%, #e3c891);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  
  .wordmark.small .name{font-size:1.5rem;}
  

  /* ---------- Nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 40px;
    transition:background 0.4s ease, padding 0.4s ease, box-shadow .4s ease;
  }
  header.scrolled{
    background:rgba(244,239,228,0.94);
    backdrop-filter:blur(10px);
    padding:12px 40px;
    box-shadow:0 1px 0 var(--line);
  }
  header.scrolled .wordmark:not(.scroll-only){display:none;}
  header .wordmark.scroll-only{display:none;}
  header.scrolled .wordmark.scroll-only{display:inline-flex;}

  nav ul{list-style:none; display:flex; gap:38px;}
  nav a{
    font-size:0.76rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--cream);
    transition:color .3s ease;
  }
  header.scrolled nav a{color:var(--ink);}
  nav a:hover{color:var(--gold-bright);}
  header.scrolled nav a:hover{color:var(--gold);}

  .nav-reserve{
    border:1px solid var(--gold-bright);
    padding:10px 22px;
    font-size:0.74rem; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--cream);
    transition:all 0.3s ease;
  }
  header.scrolled .nav-reserve{color:var(--gold); border-color:var(--gold);}
  .nav-reserve:hover{background:var(--gold); color:#fff; border-color:var(--gold);}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    height:100vh; min-height:640px;
    display:flex; align-items:flex-end;
  }
  .hero-bg{position:absolute; inset:0; z-index:0;}
  .hero-bg img{filter:saturate(0.95) brightness(0.62);}
  .hero-bg::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(36,28,21,0.88) 0%, rgba(36,28,21,0.25) 48%, rgba(36,28,21,0.45) 100%);
  }
  .hero-content{
    position:relative; z-index:2;
    width:100%;
    padding-bottom:90px;
    color:var(--cream);
  }
  .hero-eyebrow{
    display:flex; align-items:center; gap:14px;
    margin-bottom:22px;
  }
  .hero-eyebrow .rule{width:44px; height:1px; background:var(--gold-bright);}
  .hero-eyebrow span.eyebrow{color:var(--gold-bright);}
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    line-height:1.05;
    font-weight:300;
    max-width:780px;
    color:#fbf7ee;
  }
  .hero h1 em{font-style:italic; color:var(--gold-bright);}
  .hero-sub{
    margin-top:24px;
    max-width:440px;
    font-size:1rem;
    line-height:1.7;
    color:#e5ddc9;
    font-weight:300;
  }
  .hero-actions{
    margin-top:38px;
    display:flex; align-items:center; gap:28px;
  }
  .btn-primary{
    background:var(--gold);
    color:#fff;
    padding:16px 34px;
    font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
    font-weight:500;
    transition:background 0.3s ease, transform 0.3s ease;
    display:inline-block;
  }
  .btn-primary:hover{background:var(--gold-bright); transform:translateY(-2px);}
  .btn-ghost{
    font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
    color:#e5ddc9;
    display:flex; align-items:center; gap:10px;
  }
  
  
  
  .hero-wordmark{
    position:absolute; top:120px; left:0; right:0; z-index:2;
    display:flex; justify-content:center;
  }

  /* ---------- Signature divider: linha de mármore/veio dourado ---------- */
  .vein{
    height:3px; width:100%;
    background:linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold-bright) 50%, var(--gold) 80%, transparent);
    opacity:0.6;
  }

  /* ---------- Section base ---------- */
  section{padding:130px 0;}
  .section-head{
    display:grid; grid-template-columns:1fr 1fr; gap:60px;
    margin-bottom:70px;
    align-items:end;
  }
  .section-head h2{
    font-size:clamp(2rem, 3.6vw, 2.9rem);
    font-weight:400;
    line-height:1.15;
    margin-top:12px;
    color:var(--walnut);
  }
  .section-head p{
    color:#5c5646;
    font-size:0.98rem;
    line-height:1.75;
    max-width:420px;
  }

  /* ---------- Sobre ---------- */
  .about{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:70px;
    align-items:center;
  }
  .about-img{
    aspect-ratio:4/5;
    position:relative;
    overflow:hidden;
  }
  .about-img img{filter:saturate(0.95) contrast(1.02);}
  .about-img .frame{
    position:absolute; inset:16px;
    border:1px solid rgba(244,239,228,0.55);
    pointer-events:none;
  }
  .about-text p{
    font-size:1.05rem;
    line-height:1.85;
    color:#5c5646;
    margin-bottom:22px;
  }
  .about-text p:first-of-type{
    color:var(--walnut);
    font-family:'Cormorant Garamond', serif;
    font-size:1.5rem;
    font-style:italic;
    line-height:1.5;
  }
  .chef-tag{
    margin-top:36px;
    display:flex; align-items:center; gap:16px;
    padding-top:26px;
    border-top:1px solid var(--line);
  }
  .chef-tag .name{font-family:'Cormorant Garamond', serif; font-size:1.15rem; color:var(--walnut);}
  .chef-tag .role{font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); margin-top:3px;}

  /* ---------- Destaques ---------- */
  .dishes-section{background:var(--walnut-deep); color:var(--cream);}
  .dishes-section .section-head h2{color:var(--cream);}
  .dishes-section .section-head p{color:#c9beac;}
  
  
  
  
  
  

  /* ---------- Galeria ---------- */
  .gallery{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    grid-auto-rows:430px;
    gap:8px;
  }
  .gallery figure{overflow:hidden; position:relative; background:var(--plaster);}
  .gallery img{transition:transform 0.6s ease; filter:saturate(0.95);}
  .gallery figure:hover img{transform:scale(1.04);}

  /* ---------- Testemunhos ---------- */
  
  
  
  
  

  /* ---------- Localização ---------- */
  .location{
    display:grid; grid-template-columns:1fr 1fr;
    background:var(--cream);
  }
  .loc-info{padding:110px 60px 110px 0;}
  .loc-map{min-height:520px; position:relative; overflow:hidden; background:var(--sage-deep);}
  
  
  .loc-block{margin-bottom:40px;}
  .loc-block h3{font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; font-family:'Work Sans', sans-serif; font-weight:500;}
  .loc-block p, .loc-block a{font-size:1rem; color:#5c5646; line-height:1.8;}
  .hours-table{width:100%; border-collapse:collapse; margin-top:6px;}
  .hours-table td{padding:9px 0; font-size:0.95rem; color:#5c5646; border-bottom:1px solid var(--line);}
  .hours-table td:last-child{text-align:right; color:var(--walnut);}
  .hours-table tr.closed td:last-child{color:#a45c3f;}

  /* ---------- Footer ---------- */
  footer{
    padding:70px 0 36px;
    background:var(--walnut-deep);
    color:#c9beac;
  }
  .footer-top{
    display:flex; justify-content:space-between; align-items:flex-start;
    padding-bottom:50px;
  }
  .footer-col h4{font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:#9b9075; margin-bottom:16px;}
  .footer-col a{display:block; font-size:0.9rem; color:var(--cream); margin-bottom:10px;}
  .footer-links{display:flex; gap:60px;}
  .footer-bottom{
    display:flex; justify-content:space-between;
    padding-top:26px; border-top:1px solid rgba(244,239,228,0.12);
    font-size:0.75rem; color:#8a8068; letter-spacing:0.03em;
  }


  /* ---------- P0: menu mobile ---------- */
  .menu-toggle{display:none; width:44px; height:44px; border:1px solid rgba(255,255,255,.35); background:transparent; padding:11px; cursor:pointer; z-index:61;}
  .menu-toggle span{display:block; height:1px; background:var(--cream); margin:5px 0; transition:.3s ease;}
  header.scrolled .menu-toggle{border-color:var(--line);}
  header.scrolled .menu-toggle span{background:var(--walnut);}
  .menu-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .menu-toggle.open span:nth-child(2){opacity:0;}
  .menu-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
  .mobile-menu{position:fixed; inset:0; z-index:55; background:rgba(36,28,21,.98); opacity:0; visibility:hidden; transition:.3s ease; display:flex; align-items:center; justify-content:center;}
  .mobile-menu.open{opacity:1; visibility:visible;}
  .mobile-menu-inner{display:flex; flex-direction:column; align-items:center; gap:24px; width:min(420px,86vw);}
  .mobile-menu-inner>a{font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--cream);}
  .mobile-menu-inner .mobile-reserve{font-family:'Work Sans',sans-serif; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; background:var(--gold); padding:16px 30px; margin-top:12px;}
  .mobile-menu-inner .mobile-phone{font-family:'Work Sans',sans-serif; font-size:.8rem; letter-spacing:.08em; color:var(--gold-bright);}
  body.menu-open{overflow:hidden;}

  /* ---------- P0: reservas ---------- */
  .reservation-section{background:var(--sage-deep); color:var(--cream);}
  .reservation-wrap{display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:start;}
  .reservation-copy h2{font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.05; color:var(--cream); margin:14px 0 22px;}
  .reservation-copy>p{color:#ded8c9; line-height:1.8; max-width:440px;}
  .reservation-contact{margin-top:34px; padding-top:24px; border-top:1px solid rgba(255,255,255,.15); display:flex; flex-direction:column; gap:8px;}
  .reservation-contact span{font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; color:#c8c1b2;}
  .reservation-contact a{font-family:'Cormorant Garamond',serif; font-size:1.45rem; color:var(--gold-bright);}
  .reservation-form{background:var(--cream); color:var(--ink); padding:40px; box-shadow:0 20px 60px rgba(20,16,12,.18);}
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  .reservation-form label{display:flex; flex-direction:column; gap:8px; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; font-weight:500; color:var(--walnut);}
  .reservation-form input,.reservation-form select,.reservation-form textarea{width:100%; border:1px solid rgba(42,40,31,.18); background:#fbf8f0; padding:13px 14px; color:var(--ink); font:400 .94rem 'Work Sans',sans-serif; outline:none; border-radius:0;}
  .reservation-form input:focus,.reservation-form select:focus,.reservation-form textarea:focus{border-color:var(--gold); box-shadow:0 0 0 2px rgba(184,146,90,.12);}
  .form-message{margin-top:20px;}
  .form-consent{margin-top:18px; flex-direction:row!important; align-items:flex-start; gap:10px!important; text-transform:none!important; letter-spacing:0!important; font-weight:400!important; line-height:1.5; color:#645f52!important;}
  .form-consent input{width:17px; height:17px; margin-top:2px; accent-color:var(--gold); padding:0;}
  .reservation-submit{border:0; cursor:pointer; margin-top:24px;}
  .form-note{font-size:.72rem; line-height:1.5; color:#827a68; margin-top:13px;}
  .reservation-result{display:none; margin-top:18px; padding:16px 18px; border:1px solid rgba(95,107,82,.3); background:rgba(143,156,127,.12); font-size:.9rem; line-height:1.6;}
  .reservation-result.show{display:block;}
  .reservation-result.error{border-color:rgba(164,92,63,.4); background:rgba(164,92,63,.08);}

  /* ---------- P0: mapa real ---------- */
  .loc-map iframe{position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.7) contrast(.95);}
  .location-actions{display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-top:10px;}
  .btn-outline{display:inline-block; border:1px solid var(--gold); color:var(--gold); padding:15px 24px; font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; font-weight:500; transition:.3s ease;}
  .btn-outline:hover{background:var(--gold); color:#fff;}

  @media (max-width:900px){
    nav, .nav-reserve{display:none;}
    .menu-toggle{display:block;}
    .section-head, .about, .location{grid-template-columns:1fr; gap:30px;}
    
    
    .gallery{grid-template-columns:1fr; grid-auto-rows:300px;}
    .reservation-wrap{grid-template-columns:1fr; gap:40px;}
    .reservation-form{padding:28px 22px;}
    .form-grid{grid-template-columns:1fr;}
    .loc-info{padding:70px 24px;}
    
    .footer-top{flex-direction:column; gap:30px;}
    section{padding:80px 0;}
    .hero-wordmark{top:100px;}
  }

  .menu-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(42,40,31,.12);padding-bottom:90px}.menu-card{background:var(--cream);padding:38px 34px;min-height:245px}.menu-card h3{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:400;color:var(--walnut);margin:16px 0}.menu-card p{font-size:.9rem;line-height:1.9;color:#655f54}.gallery{grid-template-columns:2fr 1fr 1fr}.gallery figure{min-height:420px}.gallery img{width:100%;height:100%;object-fit:cover}.gallery figure:nth-child(3) img{object-fit:contain;background:var(--sage)}@media(max-width:900px){.menu-categories{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gallery figure{min-height:300px}}

/* =========================================================
   BLOCO ORIGINAL 02
   ========================================================= */

/* ===== ANTÓNIUS DJANGO — LAYOUT FIX V1 ===== */

/* Evita que qualquer elemento aumente a largura da página */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

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

img,
video,
iframe,
svg {
    max-width: 100%;
}

/* Imagens */
img {
    height: auto;
    display: block;
}

/* As secções nunca podem ultrapassar o viewport */
section,
header,
footer,
main {
    width: 100%;
    max-width: 100%;
}

/* Containers gerais do mockup */
.wrap,
.container,
.inner,
.section-inner,
.location-inner,
.reservation-inner,
.about-inner,
.menu-inner,
.gallery-inner {
    width: min(1180px, calc(100% - 48px));
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

/* Evita problemas frequentes em grids/flex */
section > *,
.grid > *,
.gallery > *,
.location-grid > *,
.reservation-grid > * {
    min-width: 0;
}

/* GALERIA */
.gallery {
    width: 100%;
    max-width: 100%;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 12px;
    overflow: hidden;
}

.gallery figure {
    margin: 0;
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.gallery figure img {
    width: 100%;
    height: 520px;
    object-fit: cover;
}

/* Localização */
.location,
.location-section {
    overflow: hidden;
}

.location-grid {
    width: 100%;
    max-width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 1fr);
    gap: clamp(32px, 6vw, 90px);
    align-items: stretch;
}

.location-grid iframe,
.loc-map iframe,
iframe[title*="Mapa"] {
    display: block;
    width: 100% !important;
    max-width: 100%;
    min-height: 520px;
    border: 0;
}

/* Textos grandes nunca devem forçar overflow */
h1,
h2,
h3,
p,
a,
span {
    overflow-wrap: break-word;
}

.location h2,
.location-section h2 {
    font-size: clamp(2.7rem, 5vw, 5.3rem);
    line-height: .98;
}

/* Desktop intermédio */
@media (max-width: 1100px) {
    .wrap,
    .container,
    .inner,
    .section-inner,
    .location-inner,
    .reservation-inner,
    .about-inner,
    .menu-inner,
    .gallery-inner {
        width: min(100% - 40px, 1180px);
    }

    .gallery {
        grid-template-columns: 1.6fr 1fr 1fr;
    }

    .gallery figure img {
        height: 440px;
    }
}

/* Tablet */
@media (max-width: 900px) {
    .wrap,
    .container,
    .inner,
    .section-inner,
    .location-inner,
    .reservation-inner,
    .about-inner,
    .menu-inner,
    .gallery-inner {
        width: calc(100% - 36px);
    }

    .gallery {
        grid-template-columns: 1fr 1fr;
    }

    .gallery figure:first-child {
        grid-column: 1 / -1;
    }

    .gallery figure img {
        height: 360px;
    }

    .gallery figure:first-child img {
        height: 430px;
    }

    .location-grid {
        grid-template-columns: 1fr;
    }

    .location-grid iframe,
    .loc-map iframe,
    iframe[title*="Mapa"] {
        min-height: 420px;
    }
}

/* Telemóvel */
@media (max-width: 600px) {
    .wrap,
    .container,
    .inner,
    .section-inner,
    .location-inner,
    .reservation-inner,
    .about-inner,
    .menu-inner,
    .gallery-inner {
        width: calc(100% - 32px);
    }

    section {
        max-width: 100vw;
    }

    .gallery {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .gallery figure,
    .gallery figure:first-child {
        grid-column: auto;
    }

    .gallery figure img,
    .gallery figure:first-child img {
        width: 100%;
        height: 360px;
        object-fit: cover;
    }

    .location-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 36px;
    }

    .location h2,
    .location-section h2 {
        font-size: clamp(2.4rem, 12vw, 4rem);
    }

    .location-grid iframe,
    .loc-map iframe,
    iframe[title*="Mapa"] {
        width: 100% !important;
        min-height: 360px;
    }

    input,
    select,
    textarea,
    button {
        max-width: 100%;
    }
}

/* =========================================================
   BLOCO ORIGINAL 03
   ========================================================= */

/* ===== ANTÓNIUS SPACING FIX V2 ===== */


/* =========================================================
   1. SECÇÃO A CASA — separar corretamente do HERO
   ========================================================= */

#sobre {
    position: relative;
    z-index: 2;
    margin-top: 0 !important;
    padding-top: 110px !important;
    overflow: visible;
}

#sobre .about {
    margin-top: 0 !important;
    transform: none !important;
}

#sobre .about-img {
    margin-top: 0 !important;
    transform: none !important;
    top: auto !important;
}

#sobre .section-head {
    margin-top: 0 !important;
}


/* Se existir algum bloco imediatamente após o hero */
.hero + section {
    margin-top: 0 !important;
}


/* =========================================================
   2. GALERIA — mais respiração no topo
   ========================================================= */

#galeria {
    padding-top: 140px !important;
}

#galeria .section-head {
    margin-top: 0 !important;
    margin-bottom: 70px !important;
}

#galeria .eyebrow {
    margin-top: 0;
    margin-bottom: 22px;
}


/* =========================================================
   3. LOCALIZAÇÃO / CONTACTOS — margem esquerda
   ========================================================= */

#local {
    width: 100%;
    max-width: 100%;
}

#local .location {
    width: 100%;
    max-width: 100%;
}

#local .loc-info {
    padding-left: clamp(32px, 7vw, 120px) !important;
    padding-right: clamp(32px, 5vw, 80px) !important;
}

#local .loc-block,
#local .hours-table {
    max-width: 700px;
}


/* Caso #local esteja diretamente na grelha location */
.location .loc-info {
    padding-left: clamp(32px, 7vw, 120px) !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    #sobre {
        padding-top: 90px !important;
    }

    #galeria {
        padding-top: 100px !important;
    }

    #galeria .section-head {
        margin-bottom: 50px !important;
    }

    #local .loc-info,
    .location .loc-info {
        padding-left: 32px !important;
        padding-right: 32px !important;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    #sobre {
        padding-top: 72px !important;
    }

    #galeria {
        padding-top: 82px !important;
    }

    #galeria .section-head {
        margin-bottom: 38px !important;
    }

    #local .loc-info,
    .location .loc-info {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 04
   ========================================================= */

/* ===== ANTÓNIUS ABOUT FIX V3 ===== */

/* O hero termina sempre antes da secção seguinte */
.hero {
    position: relative;
    z-index: 1;
    margin-bottom: 0 !important;
}

/* A Casa passa a ser um bloco completamente independente */
#sobre {
    position: relative !important;
    z-index: 5 !important;

    background: var(--cream, #f4efe4) !important;

    margin-top: 0 !important;

    padding-top: 120px !important;
    padding-bottom: 120px !important;

    overflow: hidden !important;
}

/* Qualquer estrutura interna deixa de subir sobre o hero */
#sobre .section-head,
#sobre .about,
#sobre .about-img,
#sobre .about-text {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;

    margin-top: 0 !important;

    transform: none !important;
}

/* Cabeçalho da secção */
#sobre .section-head {
    margin-bottom: 70px !important;
}

/* Grid principal */
#sobre .about {
    display: grid !important;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr) !important;
    gap: 70px !important;
    align-items: center !important;
}

/* Fotografia */
#sobre .about-img {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;

    overflow: hidden !important;
}

/* Remove eventual margin negativa herdada */
#sobre img {
    margin-top: 0 !important;
}

/* Texto */
#sobre .about-text {
    align-self: center !important;
}


/* =====================================================
   TABLET
   ===================================================== */

@media (max-width: 900px) {

    #sobre {
        padding-top: 90px !important;
        padding-bottom: 90px !important;
    }

    #sobre .section-head {
        margin-bottom: 50px !important;
    }

    #sobre .about {
        grid-template-columns: 1fr !important;
        gap: 45px !important;
    }
}


/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 600px) {

    #sobre {
        padding-top: 72px !important;
        padding-bottom: 72px !important;
    }

    #sobre .section-head {
        margin-bottom: 36px !important;
    }

    #sobre .about {
        gap: 32px !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 05
   ========================================================= */

/* ===== HERO IMAGE CONTAINMENT V5 ===== */

/*
   A fotografia pertence exclusivamente ao HERO.
   Nunca pode aparecer fora dos limites do hero.
*/
.hero {
    position: relative !important;
    width: 100% !important;
    min-height: 100vh !important;
    overflow: hidden !important;
    isolation: isolate;
}

/* Background do hero limitado à caixa do próprio hero */
.hero-bg {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    z-index: 0 !important;
}

.hero-bg img {
    position: absolute !important;
    inset: 0 !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
    object-position: center !important;

    margin: 0 !important;
}

/*
   A secção A CASA passa a ter fundo creme
   em TODA a largura do browser.
*/
#sobre {
    position: relative !important;
    z-index: 10 !important;

    width: 100% !important;
    max-width: none !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    background: var(--cream, #f4efe4) !important;

    overflow: hidden !important;
}

/*
   Mantemos apenas o CONTEÚDO limitado
   ao container visual do site.
*/


/* Tablet */
@media (max-width: 900px) {

    
}


/* Mobile */
@media (max-width: 600px) {

    
}

/* =========================================================
   BLOCO ORIGINAL 06
   ========================================================= */

/* ===== ABOUT REDESIGN V6 ===== */

/*
   Fundo continua a ocupar toda a largura,
   mas o conteúdo passa a ter exatamente
   a mesma largura das restantes secções.
*/
#sobre {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    padding:
        105px
        0
        0
        !important;

    background: var(--cream, #f4efe4) !important;

    overflow: hidden !important;
}


/* Container principal */


/* Cabeçalho da secção */
#sobre .section-head {
    display: grid !important;

    grid-template-columns:
        minmax(0, .9fr)
        minmax(0, 1.1fr)
        !important;

    gap: 80px !important;

    align-items: end !important;

    margin:
        0
        0
        70px
        !important;
}


/* Título ligeiramente mais contido */
#sobre .section-head h2 {
    max-width: 560px !important;

    font-size:
        clamp(2.8rem, 4.4vw, 4.4rem)
        !important;

    line-height: .98 !important;
}


/* Texto introdutório */
#sobre .section-head p {
    max-width: 540px !important;

    margin: 0 !important;

    font-size: 1rem !important;
    line-height: 1.75 !important;
}


/* ---------------------------------------------------------
   FOTO + TEXTO
   --------------------------------------------------------- */

#sobre .about {
    display: grid !important;

    grid-template-columns:
        minmax(0, .92fr)
        minmax(0, 1.08fr)
        !important;

    gap: 74px !important;

    align-items: stretch !important;

    margin: 0 !important;

    position: relative !important;
}


/*
   Foto mais estreita e vertical.
   Encosta diretamente ao fundo da secção.
*/
#sobre .about-img {
    width: 100% !important;

    max-width: 470px !important;

    aspect-ratio: 4 / 5 !important;

    margin: 0 !important;

    align-self: end !important;

    overflow: hidden !important;

    position: relative !important;
}


#sobre .about-img img {
    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;

    /*
       Como a nova fotografia é vertical,
       privilegiamos cabeça e zona de trabalho.
    */
    object-position: center 38% !important;

    display: block !important;
}


/* Moldura interior */
#sobre .about-img .frame {
    position: absolute !important;

    inset: 16px !important;

    border:
        1px solid rgba(244,239,228,.55)
        !important;

    pointer-events: none !important;
}


/*
   Texto fica visualmente centrado em relação
   à fotografia, mas sem criar um enorme vazio.
*/
#sobre .about-text {
    align-self: center !important;

    max-width: 590px !important;

    padding:
        30px
        0
        70px
        !important;
}


#sobre .about-text p:first-of-type {
    font-size:
        clamp(1.35rem, 2vw, 1.75rem)
        !important;

    line-height: 1.55 !important;
}


/* Chef */
#sobre .chef-tag {
    margin-top: 34px !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    #sobre {
        padding-top: 85px !important;
    }

    

    #sobre .section-head {
        grid-template-columns: 1fr !important;

        gap: 26px !important;

        margin-bottom: 50px !important;
    }

    #sobre .section-head h2 {
        max-width: 650px !important;
    }

    #sobre .about {
        grid-template-columns: 1fr !important;

        gap: 45px !important;
    }

    #sobre .about-img {
        width: min(100%, 520px) !important;

        max-width: 520px !important;
    }

    #sobre .about-text {
        max-width: 680px !important;

        padding:
            0
            0
            75px
            !important;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    #sobre {
        padding-top: 68px !important;
    }

    

    #sobre .section-head {
        margin-bottom: 38px !important;
    }

    #sobre .section-head h2 {
        font-size:
            clamp(2.4rem, 12vw, 3.3rem)
            !important;
    }

    #sobre .about {
        gap: 32px !important;
    }

    #sobre .about-img {
        width: 100% !important;

        max-width: none !important;

        aspect-ratio: 4 / 5 !important;
    }

    #sobre .about-text {
        padding:
            0
            0
            60px
            !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 07
   ========================================================= */

/* ABOUT ALIGNMENT V7 */

/* A secção A Casa passa a usar o mesmo recuo lateral das restantes */
#sobre {
    padding-left: clamp(32px, 8vw, 180px) !important;
    padding-right: clamp(32px, 8vw, 180px) !important;
    box-sizing: border-box !important;
}

/* Evita que elementos internos voltem a sair para a margem */
#sobre .section-head,
#sobre .about {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    #sobre {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 08
   ========================================================= */

/* ===== ABOUT TRUE WRAP ALIGNMENT V8 ===== */

/*
   #sobre JÁ É o .wrap.
   Repomos exatamente a mesma largura e centragem
   usadas nas restantes secções.
*/
#sobre {
    position: relative !important;

    width: min(1180px, calc(100% - 64px)) !important;
    max-width: 1180px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    padding-left: 0 !important;
    padding-right: 0 !important;

    background: transparent !important;

    overflow: visible !important;

    box-sizing: border-box !important;
}


/*
   Fundo creme full-width independente do container.
   Assim o conteúdo fica alinhado mas não aparecem
   restos da imagem do Hero nas laterais.
*/
#sobre::before {
    content: "";

    position: absolute;
    z-index: -1;

    top: 0;
    bottom: 0;

    left: 50%;

    width: 100vw;

    transform: translateX(-50%);

    background: var(--cream, #f4efe4);
}


/*
   Os dois blocos internos usam toda a largura
   disponível dos 1180px.
*/
#sobre .section-head,
#sobre .about {
    width: 100% !important;
    max-width: none !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* Tablet */
@media (max-width: 900px) {

    #sobre {
        width: calc(100% - 40px) !important;
    }
}


/* Mobile */
@media (max-width: 600px) {

    #sobre {
        width: calc(100% - 32px) !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 09
   ========================================================= */

/* ===== GALLERY PREMIUM V1 ===== */

#galeria {
    padding-top: 130px !important;
    padding-bottom: 130px !important;
}

#galeria .section-head {
    margin-bottom: 70px !important;
}

.gallery-premium {
    display: grid !important;

    grid-template-columns:
        repeat(12, minmax(0, 1fr))
        !important;

    grid-auto-flow: dense;

    gap: 14px !important;

    width: 100% !important;
}

.gallery-premium figure {
    position: relative;

    overflow: hidden;

    margin: 0;

    min-height: 300px;
}

.gallery-premium figure:nth-child(1) {
    grid-column: span 7;
    grid-row: span 2;
}

.gallery-premium figure:nth-child(2) {
    grid-column: span 5;
}

.gallery-premium figure:nth-child(3) {
    grid-column: span 5;
}

.gallery-premium figure:nth-child(4) {
    grid-column: span 4;
}

.gallery-premium figure:nth-child(5) {
    grid-column: span 4;
}

.gallery-premium figure:nth-child(6) {
    grid-column: span 4;
}

.gallery-premium img {
    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;

    display: block;

    transition:
        transform .7s cubic-bezier(.2,.7,.2,1),
        filter .5s ease;
}

.gallery-premium figure:hover img {
    transform: scale(1.035);
}

.gallery-premium figure:nth-child(1) {
    min-height: 630px;
}

.gallery-premium figure:nth-child(2),
.gallery-premium figure:nth-child(3) {
    min-height: 308px;
}

.gallery-premium figure:nth-child(4),
.gallery-premium figure:nth-child(5),
.gallery-premium figure:nth-child(6) {
    min-height: 360px;
}


/* Tablet */
@media (max-width: 900px) {

    .gallery-premium {
        grid-template-columns:
            repeat(2, minmax(0,1fr))
            !important;
    }

    .gallery-premium figure,
    .gallery-premium figure:nth-child(n) {
        grid-column: auto !important;
        grid-row: auto !important;

        min-height: 380px;
    }

    .gallery-premium figure:first-child {
        grid-column: 1 / -1 !important;
        min-height: 500px;
    }
}


/* Mobile */
@media (max-width: 600px) {

    #galeria {
        padding-top: 85px !important;
        padding-bottom: 85px !important;
    }

    .gallery-premium {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .gallery-premium figure,
    .gallery-premium figure:nth-child(n),
    .gallery-premium figure:first-child {
        grid-column: auto !important;
        min-height: auto !important;
        aspect-ratio: 4 / 3;
    }

    .gallery-premium figure:nth-child(4),
    .gallery-premium figure:nth-child(5) {
        aspect-ratio: 4 / 5;
    }
}

/* =========================================================
   BLOCO ORIGINAL 10
   ========================================================= */

/* ===== RESERVATION SELECT FIX V1 ===== */

.reservation-form input,
.reservation-form select,
.reservation-form textarea {
    width: 100% !important;

    border: 1px solid rgba(72, 58, 44, .20) !important;

    background: rgba(255,255,255,.18) !important;

    color: var(--walnut, #3d3025) !important;

    font-family: inherit !important;

    font-size: 1rem !important;

    line-height: 1.3 !important;

    border-radius: 0 !important;

    box-sizing: border-box !important;

    outline: none !important;

    box-shadow: none !important;
}


/* INPUTS + SELECTS exatamente com a mesma altura */
.reservation-form input,
.reservation-form select {
    height: 62px !important;

    min-height: 62px !important;

    padding:
        0
        20px
        !important;
}


/* Corrige especificamente o estilo nativo dos selects */
.reservation-form select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;

    cursor: pointer !important;

    padding-right: 52px !important;

    background-image:
        linear-gradient(45deg, transparent 50%, #4a3b2f 50%),
        linear-gradient(135deg, #4a3b2f 50%, transparent 50%)
        !important;

    background-position:
        calc(100% - 23px) 27px,
        calc(100% - 17px) 27px
        !important;

    background-size:
        6px 6px,
        6px 6px
        !important;

    background-repeat: no-repeat !important;
}


/* Textarea */
.reservation-form textarea {
    min-height: 140px !important;

    padding:
        18px
        20px
        !important;

    resize: vertical;
}


/* Placeholder */
.reservation-form input::placeholder,
.reservation-form textarea::placeholder {
    color: rgba(72, 58, 44, .42) !important;

    opacity: 1 !important;
}


/* Estado de foco */
.reservation-form input:focus,
.reservation-form select:focus,
.reservation-form textarea:focus {
    border-color: var(--gold, #c49a5a) !important;

    background-color: rgba(255,255,255,.28) !important;
}


/* Safari / iOS */
.reservation-form input[type="date"] {
    -webkit-appearance: none;
    appearance: none;
}


/* Mobile */
@media (max-width: 600px) {

    .reservation-form input,
    .reservation-form select {
        height: 58px !important;
        min-height: 58px !important;

        font-size: 16px !important;
    }

    .reservation-form select {
        background-position:
            calc(100% - 22px) 25px,
            calc(100% - 16px) 25px
            !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 12
   ========================================================= */

/* ===== OFFICIAL LOGO V1 ===== */

.logo-link {
    display: inline-flex !important;
    align-items: center !important;
}

.site-logo {
    display: block;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

/* Header */
.site-logo-header {
    height: 52px;
}

/* Menu mobile / bloco intermédio */
.site-logo-mobile {
    height: 70px;
    max-width: 280px;
}

/* Footer */
.site-logo-footer {
    height: 58px;
    max-width: 260px;
}

/* Como o ficheiro já tem fundo transparente,
   não aplicamos filtros */
.site-logo-header,
.site-logo-mobile,
.site-logo-footer {
    filter: none !important;
}

/* Tablet */
@media (max-width: 900px) {
    .site-logo-header {
        height: 46px;
    }

    .site-logo-mobile {
        height: 62px;
    }
}

/* Mobile */
@media (max-width: 600px) {
    .site-logo-header {
        height: 40px;
    }

    .site-logo-mobile {
        height: 54px;
        max-width: 230px;
    }

    .site-logo-footer {
        height: 48px;
        max-width: 220px;
    }
}

/* =========================================================
   BLOCO ORIGINAL 13
   ========================================================= */

/* ===== GALLERY 7 IMAGES V2 ===== */

/*
   Nova composição:
   1 receção grande
   2 sala
   3 cozinha
   4 amêijoas
   5 carne
   6 mural
   7 serviço de vinho
*/

.gallery-premium figure:nth-child(1) {
    grid-column: span 7 !important;
    grid-row: span 2 !important;
}

.gallery-premium figure:nth-child(2) {
    grid-column: span 5 !important;
}

.gallery-premium figure:nth-child(3) {
    grid-column: span 5 !important;
}

.gallery-premium figure:nth-child(4),
.gallery-premium figure:nth-child(5) {
    grid-column: span 4 !important;
}

.gallery-premium figure:nth-child(6),
.gallery-premium figure:nth-child(7) {
    grid-column: span 6 !important;
    min-height: 430px !important;
}

/* A fotografia de serviço é vertical */
.gallery-premium .gallery-service img {
    object-position: center 35% !important;
}

/* Tablet */
@media (max-width: 900px) {

    .gallery-premium figure:nth-child(n) {
        grid-column: auto !important;
        grid-row: auto !important;
    }

    .gallery-premium figure:first-child {
        grid-column: 1 / -1 !important;
    }

    .gallery-premium figure:nth-child(6),
    .gallery-premium figure:nth-child(7) {
        min-height: 420px !important;
    }
}

/* Mobile */
@media (max-width: 600px) {

    .gallery-premium figure:nth-child(n) {
        min-height: auto !important;
    }

    .gallery-premium .gallery-service {
        aspect-ratio: 4 / 5 !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 14
   ========================================================= */

/* ===== RESERVATION CONSENT FIX V2 ===== */

/*
   O checkbox não pode herdar as dimensões
   dos inputs normais do formulário.
*/
.reservation-form .form-consent {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    gap: 12px !important;

    align-items: start !important;

    width: 100% !important;
    max-width: 100% !important;

    margin-top: 20px !important;

    text-transform: none !important;
    letter-spacing: 0 !important;

    font-size: .82rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;

    color: #645f52 !important;

    cursor: pointer;
}


/* Checkbox real */
.reservation-form .form-consent input[type="checkbox"] {
    appearance: auto !important;
    -webkit-appearance: checkbox !important;

    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;

    height: 18px !important;
    min-height: 18px !important;
    max-height: 18px !important;

    padding: 0 !important;
    margin: 2px 0 0 0 !important;

    border: initial !important;
    border-radius: 0 !important;

    background: initial !important;
    background-image: none !important;

    box-shadow: none !important;

    accent-color: var(--gold, #b8925a);

    flex: none !important;
}


/* Texto do consentimento nunca sai do formulário */
.reservation-form .form-consent span {
    display: block !important;

    min-width: 0 !important;
    max-width: 100% !important;

    overflow-wrap: break-word !important;
}


/* Botão */
.reservation-submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 190px;

    margin-top: 26px !important;

    padding: 18px 28px !important;

    border-radius: 0 !important;

    white-space: nowrap;
}


/* Garante que nada do rodapé ultrapassa o form */
.reservation-form {
    overflow: hidden;
}


/* Mobile */
@media (max-width: 600px) {

    .reservation-form .form-consent {
        font-size: .78rem !important;
    }

    .reservation-submit {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 15
   ========================================================= */

/* ===== GALLERY 8 IMAGES V3 ===== */

/* Linha dos pratos passa a ter 3 imagens iguais */
.gallery-premium figure:nth-child(4),
.gallery-premium figure:nth-child(5),
.gallery-premium figure:nth-child(6) {
    grid-column: span 4 !important;
    min-height: 360px !important;
}

/* Última linha: duas imagens largas */
.gallery-premium figure:nth-child(7),
.gallery-premium figure:nth-child(8) {
    grid-column: span 6 !important;
    min-height: 430px !important;
}

/* Ajuste de enquadramento da nova sala */
.gallery-premium .gallery-ambience img {
    object-position: center center !important;
}

@media (max-width: 900px) {
    .gallery-premium figure:nth-child(n) {
        grid-column: auto !important;
    }

    .gallery-premium figure:first-child {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 600px) {
    .gallery-premium figure:nth-child(n) {
        min-height: auto !important;
    }
}

/* =========================================================
   BLOCO ORIGINAL 16
   ========================================================= */

/* ===== FOOTER K4W CREDIT V1 ===== */

.footer-bottom {
    display: grid !important;
    grid-template-columns:
        minmax(0, 1fr)
        auto
        minmax(0, 1fr)
        !important;

    align-items: center !important;

    gap: 24px !important;
}

.footer-bottom > span:nth-child(2) {
    text-align: center;
}

.footer-credit {
    justify-self: end;

    display: inline-flex;
    align-items: center;
    gap: 6px;

    white-space: nowrap;
}

.footer-credit a {
    color: var(--gold, #b8925a) !important;

    text-decoration: none !important;

    font-weight: 500;

    letter-spacing: .08em;
}

.footer-credit a:hover {
    color: var(--cream, #f4efe4) !important;
}

/* Tablet / mobile */
@media (max-width: 900px) {

    .footer-bottom {
        grid-template-columns: 1fr !important;

        justify-items: start !important;

        gap: 10px !important;
    }

    .footer-bottom > span:nth-child(2) {
        text-align: left;
    }

    .footer-credit {
        justify-self: start;
    }
}


/* ==========================================================
   B13-R8-B3-R1 — INSTITUTIONAL FOOTER
   ========================================================== */


.footer-institutional-text,
.footer-legal-text {

    max-width:
        900px;

    margin:
        0
        auto;

    text-align:
        center;

}


.footer-institutional-text {

    margin-top:
        28px;

    color:
        rgba(
            246,
            240,
            226,
            .78
        );

    font-family:
        "Work Sans",
        sans-serif;

    font-size:
        .86rem;

    line-height:
        1.7;

}


.footer-legal-text {

    margin-top:
        12px;

    color:
        rgba(
            246,
            240,
            226,
            .52
        );

    font-family:
        "Work Sans",
        sans-serif;

    font-size:
        .72rem;

    line-height:
        1.6;

}


@media (
    max-width:
        700px
) {

    .footer-institutional-text,
    .footer-legal-text {

        text-align:
            left;

    }

}


/* ==========================================================
   FIM B13-R8-B3-R1 — INSTITUTIONAL FOOTER
   ========================================================== */



/* ==========================================================
   WEBSITE — PÁGINAS LEGAIS
   ========================================================== */

.legal-page {
    margin: 0;
    background: var(--cream, #f4efe4);
    color: var(--ink, #2a281f);
}

.legal-main {
    min-height: 100vh;
    padding: 72px 24px 96px;
}

.legal-shell {
    width: min(860px, 100%);
    margin: 0 auto;
}

.legal-back {
    display: inline-block;
    margin-bottom: 58px;
    color: var(--gold, #b8925a);
    font-family: "Work Sans", sans-serif;
    font-size: .76rem;
    font-weight: 500;
    letter-spacing: .11em;
    text-decoration: none;
    text-transform: uppercase;
}

.legal-back:hover {
    color: var(--walnut, #493b2e);
}

.legal-header {
    margin-bottom: 64px;
    padding-bottom: 46px;
    border-bottom: 1px solid
        rgba(42, 40, 31, .14);
}

.legal-header h1 {
    margin: 14px 0 20px;
    color: var(--walnut, #493b2e);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2.8rem, 6vw, 4.6rem);
    font-weight: 400;
    line-height: .98;
}

.legal-header p {
    max-width: 700px;
    margin: 0;
    color: #645f52;
    font-size: 1rem;
    line-height: 1.8;
}

.legal-section {
    margin-bottom: 46px;
}

.legal-section h2 {
    margin: 0 0 15px;
    color: var(--walnut, #493b2e);
    font-family: "Cormorant Garamond", serif;
    font-size: 1.75rem;
    font-weight: 500;
}

.legal-section p,
.legal-section li {
    color: #5f5a4e;
    font-size: .94rem;
    line-height: 1.85;
}

.legal-section p {
    margin: 0 0 15px;
}

.legal-section ul {
    margin: 12px 0 20px;
    padding-left: 22px;
}

.legal-section a {
    color: var(--gold, #b8925a);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.legal-updated {
    margin-top: 28px !important;
    color: #8a826f !important;
    font-size: .78rem !important;
}

@media (max-width: 700px) {
    .legal-main {
        padding:
            42px
            20px
            72px;
    }

    .legal-back {
        margin-bottom: 42px;
    }

    .legal-header {
        margin-bottom: 46px;
        padding-bottom: 34px;
    }
}


/* ----------------------------------------------------------
   FOOTER — INFORMAÇÃO LEGAL
   ---------------------------------------------------------- */

.footer-col-legal a {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .footer-links {
        flex-wrap: wrap;
    }
}


/* ==========================================================
   FIM WEBSITE — PÁGINAS LEGAIS
   ========================================================== */


/* ==========================================================
   WEBSITE — CONSENTIMENTO DE COOKIES
   ========================================================== */

[hidden] {
    display: none !important;
}


/* ----------------------------------------------------------
   GOOGLE MAPS BLOQUEADO
   ---------------------------------------------------------- */

.map-consent-placeholder {
    position: absolute;
    inset: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 48px;

    text-align: center;

    background:
        linear-gradient(
            145deg,
            rgba(74, 85, 65, .96),
            rgba(52, 62, 47, .98)
        );

    color: var(--cream);
}

.map-consent-placeholder strong {
    margin-top: 14px;

    font-family:
        "Cormorant Garamond",
        serif;

    font-size: 2.2rem;

    font-weight: 400;
}

.map-consent-placeholder p {
    max-width: 420px;

    margin:
        16px
        auto
        24px;

    color:
        rgba(244, 239, 228, .78);

    font-size: .9rem;

    line-height: 1.7;
}

.map-consent-placeholder > a {
    margin-top: 16px;

    color:
        rgba(244, 239, 228, .7);

    font-size: .72rem;

    text-decoration: underline;

    text-underline-offset: 3px;
}

.map-consent-enable {
    border: 0;
    cursor: pointer;
}


/* ----------------------------------------------------------
   LINK DEFINIÇÕES NO FOOTER
   ---------------------------------------------------------- */

.footer-cookie-settings {
    display: block;

    margin: 0 0 10px;
    padding: 0;

    border: 0;
    background: transparent;

    color: var(--cream);

    font:
        inherit;

    font-size: .9rem;

    text-align: left;

    cursor: pointer;
}

.footer-cookie-settings:hover {
    color: var(--gold);
}


/* ----------------------------------------------------------
   BANNER
   ---------------------------------------------------------- */

.cookie-consent {
    position: fixed;

    z-index: 10000;

    left: 24px;
    right: 24px;
    bottom: 24px;
}

.cookie-consent-inner {
    width:
        min(
            1180px,
            100%
        );

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;

    padding:
        26px
        30px;

    background:
        #211b16;

    border:
        1px solid
        rgba(184, 146, 90, .45);

    box-shadow:
        0 24px 70px
        rgba(20, 16, 12, .35);
}

.cookie-consent-copy {
    max-width: 700px;
}

.cookie-consent-copy strong {
    display: block;

    margin:
        6px
        0
        8px;

    color: var(--cream);

    font-family:
        "Cormorant Garamond",
        serif;

    font-size: 1.55rem;

    font-weight: 500;
}

.cookie-consent-copy p {
    margin: 0;

    color:
        rgba(244, 239, 228, .75);

    font-size: .82rem;

    line-height: 1.6;
}

.cookie-consent-copy a {
    display: inline-block;

    margin-top: 8px;

    color: var(--gold);

    font-size: .72rem;

    text-decoration: underline;

    text-underline-offset: 3px;
}

.cookie-consent-actions {
    display: flex;
    align-items: center;

    gap: 10px;

    flex: 0 0 auto;
}


/* ----------------------------------------------------------
   BOTÕES
   ---------------------------------------------------------- */

.cookie-button {
    min-height: 42px;

    padding:
        0
        18px;

    border:
        1px solid
        rgba(184, 146, 90, .65);

    font-family:
        "Work Sans",
        sans-serif;

    font-size: .7rem;

    font-weight: 600;

    letter-spacing: .08em;

    text-transform: uppercase;

    cursor: pointer;
}

.cookie-button-primary {
    background:
        var(--gold);

    color:
        #fff;
}

.cookie-button-secondary {
    background:
        transparent;

    color:
        var(--cream);
}

.cookie-button:hover {
    filter:
        brightness(1.08);
}


/* ----------------------------------------------------------
   PAINEL DE PREFERÊNCIAS
   ---------------------------------------------------------- */

.cookie-preferences {
    position: fixed;

    z-index: 10010;

    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background:
        rgba(28, 22, 17, .72);

    backdrop-filter:
        blur(6px);
}

.cookie-preferences-card {
    position: relative;

    width:
        min(
            620px,
            100%
        );

    max-height:
        min(
            760px,
            calc(100vh - 48px)
        );

    overflow-y: auto;

    padding:
        42px;

    background:
        var(--cream);

    box-shadow:
        0 30px 100px
        rgba(20, 16, 12, .35);
}

.cookie-preferences-card h2 {
    margin:
        12px
        0
        12px;

    color:
        var(--walnut);

    font-family:
        "Cormorant Garamond",
        serif;

    font-size: 2.3rem;

    font-weight: 400;
}

.cookie-preferences-card > p {
    margin:
        0
        0
        30px;

    color: #645f52;

    font-size: .88rem;

    line-height: 1.7;
}

.cookie-preferences-close {
    position: absolute;

    top: 16px;
    right: 18px;

    width: 38px;
    height: 38px;

    border: 0;

    background: transparent;

    color: var(--walnut);

    font-size: 1.8rem;

    cursor: pointer;
}

.cookie-preference-row {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 28px;

    padding:
        22px
        0;

    border-top:
        1px solid
        rgba(42, 40, 31, .12);
}

.cookie-preference-row strong {
    display: block;

    margin-bottom: 5px;

    color: var(--walnut);

    font-size: .9rem;
}

.cookie-preference-row small {
    display: block;

    max-width: 410px;

    color: #756e60;

    font-size: .76rem;

    line-height: 1.55;
}

.cookie-preferences-actions {
    display: flex;
    justify-content: flex-end;

    gap: 10px;

    margin-top: 30px;
}

.cookie-preferences-card
.cookie-button-secondary {
    color: var(--walnut);
}


/* ----------------------------------------------------------
   SWITCH
   ---------------------------------------------------------- */

.cookie-switch {
    position: relative;

    flex:
        0
        0
        46px;

    width: 46px;
    height: 26px;

    cursor: pointer;
}

.cookie-switch input {
    position: absolute;

    opacity: 0;

    pointer-events: none;
}

.cookie-switch span {
    position: absolute;

    inset: 0;

    border-radius: 99px;

    background: #c9c3b8;

    transition: .2s ease;
}

.cookie-switch span::after {
    content: "";

    position: absolute;

    top: 4px;
    left: 4px;

    width: 18px;
    height: 18px;

    border-radius: 50%;

    background: #fff;

    transition: .2s ease;
}

.cookie-switch input:checked + span {
    background:
        var(--gold);
}

.cookie-switch input:checked + span::after {
    transform:
        translateX(20px);
}

.cookie-switch-disabled {
    opacity: .65;

    cursor: default;
}

body.cookie-panel-open {
    overflow: hidden;
}


/* ----------------------------------------------------------
   CONSENTIMENTO DA RESERVA
   ---------------------------------------------------------- */

.form-consent a {
    color:
        var(--gold);

    text-decoration:
        underline;

    text-underline-offset:
        2px;
}


/* ----------------------------------------------------------
   RESPONSIVE
   ---------------------------------------------------------- */

@media (max-width: 800px) {

    .cookie-consent {
        left: 12px;
        right: 12px;
        bottom: 12px;
    }

    .cookie-consent-inner {
        align-items: stretch;
        flex-direction: column;

        gap: 20px;

        padding:
            22px;
    }

    .cookie-consent-actions {
        display: grid;

        grid-template-columns:
            1fr
            1fr;
    }

    .cookie-consent-actions
    .cookie-button-primary {
        grid-column:
            1 / -1;
    }

    .cookie-button {
        width: 100%;
    }

    .cookie-preferences-card {
        padding:
            36px
            22px
            26px;
    }

    .cookie-preference-row {
        gap: 18px;
    }

    .cookie-preferences-actions {
        flex-direction: column;
    }

    .map-consent-placeholder {
        padding: 30px 22px;
    }

}


/* ==========================================================
   FIM WEBSITE — CONSENTIMENTO DE COOKIES
   ========================================================== */


/* ==========================================================
   PÁGINAS LEGAIS — COMPENSAÇÃO DO HEADER FIXO
   ========================================================== */

.legal-main {
    padding-top: 130px;
}

@media (max-width: 700px) {
    .legal-main {
        padding-top: 105px;
    }
}


/* ==========================================================
   FIM PÁGINAS LEGAIS — COMPENSAÇÃO DO HEADER FIXO
   ========================================================== */


/* ==========================================================
   PÁGINAS LEGAIS — ISOLAMENTO DO LAYOUT DA HOMEPAGE
   ========================================================== */

/*
 * As regras globais de <section> da homepage não devem
 * controlar as secções das páginas legais.
 */

body.legal-page .legal-main {
    display: block !important;

    min-height: 100vh !important;

    padding:
        130px
        24px
        96px
        !important;
}


body.legal-page .legal-shell {
    display: block !important;

    position: relative !important;

    width: min(860px, 100%) !important;

    margin:
        0
        auto
        !important;

    padding: 0 !important;
}


body.legal-page .legal-header {
    display: block !important;

    position: static !important;

    width: 100% !important;

    min-height: 0 !important;

    margin:
        0
        0
        64px
        !important;

    padding:
        0
        0
        46px
        !important;
}


body.legal-page .legal-section {
    display: block !important;

    position: static !important;

    width: 100% !important;

    min-height: 0 !important;

    margin:
        0
        0
        46px
        !important;

    padding: 0 !important;
}


body.legal-page .legal-section + .legal-section {
    margin-top: 0 !important;
}


@media (max-width: 700px) {

    body.legal-page .legal-main {
        padding:
            105px
            20px
            72px
            !important;
    }

    body.legal-page .legal-header {
        margin-bottom:
            46px
            !important;

        padding-bottom:
            34px
            !important;
    }

    body.legal-page .legal-section {
        margin-bottom:
            38px
            !important;
    }

}


/* ==========================================================
   FIM PÁGINAS LEGAIS — ISOLAMENTO DO LAYOUT
   ========================================================== */


/* ==========================================================
   TELEFONE — INFORMAÇÃO LEGAL
   ========================================================== */

.phone-legal-note {
    display: inline-block;

    margin-top: 4px;

    color: #8a826f;

    font-family:
        "Work Sans",
        sans-serif;

    font-size: .64rem;

    font-weight: 400;

    letter-spacing: .01em;

    line-height: 1.45;
}

.phone-legal-note-footer {
    display: block;

    max-width: 190px;

    margin:
        -4px
        0
        10px;

    color:
        rgba(244, 239, 228, .5);
}


/* ==========================================================
   FIM TELEFONE — INFORMAÇÃO LEGAL
   ========================================================== */


/* ==========================================================
   WEBSITE — PROVA SOCIAL / AVALIAÇÕES
   ========================================================== */

.reviews-section {
    padding:
        110px
        0;

    background:
        #f1ebdf;

    color:
        var(--walnut);
}


.reviews-wrap {
    display: block;
}


.reviews-heading {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    align-items: end;

    gap: 70px;

    margin-bottom: 64px;
}


.reviews-heading h2 {
    margin:
        14px
        0
        0;

    color:
        var(--walnut);

    font-family:
        "Cormorant Garamond",
        serif;

    font-size:
        clamp(
            2.6rem,
            5vw,
            4.5rem
        );

    font-weight: 400;

    line-height: .98;
}


.reviews-summary {
    display: flex;

    align-items: center;

    gap: 22px;

    padding:
        0
        0
        5px;
}


.reviews-score {
    color:
        var(--walnut);

    font-family:
        "Cormorant Garamond",
        serif;

    font-size:
        4.3rem;

    font-weight: 500;

    line-height: .8;
}


.reviews-rating {
    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 5px;
}


.reviews-rating > strong {
    color:
        var(--walnut);

    font-size:
        .88rem;
}


.reviews-rating > span {
    color:
        #756d5e;

    font-size:
        .72rem;

    line-height: 1.4;
}


.reviews-dots,
.review-card-rating {
    display: flex;

    gap: 4px;
}


.reviews-dots span,
.review-card-rating span {
    display: block;

    width: 13px;
    height: 13px;

    border-radius: 50%;

    background:
        #167a45;
}


.reviews-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 1px;

    background:
        rgba(74, 60, 47, .13);

    border:
        1px solid
        rgba(74, 60, 47, .13);
}


.review-card {
    display: flex;

    flex-direction: column;

    min-height: 340px;

    padding:
        38px
        34px;

    background:
        var(--cream);
}


.review-card-rating {
    margin-bottom: 27px;
}


.review-card-rating span {
    width: 10px;
    height: 10px;
}


.review-card h3 {
    min-height: 58px;

    margin:
        0
        0
        22px;

    color:
        var(--walnut);

    font-family:
        "Cormorant Garamond",
        serif;

    font-size:
        1.55rem;

    font-weight: 500;

    line-height: 1.12;
}


.review-card blockquote {
    margin: 0;

    color:
        #5f594e;

    font-family:
        "Cormorant Garamond",
        serif;

    font-size:
        1.18rem;

    font-style: italic;

    line-height: 1.55;
}


.review-card-footer {
    margin-top: auto;

    padding-top: 30px;

    background:
        transparent;

    color:
        inherit;
}


.review-card-footer strong,
.review-card-footer span {
    display: block;
}


.review-card-footer strong {
    color:
        var(--walnut);

    font-family:
        "Work Sans",
        sans-serif;

    font-size:
        .75rem;

    font-weight: 600;
}


.review-card-footer span {
    margin-top: 5px;

    color:
        #928978;

    font-size:
        .68rem;
}


.reviews-footer {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    margin-top: 34px;
}


.reviews-footer > span {
    color:
        #877e6d;

    font-size:
        .7rem;
}


@media (max-width: 900px) {

    .reviews-section {
        padding:
            80px
            0;
    }


    .reviews-heading {
        grid-template-columns:
            1fr;

        align-items: start;

        gap: 34px;

        margin-bottom: 46px;
    }


    .reviews-summary {
        justify-content:
            flex-start;
    }


    .reviews-grid {
        grid-template-columns:
            1fr;
    }


    .review-card {
        min-height: 0;
    }


    .review-card h3 {
        min-height: 0;
    }


    .reviews-footer {
        align-items:
            flex-start;

        flex-direction:
            column;
    }

}


@media (max-width: 520px) {

    .reviews-summary {
        align-items:
            flex-start;
    }


    .reviews-score {
        font-size:
            3.6rem;
    }


    .review-card {
        padding:
            30px
            24px;
    }

}


/* ==========================================================
   FIM WEBSITE — PROVA SOCIAL / AVALIAÇÕES
   ========================================================== */


/* Tripadvisor — link da prova social */
.reviews-footer > span a {
    color: var(--gold);

    text-decoration:
        underline;

    text-underline-offset:
        3px;

    transition:
        color .2s ease;
}

.reviews-footer > span a:hover {
    color:
        var(--walnut);
}


/* ==========================================================
   WEBSITE — REVIEWS POLISH V1
   ========================================================== */

#avaliacoes .reviews-heading {
    margin-bottom: 46px;
}

#avaliacoes .reviews-summary {
    align-self: center;
}

#avaliacoes .review-card {
    min-height: 330px;
}

#avaliacoes .review-card blockquote {
    color: #514b41;
}

#avaliacoes .reviews-footer {
    margin-top: 26px;
}

#avaliacoes .reviews-footer > span {
    color: #756d5e;
}


/* Tablet */
@media (max-width: 900px) {

    #avaliacoes .reviews-heading {
        margin-bottom: 38px;
    }

    #avaliacoes .reviews-summary {
        align-self: start;
    }

    #avaliacoes .reviews-footer {
        margin-top: 24px;
    }

}


/* Mobile */
@media (max-width: 520px) {

    #avaliacoes .reviews-heading {
        margin-bottom: 32px;
    }

}


/* ==========================================================
   FIM WEBSITE — REVIEWS POLISH V1
   ========================================================== */


/* ==========================================================
   WEBSITE — REVIEWS POLISH V1
   ========================================================== */

#avaliacoes .reviews-heading {
    margin-bottom: 46px;
}

#avaliacoes .reviews-summary {
    align-self: center;
}

#avaliacoes .review-card {
    min-height: 330px;
}

#avaliacoes .review-card blockquote {
    color: #514b41;
}

#avaliacoes .reviews-footer {
    margin-top: 26px;
}

#avaliacoes .reviews-footer > span {
    color: #756d5e;
}


/* Tablet */
@media (max-width: 900px) {

    #avaliacoes .reviews-heading {
        margin-bottom: 38px;
    }

    #avaliacoes .reviews-summary {
        align-self: start;
    }

    #avaliacoes .reviews-footer {
        margin-top: 24px;
    }

}


/* Mobile */
@media (max-width: 520px) {

    #avaliacoes .reviews-heading {
        margin-bottom: 32px;
    }

}


/* ==========================================================
   FIM WEBSITE — REVIEWS POLISH V1
   ========================================================== */
