/*
 * Orchestra Experience — Site-wide design enhancements
 * Applied on all pages. Does NOT change structure or colors.
 *
 * Typography: Inter replaces Montserrat for body/secondary text.
 * Headings use the current Orchestra Experience typography.
 * Improves: typography, micro-animations, spacing, perceived quality.
 */

/* ── 00. No horizontal scroll, ever (all pages) ──────────────────────────────
 * `overflow-x: clip` clips stray horizontal overflow (off-canvas glows, marquees,
 * wide decorative pseudo-elements) WITHOUT creating a scroll container — so sticky
 * headers/CTA still work and desktop is unaffected (nothing to clip there). This
 * keeps the `margin:auto` canvas perfectly centred = equal left/right gaps. */
html { overflow-x: clip; }
body { overflow-x: clip; max-width: 100%; }

/* ── 0. Font swap: Montserrat → Inter via CSS variable (non-destructive) ────── */

/* Override only the Elementor CSS variable — does NOT use !important on elements.
   This lets Elementor's own specificity work naturally while swapping the font. */
.elementor-kit-6 {
  --e-global-typography-text-font-family: 'Inter', system-ui, -apple-system, sans-serif;
  --e-global-typography-accent-font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ── 1. Typography — premium feel ──────────────────────────────────────────── */

/* Headings: tighter tracking for luxury look */
.elementor-heading-title,
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3 {
  letter-spacing: -0.3px;
}

/* Thin weight on subtitle text */
.elementor-widget-text-editor p,
.elementor-widget-text-editor {
  font-weight: 300;
}

/* Tabular nums for prices and dates */
.elementor-widget-heading .elementor-heading-title,
.jet-listing-dynamic-field__content {
  font-variant-numeric: tabular-nums;
}

/* ── 2. Button enhancements ────────────────────────────────────────────────── */

/* Slight rounding — modern premium, not sharp, not bubbly */
.elementor-button {
  border-radius: 4px !important;
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out, background-color 0.2s ease-out !important;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  font-weight: 600;
}

/* Hover: subtle scale + gold glow */
.elementor-button:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 20px rgba(255, 187, 87, 0.25);
}

/* Press: scale down feedback */
.elementor-button:active {
  transform: scale(0.98);
}

/* ── 3. Concert cards in Schedule — lift on hover ──────────────────────────── */

/* JetEngine listing cards */
.jet-listing-grid__item,
.elementor-widget-jet-listing-grid .jet-listing-grid__item > .elementor-element {
  transition: transform 0.25s ease-out, box-shadow 0.25s ease-out !important;
  border-radius: 6px;
}

.jet-listing-grid__item:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

/* ── 4. Images — subtle zoom on hover ──────────────────────────────────────── */

.elementor-widget-image img,
.elementor-widget-gallery img {
  transition: transform 0.5s ease-out !important;
  border-radius: 4px;
}

.elementor-widget-image:hover img,
.elementor-widget-gallery:hover img {
  transform: scale(1.03);
}

/* Prevent overflow from scaled images */
.elementor-widget-image .elementor-widget-container,
.elementor-widget-gallery .elementor-widget-container {
  overflow: hidden;
  border-radius: 4px;
}

/* ── 5. Testimonials — decorative quotes ───────────────────────────────────── */

.elementor-testimonial__text,
.elementor-widget-testimonial .elementor-testimonial-content {
  position: relative;
}

.elementor-testimonial__text::before,
.elementor-widget-testimonial .elementor-testimonial-content::before {
  content: "\201C";
  position: absolute;
  top: -20px;
  left: -8px;
  font-size: 80px;
  font-family: 'Georgia', serif;
  color: rgba(255, 187, 87, 0.08);
  line-height: 1;
  pointer-events: none;
}

/* Reviewer names slightly bolder */
.elementor-testimonial__name,
.elementor-widget-testimonial .elementor-testimonial-name {
  font-weight: 500 !important;
}

/* ── 6. Section spacing — 8px rhythm consistency ───────────────────────────── */

.elementor-section > .elementor-container {
  transition: opacity 0.3s ease-out;
}

/* ── 7. Links & interactive elements — cursor + transition ─────────────────── */

a[href],
button,
.elementor-button,
[role="button"],
.jet-listing-grid__item {
  cursor: pointer;
}

/* All interactive elements: smooth transitions */
a, button, input, select, textarea {
  transition: border-color 0.15s ease-out, color 0.15s ease-out, background-color 0.15s ease-out;
}

/* ── 8. Scroll snap for carousels (if present) ─────────────────────────────── */

.elementor-widget-slides .swiper-wrapper,
.elementor-widget-testimonial-carousel .swiper-wrapper {
  scroll-snap-type: x mandatory;
}

.elementor-widget-slides .swiper-slide,
.elementor-widget-testimonial-carousel .swiper-slide {
  scroll-snap-align: center;
}

/* ── 9. Form inputs — refined ──────────────────────────────────────────────── */

.elementor-field-textual {
  border-radius: 4px !important;
  transition: border-color 0.2s ease-out, box-shadow 0.2s ease-out !important;
}

.elementor-field-textual:focus {
  box-shadow: 0 0 0 2px rgba(255, 187, 87, 0.2) !important;
}

/* ── 10. Countdown timer ───────────────────────────────────────────────────── */

.orch-countdown {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 16px 0;
}

.orch-cd-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 48px;
}

.orch-cd-num {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 28px;
  font-weight: 600;
  color: #FFBB57;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}

.orch-cd-label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 400;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.orch-cd-sep {
  font-size: 24px;
  font-weight: 300;
  color: rgba(255,255,255,0.15);
  margin-top: -12px;
}

@media (max-width: 480px) {
  .orch-cd-num { font-size: 22px; }
  .orch-cd-unit { min-width: 40px; }
}

/* Compact inline countdown for widget header */
.orch-countdown-inline {
  margin: 10px 0 0;
  gap: 2px;
}
.orch-countdown-inline .orch-cd-num {
  font-size: 20px;
}
.orch-countdown-inline .orch-cd-unit {
  min-width: 36px;
}
.orch-countdown-inline .orch-cd-sep {
  font-size: 18px;
  margin-top: -8px;
}

/* ── 11. Reduced motion respect ────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .jet-listing-grid__item:hover {
    transform: none;
  }
  .elementor-widget-image:hover img {
    transform: none;
  }
  .elementor-button:hover {
    transform: none;
  }
}

/* ── Warm candlelight base (was flat #000) ─────────────────────────────────── */
/* Hello Elementor defaults to white; we force a warm near-black with a soft gold
   top-glow so pages feel candlelit, not flat. Fixed attachment keeps it subtle;
   sections with their own background simply sit on top. */
body,
body.page,
body.single,
body.archive,
body.home,
.site-main,
.entry-content {
  background-color: #060504 !important;
  color: #ffffff !important;
}
body {
  background-image:
    radial-gradient(1200px 560px at 50% -6%, rgba(255, 187, 87, 0.10), transparent 60%),
    radial-gradient(900px 680px at 88% 10%, rgba(255, 140, 50, 0.05), transparent 55%) !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PREMIUM LAYER v3 — "CANDLELIGHT GLASS"
   Style: refined glassmorphism (perf-safe variant of Liquid Glass) + warm
   candlelight ambient + editorial type hierarchy + fluid 400-600ms motion.
   Color map kept (near-black #060504 / gold #FFBB57 / white).
   heading font kept. Tokens: glass fill rgba(255,255,255,.05), highlight
   border rgba(255,255,255,.12), gold #FFBB57.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── A. Ambient candlelight — drifting warm orbs behind ALL content ──────────
   This is what turns the dead-black voids into atmosphere and gives the glass
   panels something luminous to refract. Fixed, behind content, GPU transform. */
body::before {
  content: "";
  position: fixed;
  inset: -25%;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(38% 38% at 18% 22%, rgba(255, 176, 87, 0.13), transparent 62%),
    radial-gradient(42% 42% at 82% 16%, rgba(255, 120, 40, 0.09), transparent 60%),
    radial-gradient(40% 40% at 68% 72%, rgba(255, 205, 130, 0.08), transparent 60%),
    radial-gradient(46% 46% at 28% 88%, rgba(255, 150, 60, 0.06), transparent 62%);
  animation: orchDrift 30s ease-in-out infinite alternate;
}
@keyframes orchDrift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(-2.5%, -2%, 0) scale(1.07); }
}
/* Cinematic edge vignette for depth */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(120% 90% at 50% 35%, transparent 55%, rgba(0, 0, 0, 0.45) 100%);
}

/* ── B. Glass material ──────────────────────────────────────────────────────
   B1. Perf-safe glass (NO backdrop-filter) — translucent fill + highlight edge
   + depth shadow. Used on the many content cards/panels. */
.elementor-image-box-wrapper,
.elementor-widget-price-list .elementor-widget-container,
.elementor-widget-icon-list .elementor-widget-container {
  background: linear-gradient(158deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.022)) !important;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 16px;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.14);
  padding: 26px 24px !important;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1),
              border-color 0.5s ease;
}
/* Card lift + gold edge on hover */
.elementor-image-box-wrapper:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 187, 87, 0.40);
  box-shadow: 0 30px 64px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 187, 87, 0.18),
              inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

/* Event cards (homepage carousel + /schedule/): ONE glass layer on the inner
   template with a real gap — kills the old double-frame (outer white border +
   inner black bg) the slide produced. */
/* The gap is added as the SLIDE's own padding (box-sizing: border-box) so the
   swiper's slide width math stays intact — margins on the inner card were what
   made the carousel fall apart. The inner template becomes the glass panel. */
.jet-listing-grid__item {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 10px 12px !important;
  box-sizing: border-box !important;
}
/* Outer template = transparent gap wrapper, NO frame (was causing a double frame). */
.jet-listing-grid__item > .elementor {
  height: 100%;
  box-sizing: border-box;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
/* The INNER content box (had a solid white border + black bg + sharp corners) IS
   the card now — turn it into a single clean glass panel. */
.jet-listing-grid__item > .elementor > .e-con,
.jet-listing-grid__item .elementor-element-19848e6 {
  height: 100%;
  background: linear-gradient(158deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.022)) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  border-radius: 16px !important;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
  padding: 30px 26px !important;
  overflow: hidden;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s, border-color 0.5s;
}
.jet-listing-grid__item:hover > .elementor > .e-con,
.jet-listing-grid__item:hover .elementor-element-19848e6 {
  transform: translateY(-6px);
  border-color: rgba(255, 187, 87, 0.38) !important;
  box-shadow: 0 30px 64px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 187, 87, 0.16) !important;
}

/* B2. TRUE frosted glass (backdrop-filter) — used on a LIMITED set for perf:
   the program tab panel + the promo/feedback form. */
.elementor-widget-n-tabs .e-n-tabs-content,
.elementor-widget-form .elementor-form {
  background: rgba(255, 255, 255, 0.05) !important;
  backdrop-filter: blur(14px) saturate(125%);
  -webkit-backdrop-filter: blur(14px) saturate(125%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.16);
}
.elementor-widget-n-tabs .e-n-tabs-content { padding: 28px 30px !important; }
.elementor-widget-form .elementor-form { padding: 32px 30px !important; }

/* ── C. Program tabs (n-tabs) → glass pills, gold active ────────────────────── */
.elementor-widget-n-tabs .e-n-tab-title {
  border-radius: 11px !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  background: rgba(255, 255, 255, 0.04) !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease !important;
}
.elementor-widget-n-tabs .e-n-tab-title[aria-selected="true"] {
  background: linear-gradient(135deg, #FFD27A, #FFBB57 50%, #F2A63C) !important;
  color: #1a1206 !important;
  border-color: transparent !important;
  box-shadow: 0 8px 22px rgba(255, 187, 87, 0.32);
}

/* ── D. Imagery — frame + lift the dark thumbnails out of the black ─────────── */
.elementor-widget-image img,
.elementor-widget-gallery img,
.elementor-image-gallery img,
.e-gallery-item img,
.elementor-widget-image-box .elementor-image-box-img img {
  border-radius: 12px !important;
  filter: brightness(1.06) contrast(1.03) saturate(1.05);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45);
}
.e-gallery-item, .elementor-image-gallery .gallery-item {
  border-radius: 12px;
  overflow: hidden;
}

/* ── E. Counters (e.g. 76 concerts / guests) → gold, premium ───────────────── */
.elementor-counter .elementor-counter-number-wrapper,
.elementor-counter-number-wrapper {
  color: #FFBB57 !important;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 26px rgba(255, 187, 87, 0.30);
}
.elementor-counter-title {
  color: rgba(255, 255, 255, 0.62) !important;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 12px;
}

/* ── F. Editorial typography hierarchy ─────────────────────────────────────── */
/* Hero H1 — confident, fluid */
.single-post .elementor-widget-heading h1.elementor-heading-title,
.home .elementor-widget-heading h1.elementor-heading-title {
  font-size: clamp(32px, 5.6vw, 58px);
  line-height: 1.08;
  letter-spacing: -0.5px;
}
/* Section H2 — larger + centered gold accent underline */
.elementor-widget-heading h2.elementor-heading-title {
  letter-spacing: -0.3px;
  position: relative;
}
.elementor-widget-heading.elementor-widget-heading h2.elementor-heading-title::after {
  content: "";
  display: block;
  width: 54px;
  height: 2px;
  margin: 16px auto 0;
  background: linear-gradient(90deg, transparent, #FFBB57, transparent);
  opacity: 0.85;
}
/* left-aligned section titles keep the accent left */
.elementor-widget-heading:not(.elementor-align-center) h2.elementor-heading-title::after {
  margin-left: 0;
  margin-right: auto;
}
/* Body copy — readable measure + tone */
.elementor-widget-text-editor p {
  color: rgba(255, 255, 255, 0.74);
  line-height: 1.75;
}
/* Eyebrow helper for dates/labels above the hero title */
.elementor-widget-heading .elementor-heading-title {
  font-variant-numeric: tabular-nums;
}

/* ── G. Partner-logo strip — contain it in a faint band ─────────────────────── */
.elementor-widget-image-carousel .swiper-wrapper,
.jet-listing-grid--2707 {
  filter: grayscale(0.15);
}

/* ── G2. Ticketing-systems marquee (Ticketmelon / Loket / Mega) — removed from
   the landing now that tickets are sold natively. Hides the ame-marquee-image
   widget (universal) and collapses its dedicated section (no leftover gap). ──── */
.elementor-widget-ame-marquee-image { display: none !important; }
.e-con:has(.elementor-widget-ame-marquee-image) { display: none !important; }

/* ═══ kept from prior pass (CTA / sticky bar / reveal) ═══════════════════════ */

/* ── P1. Buy Tickets CTA — SURGICAL (only links to the widget) ──────────────── */
/* Targets only buy-tickets anchors, so form Submit / Learn More stay as-is. */
a.elementor-button[href*="buy-tickets"] {
  background: linear-gradient(135deg, #FFD27A 0%, #FFBB57 45%, #F2A63C 100%) !important;
  color: #1a1206 !important;
  border: none !important;
  padding: 15px 34px !important;       /* overrides elementor-size-sm */
  min-height: 48px;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.6px !important;
  border-radius: 9px !important;
  box-shadow: 0 8px 26px rgba(255, 187, 87, 0.30), inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
  position: relative;
  overflow: hidden;
}
a.elementor-button[href*="buy-tickets"] .elementor-button-text {
  position: relative;
  z-index: 2;
}
a.elementor-button[href*="buy-tickets"]:hover {
  transform: translateY(-2px) scale(1.015);
  box-shadow: 0 14px 40px rgba(255, 187, 87, 0.45) !important;
}
a.elementor-button[href*="buy-tickets"]:active {
  transform: translateY(0) scale(0.99);
}
/* travelling shimmer */
a.elementor-button[href*="buy-tickets"]::after {
  content: "";
  position: absolute;
  top: 0; left: -65%;
  width: 45%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.5), transparent);
  transform: skewX(-20deg);
  animation: orchSiteShimmer 5s ease-in-out infinite;
  z-index: 1;
  pointer-events: none;
}
@keyframes orchSiteShimmer {
  0%, 100% { left: -65%; }
  55%      { left: 130%; }
}

/* ── P2. Hero + heading typography ─────────────────────────────────────────── */
.single-post .elementor-widget-heading h1.elementor-heading-title,
.home .elementor-widget-heading h1.elementor-heading-title {
  font-size: clamp(30px, 5.4vw, 54px);
  line-height: 1.1;
  letter-spacing: -0.5px;
}
.elementor-widget-heading h2.elementor-heading-title {
  letter-spacing: -0.4px;
}

/* ── P3. Program list (price-list widget, used for the musical program) ─────── */
.elementor-price-list-item {
  padding: 9px 0 !important;
  border-bottom: 1px solid rgba(255, 187, 87, 0.10);
}
.elementor-price-list-item:last-child { border-bottom: none; }
.elementor-price-list-title {
  color: #fff;
  font-weight: 500;
}
.elementor-price-list-description {
  color: rgba(255, 255, 255, 0.52) !important;
  font-weight: 300;
}

/* ── P4. Section dividers → faint gold hairline ────────────────────────────── */
.elementor-divider-separator {
  border-top-color: rgba(255, 187, 87, 0.16) !important;
}

/* ── P5. Sticky mobile "Buy tickets" bar (injected by site-enhancements.js) ─── */
.orch-sticky-cta {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9990;
  display: none;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  background: rgba(8, 6, 4, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255, 187, 87, 0.22);
  transform: translateY(120%);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.orch-sticky-cta a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 52px;
  border-radius: 11px;
  background: linear-gradient(135deg, #FFD27A, #FFBB57 45%, #F2A63C);
  color: #1a1206;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.4px;
  text-decoration: none;
  box-shadow: 0 6px 22px rgba(255, 187, 87, 0.35);
}
@media (max-width: 880px) {
  .orch-sticky-cta { display: block; }
  body.single-post { padding-bottom: 76px; }
}

/* ── P6. Scroll-reveal (class added by JS; absent = fully visible) ──────────── */
.orch-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  will-change: opacity, transform;
}
.orch-reveal.orch-in {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .orch-reveal { opacity: 1 !important; transform: none !important; }
  a.elementor-button[href*="buy-tickets"]::after { animation: none; }
  a.elementor-button[href*="buy-tickets"]:hover { transform: none; }
  body::before { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v3.1 — REVIEW-ROUND FIXES
   ═══════════════════════════════════════════════════════════════════════════ */

/* FIX 1 — Inactive program tab was black-on-dark (invisible). Light it up. */
.elementor-widget-n-tabs .e-n-tab-title,
.elementor-widget-n-tabs .e-n-tab-title .e-n-tab-title-text {
  color: rgba(255, 255, 255, 0.82) !important;
}
.elementor-widget-n-tabs .e-n-tab-title[aria-selected="true"],
.elementor-widget-n-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text {
  color: #1a1206 !important;
}

/* FIX 2 — Media (galleries / videos / map) feather into the background instead
   of sitting as hard rectangles. Radial mask fades the outer edge to transparent;
   drop the hard drop-shadow that made them look pasted-on. */
/* Gallery images are background-image DIVs (.e-gallery-image), not <img>, so we
   feather the whole grid CONTAINER's outer edge — the photo block dissolves into
   the candlelit background instead of sitting as a hard rectangle. */
.elementor-widget-gallery .e-gallery-container,
.elementor-widget-gallery .elementor-gallery__container,
.elementor-widget-video .elementor-wrapper,
.elementor-widget-video,
.elementor-widget-google_maps {
  -webkit-mask-image: radial-gradient(112% 104% at 50% 50%, #000 40%, transparent 86%);
          mask-image: radial-gradient(112% 104% at 50% 50%, #000 40%, transparent 86%);
}
.elementor-widget-gallery .e-gallery-image,
.elementor-widget-gallery .e-gallery-item { box-shadow: none !important; }
.elementor-widget-google_maps iframe { filter: brightness(0.9) saturate(0.95); }

/* FIX 3 — "Leave feedback" section was a bright gold block (off-brand). Make it
   dark candlelit; inputs become dark glass; CTA gold. */
.elementor-element-3082533 {
  background-color: #0a0806 !important;
  background-image: radial-gradient(70% 120% at 50% 0%, rgba(255, 187, 87, 0.10), transparent 72%) !important;
}
.elementor-element-3082533 .elementor-heading-title { color: #fff !important; }
.elementor-element-3082533 .elementor-field-textual {
  background: rgba(255, 255, 255, 0.05) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 10px !important;
}
.elementor-element-3082533 .elementor-field-textual::placeholder { color: rgba(255, 255, 255, 0.5) !important; }
.elementor-element-3082533 .elementor-field-option,
.elementor-element-3082533 label,
.elementor-element-3082533 .elementor-field-type-acceptance,
.elementor-element-3082533 .elementor-field-type-acceptance * { color: rgba(255, 255, 255, 0.74) !important; }
.elementor-element-3082533 a { color: #FFBB57 !important; }
.elementor-element-3082533 .elementor-button[type="submit"],
.elementor-element-3082533 button[type="submit"] {
  background: linear-gradient(135deg, #FFD27A, #FFBB57 50%, #F2A63C) !important;
  color: #1a1206 !important;
  border: none !important;
}
/* phone-field intl dropdown on dark */
.elementor-element-3082533 .iti__selected-flag,
.elementor-element-3082533 .iti__country-list { background: rgba(20, 16, 10, 0.96) !important; color: #fff !important; }

/* FIX 4 — Review carousel: white Google-style cards → dark glass, gold stars. */
.orch_vidrev .swiper-slide > .elementor-element,
.orch_vidrev .swiper-slide .e-con {
  background: linear-gradient(158deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.022)) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  border-radius: 16px !important;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.42) !important;
}
.orch_vidrev .swiper-slide,
.orch_vidrev .swiper-slide .elementor-heading-title,
.orch_vidrev .swiper-slide .elementor-widget-text-editor,
.orch_vidrev .swiper-slide .elementor-widget-text-editor *,
.orch_vidrev .swiper-slide p,
.orch_vidrev .swiper-slide h1, .orch_vidrev .swiper-slide h2,
.orch_vidrev .swiper-slide h3, .orch_vidrev .swiper-slide h4 {
  color: rgba(255, 255, 255, 0.88) !important;
}
.orch_vidrev .elementor-star-rating i,
.orch_vidrev [class*="star"] i,
.orch_vidrev .elementor-star-rating__wrapper { color: #FFBB57 !important; }
/* nav arrows on dark */
.orch_vidrev .elementor-swiper-button,
.orch_vidrev .swiper-button-next,
.orch_vidrev .swiper-button-prev { color: #FFBB57 !important; }

/* FIX 4b — Native "digitized" reviews (replaces the white review PNGs).
   Masonry of dark glass testimonial cards; injected by site-enhancements.js. */
.orch-reviews { position: relative; max-width: 1180px; margin: 0 auto; padding: 4px 12px 10px; }
.orch-reviews-grid {
  display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 6px 4px 16px; scroll-behavior: smooth;
  scrollbar-width: thin; scrollbar-color: rgba(255, 187, 87, 0.45) transparent;
}
.orch-reviews-grid::-webkit-scrollbar { height: 6px; }
.orch-reviews-grid::-webkit-scrollbar-thumb { background: rgba(255, 187, 87, 0.45); border-radius: 3px; }
.orch-reviews-grid::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); border-radius: 3px; }
/* nav arrows */
.orch-rev-nav {
  position: absolute; top: 44%; z-index: 4; width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid rgba(255, 187, 87, 0.40); background: rgba(8, 6, 4, 0.82); color: #FFBB57;
  font-size: 22px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background 0.2s, transform 0.2s;
}
.orch-rev-nav:hover { background: rgba(255, 187, 87, 0.18); transform: scale(1.06); }
.orch-rev-prev { left: -4px; }
.orch-rev-next { right: -4px; }
@media (max-width: 760px) { .orch-rev-nav { display: none; } }
.orch-review-card {
  flex: 0 0 342px; max-width: 342px; scroll-snap-align: start;
  margin: 0;
  padding: 24px 24px 20px;
  background: linear-gradient(158deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.022));
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.13);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s, border-color 0.5s;
}
.orch-review-card:hover {
  transform: translateY(-5px);
  border-color: rgba(255, 187, 87, 0.34);
  box-shadow: 0 28px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 187, 87, 0.16);
}
.orch-review-head { display: flex; align-items: center; gap: 13px; margin-bottom: 12px; }
.orch-review-av {
  width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Inter', system-ui, sans-serif; font-weight: 700; font-size: 19px; color: #1a1206;
  background: linear-gradient(135deg, #FFD27A, #F2A63C);
  box-shadow: 0 4px 14px rgba(255, 187, 87, 0.30);
}
.orch-review-meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.orch-review-name { font-family: 'Inter', system-ui, sans-serif; font-weight: 600; font-size: 15px; color: #fff; }
.orch-review-stars { color: #FFBB57; font-size: 13px; letter-spacing: 2px; line-height: 1; }
.orch-review-text {
  font-family: 'Inter', system-ui, sans-serif; font-weight: 300;
  color: rgba(255, 255, 255, 0.80); font-size: 14px; line-height: 1.65; margin: 0;
}
.orch-review-date {
  font-family: 'Inter', system-ui, sans-serif; color: rgba(255, 255, 255, 0.40);
  font-size: 12px; margin-top: 14px; letter-spacing: 0.2px;
}
.orch-review-quote { color: rgba(255, 187, 87, 0.30); font-size: 30px; line-height: 0.4; font-family: Georgia, serif; }
@media (max-width: 600px) { .orch-review-card { flex-basis: 84vw; max-width: 84vw; } }

/* FIX 6b — breathing room inside the feedback form block (fields + Submit were
   flush to the block border). */
.elementor-element-3082533 .elementor-form { padding: 40px 38px !important; }
.elementor-element-3082533 .elementor-field-group { margin-bottom: 8px; }
.elementor-element-3082533 .elementor-field-type-submit { margin-top: 10px; }
@media (max-width: 600px) {
  .elementor-element-3082533 .elementor-form { padding: 26px 22px !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v3.3 — SCALE & POLISH REFINEMENT (sizes were too large; arrows/switcher off-brand)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Typography: dial the whole scale down ─────────────────────────────────── */
.home .elementor-widget-heading h1.elementor-heading-title,
.single-post .elementor-widget-heading h1.elementor-heading-title {
  font-size: clamp(27px, 3.4vw, 40px) !important;
  line-height: 1.14 !important;
}
.elementor-widget-heading h2.elementor-heading-title {
  font-size: clamp(21px, 2.5vw, 29px) !important;
  line-height: 1.26 !important;
}
.elementor-widget-heading h3.elementor-heading-title { font-size: clamp(17px, 1.8vw, 21px) !important; }
.elementor-widget-text-editor,
.elementor-widget-text-editor p { font-size: 15.5px !important; line-height: 1.7 !important; }
.elementor-widget-heading h2.elementor-heading-title::after { width: 46px; margin-top: 13px; }

/* ── Event cards: smaller (were oversized) ─────────────────────────────────── */
.jet-listing-grid__item { padding: 8px 9px !important; }
.jet-listing-grid__item > .elementor > .e-con,
.jet-listing-grid__item .elementor-element-19848e6 { padding: 22px 22px !important; }
.jet-listing-grid__item .elementor-heading-title { font-size: 18px !important; line-height: 1.3 !important; }
.jet-listing-grid__item .elementor-button { padding: 10px 18px !important; font-size: 11.5px !important; }
.jet-listing-grid__item .jet-listing-dynamic-field__content,
.jet-listing-grid__item .elementor-widget-text-editor { font-size: 13.5px !important; }

/* ── Event carousel arrows (Elementor swiper) → minimal gold, on-brand ──────── */
.elementor-swiper-button {
  color: #FFBB57 !important;
  background: rgba(8, 6, 4, 0.55) !important;
  width: 38px !important; height: 38px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 187, 87, 0.35) !important;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.elementor-swiper-button svg,
.elementor-swiper-button i,
.elementor-swiper-button .eicon-chevron-right,
.elementor-swiper-button .eicon-chevron-left { fill: #FFBB57 !important; color: #FFBB57 !important; font-size: 13px !important; }

/* ── Review carousel arrows → OUT of the cards, into the side gutter ────────── */
.orch-reviews { padding-left: 58px !important; padding-right: 58px !important; }
.orch-rev-nav { width: 40px; height: 40px; font-size: 18px; top: 46%; }
.orch-rev-prev { left: 8px !important; }
.orch-rev-next { right: 8px !important; }
@media (max-width: 760px) { .orch-reviews { padding-left: 12px !important; padding-right: 12px !important; } }

/* ── Language switcher → minimal (drop the flag + bordered box) ─────────────── */
.wpml-ls-flag { display: none !important; }
.wpml-ls-legacy-dropdown, .wpml-ls-legacy-dropdown a,
.menu-item.wpml-ls-item, .menu-item.wpml-ls-item > a,
.wpml-ls-item > a, .wpml-ls a, .wpml-ls-statics-shortcode_actions {
  background: transparent !important; border: none !important; box-shadow: none !important; padding-left: 6px !important; padding-right: 6px !important;
}
.wpml-ls-display, .wpml-ls-native, .menu-item.wpml-ls-item a {
  color: rgba(255, 255, 255, 0.82) !important; font-size: 13px !important; font-weight: 600 !important; letter-spacing: 1.2px;
}
.wpml-ls-current-language > a, .wpml-ls-current-language a .wpml-ls-native { color: #FFBB57 !important; }
.menu-item.wpml-ls-item .sub-menu, .wpml-ls .sub-menu, .elementor-nav-menu--dropdown .wpml-ls-item {
  background: rgba(12, 9, 6, 0.97) !important; border: 1px solid rgba(255, 255, 255, 0.08) !important; border-radius: 10px !important;
}

/* ── Media integration: rounded + inset vignette → edges melt into the dark ── */
.elementor-widget-video,
.elementor-widget-google_maps,
.elementor-widget-gallery .e-gallery-container,
.elementor-widget-gallery .elementor-gallery__container {
  position: relative; border-radius: 16px; overflow: hidden;
}
.elementor-widget-video::after,
.elementor-widget-google_maps::after,
.elementor-widget-gallery .e-gallery-container::after,
.elementor-widget-gallery .elementor-gallery__container::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: 16px;
  box-shadow: inset 0 0 55px 16px rgba(6, 5, 4, 0.72);
  z-index: 2;
}
.elementor-widget-gallery .e-gallery-item .e-gallery-image { border-radius: 6px; }

/* ── v3.3b — switcher box + review-arrow overrides (theme styles were winning) ── */

/* The language-switcher box (white border + black bg) is the nav-menu WIDGET wrapper. */
.elementor-element-c8509f9,
.elementor-widget-nav-menu:has(.wpml-ls-item),
.elementor-widget-nav-menu:has(.wpml-ls-display) {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Review arrows: a theme `button` rule was overriding mine (pink border, 107px wide).
   Force the minimal gold circle. */
.orch-reviews .orch-rev-nav {
  position: absolute !important;
  z-index: 6 !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 187, 87, 0.5) !important;
  background: rgba(10, 7, 5, 0.88) !important;
  color: #FFBB57 !important;
  font-size: 20px !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4) !important;
  top: 46% !important;
}
.orch-reviews .orch-rev-prev { left: 8px !important; right: auto !important; }
.orch-reviews .orch-rev-next { right: 8px !important; left: auto !important; }
.orch-reviews .orch-rev-nav:hover { background: rgba(255, 187, 87, 0.20) !important; transform: scale(1.07) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   v3.4 — UNIFIED SUBSTRATE (canvas) + size/polish
   ═══════════════════════════════════════════════════════════════════════════ */

/* Candlelight CANVAS: the main content sits on ONE elevated, hairline-bordered
   sheet, with a gutter all around where the ambient candlelight shows through.
   The surface is translucent so the drifting ambient still glows inside it. */
body > div.elementor {
  max-width: 1300px;
  width: calc(100% - 44px);
  margin: 22px auto 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.028), rgba(255,255,255,0.008) 42%, rgba(255,255,255,0.016));
  border: 1px solid rgba(255,255,255,0.075);
  border-radius: 26px;
  box-shadow: 0 50px 130px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05);
  overflow: hidden;
}
@media (max-width: 760px) {
  body > div.elementor { width: calc(100% - 16px); margin: 12px auto 18px; border-radius: 18px; }
}

/* Concert Schedule button was a WHITE box → secondary glass-gold button */
a.elementor-button[href*="/schedule/"] {
  background: rgba(255,255,255,0.04) !important;
  color: #FFBB57 !important;
  border: 1px solid rgba(255,187,87,0.5) !important;
  border-radius: 9px !important;
  padding: 12px 26px !important;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
a.elementor-button[href*="/schedule/"]:hover { background: rgba(255,187,87,0.15) !important; }

/* Event/schedule cards — smaller + remove the empty stretch space */
.jet-listing-grid__item { padding: 7px 8px !important; height: auto !important; }
.jet-listing-grid__item > .elementor { height: auto !important; align-self: flex-start !important; }
.jet-listing-grid__item > .elementor > .e-con,
.jet-listing-grid__item .elementor-element-19848e6 { height: auto !important; padding: 18px 20px !important; }
.jet-listing-grid__item .elementor-heading-title { font-size: 17px !important; }
.jet-listing-grid__item .elementor-button { padding: 9px 16px !important; font-size: 11px !important; }

/* Gallery PHOTOS — rounded + small gaps (were sharp rectangles) */
.elementor-widget-gallery .e-gallery-item,
.elementor-widget-gallery .e-gallery-image,
.elementor-widget-gallery .elementor-gallery-item__image {
  border-radius: 10px !important;
  overflow: hidden;
}
.elementor-widget-gallery .e-gallery-item { margin: 3px !important; }

/* Review arrows — bolder circle + crisp SVG chevron, perfectly centered */
.orch-reviews .orch-rev-nav {
  width: 44px !important; height: 44px !important;
  border-width: 2px !important;
  border-color: rgba(255,187,87,0.65) !important;
}
.orch-reviews .orch-rev-nav svg { display: block; }

/* Event-carousel arrows — broaden restyle to JetEngine swiper too */
.jet-listing-grid .swiper-button-next, .jet-listing-grid .swiper-button-prev,
.jet-listing__slider .swiper-button-next, .jet-listing__slider .swiper-button-prev,
.jet-listing-grid .jet-arrow {
  color: #FFBB57 !important; background: rgba(8,6,4,0.55) !important;
  width: 38px !important; height: 38px !important; border-radius: 50% !important;
  border: 1px solid rgba(255,187,87,0.4) !important;
}

/* v3.4b — event card was spreading content via a 20px inner gap → tighten */
.jet-listing-grid__item .e-con-inner { gap: 11px !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   v3.5 — substrate clipping + arrows + buttons + flag
   ═══════════════════════════════════════════════════════════════════════════ */

/* Canvas was clipping the hero image + the mobile reviews carousel (overflow:hidden)
   and had no top breathing room. Stop clipping; add a little top inset. */
body > div.elementor { overflow: visible !important; padding-top: 16px !important; }
/* Event (single-post) hero had a huge top gap — pull it up. */
.single-post > div.elementor { padding-top: 4px !important; }
.single-post > div.elementor > .e-con:first-child { margin-top: 0 !important; }

/* Feedback phone flag: the selected-flag had a near-opaque black bg → black square. */
.elementor-element-3082533 .iti__selected-flag,
.elementor-element-3082533 .iti__flag-container,
.elementor-element-3082533 .iti--separate-dial-code .iti__selected-flag { background: transparent !important; }
.elementor-element-3082533 .iti__country-list { background: rgba(20, 16, 10, 0.97) !important; }

/* The feedback phone field accepts an international number directly; the flag
   is redundant in this compact form and makes the input look misaligned. */
.elementor-element-3082533 .iti__flag-container { display: none !important; }
.elementor-element-3082533 input[type="tel"] { padding-left: 14px !important; }

/* Ticket widgets accept a complete international number as plain text. Elementor
   can initialise intl-tel-input after an AJAX redraw, so scope this rule to every
   checkout surface rather than only the feedback popup. */
.orch-seat-page .iti__flag-container,
.orch-seat-page .iti__selected-flag,
.orch-seat-page .iti--separate-dial-code .iti__selected-flag,
.orchestra-widget .iti__flag-container,
.orchestra-widget .iti__selected-flag,
.orchestra-widget .iti--separate-dial-code .iti__selected-flag { display: none !important; }
.orch-seat-page .iti input[type="tel"],
.orchestra-widget .iti input[type="tel"] { padding-left: 14px !important; }

/* Event-carousel arrows are .jet-listing-grid__slider-icon (square) → gold circles. */
.jet-listing-grid__slider-icon,
.jet-listing-grid__slider-icon.next-arrow,
.jet-listing-grid__slider-icon.prev-arrow {
  color: #FFBB57 !important;
  background: rgba(8, 6, 4, 0.6) !important;
  width: 40px !important; height: 40px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 187, 87, 0.45) !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.jet-listing-grid__slider-icon svg,
.jet-listing-grid__slider-icon i { width: 15px !important; height: 15px !important; fill: #FFBB57 !important; font-size: 14px !important; }

/* Card buttons equal height (Buy tickets was 48px, Learn More 31px). */
.jet-listing-grid__item a.elementor-button,
.jet-listing-grid__item a.elementor-button[href*="buy-tickets"] {
  min-height: 44px !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  padding: 0 18px !important;
  font-size: 11.5px !important;
}

/* Cards a touch smaller still. */
.jet-listing-grid__item .elementor-element-19848e6 { padding: 16px 18px !important; }
.jet-listing-grid__item .e-con-inner { gap: 9px !important; }

/* v3.5b — hide review arrows on mobile (swipe works; they overlapped cards) */
@media (max-width: 760px) { .orch-reviews .orch-rev-nav { display: none !important; } }

/* ═══════════════════════════════════════════════════════════════════════════
   v3.6 — contain hero media, unify arrows, round all photos
   ═══════════════════════════════════════════════════════════════════════════ */

/* Canvas clips to its rounded shape again (hero video was poking past the edge),
   but with top inset so the hero is never cut. Smaller radius = less corner cut. */
body > div.elementor {
  overflow: hidden !important;
  border-radius: 20px !important;
  padding-top: 22px !important;
}
.single-post > div.elementor { padding-top: 10px !important; }

/* UNIFIED carousel arrow — identical spec for review + event carousels */
.orch-reviews .orch-rev-nav,
.jet-listing-grid__slider-icon,
.jet-listing-grid__slider-icon.next-arrow,
.jet-listing-grid__slider-icon.prev-arrow {
  width: 40px !important; height: 40px !important; min-width: 0 !important; padding: 0 !important;
  border-radius: 50% !important;
  border: 1.5px solid rgba(255, 187, 87, 0.55) !important;
  background: rgba(10, 7, 5, 0.7) !important;
  color: #FFBB57 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important;
}
.orch-reviews .orch-rev-nav svg,
.jet-listing-grid__slider-icon svg { width: 17px !important; height: 17px !important; stroke: #FFBB57 !important; fill: none !important; }
.jet-listing-grid__slider-icon i { font-size: 15px !important; color: #FFBB57 !important; }

/* ALL photos rounded (hero, features, gallery, post images) */
.elementor-widget-image img,
.elementor-widget-image-box img,
.elementor-image-box-img img,
.elementor-widget-theme-post-featured-image img,
.e-gallery-image,
.elementor-gallery-item__image,
figure.wp-block-image img,
.wp-image,
.attachment-full,
.size-full { border-radius: 12px !important; }
.elementor-widget-gallery .e-gallery-item { margin: 4px !important; border-radius: 12px; overflow: hidden; }

/* v3.6b — video-reviews carousel renders 2 cramped portrait videos on mobile;
   show the clean text-review carousel there instead (videos stay on desktop). */
@media (max-width: 760px) {
  .orch_vidrev { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   FINAL RESPONSIVE OVERRIDES — MUST REMAIN THE LAST BLOCK (wins the cascade)
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 760px) {
  .orch_vidrev { display: none !important; }                       /* video reviews 2-up cramped on mobile */
  .orch-reviews .orch-rev-nav { display: none !important; }        /* arrows overlapped cards; swipe instead */
  .orch-reviews { padding-left: 14px !important; padding-right: 14px !important; }
  body > div.elementor { width: calc(100% - 14px) !important; }    /* tighter mobile gutter */
}

/* ═══════════════════════════════════════════════════════════════════════════
   v3.7 — ROOT-CAUSE FIXES (each verified by computed style on the real page)
   ═══════════════════════════════════════════════════════════════════════════ */

/* 1. Reviews carousel sized to its CONTENT (1180px) inside a flex column → didn't
   fit mobile. Force it to fill the parent; constrain the scroll grid (min-width:0). */
.orch-reviews { width: 100% !important; max-width: 1180px !important; box-sizing: border-box !important; }
.orch-reviews-grid { min-width: 0 !important; max-width: 100% !important; width: 100% !important; }

/* 2. Homepage photos are SLIDER background-images (.swiper-slide-bg, radius 0) — the
   img/gallery rules never matched them. (Event galleries use .e-gallery-image.) */
.elementor-widget-slides .swiper-slide,
.elementor-widget-slides .swiper-slide-inner { border-radius: 14px !important; overflow: hidden !important; }
.swiper-slide-bg { border-radius: 14px !important; }

/* 3. Event hero had min-height:900px with vertically-centered content → ~450px gap
   above the title. Fit to content. */
.single-post > div.elementor > .e-con:first-child {
  min-height: auto !important; padding-top: 34px !important; padding-bottom: 40px !important;
}

/* v3.7b — fully unify ALL carousel arrows. The Elementor n-carousel/Slides arrows
   (.elementor-swiper-button) were still 38px/bg.55 vs everything else 40px/bg.7. */
.orch-reviews .orch-rev-nav,
.jet-listing-grid__slider-icon,
.elementor-swiper-button {
  width: 40px !important; height: 40px !important; min-width: 0 !important; padding: 0 !important;
  border-radius: 50% !important;
  border: 1.5px solid rgba(255, 187, 87, 0.55) !important;
  background: rgba(10, 7, 5, 0.7) !important;
  color: #FFBB57 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important;
}
/* filled icons (jet/elementor) keep fill; the review chevron is a stroke line */
.jet-listing-grid__slider-icon svg, .jet-listing-grid__slider-icon i,
.elementor-swiper-button svg, .elementor-swiper-button i {
  width: 15px !important; height: 15px !important; font-size: 15px !important; color: #FFBB57 !important; fill: #FFBB57 !important;
}
.orch-reviews .orch-rev-nav svg { width: 16px !important; height: 16px !important; stroke: #FFBB57 !important; fill: none !important; }

/* v3.7c — unify section-title formatting: all H2 section headings centered
   ("Leave feedback" was left; "What Guests Say"/"Program" were centered). */
.elementor-widget-heading h2.elementor-heading-title { text-align: center !important; }
.elementor-widget-heading h2.elementor-heading-title::after {
  margin-left: auto !important; margin-right: auto !important;
}

/* v3.8 (corrected) — the theme draws the checkbox via label::before (an 18px box)
   and hides the native input; on the dark theme that box was nearly invisible
   (faint border). Keep native hidden; make the ::before box gold + add a checkmark
   on :checked. (Verified: my first attempt un-hid the native → double box.) */
.elementor-field-type-acceptance .elementor-field-subgroup,
.elementor-field-type-acceptance .elementor-field-option {
  display: flex !important; align-items: flex-start !important;
}
.elementor-field-type-acceptance input[type="checkbox"] {
  opacity: 0 !important;
  position: absolute !important;
  width: 20px !important; height: 20px !important; margin: 0 !important;
  z-index: 2 !important; cursor: pointer !important;
}
.elementor-field-type-acceptance label:not(.elementor-screen-only) {
  position: relative !important;
  padding-left: 28px !important;
  line-height: 1.5 !important; font-size: 13.5px !important; text-align: left !important;
  cursor: pointer;
}
.elementor-field-type-acceptance label:not(.elementor-screen-only)::before {
  content: "" !important;
  position: absolute !important; left: 0 !important; top: 1px !important;
  width: 18px !important; height: 18px !important; box-sizing: border-box;
  border: 1.5px solid rgba(255, 187, 87, 0.65) !important;
  border-radius: 4px !important;
  background: rgba(255, 255, 255, 0.06) !important;
}
.elementor-field-type-acceptance input[type="checkbox"]:checked + label::before {
  background-color: #FFBB57 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1206' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4.5 4.5L19 7'/%3E%3C/svg%3E") !important;
  background-size: 13px 13px !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  border-color: #FFBB57 !important;
}
.elementor-field-type-acceptance input[type="checkbox"]:checked + label::after { content: none !important; }
.elementor-element-3082533 .elementor-field-type-acceptance label:not(.elementor-screen-only) {
  color: rgba(255, 255, 255, 0.78) !important;
}

/* v3.9 — DEFINITIVE mobile hide for review arrows. Higher specificity (body prefix
   = 0,2,1) so it wins regardless of source order vs the unconditional unified-arrow
   block (0,2,0) — fixes the regression where a later !important block re-showed them. */
@media (max-width: 760px) {
  body .orch-reviews .orch-rev-nav { display: none !important; }
  body .orch_vidrev { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v3.10 — Schedule filter dropdowns (JetSmartFilters) → candlelight glass + gold
   ═══════════════════════════════════════════════════════════════════════════ */
.jet-select__control,
select.jet-select__control,
.jet-smart-filters-select select {
  -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
  background-color: rgba(255, 255, 255, 0.05) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 187, 87, 0.42) !important;
  border-radius: 11px !important;
  padding: 12px 40px 12px 16px !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 14px !important; font-weight: 500 !important; letter-spacing: 0.2px;
  line-height: 1.3 !important;
  min-height: 46px;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23FFBB57' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 15px center !important;
  background-size: 14px 14px !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
  cursor: pointer !important;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease !important;
}
.jet-select__control:hover,
.jet-smart-filters-select select:hover {
  border-color: rgba(255, 187, 87, 0.75) !important;
  background-color: rgba(255, 187, 87, 0.07) !important;
}
.jet-select__control:focus,
.jet-smart-filters-select select:focus {
  outline: none !important;
  border-color: #FFBB57 !important;
  box-shadow: 0 0 0 3px rgba(255, 187, 87, 0.18), 0 10px 26px rgba(0, 0, 0, 0.35) !important;
}
/* open-state option list (best-effort; OS-dependent) */
.jet-select__control option,
.jet-smart-filters-select select option {
  background: #14100a !important;
  color: #fff !important;
}
/* hide any native/jet secondary arrow so only our gold chevron shows */
.jet-select__control::-ms-expand { display: none !important; }
.jet-select:after, .jet-smart-filters-select:after { display: none !important; }
/* filter row spacing */
.jet-smart-filters-select { margin: 0 6px 10px 0; }

/* ═══════════════════════════════════════════════════════════════════════════
   v3.11 — Video testimonials in "What Guests Say" (.orch-vid-testimonials)
   ═══════════════════════════════════════════════════════════════════════════ */
.orch-vid-testimonials {
  display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;
  max-width: 720px; margin: 4px auto 30px; padding: 0 14px; box-sizing: border-box;
}
.orch-vid-testimonials .orch-vid {
  width: 268px; aspect-ratio: 9 / 16; height: auto;
  border-radius: 16px; background: #0a0806;
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.10);
  object-fit: cover; display: block; cursor: pointer;
}
@media (max-width: 640px) {
  .orch-vid-testimonials { gap: 14px; }
  .orch-vid-testimonials .orch-vid { width: 78vw; max-width: 330px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v3.12 — Video testimonials = ONE single-line horizontal carousel (overrides v3.11)
   ═══════════════════════════════════════════════════════════════════════════ */
.orch-vid-testimonials {
  position: relative; max-width: 1000px; margin: 4px auto 30px;
  padding: 0 52px; box-sizing: border-box; display: block;
}
.orch-vid-track {
  display: flex; flex-wrap: nowrap; gap: 18px; overflow-x: auto;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding: 6px 4px 14px; justify-content: flex-start;
  scrollbar-width: thin; scrollbar-color: rgba(255,187,87,0.45) transparent;
}
.orch-vid-track::-webkit-scrollbar { height: 6px; }
.orch-vid-track::-webkit-scrollbar-thumb { background: rgba(255,187,87,0.45); border-radius: 3px; }
.orch-vid-track::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); border-radius: 3px; }
.orch-vid-testimonials .orch-vid {
  flex: 0 0 248px; width: 248px; aspect-ratio: 9 / 16; height: auto;
  scroll-snap-align: start; border-radius: 16px; background: #0a0806;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 18px 42px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.10);
  object-fit: cover; display: block; cursor: pointer;
}
.orch-vid-nav {
  position: absolute; top: 44%; z-index: 4; width: 42px; height: 42px;
  border-radius: 50%; border: 1.5px solid rgba(255,187,87,0.55);
  background: rgba(10,7,5,0.7); color: #FFBB57; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.4);
}
.orch-vid-nav svg { width: 17px; height: 17px; stroke: #FFBB57; fill: none; }
.orch-vid-prev { left: 4px; } .orch-vid-next { right: 4px; }
.orch-vid-nav:hover { background: rgba(255,187,87,0.18); }
@media (max-width: 640px) {
  .orch-vid-testimonials { padding: 0 12px; }
  .orch-vid-testimonials .orch-vid { flex-basis: 70vw; width: 70vw; max-width: 300px; }
  .orch-vid-nav { display: none; }
}

/* v3.13 — video carousel arrows: force gold circle (theme <button> style was making them
   119px-wide rectangles). Higher specificity + !important so it wins. Matches .orch-rev-nav. */
body .orch-vid-testimonials .orch-vid-nav {
  width: 42px !important; height: 42px !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important;
  border-radius: 50% !important;
  border: 1.5px solid rgba(255,187,87,0.55) !important;
  background: rgba(10,7,5,0.7) !important; color: #FFBB57 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  box-shadow: 0 6px 16px rgba(0,0,0,0.4) !important;
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
}
body .orch-vid-testimonials .orch-vid-nav svg { width: 17px !important; height: 17px !important; stroke: #FFBB57 !important; fill: none !important; }
@media (max-width: 640px){ body .orch-vid-testimonials .orch-vid-nav { display: none !important; } }

/* v3.14 — Header content (logo + language switcher) aligns to the central content
   canvas width instead of spanning full viewport (was sticking out ~210px each side
   on wide screens). Matches body>div.elementor: max-width 1300, width calc(100%-44px). */
header.elementor-location-header > .e-con,
header.elementor-location-header > .elementor-element.e-con {
  max-width: 1300px !important;
  width: calc(100% - 44px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  /* match the content sections' inner inset so the logo/switcher align with the
     hero + cards column (header container had 96px padding → logo sat too far in). */
  padding-left: 22px !important;
  padding-right: 22px !important;
}
@media (max-width: 760px) {
  header.elementor-location-header > .e-con,
  header.elementor-location-header > .elementor-element.e-con {
    width: calc(100% - 14px) !important;
    padding-left: 12px !important; padding-right: 12px !important;
  }
}

/* v3.15 — Hero video bled flush to the canvas right edge (looked cropped by the
   canvas overflow). Inset it so it sits clearly inside the canvas with a gutter. */
/* Round the hero video. */
.single-post > div.elementor > .e-con:first-child .elementor-widget-video,
.home > div.elementor > .e-con:first-child .elementor-widget-video,
.page > div.elementor > .e-con:first-child .elementor-widget-video {
  border-radius: 16px !important; overflow: hidden !important;
}
/* Inset the hero section's right edge so the video column doesn't bleed to (and get
   clipped by) the canvas edge — a flex margin on the video alone doesn't move it. */
.single-post > div.elementor > .e-con:first-child,
.home > div.elementor > .e-con:first-child,
.page > div.elementor > .e-con:first-child {
  padding-right: 28px !important;
}
@media (max-width: 1024px) {
  .single-post > div.elementor > .e-con:first-child,
  .home > div.elementor > .e-con:first-child,
  .page > div.elementor > .e-con:first-child { padding-right: 14px !important; }
}

/* v3.16 — home hero section had margin-top:-115px (pulled it ABOVE the canvas box →
   its top got clipped by the canvas overflow). Reset so the hero sits inside. */
.home > div.elementor > .e-con:first-child { margin-top: 0 !important; }

/* ── Popups (Elementor) → Candlelight Glass theme ────────────────────────────
 * Cookie-consent + promo popups shipped with white/grey backgrounds. Restyle the
 * dialog box to dark glass + gold, neutralise the light inner-section fills, set
 * text white / links gold / form fields dark — keeping the gold CTA buttons. */
.elementor-popup-modal .dialog-widget-content,
.elementor-popup-modal .dialog-lightbox-widget-content {
  background: linear-gradient(180deg, rgba(24,17,12,0.975), rgba(13,10,7,0.985)) !important;
  border: 1px solid rgba(255,187,87,0.28) !important;
  box-shadow: 0 26px 70px rgba(0,0,0,0.6) !important;
  color: #fff !important;
}
/* drop the grey/white fills on inner sections so the dark glass shows through */
.elementor-popup-modal .dialog-message > .elementor,
.elementor-popup-modal .e-con, .elementor-popup-modal .e-con-inner,
.elementor-popup-modal .elementor-section, .elementor-popup-modal .elementor-container,
.elementor-popup-modal .elementor-column-wrap, .elementor-popup-modal .elementor-widget-wrap,
.elementor-popup-modal [class*="elementor-element"] { background-color: transparent !important; }
/* text */
.elementor-popup-modal h1, .elementor-popup-modal h2, .elementor-popup-modal h3, .elementor-popup-modal h4,
.elementor-popup-modal p, .elementor-popup-modal li, .elementor-popup-modal label, .elementor-popup-modal span,
.elementor-popup-modal .elementor-heading-title, .elementor-popup-modal .elementor-widget-text-editor { color: #fff !important; }
.elementor-popup-modal a:not(.elementor-button) { color: #FFBB57 !important; }
/* form fields → dark glass */
.elementor-popup-modal input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.elementor-popup-modal textarea, .elementor-popup-modal select {
  background: rgba(255,255,255,0.06) !important; color: #fff !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
}
.elementor-popup-modal input::placeholder, .elementor-popup-modal textarea::placeholder { color: rgba(255,255,255,0.42) !important; }
.elementor-popup-modal input:focus, .elementor-popup-modal textarea:focus, .elementor-popup-modal select:focus { border-color: rgba(255,187,87,0.6) !important; outline: none !important; }
/* keep the gold CTA buttons readable */
.elementor-popup-modal .elementor-button { color: #1a1206 !important; }
/* close (×) button gold */
.elementor-popup-modal .dialog-close-button,
.elementor-popup-modal .dialog-close-button:hover { color: #FFBB57 !important; }
.elementor-popup-modal .dialog-close-button svg { fill: #FFBB57 !important; }
/* Brand typography: Montserrat headings with Inter body. */
.elementor-popup-modal, .elementor-popup-modal p, .elementor-popup-modal span,
.elementor-popup-modal label, .elementor-popup-modal li, .elementor-popup-modal a,
.elementor-popup-modal input, .elementor-popup-modal textarea, .elementor-popup-modal select,
.elementor-popup-modal button, .elementor-popup-modal .elementor-button { font-family: 'Inter', system-ui, sans-serif !important; }
.elementor-popup-modal h1, .elementor-popup-modal h2, .elementor-popup-modal h3,
.elementor-popup-modal h4, .elementor-popup-modal .elementor-heading-title { font-family: 'Montserrat', 'Inter', sans-serif !important; letter-spacing: 0.5px; }
