/* ============================================================
   LasVegasCannabis.org — Design System
   ============================================================
   Typography: Lora (headings), Source Sans 3 (body), DM Mono (data)
   Palette: Las Vegas warm amber/gold, warm charcoal, sage & neon accents
   Framework: Bootstrap 5.3 + custom overrides
   ============================================================ */

:root {
    --lv-amber-950: #451A03;
    --lv-amber-900: #78350F;
    --lv-amber-800: #92400E;
    --lv-amber-700: #B45309;
    --lv-amber-600: #D97706;
    --lv-amber-500: #F59E0B;
    --lv-amber-400: #FBBF24;
    --lv-amber-300: #FCD34D;
    --lv-amber-200: #FDE68A;
    --lv-amber-100: #FEF3C7;
    --lv-amber-50:  #FFFBEB;

    --lv-warm-900: #1C1917;
    --lv-warm-800: #292524;
    --lv-warm-700: #44403C;
    --lv-warm-600: #57534E;
    --lv-warm-500: #78716C;
    --lv-warm-400: #A8A29E;
    --lv-warm-300: #D6D3D1;
    --lv-warm-200: #E7E5E4;
    --lv-warm-100: #F5F5F4;
    --lv-warm-50:  #FAFAF9;

    --lv-sage: #6B8F71;
    --lv-sage-light: #E8F0E9;
    --lv-neon: #E11D48;
    --lv-neon-light: #FFF1F2;
    --lv-neon-border: #FB7185;
    --lv-gold: #CA8A04;
    --lv-gold-light: #FEFCE8;
    --lv-gold-border: #EAB308;
    --lv-red: #DC2626;
    --lv-red-light: #FEF2F2;
    --lv-red-border: #F87171;

    --lv-primary: var(--lv-amber-600);
    --lv-primary-hover: var(--lv-amber-700);
    --lv-primary-active: var(--lv-amber-800);
    --lv-text: var(--lv-warm-800);
    --lv-text-heading: var(--lv-amber-900);
    --lv-text-muted: var(--lv-warm-500);
    --lv-text-caption: var(--lv-warm-600);
    --lv-bg: #FFFFFF;
    --lv-bg-alt: var(--lv-warm-50);
    --lv-bg-section: var(--lv-amber-50);
    --lv-border: var(--lv-warm-200);
    --lv-border-light: var(--lv-warm-100);
    --lv-link: var(--lv-amber-700);
    --lv-link-hover: var(--lv-amber-900);

    --lv-font-body: 'Source Sans 3', 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --lv-font-heading: 'Lora', Georgia, 'Times New Roman', serif;
    --lv-font-mono: 'DM Mono', 'SFMono-Regular', Consolas, monospace;

    --lv-content-width: 740px;
    --lv-content-wide: 960px;
    --lv-section-gap: 4.5rem;
    --lv-body-size: 1.125rem;
    --lv-body-leading: 1.75;
    --lv-paragraph-spacing: 1.375rem;

    --lv-shadow-xs: 0 1px 2px rgba(28, 25, 23, 0.05);
    --lv-shadow-sm: 0 1px 4px rgba(28, 25, 23, 0.07);
    --lv-shadow: 0 2px 8px rgba(28, 25, 23, 0.08), 0 1px 3px rgba(28, 25, 23, 0.04);
    --lv-shadow-lg: 0 4px 16px rgba(28, 25, 23, 0.1), 0 2px 6px rgba(28, 25, 23, 0.05);

    --lv-radius: 6px;
    --lv-radius-lg: 10px;
    --lv-radius-xl: 14px;
}

*, *::before, *::after { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body {
    font-family: var(--lv-font-body);
    font-size: var(--lv-body-size);
    font-weight: 400;
    line-height: var(--lv-body-leading);
    color: var(--lv-text);
    background-color: var(--lv-bg);
    text-rendering: optimizeLegibility;
    font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--lv-font-heading);
    color: var(--lv-text-heading);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

h1, .h1 { font-size: 2.125rem; font-weight: 700; line-height: 1.2; margin-bottom: 1.25rem; letter-spacing: -0.02em; }
h2, .h2 { font-size: 1.625rem; margin-top: 2.75rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--lv-border-light); }
h3, .h3 { font-size: 1.3125rem; margin-top: 2.25rem; margin-bottom: 0.75rem; }
h4, .h4 { font-size: 1.125rem; font-weight: 600; margin-top: 1.75rem; margin-bottom: 0.5rem; }
h5, .h5 { font-family: var(--lv-font-body); font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--lv-warm-600); }

section h2:first-child, section .container > h2:first-child { margin-top: 0; }

@media (min-width: 768px) {
    h1, .h1 { font-size: 2.625rem; }
    h2, .h2 { font-size: 1.875rem; }
    h3, .h3 { font-size: 1.4375rem; }
}

p { margin-bottom: var(--lv-paragraph-spacing); max-width: 70ch; }
.text-center p, p.text-center { max-width: none; }
.lead, .content-body > p:first-of-type { font-size: 1.25rem; font-weight: 400; line-height: 1.8; color: var(--lv-warm-600); max-width: 65ch; }
small, .small, .text-sm { font-size: 0.875rem; line-height: 1.6; }
.text-xs { font-size: 0.8125rem; line-height: 1.5; }

a { color: var(--lv-link); text-decoration: underline; text-decoration-color: var(--lv-amber-300); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color 0.15s ease, text-decoration-color 0.15s ease; }
a:hover, a:focus { color: var(--lv-link-hover); text-decoration-color: var(--lv-link-hover); text-decoration-thickness: 2px; }

.content-body ul, .content-body ol { margin-bottom: var(--lv-paragraph-spacing); padding-left: 1.375rem; }
.content-body li { margin-bottom: 0.625rem; line-height: var(--lv-body-leading); max-width: 70ch; }
.content-body li strong { color: var(--lv-amber-800); font-weight: 600; }
.content-body li::marker { color: var(--lv-amber-400); }

hr { border: 0; border-top: 1px solid var(--lv-border); margin: 3rem 0; opacity: 0.5; }

/* ─── Skip Link ──────────────────────────────────────────── */
.skip-link { position: absolute; top: -100px; left: 0; background: var(--lv-amber-800); color: #fff; padding: 0.75rem 1.5rem; z-index: 10000; font-weight: 600; text-decoration: none; border-radius: 0 0 var(--lv-radius) 0; font-size: 0.9375rem; }
.skip-link:focus { top: 0; color: #fff; }

/* ─── Top Bar ────────────────────────────────────────────── */
.top-bar { background-color: var(--lv-amber-950); color: var(--lv-amber-300); font-family: var(--lv-font-body); font-size: 0.8125rem; font-weight: 500; padding: 0.375rem 0; letter-spacing: 0.01em; }
.top-bar-text { opacity: 0.85; }
.top-bar-text i { opacity: 0.65; font-size: 0.75rem; }
.top-bar-link { color: var(--lv-amber-200); text-decoration: none; font-weight: 600; transition: color 0.15s ease; }
.top-bar-link:hover { color: #fff; text-decoration: underline; }

/* ─── Site Header / Navbar ───────────────────────────────── */
.site-header { position: sticky; top: 0; z-index: 1030; background: var(--lv-bg); border-bottom: 1px solid var(--lv-border-light); box-shadow: var(--lv-shadow-xs); }
.navbar { padding: 0.6875rem 0; }
.navbar-brand { display: flex; align-items: center; gap: 0.5rem; text-decoration: none; color: var(--lv-amber-800) !important; }
.navbar-brand:hover { color: var(--lv-amber-900) !important; text-decoration: none; }
.navbar-brand .brand-icon { width: 36px; height: 36px; object-fit: contain; transition: opacity 0.2s ease; }
.navbar-brand:hover .brand-icon { opacity: 0.85; }
.brand-text { font-family: var(--lv-font-heading); font-weight: 700; font-size: 1.1875rem; line-height: 1; letter-spacing: -0.01em; }
.brand-name { color: var(--lv-amber-800); }
.brand-tld { color: var(--lv-amber-400); font-weight: 600; }

.navbar .nav-link { color: var(--lv-warm-700); font-family: var(--lv-font-body); font-weight: 500; padding: 0.5rem 0.625rem !important; font-size: 0.9375rem; text-decoration: none; transition: color 0.15s ease, background-color 0.15s ease; border-radius: var(--lv-radius); letter-spacing: 0.005em; }
.navbar .nav-link:hover, .navbar .nav-link:focus { color: var(--lv-amber-700); background-color: var(--lv-amber-50); }
.navbar .nav-link.active { color: var(--lv-amber-700); font-weight: 600; }
.navbar .dropdown-menu { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg); box-shadow: var(--lv-shadow-lg); padding: 0.375rem; min-width: 15rem; margin-top: 0.25rem; }
.navbar .dropdown-item { border-radius: calc(var(--lv-radius) - 1px); padding: 0.5rem 0.75rem; font-size: 0.9375rem; font-weight: 450; color: var(--lv-warm-700); transition: all 0.1s ease; }
.navbar .dropdown-item:hover, .navbar .dropdown-item:focus { background-color: var(--lv-amber-50); color: var(--lv-amber-800); }
.navbar .dropdown-item i { color: var(--lv-amber-400); width: 1.25rem; text-align: center; font-size: 0.875rem; }
.navbar .dropdown-item:hover i { color: var(--lv-amber-600); }
.navbar-toggler { border-color: var(--lv-border); padding: 0.375rem 0.625rem; }
.navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.2); }

/* ─── Breadcrumbs ────────────────────────────────────────── */
.breadcrumb-wrapper { background-color: var(--lv-warm-50); border-bottom: 1px solid var(--lv-border-light); padding: 0.5625rem 0; }
.breadcrumb { margin-bottom: 0; font-size: 0.8125rem; font-weight: 500; background: none; padding: 0; }
.breadcrumb-item + .breadcrumb-item::before { content: "\F285"; font-family: "bootstrap-icons"; font-size: 0.6875rem; color: var(--lv-warm-300); padding: 0 0.5rem; }
.breadcrumb-item a { color: var(--lv-warm-500); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--lv-amber-700); text-decoration: underline; }
.breadcrumb-item.active { color: var(--lv-warm-400); }

/* ─── Main Content ───────────────────────────────────────── */
main { min-height: 60vh; }
.content-page { padding: var(--lv-section-gap) 0; }
.content-body { max-width: var(--lv-content-width); }

/* ─── Page Hero ──────────────────────────────────────────── */
.page-hero { background: var(--lv-warm-50); padding: 2.75rem 0 2.5rem; border-bottom: 1px solid var(--lv-border-light); }
.page-hero h1 { margin-bottom: 0.625rem; }
.page-hero .lead { font-size: 1.1875rem; color: var(--lv-warm-500); max-width: 680px; margin-bottom: 0; font-weight: 400; }

/* ─── Home Hero ──────────────────────────────────────────── */
.home-hero {
    background: linear-gradient(165deg, var(--lv-amber-950) 0%, var(--lv-amber-800) 40%, var(--lv-amber-700) 100%);
    color: #fff;
    padding: 4.5rem 0 3.5rem;
    position: relative;
    overflow: hidden;
}

.home-hero::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(ellipse at 30% 0%, rgba(251, 191, 36, 0.12) 0%, transparent 60%),
                radial-gradient(ellipse at 80% 100%, rgba(251, 191, 36, 0.08) 0%, transparent 50%);
    pointer-events: none;
}

.home-hero > .container { position: relative; z-index: 1; }
.home-hero h1 { font-family: var(--lv-font-heading); color: #fff; font-size: 2.375rem; font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; margin-bottom: 1.25rem; max-width: 600px; }
.home-hero .lead { color: var(--lv-amber-200); font-size: 1.1875rem; font-weight: 400; line-height: 1.75; max-width: 540px; margin-bottom: 2rem; }
.home-hero .btn-primary { background: #fff; color: var(--lv-amber-800); border: none; font-weight: 600; padding: 0.75rem 2rem; font-size: 1rem; box-shadow: var(--lv-shadow); }
.home-hero .btn-primary:hover { background: var(--lv-amber-100); color: var(--lv-amber-900); }
.home-hero .btn-outline-light { border-width: 1.5px; font-weight: 500; padding: 0.75rem 2rem; font-size: 1rem; }

@media (min-width: 768px) {
    .home-hero h1 { font-size: 3rem; }
    .home-hero { padding: 5.5rem 0 4.5rem; }
}

/* ─── Pathway Cards (Home) ───────────────────────────────── */
.pathway-section { padding: var(--lv-section-gap) 0; }
.pathway-section-title { font-family: var(--lv-font-body); font-weight: 600; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--lv-warm-500); margin-bottom: 1rem; }
.pathway-card { display: block; background: var(--lv-bg); border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg); padding: 1.5rem 1.25rem; text-align: center; text-decoration: none; color: var(--lv-text); transition: all 0.2s ease; height: 100%; }
.pathway-card:hover { border-color: var(--lv-amber-300); box-shadow: var(--lv-shadow); transform: translateY(-1px); color: var(--lv-text); text-decoration: none; }
.pathway-card .pathway-icon { font-size: 1.75rem; color: var(--lv-amber-500); margin-bottom: 0.625rem; display: block; }
.pathway-card h3 { font-family: var(--lv-font-body); font-size: 0.9375rem; font-weight: 600; margin: 0 0 0.375rem; color: var(--lv-amber-800); letter-spacing: 0; }
.pathway-card p { font-size: 0.8125rem; color: var(--lv-warm-500); margin-bottom: 0; line-height: 1.5; }

/* ─── Cards ──────────────────────────────────────────────── */
.card { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg); box-shadow: var(--lv-shadow-xs); transition: box-shadow 0.15s ease; }
.card:hover { box-shadow: var(--lv-shadow-sm); }
.card-header { background-color: var(--lv-warm-50); border-bottom: 1px solid var(--lv-border-light); font-weight: 600; font-size: 0.9375rem; }

.section-card { display: flex; align-items: flex-start; gap: 1rem; padding: 1.125rem; background: var(--lv-bg); border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg); text-decoration: none; color: var(--lv-text); transition: all 0.15s ease; }
.section-card:hover { border-color: var(--lv-amber-300); box-shadow: var(--lv-shadow-sm); color: var(--lv-text); text-decoration: none; }
.section-card .section-card-icon { font-size: 1.25rem; color: var(--lv-amber-500); flex-shrink: 0; width: 2.25rem; height: 2.25rem; display: flex; align-items: center; justify-content: center; background: var(--lv-amber-50); border-radius: var(--lv-radius); }
.section-card h3 { font-family: var(--lv-font-body); font-size: 1rem; font-weight: 600; color: var(--lv-amber-800); margin: 0 0 0.25rem; border: none; padding: 0; }
.section-card p { font-size: 0.875rem; color: var(--lv-warm-500); margin: 0; line-height: 1.55; }

/* ─── Alerts / Disclaimers ───────────────────────────────── */
.disclaimer-box { background-color: var(--lv-gold-light); border: 1px solid var(--lv-gold-border); color: var(--lv-warm-800); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.25rem; font-size: 0.9375rem; line-height: 1.65; }
.disclaimer-box strong { color: var(--lv-warm-900); }
.alert-danger { background-color: var(--lv-red-light); border: 1px solid var(--lv-red-border); color: var(--lv-warm-800); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.25rem; font-size: 0.9375rem; line-height: 1.65; }
.alert-danger strong { color: var(--lv-red); }
.alert-info { background-color: var(--lv-amber-50); border-color: var(--lv-amber-300); color: var(--lv-warm-800); }

/* ─── Research Citation ──────────────────────────────────── */
.research-citation { background: var(--lv-warm-50); border-left: 3px solid var(--lv-amber-400); padding: 1.125rem 1.375rem; margin: 1.75rem 0; border-radius: 0 var(--lv-radius) var(--lv-radius) 0; font-size: 0.9375rem; }
.research-citation p { margin-bottom: 0.5rem; font-style: italic; color: var(--lv-warm-700); max-width: none; }
.research-citation cite { font-family: var(--lv-font-mono); font-size: 0.8125rem; color: var(--lv-warm-500); font-style: normal; }
.research-citation cite a { color: var(--lv-amber-600); text-decoration-color: var(--lv-amber-300); }

/* ─── Tables ─────────────────────────────────────────────── */
.table { font-size: 0.9375rem; }
.table thead th { background-color: var(--lv-amber-50); color: var(--lv-amber-800); font-family: var(--lv-font-body); font-weight: 600; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.04em; border-bottom: 2px solid var(--lv-amber-200); padding: 0.75rem 1rem; }
.table td { vertical-align: middle; color: var(--lv-warm-700); padding: 0.75rem 1rem; line-height: 1.5; }
.table-responsive { border-radius: var(--lv-radius-lg); border: 1px solid var(--lv-border); }

/* ─── Key Takeaway Box ───────────────────────────────────── */
.key-takeaway { background: var(--lv-amber-50); border: 1px solid var(--lv-amber-200); border-radius: var(--lv-radius-lg); padding: 1.375rem 1.5rem; margin: 2rem 0; }
.key-takeaway h4 { font-family: var(--lv-font-body); color: var(--lv-amber-800); font-weight: 700; font-size: 0.9375rem; margin-top: 0; margin-bottom: 0.625rem; text-transform: uppercase; letter-spacing: 0.03em; }
.key-takeaway h4 i { color: var(--lv-amber-500); }
.key-takeaway p:last-child { margin-bottom: 0; }

/* ─── Sidebar / Related Pages ────────────────────────────── */
.related-pages { background: var(--lv-warm-50); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.25rem; border: 1px solid var(--lv-border-light); }
.related-pages h3 { font-family: var(--lv-font-body); color: var(--lv-amber-800); margin-top: 0; margin-bottom: 0.75rem; font-size: 0.875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; border: none; padding: 0; }
.related-pages li { margin-bottom: 0.25rem; }
.related-pages li a { color: var(--lv-warm-600); text-decoration: none; font-size: 0.9375rem; display: block; padding: 0.3125rem 0.5rem; border-radius: calc(var(--lv-radius) - 1px); transition: all 0.1s ease; }
.related-pages li a:hover { color: var(--lv-amber-700); background: var(--lv-amber-50); text-decoration: none; }
.related-pages li.active a { color: var(--lv-amber-700); font-weight: 600; background: var(--lv-amber-100); }

/* ─── Accordion ──────────────────────────────────────────── */
.accordion-button { font-family: var(--lv-font-body); font-weight: 600; font-size: 1rem; color: var(--lv-warm-800); }
.accordion-button:not(.collapsed) { background-color: var(--lv-amber-50); color: var(--lv-amber-800); box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.2); }
.accordion-body { font-size: 0.9375rem; }

/* ─── Buttons ────────────────────────────────────────────── */
.btn { font-family: var(--lv-font-body); font-weight: 600; letter-spacing: 0.01em; border-radius: var(--lv-radius); transition: all 0.15s ease; }
.btn-primary { background-color: var(--lv-primary); border-color: var(--lv-primary); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--lv-primary-hover); border-color: var(--lv-primary-hover); color: #fff; }
.btn-primary:active { background-color: var(--lv-primary-active); border-color: var(--lv-primary-active); }
.btn-primary:focus-visible { box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.35); }
.btn-outline-primary { color: var(--lv-primary); border-color: var(--lv-primary); }
.btn-outline-primary:hover { background-color: var(--lv-primary); border-color: var(--lv-primary); color: #fff; }
.btn-lg { padding: 0.75rem 1.75rem; font-size: 1rem; border-radius: var(--lv-radius-lg); }

/* ─── Age Gate ───────────────────────────────────────────── */
.age-gate { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(28, 25, 23, 0.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 2rem; }
.age-gate-content { background: var(--lv-bg); border-radius: var(--lv-radius-xl); padding: 2.75rem 2.25rem; max-width: 460px; width: 100%; text-align: center; box-shadow: var(--lv-shadow-lg); }
.age-gate-logo { margin-bottom: 1.25rem; }
.age-gate-logo img { width: 64px; height: 64px; margin-bottom: 0.5rem; }
.age-gate-logo .site-name { font-family: var(--lv-font-heading); font-weight: 700; font-size: 1.375rem; color: var(--lv-amber-800); display: block; }
.age-gate-content h1 { font-size: 1.625rem; margin-bottom: 0.75rem; }
.age-gate-content p { color: var(--lv-warm-500); font-size: 0.9375rem; line-height: 1.6; }
.age-gate-actions { display: flex; flex-direction: column; gap: 0.625rem; margin: 1.5rem 0; }
@media (min-width: 480px) { .age-gate-actions { flex-direction: row; justify-content: center; } }
.age-gate-legal { font-size: 0.75rem; color: var(--lv-warm-400); margin-bottom: 0; line-height: 1.5; }

/* ─── Cookie Consent ─────────────────────────────────────── */
.cookie-consent { position: fixed; bottom: 0; left: 0; right: 0; background: var(--lv-amber-950); color: var(--lv-amber-200); padding: 0.875rem 0; z-index: 1040; box-shadow: 0 -2px 12px rgba(0,0,0,0.12); }
.cookie-consent p { font-size: 0.8125rem; margin: 0; }
.cookie-consent a { color: var(--lv-amber-200); text-decoration-color: var(--lv-amber-400); }

/* ─── Companion / Partner Link Box ───────────────────────── */
.companion-link-box { background: var(--lv-amber-50); border: 1px solid var(--lv-amber-200); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.375rem; margin: 2rem 0; }
.companion-link-box .companion-icon { font-size: 1.5rem; color: var(--lv-amber-500); }
.companion-link-box p { font-size: 0.9375rem; color: var(--lv-warm-700); margin: 0; }
.companion-site-link { color: var(--lv-amber-700); font-weight: 600; }

/* ─── Footer ─────────────────────────────────────────────── */
.site-footer { background: var(--lv-amber-950); color: var(--lv-amber-300); padding: 3.5rem 0 0; margin-top: var(--lv-section-gap); }
.site-footer .footer-brand { display: flex; align-items: center; gap: 0.5rem; }
.site-footer .footer-brand .brand-icon { width: 28px; height: 28px; object-fit: contain; }
.site-footer .footer-brand .brand-name { font-family: var(--lv-font-heading); font-weight: 700; font-size: 1.0625rem; color: #fff; }
.site-footer .footer-brand .brand-tld { color: var(--lv-amber-400); }
.footer-tagline { font-size: 0.9375rem; color: var(--lv-amber-300); margin-bottom: 0.75rem; line-height: 1.6; }
.footer-trust { font-size: 0.8125rem; color: var(--lv-amber-400); line-height: 1.9; }
.footer-trust i { color: var(--lv-amber-500); font-size: 0.75rem; }
.footer-heading { font-family: var(--lv-font-body); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--lv-amber-400); margin-bottom: 0.875rem; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: 0.4375rem; }
.footer-links a { color: var(--lv-amber-200); text-decoration: none; font-size: 0.9375rem; transition: color 0.15s ease; }
.footer-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.footer-disclaimer { background: rgba(0,0,0,0.2); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.375rem; margin-bottom: 1.5rem; }
.footer-disclaimer p { font-size: 0.8125rem; color: var(--lv-amber-300); margin-bottom: 0; line-height: 1.7; max-width: none; }
.footer-disclaimer strong { color: var(--lv-gold); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding: 1.125rem 0; font-size: 0.8125rem; }
.footer-bottom p { color: var(--lv-amber-400); margin-bottom: 0; }
.footer-bottom-links { display: flex; gap: 1.5rem; }
.footer-bottom-links a { color: var(--lv-amber-400); text-decoration: none; font-size: 0.8125rem; }
.footer-bottom-links a:hover { color: #fff; }

/* ─── Content Utilities ──────────────────────────────────── */
.section-alt { background-color: var(--lv-bg-alt); }
.section-amber { background-color: var(--lv-bg-section); }
.text-muted { color: var(--lv-text-muted) !important; }
.caption-text { font-family: var(--lv-font-mono); font-size: 0.75rem; color: var(--lv-warm-500); text-transform: uppercase; letter-spacing: 0.04em; }
.section-label { font-family: var(--lv-font-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; color: var(--lv-amber-500); display: block; margin-bottom: 0.375rem; }

/* ─── Handout / Print Styles ─────────────────────────────── */
.handout { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg); padding: 2rem 2rem 1.5rem; margin: 2rem 0; background: var(--lv-bg); position: relative; page-break-inside: avoid; }
.handout + .handout { margin-top: 2.5rem; }
.handout-title { font-family: var(--lv-font-heading); font-size: 1.375rem; font-weight: 700; color: var(--lv-text-heading); margin: 0 0 0.25rem; border: none; padding: 0; }
.handout-subtitle { font-size: 0.9375rem; color: var(--lv-warm-500); margin-bottom: 1.25rem; }
.handout-meta { display: flex; gap: 2rem; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--lv-border-light); }
.handout-field { flex: 1; }
.handout-field label { display: block; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--lv-warm-500); margin-bottom: 0.25rem; }
.handout-field .field-line { border-bottom: 1px solid var(--lv-warm-300); min-height: 1.5rem; display: block; }
.handout-checkbox { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.625rem 0.75rem; border: 1px solid var(--lv-border-light); border-radius: var(--lv-radius); margin-bottom: 0.5rem; cursor: pointer; transition: background-color 0.1s ease; }
.handout-checkbox:hover { background-color: var(--lv-amber-50); }
.handout-checkbox .check-box { width: 1.25rem; height: 1.25rem; border: 2px solid var(--lv-warm-300); border-radius: 3px; flex-shrink: 0; margin-top: 0.125rem; }
.handout-checkbox .check-label { font-size: 0.9375rem; line-height: 1.5; }
.handout-textarea { border: 1px solid var(--lv-warm-300); border-radius: var(--lv-radius); min-height: 4rem; width: 100%; padding: 0.5rem; display: block; margin-bottom: 1rem; }
.handout-section { margin-bottom: 1.5rem; }
.handout-section h4 { font-family: var(--lv-font-body); font-size: 0.9375rem; font-weight: 700; color: var(--lv-amber-700); margin-top: 0; margin-bottom: 0.75rem; text-transform: uppercase; letter-spacing: 0.03em; }
.btn-print { display: inline-flex; align-items: center; gap: 0.375rem; background: var(--lv-amber-50); color: var(--lv-amber-700); border: 1px solid var(--lv-amber-200); border-radius: var(--lv-radius); padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 600; cursor: pointer; transition: all 0.15s ease; }
.btn-print:hover { background: var(--lv-amber-100); border-color: var(--lv-amber-300); color: var(--lv-amber-800); }
.handout-actions { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.print-only { display: none !important; }

/* ═══════════════════════════════════════════════════════════
   LAS VEGAS-SPECIFIC COMPONENTS
   ═══════════════════════════════════════════════════════════ */

/* ─── Stat Cards ─────────────────────────────────────────── */
.stat-card { text-align: center; padding: 1.5rem 1rem; background: var(--lv-bg); border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg); transition: box-shadow 0.15s ease; }
.stat-card:hover { box-shadow: var(--lv-shadow-sm); }
.stat-icon { font-size: 1.5rem; color: var(--lv-amber-500); margin-bottom: 0.5rem; }
.stat-number { font-family: var(--lv-font-heading); font-size: 2rem; font-weight: 700; color: var(--lv-amber-800); line-height: 1.2; margin-bottom: 0.25rem; }
.stat-label { font-size: 0.875rem; color: var(--lv-warm-500); font-weight: 500; }

/* ─── Tourism Tip ────────────────────────────────────────── */
.tourism-tip { background: var(--lv-gold-light); border: 1px solid var(--lv-gold-border); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.375rem; margin: 1.5rem 0; }
.tourism-tip-icon { font-size: 1.25rem; color: var(--lv-gold); flex-shrink: 0; margin-top: 0.125rem; }
.tourism-tip p { font-size: 0.9375rem; color: var(--lv-warm-700); }

/* ─── Strip Warning ─────────────────────────────────────── */
.strip-warning { background: var(--lv-neon-light); border: 2px solid var(--lv-neon); border-left: 4px solid var(--lv-neon); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.25rem; font-size: 0.9375rem; line-height: 1.65; margin: 1.5rem 0; }
.strip-warning strong { color: var(--lv-neon); }
.strip-warning i { color: var(--lv-neon); }

/* ─── Amnesty Callout ───────────────────────────────────── */
.amnesty-callout { background: var(--lv-sage-light); border: 1px solid var(--lv-sage); border-radius: var(--lv-radius-lg); padding: 1.125rem 1.375rem; margin: 1.5rem 0; }
.amnesty-callout-icon { font-size: 1.25rem; color: var(--lv-sage); flex-shrink: 0; margin-top: 0.125rem; }
.amnesty-callout p { font-size: 0.9375rem; color: var(--lv-warm-700); }

/* ─── Legislative Timeline ───────────────────────────────── */
.timeline-event { display: flex; gap: 1.25rem; padding: 1rem 0; border-bottom: 1px solid var(--lv-border-light); }
.timeline-event:last-child { border-bottom: none; }
.timeline-year { font-family: var(--lv-font-mono); font-size: 0.875rem; font-weight: 500; color: var(--lv-amber-600); background: var(--lv-amber-50); border-radius: var(--lv-radius); padding: 0.25rem 0.75rem; height: fit-content; flex-shrink: 0; white-space: nowrap; }
.timeline-title { font-family: var(--lv-font-body); font-size: 1rem; font-weight: 600; color: var(--lv-amber-800); margin: 0 0 0.25rem; border: none; padding: 0; }
.timeline-desc { font-size: 0.9375rem; color: var(--lv-warm-600); margin: 0; }

/* ─── Dispensary Cards ───────────────────────────────────── */
.dispensary-card { height: 100%; }
.dispensary-card .card-title { color: var(--lv-amber-800); margin-bottom: 0.5rem; }
.dispensary-card .card-text { font-size: 0.9375rem; color: var(--lv-warm-600); margin-bottom: 0.375rem; }
.dispensary-card .card-text i { color: var(--lv-amber-400); }
.dispensary-badges { margin-top: 0.5rem; }
.badge.bg-sage { background-color: var(--lv-sage) !important; color: #fff; }

/* ─── Limits & License Tables ────────────────────────────── */
.limits-table thead th { background-color: var(--lv-amber-50); }
.limits-table td:nth-child(2) { font-weight: 600; color: var(--lv-amber-800); }
.license-table thead th { background-color: var(--lv-amber-50); }
.license-table td:first-child { font-weight: 500; color: var(--lv-warm-800); }

/* ─── Legal Update Badge ─────────────────────────────────── */
.legal-update-badge { font-family: var(--lv-font-mono); font-size: 0.75rem; font-weight: 500; background: var(--lv-sage-light); color: var(--lv-sage); border-radius: 2rem; padding: 0.25rem 0.75rem; display: inline-flex; align-items: center; gap: 0.25rem; }

/* ─── CCB Source Link ────────────────────────────────────── */
.ccb-source-link { font-size: 0.875rem; color: var(--lv-amber-600); text-decoration: none; font-weight: 500; transition: color 0.15s ease; }
.ccb-source-link:hover { color: var(--lv-amber-800); text-decoration: underline; }
.ccb-source-link i { font-size: 0.75rem; }

/* ─── Tax Calculator ─────────────────────────────────────── */
.tax-calculator { background: var(--lv-warm-50); border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg); padding: 1.5rem; margin: 2rem 0; }
.tax-calculator h3 { font-family: var(--lv-font-body); font-size: 1.125rem; font-weight: 700; color: var(--lv-amber-800); margin: 0 0 1rem; border: none; padding: 0; }
.tax-calculator label { font-size: 0.875rem; font-weight: 600; color: var(--lv-warm-700); margin-bottom: 0.25rem; display: block; }
.tax-calculator input, .tax-calculator select { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: 0.5rem 0.75rem; font-size: 1rem; width: 100%; }
.tax-calculator input:focus, .tax-calculator select:focus { border-color: var(--lv-amber-400); outline: none; box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.15); }
.tax-result { background: var(--lv-amber-50); border-radius: var(--lv-radius); padding: 1rem; margin-top: 1rem; }
.tax-result .tax-line { display: flex; justify-content: space-between; padding: 0.25rem 0; font-size: 0.9375rem; }
.tax-result .tax-total { border-top: 2px solid var(--lv-amber-200); margin-top: 0.5rem; padding-top: 0.5rem; font-weight: 700; color: var(--lv-amber-800); }
.tax-savings { background: var(--lv-sage-light); border-radius: var(--lv-radius); padding: 0.75rem 1rem; margin-top: 0.75rem; font-size: 0.875rem; color: var(--lv-sage); font-weight: 500; }

/* ─── Dispensary Search ──────────────────────────────────── */
.dispensary-search { background: var(--lv-amber-50); border-radius: var(--lv-radius-lg); padding: 1.5rem; margin-bottom: 2rem; }
.dispensary-search label { font-size: 0.875rem; font-weight: 600; color: var(--lv-amber-800); margin-bottom: 0.25rem; display: block; }
.dispensary-search input, .dispensary-search select { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: 0.5rem 0.75rem; font-size: 1rem; width: 100%; }
.dispensary-count { font-size: 0.875rem; color: var(--lv-warm-500); margin-top: 0.75rem; font-weight: 500; }

/* ─── Focus Styles (Accessibility) ───────────────────────── */
*:focus-visible { outline: 3px solid rgba(217, 119, 6, 0.4); outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }

::selection { background-color: var(--lv-amber-200); color: var(--lv-amber-900); }

/* ─── Responsive ─────────────────────────────────────────── */
@media (max-width: 767.98px) {
    :root { --lv-section-gap: 3rem; --lv-body-size: 1.0625rem; --lv-body-leading: 1.7; }
    .content-page { padding: 2rem 0; }
    .page-hero { padding: 2rem 0 1.75rem; }
    .site-footer { padding-top: 2.5rem; }
    .footer-disclaimer { padding: 0.875rem 1rem; }
    .stat-number { font-size: 1.5rem; }
    .timeline-event { flex-direction: column; gap: 0.5rem; }
}

@media (max-width: 1199.98px) {
    .navbar-collapse { background: var(--lv-bg); padding: 0.75rem 0; margin-top: 0.5rem; border-top: 1px solid var(--lv-border-light); }
    .navbar .dropdown-menu { border: none; box-shadow: none; padding: 0 0 0 1rem; }
}

@media print {
    .site-header, .top-bar, .breadcrumb-wrapper, .age-gate, .cookie-consent, .site-footer { display: none !important; }
    body { font-size: 11pt; color: #000; background: #fff; }
    a { color: #000; text-decoration: underline; }
    .content-body { max-width: none; }
}
