/* =============================================================
   PALMEIRAS — Design System
   Dark luxury editorial · Restaurant + Reservas
   ============================================================= */

/* ---------------------------- TOKENS ---------------------------- */
:root{
  --bg:#090908;
  --surface:#141311;
  --surface-2:#1C1A17;
  --text:#F1E9DD;
  --text-secondary:#B9AEA0;
  --text-muted:#8A8175;
  --accent:#C7A56A;
  --border:#514A40;
  --border-ctl:#6E6559;   /* borda de controles interativos — WCAG 1.4.11 (3:1) */
  --white:#FAF8F3;

  --space-1:4px;  --space-2:8px;  --space-3:12px; --space-4:16px;
  --space-5:24px; --space-6:32px; --space-7:48px; --space-8:64px;
  --space-9:96px; --space-10:128px;

  --r-1:4px; --r-2:8px; --r-3:14px; --r-4:20px; --r-pill:999px;

  --container:1440px;
  --pad:48px;
  --header-h:84px;

  --serif:"Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
  --dur-1:.3s;
  --dur-2:.5s;
  --dur-3:.8s;
}

/* ---------------------------- RESET ---------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:var(--header-h)}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:16px;
  font-weight:300;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.no-scroll{overflow:hidden}
img{max-width:100%; display:block; height:auto}
svg{width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}
button,input,select,textarea{font:inherit; color:inherit}
button{background:none; border:0; cursor:pointer}
a{color:inherit; text-decoration:none}
ul,ol{list-style:none; margin:0; padding:0}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:2px}

[hidden]{display:none !important}

.container{width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--pad)}
.section{padding-block:var(--space-10)}

.skip-link{
  position:fixed; top:-100px; left:16px; z-index:2000;
  background:var(--white); color:#141311;
  padding:12px 20px; border-radius:var(--r-pill);
  font-size:13px; font-weight:500; transition:top var(--dur-1) var(--ease);
}
.skip-link:focus{top:16px}

/* --------------------------- TYPOGRAPHY --------------------------- */
.eyebrow{
  font-size:11px; font-weight:500; letter-spacing:.24em; text-transform:uppercase;
  color:var(--text-secondary); display:flex; align-items:center; gap:14px;
}
.eyebrow::before{content:""; width:32px; height:1px; background:var(--border); flex:none}
.eyebrow-gold{color:var(--accent)}
.eyebrow-gold::before{background:var(--accent); opacity:.55}

.section-title{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.4rem, 5vw, 4.25rem);
  line-height:1.02;
  letter-spacing:-.015em;
  color:var(--text);
  margin-top:var(--space-5);
}
.section-lead{
  color:var(--text-secondary);
  font-size:clamp(.95rem,1.1vw,1.0625rem);
  max-width:52ch; margin-top:var(--space-5);
}
.section-head{margin-bottom:var(--space-8); max-width:820px}
.section-head-center{margin-inline:auto; text-align:center}
.section-head-center .eyebrow{justify-content:center}
.section-head-center .section-lead{margin-inline:auto}

/* ---------------------------- BUTTONS ---------------------------- */
.btn{
  --btn-bg:transparent;
  --btn-fg:var(--text);
  --btn-bd:transparent;
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px;
  border:1px solid var(--btn-bd);
  background:var(--btn-bg);
  color:var(--btn-fg);
  border-radius:var(--r-pill);
  font-size:13px; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  line-height:1; text-align:center;
  cursor:pointer;
  transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease),
             border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease),
             opacity var(--dur-1) var(--ease);
}
.btn .btn-icon{width:16px; height:16px; flex:none; transition:transform var(--dur-1) var(--ease)}
.btn .btn-icon-flip{transform:rotate(180deg)}

.btn-primary{--btn-bg:var(--white); --btn-fg:#141311; --btn-bd:var(--white)}
.btn-primary:hover{--btn-bg:var(--accent); --btn-bd:var(--accent); --btn-fg:#141311; transform:translateY(-2px)}
.btn-primary:active{transform:translateY(0); --btn-bg:#b8975d; --btn-bd:#b8975d}

.btn-ghost{--btn-bg:transparent; --btn-fg:var(--text); --btn-bd:var(--border-ctl)}
.btn-ghost:hover{--btn-bd:var(--accent); --btn-fg:var(--accent)}
.btn-ghost:active{--btn-bg:rgba(199,165,106,.08)}

.btn-sm{padding:11px 20px; font-size:11.5px}
.btn-lg{padding:18px 40px; font-size:13.5px}
.btn-block{width:100%}

.btn[disabled],.btn.is-disabled{opacity:.45; pointer-events:none; cursor:not-allowed}
.btn.is-loading{pointer-events:none}
.btn .btn-spinner{
  position:absolute; inset:0; margin:auto; width:18px; height:18px;
  border:2px solid currentColor; border-top-color:transparent; border-radius:50%;
  opacity:0; animation:spin .7s linear infinite;
}
.btn.is-loading .btn-spinner{opacity:1}
.btn.is-loading .btn-label,.btn.is-loading .btn-icon{opacity:0}
@keyframes spin{to{transform:rotate(360deg)}}

.btn-danger{--btn-bd:#a8635b; --btn-fg:#d98d83}
.btn-danger:hover{--btn-bd:#c4564a; --btn-fg:#f0b3ab; --btn-bg:rgba(196,86,74,.1)}

.icon-btn{
  display:inline-grid; place-items:center;
  width:42px; height:42px; border-radius:50%;
  border:1px solid var(--border-ctl); color:var(--text);
  transition:border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), background var(--dur-1) var(--ease);
}
.icon-btn svg{width:18px; height:18px}
.icon-btn:hover{border-color:var(--accent); color:var(--accent)}

/* ---------------------------- HEADER ---------------------------- */
.site-header{
  position:fixed; inset:0 0 auto; z-index:900;
  height:var(--header-h);
  display:flex; align-items:center;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), height var(--dur-2) var(--ease);
}
.site-header.is-scrolled{
  background:rgba(9,9,8,.86);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom-color:rgba(81,74,64,.45);
  height:70px;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:var(--space-5)}

.brand{display:inline-flex; align-items:center}
.brand-mark{
  font-family:var(--serif); font-size:26px; font-weight:500;
  letter-spacing:.34em; text-transform:uppercase; color:var(--white);
  padding-left:.34em; /* compensa letter-spacing */
}
.brand-mark-sm{font-size:19px; letter-spacing:.3em}

.nav-desktop ul{display:flex; align-items:center; gap:6px}
.nav-desktop a{
  position:relative; display:block; padding:10px 14px;
  font-size:12.5px; font-weight:400; letter-spacing:.13em; text-transform:uppercase;
  color:var(--text-secondary);
  transition:color var(--dur-1) var(--ease);
}
.nav-desktop a::after{
  content:""; position:absolute; left:14px; right:14px; bottom:4px; height:1px;
  background:var(--accent); transform:scaleX(0); transform-origin:right;
  transition:transform var(--dur-2) var(--ease);
}
.nav-desktop a:hover,.nav-desktop a.is-current{color:var(--text)}
.nav-desktop a:hover::after,.nav-desktop a.is-current::after{transform:scaleX(1); transform-origin:left}

.header-actions{display:flex; align-items:center; gap:var(--space-3)}

.hamburger{
  display:none; width:44px; height:44px;
  border:1px solid var(--border-ctl); border-radius:50%;
  place-items:center; align-content:center; gap:5px;
  transition:border-color var(--dur-1) var(--ease);
}
.hamburger span{display:block; width:17px; height:1.5px; background:var(--text); transition:transform var(--dur-1) var(--ease), opacity var(--dur-1) var(--ease)}
.hamburger:hover{border-color:var(--accent)}

/* --------------------- MENU FULLSCREEN MOBILE --------------------- */
.mobile-menu{
  position:fixed; inset:0; z-index:1000;
  background:var(--bg);
  display:flex; flex-direction:column;
  padding:24px 20px calc(24px + env(safe-area-inset-bottom));
  opacity:0; visibility:hidden;
  transition:opacity var(--dur-2) var(--ease), visibility var(--dur-2);
}
.mobile-menu.is-open{opacity:1; visibility:visible}
.mobile-menu-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-7)}
.mobile-menu-list li{overflow:hidden; border-bottom:1px solid rgba(81,74,64,.35)}
.mobile-menu-list a{
  display:block; padding:18px 4px;
  font-family:var(--serif); font-size:clamp(2rem,9vw,2.75rem); line-height:1.1; color:var(--text);
  transform:translateY(110%); opacity:0;
  transition:transform .55s var(--ease), opacity .55s var(--ease), color var(--dur-1) var(--ease);
  transition-delay:calc(var(--i) * 55ms);
}
.mobile-menu.is-open .mobile-menu-list a{transform:translateY(0); opacity:1}
.mobile-menu-list a:hover{color:var(--accent)}
.mobile-menu-foot{margin-top:auto; padding-top:var(--space-6); transform:translateY(20px); opacity:0; transition:all .5s var(--ease) .4s}
.mobile-menu.is-open .mobile-menu-foot{transform:none; opacity:1}
.mobile-menu-meta{margin-top:var(--space-4); text-align:center; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted)}

/* ------------------------------ HERO ------------------------------ */
.hero{
  position:relative; min-height:100vh; min-height:100svh;
  display:flex; align-items:flex-end;
  padding-block:calc(var(--header-h) + var(--space-8)) var(--space-9);
  overflow:hidden;
}
.hero-media{position:absolute; inset:0; z-index:-2}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:center 45%; filter:saturate(.85) contrast(1.05)}
.hero-overlay{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(9,9,8,.94) 0%, rgba(9,9,8,.7) 32%, rgba(9,9,8,.86) 72%, rgba(9,9,8,.98) 100%),
    linear-gradient(90deg, rgba(9,9,8,.92) 0%, rgba(9,9,8,.42) 65%, rgba(9,9,8,.66) 100%);
}
.hero-inner{position:relative; z-index:1; max-width:var(--container)}

/* Legibilidade do texto sobre a foto (complementa o véu acima) */
.hero .eyebrow,.hero-title,.hero-lead,.hero-meta{
  text-shadow:0 1px 2px rgba(0,0,0,.65), 0 10px 34px rgba(0,0,0,.55);
}

.hero-title{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(2.9rem, 7.4vw, 6.5rem);
  line-height:1.0; letter-spacing:-.02em;
  margin-top:var(--space-5);
  color:var(--white);
}
.hero-title em{font-style:italic; color:var(--accent); font-weight:300}

.hero-lead{
  margin-top:var(--space-5); max-width:46ch;
  font-size:clamp(1rem,1.35vw,1.1875rem); color:var(--text-secondary);
}
.hero-actions{display:flex; flex-wrap:wrap; gap:var(--space-4); margin-top:var(--space-7)}

.hero-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-5);
  margin-top:var(--space-8); padding-top:var(--space-5);
  border-top:1px solid rgba(81,74,64,.5);
}
.hero-meta div{display:flex; flex-direction:column; gap:5px}
.hero-meta dt{font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent)}
.hero-meta dd{font-size:13.5px; color:var(--text-secondary)}
.hero-meta-dot{width:5px; height:5px; border-radius:50%; background:var(--accent); opacity:.6; flex:none}

.hero-scroll{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  width:26px; height:44px; border:1px solid rgba(199,165,106,.5); border-radius:var(--r-pill);
  display:grid; place-items:start center; padding-top:8px;
}
.hero-scroll span{width:3px; height:8px; border-radius:2px; background:var(--accent); animation:scrollDot 1.9s var(--ease) infinite}
@keyframes scrollDot{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(16px);opacity:0}}

/* ------------------------- RESERVA RÁPIDA ------------------------- */
.quick{position:relative; z-index:5; margin-top:calc(var(--space-9) * -1); padding-bottom:var(--space-10)}
.quick-card{
  background:var(--surface);
  border:1px solid rgba(81,74,64,.55);
  border-radius:var(--r-3);
  padding:var(--space-7);
  box-shadow:0 30px 80px -40px rgba(0,0,0,.9);
}
.quick-head{margin-bottom:var(--space-6); max-width:640px}
.quick-title{font-family:var(--serif); font-weight:400; font-size:clamp(1.9rem,3vw,2.6rem); line-height:1.1; margin-top:var(--space-4)}
.quick-sub{color:var(--text-muted); font-size:14.5px; margin-top:var(--space-3)}

.quick-form{display:grid; gap:var(--space-4); grid-template-columns:repeat(4,1fr)}
.quick-form .field-action{align-self:end}

.field{display:flex; flex-direction:column; gap:8px; min-width:0}
.field label{
  font-size:10.5px; font-weight:500; letter-spacing:.19em; text-transform:uppercase;
  color:var(--text-muted);
}
.field .opt{text-transform:none; letter-spacing:.02em; color:var(--text-muted); font-weight:300}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4)}

.control{position:relative; display:flex; align-items:center}
.control-icon{
  position:absolute; left:14px; width:16px; height:16px;
  color:var(--text-muted); pointer-events:none; transition:color var(--dur-1) var(--ease);
}
.control input,.control select,.control textarea{
  width:100%;
  background:var(--surface-2);
  border:1px solid var(--border-ctl);
  border-radius:var(--r-2);
  color:var(--text);
  padding:14px 14px 14px 42px;
  font-size:14.5px; font-weight:300;
  transition:border-color var(--dur-1) var(--ease), background var(--dur-1) var(--ease);
  appearance:none; -webkit-appearance:none;
  min-height:50px;
}
.control textarea{padding-left:14px; resize:vertical; line-height:1.6}
.field-row .control input,.step .control input{padding-left:14px}
.control input::placeholder,.control textarea::placeholder{color:var(--text-muted)}
.control select{
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2381786D' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:17px;
  padding-right:40px; cursor:pointer;
}
.control select:disabled{opacity:.5; cursor:not-allowed}
.control input:focus,.control select:focus,.control textarea:focus{
  outline:none; border-color:var(--accent); background:#1F1C18;
}
.control:focus-within .control-icon{color:var(--accent)}
.control input[type="date"]::-webkit-calendar-picker-indicator{
  filter:invert(.72) sepia(.35) saturate(400%) hue-rotate(1deg); cursor:pointer; opacity:.8;
}
.field-error{
  display:flex; align-items:center; gap:6px;
  font-size:12.5px; color:#E0A199;
}
.field-error::before{content:"!"; display:grid; place-items:center; width:14px; height:14px; border:1px solid currentColor; border-radius:50%; font-size:9px; font-weight:600; flex:none}
.field.has-error .control input,.field.has-error .control select{border-color:#c4564a}

.quick-note{
  display:flex; align-items:center; gap:10px;
  margin-top:var(--space-5); padding-top:var(--space-5);
  border-top:1px solid rgba(81,74,64,.4);
  font-size:13px; color:var(--text-muted);
}
.quick-note svg{width:16px; height:16px; color:var(--accent); flex:none}

/* ------------------------------ MENU ------------------------------ */
.menu-tabs{
  display:flex; gap:6px; margin-bottom:var(--space-7);
  border-bottom:1px solid rgba(81,74,64,.45);
  overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none;
}
.menu-tabs::-webkit-scrollbar{display:none}
.menu-tab{
  position:relative; white-space:nowrap;
  padding:14px 18px;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-muted);
  border-bottom:1px solid transparent; margin-bottom:-1px;
  transition:color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
}
.menu-tab:hover{color:var(--text-secondary)}
.menu-tab.is-active{color:var(--accent); border-bottom-color:var(--accent)}

.menu-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5)}
.menu-card{
  background:var(--surface);
  border:1px solid rgba(81,74,64,.42);
  border-radius:var(--r-3);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:border-color var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);
}
.menu-card:hover{border-color:rgba(199,165,106,.55); transform:translateY(-4px)}
.menu-card.is-hidden{display:none}
.menu-card-media{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--surface-2)}
.menu-card-media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--ease), filter .7s var(--ease);
  filter:saturate(.9) brightness(.95);
}
.menu-card:hover .menu-card-media img{transform:scale(1.045); filter:saturate(1) brightness(1)}
.menu-card-body{padding:var(--space-5); display:flex; flex-direction:column; gap:10px; flex:1}
.menu-card-top{display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-4)}
.menu-card h3{font-family:var(--serif); font-weight:500; font-size:1.5rem; line-height:1.2; color:var(--text)}
.menu-card p{font-size:14px; color:var(--text-secondary); line-height:1.6}
.menu-foot{margin-top:var(--space-6); font-size:12.5px; letter-spacing:.06em; color:var(--text-muted)}

/* ------------------------------ SOBRE ------------------------------ */
.about{background:linear-gradient(180deg, var(--bg) 0%, #0C0B0A 100%)}
.about-grid{display:grid; grid-template-columns:0.92fr 1.08fr; gap:var(--space-9); align-items:center}
.about-media{position:relative}
.about-media img{
  width:100%; aspect-ratio:4/5; object-fit:cover;
  border:1px solid rgba(81,74,64,.5); border-radius:var(--r-3);
  filter:saturate(.88);
}
.about-badge{
  position:absolute; right:-18px; bottom:32px;
  background:var(--surface); border:1px solid rgba(199,165,106,.5);
  border-radius:var(--r-2); padding:16px 22px;
  display:flex; flex-direction:column; gap:2px; text-align:center;
}
.about-badge-num{font-family:var(--serif); font-size:2.4rem; line-height:1; color:var(--accent)}
.about-badge-txt{font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted)}

.about-text{margin-top:var(--space-5); color:var(--text-secondary); font-size:16px; max-width:56ch}
.about-list{
  margin-top:var(--space-7);
  display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5);
  border-top:1px solid rgba(81,74,64,.45); padding-top:var(--space-6);
}
.about-list li{display:flex; gap:14px; align-items:flex-start}
.about-list-num{
  font-family:var(--serif); font-size:13px; color:var(--accent);
  border:1px solid rgba(199,165,106,.4); border-radius:50%;
  width:34px; height:34px; display:grid; place-items:center; flex:none;
}
.about-list h3{font-family:var(--sans); font-size:13px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--text)}
.about-list p{font-size:13.5px; color:var(--text-muted); margin-top:4px; line-height:1.55}

/* --------------------------- EXPERIÊNCIA --------------------------- */
.exp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5)}
.exp-card{
  position:relative;
  background:var(--surface); border:1px solid rgba(81,74,64,.42);
  border-radius:var(--r-3); padding:var(--space-7) var(--space-6) var(--space-6);
  overflow:hidden;
  transition:border-color var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);
}
.exp-card:hover{border-color:rgba(199,165,106,.5); transform:translateY(-4px)}
.exp-num{
  font-family:var(--serif); font-size:3.6rem; line-height:1; color:transparent;
  -webkit-text-stroke:1px var(--accent); opacity:.65;
  display:block;
}
.exp-card h3{font-family:var(--serif); font-weight:500; font-size:2rem; margin-top:var(--space-5); color:var(--text)}
.exp-card p{margin-top:var(--space-3); color:var(--text-secondary); font-size:15px}
.exp-line{
  position:absolute; left:0; bottom:0; height:2px; width:100%;
  background:var(--accent); transform:scaleX(0); transform-origin:left;
  transition:transform .6s var(--ease);
}
.exp-card:hover .exp-line{transform:scaleX(1)}

/* TestimonialCard */
.quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); margin-top:var(--space-7)}
.quote-card{
  background:transparent; border:1px solid rgba(81,74,64,.42);
  border-radius:var(--r-3); padding:var(--space-6);
  display:flex; flex-direction:column; gap:var(--space-5);
  transition:border-color var(--dur-2) var(--ease);
}
.quote-card:hover{border-color:rgba(199,165,106,.45)}
.quote-card blockquote{
  font-family:var(--serif); font-size:1.32rem; line-height:1.45; font-style:italic; color:var(--text);
}
.quote-card figcaption{
  display:flex; align-items:center; gap:12px;
  font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-secondary);
  margin-top:auto;
}
.quote-avatar{
  width:36px; height:36px; border-radius:50%;
  background:var(--surface-2); border:1px solid var(--border);
  display:grid; place-items:center; font-size:11px; letter-spacing:.06em; color:var(--accent);
}
.quote-meta{color:var(--text-muted); font-size:10.5px}
.quote-meta::before{content:"· "; }

/* ----------------------------- GALERIA ----------------------------- */
.gallery-grid{display:grid; grid-template-columns:repeat(12,1fr); gap:var(--space-4)}
.gallery-card{
  position:relative; overflow:hidden; display:block;
  border-radius:var(--r-3); border:1px solid var(--border-ctl);
  background:var(--surface-2);
  min-height:240px;
  padding:0;
}
.gallery-card img{
  width:100%; height:100%; object-fit:cover; position:absolute; inset:0;
  transition:transform .6s var(--ease), filter .6s var(--ease);
  filter:saturate(.85) brightness(.88);
}
.gallery-card:hover img,.gallery-card:focus-visible img{transform:scale(1.03); filter:saturate(1) brightness(1)}
.gallery-cap{
  position:absolute; left:16px; bottom:16px; z-index:2;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--white);
  background:rgba(9,9,8,.62); border:1px solid rgba(199,165,106,.45);
  padding:7px 14px; border-radius:var(--r-pill);
  transform:translateY(6px); opacity:.85;
  transition:transform var(--dur-2) var(--ease), opacity var(--dur-2) var(--ease);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.gallery-card:hover .gallery-cap,.gallery-card:focus-visible .gallery-cap{transform:none; opacity:1}
.gallery-card::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(9,9,8,0) 45%, rgba(9,9,8,.75) 100%);
  opacity:.75; transition:opacity var(--dur-2) var(--ease);
}
.gallery-card:hover::after{opacity:.95}

.span-4{grid-column:span 4}
.span-6{grid-column:span 6}
.span-8{grid-column:span 8}
.span-12{grid-column:span 12}
.gallery-card.tall{min-height:520px}
.gallery-card:not(.tall){min-height:300px}
.span-12{min-height:380px}

/* ---------------------------- CTA BANNER ---------------------------- */
.cta-banner{position:relative; overflow:hidden; padding-block:var(--space-10); isolation:isolate}
.cta-media{position:absolute; inset:0; z-index:-1}
.cta-media img{width:100%; height:100%; object-fit:cover; object-position:center 40%; filter:saturate(.7) brightness(.75)}
.cta-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(9,9,8,.95), rgba(9,9,8,.72) 45%, rgba(9,9,8,.96));
}
.cta-inner{text-align:center; display:flex; flex-direction:column; align-items:center}
.cta-title{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(2.5rem,6vw,5rem); line-height:1.03; letter-spacing:-.02em;
  margin-top:var(--space-5); color:var(--white);
}
.cta-text{margin-top:var(--space-5); color:var(--text-secondary); font-size:clamp(1rem,1.3vw,1.125rem); max-width:44ch}
.cta-inner .btn{margin-top:var(--space-7)}

/* --------------------------- LOCALIZAÇÃO --------------------------- */
.loc-grid{display:grid; grid-template-columns:1fr 1.05fr; gap:var(--space-8); align-items:start}
.loc-info{display:flex; flex-direction:column; gap:var(--space-6)}
.loc-item{display:flex; gap:18px; align-items:flex-start}
.loc-item > svg{
  width:20px; height:20px; color:var(--accent); flex:none; margin-top:4px;
}
.loc-item h3{font-size:11px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); margin-bottom:6px}
.loc-item p{font-size:15.5px; color:var(--text-secondary); line-height:1.6}
.loc-item a{border-bottom:1px solid transparent; transition:border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease)}
.loc-item a:hover{color:var(--accent); border-bottom-color:var(--accent)}

.hours{margin-top:4px; display:flex; flex-direction:column; gap:0; max-width:420px}
.hours li{
  display:flex; justify-content:space-between; gap:20px;
  padding:11px 0; font-size:14.5px; color:var(--text-secondary);
  border-bottom:1px solid rgba(81,74,64,.32);
}
.hours li span:last-child{color:var(--text); font-variant-numeric:tabular-nums}
.hours .hours-closed{color:var(--text-muted); font-style:italic}

.loc-map{
  position:relative; border:1px solid rgba(81,74,64,.5); border-radius:var(--r-3);
  overflow:hidden; background:var(--surface); min-height:440px;
}
.loc-map img{width:100%; height:100%; min-height:440px; object-fit:cover; filter:saturate(.8) brightness(.9)}
.loc-map-btn{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  display:inline-flex; align-items:center; gap:9px;
  background:var(--white); color:#141311;
  padding:14px 26px; border-radius:var(--r-pill);
  font-size:12px; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  transition:background var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
  white-space:nowrap;
}
.loc-map-btn svg{width:15px; height:15px}
.loc-map-btn:hover{background:var(--accent); transform:translateX(-50%) translateY(-2px)}

/* ----------------------------- FOOTER ----------------------------- */
.site-footer{background:#050504; border-top:1px solid rgba(81,74,64,.4); padding-block:var(--space-9) var(--space-6)}
.footer-top{
  display:grid; grid-template-columns:1.5fr 1fr 1.2fr 1.1fr; gap:var(--space-7);
  padding-bottom:var(--space-8); border-bottom:1px solid rgba(81,74,64,.35);
}
.footer-brand .brand-mark{padding-left:0}
.footer-tagline{
  font-family:var(--serif); font-style:italic; font-size:1.25rem;
  color:var(--text-secondary); margin-top:var(--space-4);
}
.footer-brand .btn{margin-top:var(--space-6)}
.footer-col h2{
  font-size:11px; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--accent); margin-bottom:var(--space-5);
}
.footer-col ul{display:flex; flex-direction:column; gap:11px}
.footer-col li{font-size:14.5px; color:var(--text-secondary); line-height:1.6}
.footer-col a{transition:color var(--dur-1) var(--ease)}
.footer-col a:hover{color:var(--accent)}
.footer-hours li{display:flex; justify-content:space-between; gap:16px; padding-bottom:9px; border-bottom:1px solid rgba(81,74,64,.28)}
.footer-social{display:flex; gap:10px; margin-top:var(--space-5)}
.footer-social a{
  width:40px; height:40px; border:1px solid var(--border-ctl); border-radius:50%;
  display:grid; place-items:center; color:var(--text-secondary);
  transition:border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.footer-social a:hover{border-color:var(--accent); color:var(--accent)}
.footer-social svg{width:17px; height:17px}
.footer-social svg .fill{fill:currentColor; stroke:none}
.footer-bottom{
  display:flex; justify-content:space-between; gap:var(--space-5); flex-wrap:wrap;
  padding-top:var(--space-5);
  font-size:12.5px; color:var(--text-muted);
}

/* --------------------------- CTA MOBILE --------------------------- */
.mobile-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:850;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(9,9,8,.94);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-top:1px solid rgba(81,74,64,.5);
  transform:translateY(120%);
  transition:transform .4s var(--ease);
  display:none;
}
.mobile-cta.is-visible{transform:translateY(0)}

/* ---------------------------- LIGHTBOX ---------------------------- */
.lightbox{
  position:fixed; inset:0; z-index:1100;
  background:rgba(5,5,4,.96);
  display:grid; grid-template-columns:auto 1fr auto; align-items:center;
  padding:24px;
  opacity:0; visibility:hidden;
  transition:opacity var(--dur-2) var(--ease), visibility var(--dur-2);
}
.lightbox.is-open{opacity:1; visibility:visible}
.lightbox figure{max-width:min(1100px,100%); margin-inline:auto; text-align:center}
.lightbox img{
  max-height:78vh; width:auto; margin-inline:auto;
  border:1px solid rgba(81,74,64,.5); border-radius:var(--r-2);
}
.lightbox figcaption{
  margin-top:var(--space-4); font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--text-secondary);
}
.lightbox-close{position:absolute; top:20px; right:20px; z-index:2}
.lightbox-nav{justify-self:center}
.lightbox-prev,.lightbox-next{width:50px; height:50px}
.lightbox-nav svg{width:22px; height:22px}

/* ------------------------------ MODAL ------------------------------ */
.modal{position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:24px}
.modal-backdrop{
  position:absolute; inset:0;
  background:rgba(5,5,4,.88);
  -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px);
  opacity:0; transition:opacity var(--dur-2) var(--ease);
}
.modal.is-open .modal-backdrop{opacity:1}
.modal:not(.is-open) .modal-panel,.modal:not(.is-open) .modal-backdrop{pointer-events:none}

.modal-panel{
  position:relative; z-index:1;
  width:100%; max-width:940px; max-height:calc(100vh - 48px);
  background:var(--surface);
  border:1px solid rgba(81,74,64,.6);
  border-radius:var(--r-3);
  display:flex; flex-direction:column;
  overflow:hidden;
  transform:translateY(26px) scale(.985); opacity:0;
  transition:transform .45s var(--ease), opacity .45s var(--ease);
}
.modal.is-open .modal-panel{transform:none; opacity:1}

.modal-head{
  display:flex; align-items:center; gap:var(--space-5);
  padding:18px var(--space-6);
  border-bottom:1px solid rgba(81,74,64,.45);
  background:var(--surface);
}
.modal-progress{flex:1; min-width:0}
.modal-step-label{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); margin-bottom:8px}
.modal-step-label strong{color:var(--accent); font-weight:500}
.progress-track{height:2px; background:rgba(81,74,64,.5); border-radius:2px; overflow:hidden}
.progress-fill{display:block; height:100%; width:14.28%; background:var(--accent); transition:width .5s var(--ease)}

.modal-body{
  padding:var(--space-7) var(--space-6);
  overflow-y:auto; overscroll-behavior:contain; flex:1;
  scrollbar-width:thin; scrollbar-color:var(--border) transparent;
}
.modal-body::-webkit-scrollbar{width:8px}
.modal-body::-webkit-scrollbar-thumb{background:var(--border); border-radius:8px}
.modal-title{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.9rem,3.4vw,2.7rem); line-height:1.06; margin-bottom:var(--space-6);
}

.step{animation:stepIn .45s var(--ease) both}
@keyframes stepIn{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}
.step-title{font-family:var(--serif); font-weight:400; font-size:clamp(1.6rem,2.6vw,2.15rem); line-height:1.15; color:var(--white)}
.step-sub{color:var(--text-secondary); font-size:14.5px; margin-top:8px; margin-bottom:var(--space-6)}
.step .field,.step .field-row{margin-bottom:var(--space-4)}

.modal-foot{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-4);
  padding:16px var(--space-6);
  border-top:1px solid rgba(81,74,64,.45);
  background:var(--surface);
}
.modal-hint{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted)}
#btnNext{min-width:190px}
#btnBack{min-width:140px}

/* --------------------------- DATEPICKER --------------------------- */
.datepicker{
  background:var(--surface-2); border:1px solid rgba(81,74,64,.5);
  border-radius:var(--r-3); padding:var(--space-5); max-width:460px;
}
.dp-head{display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); margin-bottom:var(--space-4)}
.dp-month{
  font-family:var(--serif); font-size:1.4rem; color:var(--text);
  text-transform:capitalize; text-align:center; flex:1;
}
.dp-nav{width:38px; height:38px}
.dp-nav[disabled]{opacity:.3; pointer-events:none}
.dp-weekdays{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:6px}
.dp-weekdays span{text-align:center; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted)}
.dp-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px}
.dp-cell{aspect-ratio:1; display:grid; place-items:center}
.dp-day{
  width:100%; height:100%; border-radius:var(--r-2);
  display:grid; place-items:center; position:relative;
  font-size:14px; color:var(--text-secondary);
  border:1px solid transparent;
  transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
}
.dp-day:hover:not(:disabled){background:rgba(199,165,106,.14); color:var(--text); border-color:rgba(199,165,106,.5)}
.dp-day.is-today::after{
  content:""; position:absolute; bottom:6px; width:4px; height:4px; border-radius:50%; background:var(--accent);
}
.dp-day.is-selected{background:var(--white); color:#141311; border-color:var(--white); font-weight:500}
.dp-day.is-selected.is-today::after{background:#141311}
.dp-day:disabled{color:var(--border-ctl); cursor:not-allowed; text-decoration:line-through; text-decoration-color:rgba(129,120,109,.6)}
.dp-day.is-empty{visibility:hidden}
.dp-legend{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin-top:var(--space-4); font-size:11.5px; color:var(--text-muted);
}
.dp-legend .dot{width:8px; height:8px; border-radius:50%; display:inline-block}
.dot-off{background:#4b4640; margin-left:12px}
.dot-on{background:var(--accent); margin-left:12px}
#dpError{margin-top:12px}

/* ---------------------------- TIME SLOTS ---------------------------- */
.slots{display:grid; grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); gap:var(--space-3)}
.slot{
  position:relative;
  display:flex; align-items:center; gap:12px;
  padding:16px 18px;
  background:var(--surface-2);
  border:1px solid var(--border-ctl);
  border-radius:var(--r-2);
  text-align:left;
  transition:border-color var(--dur-1) var(--ease), background var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
}
.slot:hover:not(:disabled){border-color:rgba(199,165,106,.65); transform:translateY(-2px)}
.slot-time{
  font-family:var(--serif); font-size:1.5rem; line-height:1; color:var(--text);
  font-variant-numeric:tabular-nums;
}
.slot-meta{display:flex; align-items:center; gap:6px; margin-top:6px}
.slot-dot{width:7px; height:7px; border-radius:50%; flex:none}
.slot-state{font-size:10.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--text-muted)}

.slot[data-state="available"] .slot-dot{background:var(--accent)}
.slot[data-state="available"] .slot-state{color:var(--accent)}
.slot[data-state="limited"] .slot-dot{background:transparent; border:1.5px solid var(--accent)}
.slot[data-state="limited"] .slot-state{color:var(--text-secondary)}
.slot[data-state="unavailable"]{opacity:.5; cursor:not-allowed; background:transparent}
.slot[data-state="unavailable"] .slot-dot{background:#4b4640}
.slot[data-state="unavailable"] .slot-time{color:var(--text-muted); text-decoration:line-through}
.slot.is-selected{border-color:var(--accent); background:rgba(199,165,106,.12)}
.slot.is-selected::after{
  content:"✓"; position:absolute; top:8px; right:12px;
  font-size:12px; color:var(--accent);
}
.slot:focus-visible{outline:2px solid var(--accent); outline-offset:2px}

.slots-empty{
  border:1px dashed rgba(196,86,74,.5);
  background:rgba(196,86,74,.06);
  border-radius:var(--r-3);
  padding:var(--space-6);
  text-align:center;
}
.slots-empty svg{width:28px; height:28px; color:#d98d83; margin-inline:auto}
.slots-empty-title{font-family:var(--serif); font-size:1.35rem; color:var(--text); margin-top:14px}
.slots-empty-text{font-size:14px; color:var(--text-secondary); margin-top:8px}
.slots-empty-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:var(--space-5)}
.slot.is-near{animation:nearPulse 1.4s var(--ease) 2}
@keyframes nearPulse{0%,100%{box-shadow:0 0 0 0 rgba(199,165,106,0)}50%{box-shadow:0 0 0 4px rgba(199,165,106,.35)}}

.slot-legend{display:flex; gap:18px; flex-wrap:wrap; margin-top:var(--space-5); font-size:12px; color:var(--text-muted)}
.slot-legend span{display:flex; align-items:center; gap:7px}

/* --------------------------- GUEST SELECTOR --------------------------- */
.guests{
  display:flex; align-items:center; justify-content:center; gap:var(--space-6);
  background:var(--surface-2); border:1px solid rgba(81,74,64,.5);
  border-radius:var(--r-3); padding:var(--space-6); max-width:460px; margin-inline:auto;
}
.guests-btn{
  width:56px; height:56px; border-radius:50%;
  border:1px solid var(--border-ctl); display:grid; place-items:center;
  color:var(--text);
  transition:border-color var(--dur-1) var(--ease), background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.guests-btn svg{width:22px; height:22px}
.guests-btn:hover:not(:disabled){border-color:var(--accent); color:var(--accent); background:rgba(199,165,106,.1)}
.guests-btn:disabled{opacity:.3; cursor:not-allowed}
.guests-value{display:flex; flex-direction:column; align-items:center; min-width:150px}
.guests-num{font-family:var(--serif); font-size:3.4rem; line-height:1; color:var(--white)}
.guests-label{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); margin-top:6px}

.guest-chips{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:var(--space-5)}
.chip{
  min-width:52px; padding:11px 14px;
  border:1px solid var(--border-ctl); border-radius:var(--r-pill);
  font-size:14px; color:var(--text-secondary);
  transition:all var(--dur-1) var(--ease);
}
.chip:hover{border-color:var(--accent); color:var(--accent)}
.chip.is-active{background:var(--white); border-color:var(--white); color:#141311; font-weight:500}

.guest-note{
  display:flex; gap:12px; align-items:flex-start;
  margin-top:var(--space-5); padding:16px 18px;
  background:rgba(199,165,106,.07); border:1px solid rgba(199,165,106,.3);
  border-radius:var(--r-2);
}
.guest-note svg{width:17px; height:17px; color:var(--accent); flex:none; margin-top:2px}
.guest-note p{font-size:13.5px; color:var(--text-secondary)}

/* ----------------------------- OCASIÃO ----------------------------- */
.occasions{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3)}
.occasion{
  display:flex; align-items:center; gap:12px;
  padding:20px 18px;
  background:var(--surface-2); border:1px solid var(--border-ctl);
  border-radius:var(--r-2);
  font-size:15px; color:var(--text-secondary); text-align:left;
  transition:all var(--dur-1) var(--ease);
}
.occasion-ico{
  width:9px; height:9px; transform:rotate(45deg);
  border:1px solid var(--border-ctl); flex:none;
  transition:all var(--dur-1) var(--ease);
}
.occasion:hover{border-color:rgba(199,165,106,.6); color:var(--text)}
.occasion.is-active{
  border-color:var(--accent); background:rgba(199,165,106,.1); color:var(--white);
}
.occasion.is-active .occasion-ico{background:var(--accent); border-color:var(--accent); color:#141311}

/* ----------------------------- RESUMO ----------------------------- */
.summary{
  background:var(--surface-2); border:1px solid rgba(81,74,64,.5);
  border-radius:var(--r-3); overflow:hidden;
}
.summary-row{
  display:flex; justify-content:space-between; align-items:baseline; gap:var(--space-5);
  padding:16px var(--space-5);
  border-bottom:1px solid rgba(81,74,64,.35);
  font-size:14.5px;
}
.summary-row:last-child{border-bottom:0}
.summary-row span{
  font-size:10.5px; letter-spacing:.19em; text-transform:uppercase; color:var(--text-muted);
  flex:none;
}
.summary-row strong{font-weight:400; color:var(--text); text-align:right; word-break:break-word}
.summary-note{
  display:flex; gap:12px; align-items:flex-start;
  margin-top:var(--space-5); padding:16px 18px;
  border:1px solid rgba(81,74,64,.5); border-radius:var(--r-2);
}
.summary-note svg{width:17px; height:17px; color:var(--accent); flex:none; margin-top:2px}
.summary-note p{font-size:13.5px; color:var(--text-muted)}

/* --------------------------- CONFIRMAÇÃO --------------------------- */
.confirm-ok{text-align:center; margin-bottom:var(--space-6)}
.confirm-ok-mark{
  width:66px; height:66px; margin-inline:auto;
  border:1px solid var(--accent); border-radius:50%;
  display:grid; place-items:center; color:var(--accent);
  animation:popIn .55s var(--ease) both;
}
.confirm-ok-mark svg{width:30px; height:30px; stroke-width:1.8}
@keyframes popIn{from{transform:scale(.6); opacity:0} to{transform:none; opacity:1}}
.confirm-ok .step-title{margin-top:var(--space-5); color:var(--accent)}
.confirm-ok .step-sub{margin-bottom:0}

.confirm-card{
  border:1px solid rgba(199,165,106,.45);
  background:linear-gradient(180deg, rgba(199,165,106,.08), rgba(28,26,23,.6));
  border-radius:var(--r-3); overflow:hidden;
}
.confirm-code{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:18px var(--space-5);
  border-bottom:1px solid rgba(199,165,106,.35);
}
.confirm-code span{font-size:10.5px; letter-spacing:.19em; text-transform:uppercase; color:var(--text-secondary)}
.confirm-code strong{
  font-family:var(--serif); font-size:1.7rem; letter-spacing:.12em; color:var(--accent);
}
.confirm-card .summary{background:transparent; border:0; border-radius:0}

.confirm-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:var(--space-6)}
.confirm-actions .btn{flex:1; min-width:200px}

/* --------------------------- NOSCRIPT --------------------------- */
.noscript{
  position:fixed; left:0; right:0; bottom:0; z-index:2000;
  background:var(--surface); border-top:1px solid var(--accent);
  padding:16px 20px; text-align:center; font-size:14px; color:var(--text-secondary);
}
.noscript a{color:var(--accent); text-decoration:underline}

/* ------------------------- REVEAL / MOTION ------------------------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); transition-delay:var(--d, 0s)}
.reveal.is-in{opacity:1; transform:none}

/* =========================== RESPONSIVE =========================== */
@media (max-width:1200px){
  :root{--pad:32px; --space-10:96px; --space-9:80px}
  .quick-form{grid-template-columns:repeat(3,1fr)}
  .menu-grid{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1fr 1fr; gap:var(--space-7)}
}

@media (max-width:1024px){
  .nav-desktop{display:none}
  .hamburger{display:grid}
  .about-grid{grid-template-columns:1fr; gap:var(--space-7)}
  .about-media img{aspect-ratio:16/10}
  .about-badge{right:16px; bottom:-22px}
  .loc-grid{grid-template-columns:1fr}
  .exp-grid,.quotes{grid-template-columns:1fr}
  .exp-card{padding:var(--space-6)}
}

@media (max-width:860px){
  :root{--pad:20px; --header-h:68px; --space-10:72px; --space-9:64px; --space-8:48px}
  .section{padding-block:var(--space-9)}

  .hero{min-height:80vh; min-height:80svh; padding-block:calc(var(--header-h) + var(--space-7)) var(--space-8)}
  .hero-meta{gap:var(--space-4); row-gap:var(--space-4)}
  .hero-meta-dot{display:none}
  .hero-actions .btn{flex:1; min-width:200px}
  .hero-scroll{display:none}

  .quick{margin-top:-40px; padding-bottom:var(--space-9)}
  .quick-card{padding:var(--space-5)}
  .quick-form{grid-template-columns:1fr}
  .quick-form .field-action{margin-top:var(--space-2)}
  .quick-note{align-items:flex-start; font-size:12.5px}

  .menu-grid{grid-template-columns:1fr}
  .menu-tab{padding:13px 14px; font-size:11.5px}

  .about-list{grid-template-columns:1fr}
  .about-badge{position:static; margin-top:14px; display:inline-flex; flex-direction:row; align-items:center; gap:12px; text-align:left}

  .gallery-grid{grid-template-columns:1fr; gap:var(--space-3)}
  .span-4,.span-6,.span-8,.span-12{grid-column:auto}
  .gallery-card,.gallery-card.tall,.gallery-card:not(.tall),.span-12{width:100%; min-width:0; min-height:260px; aspect-ratio:4/3}

  .cta-banner{padding-block:var(--space-9)}

  .footer-top{grid-template-columns:1fr; gap:var(--space-6)}
  .footer-bottom{flex-direction:column; gap:8px}

  .mobile-cta{display:block}
  body{padding-bottom:78px}

  /* Modal empilha em etapas */
  .modal{padding:0; place-items:stretch}
  .modal-panel{max-width:none; max-height:100vh; height:100%; border-radius:0; border:0}
  .modal-head{padding:14px 20px; gap:14px}
  .modal-body{padding:var(--space-6) 20px}
  .modal-foot{
    padding:14px 20px calc(14px + env(safe-area-inset-bottom));
    gap:10px;
  }
  .modal-hint{display:none}
  #btnNext{flex:1; min-width:0}
  #btnBack{min-width:0; padding-inline:18px}
  .modal-title{font-size:2rem; margin-bottom:var(--space-5)}

  .datepicker{max-width:none}
  .slots{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
  .occasions{grid-template-columns:repeat(2,1fr)}
  .field-row{grid-template-columns:1fr}
  .guests{padding:var(--space-5); gap:var(--space-4)}
  .guests-btn{width:50px; height:50px}
  .guests-value{min-width:110px}
  .guests-num{font-size:2.8rem}
  .confirm-actions .btn{min-width:100%}
  .confirm-code{flex-direction:column; align-items:flex-start; gap:8px}

  .lightbox{grid-template-columns:1fr; padding:16px; gap:14px; align-content:center}
  .lightbox-nav{position:absolute; bottom:16px}
  .lightbox-prev{left:16px}
  .lightbox-next{right:16px}
  .lightbox-close{top:14px; right:14px}
}

@media (max-width:520px){
  .header-actions .btn{padding:10px 16px; font-size:11px}
  .brand-mark{font-size:22px}
  .hero-title{font-size:clamp(2.35rem,10vw,3.2rem)}
  .hero-actions .btn{width:100%}
  .occasions{grid-template-columns:1fr}
  .slots{grid-template-columns:1fr 1fr}
  .slot{padding:13px 14px}
  .slot-time{font-size:1.3rem}
  .quote-card blockquote{font-size:1.15rem}
  .summary-row{flex-direction:column; gap:5px; align-items:flex-start}
  .summary-row strong{text-align:left}
}

/* Marca mais curta + cabeçalho compacto em ecrãs muito estreitos (PALMEIRAS) */
@media (max-width:430px){
  .header-inner{gap:12px}
  .brand-mark{font-size:19px; letter-spacing:.2em; padding-left:.2em}
  .header-actions{gap:10px}
  .header-actions .btn{padding:9px 13px; font-size:10.5px; letter-spacing:.07em}
}
@media (max-width:365px){
  .header-actions .btn{display:none}
}

@media (min-width:861px){
  .mobile-cta{display:none !important}
}

/* ------------------------ REDUCED MOTION ------------------------ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{opacity:1 !important; transform:none !important}
}

/* Garantia de contraste em impressão */
@media print{
  body{background:#fff; color:#000}
  .site-header,.mobile-cta,.hero-media,.cta-media,.modal,.lightbox,.mobile-menu{display:none !important}
}
