/* =========================================================
   STRATEGEM CLUB — Single Event Page (CSS-only skin)
   Targets Tribe's REAL default single-event template — nothing
   is overridden or replaced, so ticket purchasing, RSVP, and
   the calendar dropdown all keep working exactly as Event
   Tickets Plus / The Events Calendar actually built them.
   Every selector below is taken from real markup sent from
   this site, not guessed.
   ========================================================= */

body.single-tribe_events{
  --sc-dark:        #122A22;
  --sc-dark-alt:    #244C3E;
  --sc-gold:        #C99B3E;
  --sc-gold-hover:  #B98B2E;
  --sc-maroon:      #661E1A;
  --sc-maroon-hover:#54130F;
  --sc-cream:       #F2E9D4;
  --sc-cream-light: #FBF7EE;
  --sc-text-body:   #6B6B6B;
  --sc-border:      #E1D6BC;
}

body.single-tribe_events #tribe-events-content{
  max-width: 1200px;
  margin: 40px auto;
  padding: 0 24px;
}

/* ---------- Back link ---------- */
body.single-tribe_events .tribe-events-back a{
  color: var(--sc-gold);
  font-weight: 600;
  text-decoration: none;
}
body.single-tribe_events .tribe-events-back a:hover{ color: var(--sc-gold-hover); }

/* ---------- Title & schedule ---------- */
body.single-tribe_events .tribe-events-single-event-title{
  font-family: 'Bricolage Grotesque', sans-serif;
  color: var(--sc-dark);
  font-weight: 800;
  font-size: 40px;
  line-height: 1.2;
  margin: 16px 0 14px;
}

body.single-tribe_events .tribe-events-schedule{
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  background: var(--sc-dark);
  color: #ffffff;
  font-weight: 600;
  font-size: 15px;
  padding: 10px 18px;
  border-radius: 8px;
  margin-bottom: 28px;
  overflow: hidden;
}

/* Rather than guessing the exact class/structure Tribe uses for
   the nested cost badge (three attempts at that specific selector
   didn't stick), force EVERY descendant of the pill to plain white
   text on a transparent background. This can't fail regardless of
   what Tribe actually names that inner element. */
body.single-tribe_events .tribe-events-schedule *{
  color: #ffffff !important;
  background: transparent !important;
  position: static !important;
  float: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ---------- "This event has passed" / other Tribe notices ----------
   Broadened to an attribute selector — a second instance of this
   notice near the footer wasn't matching the exact class name and
   rendered unstyled, so this catches any class starting with
   "tribe-events-notices" rather than one exact guess. */
body.single-tribe_events [class*="tribe-events-notices"]{
  background: var(--sc-cream-light);
  border: 1px solid var(--sc-border);
  border-radius: 8px;
  padding: 12px 18px;
  margin-bottom: 20px;
  list-style: none;
}

body.single-tribe_events [class*="tribe-events-notices"] ul{
  list-style: none;
  margin: 0;
  padding: 0;
}

body.single-tribe_events [class*="tribe-events-notices"] li{
  color: var(--sc-text-body);
  font-size: 14px;
}

body.single-tribe_events #tribe-events-header .tribe-events-nav-pagination{
  display: none;
}

/* =========================================================
   Two-column layout — content left, sticky Tickets right.
   These elements are confirmed DIRECT children of the same
   post wrapper on this site (verified against real markup on
   two different events), so this is placement, not guessing.
   ========================================================= */
body.single-tribe_events #tribe-events-content > .type-tribe_events{
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 40px;
  align-items: start;
}

@media (max-width: 900px){
  body.single-tribe_events #tribe-events-content > .type-tribe_events{
    grid-template-columns: 1fr;
  }
}

body.single-tribe_events .tribe-events-event-image,
body.single-tribe_events .tribe-events-single-event-description,
body.single-tribe_events .tribe-events-single-section.tribe-events-event-meta,
body.single-tribe_events .tribe-link-view-attendee,
body.single-tribe_events #tribe-block__attendees,
body.single-tribe_events .tribe-events-single-event-description + .tribe-events.tribe-common{
  grid-column: 1;
  margin-top: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 24px !important;
}

/* The calendar dropdown wrapper has 3 levels of nested Tribe
   containers (.tribe-events-c-subscribe-dropdown__container >
   .tribe-events-c-subscribe-dropdown > the button) and one of
   them was carrying a large default margin the outer reset above
   never reached. Zeroing every descendant's margin, then the
   single rule below re-applies just the spacing we actually want
   on the outer wrapper only. */
body.single-tribe_events .tribe-events-single-event-description + .tribe-events.tribe-common *{
  margin: 0 !important;
}

body.single-tribe_events .tribe-tickets__tickets-wrapper{
  grid-column: 2;
  grid-row: 1 / span 6;
}

@media (max-width: 900px){
  body.single-tribe_events .tribe-tickets__tickets-wrapper{
    grid-column: 1;
    grid-row: auto;
  }
}

/* ---------- Featured image ---------- */
body.single-tribe_events .tribe-events-event-image img{
  width: 100%;
  height: auto;
  border-radius: 13px;
  display: block;
}

/* ---------- Description ---------- */
body.single-tribe_events .tribe-events-single-event-description{
  color: var(--sc-dark);
  font-size: 17px;
  line-height: 1.7;
}

/* ---------- Add to calendar (Tribe's real dropdown) ---------- */
body.single-tribe_events .tribe-events-c-subscribe-dropdown__button{
  background: var(--sc-dark) !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 11px 18px !important;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__button-text{
  color: #ffffff !important;
  font-weight: 600;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__export-icon path,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__button-icon path{
  fill: #ffffff;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__button:hover{
  background: var(--sc-dark-alt, #244C3E) !important;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__content{
  border: 1px solid var(--sc-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(18, 42, 34, 0.12);
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__list-item-link{
  color: var(--sc-dark) !important;
  padding: 10px 16px !important;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__list-item-link:hover{
  background: var(--sc-cream) !important;
  color: var(--sc-gold-hover) !important;
}

/* =========================================================
   Details / Venue / Map card — real Tribe meta group markup,
   includes the full address + embedded Google Map for free.
   ========================================================= */
body.single-tribe_events .tribe-events-single-section.tribe-events-event-meta{
  background: var(--sc-dark);
  border: none;
  border-radius: 13px;
  padding: 28px 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 32px;
  align-items: start;
}

@media (max-width: 600px){
  body.single-tribe_events .tribe-events-single-section.tribe-events-event-meta{
    grid-template-columns: 1fr;
  }
}

/* Map spans both columns, sits below */
body.single-tribe_events .tribe-events-meta-group-gmap{
  grid-column: 1 / -1;
}

body.single-tribe_events .tribe-events-single-section-title{
  font-family: 'Bricolage Grotesque', sans-serif;
  color: #ffffff;
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 2px solid var(--sc-gold);
  padding-bottom: 10px;
  margin: 0 0 16px;
}

body.single-tribe_events .tribe-events-meta-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

body.single-tribe_events .tribe-events-meta-item{
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 14px;
}
body.single-tribe_events .tribe-events-meta-item:last-child{ border-bottom: none; }

body.single-tribe_events .tribe-events-meta-label{
  color: #ffffff;
  font-weight: 600;
  margin-right: 6px;
}

body.single-tribe_events .tribe-events-meta-value,
body.single-tribe_events .tribe-events-abbr,
body.single-tribe_events .tribe-events-event-cost{
  color: rgba(255, 255, 255, 0.7);
}

body.single-tribe_events .tribe-events-event-categories-label{
  color: #ffffff;
  font-weight: 600;
}

body.single-tribe_events .tribe-events-event-categories a{
  color: var(--sc-gold);
  font-weight: 600;
  text-decoration: none;
}

body.single-tribe_events .tribe-venue a{
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}

body.single-tribe_events .tribe-events-address{
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  line-height: 1.6;
}

body.single-tribe_events .tribe-events-gmap{
  display: inline-block;
  margin-top: 6px;
  color: var(--sc-gold);
  font-weight: 600;
  text-decoration: none;
}

body.single-tribe_events .tribe-events-venue-map{
  margin-top: 16px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

/* ---------- RSVP / attendee notice ---------- */
body.single-tribe_events .tribe-link-view-attendee,
body.single-tribe_events #tribe-block__attendees{
  color: var(--sc-text-body);
  font-size: 14px;
}

body.single-tribe_events .tribe-link-view-attendee a{
  color: var(--sc-dark);
  font-weight: 700;
  text-decoration: underline;
  margin-left: 6px;
}

/* ---------- Footer prev/next event nav ---------- */
/* ---------- Footer prev/next event nav ----------
   Real markup (confirmed via inspector): <nav class="tribe-events-nav-pagination">
   > <ul class="tribe-events-sub-nav"> > <li class="tribe-events-nav-previous/-next">
   Every previous attempt at this used guessed class names
   (#tribe-events-footer as an ancestor, .tribe-events-c-nav__list)
   that don't exist in this site's actual markup — that's why
   nothing worked. These are the real ones. */
body.single-tribe_events .tribe-events-sub-nav{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  list-style: none;
  margin: 40px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--sc-border);
  width: 100%;
}

body.single-tribe_events .tribe-events-nav-previous a,
body.single-tribe_events .tribe-events-nav-next a{
  display: inline-block;
  background: var(--sc-cream);
  color: var(--sc-dark);
  border-radius: 20px;
  padding: 10px 18px;
  font-size: 14px;
  text-decoration: none;
  font-weight: 600;
}

body.single-tribe_events .tribe-events-nav-previous a:hover,
body.single-tribe_events .tribe-events-nav-next a:hover{
  background: var(--sc-dark);
  color: #ffffff;
}

@media (max-width: 900px){
  body.single-tribe_events .tribe-events-sub-nav{
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  body.single-tribe_events .tribe-events-nav-previous a,
  body.single-tribe_events .tribe-events-nav-next a{
    display: block;
    text-align: center;
    box-sizing: border-box;
  }
}

/* =========================================================
   Tickets sidebar — verified against REAL markup for both
   states: an active $50 "General Entry" ticket with quantity
   stepper, and the inactive "no longer available" message.
   ========================================================= */
body.single-tribe_events .tribe-tickets__tickets-wrapper{
  background: var(--sc-dark);
  border: none;
  border-radius: 13px;
  padding: 28px;
  overflow: hidden;
}

/* The <form> Tribe wraps the ticket UI in carries its own default
   background AND border/padding — removing only background last
   time left a visible "box inside a box" outline. Zeroing all of
   it out lets the dark green wrapper be the only visible box. */
body.single-tribe_events .tribe-tickets__tickets-wrapper form,
body.single-tribe_events #tribe-tickets__tickets-form{
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

body.single-tribe_events .tribe-tickets__tickets-title{
  font-family: 'Bricolage Grotesque', sans-serif;
  color: #ffffff !important;
  font-weight: 700;
  font-size: 20px;
  border-bottom: 2px solid var(--sc-gold);
  padding-bottom: 14px;
  margin: 0 0 20px;
}

body.single-tribe_events .tribe-tickets__notice{
  background: rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 12px 14px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 16px;
}

/* Individual ticket item (active) — Tribe's own base CSS defaults
   this to flex, which was forcing the title, price, and quantity
   stepper to collide onto one row instead of stacking. Forcing
   block layout fixes that at the root instead of patching each
   symptom. */
body.single-tribe_events .tribe-tickets__tickets-item{
  display: flex !important;
  flex-wrap: wrap;
  align-items: center !important;
  justify-content: space-between !important;
  background: var(--sc-dark-alt);
  border: none;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
}

body.single-tribe_events .tribe-tickets__tickets-item-content-title-container,
body.single-tribe_events .tribe-tickets__tickets-item-content-title{
  display: block !important;
  width: 100%;
}

body.single-tribe_events .tribe-tickets__tickets-item-content-title{
  color: #ffffff;
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 8px;
}

body.single-tribe_events .tribe-tickets__tickets-item-extra{
  display: flex !important;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

body.single-tribe_events .tribe-tickets__tickets-item-extra-price,
body.single-tribe_events .tribe-amount,
body.single-tribe_events .tribe-currency-symbol{
  color: var(--sc-gold);
  font-weight: 700;
  font-size: 16px;
}

body.single-tribe_events .tribe-tickets__tickets-item-extra-available{
  color: rgba(255, 255, 255, 0.65);
  font-size: 12px;
}

/* Quantity stepper */
body.single-tribe_events .tribe-tickets__tickets-item-quantity{
  display: flex !important;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

body.single-tribe_events .tribe-tickets__tickets-item-quantity-remove,
body.single-tribe_events .tribe-tickets__tickets-item-quantity-add{
  width: 32px;
  height: 32px;
  border-radius: 6px;
  border: none;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-weight: 700;
  cursor: pointer;
}

body.single-tribe_events .tribe-tickets__tickets-item-quantity-remove:hover,
body.single-tribe_events .tribe-tickets__tickets-item-quantity-add:hover{
  background: rgba(255, 255, 255, 0.22);
}

body.single-tribe_events .tribe-tickets__tickets-item-quantity-number-input,
body.single-tribe_events input.tribe-common-h3.tribe-tickets__tickets-item-quantity-number-input{
  width: 48px;
  text-align: center;
  border: none;
  border-radius: 6px;
  padding: 6px;
  font-size: 15px;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff !important;
}

/* Footer: quantity/total summary + buy button — forced into a
   column so the button reliably breaks onto its own full-width
   row below, instead of sitting beside the text (it was a flex
   item taking 100% of ITS allotted space, not the whole row). */
body.single-tribe_events .tribe-tickets__tickets-footer{
  display: flex !important;
  flex-direction: column !important;
  gap: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  margin-top: 8px;
  padding-top: 16px;
}

body.single-tribe_events .tribe-tickets__tickets-footer-quantity,
body.single-tribe_events .tribe-tickets__tickets-footer-total{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #ffffff;
  margin-bottom: 0;
}

/* THE actual bug behind the "button off-center" look — not the
   button at all. Tribe/Elementor's own responsive spacing system
   sets margin-left: var(--tec-spacer-5) on .tribe-tickets__tickets-footer-total
   at min-width:768px (confirmed via inspector), which was
   throwing off the whole footer's alignment, not just the total
   row. Repeated class = specificity boost to guarantee this wins. */
body.single-tribe_events .event-tickets .tribe-tickets__tickets-footer-total.tribe-tickets__tickets-footer-total.tribe-tickets__tickets-footer-total{
  margin-left: 0 !important;
}

body.single-tribe_events .event-tickets .tribe-tickets__tickets-footer-quantity.tribe-tickets__tickets-footer-quantity.tribe-tickets__tickets-footer-quantity{
  margin-left: 0 !important;
}

body.single-tribe_events .tribe-tickets__tickets-footer-quantity-number,
body.single-tribe_events .tribe-tickets__tickets-footer-quantity-label,
body.single-tribe_events .tribe-tickets__tickets-footer-total-label,
body.single-tribe_events .tribe-tickets__tickets-footer-total-wrap{
  color: #ffffff;
}

body.single-tribe_events .tribe-tickets__tickets-footer-total{
  font-weight: 700;
  font-size: 16px;
}

body.single-tribe_events .tribe-tickets__tickets-footer-total .tribe-amount,
body.single-tribe_events .tribe-tickets__tickets-footer-total .tribe-currency-symbol{
  color: var(--sc-gold);
}

/* Elementor generates its own !important responsive margin rules
   with fairly high specificity (confirmed: this site runs
   Elementor 4.1.4). A plain margin-left:0 !important was tying or
   losing on specificity, not losing to a caching issue. Repeating
   the class artificially boosts specificity past Elementor's rule
   without needing to guess its exact ancestor chain. */
body.single-tribe_events .event-tickets .tribe-tickets__tickets-buy.tribe-tickets__tickets-buy.tribe-tickets__tickets-buy.tribe-tickets__tickets-buy,
body.single-tribe_events button[name*="get_tickets"].tribe-common-c-btn.tribe-common-c-btn.tribe-common-c-btn{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.single-tribe_events .tribe-tickets__tickets-buy,
body.single-tribe_events button[name*="get_tickets"]{
  width: 100%;
  margin-left: 0 !important;
  background: var(--sc-maroon) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 6px !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 14px !important;
  margin-top: 8px;
  cursor: pointer;
}

body.single-tribe_events .tribe-tickets__tickets-buy:hover{
  background: var(--sc-maroon-hover) !important;
}

body.single-tribe_events .tribe-tickets__tickets-buy:disabled{
  background: rgba(255, 255, 255, 0.12) !important;
  color: rgba(255, 255, 255, 0.4) !important;
  cursor: not-allowed;
}

/* Inactive / sold-out state */
body.single-tribe_events .tribe-tickets__tickets-item--inactive{
  background: rgba(255, 255, 255, 0.06);
  border: 1px dashed rgba(255, 255, 255, 0.25);
  border-radius: 8px;
  padding: 24px 20px;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
}

/* =========================================================
   "Get Tickets" modal — appended near #tribe-tickets__modal-target,
   which can render outside the page grid, so these are
   intentionally global (not scoped to the grid container).
   ========================================================= */
body.single-tribe_events .tribe-dialog__wrapper{
  border-radius: 13px !important;
}

body.single-tribe_events .tribe-dialog__title,
body.single-tribe_events .tribe-modal__title{
  font-family: 'Bricolage Grotesque', sans-serif;
  color: var(--sc-dark) !important;
}

body.single-tribe_events .tribe-tickets__attendee-tickets-footer-checkout-button,
body.single-tribe_events button[name="checkout-button"]{
  background: var(--sc-maroon) !important;
  color: #ffffff !important;
  border-radius: 6px !important;
  font-weight: 700;
  margin-left: 0 !important;
}

body.single-tribe_events .tribe-tickets__attendee-tickets-footer-cart-button,
body.single-tribe_events button[name="cart-button"]{
  color: var(--sc-gold) !important;
  font-weight: 600;
}

body.single-tribe_events .tribe-tickets__form-field-label{
  color: var(--sc-dark) !important;
  font-weight: 600;
}

body.single-tribe_events .tribe-tickets__form-field-input,
body.single-tribe_events .tribe-common-form-control-text__input{
  border: 1px solid var(--sc-border) !important;
  border-radius: 6px !important;
}

/* =========================================================
   RSVP block (Event Tickets' free RSVP widget — #rsvp-now /
   .tribe-tickets__rsvp*). Different component from the paid
   Tickets Commerce box above (.tribe-tickets__tickets-*), so it
   needed its own rules — real markup confirmed via inspector,
   same verification standard as the rest of this file. Styled to
   match the Tickets box: solid dark-green fill, gold as the
   primary action, not guessed.
   ========================================================= */
body.single-tribe_events .tribe-tickets__rsvp-wrapper{
  margin-top: 20px;
}

body.single-tribe_events .tribe-tickets__rsvp{
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  background: var(--sc-dark);
  border-radius: 13px;
  padding: 28px 30px;
}

body.single-tribe_events .tribe-tickets__rsvp-details-wrapper{
  flex: 1 1 260px;
}

body.single-tribe_events .tribe-tickets__rsvp-actions-wrapper{
  flex: 0 0 200px;
}

body.single-tribe_events .tribe-tickets__rsvp-title{
  font-family: 'Bricolage Grotesque', sans-serif;
  color: #ffffff !important;
  font-weight: 700;
  font-size: 20px;
  margin: 0 0 10px;
}

body.single-tribe_events .tribe-tickets__rsvp-description{
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 14px;
  line-height: 1.6;
  margin: 0 0 16px;
}

body.single-tribe_events .tribe-tickets__rsvp-description p{
  margin: 0;
  color: inherit;
}

body.single-tribe_events .tribe-tickets__rsvp-attendance{
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 6px;
}

body.single-tribe_events .tribe-tickets__rsvp-attendance-number{
  color: var(--sc-gold) !important;
  font-weight: 700;
  font-size: 26px;
}

body.single-tribe_events .tribe-tickets__rsvp-attendance-going{
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

body.single-tribe_events .tribe-tickets__rsvp-availability{
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 13px;
}

body.single-tribe_events .tribe-tickets__rsvp-availability-quantity{
  color: var(--sc-gold) !important;
  font-weight: 700;
}

/* "RSVP Here" label */
body.single-tribe_events .tribe-tickets__rsvp-actions-rsvp > span:first-child{
  display: block;
  font-family: 'Bricolage Grotesque', sans-serif;
  color: #ffffff !important;
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 12px;
}

/* The button's direct wrapper div needs to actually BE full-width
   for the button's own width:100% (below) to resolve against
   anything meaningful — otherwise the percentage has nothing full
   to measure against and the button shrinks to its own content,
   which is exactly why it was sitting off to the left instead of
   matching the column's width. */
body.single-tribe_events .tribe-tickets__rsvp-actions-rsvp-going{
  display: block;
  width: 100%;
}

/* "Going" — the primary action, same gold treatment as the "Get
   Tickets" button in the paid-tickets box for consistency. */
body.single-tribe_events .tribe-tickets__rsvp-actions-button-going{
  display: block;
  width: 100%;
  background: var(--sc-gold) !important;
  color: var(--sc-dark) !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 11px 18px !important;
  font-weight: 700;
  cursor: pointer;
}

body.single-tribe_events .tribe-tickets__rsvp-actions-button-going:hover{
  background: var(--sc-gold-hover) !important;
}

/* "Can't go" — secondary/ghost, sits quietly under the primary
   gold button instead of competing with it. */
body.single-tribe_events .tribe-tickets__rsvp-actions-rsvp-not-going{
  margin-top: 8px;
  text-align: center;
}

body.single-tribe_events .tribe-tickets__rsvp-actions-button-not-going{
  background: none !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 13px;
  text-decoration: underline;
  cursor: pointer;
  padding: 6px;
}

body.single-tribe_events .tribe-tickets__rsvp-actions-button-not-going:hover{
  color: #ffffff !important;
}

@media (max-width: 600px){
  body.single-tribe_events .tribe-tickets__rsvp{
    flex-direction: column;
  }
  body.single-tribe_events .tribe-tickets__rsvp-attendance{
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
  }
  body.single-tribe_events .tribe-tickets__rsvp-details-wrapper{
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    border-bottom: none !important;
  }
  body.single-tribe_events .tribe-tickets__rsvp-details{
    border-bottom: none !important;
  }
  body.single-tribe_events .tribe-tickets__rsvp-actions-wrapper{
    flex-basis: auto;
    margin: 16px 0 0 !important;
    padding: 16px 0 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.15) !important;
  }
  body.single-tribe_events .tribe-tickets__rsvp-actions{
    border-top: none !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
  body.single-tribe_events .tribe-tickets__rsvp-actions-rsvp{
    border-top: none !important;
  }
  body.single-tribe_events .tribe-tickets__rsvp-actions-rsvp-going{
    display: flex;
    width: 100%;
    align-self: center;
    align-items: center;
    justify-content: center;
  }
  /* Catch-all in case the dashed line is a pseudo-element rather
     than a real border, on any of the above. */
  body.single-tribe_events .tribe-tickets__rsvp-details-wrapper::before,
  body.single-tribe_events .tribe-tickets__rsvp-details-wrapper::after,
  body.single-tribe_events .tribe-tickets__rsvp-details::before,
  body.single-tribe_events .tribe-tickets__rsvp-details::after,
  body.single-tribe_events .tribe-tickets__rsvp-actions-wrapper::before,
  body.single-tribe_events .tribe-tickets__rsvp-actions::before,
  body.single-tribe_events .tribe-tickets__rsvp-actions-rsvp::before{
    content: none !important;
    border: none !important;
    display: none !important;
  }
}

/* =========================================================
   RSVP registration form dialog (the "Please submit your RSVP
   information..." modal — .tribe-tickets__rsvp-form-*). A third,
   separate template from both the RSVP block above and the
   ticket-checkout modal below. Its inputs/labels already inherit
   correct styling from the generic .tribe-tickets__form-field-label
   / .tribe-common-form-control-text__input rules further up this
   file (same class names, reused) — only the heading and buttons
   needed their own rules.
   ========================================================= */
body.single-tribe_events .tribe-tickets__rsvp-form-title h3{
  font-family: 'Bricolage Grotesque', sans-serif;
  color: var(--sc-dark) !important;
  font-weight: 700;
}

body.single-tribe_events .tribe-tickets__rsvp-form-button{
  border-radius: 6px !important;
  font-weight: 700;
  padding: 11px 20px !important;
}

/* "Finish" — gold, matching the "Going" button this form follows
   from (gold = RSVP actions; maroon is reserved for paid checkout,
   see the "Checkout Now" rule above). */
body.single-tribe_events .tribe-tickets__rsvp-form-button[type="submit"]{
  background: var(--sc-gold) !important;
  color: var(--sc-dark) !important;
  border: none !important;
}

body.single-tribe_events .tribe-tickets__rsvp-form-button[type="submit"]:hover{
  background: var(--sc-gold-hover) !important;
}

/* "Cancel" — quiet text button, not competing with Finish */
body.single-tribe_events .tribe-tickets__rsvp-form-button--cancel{
  background: none !important;
  border: none !important;
  color: var(--sc-text-body) !important;
}

body.single-tribe_events .tribe-tickets__rsvp-form-button--cancel:hover{
  color: var(--sc-dark) !important;
}

/* =========================================================
   Ticket purchase modal — reinforcement pass (v2.8.0)
   Same content as the main ticket widget above, but the existing
   body.single-tribe_events-scoped rules for it aren't reaching
   this modal (confirmed: prices showing white instead of gold
   despite an existing rule for that). Rather than guess why,
   these are scoped to the dialog's own wrapper class instead,
   which is confirmed present from real markup regardless of
   where in the DOM the modal actually renders.
   ========================================================= */
.tribe-dialog__wrapper .tribe-dialog__title,
.tribe-dialog__wrapper .tribe-modal__title{
  font-family: 'Bricolage Grotesque', sans-serif !important;
  color: var(--sc-dark) !important;
  font-weight: 700 !important;
}

.tribe-dialog__wrapper .tribe-tickets__tickets-item{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  background: var(--sc-dark-alt) !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 20px !important;
  margin-bottom: 20px !important;
}

.tribe-dialog__wrapper .tribe-tickets__tickets-item-content-title-container{
  margin: 0 !important;
}

.tribe-dialog__wrapper .tribe-tickets__tickets-item-content-title{
  display: block !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  margin: 0 !important;
}

.tribe-dialog__wrapper .tribe-tickets__tickets-item-extra{
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  margin-bottom: 0 !important;
}

/* The unit price shown here duplicates the bottom-right total
   below (same $ value when quantity is 1) and was floating
   unaligned in the middle of the box — hidden in favor of the
   one clear total price instead of showing the same number twice
   in two different spots. */
.tribe-dialog__wrapper .tribe-tickets__tickets-item-extra-price{
  display: none !important;
}

.tribe-dialog__wrapper .tribe-tickets__tickets-item-extra-available{
  color: rgba(255, 255, 255, 0.65) !important;
  font-size: 12px !important;
}

.tribe-dialog__wrapper .tribe-tickets__tickets-item-total-wrap{
  color: var(--sc-gold) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
}

/* This readonly quantity number has no +/- controls in the modal
   (those only appear on the main ticket widget) and duplicates the
   "Quantity: 1" shown in the footer just below — hidden here since
   it has no interactive purpose and was floating unlabeled. */
.tribe-dialog__wrapper .tribe-tickets__tickets-item-quantity-number{
  display: none !important;
}

/* Redundant with the price already shown in the box above, and
   showed 0/$0.00 rather than matching the actual selection —
   hidden entirely, but ONLY inside the modal, never the main
   ticket widget on the page itself (an earlier version of this
   rule was unscoped and could reach both — that's what broke the
   main widget's footer/button). */
.tribe-dialog__wrapper .tribe-tickets__tickets-footer,
#tribe-modal__cart .tribe-tickets__tickets-footer{
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* "General Entry" repeated as a section label before the attendee
   form — kept (it's a useful divider before "Attendee 1"), styled
   down to a quiet kicker instead of looking like a stray heading. */
.tribe-dialog__wrapper .tribe-ticket__tickets-heading{
  color: var(--sc-gold) !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  margin: 0 0 16px !important;
}

.tribe-dialog__wrapper .tribe-tickets__attendee-tickets-item-header,
.tribe-dialog__wrapper .tribe-tickets__attendee-tickets-item-title{
  color: var(--sc-dark) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  margin-bottom: 12px !important;
}

.tribe-dialog__wrapper .tribe-tickets__form-field-label{
  color: var(--sc-dark) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}

.tribe-dialog__wrapper .tribe-common-form-control-text__input,
.tribe-dialog__wrapper .tribe-tickets__form-field-input{
  border: 1px solid var(--sc-border) !important;
  border-radius: 6px !important;
  background: var(--sc-cream-light) !important;
  color: var(--sc-dark) !important;
  padding: 11px 14px !important;
}

.tribe-dialog__wrapper .tribe-common-form-control-text__input:focus,
.tribe-dialog__wrapper .tribe-tickets__form-field-input:focus{
  border-color: var(--sc-gold) !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(201, 155, 62, 0.15) !important;
}

.tribe-dialog__wrapper .tribe-required{
  color: var(--sc-maroon) !important;
}

.tribe-dialog__wrapper .tribe-tickets__iac-email-disclaimer{
  color: var(--sc-text-body) !important;
  font-size: 12px !important;
  margin: 16px 0 !important;
}
