/*
Theme Name: Hello Elementor Child
Theme URI: https://cristybcomedy.com
Description: Child theme for Hello Elementor
Author: Cristy B Comedy Club
Author URI: https://cristybcomedy.com
Template: hello-elementor
Version: 1.0.0
*/

/* =======================================
   Cristy B Comedy Club – Global Styles
   ======================================= */


/* =========================================================
   Cristy B Comedy Club – Global Design System
   Child Theme: Hello Elementor
   ========================================================= */

/* ---------- Design Tokens ---------- */
:root {
  --cbc-black: #0e0e0e;
  --cbc-dark: #141414;
  --cbc-charcoal: #1c1c1c;
--cbc-accent: #50e3e9;
--cbc-accent-hover: #3bcad0;
  --cbc-gold: #f4c430;
  --cbc-text: #f5f5f5;
  --cbc-muted: #b3b3b3;
  --cbc-border: #2a2a2a;
  --cbc-radius: 14px;
}

/* ---------- Base Overrides ---------- */

/* =========================================================
   Global Overflow Guard (Mobile Safety)
   ========================================================= */

html, body {
  max-width: 100%;
  overflow-x: hidden;
}



body {
  background-color: var(--cbc-black);
  color: var(--cbc-text);
}

a {
  color: var(--cbc-accent);
  transition: color .2s ease;
}

a:hover {
  color: var(--cbc-accent-hover);
}

/* ---------- Typography ---------- */
.cbc-heading {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.cbc-text-muted {
  color: var(--cbc-muted);
}

/* ---------- Section Containers ---------- */
.cbc-section {
  padding: 80px 20px;
  background: var(--cbc-black);
}

.cbc-section.alt {
  background: var(--cbc-dark);
}

/* ---------- Cards (Events / Performers / Press) ---------- */
.cbc-card {
  background: var(--cbc-charcoal);
  border: 1px solid var(--cbc-border);
  border-radius: var(--cbc-radius);
  padding: 30px;
  transition: transform .3s ease, box-shadow .3s ease;
}

.cbc-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,.6);
}

.cbc-card h3 {
  margin-top: 0;
  color: var(--cbc-text);
}

.cbc-card .cbc-date {
  color: var(--cbc-accent);
  font-weight: 600;
}

/* ---------- Buttons ---------- */
.cbc-btn {
  display: inline-block;
  background: var(--cbc-accent); /* teal */
  color: #000;
  padding: 14px 26px;
  border-radius: 6px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  border: none;
  cursor: pointer;
  transition: 
    background .25s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

.cbc-btn:hover {
  background: var(--cbc-accent-hover); /* darker teal */
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(80,227,233,.35); /* teal glow */
}




/* ---------- Featured / Spotlight ---------- */
.cbc-featured {
  background: linear-gradient(
    135deg,
    rgba(230,57,70,.18),
    rgba(0,0,0,.95)
  );
  border-radius: 20px;
  padding: 60px 40px;
  border: 1px solid var(--cbc-border);
}

/* ---------- Dividers ---------- */
.cbc-divider {
  width: 80px;
  height: 4px;
  background: var(--cbc-accent);
  margin: 30px 0;
  border-radius: 2px;
}

/* ---------- Images ---------- */
.cbc-img {
  border-radius: var(--cbc-radius);
  box-shadow: 0 12px 30px rgba(0,0,0,.7);
}

/* ---------- Footer ---------- */
.cbc-footer {
  background: #000;
  border-top: 1px solid var(--cbc-border);
  padding: 50px 20px;
  color: var(--cbc-muted);
  font-size: .9rem;
}

/* ---------- Events Calendar (Scoped) ---------- */
.tribe-events .cbc-card,
.tribe-events .tribe-events-c-events-list__event-row {
  background: var(--cbc-charcoal);
  border: 1px solid var(--cbc-border);
  border-radius: var(--cbc-radius);
}

.tribe-events a {
  color: var(--cbc-accent);
}

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
  .cbc-section {
    padding: 60px 16px;
  }

  .cbc-card {
    padding: 22px;
  }

  .cbc-featured {
    padding: 40px 24px;
  }
}






/* =========================================================
   CBC Venue / About Page
   ========================================================= */

/* Page Wrapper */
.cbc-venue-page {
  background: #000;
  color: #fff;
  padding: 60px 20px;
  font-family: 'Montserrat', sans-serif;
}

/* Page Header */
.cbc-venue-header {
  max-width: 1100px;
  margin: 0 auto 40px;
  text-align: center;
}

.cbc-venue-header h1 {
  color: #50e3e9;
  font-size: 42px;
  margin-bottom: 15px;
  text-shadow:
    0 0 12px rgba(80,227,233,.45),
    0 0 28px rgba(80,227,233,.25);
}

.cbc-venue-header p {
  font-size: 18px;
  line-height: 1.8;
}

/* Two Column Layout */
.cbc-flex-row {
  max-width: 1100px;
  margin: 0 auto 50px;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}

.cbc-flex-row h2 {
  color: #50e3e9;
  font-size: 28px;
  margin-bottom: 15px;
}

/* Bento Grid */
.cbc-bento-grid {
  max-width: 1100px;
  margin: 0 auto 60px;
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* Bento Boxes */
.cbc-bento-box {
  background: #111;
  padding: 25px;
  border-radius: 12px;
  border: 1px solid #222;
  position: relative;
  transition: transform .3s ease, box-shadow .3s ease;
}

/* Glow Effect */
.cbc-bento-box::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 12px;
  background: radial-gradient(
    circle at top center,
    rgba(80,227,233,.35),
    transparent 60%
  );
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}

.cbc-bento-box:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(0,0,0,.6);
}

.cbc-bento-box:hover::before {
  opacity: 1;
}

.cbc-bento-box h2 {
  color: #50e3e9;
  font-size: 24px;
  margin-bottom: 10px;
}

/* Food / Private Events Sections */
.cbc-venue-section {
  max-width: 1100px;
  margin: 0 auto 60px;
}

.cbc-venue-section h2 {
  color: #50e3e9;
  font-size: 28px;
  margin-bottom: 15px;
}

/* Event Columns */
.cbc-event-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  margin-top: 20px;
}

/* Maps */
.cbc-map {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #222;
}

/* Google Maps iframe safety */
.elementor .cbc-map iframe {
  width: 100%;
  max-width: 100%;
  display: block;
  border: 0;
}



/* Responsive */
@media (max-width: 768px) {
  .cbc-event-columns,
  .cbc-flex-row {
    flex-direction: column;
  }

  .cbc-venue-header h1 {
    font-size: 32px;
  }
}






/* =========================================================
   Elementor Container Compatibility – CBC Venue Page
   ========================================================= */

/* Force CBC styles inside Elementor Containers */
.elementor .elementor-widget-container .cbc-venue-page {
  background: #000;
  color: #fff;
  padding: 60px 20px;
  font-family: 'Montserrat', sans-serif;
}

/* Header */
.elementor .cbc-venue-header {
  max-width: 1100px;
  margin: 0 auto 40px;
  text-align: center;
}

.elementor .cbc-venue-header h1 {
  color: #50e3e9;
  font-size: 42px;
  margin-bottom: 15px;
  text-shadow:
    0 0 12px rgba(80,227,233,.45),
    0 0 28px rgba(80,227,233,.25);
}

.elementor .cbc-venue-header p {
  font-size: 18px;
  line-height: 1.8;
}

/* Two-column layout */
.elementor .cbc-flex-row {
  max-width: 1100px;
  margin: 0 auto 50px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: flex-start;
}


.elementor .cbc-flex-row h2 {
  color: #50e3e9;
  font-size: 28px;
  margin-bottom: 15px;
}

/* Bento Grid */
.elementor .cbc-bento-grid {
  max-width: 1100px;
  margin: 0 auto 60px;
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* Bento Boxes */
.elementor .cbc-bento-box {
  background: #111;
  border: 1px solid #222;
  border-radius: 12px;
  padding: 25px;
  position: relative;
  transition: transform .3s ease, box-shadow .3s ease;
}

/* Glow Effect */
.elementor .cbc-bento-box::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 12px;
  background: radial-gradient(
    circle at top center,
    rgba(80,227,233,.35),
    transparent 60%
  );
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}

.elementor .cbc-bento-box:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(0,0,0,.6);
}

.elementor .cbc-bento-box:hover::before {
  opacity: 1;
}

/* Venue Sections */
.elementor .cbc-venue-section {
  max-width: 1100px;
  margin: 0 auto 60px;
}

.elementor .cbc-venue-section h2 {
  color: #50e3e9;
  font-size: 28px;
  margin-bottom: 15px;
}

/* Event Columns */
.elementor .cbc-event-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  margin-top: 20px;
}

/* Map */
.elementor .cbc-map {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #222;
}

/* Mobile */
@media (max-width: 768px) {
  .elementor .cbc-flex-row,
  .elementor .cbc-event-columns {
    flex-direction: column;
  }

  .elementor .cbc-venue-header h1 {
    font-size: 32px;
  }
}

/* =========================================================
   CBC Venue – Prevent Horizontal Overflow
   ========================================================= */

.elementor .cbc-venue-page,
.elementor .cbc-flex-row,
.elementor .cbc-bento-grid,
.elementor .cbc-event-columns {
  max-width: 100%;
  overflow-x: hidden;
}




/* =========================================================
   CBC Outline Glow – Hover Only (No Interior Glow)
   ========================================================= */

/* Base bento box – no glow */
.elementor .cbc-bento-box {
  background: #111;
  border: 1px solid #222;
  border-radius: 12px;
  padding: 25px;
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

/* Hover outline glow */
.elementor .cbc-bento-box:hover {
  border-color: #50e3e9;
  box-shadow:
    0 0 0 1px rgba(80,227,233,0.9),
    0 0 14px rgba(80,227,233,0.6),
    0 0 32px rgba(80,227,233,0.35);
  transform: translateY(-4px);
}



/* Optional: Section outline glow */
.elementor .cbc-venue-page {
  border: 1px solid transparent;
  transition: border-color .3s ease, box-shadow .3s ease;
}

.elementor .cbc-venue-page:hover {
  border-color: rgba(80,227,233,0.6);
  box-shadow:
    0 0 18px rgba(80,227,233,0.25);
}



/* =========================================================
   CBC Private Events – Two Column List Refinement
   ========================================================= */

.elementor .cbc-event-columns {
  max-width: 900px;          /* keeps content visually centered */
}

.elementor .cbc-event-columns ul {
  margin: 0;
  padding-left: 18px;        /* controlled bullet indent */
  list-style-position: outside;
  flex: 1 1 0;
}

.elementor .cbc-event-columns li {
  margin-bottom: 8px;        /* tighter vertical rhythm */
}





/* =========================================================
   CBC Venue – Mobile Optimization
   ========================================================= */

@media (max-width: 768px) {

  /* Two-column section spacing */
  .elementor .cbc-flex-row {
    gap: 32px;
    padding-left: 10px;
    padding-right: 10px;
  }

  /* Headings scale down for mobile */
  .elementor .cbc-flex-row h2 {
    font-size: 24px;
    margin-bottom: 12px;
  }

  /* Body text readability */
  .elementor .cbc-flex-row p {
    font-size: 16px;
    line-height: 1.7;
  }

  /* Prevent overly narrow columns */
  .elementor .cbc-flex-row .cbc-col {
    width: 100%;
  }

  /* Map sizing */
  .elementor .cbc-map iframe {
    height: 200px;
  }

}

/* =========================================================
   Mobile Auto-Link Color Fix (Phone Numbers)
   ========================================================= */

/* iOS / mobile browsers auto-detected phone numbers */
a[href^="tel"],
a[href^="tel"]:link,
a[href^="tel"]:visited {
  color: inherit;
  text-decoration: none;
}

/* Prevent iOS Safari from recoloring detected numbers */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  a[href^="tel"] {
    color: inherit !important;
  }
}







/* =========================================================
   CBC Comedian Booking Page – Section Glow System
   ========================================================= */

.elementor .cbc-section-box {
  background: #111;
  border: 1px solid #222;
  border-radius: 14px;
  padding: 50px 35px;
  margin-bottom: 60px;
  position: relative;
  overflow: hidden;
  transition: border-color 0.3s ease;
  --x: 50%;
  --y: 50%;
}

/* Cursor-tracking glow outline */
.elementor .cbc-section-box::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 14px;
  padding: 2px;
  background: radial-gradient(
    circle at var(--x) var(--y),
    rgba(80,227,233,0.45),
    transparent 300px
  );
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  -webkit-mask-composite: xor;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

/* Activate glow on hover (desktop only) */
@media (hover: hover) {
  .elementor .cbc-section-box:hover::after {
    opacity: 1;
  }
}

/* Typography helpers */
.elementor .cbc-section-title {
  color: #50e3e9;
  font-size: 32px;
  text-align: center;
  margin-bottom: 15px;
}

.elementor .cbc-section-intro {
  font-size: 18px;
  line-height: 1.8;
  text-align: center;
  max-width: 850px;
  margin: 0 auto 35px;
}

.elementor .cbc-list {
  font-size: 18px;
  line-height: 1.8;
  max-width: 650px;
  margin: 0 auto;
  padding-left: 20px;
  color: #d8d8d8;
}

/* Buttons */
.elementor .cbc-btn-primary {
  display: inline-block;
  padding: 14px 32px;
  background: #50e3e9;
  color: #000;
  border-radius: 4px;
  font-weight: 600;
  text-decoration: none;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .elementor .cbc-section-box {
    padding: 35px 25px;
  }

  .elementor .cbc-section-title {
    font-size: 26px;
  }
}


/* =========================================================
   CBC FINAL PATCH – Lock System (Buttons + FAQs + Remove Red)
   Paste at BOTTOM of style.css
   ========================================================= */

/* 1) Kill the last red leak: cbc-featured gradient still used red rgba(...) */
.cbc-featured {
  background: linear-gradient(
    135deg,
    rgba(80,227,233,.14),
    rgba(0,0,0,.95)
  );
}

/* 2) Button system – ONE canonical button: .cbc-btn
      Alias any page-specific button class to match it exactly */
.elementor .cbc-btn-primary,
.elementor a.cbc-btn-primary {
  display: inline-block;
  background: var(--cbc-accent);
  color: #000;
  padding: 14px 26px;
  border-radius: 6px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition:
    background .25s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

.elementor .cbc-btn-primary:hover,
.elementor a.cbc-btn-primary:hover {
  background: var(--cbc-accent-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(80,227,233,.35);
}

/* 3) UNIVERSAL FAQ SYSTEM (works for ALL pages)
   Required HTML structure:
   .cbc-faq-wrap > .cbc-faq > .cbc-faq-item > button.cbc-faq-question + div.cbc-faq-answer
*/
.elementor .cbc-faq-wrap {
  max-width: 1100px;
  margin: 0 auto;
}

.elementor .cbc-faq-heading {
  text-align: center;
  color: var(--cbc-accent);
  font-size: 34px;
  margin: 0 0 28px;
}

.elementor .cbc-faq {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.elementor .cbc-faq-item {
  background: #111;
  border: 1px solid #222;
  border-radius: 14px;
  overflow: hidden;
  transition: border-color .25s ease, box-shadow .25s ease;
}

.elementor .cbc-faq-item:hover {
  border-color: rgba(80,227,233,.6);
  box-shadow: 0 0 22px rgba(80,227,233,.25);
}

/* Question button – kill browser/Elementor button styles */
.elementor .cbc-faq-question {
  width: 100%;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--cbc-accent);
  font-size: 18px;
  font-weight: 700;
  padding: 18px 22px;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
}

/* Add subtle indicator */
.elementor .cbc-faq-question::after {
  content: "+";
  float: right;
  font-weight: 900;
  opacity: .9;
}

.elementor .cbc-faq-question[aria-expanded="true"]::after {
  content: "–";
}

/* Answer panel */
.elementor .cbc-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease;
  padding: 0 22px;
}

.elementor .cbc-faq-answer.open {
  max-height: 1200px;
  padding-bottom: 18px;
}

.elementor .cbc-faq-answer p,
.elementor .cbc-faq-answer ul,
.elementor .cbc-faq-answer li {
  color: #d0d0d0;
  font-size: 16px;
  line-height: 1.7;
  margin: 10px 0 0;
}

/* Tier labels inside answer */
.elementor .cbc-faq-tier {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #222;
  border-radius: 12px;
  background: #0b0b0b;
}

.elementor .cbc-faq-tier h3 {
  margin: 0 0 6px;
  font-size: 15px;
  color: var(--cbc-accent);
  letter-spacing: .02em;
  text-transform: uppercase;
}

.elementor .cbc-faq-cta {
  text-align: center;
  margin-top: 26px;
}

@media (max-width: 768px) {
  .elementor .cbc-faq-heading {
    font-size: 28px;
  }
}



