/**
 * 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:          #E84040                 !important; /* was #b20000 — brightened for WCAG AA on dark bg (~5.1:1) */
}
.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: #FF5555 !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-*) ──────────────────────────── */
/* Moved to critical-atf.css to eliminate FOUT on the tickets page.           */


/* ── 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,                   /* legacy — keep for any instances still using h6 */
.dd-ticket-cutoff .dd-ticket-cutoff-note { margin: 0; color: #C9A844; font-size: 0.9em; }


/* ── 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 a {
  color:           var(--dd-gold, #C9A844) !important;
  text-decoration: underline !important; /* WCAG: links in text blocks must be distinguishable by more than color */
}
.why-choose-item p a:hover,
.why-choose-item p a:focus-visible {
  color:           var(--dd-gold-bright, #F5B820) !important;
  text-decoration: underline !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;
}

/* ── SB Reviews Feed header button — crimson ── */
button.sb-btn.sb-feed-header-btn,
.sb-btn.sb-feed-header-btn {
  background-color: #8B1A1A !important;
  border-color:     #8B1A1A !important;
}
button.sb-btn.sb-feed-header-btn:hover,
button.sb-btn.sb-feed-header-btn:focus,
.sb-btn.sb-feed-header-btn:hover,
.sb-btn.sb-feed-header-btn:focus {
  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 (max-width: 768px) {
  .dd-logo-tile a img {
    max-height: 38px;
    max-width:  90px;
  }
  .dd-logo-track {
    gap:              20px;
    animation-duration: 28s;
  }
  .dd-logo-tile {
    padding: 0 4px;
  }
}

@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;
  }
}


/* ── Map wrapper — force black text ──
   The .map_wrapper element (Elementor map widget) appears on two main site
   pages. The dark-theme token cascade sets light text by default, but map
   UI labels and any descriptive copy inside the wrapper need to be black
   so they remain legible against the light map tiles. */
.map_wrapper,
.map_wrapper * {
  color: #000000 !important;
}


/* ── 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;
  }
}
