/* Breakout Takeout — Design System */
*, *::before, *::after { box-sizing: border-box; }

/* ─── Google Fonts ─────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Stencil+Display:wght@700;800&family=Big+Shoulders+Display:wght@600;700;800&family=JetBrains+Mono:wght@400;500&family=Inter:wght@300;400;600;700&display=swap');

/* ─── CSS Variables ─────────────────────────────────────────────────────────── */
:root {
  --bo-deep:           #0a0907;
  --bo-bg:             #11100d;
  --bo-paper:          #161410;
  --bo-surface:        #1c1913;
  --bo-elev:           #252018;
  --bo-border:         #2c261c;
  --bo-border-strong:  #423a2c;
  --bo-bright:         #f4ede0;
  --bo-text:           #d5cdbb;
  --bo-muted:          #8a8174;
  --bo-dim:            #5a5246;
  --bo-yellow:         #f5b800;
  --bo-yellow-soft:    #ffd566;
  --bo-yellow-deep:    #b88800;
  --bo-orange:         #ff8a2a;
  --bo-red:            #d04545;
  --bo-green:          #6ea84e;
}

/* ─── Global Reset for Breakout pages ──────────────────────────────────────── */
body {
  background: var(--bo-bg) !important;
  color: var(--bo-text);
  font-family: 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}

/* Override Bootstrap defaults */
a { color: var(--bo-yellow); text-decoration: none; }
a:hover { color: var(--bo-yellow-soft); text-decoration: none; }

/* ─── Typography ────────────────────────────────────────────────────────────── */
.bo-display {
  font-family: 'Big Shoulders Stencil Display', 'Big Shoulders Display', 'Impact', sans-serif;
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 0.95;
  color: var(--bo-bright);
  text-transform: uppercase;
}
.bo-headline {
  font-family: 'Big Shoulders Display', 'Impact', sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--bo-bright);
}
.bo-mono {
  font-family: 'JetBrains Mono', 'IBM Plex Mono', monospace;
  letter-spacing: 0.04em;
}
.bo-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bo-yellow);
  display: block;
}

/* ─── Buttons ───────────────────────────────────────────────────────────────── */
.bo-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 14px;
  padding: 12px 22px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--bo-bright);
  cursor: pointer;
  transition: all 0.15s ease;
  border-radius: 0 !important;
}
.bo-btn-primary {
  background: var(--bo-yellow);
  color: #1a1308;
  border-color: var(--bo-yellow);
}
.bo-btn-primary:hover, .bo-btn-primary:focus {
  background: var(--bo-yellow-soft);
  border-color: var(--bo-yellow-soft);
  color: #1a1308;
}
.bo-btn-ghost {
  background: transparent;
  border-color: var(--bo-border-strong);
  color: var(--bo-bright);
}
.bo-btn-ghost:hover, .bo-btn-ghost:focus {
  border-color: var(--bo-yellow);
  color: var(--bo-yellow);
  background: transparent;
}
.bo-btn-block { width: 100%; display: flex; }
.bo-btn-lg { padding: 16px 28px; font-size: 16px; }
.bo-btn-sm { padding: 8px 14px; font-size: 12px; }

/* ─── Layout Surfaces ───────────────────────────────────────────────────────── */
.bo-screen {
  background: var(--bo-bg);
  color: var(--bo-text);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  position: relative;
  overflow-x: hidden;
  min-height: 100vh;
}
.bo-card {
  background: var(--bo-surface);
  border: 1px solid var(--bo-border);
  position: relative;
}
.bo-card-elev {
  background: var(--bo-elev);
  border: 1px solid var(--bo-border-strong);
}

/* ─── Image Placeholders ────────────────────────────────────────────────────── */
.bo-img {
  background: repeating-linear-gradient(135deg, #1f1c16 0 8px, #181612 8px 16px);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bo-dim);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  overflow: hidden;
}
.bo-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

/* ─── Badges ────────────────────────────────────────────────────────────────── */
.bo-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: rgba(245, 184, 0, 0.12);
  color: var(--bo-yellow);
  border: 1px solid rgba(245, 184, 0, 0.3);
}
.bo-badge-solid { background: var(--bo-yellow); color: #1a1308; border-color: var(--bo-yellow); }
.bo-badge-hot   { background: rgba(255,138,42,0.15); color: var(--bo-orange); border-color: rgba(255,138,42,0.4); }
.bo-badge-neutral { background: rgba(212,205,187,0.08); color: var(--bo-text); border-color: var(--bo-border-strong); }
.bo-badge-new   { background: rgba(110,168,78,0.12); color: var(--bo-green); border-color: rgba(110,168,78,0.35); }

/* ─── Rule / Dividers ───────────────────────────────────────────────────────── */
.bo-rule {
  display: block;
  height: 3px;
  width: 64px;
  background: var(--bo-yellow);
  border: none;
}
.bo-divider {
  height: 1px;
  background: var(--bo-border);
  border: 0;
  margin: 0;
}

/* ─── Stamp ─────────────────────────────────────────────────────────────────── */
.bo-stamp {
  position: absolute;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 4px 10px;
  background: var(--bo-yellow);
  color: #1a1308;
  transform: rotate(-4deg);
  z-index: 5;
}

/* ─── Clip paths ────────────────────────────────────────────────────────────── */
.bo-clip-tl { clip-path: polygon(16px 0, 100% 0, 100% 100%, 0 100%, 0 16px); }
.bo-clip-tr { clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%); }

/* ─── Forms ─────────────────────────────────────────────────────────────────── */
.bo-input {
  width: 100%;
  padding: 12px 14px;
  background: var(--bo-deep);
  color: var(--bo-bright);
  border: 1px solid var(--bo-border-strong);
  font-family: inherit;
  font-size: 14px;
  outline: none;
  border-radius: 0;
  transition: border-color 0.15s;
}
.bo-input:focus { border-color: var(--bo-yellow); }
.bo-label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bo-muted);
  margin-bottom: 6px;
}

/* ─── Difficulty Locks ──────────────────────────────────────────────────────── */
.bo-locks { display: inline-flex; gap: 3px; align-items: center; color: var(--bo-yellow); }
.bo-lock-icon { width: 11px; height: 13px; }

/* ─── Product Cards ─────────────────────────────────────────────────────────── */
.bo-product-card {
  cursor: pointer;
  transition: transform 0.18s ease, border-color 0.18s ease;
  display: flex;
  flex-direction: column;
  background: var(--bo-surface);
  border: 1px solid var(--bo-border);
}
.bo-product-card:hover {
  transform: translateY(-2px);
  border-color: var(--bo-yellow);
}
.bo-product-card .bo-img {
  aspect-ratio: 4/5;
}
.bo-product-card .bo-img img {
  aspect-ratio: 4/5;
  object-fit: cover;
}
.bo-product-card-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.bo-product-card.compact .bo-product-card-body {
  padding: 10px 12px 12px;
}
.bo-product-name {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: 20px;
  color: var(--bo-bright);
  line-height: 1.1;
}
.bo-product-card.compact .bo-product-name { font-size: 16px; }

/* ─── Nav ───────────────────────────────────────────────────────────────────── */
.bo-nav-link {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bo-text);
  cursor: pointer;
  font-size: 13px;
  transition: color 0.15s;
  text-decoration: none;
}
.bo-nav-link:hover, .bo-nav-link.active { color: var(--bo-yellow); text-decoration: none; }
.bo-nav-link.gm { color: var(--bo-yellow); }

/* ─── Price Display ─────────────────────────────────────────────────────────── */
.bo-price {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
.bo-price-current {
  font-family: 'Big Shoulders Stencil Display', 'Big Shoulders Display', sans-serif;
  font-weight: 800;
  color: var(--bo-bright);
  text-transform: uppercase;
}
.bo-price-was {
  font-family: 'JetBrains Mono', monospace;
  color: var(--bo-dim);
  text-decoration: line-through;
  font-size: 0.55em;
}
.bo-price-sm .bo-price-current { font-size: 14px; }
.bo-price-md .bo-price-current { font-size: 18px; }
.bo-price-lg .bo-price-current { font-size: 28px; }
.bo-price-xl .bo-price-current { font-size: 40px; }

/* ─── Star Rating ───────────────────────────────────────────────────────────── */
.bo-stars { display: inline-flex; gap: 2px; color: var(--bo-yellow); }
.bo-stars .star-empty { opacity: 0.2; }

/* ─── Header ────────────────────────────────────────────────────────────────── */
.bo-header {
  position: relative;
  border-bottom: 1px solid var(--bo-border);
  background: var(--bo-paper);
  z-index: 100;
}
.bo-header-utility {
  border-bottom: 1px solid var(--bo-border);
  font-size: 11px;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.1em;
}
.bo-header-utility-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 8px 5px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.bo-header-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 5px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
}
.bo-header-left { display: flex; gap: 26px; align-items: center; }
.bo-header-right { display: flex; gap: 18px; justify-content: flex-end; align-items: center; }
.bo-header-search {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border: 1px solid var(--bo-border-strong);
  min-width: 240px;
  color: var(--bo-muted);
  font-size: 12px;
  font-family: 'JetBrains Mono', monospace;
  background: var(--bo-deep);
  cursor: pointer;
  transition: border-color 0.15s;
}
.bo-header-search:focus-within { border-color: var(--bo-yellow); }
.bo-header-search input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--bo-bright);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.1em;
  flex: 1;
}
.bo-cart-icon { position: relative; color: var(--bo-text); cursor: pointer; }
.bo-cart-count {
  position: absolute;
  top: -6px;
  right: -8px;
  background: var(--bo-yellow);
  color: #1a1308;
  font-size: 10px;
  font-weight: 800;
  width: 16px;
  height: 16px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono', monospace;
}

/* Mobile nav */
.bo-header-mobile {
  border-bottom: 1px solid var(--bo-border);
  background: var(--bo-paper);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bo-header-mobile .bo-cart-count { top: -5px; right: -6px; width: 14px; height: 14px; font-size: 9px; border-radius: 7px; }

/* ─── Logo ──────────────────────────────────────────────────────────────────── */
.bo-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
  user-select: none;
  text-decoration: none;
}
.bo-logo:hover { text-decoration: none; }
.bo-logo-main {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 0.95;
  color: var(--bo-bright);
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 2px;
}
.bo-logo-sub {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.bo-logo-sub-line { height: 1.5px; background: var(--bo-yellow); }
.bo-logo-sub-text {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  letter-spacing: 0.3em;
  color: var(--bo-yellow);
  text-transform: uppercase;
}

/* Logo sizes */
.bo-logo-sm .bo-logo-main { font-size: 18px; }
.bo-logo-sm .bo-logo-sub-line { width: 9px; }
.bo-logo-sm .bo-logo-sub-text { font-size: 8px; }
.bo-logo-md .bo-logo-main { font-size: 28px; }
.bo-logo-md .bo-logo-sub-line { width: 14px; }
.bo-logo-md .bo-logo-sub-text { font-size: 10px; }
.bo-logo-lg .bo-logo-main { font-size: 44px; }
.bo-logo-lg .bo-logo-sub-line { width: 22px; }
.bo-logo-lg .bo-logo-sub-text { font-size: 14px; }
.bo-logo-xl .bo-logo-main { font-size: 96px; }
.bo-logo-xl .bo-logo-sub-line { width: 48px; }
.bo-logo-xl .bo-logo-sub-text { font-size: 24px; }

/* ─── Footer ────────────────────────────────────────────────────────────────── */
.bo-footer {
  background: var(--bo-deep);
  border-top: 1px solid var(--bo-border);
  margin-top: 64px;
}
.bo-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 5px 24px;
}
.bo-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr;
  gap: 48px;
  margin-bottom: 40px;
}
.bo-footer-col-title { margin-bottom: 14px; }
.bo-footer-links { display: flex; flex-direction: column; gap: 8px; }
.bo-footer-links a { color: var(--bo-text); font-size: 13px; transition: color 0.15s; }
.bo-footer-links a:hover { color: var(--bo-yellow); }
.bo-footer-socials { display: flex; gap: 12px; margin-top: 18px; }
.bo-footer-social-btn {
  width: 30px; height: 30px;
  border: 1px solid var(--bo-border-strong);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; color: var(--bo-text);
  font-family: 'JetBrains Mono', monospace;
  transition: border-color 0.15s;
}
.bo-footer-social-btn:hover { border-color: var(--bo-yellow); color: var(--bo-yellow); }
.bo-footer-bottom {
  border-top: 1px solid var(--bo-border);
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  color: var(--bo-dim);
  font-size: 11px;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.06em;
}

/* ─── Mobile Bottom Tabs ─────────────────────────────────────────────────────── */
.bo-mobile-tabs {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: var(--bo-paper);
  border-top: 1px solid var(--bo-border);
  padding: 10px 0 14px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  z-index: 200;
}
.bo-mobile-tab {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  color: var(--bo-muted);
  text-decoration: none;
  transition: color 0.15s;
}
.bo-mobile-tab.active, .bo-mobile-tab:hover { color: var(--bo-yellow); text-decoration: none; }
.bo-mobile-tab-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ─── Hero Section ──────────────────────────────────────────────────────────── */
.bo-hero {
  position: relative;
  padding: 64px 5px 80px;
  overflow: hidden;
  border-bottom: 1px solid var(--bo-border);
}
.bo-hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 64px;
  align-items: center;
  position: relative;
}
.bo-hero-title {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 96px;
  line-height: 0.92;
  text-transform: uppercase;
  color: var(--bo-bright);
  margin: 0 0 10px;
}
.bo-hero-stats {
  display: flex;
  gap: 32px;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid var(--bo-border);
}
.bo-hero-stat-n {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 32px;
  color: var(--bo-yellow);
  text-transform: uppercase;
}
.bo-hero-stat-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--bo-muted);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.bo-hero-watermark {
  position: absolute;
  right: -100px;
  top: -60px;
  opacity: 0.04;
  color: var(--bo-yellow);
  pointer-events: none;
}

/* ─── Promise Strip ─────────────────────────────────────────────────────────── */
.bo-promise-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--bo-border);
}
.bo-promise-item {
  padding: 24px 32px;
  border-right: 1px solid var(--bo-border);
  display: flex;
  gap: 16px;
  align-items: center;
}
.bo-promise-item:last-child { border-right: none; }
.bo-promise-icon { color: var(--bo-yellow); flex-shrink: 0; }
.bo-promise-title {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: 14px;
  color: var(--bo-bright);
}
.bo-promise-sub { font-size: 12px; color: var(--bo-muted); margin-top: 2px; }

/* ─── Section Layout ─────────────────────────────────────────────────────────── */
.bo-section { padding: 64px 5px 24px; }
.bo-section-sm { padding: 48px 5px 24px; }
.bo-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 28px;
}
.bo-section-title {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 56px;
  text-transform: uppercase;
  color: var(--bo-bright);
  margin: 0;
  line-height: 0.95;
}

/* ─── Product Grid ───────────────────────────────────────────────────────────── */
.bo-product-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.bo-product-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.bo-product-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }

/* ─── Category Cards ─────────────────────────────────────────────────────────── */
.bo-cat-card {
  aspect-ratio: 4/3;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  background: var(--bo-surface);
  border: 1px solid var(--bo-border);
}
.bo-cat-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(10,9,7,0.92) 100%);
}
.bo-cat-card-label {
  position: absolute;
  left: 18px;
  bottom: 16px;
  right: 18px;
}
.bo-cat-card-name {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 26px;
  text-transform: uppercase;
  color: var(--bo-bright);
  line-height: 0.95;
}
.bo-cat-card-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--bo-yellow);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ─── Category grid ─────────────────────────────────────────────────────────── */
.bo-category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

/* ─── Cafe Banner ────────────────────────────────────────────────────────────── */
.bo-cafe-banner {
  padding: 48px 56px;
  background: linear-gradient(95deg, var(--bo-deep) 50%, var(--bo-surface) 100%);
  border: 1px solid var(--bo-border-strong);
  position: relative;
  overflow: hidden;
}

/* ─── Takeout content rev (Sep 2026) ────────────────────────────────────────── */
.bo-hero-ctas { display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap; }
.bo-hero-cta-note {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--bo-muted);
  margin-top: 8px;
}
.bo-hero-feature-card {
  position: absolute;
  right: -16px;
  bottom: -16px;
  background: var(--bo-deep);
  border: 1px solid var(--bo-border-strong);
  padding: 16px 20px;
  max-width: 280px;
}
.bo-cat-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.85;
  transition: transform 0.3s, opacity 0.3s;
}
.bo-cat-card:hover .bo-cat-card-img { transform: scale(1.03); opacity: 1; }
.bo-cat-card-desc { font-size: 12px; color: var(--bo-text); line-height: 1.4; margin-top: 6px; }
.bo-cat-card--plain { background: repeating-linear-gradient(135deg, var(--bo-surface) 0 12px, var(--bo-deep) 12px 24px); }
.bo-cat-card--plain .bo-cat-card-desc { color: var(--bo-yellow); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.bo-cafe-banner--image { background-size: cover; background-position: right center; background-repeat: no-repeat; }

/* Format badge on product cards (BOX / GAME CODE · TV + PHONE) */
.bo-format-badge {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bo-yellow);
  border: 1px solid rgba(245,184,0,0.45);
  padding: 3px 7px;
}

/* Information pages + FAQ accordion */
.bo-information { color: var(--bo-text); font-size: 14px; line-height: 1.7; }
.bo-information a { color: var(--bo-yellow); }
.bo-faq details { border-bottom: 1px solid var(--bo-border); }
.bo-faq details:first-child { border-top: 1px solid var(--bo-border); }
.bo-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 32px 18px 0;
  position: relative;
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  font-size: 18px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--bo-bright);
}
.bo-faq summary::-webkit-details-marker { display: none; }
.bo-faq summary::after { content: '+'; position: absolute; right: 4px; top: 16px; color: var(--bo-yellow); font-family: 'JetBrains Mono', monospace; font-size: 18px; }
.bo-faq details[open] summary::after { content: '−'; }
.bo-faq details p { margin: 0 0 20px; max-width: 720px; }

/* Home slideshow with captions */
.bo-slideshow { position: relative; border: 1px solid var(--bo-border-strong); background: var(--bo-deep); overflow: hidden; }
.bo-slideshow .swiper-slide { position: relative; }
.bo-slideshow .swiper-slide img { display: block; width: 100%; aspect-ratio: 1140/380; object-fit: cover; }
.bo-slide-caption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 48px 28px 22px;
  background: linear-gradient(180deg, transparent 0%, rgba(10,9,7,0.92) 100%);
  text-align: left;
}
.bo-slide-title {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 40px;
  line-height: 0.95;
  text-transform: uppercase;
  color: var(--bo-bright);
}
.bo-slide-line { font-size: 13px; color: var(--bo-text); margin-top: 6px; max-width: 560px; }
.bo-slideshow .swiper-pagination { position: static; padding: 12px 0 0; text-align: center; }
.bo-slideshow .swiper-pagination-bullet { background: var(--bo-muted); opacity: 0.5; border-radius: 0; width: 18px; height: 4px; }
.bo-slideshow .swiper-pagination-bullet-active { background: var(--bo-yellow); opacity: 1; }

/* ─── Listing Page ───────────────────────────────────────────────────────────── */
.bo-listing-layout {
  padding: 32px 5px;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 36px;
}
.bo-filter-sidebar { display: flex; flex-direction: column; gap: 28px; }
.bo-filter-group { display: flex; flex-direction: column; gap: 8px; }
.bo-filter-group-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--bo-border);
}
.bo-filter-group-title {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: 13px;
  color: var(--bo-bright);
}
.bo-filter-check {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 4px 0;
}
.bo-checkbox {
  width: 14px; height: 14px;
  border: 1px solid var(--bo-border-strong);
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #1a1308;
  transition: all 0.15s;
}
.bo-checkbox.checked { background: var(--bo-yellow); border-color: var(--bo-yellow); }
.bo-filter-label { font-size: 13px; color: var(--bo-text); }
.bo-filter-count { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--bo-muted); }

/* Price range slider */
.bo-range-bar { height: 4px; background: var(--bo-border); position: relative; margin-bottom: 16px; }
.bo-range-fill { position: absolute; top: 0; bottom: 0; background: var(--bo-yellow); }
.bo-range-handle {
  position: absolute;
  top: -5px;
  width: 14px; height: 14px;
  background: var(--bo-bright);
  border: 2px solid var(--bo-yellow);
  transform: translateX(-50%);
}

/* ─── PDP ────────────────────────────────────────────────────────────────────── */
.bo-pdp-layout { padding: 20px 5px 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.bo-pdp-gallery { display: flex; gap: 14px; }
.bo-pdp-thumbs { display: flex; flex-direction: column; gap: 10px; width: 80px; }
.bo-pdp-thumb { width: 80px; height: 100px; border: 1px solid var(--bo-border); cursor: pointer; transition: border-color 0.15s; }
.bo-pdp-thumb.active { border-color: var(--bo-yellow); }
.bo-pdp-main-img { flex: 1; position: relative; }
.bo-pdp-specs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--bo-border);
  margin-bottom: 28px;
}
.bo-pdp-spec {
  padding: 14px;
  border-right: 1px solid var(--bo-border);
}
.bo-pdp-spec:last-child { border-right: none; }
.bo-pdp-spec-icon { color: var(--bo-yellow); margin-bottom: 6px; }
.bo-pdp-spec-val {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 22px;
  text-transform: uppercase;
  color: var(--bo-bright);
}
.bo-pdp-spec-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bo-muted);
  margin-top: 2px;
}
.bo-gm-note {
  background: var(--bo-surface);
  border: 1px solid var(--bo-border);
  border-left: 3px solid var(--bo-yellow);
  padding: 18px;
  margin-bottom: 28px;
}
.bo-fulfill-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; }
.bo-fulfill-option {
  padding: 14px;
  border: 1px solid var(--bo-border);
  background: var(--bo-surface);
  cursor: pointer;
  transition: all 0.15s;
}
.bo-fulfill-option.active { border-color: var(--bo-yellow); background: rgba(245, 184, 0, 0.04); }
.bo-qty-control { display: inline-flex; border: 1px solid var(--bo-border-strong); align-items: stretch; }
.bo-qty-btn {
  width: 44px;
  background: transparent;
  border: none;
  color: var(--bo-text);
  cursor: pointer;
  font-size: 18px;
  display: flex; align-items: center; justify-content: center;
}
.bo-qty-val {
  width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 18px;
  color: var(--bo-bright);
  text-transform: uppercase;
}

/* PDP Tabs */
.bo-tab-nav { display: flex; gap: 32px; border-bottom: 1px solid var(--bo-border); }
.bo-tab-item {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: 14px;
  color: var(--bo-text);
  padding: 18px 0;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color 0.15s;
}
.bo-tab-item.active { color: var(--bo-yellow); border-bottom-color: var(--bo-yellow); }

/* ─── Cart ───────────────────────────────────────────────────────────────────── */
.bo-cart-layout {
  padding: 0 5px 64px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 36px;
}
.bo-cart-table-head {
  display: grid;
  grid-template-columns: 90px 1fr 120px 140px 40px;
  gap: 16px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--bo-border);
}
.bo-cart-row {
  display: grid;
  grid-template-columns: 90px 1fr 120px 140px 40px;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--bo-border);
  align-items: center;
}
.bo-order-summary { padding: 24px; position: sticky; top: 20px; }
.bo-fulfill-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--bo-border-strong);
  margin-bottom: 18px;
}
.bo-fulfill-toggle-opt {
  padding: 10px 12px;
  text-align: center;
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: all 0.15s;
}
.bo-fulfill-toggle-opt.active { background: var(--bo-yellow); color: #1a1308; }

/* ─── Checkout ───────────────────────────────────────────────────────────────── */
.bo-checkout-layout {
  padding: 40px 5px 64px;
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 48px;
}
.bo-checkout-progress {
  padding: 24px 48px;
  display: flex;
  justify-content: center;
  gap: 0;
  border-bottom: 1px solid var(--bo-border);
}
.bo-progress-step {
  display: flex;
  align-items: center;
  gap: 12px;
}
.bo-progress-step-num {
  width: 24px; height: 24px;
  border: 1px solid currentColor;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
}
.bo-progress-step-num.active { background: var(--bo-yellow); color: #1a1308; border-color: var(--bo-yellow); }
.bo-progress-line { width: 40px; height: 1px; background: var(--bo-border-strong); }
.bo-progress-line.done { background: var(--bo-yellow); }
.bo-payment-row {
  padding: 14px;
  border: 1px solid var(--bo-border);
  background: var(--bo-surface);
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  transition: border-color 0.15s;
  margin-bottom: 8px;
}
.bo-payment-row.active { border-color: var(--bo-yellow); background: rgba(245, 184, 0, 0.04); }
.bo-radio {
  width: 14px; height: 14px;
  border-radius: 7px;
  border: 2px solid var(--bo-border-strong);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color 0.15s;
}
.bo-radio.active { border-color: var(--bo-yellow); }
.bo-radio-dot {
  width: 6px; height: 6px;
  border-radius: 3px;
  background: var(--bo-yellow);
}

/* ─── Search ─────────────────────────────────────────────────────────────────── */
.bo-search-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border: 1px solid var(--bo-yellow);
  background: var(--bo-deep);
}
.bo-search-input {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--bo-bright);
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 22px;
  text-transform: uppercase;
  outline: none;
}
.bo-search-layout {
  padding: 32px 5px 64px;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 36px;
}

/* ─── Account ────────────────────────────────────────────────────────────────── */
.bo-account-layout {
  padding: 0 5px 64px;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 36px;
}
.bo-account-nav-item {
  padding: 12px 14px;
  border-left: 2px solid transparent;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--bo-text);
  cursor: pointer;
  transition: all 0.15s;
  text-decoration: none;
}
.bo-account-nav-item:hover { color: var(--bo-yellow); text-decoration: none; }
.bo-account-nav-item.active { border-left-color: var(--bo-yellow); background: var(--bo-surface); color: var(--bo-yellow); }
.bo-stat-card { padding: 18px; background: var(--bo-surface); border: 1px solid var(--bo-border); }
.bo-stat-num {
  font-family: 'Big Shoulders Stencil Display', sans-serif;
  font-weight: 800;
  font-size: 32px;
  text-transform: uppercase;
  color: var(--bo-bright);
}
.bo-stat-num.accent { color: var(--bo-yellow); }
.bo-stat-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--bo-muted); letter-spacing: 0.14em; text-transform: uppercase; margin-top: 4px; }
.bo-order-row {
  padding: 18px;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 20px;
  align-items: center;
  background: var(--bo-surface);
  border: 1px solid var(--bo-border);
  margin-bottom: 12px;
}
.bo-status-dot { width: 8px; height: 8px; border-radius: 4px; background: currentColor; display: inline-block; }

/* ─── Hints / Access Code ────────────────────────────────────────────────────── */
.bo-hint-entry { display: flex; flex-direction: column; align-items: center; padding: 80px 48px; max-width: 500px; margin: 0 auto; }
.bo-hint-icon {
  width: 80px; height: 80px;
  border: 2px solid var(--bo-border-strong);
  display: flex; align-items: center; justify-content: center;
  color: var(--bo-yellow);
  margin-bottom: 28px;
  transition: all 0.3s;
}
.bo-hint-icon.error { border-color: var(--bo-red); color: var(--bo-red); }
.bo-hint-icon.success { border-color: var(--bo-green); color: var(--bo-green); }
.bo-hint-item {
  padding: 12px 14px;
  border: 1px solid var(--bo-border);
  border-left: 3px solid var(--bo-border);
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 6px;
  transition: all 0.3s;
}
.bo-hint-item.unlocked { border-color: rgba(245,184,0,0.22); border-left-color: var(--bo-yellow); background: rgba(245,184,0,0.05); }
.bo-hint-item.locked { opacity: 0.3; }
.bo-hint-num { font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--bo-dim); letter-spacing: 0.16em; text-transform: uppercase; flex-shrink: 0; padding-top: 3px; min-width: 42px; }
.bo-hint-num.revealed { color: var(--bo-yellow); }
.bo-reveal-btn {
  background: rgba(245,184,0,0.1);
  border: 1px solid rgba(245,184,0,0.3);
  color: var(--bo-yellow);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  padding: 5px 10px;
  cursor: pointer;
  transition: background 0.15s;
}
.bo-reveal-btn:hover { background: rgba(245,184,0,0.2); }
.bo-spoiler-bar {
  background: rgba(255,138,42,0.06);
  border: 1px solid rgba(255,138,42,0.18);
  border-left: 3px solid var(--bo-orange);
  padding: 12px 96px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--bo-orange);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
}

/* ─── Breadcrumbs ────────────────────────────────────────────────────────────── */
.bo-breadcrumb {
  padding: 24px 5px 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bo-muted);
}
.bo-breadcrumb a { color: var(--bo-muted); }
.bo-breadcrumb a:hover { color: var(--bo-text); }
.bo-breadcrumb .current { color: var(--bo-text); }

/* ─── Alerts ─────────────────────────────────────────────────────────────────── */
.bo-alert {
  padding: 14px 18px;
  border: 1px solid;
  margin: 16px 48px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.08em;
}
.bo-alert-success { border-color: var(--bo-green); color: var(--bo-green); background: rgba(110,168,78,0.08); }
.bo-alert-danger { border-color: var(--bo-red); color: var(--bo-red); background: rgba(208,69,69,0.08); }
.bo-alert-info { border-color: var(--bo-yellow); color: var(--bo-yellow); background: rgba(245,184,0,0.06); }

/* ─── Pagination ─────────────────────────────────────────────────────────────── */
.bo-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 40px; }
.bo-page-btn {
  min-width: 36px; height: 36px;
  border: 1px solid var(--bo-border-strong);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--bo-text);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s;
  text-decoration: none;
  background: transparent;
}
.bo-page-btn:hover { border-color: var(--bo-yellow); color: var(--bo-yellow); }
.bo-page-btn.active { background: var(--bo-yellow); color: #1a1308; border-color: var(--bo-yellow); }

/* ─── Utility ────────────────────────────────────────────────────────────────── */
.bo-dot { width: 4px; height: 4px; background: currentColor; border-radius: 50%; display: inline-block; opacity: 0.5; }
.bo-in-stock { color: var(--bo-green); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.1em; }
.bo-save-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; background: rgba(255,138,42,0.15); color: var(--bo-orange); border: 1px solid rgba(255,138,42,0.4); }

/* ─── SVG Icons (inline) ─────────────────────────────────────────────────────── */
.bo-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.bo-icon svg { stroke: currentColor; fill: none; }

/* ─── Responsive — Mobile ────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .bo-header-utility, .bo-header-main { display: none; }
  .bo-header-mobile { display: flex; }
  .bo-hero { padding: 24px 16px 28px; }
  .bo-hero-grid { grid-template-columns: 1fr; }
  .bo-hero-title { font-size: 50px; }
  .bo-promise-strip { grid-template-columns: 1fr; border-bottom: 1px solid var(--bo-border); }
  .bo-promise-item { border-right: none; border-bottom: 1px solid var(--bo-border); padding: 16px; }
  .bo-section, .bo-section-sm { padding: 20px 16px; }
  .bo-section-title { font-size: 30px; }
  .bo-product-grid-4, .bo-product-grid-3 { grid-template-columns: 1fr 1fr; gap: 10px; }
  .bo-category-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .bo-hero-feature-card { right: 8px; bottom: 8px; max-width: 220px; padding: 12px 14px; }
  .bo-hero-ctas .bo-btn-lg { padding-left: 18px; padding-right: 18px; }
  .bo-cat-card-name { font-size: 20px; }
  .bo-cat-card-desc { font-size: 11px; }
  .bo-cafe-banner--image { padding: 28px 20px; background-position: 70% center; }
  .bo-cafe-banner--image .bo-display { font-size: 36px !important; }
  .bo-slide-caption { padding: 28px 14px 12px; position: static; background: var(--bo-deep); }
  .bo-slide-title { font-size: 24px; }
  .bo-slide-line { font-size: 12px; }
  .bo-footer { padding: 32px 16px 80px; }
  .bo-footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .bo-footer-bottom { flex-direction: column; gap: 8px; }
  .bo-listing-layout { grid-template-columns: 1fr; padding: 0; }
  .bo-filter-sidebar { display: none; }
  .bo-pdp-layout { grid-template-columns: 1fr; padding: 16px; }
  .bo-pdp-gallery { flex-direction: column; }
  .bo-pdp-thumbs { flex-direction: row; width: 100%; }
  .bo-pdp-thumb { width: 60px; height: 74px; }
  .bo-cart-layout { grid-template-columns: 1fr; padding: 0 16px; }
  .bo-cart-table-head { display: none; }
  .bo-cart-row { grid-template-columns: 70px 1fr; padding: 14px 0; }
  .bo-checkout-layout { grid-template-columns: 1fr; padding: 16px; }
  .bo-checkout-progress { padding: 14px 16px; }
  .bo-search-layout { grid-template-columns: 1fr; padding: 16px; }
  .bo-account-layout { grid-template-columns: 1fr; padding: 0 16px; }
  .bo-breadcrumb { padding: 14px 16px; }
  .bo-alert { margin: 8px 16px; }
  body { padding-bottom: 60px; }
  .bo-mobile-tabs { display: grid; }
}

@media (min-width: 769px) {
  .bo-header-mobile { display: none; }
  .bo-mobile-tabs { display: none; }
  .bo-filter-mobile-bar { display: none; }
}

/* ─── OpenCart overrides ─────────────────────────────────────────────────────── */
#top, header.navbar, .navbar { display: none !important; }
.breadcrumb { display: none !important; }
#column-left, #column-right { display: none; }
.container { max-width: 100% !important; padding: 0 !important; }
#content { width: 100% !important; }
.row { margin: 0 !important; }

/* ─── Case Guide: Custom Select (single & multi) ─────────────────────────────── */
.bo-select { position: relative; margin-bottom: 20px; }
.bo-select-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: var(--bo-surface);
  border: 1px solid var(--bo-border);
  color: var(--bo-muted);
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  font-size: 15px;
  padding: 14px 18px;
  cursor: pointer;
  text-align: left;
  transition: border-color .15s;
}
.bo-select-trigger:hover { border-color: var(--bo-yellow); }
.bo-select.open .bo-select-trigger { border-color: var(--bo-yellow); }
.bo-select-trigger.has-value { color: var(--bo-yellow); }
.bo-select-trigger-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bo-select-count { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--bo-muted); white-space: nowrap; flex-shrink: 0; }
.bo-select-arrow { flex-shrink: 0; color: var(--bo-yellow); transition: transform .15s; }
.bo-select.open .bo-select-arrow { transform: rotate(180deg); }
.bo-select-menu {
  position: absolute;
  top: 100%; left: 0; right: 0;
  background: var(--bo-paper);
  border: 1px solid var(--bo-border);
  border-top: none;
  max-height: 280px;
  overflow-y: auto;
  z-index: 50;
  display: none;
}
.bo-select.open .bo-select-menu { display: block; }
.bo-select-option {
  padding: 12px 18px;
  font-size: 14px;
  color: var(--bo-text);
  cursor: pointer;
  border-bottom: 1px solid var(--bo-border);
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background .15s;
}
.bo-select-option:last-child { border-bottom: none; }
.bo-select-option:hover { background: var(--bo-elev); }
.bo-select-option.selected { color: var(--bo-yellow); font-weight: 700; }

/* ─── Case Guide: Drop Point Hint Card shell ─────────────────────────────────── */
.bo-hint-card { background: var(--bo-surface); border: 1px solid var(--bo-border); }
.bo-hint-card-head {
  padding: 18px 20px;
  border-bottom: 1px solid var(--bo-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.bo-hint-card-count {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: .08em;
  color: var(--bo-yellow);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ─── Case Guide: Resolution Folder Cards ────────────────────────────────────── */
.bo-folder-card { background: var(--bo-surface); border: 1px solid var(--bo-border); margin-bottom: 12px; }
.bo-folder-card-head { display: flex; align-items: center; gap: 14px; padding: 16px 20px; cursor: pointer; user-select: none; }
.bo-folder-card-head img { width: 26px; height: auto; flex-shrink: 0; filter: brightness(0) invert(0.7) sepia(1) saturate(3) hue-rotate(10deg); }
.bo-folder-card-name { font-size: 15px; font-weight: 600; color: var(--bo-bright); }
.bo-folder-card-chevron { margin-left: auto; flex-shrink: 0; color: var(--bo-yellow); transition: transform .2s; }
.bo-folder-card.open .bo-folder-card-chevron { transform: rotate(180deg); }
.bo-folder-card-body { display: none; padding: 16px 20px 20px; border-top: 1px solid var(--bo-border); }
.bo-folder-card.open .bo-folder-card-body { display: block; }
.bo-folder-card-thumbs { display: flex; gap: 12px; flex-wrap: wrap; }
.bo-folder-card-thumb { position: relative; cursor: pointer; overflow: hidden; border: 2px solid var(--bo-border); width: 110px; flex-shrink: 0; transition: border-color .15s, transform .15s; }
.bo-folder-card-thumb:hover { border-color: var(--bo-yellow); transform: translateY(-2px); }
.bo-folder-card-thumb img { width: 100%; height: auto; display: block; }
.bo-folder-card-thumb-num { position: absolute; top: 6px; left: 6px; background: var(--bo-yellow); color: #1a1308; font-size: 10px; font-weight: 700; padding: 2px 7px; }
.bo-folder-card-hint { margin-top: 14px; font-size: 12px; color: var(--bo-dim); text-align: right; font-style: italic; }

/* ─── Case Guide: Lightbox ────────────────────────────────────────────────────── */
.bo-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.92); display: flex; align-items: center; justify-content: center; z-index: 2000; padding: 24px; }
.bo-lightbox-close { position: fixed; top: 16px; right: 20px; background: none; border: none; color: var(--bo-yellow); font-size: 32px; cursor: pointer; line-height: 1; opacity: .8; }
.bo-lightbox-close:hover { opacity: 1; }
.bo-lightbox-nav { position: fixed; top: 50%; transform: translateY(-50%); background: rgba(245,184,0,.12); border: 1px solid var(--bo-yellow); color: var(--bo-yellow); width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.bo-lightbox-nav.prev { left: 16px; }
.bo-lightbox-nav.next { right: 16px; }
.bo-lightbox-img-wrap { position: relative; max-width: 640px; width: 100%; }
.bo-lightbox-img-wrap img { width: 100%; height: auto; display: block; box-shadow: 0 32px 80px rgba(0,0,0,.8); }

/* ─── Case Guide: CTA Pill ────────────────────────────────────────────────────── */
.bo-cta-pill { background: var(--bo-surface); border: 1px solid var(--bo-yellow); border-radius: 50px; display: flex; align-items: center; padding: 14px 14px 14px 24px; gap: 16px; }
.bo-cta-pill-text { flex: 1; color: var(--bo-text); font-size: 15px; font-weight: 500; line-height: 1.5; min-width: 0; }
.bo-cta-pill-btn { background: var(--bo-yellow); border: none; border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; color: #1a1308; transition: background .2s; }
.bo-cta-pill-btn:hover { background: var(--bo-yellow-soft); }

/* ─── Case Guide: Responsive ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .bo-folder-card-thumb { width: 90px; }
}

/* ─── Themed scrollbar ────────────────────────────────────────────────────────
   Reusable on any scrollable container (modals, dropdowns, panels) instead of
   the default browser scrollbar. Thin, dark track, yellow thumb. */
.bo-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: var(--bo-yellow) var(--bo-surface);
}
.bo-scrollbar::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.bo-scrollbar::-webkit-scrollbar-track {
  background: var(--bo-surface);
}
.bo-scrollbar::-webkit-scrollbar-thumb {
  background: var(--bo-yellow-deep);
  border-radius: 8px;
  border: 2px solid var(--bo-surface);
}
.bo-scrollbar::-webkit-scrollbar-thumb:hover {
  background: var(--bo-yellow);
}

/* ─── Global page content width ──────────────────────────────────────────────
   #bo-page-wrap wraps every page's content between the header and footer
   (see header.twig / footer.twig) — constraining it here applies a single
   consistent 1200px content column site-wide (Home, Shop, Product, Cart,
   Checkout, Search, Account, Case Guide, etc.) without editing each template.
   The header/footer chrome itself lives outside this wrapper and stays
   full-width, which is intentional — nav/footer bars spanning edge-to-edge is
   normal even inside an otherwise "boxed" layout. */
#bo-page-wrap {
  max-width: 1200px;
  margin: 0 auto;
}

/* ─── Bootstrap fallback component theming ───────────────────────────────────
   The takeout theme has no overrides for catalog/view/theme/default/template/
   extension/total/{coupon,voucher,shipping,reward}.twig, so OpenCart falls
   back to those default-theme templates wherever the cart/checkout page
   renders its "total" extension widgets — plain Bootstrap panels/forms/modals
   with none of the site's styling. Rather than duplicate 3-4 templates (and
   risk breaking their working AJAX logic via a copy mistake), this reskins
   Bootstrap's own classes so every fallback panel/modal matches automatically,
   including the shipping-method modal that gets built dynamically in JS. */
.panel.panel-default {
  background: var(--bo-surface);
  border: 1px solid var(--bo-border);
  border-radius: 0;
  margin-bottom: 12px;
  box-shadow: none;
}
.panel.panel-default .panel-heading {
  background: var(--bo-paper);
  border-bottom: 1px solid var(--bo-border);
  padding: 14px 20px;
}
.panel-title, .panel-title a, .panel-title a:hover, .panel-title a:focus {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 15px;
  color: var(--bo-bright);
  text-decoration: none;
}
.panel-title a:hover { color: var(--bo-yellow); }
.panel-title .fa { color: var(--bo-muted); font-size: 12px; }
.panel.panel-default .panel-body {
  padding: 20px;
  color: var(--bo-text);
  font-family: 'Inter', system-ui, sans-serif;
}
.panel-body .control-label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bo-muted);
  margin-bottom: 6px;
}
.panel-body p { color: var(--bo-muted); font-size: 13px; line-height: 1.6; }
.form-control {
  background: var(--bo-deep);
  color: var(--bo-bright);
  border: 1px solid var(--bo-border-strong);
  border-radius: 0;
  box-shadow: none;
  height: auto;
  padding: 10px 12px;
}
.form-control:focus {
  border-color: var(--bo-yellow);
  box-shadow: none;
  background: var(--bo-deep);
  color: var(--bo-bright);
  outline: none;
}
.input-group-btn .btn,
.panel-body .btn-primary {
  background: var(--bo-yellow);
  border-color: var(--bo-yellow);
  color: #1a1308;
  border-radius: 0;
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  box-shadow: none;
}
.input-group-btn .btn:hover, .input-group-btn .btn:focus,
.panel-body .btn-primary:hover, .panel-body .btn-primary:focus {
  background: var(--bo-yellow-soft);
  border-color: var(--bo-yellow-soft);
  color: #1a1308;
}
.text-danger { color: var(--bo-red) !important; font-size: 12px; margin-top: 6px; }
.panel-body .alert-dismissible { border-radius: 0; }

.modal-content {
  background: var(--bo-surface);
  border: 1px solid var(--bo-border-strong);
  border-radius: 0;
  color: var(--bo-text);
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.modal-header {
  border-bottom: 1px solid var(--bo-border);
  padding: 16px 20px;
}
.modal-title {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bo-bright);
}
.modal-body { padding: 20px; }
.modal-footer {
  border-top: 1px solid var(--bo-border);
  padding: 16px 20px;
}
.modal .close { color: var(--bo-text); opacity: 0.7; text-shadow: none; }
.modal .close:hover { color: var(--bo-yellow); opacity: 1; }
.modal .btn-default {
  background: transparent;
  border: 1px solid var(--bo-border-strong);
  color: var(--bo-text);
  border-radius: 0;
  text-transform: uppercase;
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.modal .btn-default:hover { border-color: var(--bo-yellow); color: var(--bo-yellow); background: transparent; }
.modal .btn-primary {
  background: var(--bo-yellow);
  border-color: var(--bo-yellow);
  color: #1a1308;
  border-radius: 0;
  text-transform: uppercase;
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.modal .btn-primary:hover { background: var(--bo-yellow-soft); border-color: var(--bo-yellow-soft); }
.modal .btn-primary[disabled] { opacity: 0.4; }
.modal .radio label { color: var(--bo-text); font-size: 14px; }
.modal-backdrop.in { opacity: 0.75; background: var(--bo-deep); }

/* ─── Cart feedback (Oct 2026) ──────────────────────────────────────────────── */
.bo-cart-count[hidden] { display: none; }
.bo-toast {
  position: fixed;
  top: 84px;
  right: 24px;
  z-index: 1000;
  max-width: 380px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: var(--bo-paper);
  border: 1px solid var(--bo-yellow);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
  color: var(--bo-bright);
  font-size: 14px;
  line-height: 1.4;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.2s, transform 0.2s;
}
.bo-toast.show { opacity: 1; transform: none; }
.bo-toast-check { color: var(--bo-yellow); font-weight: 800; }
.bo-toast-link {
  white-space: nowrap;
  color: var(--bo-yellow);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
}
.bo-toast-link:hover { color: var(--bo-yellow-soft); text-decoration: none; }
.bo-toast-close { background: transparent; border: none; color: var(--bo-muted); font-size: 18px; line-height: 1; cursor: pointer; padding: 0 0 0 4px; }
.bo-toast-error { border-color: var(--bo-red); }
.bo-toast-error .bo-toast-check { color: var(--bo-red); }
@media (max-width: 768px) {
  .bo-toast { top: auto; bottom: 84px; left: 16px; right: 16px; max-width: none; transform: translateY(8px); }
}

/* ─── Official logo image (Oct 2026) ────────────────────────────────────────── */
.bo-logo-img { display: block; width: auto; height: 42px; max-width: 100%; }
.bo-logo-sm .bo-logo-img { height: 28px; }
.bo-footer .bo-logo-img { height: 48px; }
