/* ============================================
   Stoke - TEC styles (Svenson Barristers)
   The Events Calendar + Event Tickets on dark backgrounds.
   Loaded by mu-plugins/stoke-tec-styles.php (theme independent).
   Moved from Elementor Site Settings > Custom CSS on 2026-09-30.
============================================ */

#tribe-events-pg-template {
    margin: 0 auto;
    max-width: 100% !important;
    padding: 0px !important;
}

/* ==== STOKE: #book event booking panel START ==== */
/* ============================================
   Single Event: #book booking panel (map + meta + tickets)
   Template: Single Event Post (3142). Figma: Single Event > Group 191
============================================ */

/* ---- Venue widget: map only ---- */
#book .tec-events-elementor-event-widget__venue,
#book .tec-events-elementor-event-widget__venue-container {
    display: block;
    width: 100%;
    max-width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
}
#book .tec-events-elementor-event-widget__venue-details {
    display: none;
}
#book .tec-events-elementor-event-widget__venue-map {
    width: 100%;
    max-width: 100%;
    height: 483px;
    margin: 0;
    padding: 0;
}
#book .tec-events-elementor-event-widget__venue-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(1);
}

/* ---- Teal panel ---- */
#book .elementor-element-f3e8490 {
    --padding-top: 52px;
    --padding-bottom: 54px;
    --padding-left: 42px;
    --padding-right: 50px;
    justify-content: space-between;
    gap: 40px;
}

/* Meta: date / time / venue */
#book .elementor-element-df8224c {
    --gap: 26px;
    --row-gap: 26px;
}
#book .jet-listing-dynamic-field__content {
    font-size: 18px;
    font-weight: 400;
    line-height: 22px;
    color: var(--e-global-color-secondary, #E1FFF8);
}
#book .jet-listing-dynamic-field__icon {
    width: 16px;
    margin-right: 12px;
    justify-content: center;
}
#book .jet-listing-dynamic-field__icon svg {
    width: auto;
    height: 16px;
}

/* ---- Tickets widget ---- */
#book .elementor-element-e39fc95 {
    width: 100%;
    max-width: 368px;
    margin-left: auto;
}
#book .tribe-tickets__tickets-form.tribe-tickets__form {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
    color: var(--e-global-color-text, #FFFFFF);
}
#book .tribe-tickets__tickets-title,
#book .tribe-tickets__notice--barred,
#book .tribe-tickets__tickets-item-extra-available {
    display: none !important;
}

/* Ticket row: name | price | - qty + */
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 0 0 12px;
    min-height: 0;
    border: 0;
    border-bottom: 1px solid rgba(225, 255, 248, 0.6);
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-content-title-container {
    flex: 1 1 auto;
    margin: 0;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-content-title {
    font-family: inherit;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -0.6px;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-extra {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    text-align: left;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-extra-price,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-sale-price,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-extra-price .tribe-formatted-currency-wrap {
    font-family: inherit;
    font-size: 20px;
    font-weight: 300;
    letter-spacing: -0.6px;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 6px;
    margin: 0 0 0 16px;
    padding: 0;
    line-height: 1;
    height: auto;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item > * {
    align-self: center;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-remove,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-add {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0 2px;
    margin: 0;
    width: auto;
    height: auto;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    color: rgba(225, 255, 248, 0.55);
    cursor: pointer;
    transition: color 0.2s;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-remove:hover,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-add:hover,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-remove:focus-visible,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-add:focus-visible {
    color: var(--e-global-color-secondary, #E1FFF8);
    background: transparent;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-number {
    margin: 0;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-number-input {
    width: 2ch;
    min-width: 22px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    text-align: center;
    font-family: inherit;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
    -moz-appearance: textfield;
    appearance: textfield;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-number-input::-webkit-outer-spin-button,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-quantity-number-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Sold out / unavailable message */
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item--inactive {
    display: block;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-content--inactive {
    font-family: inherit;
    font-size: 18px;
    font-weight: 400;
    color: var(--e-global-color-secondary, #E1FFF8);
}

/* Footer: Quantity / Total / Get Tickets */
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px 8px;
    margin: 74px 0 0;
    padding: 0;
    border: 0;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-quantity,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-total {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    margin: 0;
    font-family: inherit;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-quantity-label,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-total-label {
    font-weight: 700;
    color: inherit;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-quantity-number,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-total-wrap,
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-total .tribe-formatted-currency-wrap {
    font-size: 14px;
    font-weight: 300;
    color: inherit;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-total {
    margin-right: 22px;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-buy.tribe-common-c-btn {
    min-width: 132px;
    height: 40px;
    margin: 0;
    padding: 0 24px;
    background: transparent;
    border: 1px solid var(--e-global-color-text, #FFFFFF);
    border-radius: 90px;
    box-shadow: none;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 38px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--e-global-color-text, #FFFFFF);
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s, opacity 0.2s;
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-buy.tribe-common-c-btn:hover:not(:disabled),
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-buy.tribe-common-c-btn:focus-visible:not(:disabled) {
    background: var(--e-global-color-secondary, #E1FFF8);
    border-color: var(--e-global-color-secondary, #E1FFF8);
    color: var(--e-global-color-accent, #073A3F);
}
#book .tribe-tickets__tickets-form .tribe-tickets__tickets-buy.tribe-common-c-btn:disabled {
    background: transparent;
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Tablet / mobile ---- */
@media (max-width: 1024px) {
    #book .tec-events-elementor-event-widget__venue-map {
        height: 380px;
    }
    #book .elementor-element-f3e8490 {
        --flex-direction: column;
        flex-direction: column;
        --padding-top: 40px;
        --padding-bottom: 44px;
        --padding-left: 32px;
        --padding-right: 32px;
        gap: 36px;
    }
    #book .elementor-element-47f2ed1 {
        --width: 100%;
        width: 100%;
    }
    #book .elementor-element-e39fc95 {
        max-width: 100%;
        margin-left: 0;
    }
    #book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer {
        margin-top: 40px;
    }
}
@media (max-width: 767px) {
    #book .tec-events-elementor-event-widget__venue-map {
        height: 280px;
    }
    #book .elementor-element-f3e8490 {
        --padding-top: 32px;
        --padding-bottom: 36px;
        --padding-left: 20px;
        --padding-right: 20px;
        gap: 32px;
    }
    #book .elementor-element-df8224c {
        --gap: 16px;
        --row-gap: 16px;
    }
    #book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-content-title,
    #book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-extra-price,
    #book .tribe-tickets__tickets-form .tribe-tickets__tickets-sale-price,
    #book .tribe-tickets__tickets-form .tribe-tickets__tickets-item-extra-price .tribe-formatted-currency-wrap {
        font-size: 18px;
    }
    #book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer {
        margin-top: 32px;
        justify-content: space-between;
    }
    #book .tribe-tickets__tickets-form .tribe-tickets__tickets-footer-total {
        margin-right: auto;
    }
}
/* ---- Tickets attendee modal (opens from "Get Tickets") ----
   Matches the site's JetPopup + Gravity Forms style:
   primary teal panel, Cormorant italic title, underline inputs, pill button.
   :is(#book, body) gives ID-level specificity to beat TEC's deep selectors. */
:is(#book, body) .tribe-dialog .tribe-dialog__overlay {
    background-color: rgba(5, 41, 44, 0.85);
}
:is(#book, body) .tribe-dialog__wrapper.tribe-modal__wrapper--ar {
    max-width: 760px;
    width: calc(100% - 40px);
    padding: 48px 48px 40px;
    background: var(--e-global-color-primary, #00565A);
    border: 0;
    border-radius: 0;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
    color: var(--e-global-color-secondary, #E1FFF8);
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
}
:is(#book, body) .tribe-modal__wrapper--ar,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__content,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-common,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-common-b1,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-common-b2,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-common-b3 {
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
    color: var(--e-global-color-secondary, #E1FFF8);
}

/* Close button */
:is(#book, body) .tribe-modal__wrapper--ar .tribe-dialog__close-button {
    top: -24px;
    right: -24px;
    width: 20px;
    height: 20px;
    background-color: transparent;
    border: 0;
    box-shadow: none;
    filter: brightness(0) invert(1);
    opacity: 0.8;
    transition: opacity 0.2s;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-dialog__close-button:hover,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-dialog__close-button:focus-visible {
    background-color: transparent;
    opacity: 1;
}

/* Title */
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal--ar__title {
    margin: 0 0 32px;
    padding: 0 24px 0 0;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), serif;
    font-size: 44px;
    font-style: italic;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -2px;
    color: var(--e-global-color-text, #FFFFFF);
}

/* Cart summary row */
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item {
    padding: 0 0 14px;
    margin: 0;
    border: 0;
    border-bottom: 1px solid rgba(225, 255, 248, 0.6);
    background: transparent;
    align-items: center;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-content-title-container {
    grid-column: 1 / 3;
    padding: 0;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-content-title {
    font-family: inherit;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -0.6px;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-extra-price,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-sale-price,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-total,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-formatted-currency-wrap {
    font-family: inherit;
    font-size: 20px;
    font-weight: 300;
    letter-spacing: -0.6px;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-extra-available {
    display: none;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-quantity-number {
    width: auto;
    height: auto;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart input[type="number"].tribe-tickets__tickets-item-quantity-number-input {
    width: 3ch !important;
    height: auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-align: center;
    font-family: inherit;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
}

/* Cart footer: Quantity / Total */
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer {
    margin: 0;
    padding: 14px 0 0;
    border: 0;
    background: transparent;
    justify-content: flex-end;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer-quantity,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer-total,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer .tribe-formatted-currency-wrap {
    font-family: inherit;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer-quantity-label,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer-total-label {
    font-weight: 700;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer-quantity-number,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-footer-total-wrap {
    font-weight: 300;
    color: var(--e-global-color-text, #FFFFFF);
}

/* Attendee section (shared: modal + attendee registration page) */
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets {
    margin-top: 36px;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-title,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-ticket__tickets-heading {
    margin: 0 0 16px;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), serif;
    font-size: 30px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: -1px;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item {
    margin: 0 0 20px;
    padding: 28px 32px 12px;
    background: var(--e-global-color-accent, #073A3F);
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item::before,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item::after {
    display: none;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item-header {
    margin: 0 0 20px;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item-title {
    margin: 0;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--e-global-color-dd10fb8, #93B5B6);
}

/* Fields: label above, underline input (same as site Gravity Forms) */
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item.tribe-tickets__form .tribe-tickets__form-field {
    display: flex;
    flex-flow: column;
    align-items: stretch;
    margin: 0 0 22px;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item.tribe-tickets__form .tribe-tickets__form-field-label {
    flex: 0 0 auto;
    width: auto;
    margin: 0 0 2px;
    padding: 0;
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--e-global-color-secondary, #E1FFF8);
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-label .tribe-required {
    margin-left: 2px;
    color: rgba(225, 255, 248, 0.58);
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper {
    flex: 1 1 auto;
    width: 100%;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper input,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper textarea,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper select {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 6px 0 8px;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 0;
    box-shadow: none;
    font-family: inherit;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.4;
    color: #FFFFFF;
    -webkit-appearance: none;
    appearance: none;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper textarea {
    min-height: 100px;
    padding-top: 8px;
    resize: vertical;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper select option {
    color: #FFFFFF;
    background: var(--e-global-color-accent, #073A3F);
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input:focus,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper input:focus,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper textarea:focus,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper select:focus {
    outline: none;
    box-shadow: none;
    border-bottom-color: #FFFFFF;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input::placeholder,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper ::placeholder {
    font-size: 14px;
    color: rgba(225, 255, 248, 0.58);
    opacity: 1;
}
/* Checkbox / radio fields */
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper input[type="checkbox"],
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-wrapper input[type="radio"] {
    width: auto;
    padding: 0;
    border: 0;
    -webkit-appearance: auto;
    appearance: auto;
    accent-color: var(--e-global-color-secondary, #E1FFF8);
}
/* Validation */
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input.tribe-tickets__form-field-input--error,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input.ar-validation-error,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input[aria-invalid="true"],
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field--error .tribe-tickets__form-field-input {
    border-bottom-color: #ff9d9d;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-helper--error,
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__form-field-input-helper {
    font-size: 14px;
    color: #ffdddd;
}

/* Notices + disclaimer */
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__notice {
    margin: 0 0 20px;
    padding: 14px 18px;
    background: rgba(7, 58, 63, 0.6);
    border: 0;
    border-left: 2px solid var(--e-global-color-secondary, #E1FFF8);
    border-radius: 0;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__notice::before {
    display: none;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__notice--error {
    border-left-color: #ffdddd;
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__notice .tribe-tickets-notice__content {
    font-size: 14px;
    color: var(--e-global-color-secondary, #E1FFF8);
}
:is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__iac-email-disclaimer {
    margin: 4px 0 0;
    font-size: 14px;
    font-weight: 300;
    color: rgba(225, 255, 248, 0.75);
}

/* Checkout button (pill, like the site's form submit) */
:is(#book, body) .tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-footer {
    margin: 28px 0 0;
    padding: 0;
    border: 0;
    display: flex;
    justify-content: flex-end;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-submit.tribe-common-c-btn {
    width: auto;
    height: auto;
    margin: 0;
    padding: 14px 40px;
    background: transparent;
    border: 1px solid #FFFFFF;
    border-radius: 999px;
    box-shadow: none;
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
    color: #FFFFFF;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-submit.tribe-common-c-btn:hover,
:is(#book, body) .tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-submit.tribe-common-c-btn:focus-visible {
    background: #FFFFFF;
    color: var(--e-global-color-primary, #00565A);
}
:is(#book, body) .tribe-modal__wrapper--ar .tribe-common-c-loader__dot {
    fill: var(--e-global-color-secondary, #E1FFF8);
}

@media (max-width: 767px) {
    :is(#book, body) .tribe-dialog__wrapper.tribe-modal__wrapper--ar {
        width: calc(100% - 20px);
        padding: 44px 20px 28px;
    }
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-dialog__close-button {
        top: -30px;
        right: -4px;
    }
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-modal--ar__title {
        font-size: 32px;
        letter-spacing: -1.2px;
        margin-bottom: 24px;
    }
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-content-title,
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-extra-price,
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-sale-price,
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-total,
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-formatted-currency-wrap,
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-modal__cart .tribe-tickets__tickets-item-quantity-number-input {
        font-size: 16px;
    }
    :is(#book, body) :is(.tribe-modal__wrapper--ar, .tribe-tickets__registration) .tribe-tickets__attendee-tickets-item {
        padding: 22px 18px 6px;
    }
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-footer {
        justify-content: stretch;
    }
    :is(#book, body) .tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-submit.tribe-common-c-btn {
        width: 100%;
    }
}
/* TEC modal: restore scroll instantly on close (Elementor sets html smooth scrolling) */
html:has(body.a11y-dialog__body-locked) { scroll-behavior: auto; }
/* ============================================
   Attendee Registration page (/attendee-registration/)
   and Order Confirmation page (/tickets-order/)
   Both use Hello's default page template on the dark site background,
   so TEC's light-background text, white boxes and blue buttons are remapped
   to the site palette. Fields, notices and attendee cards are shared with the
   modal (see "Attendee section" above). Checkout (/tickets-checkout/) is
   styled in Elementor and is intentionally not targeted here.
============================================ */

/* TEC colour variables for these two pages only */
:is(#book, body).page-tribe-attendee-registration .tribe-common,
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-common {
    --tec-color-text-primary: #FFFFFF;
    --tec-color-text-primary-light: rgba(225, 255, 248, 0.75);
    --tec-color-text-secondary: rgba(225, 255, 248, 0.75);
    --tec-color-text-disabled: rgba(225, 255, 248, 0.45);
    --tec-color-icon-primary: #E1FFF8;
    --tec-color-icon-secondary: rgba(225, 255, 248, 0.75);
    --tec-color-border-default: rgba(225, 255, 248, 0.3);
    --tec-color-border-secondary: rgba(225, 255, 248, 0.3);
    --tec-color-border-tertiary: rgba(225, 255, 248, 0.5);
    --tec-color-border-active: #E1FFF8;
    --tec-color-background: transparent;
    --tec-color-background-secondary: rgba(7, 58, 63, 0.6);
    --tec-color-accent-primary: #E1FFF8;
    --tec-color-accent-primary-hover: #FFFFFF;
    --tec-color-accent-primary-active: #FFFFFF;
    --tec-color-link-primary: #E1FFF8;
    --tec-color-link-accent: #E1FFF8;
    --tec-color-link-accent-hover: #FFFFFF;
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
    color: var(--e-global-color-secondary, #E1FFF8);
}

/* Page title from the theme (h1.entry-title) */
:is(#book, body).page-tribe-attendee-registration .page-header .entry-title,
:is(#book, body):has(.tribe-tickets__commerce-order) .page-header .entry-title {
    margin: 60px 0 40px;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), serif;
    font-size: 72px;
    font-style: italic;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -3px;
    color: var(--e-global-color-text, #FFFFFF);
}

/* General text + headings inside TEC on these pages */
:is(#book, body).page-tribe-attendee-registration .tribe-common :is(.tribe-common-b1, .tribe-common-b2, .tribe-common-b3, p, span, label, li),
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-common :is(.tribe-common-b1, .tribe-common-b2, .tribe-common-b3, p, span, label, li) {
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
    color: var(--e-global-color-secondary, #E1FFF8);
}
:is(#book, body).page-tribe-attendee-registration .tribe-common :is(.tribe-common-h1, .tribe-common-h2, .tribe-common-h3, .tribe-common-h4, .tribe-common-h5, .tribe-common-h6, .tribe-common-h7, .tribe-common-h8, h2, h3, h4),
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-common :is(.tribe-common-h1, .tribe-common-h2, .tribe-common-h3, .tribe-common-h4, .tribe-common-h5, .tribe-common-h6, .tribe-common-h7, .tribe-common-h8, h2, h3, h4) {
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
    color: var(--e-global-color-text, #FFFFFF);
}

/* ---- Attendee Registration ---- */
/* Keep the serif ticket heading (shared with the modal) over the general heading rule above */
:is(#book, body).page-tribe-attendee-registration .tribe-common .tribe-ticket__tickets-heading {
    margin: 0 0 16px;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), serif;
    font-size: 30px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: -1px;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-footer {
    margin-top: 28px;
}
/* TEC repeats the page title inside the content; the theme h1 already shows it */
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-page-title {
    display: none;
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-actions {
    border-color: rgba(225, 255, 248, 0.3);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-description,
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-description :is(span, time) {
    font-size: 16px;
    font-weight: 300;
    color: rgba(225, 255, 248, 0.75);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-title,
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-title :is(h2, h3, .tribe-common-h4) {
    margin: 4px 0 24px;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), serif;
    font-size: 44px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -2px;
    color: var(--e-global-color-text, #FFFFFF);
}

/* Ticket Summary (mini cart) */
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart {
    padding: 28px 28px 24px;
    background: transparent;
    border: 1px solid rgba(225, 255, 248, 0.3);
    border-radius: 0;
    box-shadow: none;
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__mini-cart-title {
    margin: 0 0 16px;
    padding: 0 0 14px;
    border-bottom: 1px solid rgba(225, 255, 248, 0.6);
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), serif;
    font-size: 30px;
    font-style: italic;
    font-weight: 400;
    letter-spacing: -1px;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item {
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(225, 255, 248, 0.3);
    padding: 0 0 14px;
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item-content-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item-content-subtitle {
    font-size: 13px;
    color: rgba(225, 255, 248, 0.75);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart :is(.tribe-tickets__tickets-item-extra-price, .tribe-tickets__tickets-sale-price, .tribe-tickets__tickets-item-total, .tribe-formatted-currency-wrap, .tribe-ticket-quantity, .tribe-currency-symbol, .tribe-amount) {
    font-size: 16px;
    font-weight: 300;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-footer {
    margin: 0;
    padding: 14px 0 0;
    border: 0;
    background: transparent;
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-footer :is(.tribe-tickets__tickets-footer-quantity, .tribe-tickets__tickets-footer-total, span) {
    font-size: 14px;
    font-weight: 300;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-footer :is(.tribe-tickets__tickets-footer-quantity-label, .tribe-tickets__tickets-footer-total-label) {
    font-weight: 700;
}

/* Save & Checkout button (pill, like the site's form submit) */
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-submit.tribe-common-c-btn {
    width: auto;
    height: auto;
    padding: 14px 40px;
    background: transparent;
    border: 1px solid #FFFFFF;
    border-radius: 999px;
    box-shadow: none;
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
    color: #FFFFFF;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-submit.tribe-common-c-btn:hover,
:is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-submit.tribe-common-c-btn:focus-visible {
    background: #FFFFFF;
    color: var(--e-global-color-primary, #00565A);
}
:is(#book, body).page-tribe-attendee-registration .tribe-common-c-loader__dot {
    fill: var(--e-global-color-secondary, #E1FFF8);
}

/* ---- Order Confirmation ---- */
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-header-title {
    margin: 0 0 16px;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-description {
    font-size: 18px;
    font-weight: 300;
    line-height: 1.5;
    color: var(--e-global-color-secondary, #E1FFF8);
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-details {
    margin: 32px 0 0;
    padding: 20px 0;
    border-top: 1px solid rgba(225, 255, 248, 0.3);
    border-bottom: 1px solid rgba(225, 255, 248, 0.3);
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-details-col1 {
    font-size: 16px;
    font-weight: 300;
    color: rgba(225, 255, 248, 0.75);
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-details-col2,
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-details-col2 * {
    font-size: 16px;
    font-weight: 600;
    color: var(--e-global-color-text, #FFFFFF);
    word-break: break-word;
}

/* Your Tickets */
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__attendees-list-wrapper > :is(h2, h3, .tribe-common-h4) {
    margin: 40px 0 16px;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), serif;
    font-size: 30px;
    font-style: italic;
    font-weight: 400;
    letter-spacing: -1px;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__attendees-list-item {
    margin: 0 0 12px;
    padding: 24px 28px;
    background: var(--e-global-color-accent, #073A3F);
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__attendees-list-item-attendee-details-name {
    font-size: 18px;
    font-weight: 600;
    color: var(--e-global-color-text, #FFFFFF);
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__attendees-list-item-attendee-details-ticket,
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__attendees-list-item-attendee-details-ticket * {
    font-size: 16px;
    font-weight: 300;
    color: var(--e-global-color-secondary, #E1FFF8);
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__wallet-plus-component-pdf-button-link.tribe-common-c-btn-border {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 24px;
    background: transparent;
    border: 1px solid #FFFFFF;
    border-radius: 999px;
    font-family: var(--e-global-typography-text-font-family, "aileron"), sans-serif;
    font-size: 14px;
    font-weight: 400;
    text-decoration: none;
    color: #FFFFFF;
    transition: background-color 0.3s ease, color 0.3s ease;
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__wallet-plus-component-pdf-button-link.tribe-common-c-btn-border:hover,
:is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__wallet-plus-component-pdf-button-link.tribe-common-c-btn-border:focus-visible {
    background: #FFFFFF;
    color: var(--e-global-color-primary, #00565A);
}

/* Footer links (browse more events / back home) */
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-footer {
    margin: 32px 0 80px;
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-footer-link.tribe-common-anchor-alt {
    margin-right: 20px;
    padding-bottom: 2px;
    border-bottom: 1px solid rgba(225, 255, 248, 0.6);
    font-size: 14px;
    font-weight: 400;
    text-decoration: none;
    color: var(--e-global-color-secondary, #E1FFF8);
    transition: border-color 0.2s, color 0.2s;
}
:is(#book, body):has(.tribe-tickets__commerce-order) .tribe-tickets__commerce-order-footer-link.tribe-common-anchor-alt:hover {
    border-bottom-color: #FFFFFF;
    color: #FFFFFF;
}

@media (max-width: 767px) {
    :is(#book, body).page-tribe-attendee-registration .page-header .entry-title,
    :is(#book, body):has(.tribe-tickets__commerce-order) .page-header .entry-title {
        margin: 36px 0 28px;
        font-size: 44px;
        letter-spacing: -1.5px;
    }
    :is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-title,
    :is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-title :is(h2, h3, .tribe-common-h4) {
        font-size: 32px;
        letter-spacing: -1.2px;
    }
    :is(#book, body).page-tribe-attendee-registration .tribe-tickets__registration-submit.tribe-common-c-btn {
        width: 100%;
    }
    :is(#book, body):has(.tribe-tickets__commerce-order) .tec-tickets__attendees-list-item {
        padding: 20px;
    }
}
