/**
 * page-content.css — Page Body Content Dark Theme Override
 * Sites: thedinnerdetective.com (national) + all location subsites
 * Generated: 2026-05-07
 *
 * PURPOSE
 * Overrides the default Elementor kit variables (elementor-kit-43081 for
 * the national site, elementor-kit-51 for location subsites) that produce
 * a white-background, black-text layout. Brings all page body content into
 * the dark detective aesthetic established on denvermurdermystery.com.
 *
 * ROOT CAUSE
 * Both kits define:
 *   --e-global-color-primary:   #710000  (should be gold  #C9A844)
 *   --e-global-color-text:      #000000  (should be light #F0F0F0)
 *   body { background-color: #fff; }     (should be dark  #0a0a0a)
 *
 * USAGE (WordPress / Hello Elementor child theme)
 *   Option A — wp_enqueue_scripts in child-theme functions.php (recommended):
 *     add_action( 'wp_enqueue_scripts', function () {
 *         wp_enqueue_style(
 *             'dd-page-content',
 *             get_stylesheet_directory_uri() . '/page-content.css',
 *             [ 'elementor-frontend' ],
 *             filemtime( get_stylesheet_directory() . '/page-content.css' )
 *         );
 *     } );
 *
 *   Option B — Elementor → Site Settings → Custom CSS
 *     (works, but loses cache-busting; acceptable for one-time setup).
 *
 * NOTE: This file covers page body content only.
 *   Above-the-fold header and hero are handled by critical-atf.css,
 *   which is inlined in <head> via wp_head (priority 1).
 *
 * ─────────────────────────────────────────────────────────────────────
 * SECTIONS
 *   1.  Design tokens — DD dark palette as CSS custom properties
 *   2.  Elementor kit overrides — kit-43081 (national) + kit-51 (locations)
 *   3.  Body & base — background, color, font-smoothing
 *   4.  Elementor section / container backgrounds
 *   5.  Typography — headings, body text, links, lists, blockquotes
 *   6.  Elementor widget overrides — text-editor, heading, divider, icon-list
 *   7.  Buttons & CTAs
 *   8.  Schedule & event listings — .month-header, .event-card, .ticket-button
 *   9.  Content cards & info boxes
 *  10.  Tables
 *  11.  Forms — Gravity Forms
 *  12.  WordPress default content (entry-content / wp-block-*)
 *  13.  Media — images, video wrappers
 *  14.  Responsive overrides (≤1024px, ≤767px)
 * ─────────────────────────────────────────────────────────────────────
 */


/* ═══════════════════════════════════════════════════════════════════
   1. DESIGN TOKENS — DD dark palette
   ═══════════════════════════════════════════════════════════════════ */
:root {
  /* Backgrounds */
  --dd-bg-darkest:  #0a0a0a;
  --dd-bg-dark:     #0d0d0d;
  --dd-bg-medium:   #111111;

  /* Borders */
  --dd-border-raw:       #3a2f1a;
  --dd-border:           1px solid #3a2f1a;
  --dd-border-gold-raw:  rgba(245, 184, 32, 0.20);

  /* Brand colours — primary gold is #F5B820 per Dinner Detective Design System.
     #C9A844 is the secondary alt-gold used on outlined accents, dividers,
     and the gold→alt-gold rhythm. Token names mirror colors_and_type.css. */
  --dd-gold:          #F5B820;
  --dd-gold-alt:      #C9A844;
  --dd-gold-bright:   #F5B820; /* legacy alias kept for any remaining refs */
  --dd-red:           #8B1A1A;
  --dd-red-ticket:    #b20000;
  --dd-red-hover:     #9B2222;
  --dd-red-bright:    #d41a1a;

  /* Text */
  --dd-text:          #F0F0F0;
  --dd-text-90:       rgba(255, 255, 255, 0.90);
  --dd-text-80:       rgba(255, 255, 255, 0.80);
  --dd-text-70:       rgba(255, 255, 255, 0.70);
  --dd-text-55:       rgba(255, 255, 255, 0.55);

  /* Cards */
  --dd-card-bg:     rgba(255, 255, 255, 0.04);
  --dd-card-border: rgba(245, 184, 32, 0.20);
  --dd-card-radius: 8px;  /* design-system card radius — never 10px / 20px */
}


/* ═══════════════════════════════════════════════════════════════════
   2. ELEMENTOR KIT OVERRIDES
      Both kits use the same incorrect light-theme tokens.
      Remapping them here cascades through every widget that
      references a global token — no per-element overrides needed.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Token remapping ── */
.elementor-kit-43081,
.elementor-kit-51 {
  --e-global-color-primary:   var(--dd-gold)        !important; /* was #710000 */
  --e-global-color-secondary: var(--dd-red)         !important; /* was #AB0101 */
  --e-global-color-text:      var(--dd-text)        !important; /* was #000000 */
  --e-global-color-accent:    var(--dd-gold-bright) !important; /* was #FFF606 */
  background-image:           none                  !important; /* kill any kit gradient */
  color: var(--dd-text);
}

/* ── Heading colour (Elementor generates h1/h2 with var(--e-global-color-primary)) ── */
.elementor-kit-43081 h1,
.elementor-kit-43081 h2,
.elementor-kit-51 h1,
.elementor-kit-51 h2 {
  color: var(--dd-gold) !important;
}

/* ── Link colour ── */
.elementor-kit-43081 a,
.elementor-kit-51 a {
  color: var(--dd-gold-bright) !important;
}
.elementor-kit-43081 a:hover,
.elementor-kit-51 a:hover,
.elementor-kit-51 a:focus-visible {
  color: #ffffff !important;
}


/* ═══════════════════════════════════════════════════════════════════
   3. BODY & BASE
      The inline <style id="dd-critical-css"> sets body { background:#fff }
      and :where(body) { margin:0 }. We override with !important here so
      that the dark background is enforced regardless of load order.
   ═══════════════════════════════════════════════════════════════════ */
html,
body,
body.elementor-page,
body.page,
body.single,
body.page-template-default,
body.home {
  background-color: var(--dd-bg-darkest) !important;
  background-image: none                 !important; /* kills Elementor kit gradient */
  color:            var(--dd-text)       !important;
}

/* WordPress / Hello Elementor wrappers */
.site,
.site-main,
.hfeed,
#content,
.wp-site-blocks,
.site-content,
.content-area,
.entry-content-wrapper {
  background-color: var(--dd-bg-dark);
  color:            var(--dd-text);
}


/* ═══════════════════════════════════════════════════════════════════
   4. ELEMENTOR SECTION / CONTAINER BACKGROUNDS
      Strategy:
        • Set a default dark background on all Elementor top-level
          sections so un-styled sections are dark by default.
        • Explicitly override white and near-white backgrounds that
          Elementor post-*.css files may generate via inline styles
          or generated CSS.
        • Leave sections that have background-image untouched —
          they rely on their own image + overlay.
   ═══════════════════════════════════════════════════════════════════ */

/* Default background for all Elementor sections (forced dark — catches element-specific overrides) */
.elementor-section:not([style*="background-image"]),
.elementor-top-section:not([style*="background-image"]),
.e-con.e-parent:not([style*="background-image"]) {
  background-color: var(--dd-bg-dark) !important;
}

/* Alternate even/odd rhythm */
.elementor-top-section:nth-of-type(even):not([style*="background-image"]),
.e-con.e-parent:nth-of-type(even):not([style*="background-image"]) {
  background-color: var(--dd-bg-medium) !important;
}

/* Inner containers must be transparent (they sit inside sections) */
.elementor-container,
.e-con-inner {
  background-color: transparent;
}

/* ── Override explicit white backgrounds (Elementor-generated post-*.css) ── */
.elementor-section[style*="background-color:#fff"],
.elementor-section[style*="background-color: #fff"],
.elementor-section[style*="background-color: #ffffff"],
.elementor-section[style*="background-color:#ffffff"],
.elementor-section[style*="background-color: rgb(255, 255, 255)"],
.elementor-section[style*="background-color:rgb(255,255,255)"],
.e-con[style*="background-color:#fff"],
.e-con[style*="background-color: #fff"],
.e-con[style*="background-color: #ffffff"],
.e-con[style*="background-color:#ffffff"],
.e-con[style*="background-color: rgb(255, 255, 255)"],
.e-con[style*="background-color:rgb(255,255,255)"] {
  background-color: var(--dd-bg-dark) !important;
}

/* ── Override light-gray backgrounds ── */
.elementor-section[style*="background-color:#f9f9f9"],
.elementor-section[style*="background-color: #f9f9f9"],
.elementor-section[style*="background-color:#f8f8f8"],
.elementor-section[style*="background-color:#f5f5f5"],
.elementor-section[style*="background-color: rgb(249"],
.elementor-section[style*="background-color: rgb(248"],
.elementor-section[style*="background-color: rgb(245"],
.e-con[style*="background-color:#f9f9f9"],
.e-con[style*="background-color: #f9f9f9"],
.e-con[style*="background-color:#f8f8f8"],
.e-con[style*="background-color:#f5f5f5"],
.e-con[style*="background-color: rgb(249"],
.e-con[style*="background-color: rgb(248"],
.e-con[style*="background-color: rgb(245"] {
  background-color: var(--dd-bg-medium) !important;
}


/* ═══════════════════════════════════════════════════════════════════
   5. TYPOGRAPHY — headings, paragraphs, links, lists, blockquotes
   ═══════════════════════════════════════════════════════════════════ */

/* ── Headings ── */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Montserrat', sans-serif;
  line-height: 1.2;
}
h1 { font-size: 2.5rem;  font-weight: 700; color: var(--dd-gold); }
h2 { font-size: 2rem;    font-weight: 700; color: var(--dd-gold); }
h3 { font-size: 1.5rem;  font-weight: 700; color: var(--dd-gold); }
h4 { font-size: 1.25rem; font-weight: 700; color: var(--dd-text); }
h5 { font-size: 1.1rem;  font-weight: 600; color: var(--dd-text); }
h6 { font-size: 1rem;    font-weight: 600; color: var(--dd-text-80); }

/* ── Body text ── */
p, li, td, th, caption, label, figcaption {
  color:       var(--dd-text-80);
  font-family: 'Open Sans', sans-serif;
  font-size:   16px;
  line-height: 1.65;
}

/* ── Links ── */
a {
  color:           var(--dd-gold-bright);
  text-decoration: none;
  transition:      color 0.2s ease;
}
a:hover,
a:focus-visible {
  color:           #ffffff;
  text-decoration: underline;
}

/* Don't override nav/button links with body link colour */
.elementor-button,
.menu-item a,
.site-nav-inner a,
nav a {
  color: inherit;
}
.menu-item a:hover,
.site-nav-inner a:hover {
  color:           var(--dd-gold-bright);
  text-decoration: none;
}

/* ── Lists ── */
ul, ol {
  color:        var(--dd-text-80);
  padding-left: 1.4em;
}
li { margin-bottom: 0.4em; }

/* ── Blockquote ── */
blockquote {
  background:    rgba(255, 255, 255, 0.03);
  border-left:   4px solid var(--dd-gold);
  border-radius: 0 var(--dd-card-radius) var(--dd-card-radius) 0;
  color:         var(--dd-text-80);
  font-style:    italic;
  margin:        1.5em 0;
  padding:       1em 1.5em;
}
blockquote cite {
  color:       var(--dd-text-55);
  display:     block;
  font-size:   0.85em;
  font-style:  normal;
  font-weight: 600;
  margin-top:  0.75em;
}

/* ── Horizontal rule ── */
hr {
  border:     none;
  border-top: 1px solid var(--dd-border-raw);
  margin:     2rem 0;
}

/* ── Emphasis ── */
strong, b { color: var(--dd-text);    font-weight: 700; }
em, i      { color: var(--dd-text-80); }


/* ═══════════════════════════════════════════════════════════════════
   6. ELEMENTOR WIDGET OVERRIDES
   ═══════════════════════════════════════════════════════════════════ */

/* ── Text editor ── */
.elementor-widget-text-editor .elementor-widget-container,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  color:       var(--dd-text-80);
  font-family: 'Open Sans', sans-serif;
  font-size:   16px;
  line-height: 1.65;
}

/* ── Heading widget ── */
.elementor-widget-heading .elementor-heading-title {
  color:       var(--dd-gold);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
}

/* ── Divider widget ── */
.elementor-widget-divider .elementor-divider-separator {
  border-top-color: var(--dd-border-raw);
}
.elementor-widget-divider .elementor-divider__text {
  color:          var(--dd-gold);
  font-family:    'Montserrat', sans-serif;
  font-size:      12px;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ── Icon list widget ── */
.elementor-widget-icon-list .elementor-icon-list-item > a {
  color: var(--dd-text-80);
}
.elementor-widget-icon-list .elementor-icon-list-icon {
  color: var(--dd-gold);
}

/* ── Image caption ── */
.elementor-widget-image .widget-image-caption,
figcaption {
  color:      var(--dd-text-55);
  font-size:  13px;
  font-style: italic;
  text-align: center;
  margin-top: 8px;
}

/* ── Accordion / toggle ── */
.elementor-accordion .elementor-tab-title {
  background-color: var(--dd-bg-medium);
  border-color:     var(--dd-border-raw);
  color:            var(--dd-text);
  font-family:      'Montserrat', sans-serif;
  font-weight:      700;
}
.elementor-accordion .elementor-tab-title.elementor-active {
  color: var(--dd-gold);
}
.elementor-accordion .elementor-tab-content {
  background-color: var(--dd-bg-dark);
  border-color:     var(--dd-border-raw);
  color:            var(--dd-text-80);
  font-family:      'Open Sans', sans-serif;
}

/* ── Tabs ── */
.elementor-tabs .elementor-tab-title {
  background-color: var(--dd-bg-medium);
  color:            var(--dd-text-70);
  font-family:      'Montserrat', sans-serif;
  font-weight:      700;
  border-color:     var(--dd-border-raw);
}
.elementor-tabs .elementor-tab-title.elementor-active {
  background-color: var(--dd-bg-dark);
  color:            var(--dd-gold);
  border-bottom-color: var(--dd-bg-dark);
}
.elementor-tabs-content-wrapper {
  background-color: var(--dd-bg-dark);
  border-color:     var(--dd-border-raw);
  color:            var(--dd-text-80);
}


/* ═══════════════════════════════════════════════════════════════════
   7. BUTTONS & CTAs
   ═══════════════════════════════════════════════════════════════════ */

/* ── Elementor button widget — primary ── */
.elementor-button,
.elementor-button-wrapper .elementor-button,
.wp-block-button__link,
a.elementor-button {
  background-color: var(--dd-red)  !important;
  border-color:     var(--dd-red)  !important;
  color:            #ffffff        !important;
  font-family:      'Montserrat', sans-serif !important;
  font-weight:      700            !important;
  text-transform:   uppercase      !important;
  letter-spacing:   1.5px          !important;
  border-radius:    4px            !important;
  transition:       background 0.2s ease, color 0.2s ease !important;
}
.elementor-button:hover,
.elementor-button-wrapper .elementor-button:hover,
.wp-block-button__link:hover,
a.elementor-button:hover {
  background-color: var(--dd-red-hover) !important;
  border-color:     var(--dd-red-hover) !important;
  color:            var(--dd-gold)      !important;
}

/* ── Outlined / ghost button variant ── */
.elementor-button.elementor-button-hollow,
a.elementor-button.elementor-button-hollow {
  background-color: transparent         !important;
  border:           2px solid var(--dd-gold) !important;
  color:            var(--dd-gold)       !important;
}
.elementor-button.elementor-button-hollow:hover {
  background-color: var(--dd-gold) !important;
  color:            #111           !important;
}


/* ═══════════════════════════════════════════════════════════════════
   8. SCHEDULE & EVENT LISTINGS
      Shared classes used across all DD location schedule pages.
      Pattern matches denvermurdermystery.com exactly.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Schedule section wrapper ── */
.shows-section,
.schedule-section,
.dd-shows-list {
  background: var(--dd-bg-darkest);
  padding:    40px 24px;
}
.shows-inner,
.schedule-inner,
.dd-shows-inner {
  max-width: 1200px;
  margin:    0 auto;
}

/* ── Section heading ── */
.section-heading,
.shows-heading {
  font-family:    'Montserrat', sans-serif;
  font-size:      26px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-align:     center;
  color:          #ffffff;
  margin:         0 0 32px;
}
.section-heading .highlight-gold,
.shows-heading   .highlight-gold {
  color: var(--dd-gold);
}

/* ── Month separator header ── */
.month-header {
  font-family:    'Montserrat', sans-serif;
  font-size:      13px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color:          var(--dd-gold-bright);
  border-bottom:  1px solid rgba(245, 184, 32, 0.30);
  padding-bottom: 8px;
  margin:         32px 0 16px;
}
.month-header:first-child { margin-top: 0; }

/* ── Event card ── */
.event-card {
  display:        flex;
  flex-direction: row;
  align-items:    stretch;
  gap:            0;
  background:     var(--dd-card-bg);
  border:         1px solid var(--dd-card-border) !important;
  border-radius:  6px;
  overflow:       hidden;
  margin-bottom:  16px;
  transition:     background 0.2s ease, border-color 0.2s ease;
}
.event-card:hover {
  background:   rgba(255, 255, 255, 0.07);
  border-color: rgba(245, 184, 32, 0.55) !important;
}

/* Next-show callout */
.event-card.dd-next-show,
.event-card[style*="border: 2px solid gold"],
.event-card[style*="border:2px solid gold"] {
  border:     2px solid var(--dd-gold-bright) !important;
  background: rgba(245, 184, 32, 0.06)        !important;
  position:   relative;
}
.event-card.dd-next-show::before {
  content:                    'NEXT SHOW';
  position:                   absolute;
  top:                        0;
  left:                       0;
  background:                 var(--dd-gold-bright);
  color:                      #111;
  font-family:                'Montserrat', sans-serif;
  font-size:                  10px;
  font-weight:                700;
  letter-spacing:             0.12em;
  padding:                    3px 10px;
  border-bottom-right-radius: 4px;
  z-index:                    1;
}

/* ── Event image thumbnail ── */
.event-image {
  flex:       0 0 140px;
  width:      140px;
  overflow:   hidden;
  background: #111;
}
.event-image a   { display: block; width: 100%; height: 100%; }
.event-image img {
  display:    block;
  width:      100%;
  height:     100%;
  object-fit: cover;
  transition: opacity 0.2s ease;
}
.event-card:hover .event-image img { opacity: 0.85; }

/* ── Event info block ── */
.event-info {
  flex:            1 1 0;
  padding:         20px 24px;
  display:         flex;
  flex-direction:  column;
  justify-content: center;
  gap:             8px;
}

/* Event title */
.event-info h2,
.event-info h3,
.event-info h4 {
  font-family:    'Montserrat', sans-serif !important;
  font-size:      18px                    !important;
  font-weight:    700                     !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height:    1.2;
  margin:         0 0 4px                 !important;
  color:          #b20000                 !important;
}
.event-info h2 a,
.event-info h3 a,
.event-info h4 a {
  color:           inherit    !important;
  text-decoration: underline  !important;
}
.event-info h2 a:hover,
.event-info h3 a:hover,
.event-info h4 a:hover {
  color: #e02020 !important;
}

/* Venue / meta line */
.event-info p {
  font-family: 'Open Sans', sans-serif;
  font-size:   13px                  !important;
  color:       var(--dd-text-70)     !important;
  line-height: 1.5;
  margin:      0;
}
.event-info p strong { color: rgba(255, 255, 255, 0.90) !important; }

/* Date / time / venue detail strip */
.event-details {
  display:     flex;
  flex-wrap:   wrap;
  align-items: center;
  gap:         14px;
  margin-top:  6px;
}
.event-details strong {
  font-family: 'Open Sans', sans-serif;
  font-size:   13px;
  color:       var(--dd-text-55);
  font-style:  italic;
}

/* ── Ticket button ── */
.ticket-button,
a.ticket-button {
  display:         inline-block;
  padding:         8px 20px;
  background:      var(--dd-red-ticket) !important;
  color:           #ffffff              !important;
  font-family:     'Montserrat', sans-serif;
  font-size:       12px;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  1.2px;
  text-decoration: none !important;
  border-radius:   3px;
  transition:      background 0.2s ease, color 0.2s ease;
  white-space:     nowrap;
  flex-shrink:     0;
}
.ticket-button:hover,
a.ticket-button:hover,
.ticket-button:focus-visible {
  background: var(--dd-red-bright)  !important;
  color:      var(--dd-gold-bright) !important;
}

/* ── "View all shows" CTA link ── */
.btn-view-all {
  display:         inline-block;
  padding:         12px 28px;
  background:      var(--dd-red);
  color:           #ffffff !important;
  font-family:     'Montserrat', sans-serif;
  font-size:       14px;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  1.2px;
  text-decoration: none;
  border-radius:   4px;
  transition:      background 0.2s ease, color 0.2s ease;
  text-align:      center;
}
.btn-view-all:hover { background: var(--dd-red-hover); color: var(--dd-gold) !important; }

/* ── Event override badge ──
   The worker injects overrides as a second <a> tag immediately after
   the title <a>/<h4> inside .event-info.  Since .event-info is a flex
   column, that second <a> falls onto its own row.

   Fix: when .event-info contains two consecutive <a> children (i.e. an
   override is present), switch to row-wrap so the title and badge sit
   side-by-side; p and .event-details get flex: 0 0 100% to stay on
   their own rows.  :has() is supported in all modern browsers.

   Badge styling overrides the worker's inline styles (#fff9cc, gold
   border, font-size:large) to match the DD dark-theme token set —
   same visual language as the "NEXT SHOW" ribbon.
*/
.event-info:has(> a + a) {
  flex-direction: row;
  flex-wrap:      wrap;
  justify-content: flex-start;
  align-items:    center;
  align-content:  center;
}
.event-info:has(> a + a) > a:first-child { flex: 1 1 auto; min-width: 0; overflow-wrap: break-word; word-break: break-word; }
.event-info:has(> a + a) > a + a         { flex: 0 0 auto; align-self: center; }
.event-info:has(> a + a) > p,
.event-info:has(> a + a) > .event-details { flex: 0 0 100%; }

/* Strip the wrapper <div> sizing that inflates the badge height */
.event-info > a + a > div {
  min-height: unset !important;
  display:    inline-flex !important;
  align-items: center;
}

/* Theme-compliant badge — matches the NEXT SHOW ribbon palette */
.event-info > a + a span {
  display:         inline-block    !important;
  padding:         3px 10px        !important;
  margin:          0               !important;
  background:      var(--dd-gold-bright) !important;
  color:           #111            !important;
  border:          none            !important;
  border-radius:   4px             !important;
  font-family:     'Montserrat', sans-serif !important;
  font-size:       13px            !important;
  font-weight:     700             !important;
  letter-spacing:  0.12em          !important;
  text-transform:  uppercase       !important;
  white-space:     nowrap          !important;
  text-decoration: none            !important;
}
.event-info > a + a:hover span {
  background: var(--dd-gold) !important;
}


/* ═══════════════════════════════════════════════════════════════════
   9. CONTENT CARDS & INFO BOXES
   ═══════════════════════════════════════════════════════════════════ */

/* ── Generic dark card ── */
.dd-card,
.info-card,
.feature-card {
  background:    var(--dd-card-bg);
  border:        1px solid var(--dd-card-border);
  border-radius: var(--dd-card-radius);
  padding:       28px;
  color:         var(--dd-text-80);
}
.dd-card    h2, .dd-card    h3,
.info-card  h2, .info-card  h3,
.feature-card h2, .feature-card h3 {
  color:          var(--dd-gold);
  font-family:    'Montserrat', sans-serif;
  font-weight:    700;
  text-transform: uppercase;
  margin:         0 0 12px;
}

/* ═══════════════════════════════════════════════════════════════════
  10. TABLES
   ═══════════════════════════════════════════════════════════════════ */
table {
  width:           100%;
  border-collapse: collapse;
  border-spacing:  0;
  color:           var(--dd-text-80);
  font-family:     'Open Sans', sans-serif;
  font-size:       15px;
  margin-bottom:   1.5em;
}
thead tr {
  background:   var(--dd-bg-medium);
  border-bottom: 1px solid var(--dd-border-raw);
}
tbody tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition:    background 0.15s ease;
}
tbody tr:hover { background: rgba(255, 255, 255, 0.04); }

th {
  color:          var(--dd-gold);
  font-family:    'Montserrat', sans-serif;
  font-size:      12px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  padding:        12px 16px;
  text-align:     left;
}
td { padding: 12px 16px; }

/* WordPress block table */
.wp-block-table td,
.wp-block-table th   { border-color: var(--dd-border-raw); }
.wp-block-table table { border-color: var(--dd-border-raw); }


/* ═══════════════════════════════════════════════════════════════════
  11. FORMS — Gravity Forms
   ═══════════════════════════════════════════════════════════════════ */

/* Wrapper */
.gform_wrapper,
.gform_legacy_markup_wrapper,
.gform_body {
  background-color: transparent;
  color:            var(--dd-text);
}

/* Labels */
.gfield_label,
.gform-field-label,
.ginput_container label {
  color:         var(--dd-text) !important;
  font-family:   'Open Sans', sans-serif;
  font-size:     14px;
  font-weight:   600;
  margin-bottom: 6px;
  display:       block;
}

/* Inputs, textareas, selects */
.gfield input,
.gfield textarea,
.gfield select,
.ginput_container input,
.ginput_container textarea,
.ginput_container select,
.gform-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.gform-body textarea,
.gform-body select {
  background:    rgba(255, 255, 255, 0.06) !important;
  border:        1px solid rgba(245, 184, 32, 0.25) !important;
  border-radius: 4px !important;
  color:         var(--dd-text) !important;
  font-family:   'Open Sans', sans-serif;
  font-size:     15px;
  padding:       10px 14px !important;
  width:         100%;
  transition:    border-color 0.2s ease;
}
.gfield input:focus,
.gfield textarea:focus,
.gfield select:focus,
.ginput_container input:focus,
.ginput_container textarea:focus {
  border-color: var(--dd-gold-bright) !important;
  outline:      none;
}

/* Placeholder text */
.gfield input::placeholder,
.gfield textarea::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

/* Submit button */
.gform_footer input[type="submit"],
.gform_page_footer input[type="submit"],
#gform_submit_button_1,
.gform_button {
  background-color: var(--dd-red)    !important;
  border:           none              !important;
  border-radius:    4px               !important;
  color:            #ffffff           !important;
  cursor:           pointer           !important;
  font-family:      'Montserrat', sans-serif !important;
  font-size:        16px              !important;
  font-weight:      700               !important;
  letter-spacing:   1.5px             !important;
  padding:          14px 32px         !important;
  text-transform:   uppercase         !important;
  width:            100%;
  transition:       background 0.2s ease !important;
}
.gform_footer input[type="submit"]:hover,
#gform_submit_button_1:hover,
.gform_button:hover {
  background-color: var(--dd-red-hover) !important;
}

/* Validation message */
.gfield_validation_message,
.validation_message {
  color:       #ff6b6b;
  font-family: 'Open Sans', sans-serif;
  font-size:   13px;
  margin-top:  4px;
}

/* Confirmation message */
.gform_confirmation_message {
  background:    rgba(201, 168, 68, 0.08);
  border:        1px solid rgba(201, 168, 68, 0.30);
  border-radius: var(--dd-card-radius);
  color:         var(--dd-gold);
  font-size:     18px;
  padding:       20px;
}


/* ═══════════════════════════════════════════════════════════════════
  12. WORDPRESS DEFAULT CONTENT (entry-content / wp-block-*)
   ═══════════════════════════════════════════════════════════════════ */
.entry-content,
.wp-block-post-content,
.post-content {
  color: var(--dd-text-80);
}
.entry-content h2,
.entry-content h3 { color: var(--dd-gold); }
.entry-content a  { color: var(--dd-gold-bright); text-decoration: underline; }
.entry-content a:hover { color: #ffffff; }

/* Block quote */
.wp-block-quote {
  background:  rgba(255, 255, 255, 0.03);
  border-left: 4px solid var(--dd-gold);
  padding:     1em 1.5em;
  margin:      1.5em 0;
}
.wp-block-quote p    { color: var(--dd-text-80); font-style: italic; }
.wp-block-quote cite { color: var(--dd-text-55); font-size: 0.85em; }

/* Cover & group blocks */
.wp-block-cover,
.wp-block-group { color: var(--dd-text); }


/* ═══════════════════════════════════════════════════════════════════
  13. MEDIA — images, video wrappers
   ═══════════════════════════════════════════════════════════════════ */

/* Strip any theme-added border/shadow from content images */
.entry-content img,
.elementor-widget-image img {
  border:        none;
  box-shadow:    none;
  border-radius: 0;
}

/* Video widget dark background before playback */
.elementor-widget-video .elementor-wrapper,
.elementor-video-container {
  background:    #111;
  border-radius: var(--dd-card-radius);
}


/* ═══════════════════════════════════════════════════════════════════
  14. RESPONSIVE OVERRIDES
   ═══════════════════════════════════════════════════════════════════ */

/* ── Tablet ≤ 1024px ── */
@media (max-width: 1024px) {
  .event-image              { flex: 0 0 120px; width: 120px; }
  .why-choose-grid          { grid-template-columns: 1fr; gap: 28px; }
  .why-choose               { padding: 40px 24px; }
}

/* ── Mobile ≤ 767px ── */
@media (max-width: 767px) {
  h1 { font-size: 2rem;    }
  h2 { font-size: 1.6rem;  }
  h3 { font-size: 1.25rem; }

  .event-card             { flex-direction: column-reverse; }
  .event-image            { flex: 0 0 180px; width: 100%; height: 180px; }
  .event-info             { padding: 16px; text-align: center; align-items: center; }
  .event-info h2,
  .event-info h3,
  .event-info h4          { font-size: 15px !important; }
  .event-details          { flex-direction: column; align-items: center; gap: 10px; }
  .event-info:has(> a + a) { justify-content: center; }
  .event-info:has(> a + a) > p,
  .event-info:has(> a + a) > .event-details { text-align: center; }

  .shows-section,
  .schedule-section       { padding: 28px 16px; }
  .section-heading,
  .shows-heading          { font-size: 20px; }

  .why-choose             { padding: 40px 20px; }
  .expect-section,
  .testimonials-section,
  .pricing-section        { padding: 40px 20px; }

  table                   { font-size: 13px; }
  th, td                  { padding: 10px 12px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   PAGE TEMPLATE HERO SECTIONS
   Extracted from inline <style> blocks in PHP page templates.
   Each hero uses unique namespaced classes (djs-, ile-, pe-) to avoid leaks.
   ═══════════════════════════════════════════════════════════════════════════ */


/* ── Front page: #dd-solve hero (.djs-*) ─────────────────────────────────── */

#dd-solve {
  position:            relative;
  display:             flex;
  flex-direction:      column;
  align-items:         center;
  justify-content:     center;
  min-height:          550px;
  background-image:    url('https://www.thedinnerdetective.com/_images/main-page-bkgd.avif');
  background-position: top center;
  background-attachment: scroll;
  background-repeat:   no-repeat;
  background-size:     cover;
  isolation:           isolate;
}

#dd-solve::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background: rgba(0, 0, 0, 0.60);
  z-index:    0;
  pointer-events: none;
}

#dd-solve > * {
  position: relative;
  z-index:  1;
  width:     100%;
}

.djs-wrap {
  max-width:      1200px;
  margin:         0 auto;
  display:        flex;
  flex-direction: column;
  align-items:    center;
  width:          100%;
  padding:        0 40px;
}

.djs-header {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  width:          100%;
}

.djs-eyebrow {
  color:           gray;
  font-size:       20px;
  font-family:     'Special Elite', sans-serif;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  0.18em;
  text-align:      center;
  text-shadow:     2px 2px 0 #000;
  line-height:     1.2;
}

.djs-eyebrow sup {
  font-size:      0.65em;
  vertical-align: super;
}

.djs-divider {
  width:      75%;
  border:     none;
  border-top: 1px solid rgba(255, 255, 255, 0.30);
  margin:     10px auto;
}

.djs-headline {
  color:          #FFFFFF;
  font-family:    'Montserrat', sans-serif;
  font-size:      60px;
  font-weight:    700;
  text-transform: uppercase;
  text-align:     center;
  text-shadow:    2px 2px 0 #000;
  line-height:    1.1;
  margin:         0 0 20px;
}

.djs-headline span { color: #F5B820; }

.djs-body {
  color:       #FFFFFF;
  font-family: 'Open Sans', sans-serif;
  font-size:   18px;
  line-height: 1.65;
  text-align:  center;
  width:       70%;
  margin:      0 auto 40px;
}

.djs-btn-row {
  display:         flex;
  flex-direction:  row;
  flex-wrap:       wrap;
  align-items:     center;
  justify-content: center;
  gap:             16px;
  margin:          0 0 48px;
  width:           100%;
}

.djs-btn {
  display:         inline-block;
  padding:         16px 34px;
  font-family:     'Montserrat', sans-serif;
  font-size:       18px;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  1.5px;
  text-align:      center;
  text-decoration: none !important;
  text-shadow:     1px 1px 0 #000;
  border-radius:   4px;
  cursor:          pointer;
  transition:      background 0.2s ease, border-color 0.2s ease;
  white-space:     nowrap;
}

.djs-btn--primary {
  background: #8B1A1A;
  color:      #FFFFFF !important;
  border:     none;
}

.djs-btn--primary:hover,
.djs-btn--primary:focus-visible {
  background:      #9B2222;
  color:           #F5B820 !important;
  text-decoration: none;
}

.djs-btn--secondary {
  background:    transparent;
  color:         #FFFFFF !important;
  border:        1px solid #FFFFFF;
  border-radius: 1px;
}

.djs-btn--secondary:hover,
.djs-btn--secondary:focus-visible {
  background:      rgba(255,255,255,0.10);
  color:           #F5B820 !important;
  text-decoration: none;
}

.djs-social-proof {
  color:          #FFFFFF;
  font-family:    'Open Sans', sans-serif;
  font-size:      18px;
  letter-spacing: 1px;
  line-height:    1.8;
  text-align:     center;
}

.djs-social-proof .djs-gold { color: #F5B820; }

.djs-social-proof sup {
  font-size:      0.65em;
  vertical-align: super;
}

@media (max-width: 1024px) {
  #dd-solve    { padding: 60px 0; }
  .djs-wrap    { padding: 0 40px; }
  .djs-headline { font-size: 42px; }
  .djs-body    { font-size: 16px; width: 90%; }
}

@media (max-width: 767px) {
  #dd-solve        { padding: 50px 0; }
  .djs-wrap        { padding: 0 24px; }
  .djs-headline    { font-size: 34px; }
  .djs-body        { font-size: 15px; width: 100%; }
  .djs-btn-row     { flex-direction: column; align-items: stretch; }
  .djs-btn         { text-align: center; }
}


/* ── Front page: misc social/instagram widgets ───────────────────────────── */

.holiday-banner,
.holiday-banner img,
.holiday-banner source { width: 100%; max-width: 1200px !important; }

div.sb-item-text {
  height:     100px;
  max-height: 100px;
  overflow:   hidden;
  text-overflow: ellipsis;
}

.sbi_photo img { max-height: 300px; max-width: 300px; }

/* ── Smash Balloon Reviews Feed — legible text on dark background ── */
/* Targets the Reviews Feed Pro plugin wrapper and all child text nodes */
.reviews-feed-area,
[id^="reviews-feed"],
[class*="srf-feed"],
[class*="rss-feed"] {
  background: transparent !important;
  color:      var(--dd-text) !important;
}

.reviews-feed-area *,
[id^="reviews-feed"] *,
[class*="srf-feed"] *,
[class*="rss-feed"] * {
  color: var(--dd-text) !important;
}

/* Individual review cards */
.srf-review,
.rss-review,
[class*="srf-review"],
[class*="rss-review-item"],
.sb-review-item {
  background-color: rgba(255, 255, 255, 0.06) !important;
  border:           1px solid rgba(201, 168, 68, 0.20) !important;
  border-radius:    8px !important;
  color:            var(--dd-text) !important;
}

/* Star ratings — keep gold */
.srf-review__rating *,
.rss-rating *,
[class*="review-rating"] * { color: var(--dd-star, #f5c518) !important; }


/* ── Tickets page: #dd-immersive hero (.ile-*) ───────────────────────────── */

#dd-immersive {
  position:            relative;
  display:             flex;
  flex-direction:      column;
  align-items:         center;
  justify-content:     center;
  min-height:          480px;
  padding:             40px 0;
  background-image:    url('https://www.thedinnerdetective.com/_images/tickets-bkgd.avif');
  background-position: bottom center;
  background-size:     cover;
  background-repeat:   repeat;
  isolation:           isolate;
  border-bottom:       1px solid rgba(201,168,68,0.18);
}

#dd-immersive::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background: rgba(0, 0, 0, 0.70);
  z-index:    0;
  pointer-events: none;
}

#dd-immersive > * {
  position: relative;
  z-index:  1;
  width:     100%;
}

.ile-wrap {
  max-width:      1200px;
  margin:         0 auto;
  padding:        20px 20px 0;
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            0;
  width:          100%;
}

.ile-header {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  width:          100%;
}

.ile-eyebrow {
  color:          gray;
  font-size:      20px;
  font-family:    'Special Elite', sans-serif;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  text-align:     center;
  text-shadow:    2px 2px 0 #000;
  line-height:    1.2;
}

.ile-eyebrow sup { font-size: 0.65em; vertical-align: super; }

.ile-divider {
  width:      75%;
  border:     none;
  border-top: 1px solid rgba(255, 255, 255, 0.30);
  margin:     10px auto;
}

.ile-headline {
  color:          #FFFFFF;
  font-family:    'Montserrat', sans-serif;
  font-size:      42px;
  font-weight:    700;
  text-transform: uppercase;
  text-align:     center;
  text-shadow:    2px 2px 0 #000;
  line-height:    1.15;
  margin:         0 0 12px;
}

.ile-headline span { color: #F5B820; }

.ile-sub {
  color:       #FFFFFF;
  font-family: 'Open Sans', sans-serif;
  font-size:   18px;
  line-height: 1.6;
  text-align:  center;
  margin:      0 0 28px;
}

.ile-grid {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   20px;
  width:                 100%;
  max-width:             1200px;
  margin:                0 0 20px;
}

.ile-card {
  position:            relative;
  display:             flex;
  flex-direction:      column;
  justify-content:     space-between;
  align-items:         flex-start;
  min-height:          320px;
  padding:             24px;
  border:              3px solid rgba(201, 168, 68, 0.35);
  background-position: top center;
  background-size:     cover;
  background-repeat:   no-repeat;
  overflow:            hidden;
}

.ile-card--1 { background-image: url('https://www.thedinnerdetective.com/_images/tickets-1.avif'); }
.ile-card--2 { background-image: url('https://www.thedinnerdetective.com/_images/tickets-2.avif'); }
.ile-card--3 { background-image: url('https://www.thedinnerdetective.com/_images/tickets-3.avif'); }

.ile-card::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.60) 55%, rgba(0,0,0,0.75) 100%);
  z-index:    0;
  pointer-events: none;
}

.ile-card > * { position: relative; z-index: 1; }

.ile-card-title {
  color:          #F5B820 !important;
  font-family:    'Montserrat', sans-serif;
  font-size:      22px;
  font-weight:    800;
  text-transform: uppercase;
  line-height:    1.15;
  text-shadow:    1px 1px 0 #000;
  margin:         0 0 10px;
}

.ile-card-body {
  color:       #FFFFFF;
  font-family: 'Open Sans', sans-serif;
  font-size:   15px;
  line-height: 1.55;
  margin:      0;
  align-self:  flex-end;
  width:       100%;
}

.ile-cta-headline {
  color:          #FFFFFF;
  font-family:    'Montserrat', sans-serif;
  font-size:      42px;
  font-weight:    800;
  text-transform: uppercase;
  text-align:     center;
  line-height:    1.1;
  text-shadow:    1px 1px 0 #000;
  margin:         0 0 12px;
}

.ile-cta-headline span { color: #F5B820; }

.ile-cta-sub {
  color:       #FFFFFF;
  font-family: 'Open Sans', sans-serif;
  font-size:   18px;
  line-height: 1.6;
  text-align:  center;
  margin:      0 0 24px;
}

.ile-btn {
  display:         inline-block;
  padding:         16px 34px;
  background:      #8B1A1A;
  color:           #FFFFFF !important;
  font-family:     'Montserrat', sans-serif;
  font-size:       18px;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  1.5px;
  text-align:      center;
  text-decoration: none;
  text-shadow:     1px 1px 0 #000;
  border:          none;
  border-radius:   4px;
  cursor:          pointer;
  transition:      background 0.2s ease;
}

.ile-btn:hover,
.ile-btn:focus-visible {
  background:      #9B2222;
  color:           #F5B820 !important;
  text-decoration: none;
}

@media (max-width: 1024px) {
  #dd-immersive { padding: 40px 0; }
  .ile-card--1, .ile-card--2, .ile-card--3 { display: flex; }
  .ile-cta-headline { font-size: 34px; }
}

@media (max-width: 767px) {
  #dd-immersive     { padding: 40px 0; }
  .ile-headline     { font-size: 34px; }
  .ile-sub          { font-size: 15px; }
  .ile-cta-headline { font-size: 26px; }
  .ile-cta-sub      { font-size: 15px; }
  .ile-btn          { align-self: stretch; }
  .ile-card--1,
  .ile-card--3      { display: none; }
  #headline-bottom-1,
  #headline-bottom-2 { display: none !important; }
  .ile-grid          { grid-template-columns: 1fr; }
}


/* ── Shared hero: #private-events-cta + .pe-* ───────────────────────────── */
/* background-image is set per-page via style attribute on <section>         */

#private-events-cta {
  position:        relative;
  display:         flex;
  flex-direction:  row;
  flex-wrap:       wrap;
  align-items:     center;
  justify-content: space-evenly;
  gap:             0;
  min-height:      605px;
  padding:         3%; /* matches critical-atf.css — overrides the flat 20px */
  margin-bottom:   20px;
  /* background-image set inline per template */
  background-position: center right;
  background-repeat:   no-repeat;
  background-size:     cover;
  isolation:           isolate;
  border-bottom:       1px solid rgba(201,168,68,0.18);
}

#private-events-cta::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background: rgba(0, 0, 0, 0.60);
  z-index:    0;
  pointer-events: none;
}

#private-events-cta > * { position: relative; z-index: 1; }

.pe-inner-wrap {
  width:          100%;
  max-width:      1200px;
  margin:         0 auto;
  display:        flex;
  flex-direction: column;
}

.pe-header {
  width:          100%;
  display:        flex;
  flex-direction: column;
  align-items:    center;
}

.pe-eyebrow {
  color:          gray;
  font-size:      20px;
  font-family:    'Special Elite', serif;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  text-align:     center;
  text-shadow:    2px 2px 0 #000;
  line-height:    1.2;
}

.pe-eyebrow sup { font-size: 0.65em; vertical-align: super; }

.pe-divider {
  width:      75%;
  border:     none;
  border-top: 1px solid rgba(255, 255, 255, 0.30);
  margin:     10px auto;
}

/* Video col (#private-events-cta-right) on the LEFT across all hero pages.
   row-reverse: copy is first in DOM, video second — reverse puts video on left.
   .pe-row modifier: normal row order — copy LEFT, video RIGHT (WTE & Gift Certs). */
.pe-content-row {
  display:         flex;
  flex-direction:  row-reverse;
  justify-content: space-between;
  align-items:     center;
  min-height:      490px;
  width:           100%;
}

.pe-content-row.pe-row { flex-direction: row; }

#private-events-cta-left {
  display:        flex;
  flex-direction: column;
  align-items:    flex-start;
  justify-content: center;
  width:          47%;
  gap:            10px;
}

.pe-headline {
  color:          #F5B820;
  font-family:    'Montserrat', sans-serif;
  font-size:      42px;
  font-weight:    700;
  text-transform: uppercase;
  line-height:    1.12;
  text-shadow:    2px 2px 0 #000;
  margin:         0 0 20px;
}

.pe-headline span { color: #FFFFFF; }

.pe-body {
  color:       #FFFFFF;
  font-family: 'Open Sans', sans-serif;
  font-size:   17px;
  line-height: 1.65;
  text-shadow: 1px 1px 0 #000;
  margin:      0 0 24px;
}

.pe-body ul  { padding-left: 1.4em; margin-top: 0.5em; }
.pe-body li  { margin-bottom: 0.3em; }

.pe-btn {
  display:         block;
  align-self:      stretch;
  padding:         16px 34px;
  background:      #8B1A1A;
  color:           #FFFFFF !important;
  font-family:     'Montserrat', sans-serif;
  font-size:       18px;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  1.5px;
  text-align:      center;
  text-decoration: none;
  text-shadow:     1px 1px 0 #000;
  border:          none;
  border-radius:   4px;
  cursor:          pointer;
  transition:      background 0.2s ease;
}

.pe-btn:hover,
.pe-btn:focus-visible {
  background:      #9B2222;
  color:           #F5B820 !important;
  text-decoration: none;
}

#private-events-cta-right {
  display:        flex;
  flex-direction: column;
  justify-content: center;
  align-items:    center;
  width:          47%;
}

.pe-video-wrap {
  position:      relative;
  width:         100%;
  aspect-ratio:  16 / 9;
  border-radius: 10px;
  overflow:      hidden;
  background:    transparent;
}

.pe-video-wrap iframe {
  position: absolute;
  inset:    0;
  width:    100%;
  height:   100%;
  border:   0;
}

.pe-play-trigger {
  position:        absolute;
  inset:           0;
  display:         flex;
  align-items:     center;
  justify-content: center;
  cursor:          pointer;
  background:      transparent;
  background-color: transparent !important;
  border:          none !important;
  padding:         0;
}

.pe-play-circle {
  width:         90px;
  height:        90px;
  border-radius: 50%;
  border:        3px solid rgba(255, 255, 255, 0.90);
  display:       flex;
  align-items:   center;
  justify-content: center;
  background:    rgba(0, 0, 0, 0.20);
  transition:    background 0.2s ease, border-color 0.2s ease;
  flex-shrink:   0;
}

.pe-play-trigger:hover .pe-play-circle,
.pe-play-trigger:focus-visible .pe-play-circle {
  background:   rgba(0, 0, 0, 0.45);
  border-color: #FFFFFF;
}

.pe-play-circle svg {
  width:       28px;
  height:      28px;
  margin-left: 4px;
  fill:        #FFFFFF;
  flex-shrink: 0;
}

@media (max-width: 1024px) {
  #private-events-cta        { padding: 20px 40px; } /* 20px top/bottom, 40px sides */
  .pe-content-row            { flex-direction: column; min-height: auto; }
  .pe-headline               { text-align: center; }
  #private-events-cta-left  { width: 100%; padding-bottom: 40px; }
  #private-events-cta-right { display: none; }
}

@media (max-width: 767px) {
  #private-events-cta        { flex-direction: column; padding: 40px 20px; } /* 40px top/bottom, 20px sides */
  .pe-headline               { font-size: 34px; }
  .pe-body                   { font-size: 15px; }
  #private-events-cta-right { display: none; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   PAGE-SPECIFIC CONTENT SECTIONS
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Tickets page: cutoff notice ─────────────────────────────────────────── */

.dd-ticket-cutoff {
  background-color: rgba(245, 184, 32, 0.12);
  border:           1px solid rgba(245, 184, 32, 0.30);
  padding:          10px 16px;
  border-radius:    var(--dd-card-radius);
  text-align:       center;
  margin:           12px auto;
  max-width:        1200px;
  color:            #F0F0F0;
}

.dd-ticket-cutoff h6 { margin: 0; color: #C9A844; }


/* ── FAQ page: schema FAQ sections ──────────────────────────────────────── */

.schema-faq-section {
  background-color: rgba(255, 255, 255, 0.04);
  border:           1px solid rgba(255, 255, 255, 0.08);
  border-radius:    var(--dd-card-radius);
  margin:           20px 0;
  padding:          20px;
  color:            #F0F0F0;
}

.schema-faq-question {
  font-size:   x-large;
  font-family: 'Montserrat', Arial, sans-serif;
  color:       var(--dd-gold);
}

.schema-faq-answer {
  padding: 0 0 0 20px;
  color:   #F0F0F0;
}

/* Package image layout in FAQ */
.package {
  display:     flex;
  align-items: flex-start;
  gap:         20px;
}

.package img {
  max-width:  400px;
  max-height: 200px;
  flex-shrink: 0;
}

@media (max-width: 600px) {
  .package             { flex-direction: column; }
  .package img         { max-width: 100%; max-height: none; }
}


/* ── Gift certificates page: redemption box ──────────────────────────────── */

#gc-purchase-frame iframe {
  background-color: white;
  border-radius: 20px;
  padding: 20px;
}

.redemption-box {
  background-color: rgba(255, 255, 255, 0.05);
  border:           1px solid rgba(201, 168, 68, 0.25);
  border-radius:    var(--dd-card-radius);
  padding:          15px;
  margin-bottom:    20px;
  color:            #F0F0F0;
}

.redemption-box h3 {
  text-align:   center;
  font-size:    1.35rem;
  font-weight:  700;
  margin-bottom: 12px;
  font-family:  'Montserrat', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color:        var(--dd-gold);
}

.redemption-box p { font-size: 0.97rem; line-height: 1.6; margin-bottom: 16px; }

.redemption-box a       { color: var(--dd-gold-alt); font-weight: 700; text-decoration: underline; }
.redemption-box a:hover { color: var(--dd-gold); }

.gc-sample-image {
  display:   block;
  max-width: 600px;
  width:     100%;
  margin:    0 auto;
  height:    auto;
}

.fine-print {
  font-size:  0.88rem;
  line-height: 1.65;
  color:      #b0a080;
  font-style: italic;
}


/* ── Gap fix: eliminate space between sticky header spacer and first hero ── */

.site-main,
.site-main > .page-content,
.site-main > .elementor {
  margin-top:  0 !important;
  padding-top: 0 !important;
}

/* Remove any top margin/padding on the very first section or Elementor block */
.site-main > .page-content > *:first-child,
.site-main > .page-content > section:first-child,
.site-main > .elementor > .elementor-inner > .elementor-section:first-child,
.site-main > .elementor > .elementor-section:first-child,
.site-main > .elementor > .e-con.e-parent:first-child {
  margin-top:  0 !important;
  padding-top: 0 !important;
}

/* WordPress default content wrapper */
.wp-site-blocks,
#content,
.site-content {
  padding-top: 0 !important;
  margin-top:  0 !important;
}


/* ── Homepage: force dark on Elementor section backgrounds below the fold ── */

/* Catch element-specific rules in Elementor post-*.css that set white/light bg */
body.home .elementor-top-section,
body.home .e-con.e-parent {
  background-color: var(--dd-bg-dark) !important;
}

/* Restore sections that use background images (don't override their bg-color) */
body.home .elementor-top-section[style*="background-image"],
body.home .e-con.e-parent[style*="background-image"] {
  background-color: transparent !important;
}

.fine-print strong { font-style: italic; }


/* ── Private events page: past clients + how-different ──────────────────── */

.dd-past-clients {
  background:    var(--dd-bg-dark);
  border-bottom: 1px solid rgba(201,168,68,0.18);
  padding:       18px 24px;
  margin-top:    0;
}

.dd-past-clients__inner {
  max-width: 1200px;
  margin:    0 auto;
}

.dd-past-clients__heading {
  font-family:    'Montserrat', sans-serif;
  font-size:      11px;
  font-weight:    700;
  color:          rgba(255,255,255,0.45);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  text-align:     center;
  margin:         0 0 14px;
}

/* dd-how-different styles moved to v5 patch set below (redesigned grid) */
/* Legacy dd-bullseye kept for any remaining references */
.dd-bullseye { color: #C9A844; font-size: 1.1em; flex-shrink: 0; margin-top: 1px; }

/* Private events: Gravity Forms multi-page footer */
.gform_page_footer             { display: flex; flex-direction: row; }
.gform_page_footer input       { flex-grow: 1; }

/* Private events: minimum guests notice */
.minimum-guests-message {
  background-color: rgba(255, 255, 255, 0.06);
  border:           1px solid rgba(255, 255, 255, 0.20);
  padding:          20px;
  border-radius:    5px;
  max-width:        1200px;
  margin:           0 auto;
  color:            #F0F0F0;
}

/* Private events: packet banner */
#private-show-packet {
  min-height:        300px;
  width:             100vw;
  position:          relative;
  left:              50%;
  right:             50%;
  margin:            30px -50vw 30px -50vw;
  background-image:  url(https://www.thedinnerdetective.com/_images/pvt-show-packet-banner-img.webp);
  background-repeat: no-repeat;
  background-position: center center;
  background-size:   cover;
  display:           flex;
  align-items:       center;
  justify-content:   center;
  text-align:        center;
}

#private-show-packet a {
  position:         absolute;
  left:             50%;
  top:              50%;
  transform:        translate(-50%, -50%);
  background-color: #8B1A1A;
  padding:          15px;
  border-radius:    5px;
  border:           1px solid rgba(255,255,255,0.5);
  color:            white;
  text-decoration:  none;
}

#private-show-packet a:hover { background-color: #9B2222; }

#private-show-packet h4 { margin: 0; color: white; }

@media (max-width: 768px) {
  .dd-past-clients { padding: 14px 16px; }
  /* dd-how-different mobile handled in v5 patch set */
}

/* ── 404 page ─────────────────────────────────────────────────────────────── */
/* Elementor heading widget anchor color (used in main-site 404 template) */
p.elementor-heading-title a { color: #FFF606 !important; }


/* ═══════════════════════════════════════════════════════════════════
   15. ELEMENTOR SHORTCODE TEMPLATES — force dark theme
       Templates 117404-117420 (main site front page only)
       NOTE: Location-subsite templates 43581+43584 previously lived
       here, but elem_main_template() now bypasses Elementor's renderer
       entirely (get_post_field + apply_filters), so those classes never
       appear and the overrides are no longer needed.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Main site shortcode-rendered templates (117404–117420) ── */
.elementor-117404 .elementor-section,
.elementor-117404 .e-con,
.elementor-117407 .elementor-section,
.elementor-117407 .e-con,
.elementor-117410 .elementor-section,
.elementor-117410 .e-con,
.elementor-117413 .elementor-section,
.elementor-117413 .e-con,
.elementor-117416 .elementor-section,
.elementor-117416 .e-con,
.elementor-117420 .elementor-section,
.elementor-117420 .e-con {
  background-color: var(--dd-bg-dark) !important;
}

.elementor-117404 .elementor-container,
.elementor-117404 .elementor-widget-wrap,
.elementor-117404 .e-con-inner,
.elementor-117407 .elementor-container,
.elementor-117407 .elementor-widget-wrap,
.elementor-117407 .e-con-inner,
.elementor-117410 .elementor-container,
.elementor-117410 .elementor-widget-wrap,
.elementor-117410 .e-con-inner,
.elementor-117413 .elementor-container,
.elementor-117413 .elementor-widget-wrap,
.elementor-117413 .e-con-inner,
.elementor-117416 .elementor-container,
.elementor-117416 .elementor-widget-wrap,
.elementor-117416 .e-con-inner,
.elementor-117420 .elementor-container,
.elementor-117420 .elementor-widget-wrap,
.elementor-117420 .e-con-inner {
  background-color: transparent !important;
}

/* ── Catch-all: any Elementor element with an explicit white/near-white   ──
   background set via Elementor's generated post-CSS (not inline style).
   Targets the CSS custom property Elementor uses for widget backgrounds.  */
.elementor-widget-wrap,
.elementor-element-populated {
  /* Let the section/container background show through */
  background-color: transparent;
}

/* ── Elementor overlay backgrounds that bleed through ── */
.elementor-background-overlay {
  background-color: transparent !important;
  opacity:          0 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   16. FRONT-PAGE & CONTENT SECTION UTILITIES
       Classes used by PHP templates instead of inline style="" attrs.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Section wrapper (replaces inline padding + background) ── */
.dd-content-section {
  padding:    40px 20px;
  background: var(--dd-bg-darkest);
}

/* ── Inner max-width container (replaces inline max-width:1200px; margin:auto) ── */
.dd-content-inner {
  max-width: 1200px;
  margin:    20px auto;
}

/* ── CTA button — main site bottom rail (replaces .dd-cta-button with inline) ── */
.dd-cta-button {
  display:         inline-block;
  padding:         16px 34px;
  background:      var(--dd-red);
  color:           #FFFFFF !important;
  font-family:     'Montserrat', sans-serif;
  font-size:       16px;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  1.5px;
  text-align:      center;
  text-decoration: none;
  border-radius:   4px;
  cursor:          pointer;
  transition:      background 0.2s ease;
}
.dd-cta-button:hover,
.dd-cta-button:focus-visible {
  background: var(--dd-red-hover);
  color:      var(--dd-gold) !important;
}


/* ── 3-column main-site card grid ── */
.dd-main-card-grid {
  display:         flex;
  flex-wrap:       wrap;
  gap:             24px;
  justify-content: center;
}

.dd-main-card {
  flex:          1 1 280px;
  background:    var(--dd-card-bg);
  border:        1px solid var(--dd-card-border);
  border-radius: var(--dd-card-radius);
  overflow:      hidden;
}

.dd-main-card img {
  width:       100%;
  height:      200px;
  object-fit:  cover;
  display:     block;
}

.dd-main-card-body {
  padding:    20px;
  text-align: center;
}

.dd-main-card-body h3 {
  font-size:      20px !important;
  color:          var(--dd-gold) !important;
  margin-bottom:  12px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

.dd-main-card-body p {
  color:         var(--dd-text-70) !important;
  font-size:     14px !important;
  margin-bottom: 16px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}


/* ── 4-column location subsite card grid ── */
.dd-location-card-grid {
  display:         flex;
  flex-wrap:       wrap;
  gap:             20px;
  justify-content: center;
  max-width:       1200px;
  margin:          0 auto;
}

.dd-location-card {
  flex:          1 1 200px;
  background:    var(--dd-card-bg);
  border:        1px solid var(--dd-card-border);
  border-radius: var(--dd-card-radius);
  overflow:      hidden;
}

.dd-location-card-img {
  width:       100%;
  height:      160px;
  object-fit:  cover;
  display:     block;
}

.dd-location-card-body {
  padding:    16px;
  text-align: center;
}

.dd-location-card-title {
  font-size:      18px !important;
  color:          var(--dd-gold) !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  margin-bottom:  8px !important;
}

.dd-location-card-title a {
  color: inherit !important;
  text-decoration: none;
}
.dd-location-card-title a:hover {
  color: var(--dd-gold-alt) !important;
  text-decoration: underline;
}

.dd-location-card-desc {
  color:          var(--dd-text-70) !important;
  font-size:      13px !important;
  margin-bottom:  12px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

.dd-location-card-btn {
  display:         block;
  background:      var(--dd-red);
  color:           #fff !important;
  padding:         10px;
  border-radius:   4px;
  font-weight:     700;
  text-decoration: none !important;
  text-align:      center;
  font-family:     'Montserrat', sans-serif;
  font-size:       13px;
  text-transform:  uppercase;
  letter-spacing:  .05em;
  transition:      background 0.2s ease, color 0.2s ease;
}
.dd-location-card-btn:hover,
.dd-location-card-btn:focus-visible {
  background: var(--dd-red-hover);
  color:      var(--dd-gold) !important;
}


/* ── Responsive: location + main card grids ── */
@media (max-width: 767px) {
  .dd-location-card { flex: 1 1 100%; }
  .dd-main-card     { flex: 1 1 100%; }
}


/* ═══════════════════════════════════════════════════════════════════
   17. LANDING-STYLE SECTION COMPONENTS
       Stats Bar, Why Choose, Private Features, Expect Timeline,
       FAQ Accordion, Smash Balloon reviews reskin.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Section sub-heading used under .section-heading ── */
.section-subhead {
  font-family: 'Open Sans', sans-serif;
  font-size:   16px;
  color:       rgba(255,255,255,0.70);
  text-align:  center;
  max-width:   750px;
  margin:      0 auto 40px;
  line-height: 1.7;
}


/* ────────────────────────────────────────────────────────────────────
   STATS BAR
   ──────────────────────────────────────────────────────────────────── */
.stats-bar {
  background:    var(--dd-bg-dark);
  border-top:    1px solid rgba(201,168,68,0.18);
  border-bottom: 1px solid rgba(201,168,68,0.18);
  padding:       20px 24px;
}
.stats-inner {
  max-width:       1200px;
  margin:          0 auto;
  display:         flex;
  flex-wrap:       wrap;
  justify-content: center;
  gap:             28px 48px;
  align-items:     center;
}
.stat-item {
  display:     flex;
  align-items: center;
  gap:         14px;
  min-width:   155px;
}
.stat-icon {
  width:       26px;
  height:      26px;
  color:       var(--dd-gold-alt);
  flex-shrink: 0;
  display:     block;
}
.stat-number {
  font-family: 'Montserrat', sans-serif;
  font-size:   18px;
  font-weight: 700;
  color:       #fff;
  line-height: 1.15;
}
.stat-label {
  font-family:    'Open Sans', sans-serif;
  font-size:      12px;
  color:          rgba(255,255,255,0.55);
  line-height:    1.4;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
@media (max-width: 767px) {
  .stats-inner           { gap: 20px 28px; }
  .stat-item--full-mobile { width: 100%; justify-content: center; }
}


/* ────────────────────────────────────────────────────────────────────
   WHY CHOOSE GRID
   ──────────────────────────────────────────────────────────────────── */
.why-choose {
  background:    var(--dd-bg-medium);
  padding:       60px 24px;
  border-bottom: 1px solid rgba(201,168,68,0.15);
}
.why-choose-inner {
  max-width: 1200px;
  margin:    0 auto;
}
/* Merged body text inside Why Choose section */
.why-choose-body {
  border-top:  1px solid rgba(201,168,68,0.18);
  margin-top:  36px;
  padding-top: 32px;
}
.why-choose-body h3 {
  font-family:    'Montserrat', sans-serif;
  font-size:      1rem;
  font-weight:    700;
  color:          rgba(255,255,255,0.90);
  text-align:     center;
  margin-bottom:  18px;
}
.why-choose-body p,
.private-features-content p {
  font-family:   'Open Sans', sans-serif;
  font-size:     15px;
  line-height:   1.8;
  color:         rgba(255,255,255,0.82);
  margin-bottom: 14px;
}
/* Merged body text inside Private Features section */
.private-features-content {
  margin-bottom: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(201,168,68,0.18);
}
.private-features-content h3 {
  font-family:   'Montserrat', sans-serif;
  font-size:     1rem;
  font-weight:   700;
  color:         rgba(255,255,255,0.90);
  text-align:    center;
  margin-bottom: 18px;
}
.why-choose-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   36px 48px;
  margin-top:            40px;
}
.why-choose-item h3 {
  font-family:    'Montserrat', sans-serif;
  font-size:      15px !important;
  font-weight:    700 !important;
  color:          var(--dd-gold) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin-bottom:  10px !important;
}
.why-choose-item p {
  font-family: 'Open Sans', sans-serif;
  font-size:   15px !important;
  line-height: 1.75 !important;
  color:       rgba(255,255,255,0.75) !important;
  margin:      0 !important;
}
@media (max-width: 767px) {
  .why-choose       { padding: 40px 20px; }
  .why-choose-grid  { grid-template-columns: 1fr; gap: 28px; }
}


/* ────────────────────────────────────────────────────────────────────
   PRIVATE FEATURES GRID
   ──────────────────────────────────────────────────────────────────── */
.private-features {
  padding:       60px 24px;
  border-bottom: 1px solid rgba(201,168,68,0.15);
}
.private-features-inner {
  max-width: 1200px;
  margin:    0 auto;
}
.private-features-intro {
  text-align:  center;
  color:       rgba(255,255,255,0.80);
  font-family: 'Open Sans', sans-serif;
  font-size:   16px;
  line-height: 1.7;
  max-width:   800px;
  margin:      0 auto 36px;
}
.feature-grid {
  display:               grid;
  grid-template-columns: repeat(2,1fr);
  gap:                   28px;
}
.feature-item {
  background:    var(--dd-card-bg);
  border:        1px solid var(--dd-card-border);
  border-radius: var(--dd-card-radius);
  padding:       28px 24px;
  text-align:    center;
}
.feature-icon-wrap {
  color:         var(--dd-gold);
  margin-bottom: 14px;
  line-height:   0;
}
.feature-icon-wrap svg {
  width:  32px;
  height: 32px;
}
.feature-title {
  font-family:    'Montserrat', sans-serif;
  font-size:      13px;
  font-weight:    700;
  color:          #fff;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom:  10px;
}
.feature-desc {
  font-family: 'Open Sans', sans-serif;
  font-size:   14px;
  line-height: 1.7;
  color:       rgba(255,255,255,0.70);
}
@media (max-width: 767px) {
  .private-features { padding: 40px 20px; }
  .feature-grid      { grid-template-columns: 1fr; }
}


/* ────────────────────────────────────────────────────────────────────
   EXPECT TIMELINE  (What To Expect page)
   ──────────────────────────────────────────────────────────────────── */
.expect-section {
  background:    var(--dd-bg-dark);
  padding:       20px 24px;
}
.expect-inner {
  max-width: 1200px;
  margin:    0 auto;
}
.expect-timeline {
  display:               grid;
  grid-template-columns: repeat(2,1fr);
  gap:                   24px;
  margin-top:            40px;
  counter-reset:         expect-step;
}
.expect-step {
  background:       var(--dd-card-bg);
  border:           1px solid var(--dd-card-border);
  border-radius:    var(--dd-card-radius);
  padding:          28px 24px 28px 62px;
  position:         relative;
  counter-increment: expect-step;
}
.expect-step::before {
  content:     counter(expect-step);
  position:    absolute;
  left:        20px;
  top:         26px;
  font-family: 'Montserrat', sans-serif;
  font-size:   28px;
  font-weight: 700;
  color:       var(--dd-gold);
  line-height: 1;
  opacity:     0.85;
}
.expect-step h3 {
  font-family:    'Montserrat', sans-serif;
  font-size:      14px !important;
  font-weight:    700 !important;
  color:          #fff !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin-bottom:  10px !important;
}
.expect-step p {
  font-family: 'Open Sans', sans-serif;
  font-size:   14px !important;
  line-height: 1.7 !important;
  color:       rgba(255,255,255,0.72) !important;
  margin:      0 !important;
}
@media (max-width: 900px) { .expect-timeline { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .expect-section  { padding: 40px 20px; } }


/* ────────────────────────────────────────────────────────────────────
   FAQ ACCORDION
   ──────────────────────────────────────────────────────────────────── */
.faq-accordion {
  max-width: 1100px;
  margin:    0 auto;
}
.faq-item {
  border-bottom: 1px solid rgba(201,168,68,0.18);
}
.faq-item:first-child {
  border-top: 1px solid rgba(201,168,68,0.18);
}
.faq-trigger {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  width:           100%;
  padding:         18px 4px;
  background:      transparent;
  border:          none;
  cursor:          pointer;
  text-align:      left;
  font-family:     'Montserrat', sans-serif;
  font-size:       15px;
  font-weight:     700;
  color:           #fff;
  gap:             16px;
  transition:      color 0.15s ease;
  white-space:	   normal;
}
.faq-trigger span {
	flex: 1;
}
.faq-trigger:focus, .faq-trigger:hover  { color: var(--dd-gold); background-color: transparent !important; }
.faq-trigger[aria-expanded="true"]      { color: var(--dd-gold); background-color: transparent !important; }
.faq-icon {
  width:       16px;
  height:      16px;
  color:       var(--dd-gold);
  flex-shrink: 0;
  transition:  transform 0.2s ease;
  display:     block;
}
.faq-trigger[aria-expanded="true"] .faq-icon { transform: rotate(45deg); }
.faq-body {
  padding: 0 4px 20px;
}
.faq-body[hidden] { display: none; }
.faq-body p,
.faq-body .schema-faq-answer {
  font-family:    'Open Sans', sans-serif !important;
  font-size:      15px !important;
  line-height:    1.75 !important;
  color:          rgba(255,255,255,0.75) !important;
  margin:         0 0 12px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
.faq-body .schema-faq-answer:last-child { margin-bottom: 0 !important; }
/* Package images inside FAQ answers */
.faq-body .schema-faq-answer.package img {
  float:         right;
  max-width:     160px;
  margin-left:   20px;
  margin-bottom: 8px;
  border-radius: 4px;
}


/* ────────────────────────────────────────────────────────────────────
   SMASH BALLOON REVIEWS RESKIN
   Target the rendered [reviews-feed] output to match the landing-page
   testimonial-card aesthetic. Uses attribute selector so it covers
   every feed number without needing PHP injection.
   ──────────────────────────────────────────────────────────────────── */
[id^="sb-reviews-container"] .sb-post-item { padding: 0 !important; }

[id^="sb-reviews-container"] .sb-post-item-wrap {
  background:    var(--dd-card-bg)      !important;
  border:        1px solid var(--dd-card-border) !important;
  border-radius: var(--dd-card-radius)  !important;
  padding:       24px 20px              !important;
  display:       flex                   !important;
  flex-direction: column                !important;
  gap:           12px                   !important;
}

/* Stars */
[id^="sb-reviews-container"] .sb-item-rating,
[id^="sb-reviews-container"] .sb-item-rating * {
  color:     var(--dd-gold) !important;
  font-size: 16px           !important;
}

/* Review body text — styled as a pull quote */
[id^="sb-reviews-container"] .sb-item-text,
[id^="sb-reviews-container"] .sb-item-text * {
  font-family:  'Open Sans', sans-serif !important;
  font-size:    14px                    !important;
  line-height:  1.7                     !important;
  color:        rgba(255,255,255,0.85)  !important;
  font-style:   italic                  !important;
  flex:         1                       !important;
}

/* Author name */
[id^="sb-reviews-container"] .sb-item-author-name {
  font-family: 'Montserrat', sans-serif !important;
  font-size:   14px                     !important;
  font-weight: 700                      !important;
  color:       #fff                     !important;
}

/* Source/platform label and date */
[id^="sb-reviews-container"] .sb-item-author-date,
[id^="sb-reviews-container"] .sb-item-source-name,
[id^="sb-reviews-container"] .sb-item-author-date * {
  font-family: 'Open Sans', sans-serif     !important;
  font-size:   12px                        !important;
  color:       rgba(255,255,255,0.50)      !important;
}

/* Avatar / reviewer photo circle */
[id^="sb-reviews-container"] .sb-item-author-avatar,
[id^="sb-reviews-container"] .sb-item-author-avatar img {
  width:         42px    !important;
  height:        42px    !important;
  border-radius: 50%     !important;
  flex-shrink:   0       !important;
}

/* Author meta row (avatar + name + date) */
[id^="sb-reviews-container"] .sb-author-info,
[id^="sb-reviews-container"] .sb-item-author-ctn {
  display:     flex     !important;
  align-items: center   !important;
  gap:         12px     !important;
  margin-top:  auto     !important;
  padding-top: 12px     !important;
  border-top:  1px solid rgba(201,168,68,0.15) !important;
}

/* Feed header rating bar */
[id^="sb-reviews-container"] .sb-feed-header-rating,
[id^="sb-reviews-container"] .sb-feed-header-rating * {
  color: var(--dd-gold) !important;
}
[id^="sb-reviews-container"] .sb-feed-header-heading,
[id^="sb-reviews-container"] .sb-feed-header-rating-subtext {
  color: var(--dd-text) !important;
}


/* ═══════════════════════════════════════════════════════════════════
   WP GLOBAL STYLES — full-bleed hero & inner gutter management.
   Pages with full-bleed heroes (WTE, Private Events, Gift Certs,
   Contact) use style="padding-left:0;padding-right:0" on <main> to
   override WP's injected padding-inline logical properties.
   Hero sections are forced to full width below.
   Inner .dd-template-content gets an explicit gutter on those pages.
   ═══════════════════════════════════════════════════════════════════ */

/* Hero sections — always full-bleed regardless of parent padding */
#private-events-cta,
#dd-immersive,
#dd-solve {
  width:         100% !important;
  max-width:     100% !important;
  box-sizing:    border-box;
  padding-left:  20px !important;
  padding-right: 20px !important;
}

/* Pages that zero out <main> padding: restore comfortable gutter on inner content */
.page-what-to-expect .dd-template-content,
.page-murder-mystery-private-events-private-shows .dd-template-content,
.page-gift-certificates-murder-mystery .dd-template-content {
  padding-left:  clamp(16px, 4vw, 40px);
  padding-right: clamp(16px, 4vw, 40px);
  box-sizing:    border-box;
}

/* Eliminate any WordPress row-gap injected between hero and inner content */
.site-main {
  row-gap: 0 !important;
}

/* Belt-and-suspenders: no stray top margin on content that follows a hero */
#private-events-cta + .dd-past-clients,
#private-events-cta + .dd-template-content,
#private-events-cta + .page-content,
#dd-immersive + .dd-template-content,
#dd-immersive + .page-content {
  margin-top:  0 !important;
  padding-top: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   v5 PATCH SET — May 2026
   Issues addressed:
     3   SB IG follow button color
     5   Private Events: How Different section redesign (CSS)
     4   Private Events: logo marquee carousel
     6   Gravity Forms progress bar + Next button color
     7   Gift Certificates TTR iframe button color (external elements)
     8   Contact Us submit button full width
     9   Contact Us "Other" radio option inline
    10   Blog single-post max-width
    11   Blog archive max-width
    12   Front page mobile eyebrow spacing
    13   Mobile stats bar 2-2-1 layout
    14   Mobile schedule ticket button + script designation
    15   Mobile contact cards centering
   ═══════════════════════════════════════════════════════════════════ */


/* ── Issue 3: SB Instagram Feed follow button — crimson ── */
span.sbi_follow_btn.sbi_custom a,
.sbi_follow_btn.sbi_custom a {
  background-color: #8B1A1A !important;
  border-color:     #8B1A1A !important;
}
span.sbi_follow_btn.sbi_custom a:hover,
.sbi_follow_btn.sbi_custom a:hover {
  background-color: #9B2222 !important;
  border-color:     #9B2222 !important;
}


/* ── Issue 4: Private Events — logo marquee carousel ── */
.dd-logo-marquee {
  overflow:   hidden;
  width:      100%;
  position:   relative;
  mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}

.dd-logo-track {
  display:         flex;
  align-items:     center;
  gap:             16px;
  width:           max-content;
  animation:       dd-marquee 36s linear infinite;
}

.dd-logo-marquee:hover .dd-logo-track { animation-play-state: paused; }

@keyframes dd-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.dd-logo-tile {
  flex-shrink:     0;
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding:         0 8px;
}

.dd-logo-tile a {
  display:         flex;
  align-items:     center;
  text-decoration: none !important;
}

.dd-logo-tile a img {
  display:    block;
  max-height: 80px;
  max-width:  160px;
  width:      auto;
  height:     auto;
  object-fit: contain;
  opacity:    0.80;
  transition: opacity 0.2s;
}

.dd-logo-tile:hover a img {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .dd-logo-track { animation: none; }
}


/* ── Issue 5: Private Events — How Different section redesign ── */
.dd-how-different {
  max-width:    1200px;
  margin:       20px auto;
  padding:      0 20px;
}

.dd-how-different__inner {
  background:    rgba(255,255,255,0.03);
  border:        1px solid rgba(201,168,68,0.20);
  border-radius: 12px;
  padding:       48px 40px;
}

.dd-how-different__eyebrow {
  display:        block;
  font-family:    'Montserrat', sans-serif;
  font-size:      0.68rem;
  font-weight:    700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color:          #C9A844;
  text-align:     center;
  margin-bottom:  10px;
}

.dd-how-different__title {
  font-family:    'Montserrat', sans-serif !important;
  font-size:      clamp(1.5rem, 3vw, 2rem) !important;
  font-weight:    700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em;
  color:          #ffffff !important;
  text-align:     center;
  margin:         0 0 14px !important;
}

.dd-how-different__sub {
  font-family: 'Open Sans', sans-serif;
  font-size:   15px;
  line-height: 1.7;
  color:       rgba(255,255,255,0.65);
  text-align:  center;
  max-width:   700px;
  margin:      0 auto 36px !important;
}

.dd-how-different__grid {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   20px;
}

.dd-how-diff-item {
  display:       flex;
  align-items:   flex-start;
  gap:           14px;
  padding:       20px;
  background:    rgba(255,255,255,0.04);
  border:        1px solid rgba(201,168,68,0.15);
  border-radius: 8px;
  transition:    border-color 0.2s, background 0.2s;
}

.dd-how-diff-item:hover {
  background:    rgba(201,168,68,0.06);
  border-color:  rgba(201,168,68,0.35);
}

.dd-how-diff-icon {
  flex-shrink:  0;
  width:        44px;
  height:       44px;
  background:   rgba(201,168,68,0.10);
  border-radius: 50%;
  display:      flex;
  align-items:  center;
  justify-content: center;
  color:        #C9A844;
}

.dd-how-diff-text {
  display:        flex;
  flex-direction: column;
  gap:            6px;
}

.dd-how-diff-text strong {
  font-family:    'Montserrat', sans-serif;
  font-size:      13px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color:          #fff;
}

.dd-how-diff-text span {
  font-family: 'Open Sans', sans-serif;
  font-size:   13.5px;
  line-height: 1.65;
  color:       rgba(255,255,255,0.70);
}

@media (max-width: 768px) {
  .dd-how-different__inner { padding: 32px 20px; }
  .dd-how-different__grid  { grid-template-columns: 1fr; gap: 14px; }
}


/* ── Issue 6: Gravity Forms progress bar + Next buttons — crimson ── */
/* Progress bar fill */
.gf_progressbar_percentage,
.gf_progressbar_percentage span {
  background-color: #8B1A1A !important;
}
/* Progress bar track label */
.gf_progressbar_title { color: #C9A844 !important; }
/* Multi-page Next / Previous buttons */
.gform_page_footer input[type="button"],
.gform_page_footer .gform_next_button,
.gform_page_footer .gform_previous_button,
.gform_next_button,
.gform_previous_button {
  background-color: #8B1A1A !important;
  border-color:     #8B1A1A !important;
  color:            #ffffff !important;
  border-radius:    4px     !important;
}
.gform_page_footer input[type="button"]:hover,
.gform_next_button:hover,
.gform_previous_button:hover {
  background-color: #9B2222 !important;
  border-color:     #9B2222 !important;
}


/* ── Issue 7: TicketTailor tab button outside iframe ── */
a.tt-widget-tab-button { background-color: #8B1A1A !important; }
a.tt-widget-tab-button:hover { background-color: #9B2222 !important; }


/* ── Issue 8: Contact Us submit button — ensure full width ── */
.dd-contact-form-card .gform_footer input[type="submit"],
.dd-contact-form-card .gform_button,
.dd-contact-form-card .gform_wrapper .gform_footer input[type="submit"] {
  width:      100%  !important;
  box-sizing: border-box !important;
}


/* ── Issue 9: Contact Us "Other" radio option — inline text field ── */
/* Actual GF HTML structure (confirmed from rendered source):
     <div class='gchoice'>
       <input class='gfield-choice-input' type='radio' value='gf_other_choice' />
       <label>Other</label>
       <br />                           ← this forces the text field down
       <input class='gchoice_other_control' type='text' ... />
     </div>
   Fix: hide the <br> so the input stays on the same line as the label. */

/* Hide the line-break GF injects between the label and the text field */
.gfield_radio .gchoice label + br {
  display: none !important;
}

/* Keep the text input inline and reasonably sized */
input.gchoice_other_control {
  display:        inline-block !important;
  width:          auto !important;
  min-width:      160px;
  margin-top:     0 !important;
  margin-left:    6px !important;
  vertical-align: middle;
}


/* ── Issues 10 & 11: Blog single-post + archive max-width ── */
/* Single post inner wrapper (added in single-post.php) */
.dd-single-post-inner {
  max-width: 1200px;
  margin:    0 auto;
  padding:   0 20px;
  box-sizing: border-box;
}

/* Archive / blog index pages */
body.archive .site-main,
body.blog    .site-main,
body.category .site-main,
body.tag      .site-main,
body.archive .hentry,
body.blog    .hentry {
  max-width: 1200px;
  margin-left:  auto;
  margin-right: auto;
  box-sizing:   border-box;
}

body.archive #content,
body.blog    #content,
body.category #content,
body.tag      #content {
  max-width: 1200px;
  margin:    0 auto;
  padding:   0 20px;
  box-sizing: border-box;
}


/* ── Issue 12: Front page mobile — eyebrow breathing room ── */
/* The global "first section padding-top:0 !important" rule strips the hero
   padding. Restore it explicitly for #dd-solve so eyebrow text clears the
   sticky header on all breakpoints. */
#dd-solve { padding-top: 60px !important; }

@media (max-width: 1024px) { #dd-solve { padding-top: 60px !important; } }
@media (max-width: 767px)  { #dd-solve { padding-top: 60px !important; } }


/* ── Issue 13: Mobile stats bar — 2 / 2 / 1 layout ── */
@media (max-width: 767px) {
  .stats-inner {
    justify-content: flex-start;
  }
  .stat-item {
    flex:      0 0 calc(50% - 14px); /* two per row */
    min-width: unset;
    max-width: calc(50% - 14px);
  }
  .stat-item--full-mobile {
    flex:            0 0 100%;
    max-width:       100%;
    justify-content: center;
  }
}


/* ── Issue 14: Mobile schedule — ticket button full width + Script: on one line ──
   .event-details is set to flex-direction:column at the 900px breakpoint.
   On mobile we override back to row+wrap so "Script: [title]" stays on one line.
   The ticket button gets its own row via flex: 0 0 100%.
   HTML from worker: .ticket-button | <strong>Script:</strong> | text-node-title
*/
@media (max-width: 767px) {
  .event-details {
    flex-direction: row !important;  /* override the column from 900px rule */
    flex-wrap:      wrap !important;
    align-items:    center;
    gap:            6px 8px;
    overflow-x:     visible;
  }
  /* Ticket button takes its own full-width row */
  .event-details .ticket-button,
  .event-details a.ticket-button {
    flex:       0 0 100%;
    width:      100%;
    text-align: center;
    box-sizing: border-box;
    white-space: normal;
  }
  /* "Script:" label — keep it on the same line as the title text-node */
  .event-details > strong {
    white-space: nowrap;
    flex-shrink: 0;
  }
}


/* ── Issue 15: Mobile contact cards — ensure centered ──
   Contact page <main> has style="padding-left:0;padding-right:0" to
   override WP's padding-inline injection. The inner .dd-contact-wrap
   provides the side gutter. No broad padding-inline reset needed here. */
@media (max-width: 900px) {
  /* Ensure grid cards stretch to fill the 440px container */
  .dd-contact-cards .dd-contact-card {
    width:      100%;
    box-sizing: border-box;
  }
  /* Re-affirm symmetric gutter on the contact section wrapper */
  .dd-contact-wrap {
    padding-left:  clamp(16px, 4vw, 40px) !important;
    padding-right: clamp(16px, 4vw, 40px) !important;
    padding-inline: unset !important;
  }
}
