/* =========================================================
   BDMap — Tema "Marketplace Vibrante" sobre Bootstrap 5.3
   Identidade BDM: preto + ouro + Montserrat, em layout claro,
   colorido e orientado à descoberta (estilo guia/marketplace).
   ========================================================= */

:root {
  /* Marca */
  --bdm-gold:     #F5C542;
  --bdm-gold-2:   #E8B008;
  --bdm-gold-3:   #C88A00;
  --bdm-ink:      #17181c;
  --bdm-ink-soft: #5b5d66;
  --bdm-line:     #e9eaee;
  --bdm-surface:  #ffffff;
  --bdm-bg:       #f5f6f8;

  /* Paleta vibrante das categorias (rotativa) */
  --c1:#F5C542; --c2:#22B8A6; --c3:#FF6B6B; --c4:#7C6CF0;
  --c5:#3B9BF0; --c6:#2FBF71; --c7:#FF9F45; --c8:#EC5C9A;

  /* Overrides do Bootstrap */
  --bs-primary:      #E8B008;
  --bs-primary-rgb:  232,176,8;
  --bs-body-bg:      #f5f6f8;
  --bs-body-color:   #17181c;
  --bs-secondary-color: #5b5d66;
  --bs-border-color: #e9eaee;
  --bs-border-radius:    .85rem;
  --bs-border-radius-sm: .6rem;
  --bs-border-radius-lg: 1.25rem;
  --bs-border-radius-xl: 1.75rem;
  --bs-font-sans-serif: 'Montserrat', system-ui, -apple-system, sans-serif;
  --bs-body-font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
  --bs-link-color: #C88A00;
  --bs-link-hover-color: #a06e00;
}

body { background: var(--bdm-bg); -webkit-font-smoothing: antialiased; }

h1,h2,h3,h4,h5 { font-weight: 800; letter-spacing:-.02em; color: var(--bdm-ink); }
.fw-black { font-weight: 900 !important; }
.text-ink { color: var(--bdm-ink) !important; }
.text-muted-2 { color: var(--bdm-ink-soft) !important; }
.text-gold { color: var(--bdm-gold-3) !important; }

/* ---------- Botões ---------- */
.btn { font-weight: 700; border-radius: 999px; padding: .62rem 1.35rem; }
.btn-gold {
  --bs-btn-color:#231800; --bs-btn-bg:linear-gradient(135deg,#FFDD6B,#F5C542 55%,#E0A20C);
  background: linear-gradient(135deg,#FFDD6B,#F5C542 55%,#E0A20C);
  color:#231800; border:0;
  box-shadow: 0 8px 22px -8px rgba(232,176,8,.65);
}
.btn-gold:hover { color:#231800; transform: translateY(-1px); box-shadow: 0 14px 30px -10px rgba(232,176,8,.8); }
.btn-dark { --bs-btn-bg:#17181c; --bs-btn-border-color:#17181c; --bs-btn-hover-bg:#000; }
.btn-outline-ink { color:var(--bdm-ink); border:1.5px solid var(--bdm-line); background:#fff; }
.btn-outline-ink:hover { border-color:var(--bdm-ink); color:var(--bdm-ink); }
.btn-lg { padding: .85rem 1.8rem; font-size: 1.02rem; }
.btn, .btn:hover { transition: transform .18s cubic-bezier(.22,1,.36,1), box-shadow .25s; }

/* ---------- Ticker (cotação) ---------- */
.ticker { background:#0d0e12; color:#c9cbd2; overflow:hidden; font-size:.82rem; }
.ticker .track { display:flex; gap:2.4rem; white-space:nowrap; padding:.5rem 0; animation:tick 34s linear infinite; }
.ticker:hover .track { animation-play-state:paused; }
.ticker .it { display:inline-flex; gap:.4rem; align-items:center; }
.ticker .it b { color:var(--bdm-gold); }
.ticker .it span { color:#fff; font-weight:700; }
@keyframes tick { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ---------- Navbar ---------- */
.navbar-bdm { background:#fff; border-bottom:1px solid var(--bdm-line); transition: box-shadow .25s; }
.navbar-bdm.scrolled { box-shadow: 0 8px 30px -18px rgba(0,0,0,.35); }
.navbar-bdm .navbar-brand img { height:34px; }
.navbar-bdm .nav-link { font-weight:600; color:var(--bdm-ink); border-radius:999px; padding:.4rem .9rem !important; }
.navbar-bdm .nav-link:hover, .navbar-bdm .nav-link.active { color:var(--bdm-gold-3); background:rgba(245,197,66,.14); }

/* ---------- Hero ---------- */
.hero {
  position:relative; overflow:hidden;
  background:
    radial-gradient(60% 80% at 85% 0%, rgba(245,197,66,.28), transparent 60%),
    radial-gradient(50% 60% at 0% 100%, rgba(124,108,240,.10), transparent 60%),
    linear-gradient(180deg,#fffdf6,#f5f6f8);
}
.hero h1 { font-size: clamp(2rem, 4.4vw, 3.4rem); line-height:1.05; }
.hero .lead { color:var(--bdm-ink-soft); font-size:clamp(1rem,1.6vw,1.18rem); }
.hero-badge { display:inline-flex; align-items:center; gap:.5rem; background:#fff; border:1px solid var(--bdm-line); border-radius:999px; padding:.4rem .9rem; font-weight:700; font-size:.82rem; box-shadow:0 6px 20px -12px rgba(0,0,0,.25); }
.hero-badge .dot { width:.55rem; height:.55rem; border-radius:50%; background:var(--bdm-gold); box-shadow:0 0 0 4px rgba(245,197,66,.25); }
.hero-art { border-radius: var(--bs-border-radius-xl); box-shadow: 0 40px 80px -30px rgba(23,24,28,.4); }

/* Busca destacada (marketplace) */
.search-card { background:#fff; border:1px solid var(--bdm-line); border-radius:var(--bs-border-radius-lg); box-shadow:0 24px 60px -30px rgba(23,24,28,.3); }
.search-card .form-control, .search-card .form-select { border:0; border-radius:999px; background:#f4f5f7; font-weight:600; }
.search-card .form-control:focus, .search-card .form-select:focus { box-shadow:0 0 0 .2rem rgba(232,176,8,.25); background:#fff; }
.search-ico { color:var(--bdm-ink-soft); }

.stat-pill { background:#fff; border:1px solid var(--bdm-line); border-radius:var(--bs-border-radius); padding:.7rem 1.1rem; }
.stat-pill b { font-size:1.5rem; font-weight:900; color:var(--bdm-ink); line-height:1; }
.stat-pill span { color:var(--bdm-ink-soft); font-size:.8rem; font-weight:600; }

/* ---------- Seções ---------- */
.section { padding: clamp(3rem,7vw,5.5rem) 0; }
.section-eyebrow { color:var(--bdm-gold-3); font-weight:800; letter-spacing:.14em; text-transform:uppercase; font-size:.78rem; }
.section-title { font-size:clamp(1.6rem,3vw,2.4rem); }

/* ---------- Categorias (tiles coloridos) ---------- */
.cat-tile { display:flex; flex-direction:column; align-items:center; gap:.55rem; text-align:center; padding:1.3rem .7rem; background:#fff; border:1px solid var(--bdm-line); border-radius:var(--bs-border-radius-lg); text-decoration:none; transition:transform .22s cubic-bezier(.22,1,.36,1), box-shadow .3s, border-color .2s; height:100%; }
.cat-tile:hover { transform:translateY(-6px); box-shadow:0 22px 40px -24px rgba(23,24,28,.35); border-color:transparent; }
.cat-ic { width:58px; height:58px; border-radius:18px; display:grid; place-items:center; font-size:1.7rem; color:#fff; }
.cat-tile b { color:var(--bdm-ink); font-size:.92rem; line-height:1.2; }
.cat-tile small { color:var(--bdm-ink-soft); font-size:.76rem; }
/* cores rotativas */
.cat-tile:nth-child(8n+1) .cat-ic{background:linear-gradient(135deg,#FFD75E,var(--c1))}
.cat-tile:nth-child(8n+2) .cat-ic{background:linear-gradient(135deg,#3FD6C4,var(--c2))}
.cat-tile:nth-child(8n+3) .cat-ic{background:linear-gradient(135deg,#FF8D8D,var(--c3))}
.cat-tile:nth-child(8n+4) .cat-ic{background:linear-gradient(135deg,#9C8FF5,var(--c4))}
.cat-tile:nth-child(8n+5) .cat-ic{background:linear-gradient(135deg,#63B4F5,var(--c5))}
.cat-tile:nth-child(8n+6) .cat-ic{background:linear-gradient(135deg,#57D28F,var(--c6))}
.cat-tile:nth-child(8n+7) .cat-ic{background:linear-gradient(135deg,#FFB86B,var(--c7))}
.cat-tile:nth-child(8n+8) .cat-ic{background:linear-gradient(135deg,#F27FB4,var(--c8))}

/* ---------- Cards de parceiro / promoção ---------- */
.card-bdm { background:#fff; border:1px solid var(--bdm-line); border-radius:var(--bs-border-radius-lg); overflow:hidden; transition:transform .22s cubic-bezier(.22,1,.36,1), box-shadow .3s; height:100%; }
.card-bdm:hover { transform:translateY(-6px); box-shadow:0 26px 50px -28px rgba(23,24,28,.4); }
.card-bdm .thumb { aspect-ratio:16/10; object-fit:cover; width:100%; background:#eef0f3; }
.card-bdm .avatar { width:56px; height:56px; border-radius:16px; object-fit:cover; border:3px solid #fff; box-shadow:0 6px 16px -8px rgba(0,0,0,.3); background:#eef0f3; }
.chip { display:inline-block; font-size:.7rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; color:var(--bdm-gold-3); background:rgba(245,197,66,.16); border-radius:999px; padding:.22rem .6rem; }
.promo-badge { position:absolute; top:.7rem; right:.7rem; background:linear-gradient(135deg,#FFDD6B,#E0A20C); color:#231800; font-weight:900; font-size:.85rem; padding:.3rem .7rem; border-radius:999px; box-shadow:0 8px 18px -8px rgba(232,176,8,.7); }

/* ---------- Passos "como funciona" ---------- */
.step { background:#fff; border:1px solid var(--bdm-line); border-radius:var(--bs-border-radius-lg); padding:1.6rem; height:100%; }
.step .n { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; font-weight:900; color:#231800; background:linear-gradient(135deg,#FFDD6B,#E8B008); margin-bottom:1rem; }

/* ---------- Faixas ---------- */
.band-dark { background:radial-gradient(80% 120% at 100% 0%, rgba(245,197,66,.18), transparent 55%), #121318; color:#fff; border-radius:var(--bs-border-radius-xl); }
.band-dark h2 { color:#fff; }
.band-gold { background:linear-gradient(120deg,#FFDD6B,#F5C542 45%,#E0A20C); color:#231800; border-radius:var(--bs-border-radius-xl); }
.band-gold h2 { color:#231800; }
.store-btn { display:inline-flex; align-items:center; gap:.6rem; background:#17181c; color:#fff; border-radius:14px; padding:.6rem 1.1rem; text-decoration:none; }
.store-btn small { display:block; font-size:.66rem; opacity:.7; line-height:1; }
.store-btn b { font-size:.98rem; line-height:1.1; }
.store-btn:hover { color:#fff; background:#000; }

/* ---------- Rodapé ---------- */
.footer-bdm { background:#0f1014; color:#aeb0b8; }
.footer-bdm a { color:#c9cbd2; text-decoration:none; }
.footer-bdm a:hover { color:var(--bdm-gold); }
.footer-bdm h6 { color:#fff; font-weight:800; letter-spacing:.04em; }
.footer-bdm .brand img { height:34px; }
.soc { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; background:#1a1c22; color:#c9cbd2; }
.soc:hover { background:var(--bdm-gold); color:#231800; }

/* ---------- Reveal ---------- */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.in { opacity:1; transform:none; }

/* ---------- Scroll horizontal de categorias no mobile ---------- */
@media (max-width: 575.98px) {
  .cat-scroll { display:flex; gap:.75rem; overflow-x:auto; padding-bottom:.5rem; scroll-snap-type:x mandatory; }
  .cat-scroll > * { flex:0 0 42%; scroll-snap-align:start; }
}

/* =========================================================
   Páginas internas (perfil, promoção, mapa, institucional)
   ========================================================= */
.page-head { background:
  radial-gradient(60% 100% at 90% 0%, rgba(245,197,66,.20), transparent 60%),
  linear-gradient(180deg,#fffdf6,#f5f6f8); border-bottom:1px solid var(--bdm-line); }

/* Perfil / promoção */
.perfil-capa { height:clamp(160px,28vw,300px); background-size:cover; background-position:center; background-color:#141a2b; background-image:linear-gradient(120deg,#12182a 0%,#1c2540 55%,#3a2f16 100%); }
.perfil-card { max-width:760px; margin:-70px auto 0; position:relative; }
/* Selo quadrado uniforme para todos os parceiros (160x160). */
.perfil-foto { width:160px; height:160px; border-radius:28px; border:5px solid #fff; box-shadow:0 16px 34px -16px rgba(0,0,0,.35); background:#fff; }
.perfil-acoes { display:flex; flex-wrap:wrap; justify-content:center; gap:.7rem; }
.perfil-acao { display:flex; flex-direction:column; align-items:center; gap:.4rem; min-width:88px; padding:.9rem .8rem; background:#fff; border:1px solid var(--bdm-line); border-radius:var(--bs-border-radius); color:var(--bdm-ink); text-decoration:none; font-weight:700; font-size:.82rem; transition:transform .18s cubic-bezier(.22,1,.36,1), border-color .2s, box-shadow .3s; }
.perfil-acao:hover { transform:translateY(-4px); border-color:var(--bdm-gold-2); color:var(--bdm-ink); box-shadow:0 16px 30px -20px rgba(0,0,0,.3); }
.perfil-acao i { font-size:1.5rem; color:var(--bdm-gold-3); }
.perfil-texto p { margin-bottom:.85rem; }
.perfil-texto ul, .perfil-texto ol { margin:0 0 .85rem 1.2rem; }

/* Cupom */
.badge-desc { display:inline-block; background:linear-gradient(135deg,#FFDD6B,#E0A20C); color:#231800; font-weight:900; padding:.35rem .9rem; border-radius:999px; }
.cupom { max-width:440px; margin-inline:auto; padding:1.6rem 1.2rem; background:#fffdf5; border:2px dashed var(--bdm-gold-2); border-radius:var(--bs-border-radius-lg); }
.cupom-rotulo { display:block; font-size:.72rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--bdm-ink-soft); margin-bottom:.5rem; }
.cupom-codigo { display:block; font-size:clamp(1.5rem,5vw,2.2rem); font-weight:900; letter-spacing:.08em; color:var(--bdm-gold-3); }

/* Mapa */
.mapa-box { height:clamp(380px,62vh,620px); border-radius:var(--bs-border-radius-lg); border:1px solid var(--bdm-line); overflow:hidden; background:#fff; box-shadow:0 20px 50px -34px rgba(0,0,0,.4); }
.mapa-box .leaflet-container { background:#eef0f3; }
.legal-doc h2:first-child { margin-top:0 !important; }

/* =========================================================
   Formulários (Bootstrap) — foco dourado + wizard de cadastro
   ========================================================= */
[hidden] { display: none !important; }

.form-label { font-weight:600; color:var(--bdm-ink); margin-bottom:.3rem; }
.form-control, .form-select { border-radius:var(--bs-border-radius-sm); border-color:var(--bdm-line); padding:.6rem .85rem; }
.form-control:focus, .form-select:focus { border-color:var(--bdm-gold-2); box-shadow:0 0 0 .2rem rgba(232,176,8,.2); }
.form-check-input:checked { background-color:var(--bdm-gold-2); border-color:var(--bdm-gold-2); }
.form-check-input:focus { border-color:var(--bdm-gold-2); box-shadow:0 0 0 .2rem rgba(232,176,8,.2); }
.btn:disabled, .btn.disabled { opacity:.5; box-shadow:none; transform:none; }
.input-group .btn-outline-ink { border-color:var(--bdm-line); }

/* honeypot */
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* progresso do wizard */
.wiz-bar { height:8px; background:#eceef1; border-radius:999px; overflow:hidden; }
.wiz-bar span { display:block; height:100%; background:linear-gradient(90deg,#FFDD6B,#F5C542,#E0A20C); transition:width .35s cubic-bezier(.22,1,.36,1); }
.wiz-step-label { font-size:.92rem; color:var(--bdm-ink-soft); }
.wiz-step-label b { color:var(--bdm-gold-3); }

/* erro inline da foto */
.foto-erro { display:block; margin-top:.4rem; font-size:.82rem; font-weight:600; color:#d33; }
.foto-erro::before { content:"⚠ "; }

/* escolha da foto */
.crop-pick { display:flex; gap:1rem; align-items:center; }
.crop-thumb { width:82px; height:82px; border-radius:20px; background:#f1f2f5 center/cover no-repeat; border:2px solid var(--bdm-gold-2); display:grid; place-items:center; color:var(--bdm-ink-soft); font-size:1.7rem; flex-shrink:0; }

/* opções "como conheceu" */
.ind-lista { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.ind-op { display:flex; align-items:center; gap:.6rem; padding:.7rem .9rem; background:#fff; border:1.5px solid var(--bdm-line); border-radius:var(--bs-border-radius-sm); cursor:pointer; font-weight:600; font-size:.92rem; transition:border-color .2s, background .2s; margin:0; }
.ind-op:hover { border-color:var(--bdm-gold-2); }
.ind-op input { accent-color:var(--bdm-gold-2); }
.ind-op:has(input:checked) { border-color:var(--bdm-gold-2); background:rgba(245,197,66,.1); }
@media (max-width:575.98px){ .ind-lista{ grid-template-columns:1fr; } }

/* cropper (overlay escuro, card claro) */
.crop-overlay { position:fixed; inset:0; background:rgba(15,16,20,.8); display:grid; place-items:center; z-index:1080; padding:20px; }
.crop-box { background:#fff; border-radius:var(--bs-border-radius-lg); padding:22px; width:100%; max-width:360px; text-align:center; box-shadow:0 40px 80px -30px rgba(0,0,0,.6); }
.crop-stage { position:relative; width:300px; height:300px; max-width:100%; margin:0 auto; overflow:hidden; border-radius:50%; background:#000; cursor:grab; touch-action:none; }
.crop-stage:active { cursor:grabbing; }
.crop-stage img { position:absolute; user-select:none; -webkit-user-drag:none; max-width:none; }
.crop-mask { position:absolute; inset:0; box-shadow:0 0 0 3px var(--bdm-gold) inset; border-radius:50%; pointer-events:none; }
.crop-zoom { display:flex; align-items:center; gap:.6rem; margin:1rem 0; color:var(--bdm-ink-soft); }
.crop-zoom input { flex:1; accent-color:var(--bdm-gold-2); }
.crop-actions { display:flex; gap:.6rem; }
.crop-actions .btn { flex:1; }
