/* =========================================================================
   Give2Charity theme styles — minimal, clean, light.
   Loaded after Bootstrap 5. Mobile-first. Keeps page weight low.
   ========================================================================= */

:root {
  --g2c-ink: #1a1d21;
  --g2c-muted: #5b6470;
  --g2c-line: #e6e8ec;
  --g2c-bg: #ffffff;
  --g2c-bg-soft: #f7f8fa;
  --g2c-primary: #16704a;      /* considered, charitable green */
  --g2c-primary-dark: #0f5537;
  --g2c-accent: #b8860b;       /* restrained gold for stars only */
  --g2c-radius: .65rem;
}

/* Bootstrap variable overrides (limited, so we stay light + minimal) */
:root {
  --bs-primary: var(--g2c-primary);
  --bs-primary-rgb: 22, 112, 74;
  --bs-body-color: var(--g2c-ink);
  --bs-body-bg: var(--g2c-bg);
  --bs-border-color: var(--g2c-line);
  --bs-link-color: var(--g2c-primary);
  --bs-link-hover-color: var(--g2c-primary-dark);
  --bs-body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --bs-body-line-height: 1.6;
}

body.g2c { background: var(--g2c-bg); color: var(--g2c-ink); -webkit-font-smoothing: antialiased; }

/* Buttons — solid, quiet, high-contrast */
.btn-primary {
  --bs-btn-bg: var(--g2c-primary);
  --bs-btn-border-color: var(--g2c-primary);
  --bs-btn-hover-bg: var(--g2c-primary-dark);
  --bs-btn-hover-border-color: var(--g2c-primary-dark);
  --bs-btn-active-bg: var(--g2c-primary-dark);
  --bs-btn-disabled-bg: var(--g2c-primary);
}
.btn { border-radius: var(--g2c-radius); font-weight: 600; }

a { text-decoration: none; }
a:hover { text-decoration: underline; }

/* Headings + lead */
.g2c-h1 { line-height: 1.15; letter-spacing: -0.01em; }
.g2c-lead { color: var(--g2c-muted); max-width: 62ch; }

/* Header / nav */
.g2c-header { position: sticky; top: 0; z-index: 1030; background: #fff; }
.navbar-brand { color: var(--g2c-ink); font-size: 1.15rem; }
.navbar .nav-link { color: var(--g2c-ink); font-weight: 500; }
.navbar .nav-link:hover, .navbar .nav-link:focus { color: var(--g2c-primary); }
.dropdown-menu { border-color: var(--g2c-line); border-radius: var(--g2c-radius); box-shadow: 0 8px 28px rgba(0,0,0,.08); }

/* Disclosure bar (above the fold, quiet but present) */
.g2c-disclosure-bar { background: var(--g2c-bg-soft); border-bottom: 1px solid var(--g2c-line); }
.g2c-disclosure-bar p { color: var(--g2c-muted); padding: .5rem 0; }

/* Hero */
.g2c-hero { background: linear-gradient(180deg, var(--g2c-bg-soft), #fff); }

/* Cards */
.card { border-color: var(--g2c-line); border-radius: var(--g2c-radius); }
.g2c-value-card { transition: box-shadow .15s ease, transform .15s ease; }
.g2c-value-card:hover { box-shadow: 0 10px 30px rgba(0,0,0,.06); transform: translateY(-2px); }
.g2c-value-icon { font-size: 1.6rem; color: var(--g2c-primary); }

/* Draw card */
.g2c-draw-card .g2c-card-media { position: relative; display: block; }
.g2c-card-placeholder {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 16 / 10; background: var(--g2c-bg-soft); color: #c3c8d0; font-size: 2.5rem;
  border-top-left-radius: var(--g2c-radius); border-top-right-radius: var(--g2c-radius);
}
.g2c-operator-badge {
  position: absolute; left: .6rem; top: .6rem; background: rgba(255,255,255,.95);
  border: 1px solid var(--g2c-line); border-radius: 999px; padding: .15rem .6rem;
  font-size: .72rem; font-weight: 600; color: var(--g2c-ink);
}
.g2c-charity-line { color: var(--g2c-primary); }
.g2c-charity-line .bi { color: var(--g2c-primary); }
.g2c-free-tag { color: var(--g2c-primary); font-weight: 600; }
.g2c-price { color: var(--g2c-ink); }
.g2c-draw-card.g2c-ended { opacity: .72; filter: grayscale(.4); }
.g2c-card-title a, .card-title a { color: var(--g2c-ink); }

/* Stars */
.g2c-stars { color: var(--g2c-accent); letter-spacing: 1px; }

/* Facts table */
.g2c-facts th { width: 34%; color: var(--g2c-muted); font-weight: 600; }

/* Free entry box — always visible, clearly flagged */
.g2c-free-entry { border-left: 4px solid var(--g2c-primary) !important; }

/* Odds calculator */
.g2c-odds .g2c-odds-result .h4 { color: var(--g2c-primary); }

/* CTA card / sticky */
.g2c-cta-card { border-color: var(--g2c-line); box-shadow: 0 6px 22px rgba(0,0,0,.05); }
.sticky-lg-top { top: 5rem; }

/* Sticky mobile CTA */
.g2c-sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040;
  background: #fff; border-top: 1px solid var(--g2c-line);
  padding: .6rem .9rem; box-shadow: 0 -4px 18px rgba(0,0,0,.06);
}
body.g2c.g2c-draw-live, body.g2c.g2c-draw-closing-soon { padding-bottom: 4.5rem; }
@media (min-width: 992px) { body.g2c { padding-bottom: 0 !important; } }

/* Email capture */
.g2c-email { background: var(--g2c-bg-soft); border: 1px solid var(--g2c-line); }
.g2c-email-footer { background: #fff; }

/* Filter bar (mobile-scrollable) */
.g2c-filter-bar { -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.g2c-filter-bar .btn { white-space: nowrap; border-radius: 999px; }

/* Comparison table */
.g2c-comparison caption { caption-side: top; font-weight: 600; color: var(--g2c-ink); }
.g2c-comparison th[data-sort] { user-select: none; }
.g2c-comparison th[aria-sort="ascending"]::after { content: " \2191"; }
.g2c-comparison th[aria-sort="descending"]::after { content: " \2193"; }

/* Breadcrumb */
.g2c-breadcrumb .breadcrumb { --bs-breadcrumb-divider: '›'; }

/* Content typography */
.g2c-content { font-size: 1.03rem; }
.g2c-content h2 { margin-top: 2rem; font-size: 1.4rem; }
.g2c-content h3 { margin-top: 1.4rem; font-size: 1.15rem; }
.g2c-content table { width: 100%; }
.g2c-content img { max-width: 100%; height: auto; border-radius: var(--g2c-radius); }

/* Footer */
.g2c-footer a { color: var(--g2c-ink); }
.g2c-footer h2 { color: var(--g2c-muted); text-transform: uppercase; letter-spacing: .04em; font-size: .78rem; }
.g2c-footer ul li { margin-bottom: .3rem; }

/* Accessibility: focus visible */
a:focus-visible, .btn:focus-visible, .form-control:focus-visible { outline: 2px solid var(--g2c-primary); outline-offset: 2px; }

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* -------------------------------------------------------------------------
 * Cookie consent banner (spec §7, UK PECR)
 * ---------------------------------------------------------------------- */
.g2c-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1080;
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
  padding: 0.75rem 0;
}
.g2c-consent[hidden] { display: none; }
.g2c-consent__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  justify-content: space-between;
}
.g2c-consent__text { flex: 1 1 320px; }
.g2c-consent__actions {
  display: flex;
  gap: 0.5rem;
  flex: 0 0 auto;
}
@media (max-width: 575.98px) {
  .g2c-consent__actions { width: 100%; }
  .g2c-consent__actions .btn { flex: 1 1 auto; }
}
