/* ==========================================================================
   BuyMarihuanaSeeds.com — Custom Stylesheet
   Dark cannabis theme built on top of Bootstrap 5
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. CSS Custom Properties (Design Tokens)
   -------------------------------------------------------------------------- */
:root {
    /* Greens */
    --bms-green-darkest:  #0a160a;
    --bms-green-dark:     #111e11;
    --bms-green-card:     #172617;
    --bms-green-mid:      #1e3a1e;
    --bms-green-border:   #2a4a2a;
    --bms-green-primary:  #2d6a2d;
    --bms-green-bright:   #3d8b3d;
    --bms-green-light:    #5ab05a;
    --bms-green-pale:     #8bc34a;

    /* Golds / accents */
    --bms-gold:           #d4a843;
    --bms-gold-dark:      #b8892a;
    --bms-gold-light:     #e8c060;

    /* Text */
    --bms-text-primary:   #e8f5e8;
    --bms-text-muted:     #7a9e7a;
    --bms-text-subtle:    #4a6e4a;

    /* Status colours */
    --bms-legal:          #22c55e;
    --bms-medical:        #3b82f6;
    --bms-decrim:         #f59e0b;
    --bms-tolerated:      #8b5cf6;
    --bms-illegal:        #ef4444;
    --bms-death:          #7f1d1d;

    /* Typography */
    --bms-font-sans:      'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
    --bms-font-serif:     Georgia, 'Times New Roman', serif;
    --bms-radius:         12px;
    --bms-radius-sm:      8px;
    --bms-radius-lg:      20px;
    --bms-shadow:         0 4px 24px rgba(0,0,0,.5);
    --bms-shadow-sm:      0 2px 10px rgba(0,0,0,.35);
    --bms-transition:     all .25s ease;
}

/* --------------------------------------------------------------------------
   2. Base / Reset
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 76px; }

body.bms-body {
    background-color: var(--bms-green-darkest);
    color: var(--bms-text-primary);
    font-family: var(--bms-font-sans);
    font-size: 1rem;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Override Bootstrap's link colours */
a { color: var(--bms-gold); transition: var(--bms-transition); }
a:hover { color: var(--bms-gold-light); }

/* Fix FontAwesome path for local webfonts */
.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands {
    font-family: 'Font Awesome 6 Free', 'Font Awesome 6 Brands', sans-serif;
}

/* --------------------------------------------------------------------------
   3. Navigation
   -------------------------------------------------------------------------- */
.bms-navbar {
    background: rgba(10, 22, 10, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--bms-green-border);
    padding: .75rem 0;
}

.bms-brand {
    display: flex;
    align-items: center;
    gap: .65rem;
    text-decoration: none;
}

.bms-logo-img { border-radius: 8px; }

.bms-brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.bms-brand-main {
    font-size: 1rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    letter-spacing: -.3px;
}

.bms-brand-tld {
    font-size: .72rem;
    color: var(--bms-text-muted);
    letter-spacing: .5px;
}

.bms-green { color: var(--bms-green-pale) !important; }
.bms-gold  { color: var(--bms-gold)      !important; }

.bms-navbar .nav-link {
    color: var(--bms-text-muted);
    font-size: .9rem;
    font-weight: 500;
    padding: .45rem .9rem;
    border-radius: var(--bms-radius-sm);
    transition: var(--bms-transition);
}

.bms-navbar .nav-link:hover,
.bms-navbar .nav-link.active {
    color: var(--bms-gold);
    background: rgba(212,168,67,.08);
}

/* --------------------------------------------------------------------------
   4. Hero Section
   -------------------------------------------------------------------------- */
.bms-hero {
    position: relative;
    background: linear-gradient(135deg, var(--bms-green-darkest) 0%, #0f2a0f 60%, #1a3a1a 100%);
    overflow: hidden;
    min-height: 90vh;
    display: flex;
    align-items: center;
}

.bms-hero-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.bms-hero-svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .15;
}

.bms-hero-content { position: relative; z-index: 2; }

.min-vh-85 { min-height: 85vh; }

.bms-hero-title {
    font-size: clamp(2.2rem, 5vw, 3.6rem);
    font-weight: 800;
    line-height: 1.15;
    color: var(--bms-text-primary);
    letter-spacing: -1px;
}

.bms-text-gold { color: var(--bms-gold); }

.bms-hero-lead {
    font-size: 1.15rem;
    color: var(--bms-text-muted);
    max-width: 560px;
    margin-top: 1.25rem;
}

.bms-hero-plant {
    filter: drop-shadow(0 0 40px rgba(45,106,45,.6));
    animation: bms-float 6s ease-in-out infinite;
}

@keyframes bms-float {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-16px); }
}

.bms-badge-green {
    background: rgba(45,106,45,.35);
    color: var(--bms-green-pale);
    border: 1px solid rgba(45,106,45,.5);
    font-weight: 600;
    padding: .45em .9em;
    border-radius: 50px;
}

/* --------------------------------------------------------------------------
   5. Buttons
   -------------------------------------------------------------------------- */
.bms-btn-primary {
    background: linear-gradient(135deg, var(--bms-green-primary), var(--bms-green-bright));
    border: none;
    color: #fff;
    font-weight: 600;
    border-radius: var(--bms-radius-sm);
    padding: .65rem 1.5rem;
    transition: var(--bms-transition);
    box-shadow: 0 4px 16px rgba(45,106,45,.3);
}

.bms-btn-primary:hover {
    background: linear-gradient(135deg, var(--bms-green-bright), var(--bms-green-light));
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(45,106,45,.45);
}

.bms-btn-outline {
    background: transparent;
    border: 1.5px solid var(--bms-green-primary);
    color: var(--bms-green-pale);
    font-weight: 600;
    border-radius: var(--bms-radius-sm);
    padding: .65rem 1.5rem;
    transition: var(--bms-transition);
}

.bms-btn-outline:hover {
    background: var(--bms-green-primary);
    color: #fff;
    transform: translateY(-2px);
}

.bms-btn-filter {
    background: rgba(255,255,255,.05);
    border: 1px solid var(--bms-green-border);
    color: var(--bms-text-muted);
    font-size: .82rem;
    font-weight: 500;
    transition: var(--bms-transition);
}

.bms-btn-filter:hover {
    background: rgba(45,106,45,.2);
    color: var(--bms-green-pale);
    border-color: var(--bms-green-primary);
}

/* --------------------------------------------------------------------------
   6. Stats Bar
   -------------------------------------------------------------------------- */
.bms-stats-bar {
    background: var(--bms-green-dark);
    border-top: 1px solid var(--bms-green-border);
    border-bottom: 1px solid var(--bms-green-border);
}

.bms-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .25rem;
}

.bms-stat-number {
    font-size: 2rem;
    font-weight: 800;
    color: var(--bms-gold);
    line-height: 1;
}

.bms-stat-label {
    font-size: .78rem;
    color: var(--bms-text-muted);
    text-transform: uppercase;
    letter-spacing: .8px;
    font-weight: 500;
}

/* --------------------------------------------------------------------------
   7. Section Headings
   -------------------------------------------------------------------------- */
.bms-section-title {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 700;
    color: var(--bms-text-primary);
    letter-spacing: -.4px;
}

.bms-section-subtitle {
    color: var(--bms-text-muted);
    font-size: 1.05rem;
    max-width: 640px;
    margin: 0 auto;
}

/* --------------------------------------------------------------------------
   8. Navigation Cards (Home section links)
   -------------------------------------------------------------------------- */
.bms-nav-card {
    display: flex;
    flex-direction: column;
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 2rem 1.5rem;
    color: var(--bms-text-primary);
    transition: var(--bms-transition);
    position: relative;
    overflow: hidden;
}

.bms-nav-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--bms-green-primary), var(--bms-gold));
    opacity: 0;
    transition: var(--bms-transition);
}

.bms-nav-card:hover {
    border-color: var(--bms-green-primary);
    color: var(--bms-text-primary);
    transform: translateY(-4px);
    box-shadow: var(--bms-shadow);
}

.bms-nav-card:hover::before { opacity: 1; }

.bms-nav-card-icon { margin-bottom: 1.25rem; }
.bms-nav-card-title { font-size: 1.2rem; font-weight: 700; color: var(--bms-text-primary); margin-bottom: .5rem; }
.bms-nav-card-text  { color: var(--bms-text-muted); font-size: .92rem; flex-grow: 1; }

.bms-nav-card-cta {
    margin-top: 1.25rem;
    color: var(--bms-gold);
    font-weight: 600;
    font-size: .9rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    transition: var(--bms-transition);
}

.bms-nav-card:hover .bms-nav-card-cta { gap: .65rem; }

/* --------------------------------------------------------------------------
   9. Strain Cards
   -------------------------------------------------------------------------- */
.bms-strain-card {
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: var(--bms-transition);
    overflow: hidden;
}

.bms-strain-card:hover {
    border-color: var(--bms-green-bright);
    transform: translateY(-3px);
    box-shadow: var(--bms-shadow);
}

.bms-strain-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: .4rem;
}

.bms-strain-card-name {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    margin-bottom: .5rem;
}

.bms-strain-card-desc {
    font-size: .88rem;
    color: var(--bms-text-muted);
    flex-grow: 1;
    margin-bottom: 1rem;
}

.bms-strain-card-meta {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    font-size: .78rem;
    color: var(--bms-text-subtle);
    margin-bottom: 1rem;
}

.bms-strain-card-link {
    font-size: .85rem;
    font-weight: 600;
    color: var(--bms-gold);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    transition: var(--bms-transition);
}

.bms-strain-card:hover .bms-strain-card-link { gap: .65rem; }

/* Type badges */
.bms-badge-indica    { background: rgba(99,88,166,.25);  color: #b8b0f0; border: 1px solid rgba(99,88,166,.4); }
.bms-badge-sativa    { background: rgba(212,168,67,.15); color: var(--bms-gold-light); border: 1px solid rgba(212,168,67,.35); }
.bms-badge-hybrid    { background: rgba(45,106,45,.25);  color: var(--bms-green-pale); border: 1px solid rgba(45,106,45,.45); }
.bms-badge-auto      { background: rgba(20,184,166,.15); color: #5eead4; border: 1px solid rgba(20,184,166,.35); }

.bms-thc-badge {
    background: rgba(239,68,68,.12);
    color: #fca5a5;
    border: 1px solid rgba(239,68,68,.3);
    padding: .2em .6em;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 700;
}

.bms-cbd-badge {
    background: rgba(59,130,246,.12);
    color: #93c5fd;
    border: 1px solid rgba(59,130,246,.3);
    padding: .2em .6em;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 700;
}

.bms-diff-star { color: var(--bms-gold-dark); font-size: .72rem; }
.bms-icon-muted { color: var(--bms-text-subtle); }

/* --------------------------------------------------------------------------
   10. Strain Type Bands (homepage)
   -------------------------------------------------------------------------- */
.bms-type-band {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    padding: 2rem 1rem;
    border-radius: var(--bms-radius);
    border: 1px solid var(--bms-green-border);
    text-decoration: none;
    transition: var(--bms-transition);
    text-align: center;
    color: var(--bms-text-primary);
}

.bms-type-band strong { font-size: 1.05rem; font-weight: 700; }
.bms-type-band span   { font-size: .8rem; color: var(--bms-text-muted); }

.bms-type-indica   { background: rgba(99,88,166,.1); }
.bms-type-sativa   { background: rgba(212,168,67,.08); }
.bms-type-hybrid   { background: rgba(45,106,45,.12); }
.bms-type-ruderalis{ background: rgba(20,184,166,.08); }

.bms-type-band:hover {
    transform: translateY(-4px);
    box-shadow: var(--bms-shadow);
    color: var(--bms-text-primary);
}

/* --------------------------------------------------------------------------
   11. Page Hero (inner pages)
   -------------------------------------------------------------------------- */
.bms-page-hero {
    background: linear-gradient(135deg, var(--bms-green-dark) 0%, var(--bms-green-mid) 100%);
    border-bottom: 1px solid var(--bms-green-border);
}

.bms-page-hero--strains  { background: linear-gradient(135deg, #0a1e0a, #142814); }
.bms-page-hero--history  { background: linear-gradient(135deg, #1a1408, #2a2010); }
.bms-page-hero--growing  { background: linear-gradient(135deg, #0a1a10, #102418); }
.bms-page-hero--world    { background: linear-gradient(135deg, #0a0a1e, #101428); }
.bms-page-hero--error    { background: linear-gradient(135deg, var(--bms-green-darkest), var(--bms-green-dark)); }

.bms-page-title {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 800;
    color: var(--bms-text-primary);
    letter-spacing: -.5px;
    margin-bottom: .75rem;
}

.bms-page-subtitle {
    color: var(--bms-text-muted);
    font-size: 1.05rem;
    max-width: 680px;
}

/* Breadcrumb */
.bms-breadcrumb { background: transparent; padding: 0; margin-bottom: 1.25rem; }
.bms-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: var(--bms-text-subtle); }
.bms-breadcrumb a { color: var(--bms-green-pale); text-decoration: none; }
.bms-breadcrumb .active { color: var(--bms-text-muted); }

/* --------------------------------------------------------------------------
   12. Filter Bar
   -------------------------------------------------------------------------- */
.bms-filter-bar {
    background: rgba(10,22,10,.95);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--bms-green-border);
    z-index: 100;
}

.bms-filter-label { color: var(--bms-text-muted); font-size: .85rem; font-weight: 500; }

.bms-select {
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    color: var(--bms-text-primary);
    border-radius: var(--bms-radius-sm);
}

.bms-select:focus {
    border-color: var(--bms-green-primary);
    box-shadow: 0 0 0 2px rgba(45,106,45,.25);
    background: var(--bms-green-card);
    color: var(--bms-text-primary);
}

/* --------------------------------------------------------------------------
   13. Pagination
   -------------------------------------------------------------------------- */
.bms-pagination .page-link {
    background: var(--bms-green-card);
    border-color: var(--bms-green-border);
    color: var(--bms-text-muted);
    transition: var(--bms-transition);
}

.bms-pagination .page-link:hover,
.bms-pagination .page-item.active .page-link {
    background: var(--bms-green-primary);
    border-color: var(--bms-green-primary);
    color: #fff;
}

.bms-pagination .page-item.disabled .page-link {
    background: var(--bms-green-dark);
    color: var(--bms-text-subtle);
}

/* --------------------------------------------------------------------------
   14. Strain Detail — Tags & Sidebar
   -------------------------------------------------------------------------- */
.bms-content-block { margin-bottom: 2.5rem; }

.bms-block-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    margin-bottom: 1rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--bms-green-border);
}

.bms-tag {
    display: inline-flex;
    align-items: center;
    padding: .35em .85em;
    border-radius: 50px;
    font-size: .82rem;
    font-weight: 500;
}

.bms-tag--effect { background: rgba(45,106,45,.2);  color: var(--bms-green-pale); border: 1px solid rgba(45,106,45,.4); }
.bms-tag--flavor { background: rgba(212,168,67,.12); color: var(--bms-gold-light); border: 1px solid rgba(212,168,67,.3); }
.bms-tag--aroma  { background: rgba(139,92,246,.12); color: #c4b5fd;              border: 1px solid rgba(139,92,246,.3); }

.bms-sidebar-card {
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 1.5rem;
}

.bms-sidebar-card--cta {
    text-align: center;
    background: linear-gradient(135deg, var(--bms-green-card), #1e3a1e);
}

.bms-sidebar-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    margin-bottom: 1.25rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--bms-green-border);
}

.bms-sidebar-cta-title { font-size: 1.1rem; font-weight: 700; color: var(--bms-text-primary); }

.bms-stat-list { margin: 0; }

.bms-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .6rem 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
}

.bms-stat-row:last-child { border-bottom: none; }
.bms-stat-row dt { color: var(--bms-text-muted); font-size: .82rem; font-weight: 400; }
.bms-stat-row dd { color: var(--bms-text-primary); font-size: .9rem; font-weight: 600; margin: 0; text-align: right; }

/* Progress bars (cannabinoid profile) */
.bms-progress { background: rgba(255,255,255,.06); height: 8px; border-radius: 4px; }
.bms-thc-bar  { background: linear-gradient(90deg, #dc2626, #f87171); border-radius: 4px; }
.bms-cbd-bar  { background: linear-gradient(90deg, #1d4ed8, #60a5fa); border-radius: 4px; }
.bms-bar-label { color: var(--bms-text-muted); font-weight: 500; }
.bms-bar-value { color: var(--bms-text-primary); font-weight: 700; }

/* --------------------------------------------------------------------------
   15. History Timeline
   -------------------------------------------------------------------------- */
.bms-timeline { position: relative; padding-left: 3rem; }

.bms-timeline::before {
    content: '';
    position: absolute;
    left: 1rem;
    top: 0; bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, var(--bms-green-primary), transparent);
}

.bms-timeline-item {
    position: relative;
    margin-bottom: 3.5rem;
    scroll-margin-top: 90px;
}

.bms-timeline-marker {
    position: absolute;
    left: -2.25rem;
    top: .25rem;
    width: 2rem;
    height: 2rem;
    background: var(--bms-green-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--bms-green-darkest);
    box-shadow: 0 0 12px rgba(45,106,45,.5);
}

.bms-timeline-number {
    font-size: .7rem;
    font-weight: 800;
    color: #fff;
}

.bms-timeline-content {
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 1.75rem;
}

.bms-timeline-header { margin-bottom: 1.25rem; }

.bms-era-badge {
    display: inline-block;
    background: rgba(212,168,67,.12);
    color: var(--bms-gold);
    border: 1px solid rgba(212,168,67,.3);
    padding: .25em .75em;
    border-radius: 50px;
    font-size: .78rem;
    font-weight: 600;
    margin-bottom: .6rem;
}

.bms-timeline-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    margin: 0;
}

.bms-toc {
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 1.25rem;
    top: 90px;
}

.bms-toc-title {
    font-size: .9rem;
    font-weight: 700;
    color: var(--bms-text-muted);
    text-transform: uppercase;
    letter-spacing: .8px;
    margin-bottom: .75rem;
}

.bms-toc-list {
    margin: 0;
    padding-left: 1.25rem;
    font-size: .84rem;
    line-height: 1.5;
}

.bms-toc-list li { margin-bottom: .4rem; }
.bms-toc-list a { color: var(--bms-text-muted); text-decoration: none; transition: var(--bms-transition); }
.bms-toc-list a:hover { color: var(--bms-gold); }

/* --------------------------------------------------------------------------
   16. Growing Guide Cards
   -------------------------------------------------------------------------- */
.bms-grow-cat-card {
    display: flex;
    gap: 1rem;
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 1.5rem;
    height: 100%;
}

.bms-grow-cat-icon {
    color: var(--bms-gold);
    flex-shrink: 0;
    margin-top: .2rem;
}

.bms-grow-cat-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    margin-bottom: .75rem;
}

.bms-grow-cat-links {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: .85rem;
}

.bms-grow-cat-links li { margin-bottom: .35rem; }
.bms-grow-cat-links a { color: var(--bms-text-muted); text-decoration: none; transition: var(--bms-transition); }
.bms-grow-cat-links a:hover { color: var(--bms-green-pale); }

/* Category card accents */
.bms-cat-blue   { border-left: 3px solid #3b82f6; }
.bms-cat-green  { border-left: 3px solid var(--bms-green-light); }
.bms-cat-orange { border-left: 3px solid #f59e0b; }
.bms-cat-purple { border-left: 3px solid #8b5cf6; }
.bms-cat-gold   { border-left: 3px solid var(--bms-gold); }
.bms-cat-red    { border-left: 3px solid #ef4444; }

.bms-grow-card {
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 1.5rem;
    position: relative;
    display: flex;
    flex-direction: column;
    transition: var(--bms-transition);
    overflow: hidden;
}

.bms-grow-card:hover {
    border-color: var(--bms-green-bright);
    transform: translateY(-3px);
    box-shadow: var(--bms-shadow);
}

.bms-grow-card-number {
    font-size: 3.5rem;
    font-weight: 900;
    color: rgba(45,106,45,.12);
    line-height: 1;
    position: absolute;
    top: .5rem;
    right: 1rem;
    pointer-events: none;
}

.bms-grow-card-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    margin-bottom: .5rem;
}

.bms-grow-card-intro {
    font-size: .86rem;
    color: var(--bms-text-muted);
    flex-grow: 1;
}

.bms-grow-card-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--bms-gold);
    text-decoration: none;
    margin-top: 1rem;
}

.bms-badge-category { background: rgba(45,106,45,.2); color: var(--bms-green-pale); }
.bms-badge-easy     { background: rgba(34,197,94,.15);  color: #86efac; }
.bms-badge-moderate { background: rgba(245,158,11,.12); color: #fcd34d; }
.bms-badge-hard     { background: rgba(239,68,68,.12);  color: #fca5a5; }

.bms-grow-cta {
    background: linear-gradient(135deg, var(--bms-green-card), var(--bms-green-mid));
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius-lg);
    padding: 2.5rem;
}

.bms-grow-cta-title { font-size: 1.4rem; font-weight: 700; color: var(--bms-text-primary); }
.bms-grow-cta-text  { color: var(--bms-text-muted); }

/* Guide nav (prev/next) */
.bms-guide-nav-link { display: flex; flex-direction: column; text-decoration: none; }
.bms-guide-nav-dir  { font-size: .78rem; color: var(--bms-text-muted); font-weight: 500; text-transform: uppercase; letter-spacing: .5px; }
.bms-guide-nav-title{ font-size: .9rem; font-weight: 700; color: var(--bms-gold); margin-top: .2rem; }

/* --------------------------------------------------------------------------
   17. World Laws Table
   -------------------------------------------------------------------------- */
.bms-legend {
    background: var(--bms-green-card);
    border: 1px solid var(--bms-green-border);
    border-radius: var(--bms-radius);
    padding: 1.75rem;
}

.bms-legend-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    margin-bottom: 1rem;
}

.bms-legend-item {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .75rem;
    border-radius: var(--bms-radius-sm);
    font-size: .84rem;
    font-weight: 600;
}

.bms-legend-count { font-weight: 400; color: var(--bms-text-muted); margin-left: .3rem; }
.bms-legend-desc  { color: var(--bms-text-muted); font-weight: 400; margin-top: .15rem; }

/* Status pill colours — solid enough to read at a glance */
.bms-status-legal      { background: rgba(34,197,94,.22);  color: #4ade80; border: 1px solid rgba(34,197,94,.35); }
.bms-status-medical    { background: rgba(59,130,246,.22); color: #7dd3fc; border: 1px solid rgba(59,130,246,.35); }
.bms-status-decrим     { background: rgba(245,158,11,.22); color: #fbbf24; border: 1px solid rgba(245,158,11,.35); }
.bms-status-tolerated  { background: rgba(139,92,246,.22); color: #d8b4fe; border: 1px solid rgba(139,92,246,.35); }
.bms-status-illegal    { background: rgba(239,68,68,.22);  color: #f87171; border: 1px solid rgba(239,68,68,.35); }
.bms-status-death      { background: rgba(127,29,29,.50);  color: #fca5a5; border: 1px solid rgba(220,38,38,.45); }

.bms-status-pill {
    display: inline-flex;
    align-items: center;
    padding: .3em .75em;
    border-radius: 50px;
    font-size: .78rem;
    font-weight: 600;
    white-space: nowrap;
}

.bms-alert-warning {
    background: rgba(245,158,11,.1);
    border: 1px solid rgba(245,158,11,.35);
    color: #fcd34d;
    border-radius: var(--bms-radius-sm);
    padding: 1rem 1.25rem;
}

.bms-continent-tabs {
    border-bottom-color: var(--bms-green-border);
    gap: .25rem;
}

.bms-continent-tabs .nav-link {
    color: var(--bms-text-muted);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--bms-radius-sm) var(--bms-radius-sm) 0 0;
    font-size: .85rem;
    padding: .5rem 1rem;
    transition: var(--bms-transition);
    white-space: nowrap;
}

.bms-continent-tabs .nav-link:hover { color: var(--bms-gold); }

.bms-continent-tabs .nav-link.active {
    background: var(--bms-green-card);
    border-color: var(--bms-green-border) var(--bms-green-border) var(--bms-green-card);
    color: var(--bms-gold);
}

.bms-continent-heading {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--bms-text-primary);
    display: flex;
    align-items: center;
    gap: .5rem;
}

.bms-continent-count { font-size: .85rem; color: var(--bms-text-muted); font-weight: 400; }

.bms-world-table {
    color: var(--bms-text-primary);
    font-size: .86rem;
    --bs-table-bg: transparent;
    --bs-table-striped-bg: transparent;
    --bs-table-hover-bg: transparent;
    --bs-table-color: var(--bms-text-primary);
    --bs-table-border-color: rgba(45,106,45,.20);
}

/* Force green header — Bootstrap sets its own bg on th */
table.bms-world-table > thead > tr > th {
    background-color: var(--bms-green-primary) !important;
    color: #d4f0d4 !important;
    border-color: var(--bms-green-bright) !important;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .7px;
    padding: .8rem 1rem;
    white-space: nowrap;
}

/* Default body row — dark green base so nothing shows white */
table.bms-world-table > tbody > tr > td {
    background-color: var(--bms-green-dark) !important;
    border-color: rgba(45,106,45,.20) !important;
    color: var(--bms-text-primary);
    padding: .65rem 1rem;
    vertical-align: middle;
}

/* Status row tints override the default dark base */
table.bms-world-table > tbody > tr.bms-status-legal-row     > td { background-color: #132b13 !important; }
table.bms-world-table > tbody > tr.bms-status-medical-row   > td { background-color: #111a2e !important; }
table.bms-world-table > tbody > tr.bms-status-decrим-row    > td { background-color: #1e1a0e !important; }
table.bms-world-table > tbody > tr.bms-status-tolerated-row > td { background-color: #1a1228 !important; }
table.bms-world-table > tbody > tr.bms-status-illegal-row   > td { background-color: #1e1010 !important; }
table.bms-world-table > tbody > tr.bms-status-death-row     > td { background-color: #200808 !important; }

/* Hover brightens the row */
table.bms-world-table > tbody > tr:hover > td { background-color: #1e3e1e !important; }

/* Left accent border per status */
table.bms-world-table > tbody > tr.bms-status-legal-row     > td:first-child { border-left: 3px solid #4ade80 !important; }
table.bms-world-table > tbody > tr.bms-status-medical-row   > td:first-child { border-left: 3px solid #7dd3fc !important; }
table.bms-world-table > tbody > tr.bms-status-decrим-row    > td:first-child { border-left: 3px solid #fbbf24 !important; }
table.bms-world-table > tbody > tr.bms-status-tolerated-row > td:first-child { border-left: 3px solid #d8b4fe !important; }
table.bms-world-table > tbody > tr.bms-status-illegal-row   > td:first-child { border-left: 3px solid #f87171 !important; }
table.bms-world-table > tbody > tr.bms-status-death-row     > td:first-child { border-left: 3px solid #dc2626 !important; }

.bms-country-name strong { color: var(--bms-text-primary); }
.bms-possession-limit   { color: var(--bms-text-muted); font-size: .82rem; }
.bms-country-notes      { color: #6a9e7a; max-width: 260px; }

.bms-check { color: #4ade80; font-size: 1rem; }
.bms-cross  { color: #f87171; font-size: 1rem; }

/* --------------------------------------------------------------------------
   18. Prose (long-form content)
   -------------------------------------------------------------------------- */
.bms-prose {
    color: var(--bms-text-primary);
    line-height: 1.8;
}

.bms-prose p  { margin-bottom: 1.15rem; }
.bms-prose h3 { color: var(--bms-gold); font-size: 1.15rem; margin-top: 1.75rem; margin-bottom: .75rem; }
.bms-prose ul, .bms-prose ol { margin-bottom: 1rem; padding-left: 1.5rem; }
.bms-prose li { margin-bottom: .4rem; color: var(--bms-text-muted); }
.bms-prose strong { color: var(--bms-text-primary); }
.bms-prose a  { color: var(--bms-gold); }

/* --------------------------------------------------------------------------
   19. Footer
   -------------------------------------------------------------------------- */
.bms-footer {
    background: var(--bms-green-dark);
    border-top: 1px solid var(--bms-green-border);
    padding: 3.5rem 0 2rem;
}

.bms-footer-brand  { font-size: 1.1rem; font-weight: 700; color: var(--bms-text-primary); }
.bms-footer-tagline{ color: var(--bms-text-muted); font-size: .9rem; margin-top: .75rem; }
.bms-footer-disclaimer { color: var(--bms-text-subtle); }

.bms-footer-heading {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--bms-text-muted);
    margin-bottom: 1rem;
}

.bms-footer-links { margin: 0; }

.bms-footer-links li { margin-bottom: .4rem; }

.bms-footer-links a {
    color: var(--bms-text-subtle);
    font-size: .88rem;
    text-decoration: none;
    transition: var(--bms-transition);
}

.bms-footer-links a:hover { color: var(--bms-gold); }

.bms-footer-divider { border-color: var(--bms-green-border); margin: 2rem 0 1rem; }

.bms-footer-copy { color: var(--bms-text-subtle); font-size: .82rem; }

.bms-footer-util-link {
    color: var(--bms-text-subtle);
    font-size: .82rem;
    text-decoration: none;
    transition: var(--bms-transition);
}

.bms-footer-util-link:hover { color: var(--bms-gold); }

/* --------------------------------------------------------------------------
   20. Featured section
   -------------------------------------------------------------------------- */
.bms-featured {
    background: linear-gradient(180deg, transparent, rgba(17,30,17,.5), transparent);
}

/* --------------------------------------------------------------------------
   21. Misc utilities
   -------------------------------------------------------------------------- */
.bms-muted { color: var(--bms-text-muted); }

.bms-404-title {
    font-size: 8rem;
    font-weight: 900;
    color: var(--bms-green-border);
    line-height: 1;
}

/* --------------------------------------------------------------------------
   22. Responsive tweaks
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
    .bms-hero { min-height: auto; padding: 4rem 0 3rem; }
    .bms-timeline { padding-left: 2rem; }
    .bms-timeline::before { left: .6rem; }
    .bms-timeline-marker { left: -1.75rem; }
    .bms-grow-cta { padding: 1.5rem; }
    .bms-continent-tabs { overflow-x: auto; flex-wrap: nowrap !important; }
}

@media (max-width: 575.98px) {
    .bms-stat-number { font-size: 1.6rem; }
    .bms-grow-cta { text-align: center; }
    .bms-grow-cta .text-lg-end { text-align: center !important; }
}

/* --------------------------------------------------------------------------
   23. Scrollbar (WebKit)
   -------------------------------------------------------------------------- */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bms-green-darkest); }
::-webkit-scrollbar-thumb { background: var(--bms-green-border); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--bms-green-primary); }
