/* ══ Casa Portuguesa — High-Conversion CSS ══ */

html, body { overflow-x: hidden; max-width: 100vw; }
img:not([class*="h-"]):not([class*="object-"]) { max-width: 100%; height: auto; }
.main-img-wrap img, .thumb img, .ugc-item img, .product-card img, .category-card img { max-width: 100%; }

:root {
  --primary: #F5A623;
  --primary-dark: #D4891A;
  --dark: #111111;
  --dark-2: #1C1C1C;
  --light: #FAFAF8;
  --text: #1A1A1A;
  --text-muted: #6B6B6B;
  --success: #22C55E;
  --danger: #EF4444;
  --border: #E5E5E5;
}

/* ── Ticker ── */
@keyframes ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.ticker-track {
  display: flex; width: max-content;
  animation: ticker 30s linear infinite;
}
.ticker-track:hover { animation-play-state: paused; }

/* ── Buttons ── */
.btn-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--primary); color: #000;
  font-weight: 700; padding: 16px 32px; border-radius: 8px;
  font-size: 16px; border: none; cursor: pointer;
  transition: all 0.2s; text-decoration: none;
}
.btn-cta:hover { background: var(--primary-dark); transform: scale(1.02); }

.btn-cta-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: transparent; color: #fff;
  font-weight: 700; padding: 16px 32px; border-radius: 8px;
  font-size: 16px; border: 2px solid rgba(255,255,255,0.3); cursor: pointer;
  transition: all 0.2s; text-decoration: none;
}
.btn-cta-outline:hover { border-color: #fff; background: rgba(255,255,255,0.05); }

.btn-dark {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--dark); color: #fff;
  font-weight: 700; padding: 14px 28px; border-radius: 8px;
  font-size: 14px; border: none; cursor: pointer;
  transition: all 0.2s; text-decoration: none; width: 100%;
}
.btn-dark:hover { background: #333; }

@keyframes pulse-cta {
  0%, 100% { box-shadow: 0 0 0 0 rgba(245,166,35,0.4); }
  50%      { box-shadow: 0 0 0 8px rgba(245,166,35,0); }
}
.btn-pulse { animation: pulse-cta 2s infinite; }

/* ── Cards ── */
.product-card {
  position: relative; background: #fff; border-radius: 12px;
  border: 1px solid var(--border); overflow: hidden;
  transition: all 0.3s;
}
.product-card:hover {
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
  transform: translateY(-4px);
}
.product-card img { transition: transform 0.3s; }
.product-card:hover img { transform: scale(1.05); }

.review-card {
  background: var(--dark-2); border: 1px solid #333;
  border-radius: 12px; padding: 24px; color: #fff;
}

/* ── Badges ── */
.badge-discount {
  position: absolute; top: 12px; left: 12px; z-index: 5;
  background: var(--danger); color: #fff;
  font-size: 12px; font-weight: 700; letter-spacing: 0.02em;
  padding: 5px 10px; border-radius: 6px;
}
.badge-best {
  position: absolute; top: 12px; right: 12px; z-index: 5;
  background: var(--dark); color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; padding: 5px 10px; border-radius: 6px;
}
.badge-save {
  display: inline-block; background: var(--success); color: #fff;
  font-size: 12px; font-weight: 700; padding: 4px 10px;
  border-radius: 4px;
}

/* ── FAQ ── */
.faq-item { border-bottom: 1px solid var(--border); }
.faq-question {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 20px 0; text-align: left;
  font-weight: 600; color: var(--text); cursor: pointer;
  background: none; border: none; font-size: 16px;
}
.faq-question svg { transition: transform 0.3s; flex-shrink: 0; width: 20px; height: 20px; }
.faq-item.open .faq-question svg { transform: rotate(180deg); }
.faq-answer {
  max-height: 0; overflow: hidden;
  transition: max-height 0.35s ease-out;
  color: var(--text-muted); line-height: 1.7; font-size: 15px;
}
.faq-item.open .faq-answer { padding-bottom: 20px; }

/* ── Gallery ── */
.thumb { border: 2px solid transparent; border-radius: 8px; overflow: hidden; cursor: pointer; transition: border-color 0.2s; }
.thumb.active { border-color: var(--primary); }
.main-img-wrap { overflow: hidden; border-radius: 12px; }
.main-img-wrap img { transition: opacity 0.2s; }
@media (min-width: 768px) {
  .main-img-wrap:hover img { transform: scale(1.5); transition: transform 0.3s; }
}

/* ── Bundle selector ── */
.bundle-option {
  border: 2px solid var(--border); border-radius: 10px;
  padding: 16px; cursor: pointer; transition: all 0.2s;
  position: relative;
}
.bundle-option:hover { border-color: #ccc; }
.bundle-option.selected { border-color: var(--primary); background: #FFF8EB; }
.bundle-popular {
  position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  background: var(--primary); color: #000; font-size: 11px;
  font-weight: 800; padding: 3px 12px; border-radius: 20px;
  letter-spacing: 0.05em; white-space: nowrap;
}

/* ── Sticky CTA ── */
.sticky-cta {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 999;
  background: var(--dark); color: #fff;
  transform: translateY(100%); transition: transform 0.3s;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
}
.sticky-cta.visible { transform: translateY(0); }

/* ── Category card ── */
.category-card {
  position: relative; border-radius: 12px; overflow: hidden;
  height: 300px; cursor: pointer;
}
.category-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.category-card:hover img { transform: scale(1.03); }
.category-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 24px; color: #fff;
}

/* ── UGC grid ── */
.ugc-item {
  border-radius: 12px; overflow: hidden; cursor: pointer;
  position: relative;
}
.ugc-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ugc-item:hover .ugc-overlay { opacity: 1; }
.ugc-overlay {
  position: absolute; inset: 0; background: rgba(0,0,0,0.4);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity 0.3s; font-size: 24px;
}

/* ── Fade-in on scroll ── */
.fade-in {
  opacity: 0; transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible { opacity: 1; transform: translateY(0); }

/* ── Urgency bar ── */
.urgency-box {
  background: #FEF2F2; border: 1px solid #FCA5A5;
  border-radius: 8px; padding: 12px 16px;
}

/* ── Countdown ── */
.cd-digit {
  display: inline-flex; flex-direction: column; align-items: center;
  background: var(--dark); color: #fff; border-radius: 8px;
  min-width: 64px; padding: 12px 8px; font-variant-numeric: tabular-nums;
}
.cd-digit .num { font-size: 28px; font-weight: 800; line-height: 1; }
.cd-digit .lbl { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.6; margin-top: 4px; }

/* ── Guarantee ── */
.guarantee-box {
  background: var(--dark); color: #fff; border-radius: 16px;
  padding: 48px; text-align: center;
}

/* ── Color selector ── */
.color-dot {
  width: 36px; height: 36px; border-radius: 50%;
  border: 3px solid transparent; cursor: pointer;
  transition: border-color 0.2s;
}
.color-dot.active { border-color: var(--primary); }

/* ── Marquee (payment logos) ── */
@keyframes marquee-logos {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.marquee-logos {
  display: flex; gap: 48px; width: max-content;
  animation: marquee-logos 20s linear infinite;
}

/* ── Lightbox ── */
.lightbox {
  position: fixed; inset: 0; background: rgba(0,0,0,0.95);
  z-index: 9999; display: flex; align-items: center;
  justify-content: center; cursor: pointer;
}
.lightbox img { max-width: 90vw; max-height: 90vh; border-radius: 8px; }

/* ── Table compare ── */
.compare-table td, .compare-table th { padding: 14px 16px; text-align: left; }
.compare-table tr { border-bottom: 1px solid var(--border); }
.compare-highlight { background: #FFF8EB; }
