/* Global theme & Bootstrap overrides for offertezone.life
   Palette: Bordeaux Casino — deep bordeaux, champagne gold, warm cream.
   TODO: background images will be injected by photo.js later. */

:root,
.offertezone-theme {
  --oz-bordeaux: #5e1224;
  --oz-bordeaux-dark: #3d0a10;
  --oz-bordeaux-deep: #1a0b0e;
  --oz-gold: #d4af37;
  --oz-gold-light: #f3e5ab;
  --oz-cream: #f8f5f0;
  --oz-cream-soft: #efeae3;
  --oz-text-muted: #c9b8a8;

  --bs-body-bg: #1a0b0e;
  --bs-body-color: #f8f5f0;
  --bs-primary: #d4af37;
  --bs-primary-rgb: 212, 175, 55;
  --bs-secondary: #5e1224;
  --bs-secondary-rgb: 94, 18, 36;
  --bs-dark: #3d0a10;
  --bs-light: #f8f5f0;
  --bs-border-color: rgba(212, 175, 55, 0.2);
}

/* Base typography ---------------------------------------------------------- */
body {
  font-family: 'Jost', sans-serif;
  background-color: var(--oz-bordeaux-deep);
  color: var(--oz-cream);
  line-height: 1.65;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', serif;
  color: var(--oz-cream);
  line-height: 1.25;
}

a {
  color: var(--oz-gold);
  text-decoration: none;
}

a:hover {
  color: var(--oz-gold-light);
}

::selection {
  background: var(--oz-gold);
  color: var(--oz-bordeaux-deep);
}

/* Decorative helpers ------------------------------------------------------- */
.oz-gold-line {
  width: 80px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--oz-gold), transparent);
  margin: 1.25rem auto;
}

.oz-gold-line-start {
  margin-left: 0;
  margin-right: 0;
  background: linear-gradient(90deg, var(--oz-gold), transparent);
}

.oz-glow {
  position: absolute;
  width: 24rem;
  height: 24rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212, 175, 55, 0.12) 0%, transparent 70%);
  filter: blur(3rem);
  pointer-events: none;
  z-index: 0;
}

.oz-glow--top-right {
  top: -8rem;
  right: -8rem;
}

.oz-glow--bottom-left {
  bottom: -8rem;
  left: -8rem;
}

/* Sections ----------------------------------------------------------------- */
.oz-section {
  padding: 5rem 0;
  position: relative;
}

.oz-section--bg {
  background-size: cover;
  background-position: center;
}

.oz-section--bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(26, 11, 14, 0.82), rgba(26, 11, 14, 0.92));
  z-index: 0;
}

.oz-section--bg > .container,
.oz-section--bg > .container-fluid {
  position: relative;
  z-index: 1;
}

.oz-hero {
  min-height: 92vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
}

/* Buttons ------------------------------------------------------------------ */
.oz-btn-gold {
  background-color: var(--oz-gold);
  color: var(--oz-bordeaux-deep);
  border: 1px solid var(--oz-gold);
  font-weight: 600;
  padding: 0.75rem 1.75rem;
  border-radius: 0.25rem;
  transition: all 0.3s ease;
}

.oz-btn-gold:hover {
  background-color: var(--oz-gold-light);
  border-color: var(--oz-gold-light);
  color: var(--oz-bordeaux-deep);
  transform: translateY(-2px);
}

.oz-btn-outline-gold {
  border: 1px solid var(--oz-gold);
  color: var(--oz-gold);
  background: transparent;
  font-weight: 500;
  padding: 0.75rem 1.75rem;
  border-radius: 0.25rem;
  transition: all 0.3s ease;
}

.oz-btn-outline-gold:hover {
  background-color: var(--oz-gold);
  color: var(--oz-bordeaux-deep);
}

/* 18+ badge ---------------------------------------------------------------- */
.oz-badge-18 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 2px solid var(--oz-gold);
  color: var(--oz-gold);
  font-weight: 700;
  border-radius: 50%;
  font-size: 0.75rem;
  flex-shrink: 0;
}

/* Cards -------------------------------------------------------------------- */
.oz-card-luxury {
  background: rgba(94, 18, 36, 0.25);
  border: 1px solid rgba(212, 175, 55, 0.25);
  border-radius: 0.5rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 100%;
}

.oz-card-luxury:hover {
  transform: translateY(-4px);
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.35);
}

.oz-card-luxury .card-title {
  color: var(--oz-cream);
  font-family: 'Playfair Display', serif;
}

.oz-card-luxury .card-text {
  color: var(--oz-text-muted);
}

/* Double gold frame — used for testimonials / highlights */
.oz-gold-frame {
  border: 1px solid var(--oz-gold);
  padding: 0.5rem;
}

.oz-gold-frame__inner {
  background: rgba(26, 11, 14, 0.85);
  padding: 1.5rem;
  border: 1px solid rgba(212, 175, 55, 0.4);
}

/* Tables ------------------------------------------------------------------- */
.oz-table-luxury {
  --bs-table-bg: rgba(94, 18, 36, 0.2);
  --bs-table-border-color: rgba(212, 175, 55, 0.2);
  color: var(--oz-cream);
}

.oz-table-luxury th {
  background: rgba(94, 18, 36, 0.55);
  color: var(--oz-gold);
  font-family: 'Playfair Display', serif;
  font-weight: 600;
}

.oz-table-luxury tbody tr:hover {
  background: rgba(212, 175, 55, 0.08);
}

/* Forms -------------------------------------------------------------------- */
.oz-form-control,
.oz-form-select {
  background: rgba(248, 245, 240, 0.07);
  border: 1px solid rgba(212, 175, 55, 0.25);
  color: var(--oz-cream);
  border-radius: 0.25rem;
}

.oz-form-control::placeholder,
.oz-form-select::placeholder {
  color: var(--oz-text-muted);
}

.oz-form-control:focus,
.oz-form-select:focus {
  background: rgba(248, 245, 240, 0.12);
  border-color: var(--oz-gold);
  color: var(--oz-cream);
  box-shadow: 0 0 0 0.2rem rgba(212, 175, 55, 0.15);
}

/* Testimonials ------------------------------------------------------------- */
.oz-stars {
  color: var(--oz-gold);
  letter-spacing: 0.1rem;
}

/* Cookie banner ------------------------------------------------------------ */
.oz-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1050;
  background: rgba(18, 7, 9, 0.97);
  border-top: 1px solid var(--oz-gold);
  padding: 1rem 0;
}

/* Navbar & offcanvas ------------------------------------------------------- */
.offertezone-theme .navbar {
  background: rgba(26, 11, 14, 0.95);
  border-bottom: 1px solid rgba(212, 175, 55, 0.15);
}

.offertezone-theme .navbar-toggler {
  border-color: var(--oz-gold);
  color: var(--oz-gold);
}

.offertezone-theme .navbar-toggler-icon {
  background-image: none; /* FontAwesome icon used instead */
}

.offertezone-theme .navbar-brand {
  color: var(--oz-cream);
  font-family: 'Playfair Display', serif;
}

.offertezone-theme .nav-link {
  color: var(--oz-cream-soft);
  font-weight: 500;
  transition: color 0.2s;
}

.offertezone-theme .nav-link:hover,
.offertezone-theme .nav-link.active {
  color: var(--oz-gold);
}

.offertezone-theme .offcanvas {
  background: var(--oz-bordeaux-deep);
  border-left: 1px solid rgba(212, 175, 55, 0.2);
}

/* Footer ------------------------------------------------------------------- */
.oz-footer {
  background: #120709;
  border-top: 1px solid rgba(212, 175, 55, 0.2);
  padding: 4rem 0 1.5rem;
}

.oz-footer-title {
  color: var(--oz-gold);
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  margin-bottom: 1.25rem;
}

.oz-footer a {
  color: var(--oz-cream-soft);
}

.oz-footer a:hover {
  color: var(--oz-gold);
}

.oz-footer-contact {
  color: var(--oz-cream-soft);
}

/* Social icons ------------------------------------------------------------- */
.oz-social-link {
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--oz-gold);
  border-radius: 50%;
  color: var(--oz-gold);
  transition: all 0.3s ease;
}

.oz-social-link:hover {
  background: var(--oz-gold);
  color: var(--oz-bordeaux-deep);
  transform: translateY(-2px);
}

/* Accordion ---------------------------------------------------------------- */
.offertezone-theme .accordion-button {
  background: rgba(94, 18, 36, 0.35);
  color: var(--oz-cream);
  font-weight: 500;
}

.offertezone-theme .accordion-button:not(.collapsed) {
  background: rgba(94, 18, 36, 0.55);
  color: var(--oz-gold);
  box-shadow: none;
}

.offertezone-theme .accordion-button::after {
  filter: brightness(0) saturate(100%) invert(77%) sepia(37%) saturate(560%) hue-rotate(4deg) brightness(90%) contrast(90%);
}

.offertezone-theme .accordion-body {
  background: rgba(94, 18, 36, 0.15);
  color: var(--oz-cream-soft);
}

/* Carousel ----------------------------------------------------------------- */
.offertezone-theme .carousel-indicators [data-bs-target] {
  background-color: var(--oz-gold);
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
}

.offertezone-theme .carousel-caption {
  background: rgba(26, 11, 14, 0.65);
  border-radius: 0.5rem;
}

/* Toast / alerts ----------------------------------------------------------- */
.offertezone-theme .toast {
  background: rgba(94, 18, 36, 0.98);
  border: 1px solid var(--oz-gold);
  color: var(--oz-cream);
}

.offertezone-theme .toast-header {
  background: rgba(212, 175, 55, 0.15);
  color: var(--oz-gold);
  border-bottom: 1px solid rgba(212, 175, 55, 0.2);
}

/* Utilities ---------------------------------------------------------------- */
.oz-text-gold { color: var(--oz-gold) !important; }
.oz-text-cream { color: var(--oz-cream) !important; }
.oz-text-muted { color: var(--oz-text-muted) !important; }
.oz-bg-bordeaux { background-color: var(--oz-bordeaux) !important; }
.oz-bg-bordeaux-dark { background-color: var(--oz-bordeaux-dark) !important; }
.oz-bg-deep { background-color: var(--oz-bordeaux-deep) !important; }
.oz-border-gold { border-color: var(--oz-gold) !important; }
.oz-fs-7 { font-size: 0.85rem; }
.oz-lh-sm { line-height: 1.4; }
.oz-font-serif { font-family: 'Playfair Display', serif; }

/* Responsive tweaks -------------------------------------------------------- */
@media (max-width: 991.98px) {
  .oz-hero {
    min-height: 80vh;
  }
  .oz-section {
    padding: 3.5rem 0;
  }
}
