/* =============================================================================
   SABOR MÃE E FILHA — "Mesa Farta"
   Sistema de design editorial · gastronomia baiana
   Camada bespoke carregada APÓS bootstrap + style.css (sobrepõe a aparência
   pública sem quebrar o backend Flask nem as subpáginas que usam Bootstrap).
   ============================================================================= */

/* ----------------------------------------------------------------------------
   0. TOKENS
   ---------------------------------------------------------------------------- */
:root{
  /* — Paleta base (papel de osso, tinta espresso) — */
  --paper:        #F4ECDE;
  --paper-2:      #EDE1CD;
  --paper-3:      #E6D8BF;
  --cream:        #FBF6EC;
  --on-dark:      #F4ECDE;   /* texto claro fixo p/ superfícies sempre-escuras (não remapeado no dark) */
  --ink:          #211712;
  --ink-2:        #3A2C22;
  --ink-soft:     #6B5848;
  --ink-faint:    #9A8773;

  /* — Acentos baianos — */
  --dende:        #E2571E;   /* terracota / dendê — primário */
  --dende-deep:   #BF410F;
  --dende-glow:   #F5743A;
  --azulejo:      #0F6E5E;   /* teal de azulejo — secundário */
  --azulejo-deep: #0A4D42;
  --gold:         #E9A93C;   /* mostarda / ouro — destaque */
  --wine:         #7B2233;

  /* — Superfícies escuras (seções "night") — */
  --night:        #17100B;
  --night-2:      #20160F;
  --night-3:      #2A1D14;

  /* — Semânticos — */
  --bg:           var(--paper);
  --surface:      var(--cream);
  --text:         var(--ink);
  --text-soft:    var(--ink-soft);
  --line:         rgba(33,23,18,.12);
  --line-strong:  rgba(33,23,18,.22);
  --accent:       var(--dende);

  /* — Tipografia — */
  --font-display: "Fraunces", "Times New Roman", serif;
  --font-ui:      "Manrope", system-ui, -apple-system, sans-serif;

  /* — Escala fluida (clamp) — */
  --step--1: clamp(.78rem, .74rem + .18vw, .88rem);
  --step-0:  clamp(.95rem, .9rem + .25vw, 1.06rem);
  --step-1:  clamp(1.15rem, 1.05rem + .5vw, 1.45rem);
  --step-2:  clamp(1.5rem, 1.3rem + 1vw, 2.1rem);
  --step-3:  clamp(2rem, 1.6rem + 2vw, 3.2rem);
  --step-4:  clamp(2.8rem, 2rem + 4vw, 5.5rem);
  --step-5:  clamp(3.6rem, 2.2rem + 7vw, 9rem);

  /* — Métricas — */
  --radius:    18px;
  --radius-lg: 28px;
  --radius-sm: 12px;
  --gutter:    clamp(1.1rem, 4vw, 3rem);
  --maxw:      1280px;
  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-spring: cubic-bezier(.34,1.42,.5,1);
  --shadow-1:  0 2px 6px rgba(33,23,18,.05), 0 14px 40px -18px rgba(33,23,18,.22);
  --shadow-2:  0 8px 24px rgba(33,23,18,.10), 0 36px 80px -30px rgba(33,23,18,.32);
}

[data-bs-theme="dark"]{
  --bg:          var(--night);
  --surface:     var(--night-2);
  --paper:       var(--night);
  --paper-2:     var(--night-2);
  --paper-3:     var(--night-3);
  --cream:       var(--night-2);
  --text:        #F2E7D6;
  --text-soft:   #C6B49C;
  --ink:         #F2E7D6;
  --ink-soft:    #C6B49C;
  --line:        rgba(242,231,214,.12);
  --line-strong: rgba(242,231,214,.22);
}

/* ----------------------------------------------------------------------------
   1. RESET / BASE
   ---------------------------------------------------------------------------- */
html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-ui);
  font-size:var(--step-0);
  line-height:1.55;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-feature-settings:"ss01","cv01";
  overflow-x:hidden;
}
/* tipografia de títulos editorial */
h1,h2,h3,.smf-display{
  font-family:var(--font-display);
  font-optical-sizing:auto;
  font-weight:540;
  line-height:1.02;
  letter-spacing:-.015em;
  color:var(--text);
}
.smf-serif-italic{ font-family:var(--font-display); font-style:italic; font-weight:460; }

::selection{ background:var(--dende); color:var(--cream); }

/* Container editorial */
.smf-wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }

/* ----------------------------------------------------------------------------
   2. GRÃO DE FILME + RUÍDO (overlay global)
   ---------------------------------------------------------------------------- */
.smf-grain{
  position:fixed; inset:0; z-index:9990; pointer-events:none;
  opacity:.045; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
[data-bs-theme="dark"] .smf-grain{ mix-blend-mode:screen; opacity:.06; }

/* ----------------------------------------------------------------------------
   3. CURSOR CUSTOMIZADO (somente ponteiro fino / desktop)
   ---------------------------------------------------------------------------- */
.smf-cursor, .smf-cursor-dot{ display:none; }
@media (hover:hover) and (pointer:fine){
  body.smf-cursor-on{ cursor:none; }
  body.smf-cursor-on a, body.smf-cursor-on button, body.smf-cursor-on input,
  body.smf-cursor-on textarea, body.smf-cursor-on select, body.smf-cursor-on label{ cursor:none; }
  .smf-cursor{
    display:block; position:fixed; top:0; left:0; z-index:10000;
    width:44px; height:44px; margin:-22px 0 0 -22px; border-radius:50%;
    border:1.5px solid var(--dende); pointer-events:none;
    mix-blend-mode:difference; transition:width .25s var(--ease), height .25s var(--ease),
      margin .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease);
    will-change:transform;
  }
  .smf-cursor-dot{
    display:block; position:fixed; top:0; left:0; z-index:10001;
    width:6px; height:6px; margin:-3px 0 0 -3px; border-radius:50%;
    background:var(--dende); pointer-events:none; will-change:transform;
  }
  .smf-cursor.is-hover{ width:74px; height:74px; margin:-37px 0 0 -37px;
    background:rgba(226,87,30,.14); border-color:transparent; }
}

/* ----------------------------------------------------------------------------
   4. NAVBAR (sobrepõe .smf-navbar do style.css)
   ---------------------------------------------------------------------------- */
.smf-navbar{
  background:color-mix(in srgb, var(--paper) 78%, transparent);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  backdrop-filter:blur(16px) saturate(1.4);
  box-shadow:none; border-bottom:1px solid var(--line);
  transition:transform .5s var(--ease), background .4s var(--ease), border-color .4s;
  padding-block:.65rem;
}
.smf-navbar.smf-nav-hidden{ transform:translateY(-104%); }
.smf-navbar .navbar-brand{ color:var(--text)!important; }
.smf-brand-mark{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-display); font-weight:600; letter-spacing:-.02em;
  font-size:1.18rem; line-height:1;
}
.smf-brand-mark .smf-brand-emoji{
  width:38px; height:38px; display:grid; place-items:center; border-radius:50%;
  background:linear-gradient(135deg,var(--dende),var(--gold)); color:#fff; font-size:1.05rem;
  box-shadow:0 6px 16px -6px var(--dende);
}
.smf-brand-sub{ display:block; font-family:var(--font-ui); font-size:.6rem; font-weight:600;
  letter-spacing:.32em; text-transform:uppercase; color:var(--ink-faint); margin-top:.15rem; }
.smf-navbar .nav-link{
  color:var(--text); font-weight:600; font-size:.92rem; position:relative;
  padding-inline:.2rem; margin-inline:.7rem;
}
.smf-navbar .nav-link::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:100%;
  background:var(--dende); transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--ease);
}
.smf-navbar .nav-link:hover{ color:var(--dende); }
.smf-navbar .nav-link:hover::after{ transform:scaleX(1); transform-origin:left; }

/* Pílula de status aberto/fechado */
.smf-status{
  display:inline-flex; align-items:center; gap:.45rem; font-size:.74rem; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; padding:.4rem .7rem; border-radius:30px;
  border:1px solid var(--line-strong); color:var(--text); background:transparent;
}
.smf-status .smf-dot{ width:8px; height:8px; border-radius:50%; }
.smf-status.is-open .smf-dot{ background:var(--azulejo);
  box-shadow:0 0 0 0 rgba(15,110,94,.5); animation:smf-pulse 2.2s infinite; }
.smf-status.is-closed .smf-dot{ background:var(--wine); }
@keyframes smf-pulse{
  0%{ box-shadow:0 0 0 0 rgba(15,110,94,.5); }
  70%{ box-shadow:0 0 0 9px rgba(15,110,94,0); }
  100%{ box-shadow:0 0 0 0 rgba(15,110,94,0); }
}

/* Ícone-botão (tema / carrinho) */
.smf-iconbtn{
  width:42px; height:42px; border-radius:50%; display:inline-grid; place-items:center;
  border:1px solid var(--line-strong); background:transparent; color:var(--text);
  position:relative; transition:background .3s var(--ease), color .3s, border-color .3s, transform .25s var(--ease-spring);
}
.smf-iconbtn:hover{ background:var(--text); color:var(--paper); border-color:var(--text); transform:translateY(-2px); }
.smf-cart-count{
  position:absolute; top:-4px; right:-4px; min-width:19px; height:19px; padding:0 5px;
  border-radius:30px; background:var(--dende); color:#fff; font-family:var(--font-ui);
  font-size:.66rem; font-weight:800; display:grid; place-items:center; border:2px solid var(--bg);
}

/* ----------------------------------------------------------------------------
   5. BOTÕES
   ---------------------------------------------------------------------------- */
.smf-btn{
  --bg:var(--dende); --fg:#fff;
  position:relative; display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-ui); font-weight:700; font-size:.92rem; letter-spacing:.01em;
  padding:.92rem 1.6rem; border-radius:40px; border:1px solid transparent;
  background:var(--bg); color:var(--fg); cursor:pointer; overflow:hidden; isolation:isolate;
  transition:transform .3s var(--ease-spring), box-shadow .35s var(--ease), color .35s var(--ease);
  text-decoration:none;
}
.smf-btn::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:var(--ink); transform:translateY(101%); transition:transform .45s var(--ease);
}
.smf-btn:hover{ color:var(--fg); transform:translateY(-2px); box-shadow:var(--shadow-2); }
.smf-btn:hover::before{ transform:translateY(0); }
.smf-btn:active{ transform:translateY(0) scale(.98); }
.smf-btn .bi{ transition:transform .4s var(--ease); }
.smf-btn:hover .bi-arrow-right, .smf-btn:hover .bi-arrow-up-right{ transform:translateX(4px); }

.smf-btn--ghost{ --bg:transparent; --fg:var(--text); border-color:var(--line-strong); }
.smf-btn--ghost::before{ background:var(--text); }
.smf-btn--ghost:hover{ --fg:var(--paper); }
.smf-btn--ink{ --bg:var(--ink); --fg:var(--paper); }
.smf-btn--ink::before{ background:var(--dende); }
.smf-btn--gold{ --bg:var(--gold); --fg:var(--ink); }
.smf-btn--gold::before{ background:var(--ink); }
.smf-btn--gold:hover{ --fg:var(--gold); }
.smf-btn--sm{ padding:.6rem 1.1rem; font-size:.82rem; }
.smf-btn--lg{ padding:1.1rem 2rem; font-size:1rem; }

/* botão magnético (wrapper que move levemente) */
.smf-magnetic{ display:inline-block; will-change:transform; }

/* ----------------------------------------------------------------------------
   6. SEÇÕES / CABEÇALHOS EDITORIAIS
   ---------------------------------------------------------------------------- */
.smf-section{ padding-block:clamp(3.5rem,8vw,7rem); }
.smf-eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.72rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--dende);
}
.smf-eyebrow::before{ content:""; width:26px; height:1.5px; background:var(--dende); }
.smf-index{
  font-family:var(--font-display); font-style:italic; font-weight:380;
  color:var(--ink-faint); font-size:.95rem; letter-spacing:.02em;
}
.smf-section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:2rem;
  flex-wrap:wrap; margin-bottom:clamp(1.6rem,4vw,3rem);
}
.smf-section-title{ font-size:var(--step-3); max-width:14ch; }
.smf-section-title em{ color:var(--dende); }

/* ----------------------------------------------------------------------------
   7. HERO
   ---------------------------------------------------------------------------- */
.smf-hero{
  position:relative; overflow:hidden; min-height:clamp(620px,92vh,1000px);
  display:flex; align-items:flex-end;
  background:
    radial-gradient(120% 90% at 85% 5%, rgba(233,169,60,.20), transparent 55%),
    radial-gradient(90% 80% at 8% 95%, rgba(15,110,94,.16), transparent 55%),
    var(--paper);
  padding-top:96px;
}
/* vinheta cinematográfica: emoldura a cena e disfarça os cantos macios do upscale
   (também substitui o emoji-pattern do style.css). z-index 1 = acima do vídeo, abaixo do conteúdo. */
.smf-hero::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(128% 110% at 50% 42%, transparent 54%, rgba(38,22,10,.16) 84%, rgba(38,22,10,.32) 100%);
}
[data-bs-theme="dark"] .smf-hero::after{
  background:radial-gradient(128% 110% at 50% 42%, transparent 48%, rgba(0,0,0,.32) 82%, rgba(0,0,0,.55) 100%);
}
.smf-hero-grid{
  width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter);
  padding-bottom:clamp(2.5rem,6vw,5rem);
  display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(1.5rem,4vw,3rem); align-items:end;
}
.smf-hero-main{ position:relative; }
/* fumaça (vídeo) cobrindo TODO o cabeçalho — máscara suave nas bordas, sensível a reduced-motion */
.smf-hero-smoke{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover; pointer-events:none; user-select:none;
  /* cores reais do vídeo, em fidelidade total (sem blend que lava a imagem) */
  mix-blend-mode:normal; opacity:1; filter:saturate(1.38) contrast(1.12) brightness(1.04);
  -webkit-mask-image:linear-gradient(to bottom, #000 0, #000 88%, transparent 100%);
          mask-image:linear-gradient(to bottom, #000 0, #000 88%, transparent 100%);
}
[data-bs-theme="dark"] .smf-hero-smoke{ filter:saturate(1.38) contrast(1.14) brightness(1.0); }
/* contém o blend dentro do herói (não vaza para o que está atrás) */
.smf-hero{ isolation:isolate; }
/* scrim de legibilidade: véu de papel sobre o vídeo, mais denso atrás dos textos */
.smf-hero::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(98deg, rgba(244,236,222,.92) 0%, rgba(244,236,222,.52) 30%, rgba(244,236,222,.14) 54%, rgba(244,236,222,.4) 80%, rgba(244,236,222,.72) 100%),
    linear-gradient(to top, rgba(244,236,222,.78) 0%, rgba(244,236,222,0) 44%);
}
[data-bs-theme="dark"] .smf-hero::before{
  background:
    linear-gradient(98deg, rgba(23,16,11,.86) 0%, rgba(23,16,11,.48) 32%, rgba(23,16,11,.14) 56%, rgba(23,16,11,.42) 82%, rgba(23,16,11,.7) 100%),
    linear-gradient(to top, rgba(23,16,11,.74) 0%, rgba(23,16,11,0) 46%);
}
.smf-hero-grid{ position:relative; z-index:2; }
.smf-hero-scroll{ z-index:2; }
@media (prefers-reduced-motion:reduce){ .smf-hero-smoke{ display:none; } }
/* legibilidade sobre o vídeo vivo: halos sutis (não embaçam a imagem) */
.smf-hero h1{ text-shadow:0 1px 26px rgba(244,236,222,.45); }
.smf-hero-lead{ text-shadow:0 1px 16px rgba(244,236,222,.6); }
.smf-hero-stat .n{ text-shadow:0 1px 16px rgba(244,236,222,.6); }
.smf-hero-stat .l{ color:var(--ink-soft); text-shadow:0 1px 12px rgba(244,236,222,.75); }
[data-bs-theme="dark"] .smf-hero h1{ text-shadow:0 2px 30px rgba(0,0,0,.5); }
[data-bs-theme="dark"] .smf-hero-lead{ text-shadow:0 1px 18px rgba(0,0,0,.6); }
[data-bs-theme="dark"] .smf-hero-stat .n{ text-shadow:0 1px 18px rgba(0,0,0,.6); }
[data-bs-theme="dark"] .smf-hero-stat .l{ color:rgba(244,236,222,.82); text-shadow:0 1px 14px rgba(0,0,0,.7); }
.smf-hero-kicker{ display:flex; align-items:center; gap:1rem; margin-bottom:1.4rem; }
.smf-hero h1{
  font-size:var(--step-5); font-weight:560; letter-spacing:-.03em; margin:0;
}
.smf-hero h1 .smf-line{ display:block; overflow:hidden; }
.smf-hero h1 .smf-line > span{ display:inline-block; will-change:transform; }
.smf-hero h1 em{ color:var(--dende); }
.smf-hero-lead{
  margin-top:1.6rem; max-width:42ch; font-size:var(--step-1); color:var(--text-soft);
  font-weight:450;
}
.smf-hero-cta{ display:flex; gap:.9rem; flex-wrap:wrap; margin-top:2rem; align-items:center; }
.smf-hero-aside{
  border-left:1px solid var(--line); padding-left:clamp(1.2rem,3vw,2.4rem);
  display:flex; flex-direction:column; gap:1.5rem; padding-bottom:.4rem;
}
.smf-hero-stat .n{ font-family:var(--font-display); font-size:var(--step-3); line-height:1; color:var(--text); }
.smf-hero-stat .l{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); margin-top:.4rem; }
.smf-hero-scroll{
  position:absolute; left:var(--gutter); bottom:1.4rem; display:flex; align-items:center; gap:.6rem;
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-faint);
}
.smf-hero-scroll .bi{ animation:smf-bob 1.8s var(--ease) infinite; }
@keyframes smf-bob{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }
@media (max-width:860px){
  .smf-hero-grid{ grid-template-columns:1fr; }
  .smf-hero-aside{ border-left:0; padding-left:0; border-top:1px solid var(--line);
    padding-top:1.4rem; flex-direction:row; flex-wrap:wrap; gap:2rem; }
  .smf-hero-scroll{ display:none; }
}

/* ----------------------------------------------------------------------------
   8. MARQUEE CINÉTICO
   ---------------------------------------------------------------------------- */
.smf-marquee{
  border-block:1px solid var(--line); overflow:hidden; padding-block:1.1rem;
  background:var(--night); color:var(--on-dark);
}
.smf-marquee-track{ display:flex; gap:0; width:max-content; will-change:transform;
  animation:smf-marq 38s linear infinite; }
.smf-marquee:hover .smf-marquee-track{ animation-play-state:paused; }
.smf-marquee-track span{
  font-family:var(--font-display); font-style:italic; font-size:clamp(1.4rem,3.4vw,2.6rem);
  padding-inline:1.4rem; display:inline-flex; align-items:center; gap:1.4rem; white-space:nowrap;
}
.smf-marquee-track .smf-star{ color:var(--dende); font-style:normal; font-size:.8em; }
@keyframes smf-marq{ to{ transform:translateX(-50%); } }

/* ----------------------------------------------------------------------------
   9. CHIPS DE CATEGORIA
   ---------------------------------------------------------------------------- */
.smf-chips{ display:flex; gap:.6rem; overflow-x:auto; padding:.4rem 0; scrollbar-width:none; }
.smf-chips::-webkit-scrollbar{ display:none; }
.smf-chip{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:.5rem;
  background:transparent; border:1px solid var(--line-strong); color:var(--text);
  border-radius:40px; padding:.6rem 1.1rem; font-size:.86rem; font-weight:600; white-space:nowrap;
  transition:background .3s var(--ease), color .3s, border-color .3s, transform .25s var(--ease-spring);
}
.smf-chip:hover, .smf-chip.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); transform:translateY(-2px); }

/* ----------------------------------------------------------------------------
   10. CARD DE PRODUTO (editorial)
   ---------------------------------------------------------------------------- */
.smf-grid-prod{ display:grid; grid-template-columns:repeat(auto-fill,minmax(248px,1fr)); gap:clamp(1rem,2.5vw,1.7rem); }
.smf-prod{
  position:relative; display:flex; flex-direction:column; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s;
  isolation:isolate;
}
.smf-prod:hover{ transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--line-strong); }
.smf-prod-media{
  position:relative; aspect-ratio:4/3.1; overflow:hidden;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.5), transparent 60%),
    linear-gradient(150deg, var(--paper-2), var(--paper-3));
  display:grid; place-items:center;
}
[data-bs-theme="dark"] .smf-prod-media{ background:linear-gradient(150deg,var(--night-3),var(--night-2)); }
.smf-prod-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease); will-change:transform; }
.smf-prod:hover .smf-prod-media img{ transform:scale(1.06); }
.smf-prod-emoji{ font-size:clamp(3rem,7vw,4.4rem); filter:drop-shadow(0 8px 18px rgba(33,23,18,.18));
  transition:transform .6s var(--ease-spring); }
.smf-prod:hover .smf-prod-emoji{ transform:scale(1.1) rotate(-4deg); }
.smf-prod-tags{ position:absolute; top:.85rem; left:.85rem; display:flex; gap:.4rem; flex-wrap:wrap; z-index:2; }
.smf-prod-tag{
  font-family:var(--font-ui); font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:.3rem .6rem; border-radius:30px; color:#fff; backdrop-filter:blur(4px);
}
.smf-prod-tag--warn{ background:rgba(233,169,60,.92); color:var(--ink); }
.smf-prod-tag--green{ background:rgba(15,110,94,.92); }
.smf-prod-body{ padding:1.15rem 1.25rem 1.3rem; display:flex; flex-direction:column; flex:1; gap:.55rem; }
.smf-prod-nome{ font-family:var(--font-display); font-size:1.18rem; font-weight:540; line-height:1.1; letter-spacing:-.01em; margin:0; }
.smf-prod-desc{ font-size:.85rem; color:var(--text-soft); line-height:1.45; margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
.smf-prod-foot{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin-top:.4rem; }
.smf-prod-preco{ font-family:var(--font-display); font-size:1.32rem; font-weight:560; color:var(--text); line-height:1; }
.smf-prod-preco small{ font-family:var(--font-ui); font-size:.7rem; font-weight:600; color:var(--ink-faint); }
.smf-prod-tempo{ font-size:.74rem; color:var(--ink-faint); display:inline-flex; align-items:center; gap:.3rem; }
/* botão circular de adicionar */
.smf-add{
  width:48px; height:48px; border-radius:50%; flex:0 0 48px; border:1px solid var(--ink);
  background:var(--ink); color:var(--paper); display:grid; place-items:center; cursor:pointer;
  font-size:1.15rem; transition:transform .3s var(--ease-spring), background .3s, color .3s;
}
.smf-add:hover{ background:var(--dende); border-color:var(--dende); color:#fff; transform:rotate(90deg) scale(1.06); }
.smf-add.is-added{ background:var(--azulejo); border-color:var(--azulejo); transform:scale(1.06); }

/* tilt 3D (Atropos): garante que o wrapper estique como item de grid */
.smf-prod-atropos{ height:100%; }
.smf-prod-atropos .atropos-scale,
.smf-prod-atropos .atropos-rotate,
.smf-prod-atropos .atropos-inner{ height:100%; }
.smf-prod-atropos .atropos-inner{ overflow:visible; border-radius:var(--radius-lg); }
.smf-prod-atropos .smf-prod{ height:100%; }
/* destaque de luz do atropos com a cor da marca */
.smf-prod-atropos .atropos-highlight{ background:radial-gradient(circle at 50% 50%, rgba(233,169,60,.35), transparent 60%); }
.smf-prod-atropos.atropos-active .smf-prod{ box-shadow:var(--shadow-2); border-color:var(--line-strong); }
/* sob tilt ativo, evita dupla translação do hover interno */
.smf-prod-atropos.atropos-active .smf-prod:hover{ transform:none; }

/* ----------------------------------------------------------------------------
   10b. CARDÁPIO (menu editorial de restaurante)
   ---------------------------------------------------------------------------- */
.smf-menu-head{ padding-block:clamp(2.6rem,7vw,5rem) clamp(1.2rem,3vw,2rem); }
.smf-menu-head h1{ font-size:var(--step-4); max-width:16ch; }
.smf-menu-head h1 em{ color:var(--dende); }
.smf-menu-head .smf-hero-lead{ margin-top:1rem; }

/* nav de categorias sticky */
.smf-catnav{
  position:sticky; top:62px; z-index:30;
  background:color-mix(in srgb, var(--bg) 84%, transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.3); backdrop-filter:blur(14px) saturate(1.3);
  border-block:1px solid var(--line); padding-block:.7rem;
}
.smf-catnav .smf-chips{ padding:0; }

/* busca do cardápio */
.smf-menu-search{ position:relative; max-width:520px; margin:clamp(1.4rem,4vw,2.4rem) 0; }
.smf-menu-search .bi{ position:absolute; left:1.1rem; top:50%; transform:translateY(-50%); color:var(--ink-faint); }
.smf-menu-search input{
  width:100%; border-radius:40px; padding:.9rem 1.2rem .9rem 2.7rem;
  border:1px solid var(--line-strong); background:var(--surface); color:var(--text);
  font-family:var(--font-ui); font-size:.95rem;
}

/* seção de categoria */
.smf-cat-section{ padding-top:clamp(2rem,5vw,3.4rem); scroll-margin-top:150px; }
.smf-cat-head{
  display:flex; align-items:baseline; gap:1rem; margin-bottom:.4rem;
  padding-bottom:1.1rem; border-bottom:1.5px solid var(--ink);
}
[data-bs-theme="dark"] .smf-cat-head{ border-bottom-color:var(--text); }
.smf-cat-head .smf-index{ flex:0 0 auto; }
.smf-cat-head h2{ font-size:var(--step-2); display:flex; align-items:center; gap:.6rem; }
.smf-cat-head .count{ margin-left:auto; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }

/* linha de prato */
.smf-menu-row{
  display:grid; grid-template-columns:auto 1fr auto; grid-template-areas:"tile info aside";
  gap:clamp(1rem,3vw,1.8rem); align-items:center;
  padding:1.15rem .9rem; margin-inline:-.9rem; border-radius:18px;
  border-bottom:1px solid var(--line);
  transition:background .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
}
.smf-menu-row:hover{ background:var(--surface); box-shadow:var(--shadow-1); border-bottom-color:transparent; transform:translateX(2px); }
.smf-menu-tile{
  grid-area:tile; width:92px; height:92px; border-radius:16px; position:relative; overflow:hidden;
  display:grid; place-items:center; flex:0 0 92px;
  background:radial-gradient(circle at 30% 25%, rgba(255,255,255,.45), transparent 60%), linear-gradient(150deg,var(--paper-2),var(--paper-3));
}
[data-bs-theme="dark"] .smf-menu-tile{ background:linear-gradient(150deg,var(--night-3),var(--night-2)); }
.smf-menu-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.smf-menu-row:hover .smf-menu-tile img{ transform:scale(1.07); }
.smf-menu-tile .emoji{ font-size:2.4rem; filter:drop-shadow(0 6px 12px rgba(33,23,18,.16)); transition:transform .5s var(--ease-spring); }
.smf-menu-row:hover .smf-menu-tile .emoji{ transform:scale(1.12) rotate(-5deg); }
.smf-menu-info{ grid-area:info; min-width:0; }
.smf-menu-info h3{ font-family:var(--font-display); font-size:1.28rem; font-weight:540; letter-spacing:-.01em; margin:0 0 .25rem;
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.smf-menu-badge{ font-family:var(--font-ui); font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:.22rem .5rem; border-radius:30px; color:#fff; background:var(--azulejo); }
.smf-menu-info p{ font-size:.88rem; color:var(--text-soft); margin:0 0 .5rem; max-width:54ch; line-height:1.5; }
.smf-menu-info .smf-prod-tempo{ font-size:.76rem; color:var(--ink-faint); }
.smf-menu-aside{ grid-area:aside; display:flex; flex-direction:column; align-items:flex-end; gap:.7rem; }
.smf-menu-aside .smf-prod-preco{ font-family:var(--font-display); font-size:1.35rem; font-weight:560; color:var(--text); line-height:1; }
@media (max-width:560px){
  .smf-menu-row{ grid-template-columns:auto 1fr; grid-template-areas:"tile info" "aside aside"; row-gap:.8rem; }
  .smf-menu-tile{ width:72px; height:72px; flex-basis:72px; }
  .smf-menu-aside{ flex-direction:row; justify-content:space-between; align-items:center; width:100%; }
}

/* ----------------------------------------------------------------------------
   10c. CARRINHO + CHECKOUT (fluxo de pedido editorial)
   ---------------------------------------------------------------------------- */
.smf-order-head{ padding-block:clamp(2.2rem,6vw,4rem) clamp(1rem,3vw,1.8rem); }
.smf-order-head h1{ font-size:var(--step-3); }
.smf-order-head h1 em{ color:var(--dende); }

/* passos do fluxo (carrinho → entrega → pagamento) */
.smf-steps{ display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin-top:1rem; }
.smf-steps .st{ display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; font-weight:600; color:var(--ink-faint); }
.smf-steps .st .n{ width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:.72rem; font-weight:800;
  border:1.5px solid var(--line-strong); }
.smf-steps .st.is-current{ color:var(--text); }
.smf-steps .st.is-current .n{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.smf-steps .sep{ flex:1; min-width:18px; height:1.5px; background:var(--line); max-width:48px; }

/* layout duas colunas */
.smf-order-grid{ display:grid; grid-template-columns:1.55fr .95fr; gap:clamp(1.2rem,3vw,2.2rem); align-items:start; }
@media (max-width:900px){ .smf-order-grid{ grid-template-columns:1fr; } }

/* painel (substitui os cards bootstrap) */
.smf-panel{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.2rem,3vw,1.7rem); margin-bottom:1.1rem; }
.smf-panel-head{ display:flex; align-items:center; gap:.6rem; margin-bottom:1.2rem; }
.smf-panel-head .ic{ width:38px; height:38px; flex:0 0 38px; border-radius:50%; display:grid; place-items:center;
  background:var(--paper-2); color:var(--dende); font-size:1.05rem; }
[data-bs-theme="dark"] .smf-panel-head .ic{ background:var(--night-3); }
.smf-panel-head h2{ font-family:var(--font-display); font-size:1.3rem; font-weight:540; margin:0; }

/* campos de formulário (escopados para não afetar o admin) */
.smf-order label.form-label{ font-size:.78rem; font-weight:600; letter-spacing:.02em; color:var(--text-soft); margin-bottom:.35rem; }
.smf-order .form-control,
.smf-order .form-select,
.smf-cart-obs{
  background:var(--bg); color:var(--text);
  border:1px solid var(--line-strong); border-radius:12px; padding:.7rem .9rem;
  font-family:var(--font-ui); font-size:.95rem; transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.smf-order .form-control:focus,
.smf-order .form-select:focus,
.smf-cart-obs:focus{ border-color:var(--dende); box-shadow:0 0 0 3px rgba(226,87,30,.16); outline:none; }
.smf-field-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:.8rem; width:100%; }
.smf-field-grid > .c4{ grid-column:span 4; } .smf-field-grid > .c5{ grid-column:span 5; }
.smf-field-grid > .c6{ grid-column:span 6; } .smf-field-grid > .c7{ grid-column:span 7; }
.smf-field-grid > .c8{ grid-column:span 8; } .smf-field-grid > .c12{ grid-column:span 12; }
@media (max-width:560px){ .smf-field-grid > *{ grid-column:span 12 !important; } }

/* segmented control (entrega x retirada) */
.smf-segment{ display:grid; grid-template-columns:1fr 1fr; gap:.4rem; background:var(--paper-2); border-radius:14px; padding:.35rem; margin-bottom:1.1rem; }
[data-bs-theme="dark"] .smf-segment{ background:var(--night-3); }
.smf-segment input{ position:absolute; opacity:0; pointer-events:none; }
.smf-segment label{ text-align:center; padding:.7rem .6rem; border-radius:10px; font-weight:600; font-size:.9rem; cursor:pointer;
  color:var(--text-soft); transition:background .3s var(--ease), color .3s, box-shadow .3s; }
.smf-segment input:checked + label{ background:var(--surface); color:var(--text); box-shadow:var(--shadow-1); }
.smf-segment input:focus-visible + label{ outline:2px solid var(--dende); outline-offset:2px; }

/* pagamento: caixa PIX / troco */
.smf-pixbox{ margin-top:1rem; border:1px dashed var(--azulejo); background:rgba(15,110,94,.06); border-radius:16px; padding:1.1rem; }
.smf-pixbox .lbl{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--azulejo); font-weight:700; }
.smf-pixbox .key{ font-family:var(--font-ui); font-weight:700; word-break:break-all; margin:.2rem 0 .8rem; }
.smf-pixbox .smf-qr{ border-radius:12px; background:#fff; padding:6px; box-shadow:var(--shadow-1); }

/* resumo sticky */
.smf-summary{ position:sticky; top:84px; background:var(--night); color:var(--on-dark); border-radius:var(--radius-lg);
  padding:clamp(1.3rem,3vw,1.8rem); }
.smf-summary h2{ font-family:var(--font-display); color:var(--on-dark); font-size:1.4rem; margin:0 0 1.1rem; }
.smf-summary-items{ display:flex; flex-direction:column; gap:.5rem; margin-bottom:1rem;
  max-height:240px; overflow-y:auto; padding-right:.3rem; }
.smf-summary-items .d-flex{ font-size:.9rem; color:rgba(244,236,222,.85); }
.smf-summary .row-line{ display:flex; justify-content:space-between; align-items:center; padding:.35rem 0; font-size:.92rem; color:rgba(244,236,222,.8); }
.smf-summary .row-total{ display:flex; justify-content:space-between; align-items:baseline; padding-top:.9rem; margin-top:.6rem;
  border-top:1px solid rgba(244,236,222,.18); }
.smf-summary .row-total span:first-child{ font-size:.95rem; letter-spacing:.04em; text-transform:uppercase; color:rgba(244,236,222,.7); }
.smf-summary .row-total span:last-child{ font-family:var(--font-display); font-size:1.9rem; color:var(--on-dark); }
.smf-summary hr{ border-color:rgba(244,236,222,.18); }
.smf-summary .text-success{ color:var(--gold)!important; }

/* cupom */
.smf-coupon{ display:flex; gap:.5rem; margin-bottom:.4rem; }
.smf-coupon input{ flex:1; background:rgba(244,236,222,.06); border:1px solid rgba(244,236,222,.2); color:var(--on-dark);
  border-radius:10px; padding:.6rem .8rem; font-family:var(--font-ui); font-size:.88rem; }
.smf-coupon input::placeholder{ color:rgba(244,236,222,.45); }
.smf-coupon button{ flex:0 0 auto; background:transparent; border:1px solid var(--gold); color:var(--gold);
  border-radius:10px; padding:.6rem 1rem; font-weight:700; font-size:.85rem; cursor:pointer; transition:.3s; }
.smf-coupon button:hover{ background:var(--gold); color:var(--ink); }

/* checkbox LGPD */
.smf-summary .form-check-input{ background-color:transparent; border-color:rgba(244,236,222,.4); }
.smf-summary .form-check-input:checked{ background-color:var(--gold); border-color:var(--gold); }
.smf-summary .form-check-label{ color:rgba(244,236,222,.8); }
.smf-summary .form-check-label a{ color:var(--gold); }

/* botão enviar WhatsApp */
.smf-btn-whats{ width:100%; justify-content:center; background:var(--azulejo); color:#fff; margin-top:1.1rem; }
.smf-btn-whats::before{ background:var(--gold); }
.smf-btn-whats:hover{ color:var(--ink); }

/* ---------- itens do carrinho (renderizados por cart.js) ---------- */
.smf-cartpage .smf-cart-item{
  display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1rem; margin-bottom:.8rem; transition:box-shadow .4s var(--ease), border-color .3s;
}
.smf-cartpage .smf-cart-item:hover{ box-shadow:var(--shadow-1); border-color:var(--line-strong); }
.smf-cart-tile{ width:78px; height:78px; flex:0 0 78px; border-radius:14px; display:grid; place-items:center; font-size:2.1rem;
  background:linear-gradient(150deg,var(--paper-2),var(--paper-3)); background-size:cover; background-position:center; }
[data-bs-theme="dark"] .smf-cart-tile{ background:linear-gradient(150deg,var(--night-3),var(--night-2)); }
.smf-cart-top{ display:flex; justify-content:space-between; gap:.6rem; align-items:flex-start; }
.smf-cart-top h3{ font-family:var(--font-display); font-size:1.15rem; font-weight:540; margin:0; }
.smf-cart-rm{ background:none; border:none; color:var(--ink-faint); padding:.2rem; cursor:pointer; transition:color .3s; }
.smf-cart-rm:hover{ color:var(--wine); }
.smf-cart-unit{ font-family:var(--font-display); color:var(--dende); font-weight:560; font-size:1.05rem; margin:.15rem 0 .6rem; }
.smf-cart-controls{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; }
.smf-qty{ display:inline-flex; align-items:center; gap:.2rem; background:var(--bg); border:1px solid var(--line-strong); border-radius:30px; padding:.15rem; }
.smf-qty .smf-qty-btn{ width:38px; height:38px; border-radius:50%; border:none; background:transparent; color:var(--text); font-size:1.2rem; cursor:pointer; display:grid; place-items:center; }
.smf-qty .smf-qty-btn:hover{ background:var(--paper-2); }
[data-bs-theme="dark"] .smf-qty .smf-qty-btn:hover{ background:var(--night-3); }
.smf-qty span{ min-width:28px; text-align:center; font-weight:700; }
.smf-cart-obs{ flex:1; min-width:160px; }

/* resumo lateral do carrinho (claro) */
.smf-cart-summary{ position:sticky; top:84px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.3rem,3vw,1.7rem); }
.smf-cart-summary h2{ font-family:var(--font-display); font-size:1.35rem; margin:0 0 1rem; }
.smf-cart-summary .row-line{ display:flex; justify-content:space-between; padding:.4rem 0; color:var(--text-soft); }
.smf-cart-summary .row-total{ display:flex; justify-content:space-between; align-items:baseline; padding-top:1rem; margin-top:.5rem; border-top:1px solid var(--line); }
.smf-cart-summary .row-total span:last-child{ font-family:var(--font-display); font-size:1.8rem; color:var(--text); }
.smf-empty{ text-align:center; padding:clamp(3rem,8vw,5rem) 1rem; }
.smf-empty .ic{ font-size:3rem; opacity:.4; }

/* ----------------------------------------------------------------------------
   10d. ACOMPANHAR PEDIDO (timeline cinética)
   ---------------------------------------------------------------------------- */
.smf-confirm{ text-align:center; padding-block:clamp(2.4rem,6vw,4rem) 1rem; }
.smf-confirm-badge{ width:74px; height:74px; margin:0 auto 1.2rem; border-radius:50%; display:grid; place-items:center;
  font-size:2rem; background:linear-gradient(135deg,var(--azulejo),var(--azulejo-deep)); color:#fff;
  box-shadow:0 14px 36px -12px var(--azulejo); animation:smf-pop .6s var(--ease-spring) both; }
@keyframes smf-pop{ from{ transform:scale(.4); opacity:0; } to{ transform:scale(1); opacity:1; } }
.smf-confirm .code{ font-family:var(--font-display); font-size:var(--step-3); letter-spacing:-.01em; }
.smf-confirm .code em{ color:var(--dende); font-style:normal; }
.smf-confirm p{ color:var(--text-soft); }

.smf-track{ position:relative; display:grid; grid-auto-flow:column; grid-auto-columns:1fr;
  margin:clamp(2.2rem,5vw,3.4rem) auto clamp(2rem,5vw,3rem); max-width:760px; }
.smf-track .line{ position:absolute; top:27px; left:11%; right:11%; height:3px; background:var(--line); border-radius:3px; }
.smf-track .line .fill{ position:absolute; inset:0 auto 0 0; height:100%; background:linear-gradient(90deg,var(--azulejo),var(--dende));
  border-radius:3px; width:0; transition:width 1.1s var(--ease) .2s; }
.smf-tstep{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:.7rem; }
.smf-tdot{ width:56px; height:56px; border-radius:50%; display:grid; place-items:center; font-size:1.3rem;
  background:var(--surface); border:2px solid var(--line-strong); color:var(--ink-faint);
  transition:background .5s var(--ease), border-color .5s, color .5s, box-shadow .5s; }
.smf-tstep.done .smf-tdot{ background:var(--azulejo); border-color:var(--azulejo); color:#fff; }
.smf-tstep.active .smf-tdot{ background:var(--dende); border-color:var(--dende); color:#fff;
  box-shadow:0 0 0 0 rgba(226,87,30,.4); animation:smf-pulse-d 2s infinite; }
@keyframes smf-pulse-d{ 0%{box-shadow:0 0 0 0 rgba(226,87,30,.4)} 70%{box-shadow:0 0 0 14px rgba(226,87,30,0)} 100%{box-shadow:0 0 0 0 rgba(226,87,30,0)} }
.smf-tlabel{ font-size:.84rem; font-weight:600; color:var(--text-soft); text-align:center; line-height:1.2; }
.smf-tstep.done .smf-tlabel, .smf-tstep.active .smf-tlabel{ color:var(--text); }
@media (max-width:560px){
  .smf-tdot{ width:44px; height:44px; font-size:1rem; }
  .smf-track .line{ top:21px; }
  .smf-tlabel{ font-size:.72rem; }
}

/* PIX Copia e Cola na página de acompanhamento */
.smf-pix-pay{ border:1px dashed var(--azulejo); background:rgba(15,110,94,.05); }
.smf-pix-grid{ display:grid; grid-template-columns:170px 1fr; gap:1.4rem; align-items:center; }
.smf-pix-qr{ background:#fff; border-radius:14px; padding:8px; box-shadow:var(--shadow-1); }
.smf-pix-qr svg{ width:100%; height:auto; display:block; }
.smf-pix-code{ width:100%; font-family:ui-monospace, "Courier New", monospace; font-size:.7rem; line-height:1.4;
  border:1px solid var(--line-strong); border-radius:10px; padding:.6rem .7rem; background:var(--bg); color:var(--text-soft);
  word-break:break-all; resize:none; }
@media (max-width:520px){
  .smf-pix-grid{ grid-template-columns:1fr; }
  .smf-pix-qr{ width:200px; margin:0 auto; }
}

/* ----------------------------------------------------------------------------
   10e. AVALIAR (rating editorial)
   ---------------------------------------------------------------------------- */
.smf-rate-wrap{ max-width:580px; margin-inline:auto; padding-block:clamp(2.4rem,6vw,4rem); }
.smf-rate-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.6rem,4vw,2.4rem); }
.smf-rate-card .form-control{ background:var(--bg); border:1px solid var(--line-strong); border-radius:12px; color:var(--text);
  padding:.8rem .95rem; font-family:var(--font-ui); }
.smf-rate-card .form-control:focus{ border-color:var(--dende); box-shadow:0 0 0 3px rgba(226,87,30,.16); outline:none; }
.smf-rate-label{ font-size:.78rem; font-weight:600; letter-spacing:.02em; color:var(--text-soft); margin-bottom:.4rem; display:block; }
/* estrelas (sobrepõe style.css) */
.smf-stars{ display:inline-flex; flex-direction:row-reverse; justify-content:center; gap:.35rem; font-size:2.6rem; }
.smf-stars input{ display:none; }
.smf-stars label{ color:var(--line-strong); cursor:pointer; transition:transform .2s var(--ease-spring), color .2s; }
.smf-stars label:hover{ transform:scale(1.18); }
.smf-stars input:checked ~ label,
.smf-stars label:hover, .smf-stars label:hover ~ label{ color:var(--gold); }

/* ----------------------------------------------------------------------------
   10f. PÁGINA LEGAL (privacidade)
   ---------------------------------------------------------------------------- */
.smf-legal{ max-width:740px; margin-inline:auto; padding-block:clamp(2.4rem,6vw,4rem) clamp(3rem,8vw,6rem); }
.smf-legal h1{ font-size:var(--step-3); margin:.6rem 0 .4rem; }
.smf-legal .meta{ font-size:.8rem; color:var(--ink-faint); letter-spacing:.04em; }
.smf-legal section{ padding:1.6rem 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:auto 1fr; gap:1.2rem; align-items:start; }
.smf-legal section .num{ font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--dende); }
.smf-legal h2{ font-family:var(--font-display); font-size:1.3rem; font-weight:540; margin:0 0 .5rem; }
.smf-legal p{ color:var(--text-soft); margin:0; line-height:1.65; }
@media (max-width:520px){ .smf-legal section{ grid-template-columns:1fr; gap:.4rem; } }

/* ----------------------------------------------------------------------------
   11. SEÇÃO "NIGHT" (depoimentos / história)
   ---------------------------------------------------------------------------- */
.smf-night{ background:var(--night); color:var(--on-dark); }
.smf-night .smf-eyebrow{ color:var(--gold); }
.smf-night .smf-eyebrow::before{ background:var(--gold); }
.smf-night .smf-section-title{ color:var(--on-dark); }
.smf-night .smf-index{ color:rgba(244,236,222,.5); }

/* Depoimentos */
.smf-reviews-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.3rem; }
.smf-review{
  border:1px solid rgba(244,236,222,.16); border-radius:var(--radius); padding:1.6rem 1.5rem;
  background:rgba(244,236,222,.03); transition:transform .5s var(--ease), background .4s;
}
.smf-review:hover{ transform:translateY(-4px); background:rgba(244,236,222,.06); }
.smf-review-stars{ color:var(--gold); font-size:1rem; letter-spacing:.1em; margin-bottom:.9rem; }
.smf-review-text{ font-family:var(--font-display); font-style:italic; font-size:1.12rem; line-height:1.4;
  color:var(--on-dark); margin:0 0 1.1rem; }
.smf-review-author{ font-size:.82rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); }

/* ----------------------------------------------------------------------------
   12. FAIXA PROMO (editorial, sem carrossel bootstrap quando possível)
   ---------------------------------------------------------------------------- */
.smf-promo{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;
}
.smf-promo-cell{ background:var(--surface); padding:1.7rem 1.6rem; display:flex; flex-direction:column; gap:.5rem;
  transition:background .4s var(--ease); }
.smf-promo-cell:hover{ background:var(--paper-2); }
.smf-promo-cell .ic{ font-size:1.6rem; }
.smf-promo-cell h4{ font-family:var(--font-display); font-size:1.15rem; margin:.2rem 0 0; }
.smf-promo-cell p{ font-size:.85rem; color:var(--text-soft); margin:0; }
.smf-promo-cell code{ font-family:var(--font-ui); font-weight:800; letter-spacing:.05em; color:var(--dende);
  background:rgba(226,87,30,.1); padding:.1rem .4rem; border-radius:6px; }

/* ----------------------------------------------------------------------------
   13. FOOTER
   ---------------------------------------------------------------------------- */
.smf-footer{ background:var(--night)!important; color:var(--on-dark)!important; padding-block:clamp(3rem,7vw,5.5rem) 2rem; position:relative; overflow:hidden; }
.smf-footer a{ color:rgba(244,236,222,.92)!important; transition:color .3s; }
.smf-footer a:hover{ color:var(--gold)!important; }
.smf-footer-mark{ font-family:var(--font-display); font-size:clamp(2.6rem,9vw,6.5rem); line-height:.95; letter-spacing:-.03em; }
.smf-footer-mark em{ color:var(--dende); }
.smf-footer h6{ font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
.smf-footer-cols{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem; margin-top:2.5rem; }
.smf-footer ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; font-size:.9rem; }
.smf-footer-base{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;
  margin-top:3rem; padding-top:1.5rem; border-top:1px solid rgba(244,236,222,.16); font-size:.8rem; color:rgba(244,236,222,.82); }
@media (max-width:760px){ .smf-footer-cols{ grid-template-columns:1fr 1fr; } }

/* ----------------------------------------------------------------------------
   14. CART BAR FIXA (refinada)
   ---------------------------------------------------------------------------- */
.smf-cartbar{
  background:var(--night)!important; color:var(--on-dark)!important;
  border-radius:50px; left:auto; right:var(--gutter); bottom:1.2rem;
  width:min(420px, calc(100% - 2*var(--gutter))); padding:.7rem .7rem .7rem 1.4rem;
  box-shadow:var(--shadow-2); border:1px solid rgba(244,236,222,.12);
}
.smf-cartbar .smf-cartbar-cta{ background:var(--dende)!important; color:#fff!important; }

/* ----------------------------------------------------------------------------
   15. REVEAL / ANIMAÇÃO DE ENTRADA
   ---------------------------------------------------------------------------- */
@media (prefers-reduced-motion:no-preference){
  .smf-fx{ opacity:0; transform:translateY(28px); }
  .smf-fx.in{ opacity:1; transform:none; transition:opacity .9s var(--ease), transform .9s var(--ease); }
  .smf-fx-stagger > *{ opacity:0; transform:translateY(26px); }
  .smf-fx-stagger.in > *{ opacity:1; transform:none; transition:opacity .8s var(--ease), transform .8s var(--ease); }
}

/* ----------------------------------------------------------------------------
   15b. ADMIN (painel "Mesa Farta")
   ---------------------------------------------------------------------------- */
/* Sidebar */
.smf-admin-sidebar{
  background:var(--night)!important; color:var(--on-dark)!important;
  border-right:1px solid rgba(244,236,222,.08); padding:1.4rem 1rem!important;
}
@media (min-width:992px){ .smf-admin-sidebar{ min-height:100vh; position:sticky; top:0; } }
.smf-admin-sidebar h5{
  font-family:var(--font-display)!important; font-weight:560; color:var(--on-dark)!important;
  font-size:1.25rem; letter-spacing:-.01em; display:flex; align-items:center; gap:.5rem; margin-bottom:1.4rem!important;
}
.smf-admin-sidebar .nav{ gap:.15rem; }
.smf-admin-sidebar a{
  color:rgba(244,236,222,.72)!important; display:flex!important; align-items:center; gap:.75rem;
  padding:.6rem .85rem!important; border-radius:12px!important; font-weight:500; font-size:.92rem;
  transition:background .25s var(--ease), color .25s, padding-left .25s var(--ease);
}
.smf-admin-sidebar a i{ font-size:1.05rem; width:20px; text-align:center; opacity:.9; }
.smf-admin-sidebar a:hover{ background:rgba(244,236,222,.07)!important; color:var(--on-dark)!important; padding-left:1.05rem!important; }
.smf-admin-sidebar a.active{ background:var(--dende)!important; color:#fff!important; box-shadow:0 8px 20px -8px var(--dende); }
.smf-admin-sidebar hr{ border-color:rgba(244,236,222,.12)!important; opacity:1; margin:.9rem .4rem; }
.smf-admin-sidebar .text-white-50,
.smf-admin-sidebar .small{ color:rgba(244,236,222,.5)!important; }

/* Conteúdo */
.smf-admin-sidebar + main, .container-fluid > .row > main{ background:var(--bg); }
.smf-adm-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1.4rem; }
.smf-adm-title{ font-family:var(--font-display); font-weight:560; font-size:var(--step-2); letter-spacing:-.01em; margin:0; }
.smf-adm-title small{ font-family:var(--font-ui); font-size:.8rem; color:var(--ink-faint); font-weight:500; }
.smf-adm-sub{ color:var(--text-soft); font-size:.92rem; margin:.2rem 0 0; }

/* Painel/card do admin */
.smf-adm-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.smf-adm-card-pad{ padding:clamp(1.1rem,2.5vw,1.5rem); }

/* Filtros (chips) */
.smf-adm-filters{ display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1.2rem; }

/* Tabela do admin */
.smf-adm-table{ width:100%; border-collapse:collapse; }
.smf-adm-table thead th{
  text-align:left; font-family:var(--font-ui); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-faint); font-weight:700; padding:.85rem 1rem; border-bottom:1px solid var(--line); white-space:nowrap;
}
.smf-adm-table tbody td{ padding:.85rem 1rem; border-bottom:1px solid var(--line); font-size:.92rem; vertical-align:middle; }
.smf-adm-table tbody tr{ transition:background .2s var(--ease); }
.smf-adm-table tbody tr:hover{ background:var(--paper-2); }
[data-bs-theme="dark"] .smf-adm-table tbody tr:hover{ background:var(--night-3); }
.smf-adm-table tbody tr:last-child td{ border-bottom:none; }
.smf-adm-code{ font-family:var(--font-ui); font-weight:700; color:var(--text); text-decoration:none; }
.smf-adm-code:hover{ color:var(--dende); }
.smf-adm-total{ font-family:var(--font-display); font-weight:560; font-size:1.05rem; }
.smf-adm-muted{ color:var(--ink-faint); font-size:.82rem; }

/* Badge de status (código de cores) */
.smf-badge{ display:inline-flex; align-items:center; gap:.42rem; font-family:var(--font-ui); font-size:.72rem; font-weight:700;
  letter-spacing:.03em; text-transform:uppercase; padding:.34rem .66rem; border-radius:30px; white-space:nowrap; }
.smf-badge::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.smf-badge--recebido{ color:var(--azulejo); background:rgba(15,110,94,.14); }
.smf-badge--preparo{ color:#a9720f; background:rgba(233,169,60,.20); }
.smf-badge--entrega{ color:var(--dende); background:rgba(226,87,30,.13); }
.smf-badge--entregue{ color:#2f7d4f; background:rgba(47,125,79,.15); }
.smf-badge--cancelado{ color:var(--wine); background:rgba(123,34,51,.13); }

/* Select de status inline */
.smf-adm-select{
  font-family:var(--font-ui); font-size:.85rem; font-weight:600; color:var(--text);
  background:var(--bg); border:1px solid var(--line-strong); border-radius:10px; padding:.4rem .7rem; cursor:pointer;
}
.smf-adm-select:focus{ outline:none; border-color:var(--dende); box-shadow:0 0 0 3px rgba(226,87,30,.15); }

/* Ícone-ação */
.smf-adm-iconbtn{ width:36px; height:36px; border-radius:10px; display:inline-grid; place-items:center;
  border:1px solid var(--line-strong); color:var(--text-soft); background:var(--bg); transition:.25s; text-decoration:none; }
.smf-adm-iconbtn:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* Detalhe: linha de itens */
.smf-adm-item{ display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--line); }
.smf-adm-item:last-of-type{ border-bottom:none; }
.smf-adm-kv{ display:flex; justify-content:space-between; padding:.35rem 0; font-size:.92rem; }
.smf-adm-kv.total{ font-family:var(--font-display); font-size:1.15rem; border-top:1px solid var(--line); margin-top:.4rem; padding-top:.7rem; }

/* Timeline vertical do histórico */
.smf-adm-hist{ list-style:none; padding:0; margin:.4rem 0 0; }
.smf-adm-hist li{ position:relative; padding:0 0 .9rem 1.3rem; font-size:.85rem; color:var(--text-soft); }
.smf-adm-hist li::before{ content:""; position:absolute; left:2px; top:5px; width:8px; height:8px; border-radius:50%; background:var(--dende); }
.smf-adm-hist li::after{ content:""; position:absolute; left:5.5px; top:12px; bottom:-2px; width:1px; background:var(--line); }
.smf-adm-hist li:last-child::after{ display:none; }

/* ----------------------------------------------------------------------------
   16. ACESSIBILIDADE / REDUCED MOTION
   ---------------------------------------------------------------------------- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, .smf-chip:focus-visible, .smf-btn:focus-visible{
  outline:2.5px solid var(--dende); outline-offset:3px; border-radius:6px;
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .smf-marquee-track{ animation:none; }
  .smf-status .smf-dot{ animation:none; }
  *,*::before,*::after{ animation-duration:.001ms!important; transition-duration:.001ms!important; }
}
