/* River City Rumble — Warhammer 40k tournament theme.
   Loaded after Oscar's bundled CSS via the `extrastyles` block, so most
   selectors here intentionally aim to overpower Oscar's defaults.

   Palette:
     --rcr-void     #050505    near-black, page background
     --rcr-iron     #1a1a1a    panel background
     --rcr-stone    #2b2b2b    raised panels / borders
     --rcr-bone     #e8e2c4    primary text (off-white)
     --rcr-parch    #c5b98f    muted text (parchment)
     --rcr-blood    #7a0e0e    primary accent (deep red)
     --rcr-ember    #b91515    hover red
     --rcr-gold     #c9a04f    secondary accent
*/

:root {
  --rcr-void:   #050505;
  --rcr-iron:   #1a1a1a;
  --rcr-stone:  #2b2b2b;
  --rcr-edge:   #3a3a3a;
  --rcr-bone:   #e8e2c4;
  --rcr-parch:  #c5b98f;
  --rcr-blood:  #7a0e0e;
  --rcr-ember:  #b91515;
  --rcr-gold:   #c9a04f;
  --rcr-shadow: 0 6px 24px rgba(0,0,0,.6);
}

/* ---------- typography ---------- */
body, body.default {
  background: var(--rcr-void);
  color: var(--rcr-bone);
  font-family: "EB Garamond", "Cormorant Garamond", "Georgia", serif;
  font-size: 1.05rem;
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "Cinzel", "Trajan Pro", "Times New Roman", serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rcr-bone);
  font-weight: 600;
}

a { color: var(--rcr-gold); }
a:hover, a:focus { color: var(--rcr-ember); text-decoration: none; }

/* ---------- chrome (nav, header) ---------- */
.navbar.accounts.bg-light,
nav.accounts {
  background: var(--rcr-iron) !important;
  border-bottom: 1px solid var(--rcr-edge);
}
.navbar.accounts .nav-link { color: var(--rcr-parch) !important; }
.navbar.accounts .nav-link:hover { color: var(--rcr-gold) !important; }

header.header.container {
  background: linear-gradient(180deg, var(--rcr-iron) 0%, var(--rcr-void) 100%);
  border-bottom: 2px solid var(--rcr-blood);
  padding: 1rem 0 0;
  max-width: 100%;
}
header.header .page_inner { max-width: 1140px; margin: 0 auto; padding: 0 1rem; }

.brand-block { padding: .5rem 0; }
.brand-link {
  display: flex; align-items: center; gap: 1rem;
  color: var(--rcr-bone) !important;
}
.brand-link:hover { color: var(--rcr-gold) !important; }
.brand-logo {
  height: 78px; width: 78px;
  filter: invert(1) drop-shadow(0 0 0.5rem rgba(201, 160, 79, .35));
}
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-title {
  font-family: "Cinzel", serif;
  font-size: 1.85rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
}
.brand-tagline {
  font-family: "EB Garamond", serif;
  font-style: italic;
  color: var(--rcr-parch);
  font-size: 1rem;
}

.navbar-dark.bg-dark {
  background: var(--rcr-iron) !important;
  border-top: 1px solid var(--rcr-edge);
  border-bottom: 1px solid var(--rcr-edge);
}
.navbar-dark .navbar-nav .nav-link {
  font-family: "Cinzel", serif;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rcr-parch) !important;
}
.navbar-dark .navbar-nav .nav-link:hover { color: var(--rcr-gold) !important; }
.dropdown-menu {
  background: var(--rcr-iron);
  border: 1px solid var(--rcr-edge);
}
.dropdown-menu .dropdown-item { color: var(--rcr-bone); }
.dropdown-menu .dropdown-item:hover {
  background: var(--rcr-stone);
  color: var(--rcr-gold);
}

/* ---------- hero ---------- */
.rcr-hero {
  position: relative;
  padding: 5rem 1rem 4rem;
  text-align: center;
  background:
    radial-gradient(ellipse at center, rgba(122, 14, 14, .25) 0%, transparent 60%),
    var(--rcr-void);
  border-bottom: 1px solid var(--rcr-edge);
}
.rcr-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--rcr-gold), transparent);
  opacity: .55;
}
.rcr-hero-logo {
  width: 230px; height: 230px;
  filter: invert(1) drop-shadow(0 0 1.5rem rgba(201, 160, 79, .25));
  margin-bottom: 1.5rem;
}
.rcr-hero h1 {
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  margin-bottom: .5rem;
  text-shadow: 0 2px 12px rgba(0,0,0,.8);
}
.rcr-hero .lead {
  color: var(--rcr-parch);
  font-size: 1.25rem;
  font-style: italic;
}

/* Ornamental divider — gold ring with thin lines (used between sections). */
.rcr-divider {
  display: flex; align-items: center; justify-content: center;
  margin: 3rem auto; max-width: 720px;
  color: var(--rcr-gold);
}
.rcr-divider::before, .rcr-divider::after {
  content: ""; flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, var(--rcr-gold) 50%, transparent);
}
.rcr-divider span {
  padding: 0 1rem;
  font-family: "Cinzel", serif;
  letter-spacing: .25em;
  text-transform: uppercase;
  font-size: .85rem;
}

/* ---------- sections / panels ---------- */
.rcr-section { padding: 3rem 0; }
.rcr-section h2 {
  text-align: center;
  font-size: 2rem;
  margin-bottom: 2rem;
  color: var(--rcr-bone);
}

.rcr-panel {
  background: var(--rcr-iron);
  border: 1px solid var(--rcr-edge);
  border-top: 2px solid var(--rcr-blood);
  padding: 1.5rem;
  box-shadow: var(--rcr-shadow);
  height: 100%;
}
.rcr-panel h3, .rcr-panel .h3 {
  color: var(--rcr-bone);
  font-size: 1.35rem;
  margin-bottom: .75rem;
}

/* Bootstrap cards (used by basket etc) should also pick up the dark theme. */
.card, .card-body, .alert-info {
  background: var(--rcr-iron) !important;
  color: var(--rcr-bone) !important;
  border-color: var(--rcr-edge) !important;
}
.card { box-shadow: var(--rcr-shadow); }

/* ---------- tickets ---------- */
.rcr-ticket {
  position: relative;
  background: var(--rcr-iron);
  border: 1px solid var(--rcr-edge);
  border-top: 3px solid var(--rcr-blood);
  padding: 2rem 1.75rem;
  height: 100%;
  display: flex; flex-direction: column;
  box-shadow: var(--rcr-shadow);
}
.rcr-ticket::before {
  content: "❖"; position: absolute; top: 1rem; right: 1rem;
  color: var(--rcr-gold); opacity: .7; font-size: 1.1rem;
}
.rcr-ticket h3 { font-size: 1.5rem; margin-bottom: .75rem; }
.rcr-ticket-desc { color: var(--rcr-parch); flex-grow: 1; margin-bottom: 1.5rem; }
.rcr-ticket-price {
  font-family: "Cinzel", serif;
  font-size: 1.75rem;
  color: var(--rcr-gold);
}

/* ---------- buttons ---------- */
.btn, .btn-primary, .btn-secondary, .btn-info {
  font-family: "Cinzel", serif;
  text-transform: uppercase;
  letter-spacing: .1em;
  border-radius: 0;
  border-width: 1px;
}
.btn-primary, .rcr-btn {
  background: var(--rcr-blood);
  border-color: var(--rcr-gold);
  color: var(--rcr-bone);
}
.btn-primary:hover, .btn-primary:focus, .rcr-btn:hover {
  background: var(--rcr-ember);
  border-color: var(--rcr-gold);
  color: var(--rcr-bone);
  box-shadow: 0 0 12px rgba(201, 160, 79, .55);
}
.btn-secondary, .btn-outline-secondary {
  background: transparent;
  color: var(--rcr-parch);
  border-color: var(--rcr-edge);
}
.btn-secondary:hover, .btn-outline-secondary:hover {
  background: var(--rcr-stone);
  color: var(--rcr-gold);
  border-color: var(--rcr-gold);
}

.price_color, .rcr-price { color: var(--rcr-gold) !important; }

/* ---------- blog ---------- */
.rcr-post-card {
  background: var(--rcr-iron);
  border: 1px solid var(--rcr-edge);
  padding: 1.5rem;
  height: 100%;
  display: flex; flex-direction: column;
  transition: border-color .2s ease;
}
.rcr-post-card:hover { border-color: var(--rcr-gold); }
.rcr-post-card h3 { font-size: 1.3rem; margin-bottom: .25rem; }
.rcr-post-card .meta {
  color: var(--rcr-parch);
  font-size: .85rem;
  font-style: italic;
  margin-bottom: .75rem;
  letter-spacing: .05em;
}
.rcr-post-card .summary { color: var(--rcr-bone); flex-grow: 1; }
.rcr-post-card .read-more {
  margin-top: 1rem;
  color: var(--rcr-gold);
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: .85rem;
}
.rcr-post-hero {
  width: 100%; aspect-ratio: 16/9; object-fit: cover;
  margin-bottom: 1rem; border: 1px solid var(--rcr-edge);
}

.rcr-post-body { max-width: 760px; margin: 0 auto; }
.rcr-post-body h2, .rcr-post-body h3 { margin-top: 2rem; }
.rcr-post-body p { margin-bottom: 1.1rem; }
.rcr-post-body blockquote {
  border-left: 3px solid var(--rcr-blood);
  padding-left: 1rem;
  color: var(--rcr-parch);
  font-style: italic;
}
.rcr-post-body img { max-width: 100%; border: 1px solid var(--rcr-edge); margin: 1rem 0; }
.rcr-post-meta { color: var(--rcr-parch); font-style: italic; margin-bottom: 2rem; text-align: center; }

/* ---------- gallery ---------- */
.rcr-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
}
.rcr-gallery-item {
  position: relative;
  aspect-ratio: 1/1;
  overflow: hidden;
  border: 1px solid var(--rcr-edge);
  background: var(--rcr-iron);
}
.rcr-gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .35s ease, filter .35s ease;
  filter: saturate(.85) contrast(1.05);
}
.rcr-gallery-item:hover img { transform: scale(1.04); filter: saturate(1); }
.rcr-gallery-item .caption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: .4rem .6rem;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.85) 100%);
  color: var(--rcr-bone);
  font-size: .82rem;
  font-style: italic;
}
.rcr-gallery-year { font-family: "Cinzel", serif; color: var(--rcr-gold); letter-spacing: .2em; margin: 2.5rem 0 1rem; text-transform: uppercase; }

/* ---------- footer-ish polish ---------- */
.container.page .page_inner { color: var(--rcr-bone); }
.breadcrumb { background: transparent; padding-left: 0; }
.breadcrumb a { color: var(--rcr-parch); }
.breadcrumb-item.active { color: var(--rcr-bone); }

/* forms & inputs */
.form-control {
  background: var(--rcr-stone);
  color: var(--rcr-bone);
  border-color: var(--rcr-edge);
  border-radius: 0;
}
.form-control:focus {
  background: var(--rcr-stone);
  color: var(--rcr-bone);
  border-color: var(--rcr-gold);
  box-shadow: 0 0 0 .15rem rgba(201, 160, 79, .25);
}

/* alerts */
.alert {
  background: var(--rcr-iron);
  border: 1px solid var(--rcr-edge);
  border-left: 3px solid var(--rcr-gold);
  color: var(--rcr-bone);
  border-radius: 0;
}
.alert-warning { border-left-color: var(--rcr-gold); }
.alert-danger  { border-left-color: var(--rcr-ember); }
.alert-success { border-left-color: var(--rcr-gold); }
