:root{
  --rhc-navy:#0f233c;
  --rhc-red:#c51e3a;
  --rhc-ice:#e9f2fb;
  --rhc-ink:#1b1f2a;
}

.hero-bg .hero-bg-img{
  min-height: 360px;
  background-position: center;
  background-size: cover;
  border-radius: 1rem;
  box-shadow: 0 6px 22px rgba(0,0,0,.25);
}

.rhc-card{
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  transition: transform .12s ease, box-shadow .12s ease;
}
.rhc-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.btn-primary{
  background: var(--rhc-red);
  border-color: var(--rhc-red);
}
.btn-primary:hover{
  filter: brightness(.95);
}

/* Make hero bleed edge-to-edge even inside a .container */
.hero-bleed{
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
}

.hero-bg-img{
  min-height: 360px;
  background-position: center;
  background-size: cover;
  border-radius: 0;              /* square edges like the team page */
  box-shadow: none;              /* remove card-like shadow for banner style */
}

/* Optional: darker overlay for text legibility */
.hero-bg-img::before{
  content: "";
  display: block;
  inset: 0;
  position: absolute;
  background: linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,.35));
}
.hero-bg-img > .container{ position: relative; z-index: 1; }

/* Add breathing room around hero copy on tablets and phones */
@media (max-width: 991.98px){
  .hero-bg-img > .container{
    padding-left: clamp(1.5rem, 5vw, 2.5rem);
    padding-right: clamp(1.5rem, 5vw, 2.5rem);
  }
}

/* Sticky sidebar used on Info pages */
.sticky-sidebar {
  position: sticky;
  top: 5rem;       /* roughly navbar height; tweak to suit */
}

/* CTA base */
.cta {
  position: relative;
  overflow: hidden;
}

/* Background image + scrim for banner/strip variants */
.cta__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: none;
  z-index: 0;
}
.cta__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,calc(var(--cta-darken, 35) / 100)) 0%,
    rgba(0,0,0,calc(var(--cta-darken, 35) / 100)) 100%
  );
  z-index: 1;
}

/* Content sits above bg/scrim */
.cta > .container,
.cta > .container .py-3,
.cta > .container .py-5,
.cta > .container .p-4 {
  position: relative;
  z-index: 2;
}

/* Variants */
.cta--banner { }
.cta--card   { background: var(--bs-body-bg); border: 1px solid rgba(255,255,255,.08); }
.cta--strip  { }

/* Club tones → map to your brand colours */
.cta--club-teal  { background: #0bb2b2; }       /* adjust to your exact club teal */
.cta--club-deep  { background: #0a6a6a; }       /* deep teal */
.cta--club-amber { background: #ffa500; color:#1b1b1b; }  /* amber; ensure contrast */

/* Spacing helper for bigger banners */
@media (min-width: 768px) {
  .py-md-6 { padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }
}

/* Sponsor logos */
.sponsor-logo { transition: filter .2s ease, opacity .2s ease; max-height: 70px; }
.sponsor-logo--gray { filter: grayscale(1); opacity: .85; }
.sponsor-logo-link:hover .sponsor-logo--gray { filter: grayscale(0); opacity: 1; }

/* Stats block tones */
.stats-block.stats--light { background: #f8f9fa; padding: 1.25rem; border-radius: 1rem; }
.stats-block.stats--dark { background: #0f172a; color: #fff; padding: 1.25rem; border-radius: 1rem; }
.stats-block.stats--club-teal { background: #0bb2b2; color:#fff; padding:1.25rem; border-radius:1rem; }
.stats-block.stats--club-deep { background: #0a6a6a; color:#fff; padding:1.25rem; border-radius:1rem; }
.stats-block.stats--club-amber { background: #ffa500; color:#1b1b1b; padding:1.25rem; border-radius:1rem; }
.stat-card { background: transparent; }

/* Rich text spacing inside two-column */
.rte :where(p, ul, ol){ margin-bottom: .75rem; }

/* Ensure text is readable on teal/deep backgrounds */
.cta--club-teal,
.cta--club-deep {
  color: #fff;
}

/* Make headings/lead inherit the correct tone colour */
.cta h1, .cta h2, .cta h3, .cta h4, .cta h5, .cta h6,
.cta .lead, .cta p, .cta .rte {
  color: inherit;
}

/* Links inside CTA inherit tone by default (so they aren’t blue on teal) */
.cta a:not(.btn) {
  color: inherit;
  text-decoration-color: rgba(255,255,255,.6);
}
.cta a:not(.btn):hover { text-decoration-color: currentColor; }

/* Better default for card variant (when used without a tone) */
.cta--card {
  background: var(--bs-body-bg);
  border: 1px solid rgba(0,0,0,.06);
  color: var(--bs-body-color);
}

/* Optional: give CTA buttons a touch more separation */
.cta .btn { margin-top: .125rem; }

/* ==== RHC: Sidebar + Policy styling ===================================== */

/* Brand tokens (extend your existing set) */
:root{
  --rhc-teal:#0f6b73;
  --rhc-deep:#0a4950;
  --rhc-ink:#15232c;
  --rhc-muted:#6b7a8a;
  --rhc-chip:#eef3f7;
  --rhc-line:#e6ebf0;
  --rhc-card:#ffffff;
  --rhc-green:#1aa16a;
}

/* Generic sidecard used by: Policy details / Quick Links / Related Policies / Button Row / Contact Card */
.rhc-sidecard{
  border: 1px solid var(--rhc-line);
  border-radius: .75rem;
  box-shadow: 0 1px 0 rgba(0,0,0,.03);
  background: var(--rhc-card);
}
.rhc-sidecard .card-body{ padding:.9rem 1rem; }
.rhc-sidecard .card-header{
  background:#f9fbfc;
  border-bottom:1px solid var(--rhc-line);
}

/* Buttons */
.btn-teal{
  --bs-btn-bg: var(--rhc-teal);
  --bs-btn-border-color: var(--rhc-teal);
  --bs-btn-hover-bg: #0c5560;
  --bs-btn-hover-border-color: #0c5560;
  --bs-btn-color:#fff;
}

/* “Chip” badge (e.g. Public) */
.rhc-chip{
  border-radius: 999px;
  padding:.25rem .5rem;
  font-size:.7rem;
}

/* Lists + links inside sidecards */
.rhc-list{ margin:0; padding:0; list-style:none; }
.rhc-list li{ margin-bottom:.2rem; }
.rhc-link{ text-decoration:none; }
.rhc-link:hover{ text-decoration:underline; }
.rhc-list i{ color: var(--rhc-muted); }

/* Contact card avatar */
.contact-card .avatar{ width:48px; height:48px; object-fit:cover; }

/* Accordion theme */
.accordion-item{ border-color: var(--rhc-line); }
.accordion-button{
  font-weight:600;
  color: var(--rhc-ink);
}
.accordion-button:not(.collapsed){
  background: linear-gradient(0deg, rgba(15,107,115,.08), rgba(15,107,115,.08));
  color: var(--rhc-deep);
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.05);
}
.accordion-button:focus{
  border-color: rgba(15,107,115,.35);
  box-shadow: 0 0 0 .25rem rgba(15,107,115,.15);
}

/* Callout (Key principles) – subtle teal panel */
.rhc-callout, .callout{
  background:#e8f6f7;
  border:1px solid #d5eef0;
  border-radius:.75rem;
  padding:1rem 1.25rem;
}

/* Sidebar button rows look even and wrap nicely */
.rhc-sidecard .btn{
  flex:1 1 auto;
  text-align:center;
}

/* Optional filter chips */
.badge-filter{
  background: var(--rhc-chip);
  color: var(--rhc-ink);
  border: 1px solid var(--rhc-line);
}

/* Make “Policy details” labels consistent */
.policy-card strong{ color: var(--rhc-ink); }
.policy-card .badge.bg-success{ background-color: var(--rhc-green) !important; }
.policy-card .badge.bg-warning{ background-color:#ffe08a !important; color:#3d2e00 !important; }


/* Slim policy-style hero */
.hero-slim .hero-bg-img{
  position: relative;
  min-height: 260px;           /* smaller than policy */
  background-position: center;
  background-size: cover;
  border-radius: 0;            /* same as policy banner */
}
@media (min-width: 992px){
  .hero-slim .hero-bg-img{ min-height: 300px; }
}
.hero-slim .hero-scrim{
  position: absolute;
  inset: 0;
  /* teal/navy scrim like policy header */
  background: linear-gradient(180deg, rgba(15,35,60,.65), rgba(15,35,60,.35));
}
.hero-slim .container{ position: relative; z-index: 1; }

/* Keep the blur for locked covers */
.blur{ filter: blur(8px); }
