/* CougConnect "Broadsheet" design system — editorial redesign (Phase 1) */

:root {
  --bs-royal: #2740d8;
  --bs-royal-hover: #1d31ad;
  --bs-ink: #101418;
  --bs-body: #1c1a14;
  --bs-secondary: #55503f;
  --bs-muted: #8a8577;
  --bs-bg: #faf9f6;
  --bs-card: #ffffff;
  --bs-hairline: #e4e1d8;
  --bs-input-border: #d8d4c8;
  --bs-gold: #ffd76a;
  --bs-blue-tint: #f0f2ff;
  --bs-footer-muted: #99aaaa;
  --bs-serif: "Source Serif 4", Georgia, serif;
  --bs-sans: "Libre Franklin", -apple-system, sans-serif;
}

body.bs-page {
  margin: 0;
  background: var(--bs-bg);
  font-family: var(--bs-sans);
  color: var(--bs-body);
  -webkit-font-smoothing: antialiased;
}
.bs-page a { color: var(--bs-royal); text-decoration: none; transition: color .15s ease; }
.bs-page a:hover { color: var(--bs-royal-hover); }

/* ---------- Nav ---------- */
.bs-nav {
  display: flex; align-items: center; gap: 28px;
  padding: 0 40px; height: 64px;
  border-bottom: 1px solid var(--bs-hairline);
  background: var(--bs-bg);
  position: relative;
}
.bs-nav__logo img { height: 34px; display: block; }
.bs-nav__links { display: flex; gap: 24px; font: 600 13.5px var(--bs-sans); margin-left: 12px; }
.bs-nav__links a { color: var(--bs-ink); padding: 21px 0; }
.bs-nav__links a:hover { color: var(--bs-royal); }
.bs-nav__links a.is-active { color: var(--bs-royal); border-bottom: 2px solid var(--bs-royal); }
.bs-nav__right { display: flex; gap: 18px; align-items: center; margin-left: auto; }
.bs-nav__login { font: 600 13.5px var(--bs-sans); color: var(--bs-ink); }
.bs-btn-subscribe {
  font: 700 12.5px var(--bs-sans); letter-spacing: .04em;
  color: #fff !important; background: var(--bs-royal);
  padding: 10px 18px; border-radius: 3px;
}
.bs-btn-subscribe:hover { background: var(--bs-royal-hover); color: #fff; }
.bs-nav__burger { display: none; background: none; border: 0; padding: 0; cursor: pointer; width: 44px; }
.bs-nav__burger span { display: block; height: 2px; background: var(--bs-ink); margin: 0 0 4px; width: 20px; }
.bs-nav__burger span:last-child { width: 12px; margin-bottom: 0; }
.bs-nav__mobile-menu {
  display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 50;
  background: var(--bs-bg); border-bottom: 1px solid var(--bs-hairline);
  flex-direction: column; padding: 8px 20px 16px;
}
.bs-nav__mobile-menu a { font: 600 15px var(--bs-sans); color: var(--bs-ink); padding: 12px 0; border-bottom: 1px solid var(--bs-hairline); }
.bs-nav__mobile-menu a:last-child { border-bottom: 0; }
.bs-nav__mobile-menu.is-open { display: flex; }

/* ---------- Big footer (brand panel) ---------- */
.bs-bigfooter { background: #060709; }
.bs-bigfooter__inner {
  max-width: 1180px; margin: 0 auto; padding: 44px 40px;
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; align-items: center;
}
.bs-bigfooter__brand { position: relative; min-height: 220px; display: flex; align-items: center; justify-content: center; }
.bs-bigfooter__collage {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: contain; opacity: .85;
}
.bs-bigfooter__logo { position: relative; width: 220px; max-width: 80%; }
.bs-bigfooter__links { display: flex; flex-direction: column; gap: 18px; justify-self: center; }
.bs-bigfooter__links a { font: 400 15px var(--bs-sans); color: #e8e8ea; }
.bs-bigfooter__links a:hover { color: #7d95ff; }
.bs-bigfooter__connect { display: flex; flex-direction: column; gap: 22px; align-items: flex-start; justify-self: center; }
.bs-bigfooter__email {
  display: inline-flex; align-items: center; gap: 8px;
  font: 400 15px var(--bs-sans); color: #5d6cf0 !important;
  border: 1px solid #3a46c9; border-radius: 999px; padding: 12px 22px;
}
.bs-bigfooter__email:hover { background: rgba(58,70,201,.15); }
.bs-bigfooter__socials { display: flex; gap: 12px; }
.bs-bigfooter__socials a {
  width: 46px; height: 46px; border: 1px solid #3a46c9; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; color: #5d6cf0;
}
.bs-bigfooter__socials a:hover { background: rgba(58,70,201,.15); color: #7d95ff; }
.bs-bigfooter__socials svg { width: 20px; height: 20px; }

/* ---------- Footer ---------- */
.bs-footer {
  display: flex; align-items: center; gap: 20px;
  padding: 20px 40px; background: var(--bs-ink);
  font: 400 12px var(--bs-sans); color: var(--bs-footer-muted);
  flex-wrap: wrap;
}
.bs-footer__brand { color: #fff; font-weight: 700; }
.bs-footer__legal { margin-left: auto; }

/* ---------- Shared components ---------- */
.bs-badge-insider {
  display: inline-flex; align-items: center; gap: 6px;
  font: 700 11px var(--bs-sans); letter-spacing: .12em;
  color: var(--bs-gold); background: var(--bs-ink);
  padding: 7px 12px; border-radius: 3px; white-space: nowrap;
}
.bs-badge-insider .bs-star { font-size: 12px; }
.bs-badge-insider--sm { font-size: 9px; letter-spacing: .1em; padding: 3px 6px; border-radius: 2px; gap: 4px; }
.bs-badge-insider--sm .bs-star { font-size: 9px; }

.bs-kicker { font: 700 11px var(--bs-sans); letter-spacing: .12em; color: var(--bs-royal); text-transform: uppercase; }
.bs-kicker a { color: var(--bs-royal); }

.bs-btn-primary {
  display: inline-block; font: 700 14px var(--bs-sans); color: #fff !important;
  background: var(--bs-royal); padding: 13px 24px; border-radius: 3px;
  border: 0; cursor: pointer; transition: background .15s ease; text-align: center;
}
.bs-btn-primary:hover { background: var(--bs-royal-hover); }
.bs-btn-outline {
  display: inline-block; font: 700 14px var(--bs-sans); color: var(--bs-royal) !important;
  border: 1.5px solid var(--bs-royal); background: transparent;
  padding: 12px 24px; border-radius: 3px; cursor: pointer; text-align: center;
}
.bs-btn-outline:hover { background: var(--bs-blue-tint); }

.bs-section-head {
  display: flex; align-items: baseline; gap: 14px;
  border-top: 2px solid var(--bs-ink); padding-top: 16px;
}
.bs-section-head__label { font: 800 15px var(--bs-sans); letter-spacing: .06em; color: var(--bs-ink); }
.bs-section-head__link { font: 600 13px var(--bs-sans); margin-left: auto; }

.bs-meta { font: 400 12.5px var(--bs-sans); color: var(--bs-muted); }

/* ---------- Article page ---------- */
.bs-article-header { max-width: 760px; margin: 0 auto; padding: 48px 20px 0; }
.bs-article-header__kickers { display: flex; gap: 10px; align-items: center; font: 700 12px var(--bs-sans); letter-spacing: .12em; color: var(--bs-royal); text-transform: uppercase; }
.bs-article-header__kickers .bs-sep { color: #c9c5b8; }
.bs-article-header__kickers .bs-sub { color: var(--bs-muted); }
.bs-article-header h1 { font: 700 44px/1.15 var(--bs-serif); color: var(--bs-ink); margin: 14px 0 0; text-wrap: pretty; }
.bs-article-header__dek { font: 400 20px/1.5 var(--bs-serif); color: var(--bs-secondary); margin: 16px 0 0; }
.bs-byline {
  display: flex; align-items: center; gap: 12px; margin: 24px 0 0; padding: 16px 0;
  border-top: 1px solid var(--bs-hairline); border-bottom: 1px solid var(--bs-hairline);
  flex-wrap: wrap;
}
.bs-byline__avatar {
  width: 36px; height: 36px; border-radius: 50%; background: var(--bs-royal); color: #fff;
  display: flex; align-items: center; justify-content: center; font: 700 14px var(--bs-sans);
  flex: none; overflow: hidden;
}
.bs-byline__avatar img { width: 100%; height: 100%; object-fit: cover; }
.bs-byline__name { font: 600 13.5px var(--bs-sans); color: var(--bs-ink); }
.bs-byline__date { font: 400 13px var(--bs-sans); color: var(--bs-muted); }

.bs-hero { max-width: 900px; margin: 32px auto 0; padding: 0 20px; }
.bs-hero img { width: 100%; display: block; border-radius: 2px; height: auto; }
.bs-hero__caption { font: 400 12.5px var(--bs-sans); color: var(--bs-muted); margin: 8px 0 0; }

.bs-article-body-grid {
  display: grid; grid-template-columns: 190px 680px; gap: 48px;
  justify-content: center; padding: 36px 40px 0;
}
.bs-rail { border-top: 2px solid var(--bs-ink); padding-top: 14px; align-self: start; position: sticky; top: 24px; }
.bs-rail__label { font: 800 12px var(--bs-sans); letter-spacing: .1em; color: var(--bs-ink); }
.bs-rail__items { display: flex; flex-direction: column; gap: 11px; margin-top: 14px; font: 500 13.5px var(--bs-sans); color: var(--bs-muted); }
.bs-rail__items a { color: var(--bs-muted); }
.bs-rail__items a.is-active { color: var(--bs-royal); font-weight: 600; border-left: 2px solid var(--bs-royal); padding-left: 10px; margin-left: -12px; }
.bs-rail__note { margin-top: 22px; border-top: 1px solid var(--bs-hairline); padding-top: 14px; font: 400 12px/1.5 var(--bs-sans); color: var(--bs-muted); }
.bs-rail__note .bs-badge-insider--sm { font-size: 10px; padding: 3px 7px; }
.bs-rail__note div { margin-top: 8px; }

.bs-article-body { font: 400 18.5px/1.72 var(--bs-serif); color: var(--bs-body); min-width: 0; }
.bs-article-body > p, .bs-article-body .bs-free > p { margin: 0 0 22px; }
.bs-article-body h2 { font: 700 28px/1.3 var(--bs-serif); color: var(--bs-ink); margin: 36px 0 16px; }
.bs-article-body h3 { font: 700 22px/1.35 var(--bs-serif); color: var(--bs-ink); margin: 30px 0 14px; }
.bs-article-body img { max-width: 100%; height: auto; border-radius: 2px; }
.bs-article-body figure { margin: 24px 0; }
.bs-article-body figcaption { font: 400 12.5px var(--bs-sans); color: var(--bs-muted); margin-top: 8px; }
.bs-article-body blockquote {
  margin: 28px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--bs-royal);
  font: 600 22px/1.5 var(--bs-serif); color: var(--bs-ink);
}
.bs-article-body iframe { max-width: 100%; }
.bs-article-body video { max-width: 100%; height: auto; }
.bs-article-body iframe[src*="videopress"],
.bs-article-body iframe[src*="youtube"],
.bs-article-body iframe[src*="vimeo"] { width: 100%; aspect-ratio: 16/9; height: auto; }
.bs-article-body .wp-block-embed, .bs-article-body .jetpack-video-wrapper { margin: 24px 0; }
.bs-article-body .video-player { min-height: 0 !important; }
.bs-article-body .wp-block-video video {
  max-height: 620px; object-fit: contain;
  background: var(--bs-ink); border-radius: 4px;
}

/* Chapter chips (mobile rail) */
.bs-chapter-strip { display: none; gap: 8px; padding: 14px 20px 0; overflow-x: auto; scrollbar-width: none; }
.bs-chapter-strip::-webkit-scrollbar { display: none; }
.bs-chapter-strip a {
  flex: none; font: 600 12px var(--bs-sans); color: var(--bs-muted);
  background: #fff; border: 1px solid var(--bs-hairline); border-radius: 999px; padding: 7px 13px;
}
.bs-chapter-strip a.is-active { color: var(--bs-royal); border-color: var(--bs-royal); }

/* Paywall */
.bs-paywall-blur { position: relative; margin-top: 22px; }
.bs-paywall-blur__text { filter: blur(6px); user-select: none; pointer-events: none; }
.bs-paywall-blur__text p { margin: 0 0 22px; }
.bs-paywall-blur__fade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(250,249,246,0) 0%, #faf9f6 78%); }
.bs-paywall-card {
  margin: -8px 0 0; position: relative; background: #fff;
  border: 1px solid var(--bs-hairline); border-top: 3px solid var(--bs-royal);
  border-radius: 4px; padding: 32px 36px; box-shadow: 0 8px 24px rgba(16,20,24,.06);
}
.bs-paywall-card__title { font: 700 26px/1.25 var(--bs-serif); color: var(--bs-ink); margin: 12px 0 0; }
.bs-paywall-card__dek { font: 400 15px/1.6 var(--bs-sans); color: var(--bs-secondary); margin: 8px 0 0; }
.bs-paywall-card__actions { display: flex; align-items: center; gap: 16px; margin: 22px 0 0; flex-wrap: wrap; }
.bs-paywall-card__compare { font: 600 14px var(--bs-sans); }
.bs-paywall-card__login { font: 400 13px var(--bs-sans); color: var(--bs-muted); margin-left: auto; }
.bs-paywall-card__login a { font-weight: 600; }

/* Related grid */
.bs-related { max-width: 900px; margin: 56px auto 0; padding: 0 20px 56px; }
.bs-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 20px; }
.bs-card { display: flex; flex-direction: column; gap: 10px; }
.bs-card a { color: inherit; }
.bs-card__img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 2px; display: block; background: repeating-linear-gradient(135deg, #f1efe8 0 12px, #e9e6dc 12px 24px); }
.bs-card__kickers { display: flex; gap: 8px; align-items: center; }
.bs-card__title { font: 600 17px/1.35 var(--bs-serif); color: var(--bs-ink); margin: 0; }
.bs-card__title a { color: var(--bs-ink); }
.bs-card__title a:hover { color: var(--bs-royal); }

/* ---------- Category archive ---------- */
.bs-cat-wrap { max-width: 1060px; margin: 0 auto; padding: 0 40px; }
.bs-cat-header { padding-top: 44px; }
.bs-cat-header__row { display: flex; align-items: flex-end; gap: 24px; border-bottom: 2px solid var(--bs-ink); padding-bottom: 20px; flex-wrap: wrap; }
.bs-cat-header__kickers { display: flex; align-items: center; gap: 10px; }
.bs-cat-header h1 { font: 700 40px/1.1 var(--bs-serif); color: var(--bs-ink); margin: 10px 0 0; }
.bs-chips { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.bs-chip {
  font: 600 12.5px var(--bs-sans); color: var(--bs-secondary) !important;
  background: #fff; border: 1px solid var(--bs-input-border); border-radius: 999px; padding: 8px 16px;
}
.bs-chip.is-active { color: #fff !important; background: var(--bs-ink); border-color: var(--bs-ink); }

.bs-lead { padding-top: 28px; }
.bs-lead__grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 36px; align-items: center; }
.bs-lead__grid img { width: 100%; display: block; border-radius: 4px; height: auto; }
.bs-lead h2 { font: 700 30px/1.2 var(--bs-serif); margin: 12px 0 0; text-wrap: pretty; }
.bs-lead h2 a { color: var(--bs-ink); }
.bs-lead h2 a:hover { color: var(--bs-royal); }
.bs-lead__dek { font: 400 15.5px/1.6 var(--bs-sans); color: var(--bs-secondary); margin: 12px 0 0; }
.bs-lead .bs-meta { margin-top: 14px; }

.bs-cat-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px;
  border-top: 1px solid var(--bs-hairline); padding-top: 28px; margin-top: 36px;
}
.bs-cat-grid .bs-card__img { border-radius: 4px; }
.bs-cat-grid .bs-card__title { font-size: 18px; }

.bs-subscribe-cell { background: var(--bs-ink); border-radius: 4px; padding: 26px 24px; display: flex; flex-direction: column; justify-content: center; }
.bs-subscribe-cell__badge {
  align-self: flex-start; font: 700 10px var(--bs-sans); letter-spacing: .12em;
  color: var(--bs-gold); border: 1px solid #3a3f2a; padding: 4px 8px; border-radius: 2px;
}
.bs-subscribe-cell__title { font: 700 22px/1.3 var(--bs-serif); color: #fff; margin: 14px 0 0; }
.bs-subscribe-cell__dek { font: 400 13.5px/1.55 var(--bs-sans); color: var(--bs-footer-muted); margin: 8px 0 0; }
.bs-subscribe-cell .bs-btn-primary { align-self: flex-start; font-size: 13px; padding: 12px 20px; margin: 18px 0 0; }

.bs-pagination { display: flex; align-items: center; justify-content: center; gap: 8px; font: 600 13px var(--bs-sans); margin: 36px 0 48px; }
.bs-pagination a, .bs-pagination span {
  color: var(--bs-secondary); background: #fff; border: 1px solid var(--bs-input-border);
  border-radius: 3px; padding: 9px 14px;
}
.bs-pagination .current { color: #fff; background: var(--bs-ink); border-color: var(--bs-ink); }

/* ---------- Pricing page ---------- */
.bs-pricing-hero { text-align: center; padding: 56px 40px 0; }
.bs-pricing-hero h1 { font: 700 46px/1.15 var(--bs-serif); color: var(--bs-ink); margin: 18px auto 0; max-width: 680px; text-wrap: pretty; }
.bs-pricing-hero__dek { font: 400 18px/1.6 var(--bs-sans); color: var(--bs-secondary); margin: 14px auto 0; max-width: 560px; }

.bs-toggle { display: inline-flex; margin: 28px auto 0; background: #fff; border: 1px solid var(--bs-hairline); border-radius: 999px; padding: 4px; }
.bs-toggle button { font: 600 13px var(--bs-sans); color: var(--bs-secondary); background: none; border: 0; border-radius: 999px; padding: 9px 20px; cursor: pointer; }
.bs-toggle button.is-active { font-weight: 700; color: #fff; background: var(--bs-ink); }
.bs-toggle .bs-save { color: var(--bs-royal); font-weight: 700; }
.bs-toggle button.is-active .bs-save { color: var(--bs-gold); }

.bs-plans {
  display: grid; grid-template-columns: 320px 340px 320px; gap: 20px;
  justify-content: center; align-items: start; padding: 36px 40px 0;
}
.bs-plan { background: #fff; border: 1px solid var(--bs-hairline); border-radius: 6px; padding: 28px; margin-top: 14px; }
.bs-plan--featured {
  border: 2px solid var(--bs-royal); box-shadow: 0 12px 32px rgba(39,64,216,.12);
  position: relative; margin-top: 0;
}
.bs-plan__popular {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  font: 700 11px var(--bs-sans); letter-spacing: .1em; color: #fff; background: var(--bs-royal);
  padding: 5px 12px; border-radius: 999px; white-space: nowrap;
}
.bs-plan__name { font: 700 13px var(--bs-sans); letter-spacing: .1em; color: var(--bs-secondary); }
.bs-plan--featured .bs-plan__name { color: var(--bs-royal); }
.bs-plan__name-row { display: flex; align-items: center; gap: 8px; }
.bs-plan__price-row { display: flex; align-items: baseline; gap: 6px; margin: 12px 0 0; }
.bs-plan__price { font: 700 42px var(--bs-serif); color: var(--bs-ink); }
.bs-plan__period { font: 500 14px var(--bs-sans); color: var(--bs-muted); }
.bs-plan__alt { font: 400 13px var(--bs-sans); color: var(--bs-muted); margin-top: 4px; }
.bs-plan__rule { height: 1px; background: var(--bs-hairline); margin: 20px 0; }
.bs-plan__features { display: flex; flex-direction: column; gap: 12px; font: 400 14px/1.5 var(--bs-sans); color: var(--bs-body); }
.bs-plan__features > div { display: flex; gap: 10px; }
.bs-plan__features .bs-check { color: var(--bs-royal); font-weight: 700; }
.bs-plan .bs-btn-primary, .bs-plan .bs-btn-outline { display: block; margin-top: 24px; }

.bs-pricing-finePrint { text-align: center; font: 400 13px var(--bs-sans); color: var(--bs-muted); padding: 24px 20px 0; }
.bs-pricing-finePrint a { font-weight: 600; }

.bs-testimonials { max-width: 900px; margin: 48px auto 0; padding: 0 40px; }
.bs-testimonials__note { font: 400 13px var(--bs-sans); color: var(--bs-muted); margin-left: auto; }
.bs-testimonials__grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 20px; margin-top: 20px; }
.bs-testimonials__single { margin-top: 20px; }
.bs-video-slot {
  position: relative; aspect-ratio: 16/9;
  background: repeating-linear-gradient(135deg, #101418 0 14px, #171c24 14px 28px);
  border-radius: 6px; overflow: hidden; display: flex; align-items: center; justify-content: center;
}
.bs-video-slot--stack { aspect-ratio: auto; flex: 1; }
.bs-testimonials__stack { display: flex; flex-direction: column; gap: 20px; }
.bs-video-slot__play {
  width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,.95);
  display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.bs-video-slot__play::after {
  content: ""; width: 0; height: 0; border-left: 22px solid var(--bs-royal);
  border-top: 14px solid transparent; border-bottom: 14px solid transparent; margin-left: 6px;
}
.bs-video-slot--sm .bs-video-slot__play { width: 44px; height: 44px; box-shadow: none; }
.bs-video-slot--sm .bs-video-slot__play::after { border-left-width: 13px; border-top-width: 8px; border-bottom-width: 8px; margin-left: 4px; }
.bs-video-slot__label { position: absolute; left: 16px; bottom: 14px; font: 600 13px var(--bs-sans); color: #fff; }
.bs-video-slot__label .bs-dur { color: var(--bs-footer-muted); font-weight: 400; }
.bs-video-slot iframe, .bs-video-slot video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bs-testimonials__caption { font: 400 13px/1.55 var(--bs-sans); color: var(--bs-muted); margin-top: 12px; }

.bs-players-focus { max-width: 900px; margin: 48px auto 0; padding: 0 40px; }
.bs-players-focus__headline { font: 700 32px/1.2 var(--bs-serif); color: var(--bs-ink); margin: 18px 0 0; text-wrap: pretty; }
.bs-players-focus__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 24px; }
.bs-players-focus__grid > div { border-top: 2px solid var(--bs-ink); padding-top: 14px; }
.bs-players-focus__title { font: 700 16px var(--bs-sans); color: var(--bs-ink); }
.bs-players-focus__dek { font: 400 13.5px/1.6 var(--bs-sans); color: var(--bs-secondary); margin-top: 6px; }

.bs-faq { max-width: 760px; margin: 48px auto 0; padding: 0 40px; }
.bs-faq__accordion { margin-top: 4px; border-top: 0; }
.bs-faq__accordion summary { font-size: 15px; }
.bs-faq__accordion .bs-accordion__body { font-size: 14.5px; }
.bs-faq__more { font: 400 13px var(--bs-sans); color: var(--bs-muted); margin-top: 16px; }
.bs-faq__more a { font-weight: 600; }

.bs-proof-strip {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--bs-hairline); border-top: 1px solid var(--bs-hairline); margin-top: 40px;
}
.bs-proof-strip__cell { background: var(--bs-bg); padding: 22px; text-align: center; }
.bs-proof-strip__stat { font: 700 24px var(--bs-serif); color: var(--bs-ink); }
.bs-proof-strip__label { font: 400 12.5px var(--bs-sans); color: var(--bs-muted); margin-top: 4px; }

/* ---------- Shop ---------- */
.bs-shop-header { padding-top: 44px; }
.bs-shop-header__row { display: flex; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.bs-shop-header h1 { font: 700 40px/1.1 var(--bs-serif); color: var(--bs-ink); margin: 10px 0 0; }
.bs-shop-header__dek { font: 400 15.5px/1.6 var(--bs-sans); color: var(--bs-secondary); margin: 10px 0 0; max-width: 480px; }
.bs-shop-header__meta { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.bs-shop-chips { margin: 24px 0 0; border-bottom: 1px solid var(--bs-hairline); padding-bottom: 20px; }
.bs-chip--royal { color: var(--bs-royal) !important; border-color: var(--bs-royal); }
.bs-chip--royal.is-active { color: #fff !important; background: var(--bs-royal); border-color: var(--bs-royal); }

/* Featured strip (shop page 1) */
.bs-featured { padding-top: 28px; }
.bs-featured__head { display: flex; align-items: baseline; gap: 14px; }
.bs-featured__label { font: 800 15px var(--bs-sans); letter-spacing: .06em; color: var(--bs-ink); }
.bs-featured__sub { font: 400 13px var(--bs-sans); color: var(--bs-muted); }
.bs-featured__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 20px; margin-top: 16px; }
.bs-featured-hero {
  position: relative; background: var(--bs-ink); border-radius: 6px; overflow: hidden;
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
}
.bs-featured-hero__text { padding: 26px 0 26px 26px; }
.bs-featured-hero__badge { position: static; display: inline-flex; }
.bs-featured-hero__name { font: 700 24px/1.2 var(--bs-serif); color: #fff; margin-top: 12px; }
.bs-featured-hero__price { font: 600 14px var(--bs-sans); color: #b9beca; margin-top: 6px; }
.bs-featured-hero__price .woocommerce-Price-amount { font: inherit; color: inherit; }
.bs-featured-hero__cta {
  display: inline-block; font: 700 12.5px var(--bs-sans); color: var(--bs-ink);
  background: #fff; border-radius: 3px; padding: 10px 16px; margin-top: 16px;
}
.bs-featured-hero__img { width: 100%; height: 100%; object-fit: cover; display: block; align-self: stretch; }
.bs-featured-card { background: #fff; border: 1px solid var(--bs-hairline); border-radius: 6px; overflow: hidden; display: block; }
.bs-featured-card__imgwrap { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.bs-featured-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bs-featured-card__body { padding: 14px 16px 16px; }
.bs-featured__allrule { border-top: 1px solid var(--bs-hairline); margin-top: 28px; padding-top: 24px; }

.bs-shop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px 20px; padding: 28px 0 12px; }
.bs-shop-grid--after-featured { padding-top: 20px; }
.bs-shop-card__imgwrap {
  position: relative; display: block; aspect-ratio: 1; background: #fff;
  border: 1px solid var(--bs-hairline); border-radius: 4px; overflow: hidden;
}
.bs-shop-card__imgwrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bs-shop-badge {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font: 700 9.5px var(--bs-sans); letter-spacing: .1em; padding: 4px 8px; border-radius: 2px;
}
.bs-shop-badge--royal { color: #fff; background: var(--bs-royal); }
.bs-shop-badge--new { color: var(--bs-ink); background: var(--bs-gold); }
.bs-shop-card__name { display: block; font: 600 15px var(--bs-serif); color: var(--bs-ink) !important; margin-top: 10px; }
.bs-shop-card__name:hover { color: var(--bs-royal) !important; }
.bs-shop-card__price { font: 600 13.5px var(--bs-sans); color: var(--bs-secondary); margin-top: 3px; }
.bs-shop-card__price del { color: var(--bs-muted); margin-right: 6px; }

/* ---------- Product page ---------- */
.bs-breadcrumb { font: 400 13px var(--bs-sans); color: var(--bs-muted); padding: 24px 0 0; }
.bs-breadcrumb__current { color: var(--bs-ink); font-weight: 600; }
.bs-pdp-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; padding: 20px 0 52px; }
.bs-pdp-gallery__main { background: #fff; border: 1px solid var(--bs-hairline); border-radius: 4px; overflow: hidden; }
.bs-pdp-gallery__main img { width: 100%; display: block; height: auto; }
.bs-pdp-gallery__thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 10px; }
.bs-pdp-thumb { aspect-ratio: 1; border: 1px solid var(--bs-hairline); border-radius: 4px; overflow: hidden; padding: 0; background: #fff; cursor: pointer; }
.bs-pdp-thumb.is-active { border: 2px solid var(--bs-royal); }
.bs-pdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.bs-pdp-collection { position: static; display: inline-flex; font-size: 10.5px; padding: 5px 10px; }
.bs-pdp-title { font: 700 36px/1.15 var(--bs-serif); color: var(--bs-ink); margin: 12px 0 0; }
.bs-pdp-price { font: 700 24px var(--bs-sans); color: var(--bs-ink); margin: 12px 0 0; }
.bs-pdp-price .woocommerce-Price-amount { font: inherit; }
.bs-pdp-callout {
  background: #fff; border: 1px solid var(--bs-hairline); border-left: 3px solid var(--bs-royal);
  border-radius: 3px; padding: 12px 14px; margin: 18px 0 0;
  font: 400 13.5px/1.5 var(--bs-sans); color: var(--bs-secondary);
}
.bs-pdp-sizelabel { font: 700 12px var(--bs-sans); letter-spacing: .08em; color: var(--bs-ink); margin: 22px 0 0; }
.bs-pdp-sizes { display: flex; gap: 8px; margin: 10px 0 0; flex-wrap: wrap; }
.bs-pdp-size {
  font: 600 13px var(--bs-sans); color: var(--bs-secondary); background: #fff;
  border: 1px solid var(--bs-input-border); border-radius: 3px; padding: 11px 0;
  width: 52px; text-align: center; cursor: pointer;
}
.bs-pdp-size.is-active { color: #fff; background: var(--bs-ink); border-color: var(--bs-ink); }
.bs-pdp-size:disabled { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.bs-pdp-buyrow { display: flex; gap: 12px; margin: 24px 0 0; }
.bs-qty { display: flex; align-items: center; border: 1px solid var(--bs-input-border); border-radius: 3px; background: #fff; }
.bs-qty__btn { font: 600 16px var(--bs-sans); color: var(--bs-secondary); padding: 12px 16px; background: none; border: 0; cursor: pointer; }
.bs-qty input { font: 600 14px var(--bs-sans); color: var(--bs-ink); width: 34px; text-align: center; border: 0; background: none; -moz-appearance: textfield; }
.bs-qty input::-webkit-outer-spin-button, .bs-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.bs-pdp-add { flex: 1; font-size: 14.5px; }
.bs-pdp-add:disabled { background: var(--bs-muted); cursor: not-allowed; }
.bs-pdp-shipnote { font: 400 12.5px/1.5 var(--bs-sans); color: var(--bs-muted); margin: 12px 0 0; }

.bs-accordion { border-top: 1px solid var(--bs-hairline); margin-top: 26px; }
.bs-accordion details { border-bottom: 1px solid var(--bs-hairline); }
.bs-accordion summary {
  display: flex; align-items: center; justify-content: space-between;
  font: 700 13.5px var(--bs-sans); color: var(--bs-ink); padding: 16px 0; cursor: pointer; list-style: none;
}
.bs-accordion summary::-webkit-details-marker { display: none; }
.bs-accordion summary::after { content: "+"; color: var(--bs-muted); font-weight: 400; font-size: 16px; }
.bs-accordion details[open] summary::after { content: "−"; }
.bs-accordion__body { font: 400 14px/1.65 var(--bs-sans); color: var(--bs-secondary); padding: 0 0 16px; }
.bs-accordion__body p { margin: 0 0 10px; }
.bs-pdp-related { padding-bottom: 52px; }
.bs-shop-grid--related { padding-top: 20px; }

/* ---------- Perks ---------- */
.bs-perks-grid {
  max-width: 1060px; margin: 0 auto; display: grid; grid-template-columns: 360px 1fr;
  gap: 48px; padding: 48px 40px 56px; align-items: start;
}
.bs-perks-rail { position: sticky; top: 20px; }
.bs-perks-how { background: var(--bs-ink); border-radius: 8px; padding: 26px; }
.bs-perks-how__badge { font: 700 10px var(--bs-sans); letter-spacing: .12em; color: var(--bs-gold); }
.bs-perks-how__title { font: 700 22px var(--bs-serif); color: #fff; margin: 14px 0 0; }
.bs-perks-how__steps { display: flex; flex-direction: column; gap: 16px; margin-top: 20px; }
.bs-perks-how__steps > div { display: flex; gap: 12px; font: 400 13.5px/1.5 var(--bs-sans); color: #b9beca; }
.bs-perks-step {
  width: 24px; height: 24px; flex: none; border-radius: 50%; background: var(--bs-royal); color: #fff;
  display: flex; align-items: center; justify-content: center; font: 700 12px var(--bs-sans);
}
.bs-perks-rail__note { font: 400 13px/1.6 var(--bs-sans); color: var(--bs-secondary); margin-top: 18px; }
.bs-perks-rail__cta { display: block; margin-top: 12px; font-size: 13.5px; }
.bs-perks-list h1 { font: 700 36px/1.1 var(--bs-serif); color: var(--bs-ink); margin: 0; }
.bs-perks-group {
  font: 800 12px var(--bs-sans); letter-spacing: .1em; color: var(--bs-royal);
  border-top: 2px solid var(--bs-ink); padding-top: 12px; margin-top: 26px;
}
.bs-perks-list h1 + .bs-perks-group { margin-top: 22px; }
.bs-perks-rows { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.bs-perk-row {
  display: flex; align-items: center; gap: 16px; background: #fff;
  border: 1px solid var(--bs-hairline); border-radius: 6px; padding: 14px 18px;
}
.bs-perk-row--faded { opacity: .5; }
.bs-perk-row__logo {
  width: 44px; height: 44px; flex: none; border-radius: 6px; overflow: hidden;
  background: repeating-linear-gradient(135deg, #f1efe8 0 8px, #e9e6dc 8px 16px);
}
.bs-perk-row__logo img { width: 100%; height: 100%; object-fit: cover; }
.bs-perk-row__name { font: 700 15px var(--bs-serif); color: var(--bs-ink); }
.bs-perk-row__line { font: 400 12.5px var(--bs-sans); color: var(--bs-muted); }
.bs-perk-row__details { margin-left: auto; font: 600 12px var(--bs-sans); color: var(--bs-royal); }
.bs-perk-row__locked { margin-left: auto; font: 600 12px var(--bs-sans); color: var(--bs-muted); white-space: nowrap; }

/* ---------- About ---------- */
.bs-about-mission { max-width: 760px; margin: 0 auto; padding: 56px 20px 0; text-align: center; }
.bs-about-mission h1 { font: 700 46px/1.15 var(--bs-serif); color: var(--bs-ink); margin: 16px 0 0; text-wrap: pretty; }
.bs-about-mission p { font: 400 19px/1.65 var(--bs-serif); color: var(--bs-secondary); margin: 18px auto 0; max-width: 620px; }
.bs-about-photos {
  max-width: 1020px; margin: 40px auto 0; padding: 0 40px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
}
.bs-about-photos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 4px; display: block; }
.bs-about-story { padding-top: 48px; }
.bs-about-story .bs-article-body { max-width: 640px; font-size: 18px; }
.bs-about-h { font-size: 26px !important; margin: 36px 0 16px !important; }
.bs-about-story .bs-article-body h2:first-child { margin-top: 0 !important; }
.bs-about-cta { max-width: 680px; margin: 44px auto 0; padding: 0 20px 52px; text-align: center; }
.bs-about-cta__sub { font: 400 13px var(--bs-sans); color: var(--bs-muted); margin-top: 12px; }
.bs-about-cta__sub a { font-weight: 600; }

/* ---------- Advertise ---------- */
.bs-ad-hero { background: var(--bs-ink); padding: 56px 40px; }
.bs-ad-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.bs-ad-hero__kicker { font: 700 12px var(--bs-sans); letter-spacing: .14em; color: var(--bs-gold); }
.bs-ad-hero h1 { font: 700 46px/1.15 var(--bs-serif); color: #fff; margin: 16px 0 0; text-wrap: pretty; }
.bs-ad-hero p { font: 400 17px/1.6 var(--bs-sans); color: #b9beca; margin: 14px auto 0; max-width: 560px; }
.bs-ad-wrap { max-width: 980px; margin: 0 auto; padding: 0 40px; }
.bs-ad-props { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding-top: 44px; }
.bs-ad-props > div { border-top: 2px solid var(--bs-ink); padding-top: 16px; }
.bs-ad-prop__title { font: 700 17px var(--bs-sans); color: var(--bs-ink); }
.bs-ad-prop__dek { font: 400 14px/1.6 var(--bs-sans); color: var(--bs-secondary); margin-top: 6px; }
.bs-ad-placements { margin-top: 44px; }
.bs-ad-table { background: #fff; border: 1px solid var(--bs-hairline); border-radius: 6px; overflow: hidden; margin-top: 16px; }
.bs-ad-table__head {
  display: grid; grid-template-columns: 220px 1fr 180px;
  font: 700 11.5px var(--bs-sans); letter-spacing: .08em; color: var(--bs-muted);
  border-bottom: 2px solid var(--bs-ink);
}
.bs-ad-table__head > div, .bs-ad-table__row > div { padding: 15px 20px; }
.bs-ad-table__row { display: grid; grid-template-columns: 220px 1fr 180px; font: 400 14px var(--bs-sans); color: var(--bs-body); border-bottom: 1px solid #eeece4; }
.bs-ad-table__row:last-child { border-bottom: 0; }
.bs-ad-table__name { font-weight: 700; }
.bs-ad-table__desc { color: var(--bs-secondary); }
.bs-pill { font: 600 11.5px var(--bs-sans); color: var(--bs-royal); background: var(--bs-blue-tint); border-radius: 999px; padding: 4px 10px; white-space: nowrap; }
.bs-ad-custom { margin: 36px 0 0; padding-bottom: 52px; display: grid; grid-template-columns: 1fr 340px; gap: 36px; align-items: start; }
.bs-ad-custom__title { font: 700 24px var(--bs-serif); color: var(--bs-ink); }
.bs-ad-custom__dek { font: 400 15px/1.65 var(--bs-sans); color: var(--bs-secondary); margin-top: 10px; }
.bs-ad-custom__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }

/* ---------- Discord page ---------- */
.bs-dc-hero {
  max-width: 1060px; margin: 0 auto; display: grid; grid-template-columns: 1fr 480px;
  gap: 48px; padding: 52px 40px 0; align-items: center;
}
.bs-dc-hero h1 { font: 700 46px/1.12 var(--bs-serif); color: var(--bs-ink); margin: 14px 0 0; text-wrap: pretty; }
.bs-dc-hero p { font: 400 16.5px/1.65 var(--bs-sans); color: var(--bs-secondary); margin: 14px 0 0; max-width: 440px; }
.bs-dc-hero__actions { display: flex; gap: 14px; align-items: center; margin: 24px 0 0; flex-wrap: wrap; }
.bs-dc-hero__note { font: 400 13px var(--bs-sans); color: var(--bs-muted); }
.bs-dc-hero__note a { font-weight: 600; }

.bs-dc-mock {
  background: var(--bs-ink); border-radius: 10px; overflow: hidden;
  box-shadow: 0 20px 48px rgba(16,20,24,.25); display: grid; grid-template-columns: 168px 1fr;
}
.bs-dc-mock__sidebar { background: #0b0e13; padding: 16px 0; }
.bs-dc-mock__server { font: 700 12.5px var(--bs-sans); color: #fff; padding: 0 14px 12px; border-bottom: 1px solid #22262e; }
.bs-dc-mock__cat { font: 700 9.5px var(--bs-sans); letter-spacing: .08em; color: #626a78; padding: 14px 14px 6px; }
.bs-dc-mock__chan { font: 500 12.5px var(--bs-sans); color: #8f97a6; padding: 6px 14px; }
.bs-dc-mock__chan.is-active { color: #fff; background: #22262e; border-left: 2px solid var(--bs-royal); }
.bs-dc-mock__chan--locked { color: var(--bs-gold); }
.bs-dc-mock__count { color: #4caf6e; font-size: 10.5px; }
.bs-dc-mock__messages { padding: 16px 18px; display: flex; flex-direction: column; gap: 14px; }
.bs-dc-msg { display: flex; gap: 10px; }
.bs-dc-msg__avatar {
  width: 30px; height: 30px; flex: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font: 700 11px var(--bs-sans);
}
.bs-dc-msg__name { font: 700 12px var(--bs-sans); color: #fff; }
.bs-dc-msg__time { font: 400 10px var(--bs-sans); color: #626a78; }
.bs-dc-msg__tag { font: 400 9px var(--bs-sans); letter-spacing: .06em; color: var(--bs-ink); background: var(--bs-gold); border-radius: 2px; padding: 1px 5px; }
.bs-dc-msg__text { font: 400 12.5px/1.5 var(--bs-sans); color: #d6dbea; margin-top: 2px; }
.bs-dc-mock__input { background: #1a1f28; border-radius: 6px; padding: 9px 12px; font: 400 12px var(--bs-sans); color: #626a78; margin-top: auto; }

.bs-dc-features {
  max-width: 1060px; margin: 48px auto 0; padding: 0 40px;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px;
}
.bs-dc-features > div { border-top: 2px solid var(--bs-ink); padding-top: 14px; }
.bs-dc-feature__title { font: 700 16px var(--bs-sans); color: var(--bs-ink); }
.bs-dc-feature__dek { font: 400 13.5px/1.6 var(--bs-sans); color: var(--bs-secondary); margin-top: 6px; }

.bs-dc-rules { max-width: 1060px; margin: 48px auto 0; padding: 0 40px; }
.bs-dc-rules__sub { font: 400 13px var(--bs-sans); color: var(--bs-muted); }
.bs-dc-rules__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.bs-dc-rule { display: flex; gap: 16px; background: #fff; border: 1px solid var(--bs-hairline); border-radius: 6px; padding: 18px 20px; }
.bs-dc-rule__num { font: 700 22px var(--bs-serif); color: var(--bs-royal); flex: none; }
.bs-dc-rule__title { font: 700 14.5px var(--bs-sans); color: var(--bs-ink); }
.bs-dc-rule__dek { font: 400 13.5px/1.55 var(--bs-sans); color: var(--bs-secondary); margin-top: 4px; }
.bs-dc-rules__note { font: 400 13px var(--bs-sans); color: var(--bs-muted); margin-top: 14px; }

.bs-dc-join { max-width: 1060px; margin: 44px auto 0; padding: 0 40px 52px; }
.bs-dc-join__bar {
  background: var(--bs-ink); border-radius: 6px; padding: 32px 36px;
  display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 32px; align-items: center;
}
.bs-dc-step { display: flex; gap: 12px; font: 400 13.5px/1.5 var(--bs-sans); color: #b9beca; }
.bs-dc-step b { color: #fff; }
.bs-dc-join__cta {
  font: 700 14px var(--bs-sans); color: var(--bs-ink) !important; background: #fff;
  border-radius: 3px; padding: 13px 22px; white-space: nowrap;
}
.bs-dc-join__cta:hover { background: var(--bs-blue-tint); }

/* ---------- Forms (advertise + contact) ---------- */
.bs-form-card {
  background: #fff; border: 1px solid var(--bs-hairline); border-top: 3px solid var(--bs-royal);
  border-radius: 4px; padding: 24px; box-shadow: 0 8px 24px rgba(16,20,24,.06);
}
.bs-form-card__title { font: 700 16px var(--bs-sans); color: var(--bs-ink); margin-bottom: 14px; }
.bs-input {
  display: block; width: 100%; box-sizing: border-box;
  font: 400 13px var(--bs-sans); color: var(--bs-ink); background: var(--bs-bg);
  border: 1px solid var(--bs-hairline); border-radius: 3px; padding: 13px 14px; margin-top: 10px;
}
.bs-input::placeholder { color: var(--bs-muted); }
.bs-input:focus { outline: none; border-color: var(--bs-royal); }
.bs-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bs-form-row .bs-input { margin-top: 0; }
.bs-form-card__send { display: block; width: 100%; margin-top: 14px; font-size: 13.5px; }
.bs-form-card__alt { font: 400 12px var(--bs-sans); color: var(--bs-muted); text-align: center; margin-top: 10px; }
.bs-form-card__alt a { font-weight: 600; }
.bs-form-note { font: 400 14px/1.5 var(--bs-sans); padding: 14px; border-radius: 3px; }
.bs-form-note--ok { color: #1a5632; background: #eaf6ee; }
.bs-form-note--err { color: #8a2b2b; background: #fbeeee; }
.bs-hp { position: absolute; left: -9999px; height: 0; width: 0; opacity: 0; }

/* ---------- Contact ---------- */
.bs-contact-hero { max-width: 880px; margin: 0 auto; padding: 56px 40px 0; text-align: center; }
.bs-contact-hero h1 { font: 700 46px/1.12 var(--bs-serif); color: var(--bs-ink); margin: 14px 0 0; }
.bs-contact-tiles {
  max-width: 880px; margin: 32px auto 0; padding: 0 40px;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.bs-contact-tile {
  background: #fff; border: 1px solid var(--bs-hairline); border-radius: 6px;
  padding: 22px 18px; text-align: center; cursor: pointer;
}
.bs-contact-tile.is-active { border: 2px solid var(--bs-royal); box-shadow: 0 8px 20px rgba(39,64,216,.1); padding: 21px 17px; }
.bs-contact-tile__glyph { font: 700 26px var(--bs-serif); color: var(--bs-muted); }
.bs-contact-tile.is-active .bs-contact-tile__glyph { color: var(--bs-royal); }
.bs-contact-tile__label { font: 700 14.5px var(--bs-sans); color: var(--bs-ink); margin-top: 8px; }
.bs-contact-tile__sub { font: 400 11.5px var(--bs-sans); color: var(--bs-muted); margin-top: 4px; }
.bs-contact-formwrap { max-width: 620px; margin: 28px auto 0; padding: 0 40px 40px; }
.bs-form-card--contact { padding: 30px; }
.bs-contact-discord { text-align: center; font: 400 13px var(--bs-sans); color: var(--bs-muted); margin-top: 16px; }
.bs-contact-discord a { font-weight: 600; }

/* ---------- Woo cart / checkout / account (light Broadsheet pass) ---------- */
body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account {
  background: var(--bs-bg);
  font-family: var(--bs-sans);
  color: var(--bs-body);
}
body.woocommerce-cart .woocommerce, body.woocommerce-checkout .woocommerce, body.woocommerce-account .woocommerce {
  max-width: 1060px; margin: 0 auto; padding: 36px 40px 56px;
}
body.woocommerce-cart h1, body.woocommerce-checkout h1, body.woocommerce-account h1,
body.woocommerce-cart h2, body.woocommerce-checkout h2, body.woocommerce-account h2,
body.woocommerce-cart h3, body.woocommerce-checkout h3, body.woocommerce-account h3 {
  font-family: var(--bs-serif) !important;
  color: var(--bs-ink);
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.woocommerce table.shop_table {
  border: 1px solid var(--bs-hairline) !important;
  border-radius: 4px !important;
  background: #fff;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
  border-color: var(--bs-hairline) !important;
  font-family: var(--bs-sans);
}
.woocommerce table.shop_table th {
  font: 700 12px var(--bs-sans) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-muted);
}
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce input.button.alt, .woocommerce #place_order,
body.woocommerce-account .woocommerce-Button {
  background: var(--bs-royal) !important;
  color: #fff !important;
  font: 700 14px var(--bs-sans) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  border: 0 !important;
  border-radius: 3px !important;
  padding: 12px 20px !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #place_order:hover {
  background: var(--bs-royal-hover) !important;
}
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] {
  background: var(--bs-muted) !important; color: #fff !important;
}
.woocommerce .cart_totals, .woocommerce-checkout #order_review,
.woocommerce form.checkout .woocommerce-billing-fields,
body.woocommerce-account .woocommerce-MyAccount-content {
  font-family: var(--bs-sans);
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select, .woocommerce-page form .form-row input.input-text {
  border: 1px solid var(--bs-input-border);
  border-radius: 3px;
  background: #fff;
  padding: 11px 12px;
  font: 400 14px var(--bs-sans);
  color: var(--bs-ink);
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus {
  border-color: var(--bs-royal); outline: none;
}
.woocommerce form .form-row label { font: 600 13px var(--bs-sans); color: var(--bs-ink); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top-color: var(--bs-royal) !important;
  background: #fff !important;
  border: 1px solid var(--bs-hairline);
  border-top: 3px solid var(--bs-royal) !important;
  border-radius: 4px;
  color: var(--bs-body);
  font-family: var(--bs-sans);
}
.woocommerce-error { border-top-color: #b3392e !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--bs-royal); }
.woocommerce ul.order_details li { font-family: var(--bs-sans); }
.woocommerce .woocommerce-breadcrumb { font: 400 13px var(--bs-sans); color: var(--bs-muted); }
body.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block; font: 600 14px var(--bs-sans); color: var(--bs-secondary); padding: 10px 0;
  border-bottom: 1px solid var(--bs-hairline);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--bs-royal); }
@media (max-width: 900px) {
  body.woocommerce-cart .woocommerce, body.woocommerce-checkout .woocommerce, body.woocommerce-account .woocommerce {
    padding: 20px 20px 36px;
  }
}

/* ---------- Homepage ---------- */
.bs-home-hero { max-width: 1060px; margin: 0 auto; padding: 44px 40px 0; }
.bs-home-hero__title { font: 700 40px/1.15 var(--bs-serif); margin: 12px 0 0; text-wrap: pretty; }
body.bs-page .bs-home-hero__title { font-family: var(--bs-serif) !important; font-size: 40px !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.15 !important; }
.bs-home-hero__title a { color: var(--bs-ink); }
.bs-home-hero__title a:hover { color: var(--bs-royal); }
.bs-home-latest { max-width: 1060px; margin: 44px auto 0; padding: 0 40px; }
.bs-home-latest__grid { grid-template-columns: repeat(3, 1fr); }
.bs-home-subscribe { background: var(--bs-ink); margin-top: 52px; padding: 52px 40px; }
.bs-home-subscribe__inner { max-width: 680px; margin: 0 auto; text-align: center; }
.bs-home-subscribe h2 { font: 700 36px/1.2 var(--bs-serif); color: #fff; margin: 18px 0 0; text-wrap: pretty; }
body.bs-page .bs-home-subscribe h2 { font-family: var(--bs-serif) !important; font-size: 36px !important; color: #fff !important; text-transform: none !important; letter-spacing: 0 !important; }
.bs-home-subscribe p { font: 400 16px/1.6 var(--bs-sans); color: #b9beca; margin: 12px 0 0; }
.bs-home-subscribe__actions { display: flex; gap: 18px; align-items: center; justify-content: center; margin-top: 22px; flex-wrap: wrap; }
.bs-home-subscribe__link { font: 600 14px var(--bs-sans); color: #7d95ff !important; }
.bs-home-shop { max-width: 1060px; margin: 48px auto 0; padding: 0 40px; }
.bs-home-discord { max-width: 1060px; margin: 44px auto 0; padding: 0 40px; }
.bs-home-discord .bs-dc-join__bar { grid-template-columns: 1fr auto; }
.bs-home .bs-proof-strip { margin-top: 48px; }
@media (max-width: 900px) {
  .bs-home-hero { padding: 24px 20px 0; }
  body.bs-page .bs-home-hero__title { font-size: 26px !important; }
  .bs-home-latest { padding: 0 20px; margin-top: 28px; }
  .bs-home-latest__grid { grid-template-columns: 1fr; }
  .bs-home-latest .bs-card { flex-direction: row; gap: 12px; }
  .bs-home-latest .bs-card__img { width: 104px; height: 72px; aspect-ratio: auto; flex: none; }
  .bs-home-latest .bs-card__kickers { display: none; }
  .bs-home-latest .bs-card .bs-meta { display: none; }
  .bs-home-subscribe { padding: 36px 20px; margin-top: 32px; }
  body.bs-page .bs-home-subscribe h2 { font-size: 26px !important; }
  .bs-home-shop, .bs-home-discord { padding: 0 20px; margin-top: 32px; }
  .bs-home-discord .bs-dc-join__bar { grid-template-columns: 1fr; }
}

/* ---------- Woo utility pages (cart/checkout/account) ---------- */
.bs-woo-util__wrap { max-width: 1060px; margin: 0 auto; padding: 36px 40px 56px; }
.bs-woo-util__title { font: 700 40px/1.1 var(--bs-serif); color: var(--bs-ink); margin: 0 0 24px; }
body.bs-page .bs-woo-util__title { font-family: var(--bs-serif) !important; font-size: 40px !important; text-transform: none !important; letter-spacing: 0 !important; }
body.bs-page.bs-woo-util .woocommerce { padding: 0; }
@media (max-width: 900px) {
  .bs-woo-util__wrap { padding: 20px 20px 36px; }
  body.bs-page .bs-woo-util__title { font-size: 28px !important; }
}

/* ---------- FAQ page ---------- */
.bs-faq--page { max-width: 760px; margin: 28px auto 0; padding: 0 40px 52px; }
.bs-faq--page .bs-accordion__body p { margin: 0 0 10px; }
.bs-faq--page .bs-accordion__body ul, .bs-faq--page .bs-accordion__body ol { margin: 0 0 10px 18px; padding: 0; }
@media (max-width: 900px) { .bs-faq--page { padding: 0 20px 36px; } }

/* ---------- Hardening against theme/Elementor global styles ---------- */
body.bs-page .bs-card__title,
body.bs-page .bs-card__title a,
body.bs-page .bs-lead h2,
body.bs-page .bs-lead h2 a {
  font-family: var(--bs-serif) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
body.bs-page .bs-card__title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; }
body.bs-page .bs-cat-grid .bs-card__title { font-size: 18px !important; }
body.bs-page button { text-transform: none; }
body.bs-page .bs-nav__burger { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; }
body.bs-page .bs-toggle button { text-transform: none !important; letter-spacing: 0 !important; }

/* Elementor kit styles every <button>; reset ours hard. */
body.bs-page .bs-toggle button,
body.bs-page .bs-qty__btn,
body.bs-page .bs-pdp-size,
body.bs-page .bs-pdp-thumb,
body.bs-page .bs-contact-tile {
  font-family: var(--bs-sans) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  box-shadow: none;
}
body.bs-page .bs-pdp-size {
  background: #fff !important; color: var(--bs-secondary) !important;
  border: 1px solid var(--bs-input-border) !important; border-radius: 3px !important;
  font-size: 13px !important; font-weight: 600 !important; padding: 11px 0 !important;
}
body.bs-page .bs-pdp-size.is-active { background: var(--bs-ink) !important; color: #fff !important; border-color: var(--bs-ink) !important; }
body.bs-page .bs-qty__btn { background: transparent !important; color: var(--bs-secondary) !important; border: 0 !important; font-size: 16px !important; font-weight: 600 !important; padding: 12px 16px !important; border-radius: 0 !important; }
body.bs-page .bs-pdp-thumb { background: #fff !important; padding: 0 !important; }
body.bs-page .bs-qty input {
  font: 600 14px var(--bs-sans) !important; color: var(--bs-ink) !important;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  width: 34px !important; min-height: 0 !important; padding: 0 !important; text-align: center !important;
}
body.bs-page .bs-contact-tile {
  background: #fff !important; color: var(--bs-ink) !important;
  border: 1px solid var(--bs-hairline) !important; border-radius: 6px !important;
  padding: 22px 18px !important;
}
body.bs-page .bs-contact-tile.is-active { border: 2px solid var(--bs-royal) !important; padding: 21px 17px !important; box-shadow: 0 8px 20px rgba(39,64,216,.1) !important; }
body.bs-page .bs-contact-tile__glyph { font-family: var(--bs-serif) !important; }
body.bs-page .bs-btn-primary, body.bs-page button.bs-btn-primary {
  font-family: var(--bs-sans) !important; font-weight: 700 !important;
  text-transform: none !important; letter-spacing: 0 !important;
  background: var(--bs-royal) !important; color: #fff !important;
  border: 0 !important; border-radius: 3px !important;
}
body.bs-page .bs-btn-primary:hover { background: var(--bs-royal-hover) !important; }
body.bs-page .bs-pdp-add:disabled { background: var(--bs-muted) !important; }
body.bs-page .bs-btn-outline { font-family: var(--bs-sans) !important; text-transform: none !important; letter-spacing: 0 !important; background: transparent !important; color: var(--bs-royal) !important; border: 1.5px solid var(--bs-royal) !important; }
body.bs-page .bs-pdp-title { font-family: var(--bs-serif) !important; font-size: 36px !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.15 !important; }
body.bs-page .bs-players-focus__headline { font-family: var(--bs-serif) !important; font-size: 32px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.2 !important; }
@media (max-width: 900px) { body.bs-page .bs-players-focus__headline { font-size: 24px !important; } }
body.bs-page .bs-perk-row__name, body.bs-page .bs-shop-card__name { font-family: var(--bs-serif) !important; text-transform: none !important; letter-spacing: 0 !important; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .bs-nav { padding: 0 16px; height: 56px; gap: 0; }
  .bs-nav__links { display: none; }
  .bs-nav__burger { display: block; }
  .bs-nav__logo { margin: 0 auto; }
  .bs-nav__logo img { height: 30px; }
  .bs-nav__right { margin-left: 0; }
  .bs-nav__login { display: none; }
  .bs-btn-subscribe { font-size: 11px; padding: 9px 12px; }

  .bs-article-header { padding: 24px 20px 0; }
  .bs-article-header h1 { font-size: 27px; line-height: 1.2; }
  .bs-article-header__dek { font-size: 17px; }
  .bs-byline { border: 0; padding: 12px 0 4px; margin-top: 10px; }
  .bs-hero { margin-top: 8px; padding: 0; }
  .bs-hero__caption { padding: 0 20px; }

  .bs-article-body-grid { display: block; padding: 4px 20px 0; }
  .bs-rail { display: none; }
  .bs-chapter-strip { display: flex; margin: 0 -20px; padding: 14px 20px 4px; }
  .bs-article-body { font-size: 16.5px; line-height: 1.68; }
  .bs-article-body .bs-hide-mobile { display: none; }

  .bs-paywall-card { padding: 22px 20px; }
  .bs-paywall-card__title { font-size: 20px; }
  .bs-paywall-card__actions { flex-direction: column; align-items: stretch; gap: 10px; }
  .bs-paywall-card__compare { text-align: center; }
  .bs-paywall-card__login { margin: 4px auto 0; }

  .bs-related__grid { grid-template-columns: 1fr; gap: 14px; }
  .bs-related .bs-card { flex-direction: row; gap: 12px; }
  .bs-related .bs-card__img { width: 92px; height: 68px; aspect-ratio: auto; flex: none; }
  .bs-related .bs-card__kickers { display: none; }
  .bs-related .bs-card__title { font-size: 14px; }

  .bs-cat-wrap { padding: 0 20px; }
  .bs-cat-header { padding-top: 24px; }
  .bs-cat-header__row { border-bottom: 0; padding-bottom: 0; }
  .bs-cat-header h1 { font-size: 28px; }
  .bs-chips { margin: 14px -20px 0; padding: 0 20px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .bs-chips::-webkit-scrollbar { display: none; }
  .bs-chip { flex: none; }

  .bs-lead__grid { grid-template-columns: 1fr; gap: 10px; }
  .bs-lead h2 { font-size: 21px; }
  .bs-cat-grid { grid-template-columns: 1fr; gap: 18px; }
  .bs-cat-grid .bs-card { flex-direction: row; gap: 12px; }
  .bs-cat-grid .bs-card__img { width: 104px; height: 72px; aspect-ratio: auto; flex: none; }
  .bs-cat-grid .bs-card__title { font-size: 14.5px; }
  .bs-cat-grid .bs-card .bs-meta { display: none; }
  .bs-cat-grid .bs-subscribe-cell { margin: 6px -4px 0; }

  .bs-pricing-hero { padding: 30px 20px 0; }
  .bs-pricing-hero h1 { font-size: 30px; line-height: 1.2; }
  .bs-plans { grid-template-columns: 1fr; padding: 22px 16px 8px; gap: 14px; }
  .bs-plan { margin-top: 0; }
  .bs-plans .bs-plan--featured { order: -1; }
  .bs-players-focus { padding: 0 20px; margin-top: 32px; }
  .bs-players-focus__headline { font-size: 24px; }
  .bs-players-focus__grid { grid-template-columns: 1fr; gap: 18px; }
  .bs-faq { padding: 0 20px; margin-top: 32px; }
  .bs-testimonials { padding: 0 16px; }
  .bs-testimonials__grid { grid-template-columns: 1fr; }
  .bs-testimonials__stack { flex-direction: row; gap: 10px; }
  .bs-video-slot--stack { aspect-ratio: 16/9; }
  .bs-proof-strip { grid-template-columns: 1fr 1fr; }

  .bs-footer { padding: 20px; }
  .bs-footer__legal { margin-left: 0; }
  .bs-bigfooter__inner { grid-template-columns: 1fr; gap: 32px; padding: 32px 20px; }
  .bs-bigfooter__brand { min-height: 160px; }
  .bs-bigfooter__links { justify-self: start; gap: 14px; }
  .bs-bigfooter__connect { justify-self: start; }

  /* Shop */
  .bs-shop-header { padding-top: 24px; }
  .bs-shop-header h1 { font-size: 28px; }
  .bs-shop-header__meta { display: none; }
  .bs-shop-chips { border-bottom: 0; padding-bottom: 6px; }
  .bs-shop-grid { grid-template-columns: 1fr 1fr; gap: 18px 14px; padding-top: 16px; }
  .bs-featured { padding-top: 18px; }
  .bs-featured__sub { display: none; }
  .bs-featured__grid { grid-template-columns: 1fr; margin-top: 10px; }
  .bs-featured-card { display: none; }
  .bs-featured-hero { grid-template-columns: 1fr 130px; }
  .bs-featured-hero__text { padding: 18px 0 18px 18px; }
  .bs-featured-hero__name { font-size: 18px; margin-top: 8px; }
  .bs-featured-hero__price { font-size: 12.5px; margin-top: 4px; }
  .bs-featured-hero__cta { font-size: 11.5px; padding: 8px 13px; margin-top: 10px; }
  .bs-featured__allrule { margin-top: 18px; padding-top: 16px; }
  .bs-shop-card__name { font-size: 14px; margin-top: 8px; }
  .bs-shop-card__price { font-size: 12.5px; }
  .bs-nav__cart { display: block; }

  /* PDP */
  .bs-pdp-grid { grid-template-columns: 1fr; gap: 20px; padding-top: 10px; }
  .bs-pdp-title { font-size: 26px; }
  .bs-pdp-price { font-size: 20px; }
  .bs-pdp-size { width: 44px; font-size: 12.5px; }
  .bs-breadcrumb { padding-top: 14px; }

  /* Perks */
  .bs-perks-grid { grid-template-columns: 1fr; gap: 28px; padding: 24px 20px 36px; }
  .bs-perks-rail { position: static; }
  .bs-perks-list h1 { font-size: 28px; }

  /* About */
  .bs-about-mission { padding-top: 32px; }
  .bs-about-mission h1 { font-size: 30px; }
  .bs-about-mission p { font-size: 16.5px; }
  .bs-about-photos { grid-template-columns: 1fr; padding: 0 20px; margin-top: 24px; }
  .bs-about-story { padding-top: 24px; }

  /* Advertise */
  .bs-ad-hero { padding: 36px 20px; }
  .bs-ad-hero h1 { font-size: 30px; }
  .bs-ad-wrap { padding: 0 20px; }
  .bs-ad-props { grid-template-columns: 1fr; gap: 20px; padding-top: 28px; }
  .bs-ad-table__head { display: none; }
  .bs-ad-table__row { grid-template-columns: 1fr; border-bottom: 1px solid var(--bs-hairline); }
  .bs-ad-table__row > div { padding: 6px 16px; }
  .bs-ad-table__row > div:first-child { padding-top: 14px; }
  .bs-ad-table__row > div:last-child { padding-bottom: 14px; }
  .bs-ad-custom { grid-template-columns: 1fr; gap: 24px; }

  /* Discord */
  .bs-dc-hero { grid-template-columns: 1fr; gap: 28px; padding: 32px 20px 0; }
  .bs-dc-hero h1 { font-size: 30px; }
  .bs-dc-mock { grid-template-columns: 130px 1fr; }
  .bs-dc-features { grid-template-columns: 1fr; gap: 20px; padding: 0 20px; margin-top: 32px; }
  .bs-dc-rules { padding: 0 20px; margin-top: 32px; }
  .bs-dc-rules__grid { grid-template-columns: 1fr; }
  .bs-dc-join { padding: 0 20px 36px; margin-top: 32px; }
  .bs-dc-join__bar { grid-template-columns: 1fr; gap: 18px; padding: 24px 20px; }
  .bs-dc-join__cta { text-align: center; }

  /* Contact */
  .bs-contact-hero { padding: 32px 20px 0; }
  .bs-contact-hero h1 { font-size: 30px; }
  .bs-contact-tiles { grid-template-columns: 1fr 1fr; padding: 0 20px; margin-top: 20px; }
  .bs-contact-formwrap { padding: 0 20px 32px; }
  .bs-form-row { grid-template-columns: 1fr; }
}
