@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Karla:wght@300;400;500&display=swap');

/* ==========================================================================
   Template: Noite Privativa (noite-privativa)
   Spec visual: docs/mockups/storefront-templates/02-noite-privativa.html
   Fine dining — luxo escuro que sussurra: muito espaço negativo, hairlines de
   ouro, coluna central estreita, fotos como ATMOSFERA (faixas panorâmicas 21:9).

   ⚠️ EXCEÇÃO DELIBERADA à regra 2 do PORT-SPEC (mapear paleta → tema):
   este template é INTRINSECAMENTE ESCURO — a escuridão É a identidade. Portanto
   a SUPERFÍCIE é FIXA (não segue o tema do restaurante): --np-bg/--np-panel/
   --np-ink/--np-mute/--np-line são valores fixos do mockup, SEM var(--cor-*).
   Assim um restaurante de tema CLARO não transforma a Noite Privativa em branca.
   APENAS o acento OURO compõe com o tema: --np-gold = var(--cor-destaque, #C9A469).

   Todo o conteúdo vive sob `.np` (scope) para não vazar o reset nos componentes
   compartilhados injetados fora dele (cart sidebar, product modal, bottom-nav,
   cookie banner). Overrides de compartilhados são escopados em
   `body.sf-tpl-noite-privativa`.
   ========================================================================== */

/* ---------- tema: superfície FIXA + ouro compõe com o tema ---------- */
body.sf-tpl-noite-privativa{
  --np-bg:#0E0E11;                              /* superfície FIXA — não segue o tema */
  --np-panel:#16161B;
  --np-ink:#EDE6D8;
  --np-mute:#9A917E;
  --np-line:#26262C;
  --np-gold: var(--cor-destaque, #C9A469);      /* ÚNICO ponto que compõe com o tema */
  --np-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --np-sans:'Karla','Helvetica Neue',Arial,sans-serif;
  --np-navh:52px;

  margin:0;
  background:                                    /* glow de ouro no topo (knob textura) */
    radial-gradient(115% 68% at 50% -8%, rgba(201,164,105,.06), transparent 52%),
    var(--np-bg);
  color:var(--np-ink);                           /* AA: #EDE6D8 on #0E0E11 ~ 15:1 */
  font:400 1rem/1.6 var(--np-sans);
  border-top:1px solid var(--np-gold);
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
/* knob textura OFF → remove o glow, superfície plana */
body.sf-tpl-noite-privativa:has(.np.sf-textura-off){ background:var(--np-bg); }

html:has(body.sf-tpl-noite-privativa){ color-scheme:dark; scrollbar-color:#26262C #0E0E11; overflow-x:clip; }
@media (prefers-reduced-motion: no-preference){ html:has(body.sf-tpl-noite-privativa){ scroll-behavior:smooth; } }
body.sf-tpl-noite-privativa ::selection{ background:var(--np-gold); color:var(--np-bg); }

/* ---------- scope raiz ---------- */
.np{ position:relative; z-index:1; }
.np *,.np *::before,.np *::after{ box-sizing:border-box; }
.np img{ display:block; max-width:100%; }
.np [hidden]{ display:none !important; }
.np a{ color:inherit; }
.np button{ font:inherit; color:inherit; background:none; border:0; }
.np ul,.np ol{ list-style:none; margin:0; padding:0; }
.np a:focus-visible,
.np button:focus-visible,
.np input:focus-visible{ outline:2px solid var(--np-gold); outline-offset:3px; border-radius:2px; }
.np .vh{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---------- ornamento: filete de ouro ---------- */
.np .filet{ width:120px; height:1px; background:var(--np-gold); margin:28px auto; position:relative; }
.np .filet::after{ content:""; position:absolute; left:50%; top:50%; width:5px; height:5px; background:var(--np-gold); transform:translate(-50%,-50%) rotate(45deg); }

/* ==========================================================================
   BARRA DE CLIENTE (login / conta) — peça estrutural preservada, discreta
   ========================================================================== */
.np .clientbar{
  display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:0 2px;
  max-width:1180px; margin:0 auto; padding:14px 22px 0;
}
.np .clientbar-link{
  display:inline-flex; align-items:center; gap:.5em; min-height:40px; padding:.4rem .7rem;
  text-decoration:none; cursor:pointer;
  font:400 .64rem/1 var(--np-sans); letter-spacing:.24em; text-transform:uppercase;
  color:var(--np-mute); transition:color .3s ease;                 /* AA: #9A917E on #0E0E11 ~ 6:1 */
}
.np .clientbar-link i{ font-size:.82rem; color:var(--np-gold); }
.np .clientbar-link:hover{ color:var(--np-gold); }
.np .clientbar-link + .clientbar-link{ border-left:1px solid var(--np-line); }

/* ==========================================================================
   HERO — foto de atmosfera + identidade tipográfica
   ========================================================================== */
.np .hero-media{ position:relative; width:100%; aspect-ratio:21/9; min-height:264px; max-height:46vh; overflow:hidden; animation:npHeroFade 1.1s ease both; }
.np .hero-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 45%; filter:saturate(.82) brightness(.86); }
.np .hero-media .scrim{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(14,14,17,.62) 0%,rgba(14,14,17,.28) 36%,rgba(14,14,17,.58) 66%,#0E0E11 100%); }
.np .hero-id{ position:relative; margin-top:-58px; padding:0 22px; text-align:center; }
.np .hero-id>*{ animation:npHeroRise .8s cubic-bezier(.22,.61,.36,1) both; }
.np .hero-id>*:nth-child(1){ animation-delay:.15s; }
.np .hero-id>*:nth-child(2){ animation-delay:.28s; }
.np .hero-id>*:nth-child(3){ animation-delay:.4s; }
.np .hero-id>*:nth-child(4){ animation-delay:.52s; }
.np .hero-id>*:nth-child(5){ animation-delay:.64s; }
.np .hero-id>*:nth-child(6){ animation-delay:.76s; }
.np .logo-medal{ width:76px; height:76px; aspect-ratio:1/1; margin:0 auto; border-radius:50%; overflow:hidden; border:1px solid var(--np-gold); background:var(--np-panel); box-shadow:0 14px 34px rgba(0,0,0,.55),0 3px 10px rgba(0,0,0,.4); }
.np .logo-medal img{ width:100%; height:100%; object-fit:cover; }
.np .hero-kicker{ margin:30px 0 12px; font:400 .66rem/1 var(--np-sans); letter-spacing:.46em; text-indent:.46em; text-transform:uppercase; color:var(--np-gold); }
.np h1{ margin:0; font-family:var(--np-serif); font-weight:500; font-size:clamp(2.4rem,7vw,4rem); line-height:1.1; letter-spacing:.09em; text-transform:uppercase; color:var(--np-ink); text-wrap:balance; }
.np .hero-desc{ margin:0 auto; max-width:54ch; font:300 .98rem/1.8 var(--np-sans); letter-spacing:.02em; color:var(--np-mute); }
.np .hero-meta{ display:flex; flex-direction:column; align-items:center; gap:16px; margin-top:30px; }
.np .status-pill{
  display:inline-flex; align-items:center; gap:10px; min-height:44px; margin:0;
  border:1px solid var(--np-line); border-radius:999px; padding:11px 24px;
  font:400 .68rem/1 var(--np-sans); letter-spacing:.26em; text-indent:.26em; text-transform:uppercase;
  color:var(--np-ink); cursor:pointer; transition:border-color .3s ease;
}
.np button.status-pill:hover{ border-color:var(--np-gold); }
.np .status-pill .dot{ width:6px; height:6px; border-radius:50%; background:var(--np-gold); flex:none; }
.np .status-pill.is-closed .dot{ background:var(--np-mute); }
.np .hero-addr{ margin:0; font:400 .72rem/1.8 var(--np-sans); letter-spacing:.18em; text-transform:uppercase; color:var(--np-mute); max-width:34ch; }
.np .hero-contact{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:2px; margin:0; font:400 .72rem/1 var(--np-sans); color:var(--np-mute); }
.np .hero-contact a{ display:inline-flex; align-items:center; min-height:44px; padding:0 8px; color:var(--np-mute); letter-spacing:.18em; text-transform:uppercase; text-decoration:none; transition:color .3s ease; }
.np .hero-contact a:hover{ color:var(--np-gold); }
.np .hero-contact .sep{ color:var(--np-mute); opacity:.55; }

/* ==========================================================================
   NAV STICKY (fundo sólido, SEM blur)
   ========================================================================== */
.np .catnav{ position:sticky; top:0; z-index:1000; background:var(--np-bg); border-bottom:1px solid var(--np-line); margin-top:clamp(48px,8vw,72px); }
.np .catnav::before,.np .catnav::after{ content:""; position:absolute; top:0; bottom:1px; width:26px; z-index:2; pointer-events:none; }
.np .catnav::before{ left:0; background:linear-gradient(90deg,#0E0E11 15%,rgba(14,14,17,0)); }
.np .catnav::after{ right:0; background:linear-gradient(270deg,#0E0E11 15%,rgba(14,14,17,0)); }
.np .catnav-track{ position:relative; display:flex; gap:clamp(20px,3.5vw,36px); width:max-content; max-width:100%; margin:0 auto; padding:0 28px; overflow-x:auto; scrollbar-width:none; }
.np .catnav-track::-webkit-scrollbar{ display:none; }
.np .catnav-track a{ position:relative; display:inline-flex; align-items:center; height:var(--np-navh); color:var(--np-mute); font:400 .68rem/1 var(--np-sans); letter-spacing:.24em; text-transform:uppercase; text-decoration:none; white-space:nowrap; transition:color .3s ease; }
.np .catnav-track a::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:var(--np-gold); transform:scaleX(0); transform-origin:center; transition:transform .35s ease; }
.np .catnav-track a:hover{ color:var(--np-ink); }
.np .catnav-track a.active{ color:var(--np-gold); }                 /* AA: #C9A469 on #0E0E11 ~ 8:1 */
.np .catnav-track a.active::after{ transform:scaleX(1); }
.np .catnav-track a.dim{ opacity:.35; }
.np .catnav-track a:focus-visible{ outline-offset:-6px; }

/* ==========================================================================
   COLUNA DO MENU
   ========================================================================== */
.np .wrap{ max-width:860px; margin:0 auto; padding:0 clamp(20px,4vw,34px); }
.np .search{ max-width:420px; margin:clamp(44px,7vw,64px) auto 0; }
.np .search input{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--np-line); border-radius:0;
  color:var(--np-ink); font:300 .95rem/1.2 var(--np-sans); letter-spacing:.06em; text-align:center;
  padding:13px 8px 12px; transition:border-color .3s ease;
}
.np .search input::placeholder{ color:var(--np-mute); text-transform:uppercase; font-size:.7rem; letter-spacing:.28em; }
.np .search input:focus{ outline:none; border-bottom-color:var(--np-gold); }
.np .search input:focus-visible{ outline:2px solid var(--np-gold); outline-offset:4px; }
.np .search input::-webkit-search-cancel-button{ -webkit-appearance:none; appearance:none; }

/* ==========================================================================
   SEÇÕES / FAIXAS PANORÂMICAS (foto como atmosfera)
   ========================================================================== */
.np .cat{ margin-top:clamp(60px,10vw,96px); scroll-margin-top:calc(var(--np-navh) + 24px); }
.np .cat:first-of-type{ margin-top:clamp(40px,6vw,60px); }
.np .band{ position:relative; aspect-ratio:21/9; overflow:hidden; border:1px solid var(--np-line); border-radius:3px; background:var(--np-panel); }
.np .band img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.85) brightness(.9); }
.np .band .scrim{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(14,14,17,.3) 0%,rgba(14,14,17,.42) 44%,rgba(14,14,17,.86) 78%,rgba(14,14,17,.97) 100%); }
.np .band .ghost{ display:none; }
.np .band-cap{ position:absolute; left:clamp(18px,4vw,32px); right:clamp(18px,4vw,32px); bottom:clamp(14px,3vw,24px); }
.np .filet-mini{ display:block; width:38px; height:1px; background:var(--np-gold); margin-bottom:12px; }
.np .cat-title{ margin:0; font-family:var(--np-serif); font-weight:500; font-size:clamp(1.5rem,3.6vw,2.05rem); line-height:1.15; letter-spacing:.14em; text-transform:uppercase; color:var(--np-ink); }

/* faixa SEM foto (tone-on-tone luxuoso): banda ghost quando a categoria não tem foto,
   OU quando o cardápio inteiro está sem imagens (body.sf-sem-fotos). */
.np .band.is-ghost,
body.sf-sem-fotos .np .band{
  aspect-ratio:auto; height:clamp(120px,17vw,172px);
  background:#0E0E11 radial-gradient(120% 150% at 50% -20%,#16161B 0%,rgba(14,14,17,0) 62%);
}
.np .band.is-ghost img, .np .band.is-ghost .scrim,
body.sf-sem-fotos .np .band img, body.sf-sem-fotos .np .band .scrim{ display:none; }
.np .band.is-ghost .ghost,
body.sf-sem-fotos .np .band .ghost{
  display:block; position:absolute; left:50%; top:52%; transform:translate(-50%,-50%);
  font-family:var(--np-serif); font-weight:600; font-size:clamp(3rem,10.5vw,5.6rem);
  letter-spacing:.06em; text-transform:uppercase; white-space:nowrap;
  color:#20202A;                                                    /* watermark tone-on-tone (decorativo, aria-hidden) */
  pointer-events:none; user-select:none;
}

/* ==========================================================================
   ITENS — blocos espaçados, sem cards (hairline entre eles)
   ========================================================================== */
.np .items{ margin:clamp(6px,1.5vw,12px) 0 0; }
.np .item{ position:relative; padding:clamp(24px,4vw,32px) 2px; border-bottom:1px solid var(--np-line); cursor:pointer; }
.np .item:last-child{ border-bottom:0; }
.np .item-flags{ margin:0 0 9px; font:400 .62rem/1 var(--np-sans); letter-spacing:.34em; text-transform:uppercase; color:var(--np-gold); }
.np .item-flags span + span::before{ content:"·"; margin:0 .7em; color:var(--np-mute); letter-spacing:0; }
.np .item-head{ display:flex; align-items:baseline; gap:18px; }
.np .item-name{ flex:1; margin:0; font-family:var(--np-serif); font-weight:600; font-size:1.35rem; line-height:1.28; letter-spacing:.015em; color:var(--np-ink); transition:color .35s ease; }
.np .item:hover .item-name,
.np .item:focus-within .item-name{ color:var(--np-gold); }
.np .item-price{ margin:0; font-family:var(--np-serif); font-weight:500; font-size:1.12rem; letter-spacing:.06em; color:var(--np-gold); white-space:nowrap; }   /* AA: #C9A469 on #0E0E11 ~ 8:1 */
.np .item-price s{ color:var(--np-mute); font-size:.85em; letter-spacing:.03em; margin-right:.55em; text-decoration-thickness:1px; }
.np .item-desc{ margin:8px 0 0; max-width:62ch; font:400 .92rem/1.68 var(--np-sans); letter-spacing:.01em; color:var(--np-mute); display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }   /* AA: #9A917E on #0E0E11 ~ 6:1 */
.np .item-extras{ margin:11px 0 0; font:400 .76rem/1 var(--np-sans); letter-spacing:.1em; color:var(--np-mute); }
.np .item-extras .plus{ color:var(--np-gold); margin-right:.4em; }

/* ==========================================================================
   ESTADO VAZIO / SEM RESULTADOS
   ========================================================================== */
.np .empty{ margin:clamp(60px,10vw,96px) auto; max-width:46ch; text-align:center; }
.np .empty p{ margin:0; }
.np .empty .empty-msg{ font-family:var(--np-serif); font-weight:500; font-size:1.35rem; line-height:1.4; letter-spacing:.02em; color:var(--np-ink); }
.np .empty .empty-sub{ margin-top:12px; font:400 .78rem/1.7 var(--np-sans); letter-spacing:.16em; text-transform:uppercase; color:var(--np-mute); }
.np .vazio{ margin:clamp(60px,10vw,96px) auto; max-width:44ch; text-align:center; font-family:var(--np-serif); font-size:1.3rem; line-height:1.5; color:var(--np-mute); }

/* ==========================================================================
   RODAPÉ
   ========================================================================== */
.np .np-foot{ margin-top:clamp(76px,12vw,128px); padding:0 22px clamp(96px,12vw,128px); text-align:center; }
.np .foot-links{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0 4px; margin-top:34px; }
.np .foot-links a{ display:inline-flex; align-items:center; min-height:44px; padding:0 10px; color:var(--np-mute); font:400 .68rem/1 var(--np-sans); letter-spacing:.22em; text-transform:uppercase; text-decoration:none; transition:color .3s ease; }
.np .foot-links a:hover{ color:var(--np-gold); }
.np .foot-links .sep{ color:var(--np-mute); opacity:.55; font-size:.68rem; }
.np .foot-copy{ margin:20px 0 8px; font-family:var(--np-serif); font-weight:500; font-size:1.08rem; letter-spacing:.06em; color:var(--np-ink); }
.np .foot-pedity{ margin:0; font:400 .62rem/1 var(--np-sans); letter-spacing:.34em; text-indent:.34em; text-transform:uppercase; color:var(--np-mute); }

/* ==========================================================================
   REVEAL ON-SCROLL (fades lentos) — só quando o JS liga html.np-io
   (motion permitido + IntersectionObserver). Sem JS / motion-off = visível.
   ========================================================================== */
html.np-io .np .reveal{ opacity:0; transform:translateY(14px); transition:opacity .6s ease,transform .6s ease; }
html.np-io .np .reveal.in{ opacity:1; transform:none; }
@keyframes npHeroFade{ from{opacity:0} to{opacity:1} }
@keyframes npHeroRise{ from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:none} }

/* ==========================================================================
   KNOBS DO MANIFESTO
   ========================================================================== */

/* knob hero_estilo — foto (default) · tipografico (sem foto) · compacto (faixa curta) */
.np.sf-hero-tipografico .hero-media{ display:none; }
.np.sf-hero-tipografico .hero-id{ margin-top:0; padding-top:clamp(72px,12vh,132px); }
.np.sf-hero-compacto .hero-media{ aspect-ratio:auto; height:clamp(150px,26vw,244px); min-height:0; max-height:38vh; }
.np.sf-hero-compacto .hero-id{ margin-top:-40px; }

/* knob textura — glow de ouro no topo (default ON via body background). OFF é tratado
   em `body.sf-tpl-noite-privativa:has(.np.sf-textura-off)` no topo do arquivo. */

/* knob moldura — filete de ouro emoldurando a coluna do menu */
.np.sf-moldura-on .wrap{
  border:1px solid var(--np-line);
  box-shadow:0 0 0 1px rgba(201,164,105,.12);
  border-radius:4px;
  padding-top:clamp(20px,4vw,34px);
  padding-bottom:clamp(20px,4vw,34px);
  margin-top:clamp(28px,5vw,48px);
}
.np.sf-moldura-on .catnav{ margin-bottom:0; }

/* knob densidade — ritmo vertical (body.sf-dens-*, emitido pelo header) */
body.sf-dens-compacta .np .item{ padding-block:clamp(16px,3vw,22px); }
body.sf-dens-compacta .np .cat{ margin-top:clamp(40px,7vw,64px); }
body.sf-dens-espacada .np .item{ padding-block:clamp(30px,5.5vw,44px); }
body.sf-dens-espacada .np .cat{ margin-top:clamp(76px,12vw,120px); }

/* ==========================================================================
   BREAKPOINTS
   ========================================================================== */
@media (max-width:480px){
  .np h1{ letter-spacing:.06em; }
  .np .item-head{ gap:12px; }
  .np .item-name{ font-size:1.22rem; }
  .np .item-price{ font-size:1.05rem; }
}
@media (min-width:768px){
  .np .hero-desc{ font-size:1.02rem; }
}
@media (min-width:992px){
  .np .item-desc{ font-size:.95rem; }
  .np .band{ border-radius:4px; }
}

/* ==========================================================================
   MOVIMENTO REDUZIDO — tudo estático (media + knob body.sf-motion-off)
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  body.sf-tpl-noite-privativa{ scroll-behavior:auto; }
  .np *,.np *::before,.np *::after{ animation-duration:.01ms !important; animation-delay:0ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  html.np-io .np .reveal{ opacity:1 !important; transform:none !important; }
}
body.sf-motion-off.sf-tpl-noite-privativa{ scroll-behavior:auto; }
body.sf-motion-off .np *,
body.sf-motion-off .np *::before,
body.sf-motion-off .np *::after{ animation-duration:.01ms !important; animation-delay:0ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
body.sf-motion-off html.np-io .np .reveal,
html.np-io body.sf-motion-off .np .reveal{ opacity:1 !important; transform:none !important; }

/* ==========================================================================
   OVERRIDES escopados de componentes COMPARTILHADOS (storefront.css / footer.php)
   — re-vestidos no tom Noite Privativa (a superfície escura é fixa, então
   estas peças que renderizam SOBRE ela precisam do mesmo tom). Cart sidebar e
   product modal ficam theme-driven de propósito (compõem com o tema do dono).
   ========================================================================== */

/* carrinho flutuante (injetado pelo cart.js) — anel de ouro no painel escuro */
body.sf-tpl-noite-privativa .cart-float-btn{
  background:var(--np-panel); color:var(--np-gold); border:1px solid var(--np-gold);   /* AA: #C9A469 on #16161B ~ 6.6:1 */
  box-shadow:0 18px 42px rgba(0,0,0,.55),0 4px 12px rgba(0,0,0,.45);
}
body.sf-tpl-noite-privativa .cart-float-btn:hover,
body.sf-tpl-noite-privativa .cart-float-btn:focus-visible{ box-shadow:0 26px 54px rgba(0,0,0,.62),0 6px 16px rgba(0,0,0,.5); }
body.sf-tpl-noite-privativa .cart-badge{ background:var(--np-gold); color:var(--np-bg); box-shadow:none; font-family:var(--np-sans); }

/* voltar-ao-topo — hairline de ouro no escuro (sem blur, seguro no Safari) */
body.sf-tpl-noite-privativa .back-to-top-btn{
  background:var(--np-panel); border:1px solid var(--np-line); color:var(--np-gold);
  box-shadow:0 14px 30px rgba(0,0,0,.5);
  backdrop-filter:none; -webkit-backdrop-filter:none;
}
body.sf-tpl-noite-privativa .back-to-top-btn:hover{ border-color:var(--np-gold); background:var(--np-panel); }

/* bottom-nav mobile (footer.php) — painel escuro tone-on-tone */
body.sf-tpl-noite-privativa .pedity-bottom-nav{ background:var(--np-panel); border-top:1px solid var(--np-line); box-shadow:0 -4px 18px rgba(0,0,0,.5); }
body.sf-tpl-noite-privativa .pedity-bottom-link{ color:var(--np-mute); opacity:1; }
body.sf-tpl-noite-privativa .pedity-bottom-link i{ color:var(--np-mute); }
body.sf-tpl-noite-privativa .pedity-bottom-link:hover,
body.sf-tpl-noite-privativa .pedity-bottom-link:focus-visible{ color:var(--np-gold); }
body.sf-tpl-noite-privativa .pedity-bottom-link:hover i,
body.sf-tpl-noite-privativa .pedity-bottom-link:focus-visible i{ color:var(--np-gold); }

/* identificação factual do comerciante (footer.php) — painel escuro legível */
body.sf-tpl-noite-privativa .merchant-id{
  background:var(--np-panel); border:1px solid var(--np-line); border-radius:4px;
  color:var(--np-ink);
}
body.sf-tpl-noite-privativa .merchant-id-titulo{ color:var(--np-gold); opacity:1; }
body.sf-tpl-noite-privativa .merchant-id-item dt{ color:var(--np-mute); opacity:1; }
body.sf-tpl-noite-privativa .merchant-id-item dd{ color:var(--np-ink); }              /* AA: #EDE6D8 on #16161B ~ 13:1 */
body.sf-tpl-noite-privativa .merchant-id-disclaimer{ color:var(--np-mute); opacity:1; }   /* AA: #9A917E on #16161B ~ 5.8:1 */
body.sf-tpl-noite-privativa .merchant-id-disclaimer strong{ color:var(--np-ink); }
body.sf-tpl-noite-privativa .merchant-id-plataforma{ color:var(--np-mute) !important; }

/* branding do rodapé (footer.php, plan-aware) — tom Noite Privativa */
body.sf-tpl-noite-privativa .cardapio-footer{ background:transparent; border-top:0; }
body.sf-tpl-noite-privativa .footer-brand{ color:var(--np-mute); font-family:var(--np-sans); letter-spacing:.18em; text-transform:uppercase; font-size:.6rem; }
body.sf-tpl-noite-privativa .footer-brand strong{ color:var(--np-ink); }
body.sf-tpl-noite-privativa .footer-brand:hover{ color:var(--np-gold); }

/* links legais fixos do footer.php — ocultos (a coluna já os traz no rodapé em fluxo) */
body.sf-tpl-noite-privativa .legal-links-fixed{ display:none; }

/* whatsapp flutuante — mantém a marca verde; só harmoniza a sombra no escuro */
body.sf-tpl-noite-privativa .whatsapp-float{ box-shadow:0 14px 30px rgba(0,0,0,.5); }
