/* Ticket Time: original names, all fixtures, standalone WooCommerce presentation. */
.tt-calendar-total{margin:0 0 16px;font-size:.875rem;font-weight:700;color:var(--tt-ink,#102b40)}
.tt-match-copy{min-width:0}.tt-match-copy>strong{white-space:normal;overflow-wrap:anywhere}
.tt-match-list{max-height:none;overflow:visible}.tt-match-row[hidden]{display:none!important}
.tt-date{min-height:76px}.tt-match-copy .tt-schedule-note{white-space:normal}
.tf-primary-menu{flex-wrap:wrap;row-gap:.5rem}.tt-header .tf-header__inner{min-height:94px;height:auto;padding-block:15px}
.tt-native-chat{position:fixed;bottom:22px;right:22px;z-index:9999;border:0;border-radius:999px;min-height:48px;padding:12px 18px;background:#102b40;color:#fff;display:flex;align-items:center;gap:9px;box-shadow:0 6px 20px #102b402b;font:inherit;cursor:pointer}
.tt-native-chat[hidden]{display:none}.tt-chat-dialog{width:min(520px,calc(100vw - 32px));border:0;border-radius:20px;padding:28px;color:#102b40;box-shadow:0 20px 70px #102b4040}
.tt-chat-dialog::backdrop{background:#102b4099}.tt-chat-dialog h2{margin-top:0}.tt-chat-dialog p{line-height:1.65}
.tt-chat-dialog-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.tt-chat-dialog-status:empty{display:none}
@media(min-width:1101px) and (max-width:1400px){.tt-header-contact,.tf-account-link{display:none}.tf-primary-menu{gap:14px}}
@media(max-width:1100px){.tt-header .tf-header__inner{min-height:76px;padding-block:12px}.tt-match-copy>strong{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.tt-native-chat{transition:none}}

/* 1.3.1: the original fixed price tracks could not contain a WooCommerce range.
 * Real offer markup gets independent, wrapping layout space. Nothing is clipped,
 * abbreviated, repositioned over a sibling, or reformatted by JavaScript.
 */
.tt-site .tt-match-row__link {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem 1.75rem;
    padding: 1.5rem 1.75rem;
    min-width: 0;
}
.tt-site .tt-match-details {
    display: grid;
    grid-template-columns: 3.625rem 5.625rem minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
    flex: 1 1 25rem;
    min-width: 0;
    max-width: 100%;
}
.tt-site .tt-match-details > .tt-date {
    grid-column: auto;
    grid-row: auto;
    min-width: 0;
    max-width: 100%;
}
.tt-site .tt-match-details > .tt-match-clubs {
    display: block;
    min-width: 0;
}
.tt-site .tt-match-details > .tt-match-copy {
    grid-column: auto;
    grid-row: auto;
    min-width: 0;
}
.tt-site .tt-match-copy > * {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}
/* Reset the inherited 48px flex-basis as well as width to keep both crests inside. */
.tt-site .tt-match-clubs .tf-match-clubs__club { flex: 0 0 auto; }
.tt-site .tt-match-venue { overflow-wrap: anywhere; }
.tt-site .tt-match-venue .tf-icon { flex: 0 0 auto; }
.tt-site .tt-match-offer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem 1rem;
    flex: 0 1 24rem;
    min-width: 0;
    max-width: 100%;
    margin-inline-start: auto;
}
.tt-site .tt-match-offer > .tt-match-price {
    flex: 1 1 11.5rem;
    grid-column: auto;
    grid-row: auto;
    min-width: 0;
    max-width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    align-self: auto;
    font-size: 1.375rem;
    line-height: 1.4;
    letter-spacing: -.025em;
    text-align: right;
    white-space: normal;
}
.tt-site .tt-price-value {
    display: block;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    font-variant-numeric: tabular-nums;
}
.tt-site .tt-price-value .woocommerce-Price-amount {
    display: inline-block;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}
.tt-site .tt-price-value bdi { overflow-wrap: anywhere; }
.tt-site .tt-price-value small {
    font-size: .75rem;
    line-height: 1.5;
    letter-spacing: normal;
}
.tt-site .tt-price-value .tf-price-unavailable {
    font-size: .875rem;
    line-height: 1.5;
    letter-spacing: normal;
}
.tt-site .tt-match-price > .tt-price-unit,
.tt-site .tt-ticket-price > .tt-price-unit {
    display: block;
    margin-top: .125rem;
    font-size: .6875rem;
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: normal;
    color: var(--tt-muted);
}
.tt-site .tt-match-offer > .tt-match-action {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    flex: 0 1 8.625rem;
    grid-column: auto;
    grid-row: auto;
    justify-self: auto;
    gap: .5rem;
    width: auto;
    min-width: 0;
    max-width: 100%;
}
.tt-site .tt-match-action .tt-availability {
    width: auto;
    font-size: .6875rem;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}
.tt-site .tt-availability::before { flex: 0 0 auto; }
.tt-site .tt-availability:not(.tt-availability--available)::before { background: #63747d; }
.tt-site .tt-match-action .tt-row-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    height: auto;
    padding: .625rem .75rem;
    font-size: .8125rem;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}
.tt-site .tt-match-action .tt-row-cta .tf-icon { flex: 0 0 1rem; }
/* The same complete price range must fit in the narrower featured ticket. */
.tt-site .tt-ticket-bottom { min-width: 0; flex-wrap: wrap; }
.tt-site .tt-ticket-bottom > .tt-ticket-price {
    flex: 1 1 10rem;
    min-width: 0;
    max-width: 100%;
    font-size: 1.5rem;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}
.tt-site .tt-ticket-bottom > .tt-round-link { flex: 0 0 48px; margin-inline-start: auto; }
/* Related cards and the product's mobile bar also receive full Woo price HTML. */
.tt-site .tf-event-card__footer,
.tt-site .tf-mobile-buy-bar { flex-wrap: wrap; }
.tt-site .tf-event-card__price,
.tt-site .tf-mobile-buy-bar > div,
.tt-site .tf-buy-panel__from,
.tt-site .tf-event-price-card__price {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}
@media (max-width: 700px) {
    .tt-site .tt-match-row__link { gap: 1rem; padding: 1.25rem 1rem; }
    .tt-site .tt-match-details {
        flex-basis: 100%;
        grid-template-columns: 4.875rem minmax(0, 1fr);
        grid-template-areas: "date copy" "clubs copy";
        gap: .5rem .875rem;
    }
    .tt-site .tt-match-details > .tt-date { grid-area: date; width: 3.25rem; justify-self: center; }
    .tt-site .tt-match-details > .tt-match-clubs { grid-area: clubs; justify-self: center; }
    .tt-site .tt-match-details > .tt-match-copy { grid-area: copy; align-self: center; }
    .tt-site .tt-match-clubs .tf-match-clubs--row { width: 4.875rem; gap: .375rem; }
    .tt-site .tt-match-clubs .tf-match-clubs__club { width: 2.25rem; min-width: 2.25rem; height: 2.625rem; padding: .1875rem; }
    .tt-site .tt-match-copy > strong { font-size: 1rem; line-height: 1.4; }
    .tt-site .tt-match-venue, .tt-site .tt-schedule-note { font-size: .6875rem; line-height: 1.5; }
    .tt-site .tt-match-offer { flex-basis: 100%; margin-inline-start: 0; }
    .tt-site .tt-match-offer > .tt-match-price { text-align: left; }
}
@media (max-width: 480px) {
    .tt-site .tt-match-offer { flex-direction: column; align-items: stretch; gap: .75rem; }
    .tt-site .tt-match-offer > .tt-match-price { flex: 0 1 auto; }
    .tt-site .tt-match-offer > .tt-match-action {
        flex: 0 1 auto;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: .5rem .875rem;
    }
    .tt-site .tt-match-action .tt-availability { flex: 1 1 5rem; }
    .tt-site .tt-match-action .tt-row-cta { flex: 0 1 9rem; width: auto; margin-inline-start: auto; }
}

/* 1.3.2: keep both original crests visible at every viewport. The old base
 * display:none breakpoint is also removed from atelier.css. Never replace club
 * artwork with a background image, cropped thumbnail, or mobile-only asset. */
.tt-site .tt-match-details > .tt-match-clubs {
    display: block;
    visibility: visible;
    overflow: visible;
}
.tt-site .tt-match-clubs .tf-match-clubs--row {
    display: flex;
    visibility: visible;
    flex-wrap: nowrap;
    max-width: 100%;
}

/* 1.3.3: closed fixtures and stale cached purchase forms must stay hidden. */
[data-tt-sale-kind="list"][data-tt-sale-closed="true"],
.tt-site [data-tt-sale-id] [hidden] { display: none !important; }
.tt-sales-notice { margin: 1rem; line-height: 1.5; }
