/*
Theme Name: Stogie Spot
Theme URI: https://stogiespot.com
Description: Premium cigar community theme for Stogie Spot
Author: Stogie Spot
Version: 1.0.0
Tags: cigar, community, dark, premium
Text Domain: leaflounge
*/

/* ============================================================
   CSS CUSTOM PROPERTIES (Design Tokens)
   ============================================================ */
:root {
  /* Brand Colors — Navy/Gold palette */
  --ll-bg:           #0C0F14 !important;
  --ll-bg-secondary: #0D1B2A !important;
  --ll-bg-card:      #111C28 !important;
  --ll-bg-card-hover:#1A3048 !important;
  --ll-border:       #1A3048 !important;
  --ll-border-light: #1E3A56 !important;

  --ll-gold:         #C9A84C !important;
  --ll-gold-light:   #E0C070 !important;
  --ll-gold-dark:    #A07830 !important;

  --ll-text:         #F0EBE3 !important;
  --ll-text-muted:   #8A9BAD !important;
  --ll-text-dim:     #5A6A7A !important;

  --ll-accent:       #C94C4C !important;
  --ll-accent-light: #E06060 !important;

  /* Light section (white middle sections) */
  --ll-bg-light:          #FAFCFF !important;
  --ll-bg-light-secondary:#EEF3F8 !important;
  --ll-card-bg-light:     #FFFFFF !important;
  --ll-text-dark:         #0D1B2A !important;
  --ll-text-dark-muted:   #4A5A6A !important;
  --ll-border-light-mode: #C8D8E8 !important;

  /* Typography */
  --ll-font-heading: 'Playfair Display', Georgia, serif;
  --ll-font-body:    'Inter', 'Helvetica Neue', sans-serif;

  /* Spacing */
  --ll-radius:       6px !important;
  --ll-radius-lg:    12px !important;
  --ll-shadow:       0 4px 20px rgba(0,0,0,0.5);
  --ll-shadow-gold:  0 4px 20px rgba(201,168,76,0.15);

  /* Transitions */
  --ll-transition:   all 0.25s ease;
}

/* ============================================================
   GLOBAL RESETS & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  background-color: var(--ll-bg) !important;
  color: var(--ll-text) !important;
  font-family: var(--ll-font-body);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--ll-gold);
  color: var(--ll-bg);
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ll-font-heading) !important;
  color: var(--ll-text) !important;
  line-height: 1.25;
  font-weight: 600;
  margin-bottom: 0.5em;
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; color: var(--ll-text) !important; }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.4rem); color: var(--ll-text) !important; }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.6rem); }
h4 { font-size: 1.1rem; }

p { margin-bottom: 1.25rem; color: var(--ll-text); }

a {
  color: var(--ll-gold);
  text-decoration: none;
  transition: var(--ll-transition);
}
a:hover { color: var(--ll-gold-light); }

strong { color: var(--ll-text); font-weight: 600; }

blockquote {
  border-left: 3px solid var(--ll-gold);
  padding-left: 1.5rem;
  margin-left: 0;
  color: var(--ll-text-muted);
  font-style: italic;
  font-family: var(--ll-font-heading);
}

hr {
  border: none;
  border-top: 1px solid var(--ll-border);
  margin: 2.5rem 0;
}

/* ============================================================
   SITE HEADER  (custom header.php — not Kadence)
   ============================================================ */
.ll-site-header {
  background: rgba(13, 27, 42, 0.98);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--ll-border);
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
}

.ll-header-inner {
  display: flex;
  align-items: center;
  gap: 2rem;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  height: 68px;
}

/* ── Logo ── */
.ll-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}
.ll-logo img {
  height: 38px;
  width: auto;
}
.ll-logo-text {
  font-family: var(--ll-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.02em;
  line-height: 1;
}
.ll-logo-accent {
  color: var(--ll-gold);
  font-style: italic;
}

/* ── Primary Nav ── */
.ll-primary-nav { flex: 1; }
.ll-nav-list {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ll-nav-list li { position: relative; }
.ll-nav-list > li > a {
  display: block;
  padding: 0.5rem 0.9rem;
  color: rgba(240,235,227,0.75);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: var(--ll-radius);
  transition: var(--ll-transition);
}
.ll-nav-list > li > a:hover,
.ll-nav-list > li.current-menu-item > a,
.ll-nav-list > li.current-menu-ancestor > a {
  color: var(--ll-gold);
  background: rgba(201,168,76,0.08);
}

/* Dropdown */
.ll-nav-list ul {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 180px;
  list-style: none;
  margin: 0;
  padding: 0.4rem 0;
  background: #0D1B2A;
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius);
  box-shadow: var(--ll-shadow);
  z-index: 200;
}
.ll-nav-list li:hover > ul { display: block; }
.ll-nav-list ul li a {
  display: block;
  padding: 0.6rem 1rem;
  color: var(--ll-text-muted);
  font-size: 0.875rem;
  text-decoration: none;
  transition: var(--ll-transition);
}
.ll-nav-list ul li a:hover {
  color: var(--ll-gold);
  background: rgba(201,168,76,0.06);
}

/* ── Header Actions ── */
.ll-header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}
.ll-header-signin-btn {
  padding: 0.5rem 1.1rem;
  color: rgba(240,235,227,0.8);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  border-radius: var(--ll-radius);
  border: 1px solid var(--ll-border-light);
  transition: var(--ll-transition);
}
.ll-header-signin-btn:hover {
  color: var(--ll-text);
  border-color: var(--ll-text-muted);
}
.ll-header-join-btn {
  padding: 0.5rem 1.25rem;
  background: var(--ll-gold);
  color: var(--ll-bg);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--ll-radius);
  border: none;
  transition: var(--ll-transition);
}
.ll-header-join-btn:hover {
  background: var(--ll-gold-light);
  color: var(--ll-bg);
}
.ll-header-humidor-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.1rem;
  color: var(--ll-gold);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid rgba(201,168,76,0.4);
  border-radius: var(--ll-radius);
  transition: var(--ll-transition);
}
.ll-header-humidor-btn:hover {
  background: rgba(201,168,76,0.1);
  color: var(--ll-gold-light);
}

/* ── Mobile Hamburger ── */
.ll-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid var(--ll-border-light);
  border-radius: var(--ll-radius);
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}
.ll-nav-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--ll-text);
  border-radius: 2px;
  transition: var(--ll-transition);
}
.ll-nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ll-nav-toggle.open span:nth-child(2) { opacity: 0; }
.ll-nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── Mobile Nav Overlay ── */
.ll-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 998;
}
.ll-nav-overlay.open { display: block; }

/* ── Mobile: drawer slides down ── */
@media (max-width: 900px) {
  .ll-header-inner { gap: 1rem; }
  .ll-header-actions { display: none; }
  .ll-nav-toggle    { display: flex; }

  .ll-primary-nav {
    display: none;
    position: fixed;
    top: 68px;
    left: 0;
    right: 0;
    background: #0D1B2A;
    border-bottom: 1px solid var(--ll-border);
    padding: 1rem 0;
    z-index: 999;
    box-shadow: 0 8px 24px rgba(0,0,0,0.5);
  }
  .ll-primary-nav.open { display: block; }

  .ll-nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .ll-nav-list > li > a {
    padding: 0.9rem 1.5rem;
    border-radius: 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    font-size: 1rem;
  }
  .ll-nav-list ul { display: none !important; } /* disable dropdowns on mobile */
}

@media (max-width: 480px) {
  .ll-header-inner  { padding: 0 1rem; }
  .ll-logo-text     { font-size: 1.35rem; }
}

/* ── Kadence leftovers: hide its header entirely ── */
.kadence-header-row,
.kadence-top-header-wrap,
header.kadence-header { display: none !important; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn,
.ll-btn,
button,
input[type="submit"],
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.75rem;
  border-radius: var(--ll-radius);
  font-family: var(--ll-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  border: none;
  transition: var(--ll-transition);
  text-decoration: none;
}

/* Primary (Gold) */
.btn-primary,
.ll-btn-primary,
input[type="submit"],
.um-button {
  background: linear-gradient(135deg, var(--ll-gold), var(--ll-gold-dark)) !important;
  color: var(--ll-bg) !important;
  border-color: var(--ll-gold) !important;
}
.btn-primary:hover,
.ll-btn-primary:hover,
input[type="submit"]:hover,
.um-button:hover {
  background: linear-gradient(135deg, var(--ll-gold-light), var(--ll-gold)) !important;
  color: var(--ll-bg) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(201,168,76,0.4) !important;
}

/* Ghost */
.btn-ghost,
.ll-btn-ghost {
  background: transparent;
  color: var(--ll-gold) !important;
  border: 1px solid var(--ll-gold);
}
.btn-ghost:hover,
.ll-btn-ghost:hover {
  background: rgba(201,168,76,0.1);
  transform: translateY(-1px);
}

/* Danger/Accent */
.btn-accent {
  background: var(--ll-accent);
  color: var(--ll-text) !important;
}
.btn-accent:hover {
  background: var(--ll-accent-light);
}

/* ============================================================
   CARDS
   ============================================================ */
.ll-card {
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  transition: var(--ll-transition);
}

.ll-card:hover {
  border-color: var(--ll-gold-dark);
  box-shadow: var(--ll-shadow-gold);
  transform: translateY(-3px);
}

.ll-card-body {
  padding: 1.5rem;
}

.ll-card-image {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.ll-card-title {
  font-family: var(--ll-font-heading);
  font-size: 1.2rem;
  color: var(--ll-text);
  margin-bottom: 0.35rem;
}

.ll-card-meta {
  font-size: 0.8rem;
  color: var(--ll-text-muted);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}

/* ============================================================
   STAR RATINGS
   ============================================================ */
.ll-stars {
  display: inline-flex;
  gap: 3px;
  color: var(--ll-gold);
  font-size: 1rem;
}

.ll-stars .empty { color: var(--ll-border-light); }

.ll-rating-score {
  font-family: var(--ll-font-heading);
  font-size: 2rem;
  font-weight: 700;
  color: var(--ll-gold);
}

/* WP Review Pro Overrides */
.wprm-recipe-rating .wprm-rating-star svg,
.wpr-rating-stars span {
  color: var(--ll-gold) !important;
  fill: var(--ll-gold) !important;
}

/* ============================================================
   GOLD DIVIDER ACCENT
   ============================================================ */
.ll-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 2rem 0;
}

.ll-divider::before,
.ll-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--ll-border), transparent);
}

.ll-divider-icon {
  color: var(--ll-gold);
  font-size: 1.2rem;
  opacity: 0.8;
}

/* ============================================================
   SECTION STYLES
   ============================================================ */
.ll-section {
  padding: 5rem 0;
  background: var(--ll-bg) !important;
}

.ll-section-dark {
  background: var(--ll-bg-secondary) !important;
}

.ll-section-title {
  text-align: center;
  margin-bottom: 0.5rem;
  color: var(--ll-text) !important;
}

/* On light sections, section titles must be dark */
.ll-section-light .ll-section-title,
.ll-section-light [class="ll-section-title"] {
  color: #0D1B2A !important;
}

.ll-section-subtitle {
  text-align: center;
  color: var(--ll-text-muted) !important;
  max-width: 600px;
  margin: 0 auto 3rem;
  font-size: 1.05rem;
}

.ll-section-title .ll-gold-text { color: var(--ll-gold); }

/* Gold underline accent on section titles */
.ll-section-title::after {
  content: '';
  display: block;
  width: 60px;
  height: 2px;
  background: var(--ll-gold);
  margin: 0.75rem auto 0;
}

/* ============================================================
   GRID LAYOUTS
   ============================================================ */
.ll-grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.75rem;
}

.ll-grid-4 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.5rem;
}

.ll-grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
  gap: 2rem;
}

/* ============================================================
   BADGES
   ============================================================ */
.ll-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(201,168,76,0.1);
  border: 1px solid rgba(201,168,76,0.3);
  color: var(--ll-gold);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.3rem 0.8rem;
  border-radius: 100px;
}

.ll-badge-earned {
  background: rgba(201,168,76,0.2);
  border-color: var(--ll-gold);
}

.ll-badge-locked {
  background: rgba(255,255,255,0.03);
  border-color: var(--ll-border);
  color: var(--ll-text-dim);
  filter: grayscale(1);
}

/* GamiPress Badge Overrides */
.gamipress-achievement {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border) !important;
  border-radius: var(--ll-radius-lg) !important;
  color: var(--ll-text) !important;
}

.gamipress-achievement-title {
  color: var(--ll-gold) !important;
  font-family: var(--ll-font-heading) !important;
}

/* ============================================================
   FORMS
   ============================================================ */
/* Light section utility */
.ll-section-light {
  background: var(--ll-bg-light) !important;
  color: var(--ll-text-dark) !important;
}
.ll-section-light h1,
.ll-section-light h2,
.ll-section-light h3,
.ll-section-light h4 { color: var(--ll-text-dark) !important; }
.ll-section-light p   { color: var(--ll-text-dark-muted) !important; }
.ll-section-light .ll-card {
  background: var(--ll-card-bg-light);
  border-color: var(--ll-border-light-mode);
  color: var(--ll-text-dark);
}
.ll-section-light .ll-card-title,
.ll-section-light .ll-card-meta { color: var(--ll-text-dark); }

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="number"],
textarea,
select {
  background: #0F1923;
  border: 1px solid var(--ll-border-light);
  border-radius: var(--ll-radius);
  color: var(--ll-text);
  font-family: var(--ll-font-body);
  font-size: 0.95rem;
  padding: 0.75rem 1rem;
  width: 100%;
  transition: var(--ll-transition);
  outline: none;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--ll-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.1);
}

input::placeholder, textarea::placeholder {
  color: var(--ll-text-dim);
}

label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ll-text-muted);
  margin-bottom: 0.4rem;
}

/* Ultimate Member Form Overrides */
.um-form input,
.um-form select,
.um-form textarea {
  background: #0F1923 !important;
  border: 1px solid var(--ll-border-light) !important;
  color: var(--ll-text) !important;
  border-radius: var(--ll-radius) !important;
}

.um-form input:focus,
.um-form select:focus,
.um-form textarea:focus {
  border-color: var(--ll-gold) !important;
}

.um-field-label {
  color: var(--ll-text-muted) !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

/* ============================================================
   PROFILE / HUMIDOR PAGE
   ============================================================ */
.ll-profile-header {
  background: linear-gradient(to bottom, var(--ll-bg-secondary), var(--ll-bg));
  border-bottom: 1px solid var(--ll-border);
  padding: 3rem 0;
}

.ll-profile-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 3px solid var(--ll-gold);
  object-fit: cover;
  box-shadow: var(--ll-shadow-gold);
}

.ll-profile-name {
  font-family: var(--ll-font-heading);
  font-size: 1.75rem;
  color: var(--ll-text);
  margin-bottom: 0.25rem;
}

.ll-profile-location {
  color: var(--ll-text-muted);
  font-size: 0.9rem;
}

.ll-profile-stats {
  display: flex;
  gap: 2.5rem;
  margin-top: 1.25rem;
}

.ll-stat-number {
  font-family: var(--ll-font-heading);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--ll-gold);
  line-height: 1;
}

.ll-stat-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ll-text-muted);
  margin-top: 0.2rem;
}

/* Humidor Tabs */
.ll-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--ll-border);
  margin-bottom: 2.5rem;
}

.ll-tab {
  padding: 1rem 1.75rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ll-text-muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: var(--ll-transition);
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
}

.ll-tab:hover { color: var(--ll-text); }

.ll-tab.active {
  color: var(--ll-gold);
  border-bottom-color: var(--ll-gold);
}

/* Cigar Humidor Card */
.ll-humidor-card {
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  transition: var(--ll-transition);
  position: relative;
}

.ll-humidor-card:hover {
  border-color: var(--ll-gold-dark);
  box-shadow: var(--ll-shadow-gold);
  transform: translateY(-3px);
}

.ll-humidor-card-image {
  width: 100%;
  height: 160px;
  object-fit: cover;
  background: var(--ll-bg-secondary);
}

.ll-humidor-card-body {
  padding: 1.1rem;
}

.ll-humidor-card-brand {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ll-gold);
  margin-bottom: 0.2rem;
}

.ll-humidor-card-name {
  font-family: var(--ll-font-heading);
  font-size: 1.05rem;
  color: var(--ll-text);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.ll-humidor-card-stars { font-size: 0.75rem; margin-top: 0.3rem; margin-bottom: 0.25rem; }
.ll-humidor-card-date {
  font-size: 0.78rem;
  color: var(--ll-text-dark-muted);
  margin-top: 0.25rem;
}
.ll-humidor-card-date i { color: var(--ll-gold); margin-right: 0.3rem; font-size: 0.7rem; }

/* Hover overlay */
.ll-humidor-card-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: rgba(13,27,42,0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.85rem;
  transform: translateY(100%);
  transition: transform 0.25s ease;
}
.ll-humidor-card:hover .ll-humidor-card-overlay { transform: translateY(0); }

.ll-humidor-card-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--ll-border);
}

/* Light-mode humidor cards (used inside .ll-section-light) */
.ll-section-light .ll-humidor-card {
  background: #fff;
  border-color: var(--ll-border-light-mode);
}
.ll-section-light .ll-humidor-card-name a { color: var(--ll-text-dark); }
.ll-section-light .ll-humidor-card-actions { border-top-color: var(--ll-border-light-mode); }

/* Wishlist heart icon */
.ll-wishlist-btn {
  background: none;
  border: none;
  color: var(--ll-text-dim);
  cursor: pointer;
  padding: 0.25rem;
  transition: var(--ll-transition);
  font-size: 1.1rem;
}
.ll-wishlist-btn:hover,
.ll-wishlist-btn.active { color: var(--ll-accent-light); }

/* Share button */
.ll-share-btn {
  background: none;
  border: none;
  color: var(--ll-text-dim);
  cursor: pointer;
  padding: 0.25rem;
  transition: var(--ll-transition);
  font-size: 1rem;
}
.ll-share-btn:hover { color: var(--ll-gold); }

/* ============================================================
   CIGAR SINGLE PAGE
   ============================================================ */
.ll-cigar-hero {
  background: linear-gradient(135deg, var(--ll-bg-secondary) 0%, var(--ll-bg) 100%);
  border-bottom: 1px solid var(--ll-border);
  padding: 4rem 0;
}

.ll-cigar-image-wrap {
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  border: 1px solid var(--ll-border);
  box-shadow: var(--ll-shadow);
  min-height: 460px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ll-bg-secondary);
}

.ll-cigar-image-wrap img {
  width: 100%;
  height: auto;          /* let the image set its own height */
  max-height: 520px;     /* cap very tall images */
  object-fit: contain;
  display: block;
}

.ll-cigar-image-placeholder {
  width: 100%;
  min-height: 340px;
  background: var(--ll-bg-secondary);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  font-family: var(--ll-font-heading);
  color: var(--ll-gold);
}

.ll-cigar-image-placeholder i {
  font-size: 3rem;
  opacity: 0.4;
}

.ll-cigar-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 2rem 0;
}

.ll-cigar-meta-item {
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius);
  padding: 1rem;
  text-align: center;
}

.ll-cigar-meta-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ll-text-muted);
  margin-bottom: 0.35rem;
}

.ll-cigar-meta-value {
  font-family: var(--ll-font-heading);
  font-size: 1.05rem;
  color: var(--ll-text);
  font-weight: 600;
}

/* Strength indicator */
.ll-strength-bar {
  display: flex;
  gap: 4px;
  justify-content: center;
  margin-top: 0.5rem;
}

.ll-strength-pip {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--ll-border-light);
}

.ll-strength-pip.filled { background: var(--ll-gold); }

/* ── About This Cigar section ────────────────────────────────── */
.ll-cigar-main {
  flex: 1;
}

.ll-cigar-main h2 {
  font-family: var(--ll-font-heading);
  font-size: 1.6rem;
  color: var(--ll-text);
  margin-bottom: 1.5rem;
}

.ll-cigar-description {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ll-text-muted);
}

.ll-cigar-description p {
  margin-bottom: 1rem;
}

.ll-cigar-description strong {
  color: var(--ll-text);
}

.ll-cigar-description a {
  color: var(--ll-gold);
  text-decoration: none;
  transition: color 0.2s;
}

.ll-cigar-description a:hover {
  color: var(--ll-gold-light);
  text-decoration: underline;
}

/* ── Sidebar items ──────────────────────────────────────────── */
.ll-sidebar-label {
  color: var(--ll-text-muted);
  font-size: 0.8rem;
  font-weight: 500;
}

.ll-sidebar-value {
  color: var(--ll-text);
  font-weight: 600;
}

.ll-sidebar-join-cta {
  text-align: center;
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  border: none;
  color: #fff;
}

.ll-sidebar-join-cta h4 {
  color: #fff !important;
  font-size: 1.1rem;
  margin: 0.5rem 0;
}

.ll-sidebar-join-cta p {
  color: rgba(255,255,255,0.85);
}

/* ============================================================
   LOUNGE DIRECTORY
   ============================================================ */
.ll-lounge-map-wrap {
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  border: 1px solid var(--ll-border);
  height: 420px;
  margin-bottom: 2.5rem;
}

.ll-lounge-card-hours {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.85rem;
  color: var(--ll-text-muted);
}

.ll-lounge-card-hours .open { color: #4CAF50; font-weight: 600; }
.ll-lounge-card-hours .closed { color: var(--ll-accent-light); font-weight: 600; }

.ll-lounge-social-links {
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
}

.ll-lounge-social-links a {
  color: var(--ll-text-dim);
  font-size: 1.1rem;
  transition: var(--ll-transition);
}

.ll-lounge-social-links a:hover { color: var(--ll-gold); }

/* GeoDirectory Overrides */
.geodir-category-img img { border-radius: var(--ll-radius) !important; }
.geodir_post_meta { color: var(--ll-text-muted) !important; }

/* ============================================================
   HOMEPAGE HERO
   ============================================================ */
.ll-hero {
  min-height: 90vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  background-color: #080F18;
  background-image:
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.06'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 65% 40%, rgba(26,64,96,0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 20% 80%, rgba(201,168,76,0.07) 0%, transparent 50%),
    linear-gradient(160deg, #0D1B2A 0%, #080F18 50%, #060C14 100%);
  background-size: 200px 200px, cover, cover, cover;
}

.ll-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  z-index: 0;
}

.ll-hero-inner {
  text-align: center !important;
  max-width: 800px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 4rem 1.5rem 2rem;
  position: relative;
  z-index: 1;
  width: 100%;
}

.ll-hero-eyebrow {
  display: block !important;
  text-align: center !important;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ll-gold) !important;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid rgba(201,168,76,0.3);
  padding-bottom: 0.5rem;
  width: fit-content;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Cigar hero: brand eyebrow left-aligned */
.ll-cigar-hero .ll-hero-eyebrow {
  text-align: left !important;
  margin-left: 0 !important;
}

.ll-hero-title {
  font-family: var(--ll-font-heading);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 1.1;
  color: var(--ll-text) !important;
  margin-bottom: 1.5rem;
  text-align: center !important;
}

.ll-hero-title em {
  font-style: italic;
  color: var(--ll-gold) !important;
}

.ll-hero-subtitle {
  font-size: 1.15rem;
  color: var(--ll-text-muted) !important;
  max-width: 560px;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 2.5rem;
  line-height: 1.7;
  text-align: center !important;
}

.ll-hero-cta {
  display: flex !important;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center !important;
}

.ll-hero-stats {
  display: flex !important;
  gap: 3rem;
  margin-top: 4rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--ll-border);
  justify-content: center !important;
}

.ll-hero-stat-num {
  font-family: var(--ll-font-heading);
  font-size: 2rem;
  font-weight: 700;
  color: var(--ll-gold);
}

.ll-hero-stat-label {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ll-text-muted);
}

/* ============================================================
   FOOTER
   ============================================================ */
.ll-site-footer {
  background: #080F18;
  border-top: 1px solid var(--ll-border);
  padding: 4rem 1.5rem 2rem;
  color: var(--ll-text-muted);
}
.ll-footer-inner {
  max-width: 1280px;
  margin: 0 auto;
}
.ll-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 3rem;
}
.ll-footer-brand-col { display: flex; flex-direction: column; gap: 1rem; }
.ll-footer-logo {
  font-family: var(--ll-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: #ffffff;
  text-decoration: none;
  letter-spacing: 0.02em;
  display: inline-block;
}
.ll-footer-logo span {
  color: var(--ll-gold);
  font-style: italic;
}
.ll-footer-tagline {
  font-size: 0.9rem;
  color: var(--ll-text-dim);
  max-width: 260px;
  line-height: 1.6;
  font-style: italic;
  margin: 0;
}
.ll-footer-social { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.ll-social-link {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--ll-border-light);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ll-text-muted);
  font-size: 0.85rem;
  text-decoration: none;
  transition: var(--ll-transition);
}
.ll-social-link:hover {
  border-color: var(--ll-gold);
  color: var(--ll-gold);
  background: rgba(201,168,76,0.08);
}
.ll-footer-col { display: flex; flex-direction: column; }
.ll-footer-col-heading {
  font-family: var(--ll-font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ll-gold);
  margin: 0 0 1.25rem;
}
.ll-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.ll-footer-links a {
  color: var(--ll-text-dim);
  font-size: 0.88rem;
  text-decoration: none;
  transition: var(--ll-transition);
}
.ll-footer-links a:hover { color: var(--ll-text); }
.ll-footer-bottom {
  padding-top: 2rem;
  border-top: 1px solid var(--ll-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.82rem;
  color: var(--ll-text-muted);
}
.ll-footer-bottom p { margin: 0; }

/* ============================================================
   UTILITY CLASSES
   ============================================================ */
.ll-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.ll-container-narrow {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.ll-gold-text { color: var(--ll-gold) !important; }
.ll-muted-text { color: var(--ll-text-muted) !important; }

.ll-text-center { text-align: center; }

.ll-mt-1 { margin-top: 0.5rem; }
.ll-mt-2 { margin-top: 1rem; }
.ll-mt-3 { margin-top: 1.5rem; }
.ll-mt-4 { margin-top: 2rem; }

.ll-flex { display: flex; }
.ll-flex-center { display: flex; align-items: center; justify-content: center; }
.ll-gap-1 { gap: 0.5rem; }
.ll-gap-2 { gap: 1rem; }

/* Tag pill */
.ll-tag {
  display: inline-block;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--ll-border-light);
  color: var(--ll-text-muted);
  font-size: 0.75rem;
  padding: 0.2rem 0.65rem;
  border-radius: 100px;
  letter-spacing: 0.04em;
  transition: var(--ll-transition);
}
.ll-tag:hover {
  border-color: var(--ll-gold-dark);
  color: var(--ll-gold);
}

/* Empty state */
.ll-empty-state {
  text-align: center;
  padding: 4rem 2rem;
  color: var(--ll-text-muted);
}

.ll-empty-state-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  opacity: 0.4;
}

.ll-empty-state p { color: var(--ll-text-muted); }

/* Alert/Notice */
.ll-notice {
  background: rgba(201,168,76,0.08);
  border: 1px solid rgba(201,168,76,0.2);
  border-radius: var(--ll-radius);
  padding: 1rem 1.25rem;
  color: var(--ll-text-muted);
  font-size: 0.9rem;
}

/* ============================================================
   PAGE HEADER (shared across archive/single pages)
   ============================================================ */
.ll-page-header {
  background: linear-gradient(135deg, var(--ll-bg-secondary) 0%, var(--ll-bg) 100%);
  border-bottom: 1px solid var(--ll-border);
  padding: 4rem 0;
}
.ll-page-header .ll-eyebrow {
  color: var(--ll-text-muted) !important;
}
.ll-page-title {
  font-size: clamp(2rem, 5vw, 3.5rem) !important;
  font-family: var(--ll-font-heading) !important;
  font-weight: 700 !important;
  margin-bottom: 0.75rem;
}
.ll-page-subtitle {
  color: var(--ll-text-muted);
  font-size: 1.05rem;
  max-width: 580px;
  margin: 0 auto 1.5rem;
}

/* Breadcrumb */
.ll-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  color: var(--ll-text-muted);
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.ll-breadcrumb a { color: var(--ll-text-muted); }
.ll-breadcrumb a:hover { color: var(--ll-gold); }
.ll-breadcrumb span:last-child { color: var(--ll-text); }
.ll-breadcrumb-sep { color: var(--ll-text-dim); font-size: 0.65rem; }

/* ============================================================
   BRAND CARDS (archive-cigar_brand.php)
   ============================================================ */
.ll-brands-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.ll-brand-card-full {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background: var(--ll-card-bg-light);
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  padding: 1.25rem 1.5rem;
  text-decoration: none;
  color: inherit;
  transition: var(--ll-transition);
}
.ll-brand-card-full:hover {
  border-color: var(--ll-gold);
  box-shadow: var(--ll-shadow-gold);
  transform: translateY(-2px);
}
.ll-brand-card-full-logo {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  border-radius: var(--ll-radius);
  overflow: hidden;
  background: var(--ll-bg-light-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ll-brand-card-full-logo img { width: 100%; height: 100%; object-fit: cover; }
.ll-brand-card-full-placeholder { font-size: 2rem; color: var(--ll-gold); }
.ll-brand-card-full-body { flex: 1; }
.ll-brand-card-full-name {
  font-family: var(--ll-font-heading);
  font-size: 1.25rem;
  color: var(--ll-text-dark);
  margin-bottom: 0.25rem;
}
.ll-brand-card-full-origin {
  font-size: 0.82rem;
  color: var(--ll-text-dark-muted);
  display: block;
  margin-bottom: 0.35rem;
}
.ll-brand-card-full-desc {
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
  margin: 0;
  line-height: 1.5;
}
.ll-brand-card-full-count {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ll-gold-dark);
  background: rgba(201,168,76,0.08);
  padding: 0.2rem 0.65rem;
  border-radius: 100px;
}
.ll-brand-card-full-arrow {
  color: var(--ll-border-light-mode);
  transition: var(--ll-transition);
}
.ll-brand-card-full:hover .ll-brand-card-full-arrow { color: var(--ll-gold); }

/* Brand cards — vertical card layout used on brand archive page */
.ll-brand-card {
  display: flex;
  flex-direction: column;
  background: var(--ll-card-bg-light);
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: var(--ll-transition);
}
.ll-brand-card:hover {
  border-color: var(--ll-gold);
  box-shadow: var(--ll-shadow-gold);
  transform: translateY(-3px);
}
.ll-brand-card-logo {
  height: 160px;
  overflow: hidden;
  background: var(--ll-bg-light-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.75rem;
}
.ll-brand-card-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.ll-brand-card-placeholder { font-size: 2.5rem; color: var(--ll-gold); }
.ll-brand-card-body { padding: 1rem; flex: 1; }
.ll-brand-card-name {
  font-family: var(--ll-font-heading);
  font-size: 1.05rem;
  color: var(--ll-text-dark);
  margin-bottom: 0.2rem;
}
.ll-brand-card-origin {
  font-size: 0.82rem;
  color: var(--ll-text-dark-muted);
  margin-bottom: 0.6rem;
}
.ll-brand-card-meta {
  display: flex;
  gap: 0.75rem;
  font-size: 0.78rem;
  color: var(--ll-text-dark-muted);
}
.ll-brand-card-meta span { display: flex; align-items: center; gap: 0.3rem; }
.ll-brand-card-meta .fas, .ll-brand-card-meta .far { color: var(--ll-gold); font-size: 0.7rem; }
.ll-brand-card-footer {
  border-top: 1px solid var(--ll-border-light-mode);
  padding: 0.75rem 1rem;
  margin-top: auto;
}
.ll-brand-view-link {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ll-gold-dark);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  transition: var(--ll-transition);
}
.ll-brand-card:hover .ll-brand-view-link { color: var(--ll-gold); gap: 0.6rem; }

/* Sort / search bar (brand archive) */
.ll-sort-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--ll-border-light-mode);
}
.ll-sort-bar-count { font-size: 0.88rem; color: var(--ll-text-dark-muted); }
.ll-sort-bar-count strong { color: var(--ll-text-dark); font-weight: 700; }
.ll-sort-select {
  background: #fff !important;
  border: 1px solid var(--ll-border-light-mode) !important;
  color: var(--ll-text-dark) !important;
  padding: 0.5rem 2rem 0.5rem 0.85rem !important;
  border-radius: var(--ll-radius) !important;
  font-size: 0.82rem !important;
  font-family: var(--ll-font-body) !important;
  cursor: pointer !important;
  appearance: auto !important;
  -webkit-appearance: auto !important;
  display: inline-block !important;
  width: auto !important;
  max-width: 200px !important;
}
.ll-sort-select:focus {
  outline: none !important;
  border-color: var(--ll-gold) !important;
  box-shadow: 0 0 0 3px rgba(201,168,76,0.12) !important;
}
.ll-search-wrap {
  max-width: 480px;
  margin: 0 auto 2rem;
  position: relative;
}
.ll-search-wrap i {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ll-text-dark-muted);
  font-size: 14px;
  pointer-events: none;
}
.ll-search-input {
  width: 100% !important;
  padding: 11px 16px 11px 42px !important;
  background: #fff !important;
  border: 1px solid var(--ll-border-light-mode) !important;
  border-radius: var(--ll-radius-lg) !important;
  color: var(--ll-text-dark) !important;
  font-size: 14px !important;
  box-sizing: border-box !important;
}
.ll-search-input:focus { outline: none; border-color: var(--ll-gold); box-shadow: 0 0 0 3px rgba(201,168,76,.15); }

/* Filter bar */
.ll-filter-bar { margin-bottom: 2rem; }
.ll-filter-form { display: flex; gap: 1rem; flex-wrap: wrap; }
.ll-filter-search {
  flex: 1;
  min-width: 200px;
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  color: var(--ll-text-dark);
}
.ll-filter-select {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  color: var(--ll-text-dark);
  width: auto;
}

/* ============================================================
   BRAND HERO (single-cigar_brand.php)
   ============================================================ */
.ll-brand-hero {
  background: linear-gradient(135deg, var(--ll-bg-secondary) 0%, var(--ll-bg) 100%);
  border-bottom: 1px solid var(--ll-border);
  padding: 4rem 0 3rem;
}
.ll-brand-hero-inner {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 768px) {
  .ll-brand-hero-inner { grid-template-columns: 1fr; }
}
.ll-brand-hero-logo {
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  border: 1px solid var(--ll-border);
}
.ll-brand-hero-logo img { width: 100%; }
.ll-brand-hero-name {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 0.5rem;
}
.ll-brand-hero-tagline {
  font-size: 1.1rem;
  font-style: italic;
  color: var(--ll-text-muted);
  margin-bottom: 1.25rem;
}
.ll-brand-meta-row {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.ll-brand-meta-item {
  font-size: 0.88rem;
  color: var(--ll-text-muted);
}
.ll-brand-meta-item i { color: var(--ll-gold); margin-right: 0.3rem; }
.ll-brand-description { color: var(--ll-text-muted); line-height: 1.8; margin-bottom: 1.5rem; }

/* Brand stat boxes */
.ll-stat-box {
  background: rgba(201,168,76,0.08);
  border: 1px solid rgba(201,168,76,0.25);
  border-radius: var(--ll-radius);
  padding: 0.9rem 1.5rem;
  text-align: center;
  min-width: 110px;
}
.ll-stat-box-value {
  font-family: var(--ll-font-heading);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ll-gold);
  line-height: 1;
}
.ll-stat-box-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ll-text-muted);
  margin-top: 0.3rem;
}

/* Larger stars for brand hero */
.ll-stars-lg { font-size: 1rem; }

/* ============================================================
   CIGAR CARDS (grid layout)
   ============================================================ */
.ll-cigar-card {
  display: flex;
  flex-direction: column;
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: var(--ll-transition);
}
.ll-cigar-card:hover {
  border-color: var(--ll-gold-dark);
  box-shadow: var(--ll-shadow-gold);
  transform: translateY(-3px);
}
.ll-cigar-card-placeholder {
  height: 180px;
  background: var(--ll-bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  color: var(--ll-gold-dark);
  opacity: 0.4;
}
.ll-cigar-card-img-wrap {
  display: block;
  border-bottom: 1px solid #dde6f0; /* separator between image and card info */
  overflow: hidden;
}
.ll-cigar-card-light .ll-cigar-card-img-wrap { border-bottom-color: #dde6f0; }

.ll-cigar-card-body { padding: 1.1rem; flex: 1; display: flex; flex-direction: column; }
.ll-cigar-card-tags { display: flex; gap: 0.5rem; flex-wrap: wrap; margin: 0.5rem 0; }
.ll-cigar-card-rating { display: flex; align-items: center; gap: 0.5rem; margin-top: auto; padding-top: 0.75rem; }
.ll-rating-num { font-size: 0.9rem; font-weight: 600; color: var(--ll-text-muted); }

/* ============================================================
   CIGAR SINGLE PAGE LAYOUT
   ============================================================ */
.ll-cigar-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 48%) 1fr;
  gap: 3.5rem;
  align-items: start;
  margin-top: 1.5rem;
}
@media (max-width: 900px) {
  .ll-cigar-hero-grid { grid-template-columns: 1fr; }
}

.ll-cigar-hero-image-col {
  display: flex;
  flex-direction: column;
}

.ll-cigar-hero-info {
  /* Info column on the right */
  display: flex;
  flex-direction: column;
}

.ll-cigar-hero-title { 
  font-size: clamp(1.75rem, 3.5vw, 2.75rem); 
  margin-bottom: 1rem;
  color: var(--ll-text) !important;
  font-family: var(--ll-font-heading) !important;
}
.ll-cigar-rating-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.5rem; }
.ll-cigar-actions { margin-top: 1.25rem; }
.ll-cigar-share {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--ll-border);
}
.ll-cigar-share-label { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ll-text-muted); }
.ll-share-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  color: var(--ll-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  transition: var(--ll-transition);
  cursor: pointer;
}
.ll-share-icon:hover { background: var(--ll-gold); color: var(--ll-bg); border-color: var(--ll-gold); }

/* Cigar tag pills (hero) */
.ll-cigar-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
.ll-cigar-tag {
  display: inline-block;
  padding: 0.3rem 0.85rem;
  border-radius: 20px;
  border: 1px solid var(--ll-border);
  font-size: 0.8rem;
  color: var(--ll-text-muted);
  background: rgba(255,255,255,0.04);
}
.ll-cigar-tag-gold {
  color: var(--ll-gold);
  border-color: rgba(201,168,76,0.4);
  background: rgba(201,168,76,0.06);
}

/* ── Cigar Image Placeholder (with title label) ─────────────── */
.ll-cigar-image-placeholder span {
  display: block;
  margin-top: 1rem;
  font-family: var(--ll-font-heading);
  font-size: 1rem;
  color: var(--ll-text-muted);
  text-align: center;
}

/* ── Hero info: location / rating / actions / callout ─────────── */
.ll-cigar-location-tags { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.ll-cigar-location-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.78rem;
  color: var(--ll-text-muted);
  border: 1px solid var(--ll-border);
  background: rgba(255,255,255,0.03);
}
.ll-cigar-rating-hero { margin-bottom: 1.5rem; }
.ll-rating-score-lg {
  font-family: var(--ll-font-heading);
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--ll-gold);
  line-height: 1;
  display: block;
  margin-bottom: 0.4rem;
}
.ll-rating-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ll-gold-light);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-left: 0.5rem;
}
.ll-review-count-link {
  margin-top: 0.4rem;
  font-size: 0.83rem;
  color: var(--ll-text-muted);
}
.ll-review-count-link a { color: var(--ll-gold); text-decoration: none; }
.ll-review-count-link a:hover { text-decoration: underline; }
.ll-cigar-hero-actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.ll-hero-share-btn {
  width: 38px;
  height: 38px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 0.9rem;
}
/* Force Add to Humidor button gold in dark hero — override Kadence */
.ll-cigar-hero .ll-cigar-hero-actions .btn.btn-primary,
.ll-cigar-hero .ll-cigar-hero-actions button.btn-primary {
  background: var(--ll-gold) !important;
  background-color: var(--ll-gold) !important;
  color: var(--ll-bg) !important;
  border-color: var(--ll-gold) !important;
  display: inline-flex !important;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1.4rem;
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: var(--ll-radius);
  cursor: pointer;
}
.ll-cigar-hero .ll-cigar-hero-actions .btn.btn-primary:hover,
.ll-cigar-hero .ll-cigar-hero-actions button.btn-primary:hover {
  background: var(--ll-gold-dark, #b8922e) !important;
  background-color: var(--ll-gold-dark, #b8922e) !important;
  border-color: var(--ll-gold-dark, #b8922e) !important;
}

/* Country flag emoji */
.ll-country-flag {
  font-size: 1.1rem;
  vertical-align: middle;
  line-height: 1;
}

.ll-cigar-callout {
  display: flex;
  gap: 0.75rem;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(201,168,76,0.35);
  border-radius: var(--ll-radius);
  background: rgba(201,168,76,0.06);
}
.ll-cigar-callout-icon { color: var(--ll-gold); font-size: 1rem; flex-shrink: 0; margin-top: 0.2rem; }
.ll-cigar-callout p   { margin: 0; font-size: 0.87rem; color: var(--ll-text-muted); line-height: 1.6; }

/* ── Specs section heading ────────────────────────────────────── */
.ll-specs-heading {
  font-family: var(--ll-font-heading) !important;
  font-size: clamp(1.4rem, 2.5vw, 1.9rem) !important;
  color: var(--ll-text-dark) !important;
  margin-bottom: 1.75rem !important;
}
.ll-specs-heading span { color: var(--ll-gold) !important; }

/* ── Tasting Notes + Pairings (inside light section) ─────────── */
.ll-notes-pairings-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  margin-top: 3rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--ll-border-light-mode);
}
@media (max-width: 768px) {
  .ll-notes-pairings-row { grid-template-columns: 1fr; gap: 2rem; }
}
.ll-notes-col-heading {
  font-family: var(--ll-font-heading) !important;
  font-size: 1.15rem !important;
  color: var(--ll-text-dark) !important;
  margin-bottom: 1rem !important;
}
.ll-notes-col-heading span { color: var(--ll-gold) !important; }

.ll-tag-group { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.ll-detail-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.9rem;
  border-radius: 20px;
  border: 1px solid var(--ll-border-light-mode);
  font-size: 0.73rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--ll-text-dark);
  background: var(--ll-bg-light-secondary);
}
.ll-detail-tag-pairing {
  color: #7A5A1E;
  border-color: rgba(201,168,76,0.45);
  background: rgba(201,168,76,0.1);
}

/* ── Reviews section ──────────────────────────────────────────── */
.ll-reviews-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
}
.ll-reviews-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--ll-text-dark-muted);
  margin-bottom: 0.35rem;
}
.ll-reviews-title {
  font-family: var(--ll-font-heading);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  color: var(--ll-text-dark);
  margin: 0;
}
.ll-reviews-wrap { margin-bottom: 2rem; }

/* ── Review cards (from comments.php callback) ───────────────── */
.ll-review-list {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.ll-review-card {
  background: #fff;
  border: 1px solid #dde6f0;
  border-radius: var(--ll-radius-lg);
  padding: 1.5rem;
}
.ll-review-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.ll-review-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  color: var(--ll-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
  flex-shrink: 0;
}
.ll-review-meta {
  flex: 1;
  min-width: 0;
}
.ll-review-meta strong {
  display: block;
  font-size: 0.95rem;
  color: var(--ll-text-dark);
  margin-bottom: 0.15rem;
}
.ll-review-meta span {
  font-size: 0.78rem;
  color: var(--ll-text-dark-muted);
}
.ll-review-stars {
  font-size: 0.82rem;
  margin-left: auto;
  flex-shrink: 0;
}
.ll-review-text {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--ll-text-dark-muted);
}
.ll-review-text p { margin: 0; }

/* ── Review form ─────────────────────────────────────────────── */
.ll-review-form-wrap {
  margin-top: 2.5rem;
  padding: 2rem;
  background: #fff;
  border: 1px solid #dde6f0;
  border-radius: var(--ll-radius-lg);
}
.ll-review-form-title {
  font-family: var(--ll-font-heading);
  font-size: 1.2rem;
  color: var(--ll-text-dark);
  margin-bottom: 0.35rem;
}
.ll-review-form-sub {
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
  margin-bottom: 1.5rem;
}
.ll-form-group { margin-bottom: 1rem; }
.ll-form-label {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ll-text-dark);
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ll-form-textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid #dde6f0;
  border-radius: var(--ll-radius);
  font-family: var(--ll-font-body);
  font-size: 0.92rem;
  color: var(--ll-text-dark);
  background: #fafcff;
  resize: vertical;
  transition: border-color 0.2s;
}
.ll-form-textarea:focus {
  outline: none;
  border-color: var(--ll-gold);
  background: #fff;
}
.ll-form-submit { margin-top: 1.25rem; }

/* Logged-out CTA */
.ll-review-login-cta {
  text-align: center;
  padding: 2rem;
  background: rgba(201,168,76,0.05);
  border: 1px solid rgba(201,168,76,0.2);
  border-radius: var(--ll-radius);
}
.ll-review-login-cta i {
  font-size: 1.5rem;
  color: var(--ll-gold);
  display: block;
  margin-bottom: 0.75rem;
}
.ll-review-login-cta p {
  font-size: 0.9rem;
  color: var(--ll-text-dark-muted);
  margin-bottom: 1rem;
}
.ll-review-login-cta a { color: var(--ll-gold); }
.ll-review-login-btns {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
}
.ll-reviews-cta {
  text-align: center;
  padding: 2.5rem;
  border: 1px dashed var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  background: var(--ll-bg-light-secondary);
}
.ll-reviews-cta-text { font-size: 1rem; color: var(--ll-text-dark-muted); margin-bottom: 1.25rem; }
.ll-reviews-cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ── Related cigars header ────────────────────────────────────── */
.ll-related-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.ll-card-footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 0.75rem;
}
.ll-card-country { font-size: 0.75rem; color: var(--ll-text-muted); display: flex; align-items: center; gap: 0.3rem; }
.ll-card-view    { font-size: 0.78rem; color: var(--ll-gold); font-weight: 600; }

/* Two-column content layout */
.ll-cigar-content-grid {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 900px) {
  .ll-cigar-content-grid { grid-template-columns: 1fr; }
}
.ll-sidebar-card {
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius-lg);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}
.ll-sidebar-card-title {
  font-family: var(--ll-font-heading);
  font-size: 1rem;
  color: var(--ll-gold);
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--ll-border);
}
.ll-sidebar-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;  /* stack cleanly when value wraps */
  gap: 0.75rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  font-size: 0.88rem;
}
.ll-sidebar-label {
  color: var(--ll-text-muted);
  flex-shrink: 0;       /* never squish the label */
  min-width: 65px;
}
.ll-sidebar-value {
  color: var(--ll-text);
  font-weight: 500;
  text-align: right;
  word-break: break-word;  /* wrap long values instead of overflowing */
}
.ll-sidebar-join-cta { text-align: center; }

/* ============================================================
   PROFILE HERO (page-humidor.php)
   ============================================================ */
.ll-profile-hero {
  background: linear-gradient(135deg, var(--ll-bg-secondary) 0%, var(--ll-bg) 100%);
  border-bottom: 1px solid var(--ll-border);
  padding: 3rem 0;
}
.ll-profile-header-inner {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  flex-wrap: wrap;
}
.ll-profile-avatar-wrap { flex-shrink: 0; }
.ll-profile-info { flex: 1; }
.ll-profile-actions { display: flex; flex-direction: column; gap: 0.75rem; align-items: flex-end; }
.ll-profile-since { font-size: 0.85rem; color: var(--ll-text-muted); margin-top: 0.25rem; }
.ll-profile-since i { color: var(--ll-gold); margin-right: 0.3rem; }
.ll-profile-location i { color: var(--ll-gold); margin-right: 0.3rem; }

/* Profile top row (avatar + name + actions) */
.ll-profile-top-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}
.ll-profile-action-btns {
  display: flex;
  gap: 0.75rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}

/* Profile hero name */
.ll-profile-hero-name {
  font-family: var(--ll-font-heading);
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  color: var(--ll-text);
  margin: 0;
}

/* Avatar circle with initials fallback */
.ll-avatar-circle {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 4px solid var(--ll-bg-secondary);
  overflow: hidden;
  flex-shrink: 0;
  background: var(--ll-bg-card);
}
.ll-avatar-circle img.ll-profile-avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  border: none;
  box-shadow: none;
}
.ll-initials-circle {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  color: #111;
  font-family: var(--ll-font-heading);
  font-size: 1.6rem;
  font-weight: 700;
  border-radius: 50%;
}

/* Membership level badge */
.ll-member-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.2rem 0.7rem;
  border-radius: 4px;
  color: #111;
}
.ll-member-rank-badge {
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  color: #111;
}

/* Bio paragraph */
.ll-profile-bio {
  color: var(--ll-text-muted);
  font-size: 0.9rem;
  max-width: 600px;
  line-height: 1.75;
  margin-bottom: 0.9rem;
}

/* Pairings row */
.ll-pairings-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.25rem;
}
.ll-pairings-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ll-text-muted);
}
.ll-pairing-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(201,168,76,0.12);
  border: 1px solid rgba(201,168,76,0.25);
  color: var(--ll-gold);
  font-size: 0.78rem;
  font-weight: 500;
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
}

/* Wishlist heart badge (top-right corner of card image) */
.ll-wishlist-heart-badge {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  background: rgba(224,85,85,0.9);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.75rem;
  pointer-events: none;
}

/* Wishlist card footer with "Mark as Smoked" button */
.ll-humidor-card-footer-wish {
  padding: 0.75rem;
  border-top: 1px solid var(--ll-border);
}
.ll-section-light .ll-humidor-card-footer-wish {
  border-top-color: var(--ll-border-light-mode);
}

/* Humidor delete / remove button */
.ll-humidor-delete-btn {
  background: rgba(201,76,76,0.15) !important;
  color: #e05555 !important;
  border: 1px solid rgba(201,76,76,0.3) !important;
}
.ll-humidor-delete-btn:hover {
  background: rgba(201,76,76,0.3) !important;
}

/* Placeholder card when no image */
.ll-humidor-card-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ll-bg-secondary);
  color: var(--ll-text-dim);
  font-size: 2rem;
}

/* Badge progress bar (locked badges) */
.ll-badge-progress-wrap {
  margin-top: 0.75rem;
}
.ll-badge-progress-bar {
  height: 6px;
  background: var(--ll-border);
  border-radius: 100px;
  overflow: hidden;
  margin-bottom: 0.35rem;
}
.ll-badge-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ll-gold-dark), var(--ll-gold));
  border-radius: 100px;
}
.ll-badge-progress-label {
  font-size: 0.72rem;
  color: var(--ll-text-muted);
  text-align: center;
}

/* Badge earned date */
.ll-badge-earned-date {
  font-size: 0.75rem;
  color: var(--ll-gold);
  margin-top: 0.5rem;
  font-weight: 600;
}
.ll-badge-earned-date i { margin-right: 0.3rem; }

/* Badges section labels */
.ll-badges-section-label {
  font-size: 0.9rem;
  color: var(--ll-text-muted);
  margin-bottom: 1.5rem;
}
.ll-badges-heading {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ll-gold);
  margin-bottom: 1rem;
  margin-top: 0;
}

/* Tab panel (content panes — light bg) */
.ll-tab-panel {
  padding-top: 0.25rem;
}

/* Tab bar strip */
.ll-tabs-bar {
  background: var(--ll-bg-secondary);
  border-bottom: 1px solid var(--ll-border);
  position: sticky;
  top: 0;
  z-index: 100;
}
.ll-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ll-border);
  color: var(--ll-text-muted);
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 100px;
  min-width: 20px;
  height: 20px;
  padding: 0 0.4rem;
  margin-left: 0.4rem;
}
.ll-tab.active .ll-tab-count {
  background: rgba(201,168,76,0.2);
  color: var(--ll-gold);
}
.ll-btn-link {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ll-gold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none;
}
.ll-btn-link:hover { color: var(--ll-gold-light); }

/* Badge cards */
.ll-badges-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1.25rem;
}
.ll-badge-card {
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius-lg);
  padding: 1.5rem;
  text-align: center;
  transition: var(--ll-transition);
}
.ll-badge-card-earned {
  border-color: var(--ll-gold-dark);
  background: rgba(201,168,76,0.05);
}
.ll-badge-card-locked { opacity: 0.7; filter: grayscale(0.8); }
.ll-badge-card-locked .ll-badge-card-name,
.ll-badge-card-locked .ll-badge-card-desc { color: #ffffff !important; }
.ll-badge-card-icon {
  position: relative;
  width: 64px;
  height: 64px;
  margin: 0 auto 0.75rem;
  font-size: 2.5rem;
  color: var(--ll-gold);
}
.ll-badge-card-icon img { width: 64px; height: 64px; object-fit: contain; }
.ll-badge-lock-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  font-size: 1.2rem;
  color: var(--ll-text-muted);
}
.ll-badge-card-name { font-size: 0.95rem; margin-bottom: 0.35rem; }
.ll-badge-card-desc { font-size: 0.8rem; color: var(--ll-text-muted); }

/* ============================================================
   LEADERBOARD PAGE
   ============================================================ */
.ll-leaderboard-hero { padding: 4rem 0 3rem; }
.ll-leaderboard-hero-stats {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 2rem;
}
.ll-hero-stat-pill {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--ll-border);
  border-radius: 100px;
  padding: 0.5rem 1.25rem;
  font-size: 0.9rem;
  color: var(--ll-text-muted);
}
.ll-hero-stat-pill i { color: var(--ll-gold); }
.ll-hero-stat-pill strong { color: var(--ll-text); }

.ll-tabs-center { justify-content: center; margin-bottom: 2.5rem; }

/* Leaderboard sticky tab bar */
.ll-lb-tab-bar {
  background: var(--ll-bg-secondary);
  border-bottom: 1px solid var(--ll-border);
  position: sticky;
  top: 0;
  z-index: 100;
}
.ll-lb-tab-bar .ll-container { display: flex; gap: 0; }
.ll-lb-tab {
  padding: 1rem 1.5rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ll-text-muted);
  border: none;
  background: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  font-family: var(--ll-font-body);
  transition: color 0.2s, border-color 0.2s;
  white-space: nowrap;
}
.ll-lb-tab:hover { color: var(--ll-text); }
.ll-lb-tab.active { color: var(--ll-gold); border-bottom-color: var(--ll-gold); }

/* Podium */
.ll-podium {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 1.5rem;
  padding: 3rem 0 2.5rem;
  flex-wrap: wrap;
}
.ll-podium-card {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  padding: 1.5rem 1.25rem;
  text-align: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
  transition: transform 0.2s;
  min-width: 160px;
}
.ll-podium-card:hover { transform: translateY(-4px); }
.ll-podium-first {
  border-color: var(--ll-gold);
  box-shadow: 0 8px 32px rgba(201,168,76,0.2);
  min-width: 200px;
}
.ll-podium-avatar {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ll-font-heading);
  font-weight: 700;
  margin: 0 auto 0.75rem;
  font-size: 1.2rem;
}
.ll-podium-gold   { background: linear-gradient(135deg, #A07830, #C9A84C); color: #111; }
.ll-podium-silver { background: linear-gradient(135deg, #777, #B0B0B0); color: #fff; }
.ll-podium-bronze { background: linear-gradient(135deg, #8B5A2B, #CD7F32); color: #fff; }
.ll-podium-rank   { font-size: 1.75rem; margin-bottom: 0.25rem; }
.ll-podium-name   { font-family: var(--ll-font-heading); font-size: 1rem; color: var(--ll-text-dark); font-weight: 600; }
.ll-podium-location { font-size: 0.75rem; color: var(--ll-text-dark-muted); margin: 0.2rem 0 0.75rem; }
.ll-podium-pts  { font-family: var(--ll-font-heading); font-size: 1.5rem; font-weight: 700; color: var(--ll-gold); }
.ll-podium-pts-label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ll-text-dark-muted); }
.ll-podium-badges { font-size: 0.78rem; color: var(--ll-text-dark-muted); margin-top: 0.4rem; }
.ll-podium-badges i { color: var(--ll-gold); margin-right: 0.3rem; }

/* Rankings header (title + search) */
.ll-rankings-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.ll-rankings-title {
  font-family: var(--ll-font-heading);
  font-size: 1.2rem;
  color: var(--ll-text-dark);
  margin: 0;
}
.ll-rankings-search { max-width: 240px; }
.ll-rankings-search .ll-search-input {
  background: #fff;
  border-color: var(--ll-border-light-mode);
  color: var(--ll-text-dark);
  width: 220px;
}

/* Table bordered wrapper */
.ll-table-wrap {
  overflow-x: auto;
  border-radius: var(--ll-radius-lg);
  border: 1px solid var(--ll-border-light-mode);
}

/* Table light-mode overrides */
.ll-section-light .ll-rankings-table thead th {
  border-bottom-color: var(--ll-border-light-mode);
  color: var(--ll-text-dark-muted);
}
.ll-section-light .ll-rank-row {
  border-bottom-color: rgba(0,0,0,0.06);
}
.ll-section-light .ll-rank-row:hover { background: #F8FBFF; }
.ll-section-light .ll-rank-row td { color: var(--ll-text-dark); }
.ll-section-light .ll-rank-you { background: rgba(201,168,76,0.06) !important; }

/* Avatar initials circle (table) */
.ll-rank-avatar-sm {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1A3048, #0D1B2A);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--ll-gold);
  flex-shrink: 0;
  border: 1px solid rgba(201,168,76,0.3);
}
.ll-rank-name { font-weight: 500; color: var(--ll-text-dark); }
.ll-rank-medal { font-size: 1.2rem; }
.ll-rank-muted { font-size: 0.85rem; color: var(--ll-text-dark-muted); }

/* Hide less important columns on smaller screens */
@media (max-width: 700px) {
  .ll-rank-col-location,
  .ll-rank-col-badges,
  .ll-rank-col-joined { display: none; }
}
@media (max-width: 600px) {
  .ll-podium { flex-direction: column; align-items: center; }
  .ll-podium-card { width: 100%; max-width: 280px; }
}

/* Rankings table */
.ll-rankings-table-wrap { overflow-x: auto; }
.ll-rankings-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.ll-rankings-table thead th {
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ll-text-muted);
  padding: 0.75rem 1rem;
  border-bottom: 2px solid var(--ll-border);
}
.ll-rank-row {
  border-bottom: 1px solid rgba(255,255,255,0.04);
  transition: var(--ll-transition);
}
.ll-rank-row:hover { background: rgba(255,255,255,0.03); }
.ll-rank-row td { padding: 0.9rem 1rem; vertical-align: middle; }
.ll-rank-top-1 { border-left: 3px solid #FFD700; }
.ll-rank-top-2 { border-left: 3px solid #C0C0C0; }
.ll-rank-top-3 { border-left: 3px solid #CD7F32; }
.ll-rank-you   { background: rgba(201,168,76,0.06) !important; }
.ll-rank-num { font-family: var(--ll-font-heading); font-size: 1.1rem; font-weight: 700; min-width: 50px; }
.ll-rank-member { display: flex; align-items: center; gap: 0.75rem; }
.ll-rank-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.ll-rank-pts { font-family: var(--ll-font-heading); font-weight: 700; color: var(--ll-gold); }
.ll-you-badge {
  display: inline-block;
  background: var(--ll-gold);
  color: var(--ll-bg);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.1rem 0.5rem;
  border-radius: 100px;
  margin-left: 0.5rem;
}

/* Points cards */
.ll-points-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1.25rem;
  margin-top: 1rem;
}
.ll-points-card {
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius-lg);
  padding: 1.5rem;
  text-align: center;
  transition: var(--ll-transition);
}
.ll-points-card:hover {
  border-color: var(--ll-gold-dark);
  transform: translateY(-2px);
}
.ll-points-card-icon { font-size: 2rem; color: var(--ll-gold); margin-bottom: 0.5rem; }
.ll-points-card-pts {
  font-family: var(--ll-font-heading);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ll-gold);
  margin-bottom: 0.5rem;
}
.ll-points-card h4 { font-size: 0.95rem; margin-bottom: 0.35rem; }
.ll-points-card p { font-size: 0.82rem; color: var(--ll-text-muted); margin: 0; }

/* ============================================================
   HOW IT WORKS (homepage)
   ============================================================ */
.ll-how-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 2rem;
  margin-top: 1rem;
}
.ll-how-step { text-align: center; }
.ll-how-icon {
  width: 64px;
  height: 64px;
  background: rgba(201,168,76,0.1);
  border: 1px solid rgba(201,168,76,0.25);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: var(--ll-gold);
  margin: 0 auto 1rem;
}
.ll-how-title { font-size: 1.15rem; margin-bottom: 0.5rem; }

/* Badges teaser (homepage) */
.ll-badges-teaser {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 4rem;
  align-items: center;
}
@media (max-width: 900px) {
  .ll-badges-teaser { grid-template-columns: 1fr; }
}
.ll-badges-preview { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.ll-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(201,168,76,0.1);
  border: 1px solid rgba(201,168,76,0.3);
  color: var(--ll-gold);
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.35rem 0.9rem;
  border-radius: 100px;
}
.ll-badge-pill.ll-badge-locked {
  background: rgba(255,255,255,0.04);
  border-color: var(--ll-border);
  color: var(--ll-text-dim);
}
.ll-podium-mini {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.75rem;
  height: 180px;
}
.ll-podium-mini-place { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.ll-podium-mini-avatar { font-size: 2rem; }
.ll-podium-mini-bar {
  width: 72px;
  background: linear-gradient(to top, var(--ll-gold-dark), var(--ll-gold));
  border-radius: var(--ll-radius) var(--ll-radius) 0 0;
  opacity: 0.6;
}
.ll-podium-mini-1 .ll-podium-mini-bar { opacity: 1; }

/* ============================================================
   CTA BANNER (homepage, leaderboard)
   ============================================================ */
.ll-cta-banner {
  background: linear-gradient(135deg, var(--ll-bg-secondary) 0%, #102030 100%);
  border-top: 1px solid var(--ll-border);
  padding: 5rem 0;
  text-align: center;
}
.ll-cta-inner h2 { font-size: clamp(1.75rem, 3.5vw, 2.75rem); margin-bottom: 0.75rem; }
.ll-cta-inner p { color: var(--ll-text-muted); margin-bottom: 2rem; font-size: 1.05rem; }
.ll-cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   PAGINATION
   ============================================================ */
.ll-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 3rem;
  flex-wrap: wrap;
}
.ll-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--ll-radius);
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  color: var(--ll-text-muted);
  font-size: 0.9rem;
  transition: var(--ll-transition);
  text-decoration: none;
}
.ll-pagination .page-numbers.current,
.ll-pagination .page-numbers:hover {
  background: var(--ll-gold);
  border-color: var(--ll-gold);
  color: var(--ll-bg);
}

/* ============================================================
   TOAST NOTIFICATION
   ============================================================ */
.ll-toast {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-gold);
  color: var(--ll-text);
  font-size: 0.9rem;
  padding: 0.75rem 1.25rem;
  border-radius: var(--ll-radius);
  box-shadow: var(--ll-shadow);
  z-index: 9999;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease;
  pointer-events: none;
}
.ll-toast.ll-toast-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================================
   SCROLL BAR
   ============================================================ */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--ll-bg); }
::-webkit-scrollbar-thumb {
  background: var(--ll-border-light);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover { background: var(--ll-gold-dark); }

/* ============================================================
   RESPONSIVE — TABLET (max 900px)
   ============================================================ */
@media (max-width: 900px) {

  /* Multi-column grids → single column */
  .ll-cigar-hero-grid,
  .ll-cigar-content-grid,
  .ll-badges-teaser        { grid-template-columns: 1fr; }

  /* Brand hero: stack image above text */
  .ll-brand-hero-inner     { grid-template-columns: 1fr; }
  .ll-brand-hero-logo      { max-width: 320px; }

  /* Cigar sidebar moves below content on tablet */
  .ll-cigar-sidebar        { order: -1; }

  /* Profile actions inline on tablet */
  .ll-profile-actions      { flex-direction: row; align-items: center; }

  /* Badges teaser: hide podium visual on small screens */
  .ll-badges-teaser-visual { display: none; }

  /* Footer: 2-column grid instead of 4 */
  .ll-footer-grid          { grid-template-columns: 1fr 1fr; gap: 2rem; }

  /* Brand grid: 2 columns on tablet */
  .ll-brands-grid          { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   RESPONSIVE — MOBILE (max 768px)
   ============================================================ */
@media (max-width: 768px) {

  /* All grids → single column */
  .ll-grid-3,
  .ll-grid-4,
  .ll-grid-2,
  .ll-brands-grid          { grid-template-columns: 1fr; }
  .ll-how-grid             { grid-template-columns: 1fr 1fr; }
  .ll-points-grid          { grid-template-columns: 1fr 1fr; }
  .ll-badges-grid          { grid-template-columns: 1fr 1fr; }

  /* Hero stats wrap */
  .ll-hero-stats           { flex-wrap: wrap; gap: 1.5rem; }
  .ll-leaderboard-hero-stats { flex-direction: column; align-items: flex-start; }

  /* Tabs: scrollable on mobile */
  .ll-tabs                 { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ll-tab                  { white-space: nowrap; }

  /* Profile header: stack vertically */
  .ll-profile-header-inner { flex-direction: column; align-items: flex-start; }
  .ll-profile-stats        { flex-wrap: wrap; gap: 1.25rem; }
  .ll-profile-actions      { width: 100%; flex-direction: row; }

  /* New profile hero layout */
  .ll-profile-top-row      { flex-direction: column; align-items: flex-start; }
  .ll-profile-action-btns  { width: 100%; }
  .ll-profile-hero-name    { font-size: 1.4rem; }

  /* Brand card list: full width already (flex column), just reduce padding */
  .ll-brand-card-full      { padding: 1rem; gap: 1rem; }
  .ll-brand-card-full-logo { width: 60px; height: 60px; }
  .ll-brand-card-full-desc { display: none; } /* hide description on mobile to keep cards compact */

  /* Cigar single: spec grid 2 columns */
  .ll-cigar-meta-grid      { grid-template-columns: 1fr 1fr; }

  /* Rankings table: hide Reviews column on mobile */
  .ll-rank-reviews         { display: none; }

  /* Footer: single column */
  .ll-footer-grid          { grid-template-columns: 1fr; }
  .ll-footer-bottom        { flex-direction: column; text-align: center; }

  /* Page header: less vertical padding */
  .ll-page-header          { padding: 2.5rem 0 2rem; }
  .ll-brand-hero           { padding: 2.5rem 0 2rem; }
  .ll-cigar-hero           { padding: 2.5rem 0; }
  .ll-profile-hero         { padding: 2rem 0; }
  .ll-section              { padding: 3.5rem 0; }

  /* CTA banner */
  .ll-cta-inner h2         { font-size: 1.6rem; }
  .ll-cta-banner           { padding: 3.5rem 0; }
}

/* ============================================================
   RESPONSIVE — SMALL MOBILE (max 480px)
   ============================================================ */
@media (max-width: 480px) {

  /* Buttons full width */
  .ll-hero-cta             { flex-direction: column; }
  .btn, .ll-btn            { width: 100%; justify-content: center; }
  .ll-cta-actions          { flex-direction: column; align-items: center; }

  /* Grids: true single column */
  .ll-how-grid,
  .ll-points-grid,
  .ll-badges-grid          { grid-template-columns: 1fr; }

  /* Brand cards: hide arrow icon */
  .ll-brand-card-full-arrow { display: none; }

  /* Cigar spec grid: single column on very small */
  .ll-cigar-meta-grid      { grid-template-columns: 1fr; }

  /* Breadcrumb: allow wrapping without separator bleeding */
  .ll-breadcrumb           { gap: 0.25rem; }

  /* Rankings table: compact */
  .ll-rank-row td          { padding: 0.7rem 0.5rem; }
  .ll-rank-avatar          { display: none; }

  /* Toast: full width bottom bar */
  .ll-toast {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    text-align: center;
  }
}

/* ============================================================
   HOMEPAGE — SECTION HEADER (eyebrow + title + divider + sub)
   ============================================================ */
.ll-section-header {
  text-align: center !important;
  max-width: 640px;
  margin: 0 auto 3rem !important;
}
.ll-eyebrow {
  display: block !important;
  text-align: center !important;
  font-family: var(--ll-font-body);
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ll-gold) !important;
  margin-bottom: 0.75rem;
}
.ll-gold-divider {
  width: 48px;
  height: 2px;
  background: var(--ll-gold) !important;
  border-radius: 2px;
  margin: 1rem 0 1.5rem;
}
.ll-gold-divider-center {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================
   HOMEPAGE — CIGAR CARDS (light-section variant)
   ============================================================ */
/* Image fills the top of the card */
.ll-cigar-card-img {
  width: 100%;
  aspect-ratio: 1 / 1;   /* square — handles any image orientation gracefully */
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Dark navy placeholder with brand name in gold — matches prototype */
.ll-cigar-card-dark-ph {
  aspect-ratio: 1 / 1;
  background: var(--ll-bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ll-font-heading);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--ll-gold);
  letter-spacing: 0.04em;
}

/* Light-background card variant (white sections) */
.ll-cigar-card-light {
  background: #ffffff !important;
  border-color: #dde6f0 !important;
  color: var(--ll-text-dark) !important;
  display: flex;
  flex-direction: column;
  height: 100%;             /* fill the grid cell so all cards in a row match */
  border: 1px solid #dde6f0;
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  transition: var(--ll-transition);
}
.ll-cigar-card-light:hover {
  border-color: var(--ll-gold-dark) !important;
  box-shadow: var(--ll-shadow-gold);
  transform: translateY(-3px);
}

/* Inner card text */
.ll-cigar-card-brand {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ll-gold);
  margin-bottom: 0.25rem;
}
.ll-cigar-card-name {
  font-family: var(--ll-font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ll-text-dark);
  line-height: 1.3;
  margin-bottom: 0.75rem;
  /* clamp to 2 lines so all cards stay the same height */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1rem * 1.3 * 2); /* reserve space for exactly 2 lines */
}
.ll-cigar-card-light .ll-cigar-card-name { color: var(--ll-text-dark); }

/* Meta row: stars + country */
.ll-cigar-card-meta {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.ll-stars {
  display: inline-flex;
  gap: 2px;
  color: var(--ll-gold);
  font-size: 0.78rem;
}
.ll-country-tag {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ll-text-muted);
  background: rgba(0,0,0,0.05);
  border: 1px solid #dde6f0;
  padding: 0.15rem 0.5rem;
  border-radius: 100px;
}
.ll-cigar-card-light .ll-country-tag {
  background: #eef3f8;
  color: var(--ll-text-dark-muted);
}

/* Card footer row */
.ll-cigar-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1.1rem;
  border-top: 1px solid #eef3f8;
  margin-top: auto;
}
.ll-cigar-card-light .ll-cigar-card-footer { border-top-color: #dde6f0; }

/* ============================================================
   CIGAR BROWSER (archive-cigar.php)
   ============================================================ */
.ll-cigar-browser-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.ll-cigar-browser-filters {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.75rem;
}

/* Force horizontal row — overrides GoDaddy/WP base CSS that sets select { display:block; width:100% } */
.ll-filter-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.75rem !important;
  flex-wrap: wrap !important;
}
.ll-filter-row select,
.ll-filter-row .ll-sort-select {
  width: auto !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
}

.ll-filter-clear {
  font-size: 0.82rem;
  color: var(--ll-text-dark-muted);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.4rem 0.75rem;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius);
  transition: var(--ll-transition);
}
.ll-filter-clear:hover { border-color: var(--ll-gold); color: var(--ll-gold); }

/* Responsive: 3 cols → 2 cols → 1 col */
@media (max-width: 1100px) {
  .ll-cigar-browser-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .ll-cigar-browser-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .ll-filter-row { flex-direction: column; align-items: stretch; }
  .ll-filter-row .ll-sort-select { width: 100%; }
}
@media (max-width: 480px) {
  .ll-cigar-browser-grid { grid-template-columns: 1fr; }
}

.ll-view-link {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ll-gold);
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: color 0.2s;
}
.ll-view-link:hover { color: var(--ll-gold-light); }

.ll-wishlist-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ll-text-muted);
  font-size: 1rem;
  padding: 0;
  line-height: 1;
  transition: color 0.2s;
}
.ll-wishlist-btn:hover,
.ll-wishlist-btn.active { color: var(--ll-accent); }
.ll-wishlist-btn.active i::before { content: "\f004"; font-weight: 900; } /* solid heart */

/* ============================================================
   HOMEPAGE — FEATURE CARDS (How It Works)
   ============================================================ */
.ll-feature-card {
  background: #ffffff !important;
  border: 1px solid #dde6f0 !important;
  border-radius: var(--ll-radius-lg) !important;
  padding: 2rem 1.75rem !important;
  transition: var(--ll-transition);
}
.ll-feature-card:hover {
  border-color: rgba(201,168,76,0.4) !important;
  box-shadow: 0 4px 20px rgba(201,168,76,0.08) !important;
  transform: translateY(-2px);
}
.ll-feature-icon {
  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;
  background: rgba(201,168,76,0.1) !important;
  border: 1px solid rgba(201,168,76,0.25) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.2rem !important;
  color: var(--ll-gold) !important;
  margin-bottom: 1.25rem !important;
}
.ll-feature-card h4 {
  font-family: var(--ll-font-heading);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ll-text-dark) !important;
  margin-bottom: 0.6rem;
}
.ll-feature-card p {
  font-size: 0.88rem;
  line-height: 1.7;
  color: var(--ll-text-dark-muted) !important;
  margin: 0;
}

/* ============================================================
   HOMEPAGE — BUILD YOUR REPUTATION SECTION
   ============================================================ */
.ll-reputation-section {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 4rem;
  align-items: center;
}
@media (max-width: 900px) {
  .ll-reputation-section { grid-template-columns: 1fr !important; gap: 2.5rem; }
}
.ll-reputation-text {
  text-align: left !important;
}
.ll-reputation-text .ll-eyebrow {
  text-align: left !important;
}
.ll-reputation-text h2 {
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-family: var(--ll-font-heading) !important;
  text-align: left !important;
  margin-bottom: 0;
}
.ll-reputation-text p {
  text-align: left !important;
}
.ll-reputation-text .ll-gold-divider {
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* 2x2 card grid on the right */
.ll-reputation-cards {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
}

/* Earned badge variant */
.ll-badge-pill.ll-badge-earned {
  background: rgba(201,168,76,0.15);
  border-color: rgba(201,168,76,0.5);
  color: var(--ll-gold);
}

/* ============================================================
   RESPONSIVE — homepage additions
   ============================================================ */
@media (max-width: 640px) {
  .ll-reputation-cards { grid-template-columns: 1fr; }
  .ll-cigar-card-dark-ph { height: 140px; font-size: 0.95rem; }
}

/* ============================================================
   LOUNGE DIRECTORY (page-lounges.php)
   ============================================================ */

/* Hero search bar */
.ll-lounge-search-wrap { max-width: 680px; margin: 0 auto; }
.ll-lounge-search-inner {
  display: flex;
  gap: 0;
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  border: 1.5px solid var(--ll-gold);
  box-shadow: 0 8px 32px rgba(201,168,76,0.15);
}

/* Map placeholder */
.ll-map-placeholder {
  background: var(--ll-bg-light-secondary);
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  height: 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 2rem;
  color: var(--ll-gold);
}
.ll-map-placeholder i { font-size: 2.5rem; }
.ll-map-placeholder span { font-weight: 600; color: var(--ll-text-dark-muted); font-size: 0.95rem; }
.ll-map-placeholder p { font-size: 0.8rem; opacity: 0.5; text-align: center; max-width: 300px; line-height: 1.5; color: var(--ll-text-dark-muted); margin: 0; }

/* Filter bar */
.ll-lounge-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
  padding: 1rem 1.25rem;
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
}
.ll-filter-pills { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; }
.ll-filter-pill {
  background: transparent;
  border: 1px solid var(--ll-border-light-mode);
  color: var(--ll-text-dark-muted);
  font-size: 0.8rem;
  font-weight: 500;
  padding: 0.35rem 0.85rem;
  border-radius: 100px;
  cursor: pointer;
  transition: all 0.2s;
  font-family: var(--ll-font-body);
}
.ll-filter-pill:hover { border-color: var(--ll-gold); color: var(--ll-gold); }
.ll-filter-pill-active {
  background: var(--ll-gold);
  border-color: var(--ll-gold);
  color: #0D1B2A;
  font-weight: 600;
}

/* Lounge grid */
.ll-lounge-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
@media (max-width: 1024px) { .ll-lounge-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .ll-lounge-grid { grid-template-columns: 1fr; } }

/* Lounge card */
.ll-lounge-card {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, transform 0.2s;
}
.ll-lounge-card:hover { box-shadow: var(--ll-shadow-gold); transform: translateY(-3px); }
.ll-lounge-card-img { width: 100%; height: 160px; object-fit: cover; display: block; }
.ll-lounge-card-body { padding: 1rem; flex: 1; display: flex; flex-direction: column; gap: 0.35rem; }
.ll-lounge-card-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.25rem; }
/* 1. Font fix — force Playfair Display */
.ll-lounge-name {
  font-family: var(--ll-font-heading) !important;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ll-text-dark) !important;
  text-decoration: none;
  line-height: 1.3;
}
.ll-lounge-name:hover { color: var(--ll-gold) !important; }
.ll-lounge-address,
.ll-lounge-hours,
.ll-lounge-phone {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  color: var(--ll-text-dark-muted);
  line-height: 1.5;
}
.ll-lounge-address i { color: var(--ll-gold); margin-top: 0.15rem; flex-shrink: 0; }
.ll-lounge-hours i,
.ll-lounge-phone i { color: var(--ll-text-dark-muted); flex-shrink: 0; }

/* 3. Open/Closed badge */
.ll-status-badge {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 0.25rem 0.65rem;
  border-radius: 100px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--ll-font-body);
}
.ll-status-open  { background: rgba(34,197,94,0.1); color: #16a34a; border: 1px solid rgba(34,197,94,0.25); }
.ll-status-open i  { color: #22c55e; font-size: 0.45rem; }
.ll-status-closed { background: rgba(239,68,68,0.08); color: #dc2626; border: 1px solid rgba(239,68,68,0.2); }
.ll-status-closed i { color: #ef4444; font-size: 0.45rem; }

/* 1. Social icons — reset inherited link/box styles */
.ll-lounge-social { display: flex; gap: 0.85rem; margin: 0.25rem 0; align-items: center; }
.ll-lounge-social a {
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
  color: var(--ll-text-dark-muted) !important;
  font-size: 1rem;
  transition: color 0.2s;
  display: inline-flex;
  align-items: center;
}
.ll-lounge-social a:hover { color: var(--ll-gold) !important; }

/* Feature tags */
.ll-lounge-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.25rem; }
.ll-lounge-tag {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ll-gold);
  background: rgba(201,168,76,0.08);
  border: 1px solid rgba(201,168,76,0.25);
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
}

/* Card footer */
.ll-lounge-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.875rem 1.25rem;
  border-top: 1px solid var(--ll-border-light-mode);
  background: var(--ll-bg-light-secondary);
}
/* 4. Rating — stars + score on line 1, reviews count on line 2 */
.ll-lounge-rating {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.ll-lounge-rating-top {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  color: var(--ll-text-dark);
  font-weight: 600;
}
.ll-lounge-rating-top .ll-stars { color: var(--ll-gold); font-size: 0.75rem; }
.ll-lounge-rating-reviews {
  font-size: 0.75rem;
  color: var(--ll-text-dark-muted);
}

/* Submit CTA box */
.ll-lounge-submit-cta {
  margin-top: 4rem;
  padding: 2.5rem;
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* ============================================================
   ABOUT PAGE (page-about.php)
   ============================================================ */

/* Mission two-column grid */
.ll-about-mission-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}
@media (max-width: 900px) {
  .ll-about-mission-grid { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* Mission text column */
.ll-about-mission-text h2 { margin-bottom: 0; color: var(--ll-text-dark) !important; }
.ll-about-mission-text p  {
  color: var(--ll-text-dark-muted) !important;
  line-height: 1.8;
  margin-bottom: 1.25rem;
}
.ll-about-mission-text .ll-gold-divider { margin-left: 0; margin-right: auto; }
/* Force eyebrow left-aligned in mission column */
.ll-about-mission-text .ll-eyebrow { text-align: left !important; }

/* Stat cards column */
.ll-about-stats {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.ll-about-stat-card {
  background: var(--ll-bg-secondary);      /* dark navy — matches prototype */
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius-lg);
  padding: 2rem 1.75rem;
  text-align: center;
  transition: border-color 0.25s, box-shadow 0.25s;
}
.ll-about-stat-card:hover {
  border-color: rgba(201,168,76,0.4);
  box-shadow: 0 8px 40px rgba(201,168,76,0.12);
}
.ll-about-stat-num {
  font-family: var(--ll-font-heading) !important;
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--ll-gold) !important;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.ll-about-stat-label {
  font-size: 0.88rem;
  color: var(--ll-text-muted);             /* light muted — for dark card bg */
  line-height: 1.5;
}

/* Value cards (dark section) */
.ll-value-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--ll-border-light);
  border-radius: var(--ll-radius-lg);
  padding: 2.5rem 2rem;
  position: relative;
  transition: border-color 0.25s;
}
.ll-value-card:hover { border-color: rgba(201,168,76,0.35); }
.ll-value-quote {
  font-family: var(--ll-font-heading);
  font-size: 5rem;
  color: var(--ll-gold);
  opacity: 0.15;
  line-height: 0.8;
  margin-bottom: 1rem;
  display: block;
}
.ll-value-card h3 {
  font-size: 1.3rem;
  color: var(--ll-text);
  margin-bottom: 0.75rem;
}
.ll-value-card p {
  font-size: 0.92rem;
  color: var(--ll-text-muted);
  line-height: 1.7;
  margin-bottom: 0;
}

/* ============================================================
   BLOG PAGE (home.php)
   ============================================================ */

/* Two-column layout: posts + sidebar */
.ll-blog-layout {
  max-width: 1100px;
  margin: 0 auto;
  padding: 3.5rem 1.5rem 5rem;
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
}

/* ── Blog post card ──────────────────────────────────────── */
.ll-blog-card {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 1.75rem;
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  margin-bottom: 1.5rem;
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
.ll-blog-card:hover {
  border-color: var(--ll-gold);
  box-shadow: 0 6px 32px rgba(201,168,76,0.12);
}
.ll-blog-card-img {
  width: 100%;
  height: 100%;
  min-height: 180px;
  object-fit: cover;
  display: block;
}
.ll-blog-card-body {
  padding: 1.5rem 1.5rem 1.5rem 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Category pill */
.ll-blog-category {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111;
  background: var(--ll-gold);
  padding: 0.25rem 0.7rem;
  border-radius: 100px;
  margin-bottom: 0.75rem;
}

/* Post title */
.ll-blog-title {
  display: block;
  font-family: var(--ll-font-heading) !important;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--ll-text-dark) !important;
  line-height: 1.35;
  margin-bottom: 0.6rem;
  text-decoration: none;
  transition: color 0.2s;
}
.ll-blog-title:hover { color: var(--ll-gold-dark) !important; }

/* Excerpt */
.ll-blog-excerpt {
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
  line-height: 1.7;
  margin-bottom: 1rem;
}

/* Meta row: avatar + author + date */
.ll-blog-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.8rem;
  color: var(--ll-text-dark-muted);
  margin-bottom: 0;
}
.ll-blog-meta-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 700;
  color: #111;
  flex-shrink: 0;
}
/* WordPress avatar image override */
.ll-blog-meta img.avatar,
.ll-blog-avatar {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  flex-shrink: 0;
}

/* Read More link */
.ll-blog-read-more {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ll-gold-dark);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.75rem;
  text-decoration: none;
  transition: color 0.2s;
}
.ll-blog-read-more:hover { color: var(--ll-gold); }

/* Pagination */
.ll-blog-pagination {
  margin-top: 2rem;
}
.ll-blog-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 0.5rem;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius);
  font-size: 0.85rem;
  color: var(--ll-text-dark-muted);
  text-decoration: none;
  margin: 0 0.2rem;
  background: #fff;
  transition: all 0.2s;
}
.ll-blog-pagination .page-numbers:hover,
.ll-blog-pagination .page-numbers.current {
  background: var(--ll-gold);
  border-color: var(--ll-gold);
  color: #111;
  font-weight: 700;
}

/* ── Sidebar ─────────────────────────────────────────────── */
.ll-blog-sidebar { position: sticky; top: 90px; }

.ll-sidebar-widget {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}
.ll-sidebar-widget-title {
  font-family: var(--ll-font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ll-gold-dark);
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--ll-border-light-mode);
}

/* Popular posts */
.ll-popular-post {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--ll-border-light-mode);
}
.ll-popular-post:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ll-popular-post-thumb {
  width: 56px;
  height: 42px;
  border-radius: 6px;
  object-fit: cover;
  flex-shrink: 0;
}
.ll-popular-post-title {
  font-size: 0.83rem;
  font-weight: 600;
  color: var(--ll-text-dark);
  line-height: 1.4;
  text-decoration: none;
  transition: color 0.2s;
}
.ll-popular-post-title:hover { color: var(--ll-gold-dark); }

/* Category list */
.ll-category-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ll-category-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--ll-border-light-mode);
  font-size: 0.88rem;
}
.ll-category-list li:last-child { border-bottom: none; }
.ll-category-list a {
  color: var(--ll-text-dark-muted);
  text-decoration: none;
  transition: color 0.2s;
}
.ll-category-list a:hover { color: var(--ll-gold-dark); }
.ll-category-count {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ll-text-dark-muted);
  background: var(--ll-bg-light-secondary);
  padding: 0.15rem 0.5rem;
  border-radius: 100px;
}

/* Subscribe widget */
.ll-subscribe-input {
  width: 100%;
  background: #F0F4F8;
  border: 1.5px solid var(--ll-border-light-mode);
  border-radius: 8px;
  padding: 0.7rem 0.9rem;
  font-size: 0.88rem;
  color: var(--ll-text-dark);
  outline: none;
  margin-bottom: 0.6rem;
  transition: border-color 0.2s;
  font-family: var(--ll-font-body);
  box-sizing: border-box;
}
.ll-subscribe-input:focus { border-color: var(--ll-gold); }
.ll-subscribe-btn { width: 100%; justify-content: center; }

/* Featured cigar mini */
.ll-featured-cigar-mini {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

/* Homepage blog card grid */
.ll-blog-home-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
}
@media (max-width: 900px) {
  .ll-blog-home-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .ll-blog-home-grid { grid-template-columns: 1fr; }
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 900px) {
  .ll-blog-layout {
    grid-template-columns: 1fr;
    padding: 2.5rem 1.25rem 4rem;
  }
  .ll-blog-sidebar { position: static; }
  .ll-blog-card {
    grid-template-columns: 1fr;
  }
  .ll-blog-card-img {
    min-height: 200px;
    max-height: 220px;
    width: 100%;
  }
  .ll-blog-card-body {
    padding: 1.25rem;
  }
}

/* ============================================================
   AUTH PAGES — Login / Register (page-login.php, page-register.php)
   ============================================================ */

/* Two-column layout: 40% navy left + 60% light right */
.ll-auth-layout {
  display: grid;
  grid-template-columns: 40% 60%;
  min-height: calc(100vh - 72px); /* 72px = navbar height */
}

/* ── Left panel ──────────────────────────────────────────── */
.ll-auth-panel-left {
  background: linear-gradient(160deg, #0D1B2A, #060C14);
  padding: 3.5rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Logo in left panel */
.ll-auth-logo {
  font-family: var(--ll-font-heading) !important;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--ll-gold) !important;
  letter-spacing: 0.02em;
  display: block;
  margin-bottom: 0.5rem;
  text-decoration: none;
}
.ll-auth-logo span { font-style: italic; }

.ll-auth-tagline {
  font-style: italic;
  color: var(--ll-text-muted);
  font-size: 0.95rem;
  margin-bottom: 2.5rem;
}

/* Benefits checklist */
.ll-auth-benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ll-auth-benefits li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.93rem;
  color: var(--ll-text);
  line-height: 1.5;
}
.ll-auth-benefits li i {
  color: var(--ll-gold);
  margin-top: 0.2rem;
  flex-shrink: 0;
}

/* Testimonial */
.ll-auth-testimonial {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 1.75rem;
}
.ll-auth-testimonial blockquote {
  font-style: italic;
  font-size: 0.9rem;
  color: var(--ll-text-muted);
  line-height: 1.7;
  margin: 0 0 0.6rem;
}
.ll-auth-testimonial cite {
  font-size: 0.78rem;
  color: var(--ll-gold);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-style: normal;
}

/* ── Right panel ─────────────────────────────────────────── */
.ll-auth-panel-right {
  background: var(--ll-bg-light);
  padding: 3.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Inner form wrapper — constrained width */
.ll-auth-form-wrap {
  max-width: 420px;
  width: 100%;
  margin: 0 auto;
}

/* Form heading + subtext */
.ll-auth-form-heading {
  font-family: var(--ll-font-heading) !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--ll-text-dark) !important;
  margin-bottom: 0.3rem;
}
.ll-auth-form-sub {
  font-size: 0.9rem;
  color: var(--ll-text-dark-muted);
  margin-bottom: 2rem;
}

/* Error banner */
.ll-auth-error-msg {
  background: rgba(201,76,76,0.08);
  border: 1px solid rgba(201,76,76,0.3);
  border-radius: var(--ll-radius);
  padding: 0.85rem 1rem;
  font-size: 0.88rem;
  color: #b91c1c;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

/* Form field group */
.ll-auth-form-group { margin-bottom: 1.25rem; }
.ll-auth-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4A5A6A;
  margin-bottom: 0.4rem;
}

/* Input fields */
.ll-auth-input {
  width: 100%;
  background: #F0F4F8;
  border: 1.5px solid #C8D8E8;
  border-radius: 8px;
  padding: 0.85rem 1rem;
  font-size: 0.95rem;
  color: var(--ll-text-dark);
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  font-family: var(--ll-font-body);
  box-sizing: border-box;
}
.ll-auth-input:focus {
  border-color: var(--ll-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.12);
}
.ll-auth-input-error {
  border-color: #C94C4C !important;
  box-shadow: 0 0 0 3px rgba(201,76,76,0.12) !important;
}

/* Password show/hide */
.ll-password-wrap { position: relative; }
.ll-password-wrap .ll-auth-input { padding-right: 3rem; }
.ll-password-toggle {
  position: absolute;
  right: 0.9rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: #8A9BAD;
  cursor: pointer;
  font-size: 0.9rem;
  padding: 0;
  line-height: 1;
}
.ll-password-toggle:hover { color: var(--ll-gold); }

/* Inline field error */
.ll-field-error {
  font-size: 0.75rem;
  color: #C94C4C;
  margin-top: 0.3rem;
  display: none;
}

/* Remember me + forgot password row */
.ll-auth-checkbox-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.ll-auth-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--ll-text-dark-muted);
  cursor: pointer;
}
.ll-auth-checkbox input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--ll-gold);
  cursor: pointer;
}
.ll-forgot-link {
  font-size: 0.82rem;
  color: var(--ll-gold);
  font-weight: 600;
  text-decoration: none;
}
.ll-forgot-link:hover { text-decoration: underline; }

/* Full-width sign in button */
.ll-auth-btn-full {
  width: 100%;
  justify-content: center;
  padding: 0.95rem 1.6rem !important;
  font-size: 1rem !important;
}

/* "or" divider */
.ll-auth-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.25rem 0;
  font-size: 0.82rem;
  color: #8A9BAD;
}
.ll-auth-divider::before,
.ll-auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #C8D8E8;
}

/* Sign-up / sign-in link below form */
.ll-auth-signup-link {
  text-align: center;
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
}
.ll-auth-signup-link a {
  color: var(--ll-gold);
  font-weight: 600;
  text-decoration: none;
}
.ll-auth-signup-link a:hover { text-decoration: underline; }

/* Two-column name row (register form) */
.ll-auth-form-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
}
@media (max-width: 480px) {
  .ll-auth-form-row { grid-template-columns: 1fr !important; }
}

/* Terms checkbox row */
.ll-auth-terms-row {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: var(--ll-text-dark-muted);
  cursor: pointer;
  line-height: 1.5;
  margin-bottom: 1.25rem;
}
.ll-auth-terms-row input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--ll-gold);
  cursor: pointer;
  flex-shrink: 0;
  margin-top: 0.15rem;
}
.ll-auth-terms-row a { color: var(--ll-gold); text-decoration: none; }
.ll-auth-terms-row a:hover { text-decoration: underline; }

/* Ultimate Member override — keep UM form inside our layout */
.ll-auth-form-wrap .um-form { max-width: 100% !important; margin: 0 !important; }
.ll-auth-form-wrap .um .um-field-label label { font-size: 0.72rem !important; font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; color: #4A5A6A !important; }
.ll-auth-form-wrap .um .um-field-area input { background: #F0F4F8 !important; border: 1.5px solid #C8D8E8 !important; border-radius: 8px !important; font-size: 0.95rem !important; color: var(--ll-text-dark) !important; }
.ll-auth-form-wrap .um .um-field-area input:focus { border-color: var(--ll-gold) !important; box-shadow: 0 0 0 3px rgba(201,168,76,0.12) !important; }
.ll-auth-form-wrap .um .um-button { background: var(--ll-gold) !important; color: #0D1B2A !important; font-family: var(--ll-font-body) !important; font-weight: 700 !important; border-radius: var(--ll-radius) !important; width: 100% !important; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .ll-auth-layout       { grid-template-columns: 1fr; }
  .ll-auth-panel-left   { display: none; }  /* hide navy panel on mobile */
  .ll-auth-panel-right  { padding: 2rem 1.5rem; min-height: calc(100vh - 72px); }
}

/* ============================================================
   SUBMIT A CIGAR (page-submit-cigar.php)
   ============================================================ */

/* Two-column layout: form (wide) + sidebar */
.ll-submit-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 900px) {
  .ll-submit-layout { grid-template-columns: 1fr; }
  .ll-submit-sidebar { order: -1; }
}

/* ── Form sections ───────────────────────────────────────── */
.ll-submit-section {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  padding: 2rem;
  margin-bottom: 1.5rem;
}
.ll-submit-section-title {
  font-family: var(--ll-font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ll-gold) !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 0.85rem !important;
  border-bottom: 1px solid var(--ll-border-light-mode) !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
}
.ll-submit-optional {
  font-size: 0.68rem;
  color: var(--ll-text-dark-muted);
  background: var(--ll-bg-light-secondary);
  border: 1px solid var(--ll-border-light-mode);
  padding: 0.15rem 0.55rem;
  border-radius: 100px;
  letter-spacing: 0.06em;
  font-weight: 500;
}

/* Field grid layouts */
.ll-submit-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
.ll-submit-row-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 680px) {
  .ll-submit-row-2,
  .ll-submit-row-3 { grid-template-columns: 1fr; }
}

/* Individual field */
.ll-submit-field { margin-bottom: 1rem; }
.ll-submit-field:last-child { margin-bottom: 0; }

/* Label */
.ll-submit-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #4A5A6A;
  margin-bottom: 0.4rem;
}
.ll-required { color: var(--ll-gold); font-weight: 700; }

/* Text inputs */
.ll-submit-input {
  width: 100%;
  background: #F7F9FC;
  border: 1.5px solid #C8D8E8;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  font-size: 0.92rem;
  color: var(--ll-text-dark);
  font-family: var(--ll-font-body);
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  box-sizing: border-box;
}
.ll-submit-input:focus {
  border-color: var(--ll-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.12);
  background: #fff;
}
.ll-submit-input-error {
  border-color: #C94C4C !important;
  box-shadow: 0 0 0 3px rgba(201,76,76,0.1) !important;
}
.ll-submit-input::placeholder { color: #A0B0C0; }

/* Selects */
.ll-submit-select {
  width: 100% !important;
  background: #F7F9FC !important;
  border: 1.5px solid #C8D8E8 !important;
  border-radius: 8px !important;
  padding: 0.75rem 1rem !important;
  font-size: 0.92rem !important;
  color: var(--ll-text-dark) !important;
  font-family: var(--ll-font-body) !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  outline: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  appearance: auto !important;
}
.ll-submit-select:focus {
  border-color: var(--ll-gold) !important;
  box-shadow: 0 0 0 3px rgba(201,168,76,0.12) !important;
  background: #fff !important;
}

/* Textarea */
.ll-submit-textarea {
  width: 100%;
  background: #F7F9FC;
  border: 1.5px solid #C8D8E8;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  font-size: 0.92rem;
  color: var(--ll-text-dark);
  font-family: var(--ll-font-body);
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  resize: vertical;
  min-height: 100px;
  box-sizing: border-box;
  line-height: 1.6;
}
.ll-submit-textarea:focus {
  border-color: var(--ll-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.12);
  background: #fff;
}
.ll-submit-textarea::placeholder { color: #A0B0C0; }

/* ── Star picker ─────────────────────────────────────────── */
.ll-star-picker {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.ll-star-btn {
  background: none !important;
  border: none !important;
  padding: 0.15rem !important;
  cursor: pointer !important;
  font-size: 1.3rem !important;
  color: #C8D8E8 !important;
  line-height: 1 !important;
  transition: color 0.15s, transform 0.15s !important;
}
.ll-star-btn:hover,
.ll-star-btn.ll-star-active { color: var(--ll-gold) !important; transform: scale(1.15); }
.ll-star-label {
  font-size: 0.82rem;
  color: var(--ll-text-dark-muted);
  margin-left: 0.5rem;
  font-style: italic;
}

/* Privacy note */
.ll-submit-privacy-note {
  font-size: 0.78rem;
  color: var(--ll-text-dark-muted);
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

/* ── Sidebar cards ───────────────────────────────────────── */
.ll-submit-info-card {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  padding: 1.5rem;
  margin-bottom: 1.25rem;
}
.ll-submit-info-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0D1B2A !important;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--ll-border-light-mode);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.ll-submit-info-title i {
  color: #A07830 !important;
}

/* How it works steps */
.ll-submit-steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ll-submit-steps li {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
}
.ll-step-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--ll-gold);
  color: #0D1B2A;
  font-size: 0.72rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.ll-submit-steps li strong {
  display: block;
  font-size: 0.88rem;
  color: var(--ll-text-dark);
  margin-bottom: 0.2rem;
}
.ll-submit-steps li p {
  font-size: 0.82rem;
  color: var(--ll-text-dark-muted);
  line-height: 1.5;
  margin: 0;
}

/* Guidelines list */
.ll-submit-guidelines {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.ll-submit-guidelines li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: var(--ll-text-dark-muted);
  line-height: 1.4;
}
.ll-submit-guidelines li i { color: var(--ll-gold); flex-shrink: 0; margin-top: 0.15rem; font-size: 0.75rem; }

/* ── Success state ───────────────────────────────────────── */
.ll-submit-success {
  text-align: center;
  padding: 4rem 2rem;
  max-width: 560px;
  margin: 0 auto;
}
.ll-submit-success-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(34,197,94,0.1);
  border: 2px solid rgba(34,197,94,0.3);
  color: #16a34a;
  font-size: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
}

/* ============================================================
   SUBMIT A LOUNGE — extra components (page-submit-lounge.php)
   ============================================================ */

/* Amenity checkbox grid */
.ll-amenity-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.6rem;
}
@media (max-width: 480px) { .ll-amenity-grid { grid-template-columns: 1fr; } }

.ll-amenity-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.7rem 1rem;
  border: 1.5px solid var(--ll-border-light-mode);
  border-radius: 8px;
  font-size: 0.875rem;
  color: var(--ll-text-dark-muted);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
  background: #F7F9FC;
  user-select: none;
}
.ll-amenity-item:hover {
  border-color: var(--ll-gold);
  color: var(--ll-text-dark);
}
.ll-amenity-item input[type="checkbox"] {
  display: none; /* hidden — visual state handled by class */
}
.ll-amenity-item i {
  font-size: 0.9rem;
  color: var(--ll-text-dark-muted);
  width: 16px;
  text-align: center;
  flex-shrink: 0;
  transition: color 0.2s;
}
.ll-amenity-checked {
  background: rgba(201,168,76,0.08) !important;
  border-color: var(--ll-gold) !important;
  color: var(--ll-text-dark) !important;
}
.ll-amenity-checked i { color: var(--ll-gold) !important; }

/* Social media @ prefix inputs */
.ll-social-prefix {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
  pointer-events: none;
  font-weight: 600;
}
.ll-submit-input-social    { padding-left: 1.75rem !important; }
.ll-submit-input-social-fb { padding-left: 4.25rem !important; }

/* ============================================================
   GENERIC PAGE TEMPLATE (page.php)
   Used by: Privacy Policy, Terms of Service, any static pages
   ============================================================ */

.ll-page-header-light {
  background: var(--ll-bg-secondary) !important;
  padding: 4rem 0 3rem !important;
}
.ll-page-title-dark {
  color: var(--ll-text) !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  margin-bottom: 0.75rem !important;
}

/* Prose content wrapper — clean typography for long-form pages */
.ll-prose-wrap {
  max-width: 780px;
  margin: 0 auto;
  color: var(--ll-text-dark) !important;
  font-size: 1.05rem;
  line-height: 1.8;
}
.ll-prose-wrap h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.6rem;
  color: var(--ll-text-dark) !important;
  margin: 2.5rem 0 0.75rem;
}
.ll-prose-wrap h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  color: var(--ll-text-dark) !important;
  margin: 2rem 0 0.5rem;
}
.ll-prose-wrap p {
  margin-bottom: 1.25rem;
  color: var(--ll-text-dark) !important;
}
.ll-prose-wrap ul,
.ll-prose-wrap ol {
  padding-left: 1.5rem;
  margin-bottom: 1.25rem;
  color: var(--ll-text-dark) !important;
}
.ll-prose-wrap li {
  margin-bottom: 0.5rem;
}
.ll-prose-wrap a {
  color: var(--ll-gold) !important;
  text-decoration: underline;
}
.ll-prose-wrap a:hover {
  color: var(--ll-gold-dark) !important;
}
.ll-prose-wrap hr {
  border: none;
  border-top: 1px solid var(--ll-border-light-mode);
  margin: 2.5rem 0;
}
.ll-prose-wrap strong {
  color: var(--ll-text-dark) !important;
  font-weight: 700;
}

/* WordPress default editor block alignment fixes */
.ll-prose-wrap .wp-block-image {
  margin: 2rem 0;
}
.ll-prose-wrap blockquote {
  border-left: 3px solid var(--ll-gold);
  padding-left: 1.25rem;
  margin: 1.5rem 0;
  font-style: italic;
  color: var(--ll-text-dark-muted) !important;
}

/* ============================================================
   404 PAGE
   ============================================================ */

/* WordPress default search form on the 404 page */
.search-form {
  display: flex;
  gap: 0.5rem;
}
.search-form .search-field {
  flex: 1;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.08);
  color: #fff;
  font-size: 0.95rem;
}
.search-form .search-field::placeholder {
  color: rgba(255,255,255,0.4);
}
.search-form .search-submit {
  padding: 0.75rem 1.25rem;
  border-radius: 6px;
  background: var(--ll-gold);
  color: var(--ll-bg);
  border: none;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background 0.2s;
}
.search-form .search-submit:hover {
  background: var(--ll-gold-light);
}

/* ============================================================
   LOUNGE DIRECTORY — GEODIRECTORY INTEGRATION
   ============================================================ */

/* Search wrap */
.ll-gd-search-wrap {
  max-width: 680px;
  margin: 0 auto;
}
.ll-gd-search-wrap .geodir-search,
.ll-gd-search-wrap form {
  background: transparent !important;
  padding: 0 !important;
}

/* Map */
.ll-gd-map-wrap {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 2.5rem;
  border: 1px solid var(--ll-border-light-mode);
}
.ll-gd-map-wrap .geodir-map-canvas,
.ll-gd-map-wrap .gd-bubble-map-wrap {
  border-radius: 12px;
}

/* Listings grid — let GeoDirectory handle layout */
.ll-gd-listings-wrap {
  margin-bottom: 3rem;
}

/* Empty state */
.ll-lounges-empty {
  text-align: center;
  padding: 5rem 2rem;
  color: var(--ll-text-dark-muted);
}
.ll-lounges-empty i {
  font-size: 3rem;
  color: var(--ll-gold);
  margin-bottom: 1rem;
  display: block;
  opacity: 0.5;
}
.ll-lounges-empty h3 {
  font-family: var(--ll-font-heading);
  color: var(--ll-text-dark);
  margin-bottom: 0.5rem;
}
.ll-lounges-empty p {
  margin-bottom: 1.5rem;
  font-size: 0.95rem;
}

/* ============================================================
   WP REVIEW PRO — COMMENT FORM STYLING
   ============================================================ */

/* Hide the default "Leave a Reply" / "Leave a comment" heading WP outputs */
.ll-review-form-wrap #reply-title,
.ll-review-form-wrap .comment-reply-title {
  display: none !important;
}

/* Our custom form title */
.ll-review-form-title {
  font-family: var(--ll-font-heading) !important;
  font-size: 1.4rem !important;
  color: var(--ll-text-dark) !important;
  margin-bottom: 0.25rem !important;
  font-weight: 700 !important;
}

/* WP Review Pro form wrapper */
#commentform,
.wpdiscuz-form,
.comment-form {
  background: transparent !important;
  padding: 0 !important;
}

/* All inputs, textareas, selects inside the review form */
#commentform input[type="text"],
#commentform input[type="email"],
#commentform input[type="url"],
#commentform textarea,
.comment-form input[type="text"],
.comment-form textarea {
  width: 100% !important;
  background: #fff !important;
  border: 1px solid var(--ll-border-light-mode) !important;
  border-radius: 8px !important;
  padding: 0.75rem 1rem !important;
  font-size: 0.95rem !important;
  color: var(--ll-text-dark) !important;
  font-family: var(--ll-font-body) !important;
  box-shadow: none !important;
  transition: border-color 0.2s !important;
  margin-bottom: 0 !important;
}

#commentform input[type="text"]:focus,
#commentform textarea:focus,
.comment-form input[type="text"]:focus,
.comment-form textarea:focus {
  border-color: var(--ll-gold) !important;
  outline: none !important;
}

/* Labels */
#commentform label,
.comment-form label,
.wpr-review-form label {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--ll-text-dark-muted) !important;
  margin-bottom: 0.4rem !important;
  display: block !important;
}

/* Star rating stars — gold */
.wpr-stars span,
.wpr-user-rating .wpr-stars span,
.wpr-rating-container .wpr-stars span {
  color: var(--ll-gold) !important;
}
.wpr-stars span.empty,
.wpr-stars .wpr-empty {
  color: #d0c8be !important;
}

/* Submit button — force gold */
.ll-review-submit,
#commentform .submit,
#commentform input[type="submit"],
.comment-form input[type="submit"],
.comment-form .submit,
#wpr-rating-frm input[type="submit"],
#wpr-rating-frm button[type="submit"] {
  background: var(--ll-gold) !important;
  color: var(--ll-bg) !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 0.75rem 2rem !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  font-family: var(--ll-font-body) !important;
}
.ll-review-submit:hover,
#commentform .submit:hover,
#commentform input[type="submit"]:hover,
.comment-form input[type="submit"]:hover {
  background: var(--ll-gold-light) !important;
}

/* Form field spacing */
#commentform p,
.comment-form p {
  margin-bottom: 1.25rem !important;
}
.comment-form p.logged-in-as,
.comment-form p.logged-in-as a {
  color: var(--ll-text-dark-muted) !important;
  font-size: 0.85rem !important;
}

/* Pros/Cons fields */
#commentform .wpr-pros textarea,
#commentform .wpr-cons textarea {
  min-height: 80px !important;
}

/* Remove ugly default borders WP Review Pro adds */
#wpr-rating-frm,
.wpr-review-form {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* ============================================================
   WP REVIEW PRO — TARGETED FIXES (based on actual HTML)
   ============================================================ */

/* Hide "Leave a Reply" heading — WP outputs this before the form */
.ll-reviews-wrap .comment-reply-title,
.ll-reviews-wrap h3.comment-reply-title,
#respond .comment-reply-title {
  display: none !important;
}

/* POST REVIEW button — targets the actual <button> element */
.ll-reviews-wrap button,
.ll-reviews-wrap #respond button,
.ll-review-form-wrap button,
#commentform button,
#respond button[type="submit"],
#respond button {
  background: var(--ll-gold) !important;
  background-color: var(--ll-gold) !important;
  color: #0C0F14 !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 0.8rem 2rem !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  cursor: pointer !important;
  font-family: var(--ll-font-body) !important;
  box-shadow: none !important;
  --global-palette-btn-bg: var(--ll-gold) !important;
}
.ll-reviews-wrap button:hover,
#commentform button:hover,
#respond button:hover {
  background: #E0C070 !important;
  background-color: #E0C070 !important;
}

/* ============================================================
   WP REVIEW PRO — LAYOUT & HEADING FIXES
   ============================================================ */

/* Force the reply heading to never show */
#respond h3,
#respond h3#reply-title,
#reply-title,
/* Hide all auto-generated headings in the reviews area */
.ll-reviews-wrap h3,
.ll-reviews-wrap h2,
.ll-reviews-wrap h4,
.ll-reviews-wrap #reply-title,
.ll-reviews-wrap .comment-reply-title,
.wp_review_comments_template h3,
.wp_review_comments_template h2,
.wp_review_comment_header h3,
#respond h3,
#respond h2,
#respond h4,
.comment-reply-title,
#reply-title {
  display: none !important;
}

/* Contain the entire respond/form block inside the page flow */
#respond,
#commentform,
.wp_review_comments_template {
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
  position: relative !important;
  float: none !important;
  clear: both !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hide WP Review Pro's built-in sort bar (we have our own) */
.ll-reviews-wrap .wp-can-start-you-sort,
.ll-reviews-wrap [class*="wp_review_sort"],
.ll-reviews-wrap #wp_review_sort {
  display: none !important;
}

/* Remove spacing from WP Review Pro's #comments wrapper */
.ll-reviews-wrap #comments {
  margin: 0 !important;
  padding: 0 !important;
}
.ll-reviews-wrap #comments > h2,
.ll-reviews-wrap #comments > h3,
.ll-reviews-wrap #comments > p {
  display: none !important;
}

/* commentAdd / size-box placeholder — no space */
.ll-reviews-wrap #commentAdd,
.ll-reviews-wrap .size-box-it-0 {
  display: none !important;
}

/* Full-width comment list */
.ll-reviews-wrap ol.commentlist {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
}

/* Each comment card full-width, no float */
.ll-reviews-wrap .comment,
.ll-reviews-wrap li.comment {
  float: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Prevent the form from escaping the container on mobile */
.ll-reviews-wrap {
  max-width: 100% !important;
  overflow: hidden !important;
}

/* Fix input widths inside WP Review Pro */
.wp_review_comments_template input[type="text"],
.wp_review_comments_template textarea,
#commentform input[type="text"],
#commentform textarea {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* ============================================================
   CIGAR HERO — GALLERY THUMBNAIL STRIP
   ============================================================ */
.ll-cigar-thumbs {
  display: flex;
  gap: 0.6rem;
  margin-top: 0.75rem;
  flex-wrap: wrap;
}

.ll-cigar-thumb {
  width: 80px;
  height: 56px;
  object-fit: cover;
  border-radius: 6px;
  border: 2px solid var(--ll-border);
  cursor: pointer;
  opacity: 0.55;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}

.ll-cigar-thumb:hover {
  opacity: 0.85;
}

.ll-cigar-thumb.active {
  border-color: var(--ll-gold);
  opacity: 1;
}

/* ============================================================
   WP REVIEW PRO — COMMENT CARD RESTYLING
   ============================================================ */

/* Each review comment → dark card */
.ll-reviews-wrap ol.ll-review-list,
.ll-reviews-wrap .wp_review_comments_template ol,
.ll-reviews-wrap .wp_review_comments_template ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.ll-reviews-wrap .comment,
.ll-reviews-wrap li.comment {
  background: var(--ll-bg-card, #1a2332) !important;
  border: 1px solid var(--ll-border, rgba(255,255,255,0.08)) !important;
  border-radius: var(--ll-radius-lg) !important;
  padding: 1.5rem !important;
  list-style: none !important;
}

/* Comment header row: avatar + name/date + stars */
.ll-reviews-wrap .comment-body,
.ll-reviews-wrap article.comment-body {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ll-reviews-wrap .comment-author {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 0;
}

/* Round the gravatar */
.ll-reviews-wrap .comment-author .avatar {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  border: 2px solid var(--ll-gold) !important;
  flex-shrink: 0;
}

/* Author name */
.ll-reviews-wrap .comment-author .fn,
.ll-reviews-wrap .comment-author .fn a {
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  color: var(--ll-text) !important;
  text-decoration: none !important;
}

/* Date line */
.ll-reviews-wrap .comment-metadata,
.ll-reviews-wrap .comment-meta {
  font-size: 0.78rem !important;
  color: var(--ll-text-muted) !important;
  margin-top: 0.15rem !important;
  margin-bottom: 1rem !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.ll-reviews-wrap .comment-metadata a,
.ll-reviews-wrap .comment-meta a {
  color: var(--ll-text-muted) !important;
  text-decoration: none !important;
}

/* Hide edit link */
.ll-reviews-wrap .comment-edit-link {
  display: none !important;
}

/* WP Review Pro content area */
.ll-reviews-wrap .wp_review_comment_wrap,
.ll-reviews-wrap .comment-content {
  color: var(--ll-text) !important;
}

/* Review title */
.ll-reviews-wrap .wp_review_comment_title {
  font-family: var(--ll-font-heading) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--ll-text) !important;
  margin-bottom: 0.75rem !important;
}

/* Feature ratings items */
.ll-reviews-wrap .wp_review_comment_items {
  margin-bottom: 1rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
}

.ll-reviews-wrap .wp_review_comment_item {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  font-size: 0.82rem !important;
  color: var(--ll-text-muted) !important;
}

.ll-reviews-wrap .wp_review_comment_item .wp_review_item_title,
.ll-reviews-wrap .wp_review_comment_item span:first-child {
  min-width: 90px !important;
  font-weight: 500 !important;
  color: var(--ll-text-muted) !important;
}

/* Review text */
.ll-reviews-wrap .wp_review_comment_text,
.ll-reviews-wrap .comment-content p,
.ll-reviews-wrap .comment-content,
.ll-reviews-wrap p,
.ll-reviews-wrap li p {
  font-size: 0.9rem !important;
  line-height: 1.75 !important;
  color: #F0EBE3 !important;
  margin-bottom: 1rem !important;
}

/* Helpful voting + reply — small and muted */
.ll-reviews-wrap .wp_review_useful {
  font-size: 0.78rem !important;
  color: var(--ll-text-muted) !important;
  margin-top: 0.75rem !important;
  padding-top: 0.75rem !important;
  border-top: 1px solid var(--ll-border) !important;
}

.ll-reviews-wrap .wp_review_useful a {
  color: var(--ll-gold) !important;
  margin-left: 0.4rem !important;
  text-decoration: none !important;
}

.ll-reviews-wrap .reply {
  margin-top: 0.5rem !important;
}

.ll-reviews-wrap .comment-reply-link {
  font-size: 0.78rem !important;
  color: var(--ll-text-muted) !important;
  text-decoration: none !important;
}

.ll-reviews-wrap .comment-reply-link:hover {
  color: var(--ll-gold) !important;
}

/* Reviews header: sort + button side by side */
.ll-reviews-header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

/* Sort dropdown */
.ll-reviews-sort {
  background: #fff;
  border: 1px solid #dde6f0;
  border-radius: 8px;
  padding: 0.45rem 0.9rem;
  font-size: 0.82rem;
  color: #0D1B2A;
  cursor: pointer;
  outline: none;
  font-family: var(--ll-font-body);
  width: auto;
  height: 40px;
}

/* WP Review Pro: hide individual feature ratings from review cards */
body .ll-reviews-wrap .comment table,
body .ll-reviews-wrap .wp_review_comment_items,
body .ll-reviews-wrap [class*="wp_review_comment_item"] {
  display: none !important;
}

/* ============================================================
   COMMUNITY RATINGS SECTION
   ============================================================ */
.ll-community-ratings-section {
  border-top: 1px solid var(--ll-border-light);
  border-bottom: 1px solid var(--ll-border-light);
}

.ll-community-ratings-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: start;
}

.ll-community-ratings-title {
  font-size: 1.55rem;
  margin-bottom: 1.5rem;
  color: var(--ll-text-dark);
}

/* Feature rating bars */
.ll-rating-bar-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}

.ll-rating-bar-label {
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
  width: 100px;
  flex-shrink: 0;
  font-family: var(--ll-font-body);
  font-weight: 500;
}

.ll-rating-bar-track {
  flex: 1;
  height: 8px;
  background: var(--ll-border-light);
  border-radius: 4px;
  overflow: hidden;
}

.ll-rating-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #A0782A, var(--ll-gold));
  border-radius: 4px;
}

.ll-rating-bar-score {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ll-text-dark);
  width: 28px;
  text-align: right;
  flex-shrink: 0;
}

/* Star distribution */
.ll-rating-dist {
  margin-top: 2rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--ll-border-light);
}

.ll-rating-dist-heading {
  font-size: 0.75rem;
  font-family: var(--ll-font-body);
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ll-text-dark-muted);
  margin-bottom: 1rem;
}

.ll-dist-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.ll-dist-label {
  width: 32px;
  font-size: 0.78rem;
  color: var(--ll-text-dark-muted);
  flex-shrink: 0;
}

.ll-dist-label .fas {
  color: var(--ll-gold);
  font-size: 0.7rem;
}

.ll-dist-track {
  flex: 1;
  height: 6px;
  background: var(--ll-border-light);
  border-radius: 3px;
  overflow: hidden;
}

.ll-dist-fill {
  height: 100%;
  background: linear-gradient(90deg, #A0782A, var(--ll-gold));
  border-radius: 3px;
}

.ll-dist-count {
  width: 24px;
  text-align: right;
  font-size: 0.78rem;
  color: var(--ll-text-dark-muted);
  flex-shrink: 0;
}

/* Highlight cards */
.ll-highlights-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ll-highlight-card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.25rem 1.5rem;
  background: var(--ll-bg-card);
  border: 1px solid var(--ll-border);
  border-radius: var(--ll-radius);
}

.ll-highlight-icon {
  color: var(--ll-gold);
  margin-top: 0.15rem;
  flex-shrink: 0;
  font-size: 1.1rem;
}

.ll-highlight-title {
  font-size: 0.95rem;
  display: block;
  margin-bottom: 0.3rem;
  color: var(--ll-text);
  font-family: var(--ll-font-body);
  font-weight: 600;
}

.ll-highlight-text,
.ll-section-light .ll-highlight-text,
.ll-section-light .ll-highlight-card p {
  font-size: 0.82rem;
  color: #F0EBE3 !important;
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 768px) {
  .ll-community-ratings-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

/* ============================================================
   SINGLE BLOG POST
   ============================================================ */

/* ── Hero ───────────────────────────────────────────────────── */
.ll-post-hero .ll-page-title {
  font-size: clamp(1.8rem, 4vw, 3rem) !important;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.2;
}

.ll-post-category-eyebrow {
  color: var(--ll-gold) !important;
}
.ll-post-category-eyebrow:hover {
  color: var(--ll-gold-light) !important;
}

.ll-post-hero-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}

.ll-post-hero-avatar img,
.ll-post-hero-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(201,168,76,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  flex-shrink: 0;
}

.ll-post-hero-initials {
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  color: #0D1B2A;
  font-size: 0.8rem;
  font-weight: 700;
}

.ll-post-hero-meta-text {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--ll-text-muted);
  flex-wrap: wrap;
  justify-content: center;
}

.ll-post-hero-author {
  color: var(--ll-gold) !important;
  font-weight: 600;
  text-decoration: none;
}
.ll-post-hero-author:hover { color: var(--ll-gold-light) !important; }

.ll-post-hero-divider {
  color: var(--ll-text-dim);
}

/* ── Layout ─────────────────────────────────────────────────── */
.ll-post-layout {
  padding-top: 3rem;
}

.ll-post-main {
  min-width: 0;
}

/* ── Featured image ─────────────────────────────────────────── */
.ll-post-featured-img {
  border-radius: var(--ll-radius-lg);
  overflow: hidden;
  margin-bottom: 2.5rem;
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}

.ll-post-featured-img img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 500px;
  object-fit: cover;
}

/* ── Article body typography ────────────────────────────────── */
.ll-post-body {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  padding: 2.5rem 3rem;
  color: var(--ll-text-dark);
  font-size: 1.05rem;
  line-height: 1.85;
  margin-bottom: 2rem;
}

.ll-post-body p {
  color: var(--ll-text-dark) !important;
  margin-bottom: 1.4rem;
}

.ll-post-body h2 {
  font-family: var(--ll-font-heading) !important;
  color: var(--ll-text-dark) !important;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem) !important;
  font-weight: 700 !important;
  margin: 2.25rem 0 0.75rem !important;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid #EEF3F8;
}

.ll-post-body h3 {
  font-family: var(--ll-font-heading) !important;
  color: var(--ll-text-dark) !important;
  font-size: clamp(1.1rem, 2vw, 1.35rem) !important;
  font-weight: 700 !important;
  margin: 1.75rem 0 0.6rem !important;
}

.ll-post-body h4 {
  font-family: var(--ll-font-body) !important;
  color: var(--ll-text-dark) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  margin: 1.5rem 0 0.5rem !important;
}

.ll-post-body a {
  color: #8B6914;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ll-post-body a:hover { color: var(--ll-gold-dark); }

.ll-post-body strong { color: var(--ll-text-dark); font-weight: 700; }
.ll-post-body em     { color: #5A4A2A; font-style: italic; }

.ll-post-body ul,
.ll-post-body ol {
  padding-left: 1.5rem;
  margin-bottom: 1.4rem;
  color: var(--ll-text-dark);
}

.ll-post-body ul { list-style: disc; }
.ll-post-body ol { list-style: decimal; }

.ll-post-body li {
  margin-bottom: 0.45rem;
  line-height: 1.7;
  color: var(--ll-text-dark);
}

.ll-post-body blockquote {
  border-left: 4px solid var(--ll-gold);
  background: #F8F6F0;
  margin: 1.75rem 0;
  padding: 1.25rem 1.5rem;
  border-radius: 0 var(--ll-radius) var(--ll-radius) 0;
  font-style: italic;
  color: #4A3A20;
  font-size: 1.08rem;
}

.ll-post-body blockquote p:last-child { margin-bottom: 0; }

.ll-post-body img {
  max-width: 100%;
  height: auto;
  border-radius: var(--ll-radius);
  margin: 1.5rem 0;
}

.ll-post-body figure {
  margin: 1.75rem 0;
}

.ll-post-body figcaption {
  font-size: 0.82rem;
  color: var(--ll-text-dark-muted);
  text-align: center;
  margin-top: 0.5rem;
  font-style: italic;
}

.ll-post-body pre {
  background: #1A2A3A;
  color: #E0EBF5;
  border-radius: var(--ll-radius);
  padding: 1.25rem 1.5rem;
  overflow-x: auto;
  font-size: 0.88rem;
  margin: 1.5rem 0;
}

.ll-post-body code {
  background: #EEF3F8;
  color: #3A2A10;
  padding: 0.15em 0.4em;
  border-radius: 3px;
  font-size: 0.88em;
}

.ll-post-body hr {
  border: none;
  border-top: 2px solid #EEF3F8;
  margin: 2rem 0;
}

.ll-post-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.92rem;
}

.ll-post-body th {
  background: #EEF3F8;
  color: var(--ll-text-dark);
  font-weight: 700;
  padding: 0.65rem 1rem;
  text-align: left;
  border-bottom: 2px solid #C8D8E8;
}

.ll-post-body td {
  padding: 0.6rem 1rem;
  border-bottom: 1px solid #EEF3F8;
  color: var(--ll-text-dark);
}

.ll-post-body tr:last-child td { border-bottom: none; }

/* Page links (nextpage) */
.ll-post-page-links {
  margin-top: 2rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
}

.ll-post-page-links span a {
  display: inline-block;
  padding: 0.25rem 0.6rem;
  background: var(--ll-bg-light-secondary);
  border: 1px solid var(--ll-border-light-mode);
  border-radius: 4px;
  color: var(--ll-text-dark);
  text-decoration: none;
  font-weight: 600;
}

.ll-post-page-links .post-page-numbers.current {
  background: var(--ll-gold);
  color: #0D1B2A;
  border-color: var(--ll-gold);
}

/* ── Tags ───────────────────────────────────────────────────── */
.ll-post-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 2rem;
}

.ll-post-tags-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ll-text-dark-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-right: 0.25rem;
}

.ll-post-tag {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  background: #EEF3F8;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ll-text-dark);
  text-decoration: none;
  transition: all 0.2s ease;
}

.ll-post-tag:hover {
  background: rgba(201,168,76,0.12);
  border-color: rgba(201,168,76,0.4);
  color: #8B6914;
}

/* ── Author bio card ────────────────────────────────────────── */
.ll-post-author-card {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-top: 3px solid var(--ll-gold);
  border-radius: var(--ll-radius-lg);
  padding: 1.75rem;
  margin-bottom: 2rem;
}

.ll-post-author-avatar img,
.ll-post-author-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 3px solid rgba(201,168,76,0.3);
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ll-post-author-initials {
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  color: #0D1B2A;
  font-size: 1.3rem;
  font-weight: 700;
}

.ll-post-author-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ll-text-dark-muted);
  margin-bottom: 0.2rem;
}

.ll-post-author-name {
  display: block;
  font-family: var(--ll-font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--ll-text-dark) !important;
  text-decoration: none;
  margin-bottom: 0.5rem;
}
.ll-post-author-name:hover { color: #8B6914 !important; }

.ll-post-author-bio {
  font-size: 0.88rem;
  color: var(--ll-text-dark-muted);
  line-height: 1.65;
  margin-bottom: 0.75rem;
}

.ll-post-author-link {
  font-size: 0.82rem;
  font-weight: 600;
  color: #8B6914 !important;
  text-decoration: none;
}
.ll-post-author-link:hover { color: var(--ll-gold-dark) !important; }

/* ── Prev / Next nav ────────────────────────────────────────── */
.ll-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.ll-post-nav-item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.1rem 1.25rem;
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ll-post-nav-item:hover {
  border-color: rgba(201,168,76,0.4);
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

.ll-post-nav-next { text-align: right; }

.ll-post-nav-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ll-gold) !important;
}

.ll-post-nav-title {
  font-family: var(--ll-font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ll-text-dark);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Comments wrapper ───────────────────────────────────────── */
.ll-post-comments {
  background: #fff;
  border: 1px solid var(--ll-border-light-mode);
  border-radius: var(--ll-radius-lg);
  padding: 2rem 2.5rem;
  color: var(--ll-text-dark);
}

.ll-post-comments h2,
.ll-post-comments h3 {
  font-family: var(--ll-font-heading) !important;
  color: var(--ll-text-dark) !important;
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  margin-bottom: 1.25rem !important;
}

.ll-post-comments .comment-body { color: var(--ll-text-dark); }
.ll-post-comments .comment-author .fn { color: var(--ll-text-dark); font-weight: 600; }
.ll-post-comments .comment-metadata { font-size: 0.8rem; color: var(--ll-text-dark-muted); }
.ll-post-comments .comment-content p { color: var(--ll-text-dark); font-size: 0.92rem; }

/* ── Sidebar author mini ────────────────────────────────────── */
.ll-sidebar-author {
  display: flex;
  gap: 0.85rem;
  align-items: center;
}

.ll-sidebar-author img,
.ll-sidebar-author-initials {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid rgba(201,168,76,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.ll-sidebar-author-initials {
  background: linear-gradient(135deg, var(--ll-gold-dark), var(--ll-gold));
  color: #0D1B2A;
  font-size: 1rem;
  font-weight: 700;
}

.ll-sidebar-author-name {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--ll-text-dark) !important;
  text-decoration: none;
  margin-bottom: 0.25rem;
}
.ll-sidebar-author-name:hover { color: #8B6914 !important; }

.ll-sidebar-author-bio {
  font-size: 0.78rem;
  color: var(--ll-text-dark-muted);
  line-height: 1.55;
  margin: 0;
}

/* ── Mobile ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .ll-post-body {
    padding: 1.5rem;
    font-size: 0.97rem;
  }

  .ll-post-author-card {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1rem;
  }

  .ll-post-nav {
    grid-template-columns: 1fr;
  }

  .ll-post-nav-next { text-align: left; }

  .ll-post-comments {
    padding: 1.25rem;
  }
}

/* ============================================================
   GEODIRECTORY — THEME OVERRIDE
   Targets GeoDirectory 2.x Add Listing / Edit Listing forms
   ============================================================ */

/* ── Page wrapper ───────────────────────────────────────────── */
.geodir-add-listing-page,
.geodir-listing-page,
#geodir-add-listing-page,
.page-template-page-geodirectory,
.gd-listing-page {
  background: var(--ll-bg) !important;
  color: var(--ll-text) !important;
}

/* ── Main form container ────────────────────────────────────── */
#geodir-add-listing,
.geodir-form,
.geodir-listing-form,
.gd-add-listing,
.geodir_form_row {
  background: transparent !important;
  color: var(--ll-text) !important;
}

/* ── Tab navigation ─────────────────────────────────────────── */
.geodir-tabs,
.geodir-tab-list,
.gd-tab-nav,
.nav-tabs,
ul.geodir-tabs-nav {
  border-bottom: 2px solid var(--ll-border) !important;
  background: transparent !important;
  margin-bottom: 2rem !important;
}

.geodir-tabs .nav-item a,
.geodir-tabs .nav-link,
ul.geodir-tabs-nav > li > a,
.gd-tab-nav li a {
  background: var(--ll-bg-card) !important;
  color: var(--ll-text-muted) !important;
  border: 1px solid var(--ll-border) !important;
  border-bottom: none !important;
  border-radius: 6px 6px 0 0 !important;
  font-family: var(--ll-font-body) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  padding: 0.6rem 1.2rem !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
}

.geodir-tabs .nav-item a:hover,
.geodir-tabs .nav-link:hover,
ul.geodir-tabs-nav > li > a:hover,
.gd-tab-nav li a:hover {
  background: var(--ll-bg-card-hover) !important;
  color: var(--ll-gold) !important;
}

.geodir-tabs .nav-item.active > a,
.geodir-tabs .nav-link.active,
ul.geodir-tabs-nav > li.active > a,
.gd-tab-nav li.active a {
  background: var(--ll-bg-secondary) !important;
  color: var(--ll-gold) !important;
  border-color: var(--ll-border-light) !important;
  border-bottom-color: var(--ll-bg-secondary) !important;
}

/* ── Tab content panels ─────────────────────────────────────── */
.geodir-tab-content,
.geodir-tab-pane,
.tab-content,
.tab-pane {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border) !important;
  border-radius: 0 6px 6px 6px !important;
  padding: 2rem !important;
  color: var(--ll-text) !important;
}

/* ── Section headings inside form ───────────────────────────── */
.geodir-form h3,
.geodir-form h4,
.geodir-listing-form h3,
.geodir-listing-form h4,
.geodir-fieldset-title,
.geodir-custom-fields-title,
.gd-field-section-title {
  font-family: var(--ll-font-heading) !important;
  color: var(--ll-text) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  border-bottom: 1px solid var(--ll-border) !important;
  padding-bottom: 0.6rem !important;
  margin-bottom: 1.25rem !important;
}

/* ── Labels ─────────────────────────────────────────────────── */
.geodir-form label,
.geodir-listing-form label,
.geodir-field-label,
.gd-field-label,
.geodir_form_row label {
  color: var(--ll-text) !important;
  font-family: var(--ll-font-body) !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.4rem !important;
  display: block !important;
}

/* ── Inputs, textareas, selects ─────────────────────────────── */
.geodir-form .form-control,
.geodir-form input[type="text"],
.geodir-form input[type="email"],
.geodir-form input[type="url"],
.geodir-form input[type="tel"],
.geodir-form input[type="number"],
.geodir-form input[type="search"],
.geodir-form textarea,
.geodir-form select,
.geodir-listing-form .form-control,
.geodir-listing-form input[type="text"],
.geodir-listing-form input[type="email"],
.geodir-listing-form input[type="url"],
.geodir-listing-form input[type="tel"],
.geodir-listing-form input[type="number"],
.geodir-listing-form textarea,
.geodir-listing-form select,
.geodir_form_row input,
.geodir_form_row textarea,
.geodir_form_row select {
  background: var(--ll-bg-secondary) !important;
  color: var(--ll-text) !important;
  border: 1px solid var(--ll-border-light) !important;
  border-radius: var(--ll-radius) !important;
  padding: 0.65rem 0.9rem !important;
  font-family: var(--ll-font-body) !important;
  font-size: 0.9rem !important;
  width: 100% !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.geodir-form .form-control:focus,
.geodir-form input:focus,
.geodir-form textarea:focus,
.geodir-form select:focus,
.geodir-listing-form .form-control:focus,
.geodir-listing-form input:focus,
.geodir-listing-form textarea:focus,
.geodir-listing-form select:focus {
  border-color: var(--ll-gold) !important;
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15) !important;
  outline: none !important;
  background: var(--ll-bg-secondary) !important;
  color: var(--ll-text) !important;
}

.geodir-form .form-control::placeholder,
.geodir-form input::placeholder,
.geodir-form textarea::placeholder,
.geodir-listing-form input::placeholder,
.geodir-listing-form textarea::placeholder {
  color: var(--ll-text-dim) !important;
}

/* ── Select arrow fix ───────────────────────────────────────── */
.geodir-form select,
.geodir-listing-form select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238A9BAD' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.9rem center !important;
  padding-right: 2.5rem !important;
}

/* ── Checkboxes & radio buttons ─────────────────────────────── */
.geodir-form input[type="checkbox"],
.geodir-form input[type="radio"],
.geodir-listing-form input[type="checkbox"],
.geodir-listing-form input[type="radio"] {
  accent-color: var(--ll-gold) !important;
  width: auto !important;
}

/* ── Required asterisk ──────────────────────────────────────── */
.geodir-form .required,
.geodir-listing-form .required,
.geodir-form abbr[title="required"],
.geodir-listing-form abbr[title="required"],
span.geodir-required {
  color: var(--ll-gold) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border: none !important;
}

/* ── Help / description text ────────────────────────────────── */
.geodir-form .form-text,
.geodir-form .help-block,
.geodir-form small,
.geodir-listing-form .form-text,
.geodir-listing-form .help-block,
.geodir-listing-form small,
.geodir-field-desc {
  color: var(--ll-text-muted) !important;
  font-size: 0.78rem !important;
  margin-top: 0.3rem !important;
  display: block !important;
}

/* ── Error messages ─────────────────────────────────────────── */
.geodir-form .alert-danger,
.geodir-form .error,
.geodir-listing-form .alert-danger,
.geodir-form .has-error .form-control,
.geodir-listing-form .has-error .form-control {
  border-color: var(--ll-accent) !important;
  background-color: rgba(201,76,76,0.08) !important;
  color: var(--ll-accent-light) !important;
}

.geodir-form .text-danger,
.geodir-listing-form .text-danger,
.geodir-form .invalid-feedback {
  color: var(--ll-accent-light) !important;
  font-size: 0.8rem !important;
}

/* ── Success / info alerts ──────────────────────────────────── */
.geodir-form .alert-success,
.geodir-listing-form .alert-success {
  background: rgba(201,168,76,0.1) !important;
  border: 1px solid rgba(201,168,76,0.3) !important;
  color: var(--ll-gold-light) !important;
  border-radius: var(--ll-radius) !important;
}

.geodir-form .alert-info,
.geodir-listing-form .alert-info {
  background: rgba(13,27,42,0.8) !important;
  border: 1px solid var(--ll-border-light) !important;
  color: var(--ll-text-muted) !important;
  border-radius: var(--ll-radius) !important;
}

/* ── Buttons ────────────────────────────────────────────────── */
.geodir-form .btn-primary,
.geodir-form .btn-success,
.geodir-listing-form .btn-primary,
.geodir-listing-form .btn-success,
.geodir_submit_btn,
.gd-submit-btn,
#geodir-add-listing .btn-success {
  background: linear-gradient(135deg, var(--ll-gold), var(--ll-gold-dark)) !important;
  color: #0D1B2A !important;
  border: none !important;
  border-radius: var(--ll-radius) !important;
  font-family: var(--ll-font-body) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.05em !important;
  padding: 0.75rem 2rem !important;
  cursor: pointer !important;
  transition: all 0.25s ease !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

.geodir-form .btn-primary:hover,
.geodir-form .btn-success:hover,
.geodir-listing-form .btn-primary:hover,
.geodir-listing-form .btn-success:hover,
.geodir_submit_btn:hover,
.gd-submit-btn:hover {
  background: linear-gradient(135deg, var(--ll-gold-light), var(--ll-gold)) !important;
  box-shadow: 0 4px 16px rgba(201,168,76,0.35) !important;
  color: #0D1B2A !important;
  transform: translateY(-1px) !important;
}

.geodir-form .btn-default,
.geodir-form .btn-secondary,
.geodir-listing-form .btn-default,
.geodir-listing-form .btn-secondary,
.geodir-form .btn-link {
  background: transparent !important;
  color: var(--ll-text-muted) !important;
  border: 1px solid var(--ll-border-light) !important;
  border-radius: var(--ll-radius) !important;
  font-family: var(--ll-font-body) !important;
  font-weight: 600 !important;
  padding: 0.65rem 1.5rem !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.geodir-form .btn-default:hover,
.geodir-form .btn-secondary:hover,
.geodir-listing-form .btn-default:hover {
  border-color: var(--ll-gold) !important;
  color: var(--ll-gold) !important;
}

/* ── Image / media upload area ──────────────────────────────── */
.geodir-listing-img-thumb-section,
.geodir-listing-img-section,
.geodir-listing-img-thumb,
.geodir-imgs-wrap,
.gd-image-upload-wrap {
  background: var(--ll-bg-secondary) !important;
  border: 2px dashed var(--ll-border-light) !important;
  border-radius: var(--ll-radius-lg) !important;
  color: var(--ll-text-muted) !important;
  padding: 1.5rem !important;
  text-align: center !important;
  transition: border-color 0.2s ease !important;
}

.geodir-listing-img-thumb-section:hover,
.geodir-imgs-wrap:hover {
  border-color: var(--ll-gold) !important;
}

/* ── Map embed inside form ──────────────────────────────────── */
.geodir-form .geodir-map,
.geodir-listing-form .geodir-map,
#geodir-address-map,
.gd-field-map {
  border: 1px solid var(--ll-border-light) !important;
  border-radius: var(--ll-radius) !important;
  overflow: hidden !important;
}

/* ── Progress / step indicator ──────────────────────────────── */
.geodir-listing-progress,
.gd-listing-steps,
.geodir-progress {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border) !important;
  border-radius: var(--ll-radius) !important;
  padding: 1rem 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.geodir-progress-bar,
.gd-progress-bar {
  background: linear-gradient(90deg, var(--ll-gold-dark), var(--ll-gold)) !important;
  border-radius: var(--ll-radius) !important;
}

/* ── Pricing / package selection ────────────────────────────── */
.geodir-packages,
.gd-package-list,
.geodir-package-item {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border) !important;
  border-radius: var(--ll-radius-lg) !important;
  color: var(--ll-text) !important;
}

.geodir-package-item.active,
.geodir-package-item:hover {
  border-color: var(--ll-gold) !important;
}

/* ── Category checkboxes grid ───────────────────────────────── */
.geodir-category-checklist,
.gd-category-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
  gap: 0.5rem !important;
}

.geodir-category-checklist li,
.gd-category-list li {
  list-style: none !important;
  background: var(--ll-bg-secondary) !important;
  border: 1px solid var(--ll-border) !important;
  border-radius: var(--ll-radius) !important;
  padding: 0.5rem 0.75rem !important;
  transition: border-color 0.2s ease !important;
}

.geodir-category-checklist li:hover,
.gd-category-list li:hover {
  border-color: var(--ll-gold) !important;
}

/* ── Tags input ─────────────────────────────────────────────── */
.tagit,
.geodir-tags-wrap,
ul.tagit {
  background: var(--ll-bg-secondary) !important;
  border: 1px solid var(--ll-border-light) !important;
  border-radius: var(--ll-radius) !important;
  padding: 0.4rem !important;
}

.tagit li.tagit-choice {
  background: rgba(201,168,76,0.15) !important;
  border: 1px solid rgba(201,168,76,0.3) !important;
  border-radius: 4px !important;
  color: var(--ll-gold) !important;
}

.tagit li.tagit-choice .tagit-close {
  color: var(--ll-gold) !important;
}

/* ── Rating stars in form ───────────────────────────────────── */
.geodir-form .geodir-star-rating .star,
.geodir-listing-form .star-rating .star {
  color: var(--ll-gold) !important;
}

/* ── Pagination / navigation inside GD pages ────────────────── */
.geodir-pagination,
.gd-pagination {
  display: flex !important;
  gap: 0.5rem !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 2rem !important;
}

.geodir-pagination a,
.gd-pagination a {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border) !important;
  color: var(--ll-text-muted) !important;
  border-radius: var(--ll-radius) !important;
  padding: 0.4rem 0.8rem !important;
  font-size: 0.85rem !important;
  transition: all 0.2s ease !important;
}

.geodir-pagination a:hover,
.gd-pagination a:hover,
.geodir-pagination .current,
.gd-pagination .current {
  background: var(--ll-gold) !important;
  border-color: var(--ll-gold) !important;
  color: #0D1B2A !important;
}

/* ── GeoDirectory listing cards (directory page) ────────────── */
.geodir-post-type-listing,
.geodir-listing,
article.geodir-post,
.geodir-loop-item {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border) !important;
  border-radius: var(--ll-radius-lg) !important;
  color: var(--ll-text) !important;
  overflow: hidden !important;
  transition: border-color 0.25s ease, transform 0.25s ease !important;
}

.geodir-post-type-listing:hover,
.geodir-loop-item:hover {
  border-color: rgba(201,168,76,0.4) !important;
  transform: translateY(-3px) !important;
}

.geodir-loop-item .geodir-post-title a,
article.geodir-post h2 a,
article.geodir-post h3 a {
  color: var(--ll-text) !important;
  font-family: var(--ll-font-heading) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.geodir-loop-item .geodir-post-title a:hover,
article.geodir-post h2 a:hover {
  color: var(--ll-gold) !important;
}

.geodir-loop-item .geodir-category,
.geodir-post-category {
  color: var(--ll-gold) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

.geodir-loop-item .geodir-post-meta,
article.geodir-post .geodir-post-meta {
  color: var(--ll-text-muted) !important;
  font-size: 0.82rem !important;
}

/* ── GD search / filter bar ─────────────────────────────────── */
.geodir-search,
.geodir-search-bar,
.gd-search-field {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border-light) !important;
  border-radius: var(--ll-radius) !important;
}

.geodir-search input,
.geodir-search select,
.gd-search-field input {
  background: var(--ll-bg-secondary) !important;
  color: var(--ll-text) !important;
  border: 1px solid var(--ll-border-light) !important;
  border-radius: var(--ll-radius) !important;
}

.geodir-search .btn,
.gd-search-field .btn {
  background: linear-gradient(135deg, var(--ll-gold), var(--ll-gold-dark)) !important;
  color: #0D1B2A !important;
  border: none !important;
  font-weight: 700 !important;
}

/* ── Single listing page ────────────────────────────────────── */
.geodir-single-listing,
.geodir-post-type-listing.single,
.gd-single-listing {
  background: var(--ll-bg-card) !important;
  border: 1px solid var(--ll-border) !important;
  border-radius: var(--ll-radius-lg) !important;
  padding: 2rem !important;
  color: var(--ll-text) !important;
}

.geodir-single-listing h1,
.geodir-single-listing h2,
.gd-single-listing h1 {
  font-family: var(--ll-font-heading) !important;
  color: var(--ll-text) !important;
}

/* ── GD badges / tags on listing ────────────────────────────── */
.geodir-badge,
.gd-listing-badge,
.geodir-featured-badge {
  background: linear-gradient(135deg, var(--ll-gold), var(--ll-gold-dark)) !important;
  color: #0D1B2A !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-radius: 4px !important;
  padding: 0.2rem 0.5rem !important;
}

/* ── Scrollbar inside GD containers ────────────────────────── */
.geodir-form ::-webkit-scrollbar { width: 6px; }
.geodir-form ::-webkit-scrollbar-track { background: var(--ll-bg-secondary); }
.geodir-form ::-webkit-scrollbar-thumb {
  background: var(--ll-border-light);
  border-radius: 3px;
}
.geodir-form ::-webkit-scrollbar-thumb:hover { background: var(--ll-gold); }

/* ── Mobile responsive ──────────────────────────────────────── */
@media (max-width: 768px) {
  .geodir-tab-content,
  .geodir-tab-pane,
  .tab-content {
    padding: 1.25rem !important;
  }

  .geodir-form .btn-primary,
  .geodir-form .btn-success,
  .geodir_submit_btn {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* ============================================================
   HIDE WP REVIEW PRO EVERYWHERE EXCEPT CIGAR POSTS
   Targets blog posts, pages, author pages, UM pages, etc.
   Only .single-cigar gets WP Review Pro output.
   ============================================================ */
body:not(.single-cigar) [id^="wp-review-"],
body:not(.single-cigar) .wp-review-total-wrapper,
body:not(.single-cigar) .review-wrap,
body:not(.single-cigar) .wpr-box,
body:not(.single-cigar) .wpr-rating,
body:not(.single-cigar) .wp-review-wrap,
body:not(.single-cigar) .wp-review-user-rating,
body:not(.single-cigar) .wp-review-user-rating-wrap,
body:not(.single-cigar) .user-review-area,
body:not(.single-cigar) .wp-review-comment-rating,
body:not(.single-cigar) .wp_review_accept,
body:not(.single-cigar) .wp_review_useful,
body:not(.single-cigar) .wp-review-criteria-wrap,
body:not(.single-cigar) .review-total-box,
body:not(.single-cigar) .user-review-title,
body:not(.single-cigar) .review-percentage,
body:not(.single-cigar) .review-star,
body:not(.single-cigar) .review-point,
body:not(.single-cigar) div[class*="wp-review"],
body:not(.single-cigar) div[id*="wp-review"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}
