html {
    scroll-padding-top: 76px;
}

/* ============================================================
   TOKEN SYSTEM
   ============================================================ */
:root {
    --brand-700: #0b57d0;
    --brand-600: #1565e8;
    --brand-500: #2f7eff;
    --ink-900: #0f172a;
    --ink-700: #334155;
    --ink-500: #64748b;
    --line: #dbe7ff;
    --surface: #f4f8ff;
    --card-shadow: 0 14px 34px rgba(18,40,88,.12);
    --section-gap: 1.25rem;
    --gold-500: #F59E0B;
    --gold-100: #FEF3C7;
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
body {
    font-family: "Plus Jakarta Sans", "Avenir Next", "Nunito Sans", "Segoe UI", sans-serif;
    color: var(--ink-900);
}

/* ============================================================
   TOOLTIP
   ============================================================ */
.card-title-tooltip {
    --bs-tooltip-bg: #0d6efd;
    --bs-tooltip-color: #eef2ff;
}

/* ============================================================
   NAVBAR
   ============================================================ */
.navbar {
    background: linear-gradient(135deg, #0d6efd 0%, #5a8cff 60%, #9bb6ff 100%);
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .1);
}

.navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    text-decoration: none;
}

.brand-logo {
    height: 38px;
    width: auto;
    display: block;
    object-fit: contain;
}

.brand-name {
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1;
    letter-spacing: .3px;
    color: #fff;
    position: relative;
    top: 1px;
}

@media (max-width: 575.98px) {
    .brand-logo { height: 34px; }
    .brand-name { font-size: 1rem; }
}

.navbar .brand-name,
.navbar .nav-link,
.navbar .navbar-brand {
    color: #fff !important;
}

.navbar .nav-link:hover {
    color: #c9d9ff !important;
}

.navbar .btn.btn-primary {
    background: #fff;
    color: #0d6efd;
    border: none;
    font-weight: 600;
}

.navbar .btn.btn-primary:hover {
    background: #c9d9ff;
    color: #0d6efd;
}

.navbar .nav-link i,
.navbar .dropdown-item i {
    color: #fffa;
}

.navbar .dropdown-menu {
    background: #ffffff;
    border: none;
    border-radius: .75rem;
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
}

.navbar .dropdown-item {
    color: #212529 !important;
}

.navbar .dropdown-item:hover {
    background: #f1f3f5;
    color: #5a8cff !important;
}

@media (max-width: 991.98px) {
    .dropdown-menu { border-radius: .5rem; }
    .navbar .nav-link { padding: .6rem .4rem; }
}

/* ============================================================
   TRUST STRIP
   ============================================================ */
.trust-strip {
    background: #fff;
    border-bottom: 1px solid var(--line);
    padding: .85rem 0;
}

.trust-strip .trust-number {
    font-weight: 800;
    font-size: 1.15rem;
    color: var(--brand-700);
    line-height: 1;
    display: block;
    margin-bottom: .15rem;
}

.trust-strip .trust-label {
    font-size: .78rem;
    color: var(--ink-500);
}

/* ============================================================
   BADGES
   ============================================================ */
.badge-soft {
    background: #e7f8ee !important;
    color: #146c43 !important;
    border: 1px solid #b7e4c7;
    font-weight: 700;
}

.badge-price {
    background: #fff3d6 !important;
    color: #8a4b08 !important;
    border: 1px solid #f0d29a;
    font-weight: 700;
}

.badge-available {
    background: var(--gold-100) !important;
    color: #92400E !important;
    border: 1px solid #FDE68A;
    font-weight: 700;
}

/* ============================================================
   FOOTER
   ============================================================ */
footer.site-footer {
    background: #0f172a;
    color: #94a3b8;
}

footer.site-footer a {
    transition: color .15s ease;
}

footer.site-footer a:hover {
    color: #fff !important;
}

footer.site-footer .footer-heading {
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #cbd5e1;
    margin-bottom: .75rem;
}

footer.site-footer .footer-link {
    display: block;
    color: #64748b;
    text-decoration: none;
    font-size: .875rem;
    margin-bottom: .45rem;
}

footer.site-footer .footer-brand-name {
    font-weight: 700;
    color: #f1f5f9;
    font-size: 1rem;
}

footer.site-footer .footer-tagline {
    font-size: .83rem;
    color: #64748b;
    margin-top: .35rem;
}

footer.site-footer .footer-divider {
    border-color: #1e293b;
    margin: 1.5rem 0 1rem;
}

footer.site-footer .footer-legal {
    font-size: .78rem;
    color: #475569;
}

/* ============================================================
   REDESIGN ALERТА MÁGICO — referência visual oficial
   Integrado diretamente ao app.css. Sem folha de tema adicional.
   ============================================================ */
:root {
  --brand-700:#0b57d0; --brand-600:#1565e8; --brand-500:#2f7eff;
  --ink-900:#17233b; --ink-700:#334155; --ink-500:#64748b;
  --line:#dbe7ff; --surface:#f4f8ff; --cream:#fffaf0;
  --gold-500:#f59e0b; --gold-100:#fef3c7; --night:#0f172a;
  --gradient-night:linear-gradient(160deg,#14295c 0%,#0e1c40 55%,#0b1530 100%);
  --gradient-blue:linear-gradient(120deg,#0b57d0,#2f7eff);
  --gradient-gold:linear-gradient(100deg,#fbbf24,#f59e0b 55%,#ea9004);
  --shadow-tile:0 1px 2px rgba(18,40,88,.06),0 18px 40px -24px rgba(18,40,88,.35);
  --shadow-lift:0 2px 4px rgba(18,40,88,.08),0 30px 60px -28px rgba(18,40,88,.45);
  --shadow-gold:0 18px 40px -18px rgba(217,119,6,.55);
  --ease-soft:cubic-bezier(.22,1,.36,1);
  --mobile-bottom-nav-h:64px;
}
html { scroll-behavior:smooth; }
body { background:#fff; color:var(--ink-900); font-family:"Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
h1,h2,h3 { color:var(--ink-900); letter-spacing:-.02em; text-wrap:balance; }
p { text-wrap:pretty; }
.text-muted { color:var(--ink-500)!important; }

/* ── Section divider (system-wide) ── */
.section-divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 2.5rem 0;
    color: var(--gold-500);
    font-size: .6rem;
}
.section-divider::before,
.section-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--line);
}

/* ── Section eyebrow (system-wide) ── */
.section-eyebrow {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #1565e8;
    margin-bottom: .4rem;
}
main.container { max-width:none; padding-left:0; padding-right:0; margin-top:0!important; }
main.container > .container:first-child { margin-top:2rem; }

/* Header igual ao modelo: branco translúcido, não azul */
.navbar.navbar-expand-lg.sticky-top { min-height:64px; padding:.5rem 0; background:rgba(255,255,255,.88); border-bottom:1px solid rgba(219,231,255,.85); box-shadow:none; backdrop-filter:blur(16px) saturate(150%); -webkit-backdrop-filter:blur(16px) saturate(150%); }
.navbar .brand-logo { height:36px; content:url("../images/logo_transparent_blue-NoIZoha.png"); }
.navbar .brand-name { color:var(--ink-900)!important; font-size:1.05rem; font-weight:800; letter-spacing:-.03em; }
.navbar .brand-name::first-letter { color:var(--ink-900); }
.navbar .nav-link,.navbar .navbar-brand { color:var(--ink-500)!important; }
.navbar .nav-link { padding:.5rem .78rem!important; border-radius:999px; font-size:.86rem; font-weight:700; transition:.2s ease; }
.navbar .nav-link i { color:var(--ink-500)!important; }
.navbar .nav-link:hover,.navbar .nav-link:focus { color:var(--brand-700)!important; background:var(--surface); }
.navbar .nav-link:hover i { color:var(--brand-700)!important; }
.navbar .btn.btn-primary { border:0; border-radius:999px; padding:.56rem 1rem; color:#6f3905!important; background:var(--gradient-gold); box-shadow:var(--shadow-gold); font-weight:800; }
.navbar .btn.btn-primary:hover { color:#6f3905!important; background:var(--gradient-gold); transform:translateY(-1px); }
.navbar .dropdown-menu { padding:.45rem; border:1px solid var(--line); border-radius:1rem; box-shadow:var(--shadow-lift); }
.navbar .dropdown-item { padding:.55rem .7rem; border-radius:.65rem; font-size:.88rem; font-weight:600; }
.navbar .dropdown-item:hover { color:var(--brand-700)!important; background:var(--surface); }

/* Botões */
.btn { border-radius:999px; font-weight:750; transition:transform .22s var(--ease-soft),box-shadow .22s var(--ease-soft),filter .22s ease; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { border-color:transparent; color:#fff; background:var(--gradient-blue); box-shadow:0 16px 34px -18px rgba(11,87,208,.8); }
.btn-primary:hover,.btn-primary:focus { border-color:transparent; color:#fff; background:var(--gradient-blue); filter:brightness(1.04); }
.btn-outline-primary { border:1.5px solid var(--brand-600); color:var(--brand-700); background:#fff; }
.btn-outline-primary:hover { border-color:var(--brand-600); color:var(--brand-700); background:var(--surface); }
.btn-light { border:0; color:#6f3905; background:var(--gradient-gold); box-shadow:var(--shadow-gold); }
.btn-light:hover { color:#6f3905; background:var(--gradient-gold); filter:brightness(1.03); }
.btn-outline-light:hover { color:#fff; background:rgba(255,255,255,.12); }
.form-control,.form-select { border:1.5px solid var(--line); border-radius:.85rem; color:var(--ink-900); }
.form-control:focus,.form-select:focus { border-color:var(--brand-500); box-shadow:0 0 0 4px rgba(47,126,255,.14); }
.form-label { color:var(--ink-900); font-weight:700; }

/* Títulos e divisores */
.section-title,.cal-section-title { color:var(--ink-900)!important; font-weight:850!important; letter-spacing:-.03em; }
.section-title { position:relative; padding-bottom:.7rem; }
.section-title::after { content:""; position:absolute; bottom:0; left:0; width:64px; height:3px; border-radius:999px; background:var(--gradient-gold)!important; box-shadow:0 6px 18px rgba(245,158,11,.3); }
.section-title.text-center::after { left:50%; transform:translateX(-50%); }
.hero-divider::before { background:linear-gradient(90deg,transparent,rgba(21,101,232,.25),transparent)!important; }
.hero-divider::after { content:"✦"!important; display:grid; place-items:center; width:48px!important; height:20px!important; background:#fff!important; color:var(--gold-500); filter:none!important; font-size:.8rem; }

/* Hero e faixas */
.hero-full::after { background:linear-gradient(180deg,rgba(12,24,54,.88) 0%,rgba(13,31,70,.72) 45%,rgba(10,20,45,.94) 100%)!important; }
.hero-full::before { background:radial-gradient(circle,rgba(245,158,11,.26),transparent 70%)!important; }
.hero-title,.how-hero-title,.pricing-hero-title { color:#f8fafc!important; font-weight:900!important; letter-spacing:-.045em!important; text-shadow:0 18px 40px rgba(0,0,0,.32); }
.hero-eyebrow,.how-hero .badge-soft,.pricing-badge { border:1px solid rgba(245,158,11,.45)!important; color:#fbbf24!important; background:rgba(255,255,255,.06)!important; text-transform:uppercase; letter-spacing:.14em!important; font-size:.72rem!important; font-weight:800!important; }
.hero-lead,.how-hero-lead,.pricing-hero-lead { color:rgba(248,250,252,.76)!important; }
.hero-highlights i,.hero-contact a { color:#fbbf24!important; }
.how-hero,.pricing-hero,.restaurant-hero-wrap,.lp-section--hero { background:var(--gradient-night)!important; color:#f8fafc; }
.how-hero::before,.pricing-hero::before,.restaurant-hero-wrap::before,.lp-section--hero::before { content:""; position:absolute; width:540px; height:540px; right:-120px; top:-230px; border-radius:50%; background:radial-gradient(circle,rgba(245,158,11,.2),transparent 70%); pointer-events:none; }
.final-cta,.final-band,.lp-cta { color:#f8fafc; background:var(--gradient-night)!important; border:1px solid rgba(255,255,255,.1); border-radius:1.5rem; }
.final-cta h2,.final-band h3,.lp-cta h2 { color:#f8fafc; }

/* Cards globais */
.card,.process-card,.faq-card,.faq-item,.value-item,.pricing-card,.alert-card,.alert-form-card,.calendar-card,.auth-card,.lp-plain-block { border:1px solid var(--line); border-radius:1.25rem; background:#fff; box-shadow:var(--shadow-tile); overflow:hidden; }
.card,.process-card,.faq-card,.faq-item,.value-item,.pricing-card { transition:transform .35s var(--ease-soft),box-shadow .35s var(--ease-soft),border-color .35s var(--ease-soft); }
.card:hover,.process-card:hover,.faq-card:hover,.faq-item:hover,.value-item:hover,.pricing-card:hover { transform:translateY(-6px); border-color:rgba(21,101,232,.35); box-shadow:var(--shadow-lift); }
.badge { border-radius:999px; padding:.38em .65em; font-weight:700; }
.badge-soft,.badge-price { color:var(--brand-700)!important; border:1px solid var(--line)!important; background:var(--surface)!important; }
.process-card { padding:1.75rem; background:var(--cream); }
.process-badge { width:auto; height:auto; display:block; color:rgba(245,158,11,.62)!important; background:none!important; box-shadow:none!important; font-size:2.35rem; font-weight:900; line-height:1; }
.process-card h3 { margin-top:1rem; color:var(--ink-900); font-size:1.05rem; font-weight:850; }
.process-card p,.faq-a { color:var(--ink-500); line-height:1.6; }
.faq-card { padding:1.2rem 1.3rem; }
.faq-q { color:var(--ink-900); font-weight:800; }

/* Trust */
.trust-strip { padding:1.65rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--cream); }
.trust-strip .container > div { justify-content:space-between!important; max-width:900px; margin:auto; }
.trust-strip .trust-number { color:var(--brand-700); font-size:1.4rem; font-weight:900; }
.trust-strip .trust-label { color:var(--ink-500); font-size:.78rem; }

/* Rodapé */
footer.site-footer { color:rgba(248,250,252,.7); background:var(--gradient-night); border-top:1px solid rgba(255,255,255,.08); }
footer.site-footer .footer-brand-name { color:#fff; font-weight:800; }
footer.site-footer .footer-heading { color:#fbbf24; font-size:.72rem; font-weight:800; letter-spacing:.13em; }
footer.site-footer .footer-link,footer.site-footer .footer-tagline { color:rgba(248,250,252,.68); }
footer.site-footer .footer-link:hover { color:#fbbf24!important; }
footer.site-footer .footer-divider { border-color:rgba(255,255,255,.12); }
footer.site-footer .footer-legal { color:rgba(248,250,252,.48); }

/* Páginas Bootstrap comuns */
.container > .card.shadow-sm,.container > .card { border-color:var(--line); border-radius:1.25rem; box-shadow:var(--shadow-tile)!important; }
.alert { border-radius:1rem; }

@media (max-width:575.98px) {
  .navbar.navbar-expand-lg.sticky-top { min-height:58px; }
  .navbar .brand-logo { height:32px; }
  .brand-name { font-size:.96rem!important; }
}

/* Cards de restaurantes */
.restaurant-card { position:relative; display:flex; flex-direction:column; min-width:0; border:1px solid var(--line); border-radius:1.25rem; overflow:hidden; background:#fff; box-shadow:var(--shadow-tile); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.restaurant-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lift); border-color:rgba(21,101,232,.25); }
.restaurant-card-media { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; background:var(--surface); flex-shrink:0; }
.restaurant-card-media > img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease-soft); }
.restaurant-card:hover .restaurant-card-media > img { transform:scale(1.06); }
.rc-price-badge { position:absolute; top:.75rem; left:.75rem; padding:.25rem .6rem; border-radius:2rem; font-size:.72rem; font-weight:700; color:#6f3905; background:rgba(254,243,199,.95); border:1px solid rgba(245,158,11,.3); backdrop-filter:blur(4px); }
.restaurant-card-body { flex:1; padding:1rem 1.25rem 1.25rem!important; display:flex; flex-direction:column; gap:.25rem; }
.rc-name { font-size:1rem; font-weight:800; color:var(--ink-900); line-height:1.2; }
.rc-location { font-size:.8rem; color:var(--ink-500); }
.rc-cta { margin-top:auto; padding-top:.6rem; font-size:.84rem; font-weight:700; color:#1565e8; display:inline-flex; align-items:center; gap:.35rem; }

/* Categoria */
.hero-mini { position:relative; overflow:hidden; color:#fff; border:0; border-radius:1.5rem!important; background:var(--gradient-blue)!important; box-shadow:var(--shadow-tile); }
.hero-mini::after { content:""; position:absolute; width:300px; height:300px; right:-90px; top:-160px; border-radius:50%; background:radial-gradient(circle,rgba(245,158,11,.3),transparent 70%); pointer-events:none; }
.hero-mini > * { position:relative; z-index:1; }
.hero-mini h1 { color:#fff; font-weight:900; }
.hero-mini .btn-light { color:var(--brand-700); background:#fff; box-shadow:none; }
.cards-grid .col { display:flex; }
.cards-grid .restaurant-card { width:100%; }

/* ==== v4: botões e espaçamentos finais ==== */
.btn-success, .btn-success:focus { color:#3b2405!important; border:none!important; background:var(--gradient-gold)!important; box-shadow:var(--shadow-gold)!important; }
.btn-success:hover { color:#3b2405!important; filter:brightness(1.04); transform:translateY(-1px); }
main { min-height:0!important; }

/* ============================================================
   MOBILE BOTTOM NAVIGATION (< lg)
   ============================================================ */
@media (max-width:991.98px) {
  body { padding-bottom:calc(var(--mobile-bottom-nav-h) + env(safe-area-inset-bottom, 0px)); }
}

.mobile-bottom-nav {
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1030;
  display:flex;
  align-items:stretch;
  justify-content:space-around;
  background:#fff;
  border-top:1px solid var(--line);
  box-shadow:0 -8px 24px -16px rgba(18,40,88,.35);
  padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom, 0px));
}

.mobile-bottom-nav__item {
  flex:1 1 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:.2rem;
  padding:.25rem .1rem;
  background:none;
  border:0;
  color:var(--ink-500);
  font-size:.66rem;
  font-weight:700;
  text-decoration:none;
  line-height:1.1;
}

.mobile-bottom-nav__item i {
  font-size:1.1rem;
  color:var(--ink-500);
}

.mobile-bottom-nav__item.active,
.mobile-bottom-nav__item.active i {
  color:var(--brand-700);
}

.mobile-bottom-nav__item--cta {
  justify-content:flex-start;
  margin-top:-1.6rem;
  color:var(--ink-900);
  font-weight:800;
}

.mobile-bottom-nav__cta-circle {
  display:flex;
  align-items:center;
  justify-content:center;
  width:3rem;
  height:3rem;
  border-radius:50%;
  background:var(--gradient-gold);
  box-shadow:var(--shadow-gold);
  margin-bottom:.15rem;
}

.mobile-bottom-nav__cta-circle i {
  color:#6f3905;
  font-size:1.25rem;
}

/* "More" sheet */
.mobile-more-menu .offcanvas-header {
  border-bottom:1px solid var(--line);
  padding:1rem 1.25rem;
}

.mobile-more-menu .offcanvas-title {
  font-weight:800;
  color:var(--ink-900);
}

.mobile-more-menu .offcanvas-body {
  padding:.75rem 1rem calc(1.25rem + env(safe-area-inset-bottom, 0px));
}

.mobile-more-menu__link {
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.85rem .75rem;
  border-radius:.85rem;
  color:var(--ink-900);
  font-weight:700;
  font-size:.95rem;
  text-decoration:none;
}

.mobile-more-menu__link i {
  width:1.25rem;
  text-align:center;
  color:var(--ink-500);
}

.mobile-more-menu__link:hover,
.mobile-more-menu__link:active {
  background:var(--surface);
  color:var(--brand-700);
}

.mobile-more-menu__languages {
  padding:.5rem .75rem .25rem;
}

.mobile-more-menu__lang-label {
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--ink-500);
}

.mobile-more-menu__lang img {
  border-radius:50%;
  object-fit:cover;
}
