/* GDS ticketing components — the domain-specific half of the library. */
/* TicketCard */
.gds-ticket{display:flex;flex-direction:column;flex-grow:1;border-radius:var(--gds-radius-card);overflow:hidden;background-color:var(--gds-base-bg);box-shadow:var(--gds-elevation-level-1)}
.gds-ticket__header{display:flex;width:100%;height:var(--gds-ticket-header-height);padding:.3rem 0;background-color:var(--gds-base-primary)}
.gds-ticket__header--thin{height:var(--gds-ticket-header-height-thin);padding:0}
.gds-ticket__header--resale{background-color:var(--gds-resale)}
.gds-ticket__header--disabled,.gds-ticket__header--transfer{background-color:var(--gds-status-default)}
.gds-ticket__header-text{display:flex;align-items:center;justify-content:center;width:100%;color:var(--gds-text-inverse);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-snowdon-font-size);line-height:var(--gds-snowdon-line-height);letter-spacing:var(--gds-letter-spacing-default);text-transform:uppercase}
.gds-ticket__logo{width:100px;height:18px;margin:auto}
.gds-ticket__body{display:flex;flex-direction:column;flex-grow:1;padding:var(--gds-space-auditorium)}

/* SeatInfov2 — three-column section / row / seat */
.gds-seatinfo{display:flex;justify-content:space-between;margin:0}
.gds-seatinfo__col{display:grid;row-gap:2px;grid-template-rows:repeat(2,min-content)}
.gds-seatinfo__col:nth-child(1){justify-items:flex-start}
.gds-seatinfo__col:nth-child(2){justify-items:center}
.gds-seatinfo__col:nth-child(3){justify-items:flex-end}
.gds-seatinfo__label{width:fit-content;margin:0;color:var(--gds-text-secondary);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-nevis-font-size);line-height:var(--gds-nevis-line-height);letter-spacing:var(--gds-letter-spacing-default);text-transform:uppercase}
.gds-seatinfo__value{width:100%;margin:0;overflow:hidden;font-weight:var(--gds-font-weight-bold);font-size:var(--gds-vinson-font-size);line-height:var(--gds-vinson-line-height);letter-spacing:var(--gds-letter-spacing-default);text-transform:uppercase;overflow-wrap:break-word}
.gds-seatinfo__col:nth-child(2) .gds-seatinfo__value{text-align:center}
.gds-seatinfo__col:nth-child(3) .gds-seatinfo__value{text-align:end}
.gds-seatinfo--muted .gds-seatinfo__value{color:var(--gds-text-secondary)}
/* SimpleSeatInfo — inline comma-separated variant */
.gds-simple-seatinfo{display:flex;gap:var(--gds-space-lounge);margin:0;color:var(--gds-text-secondary);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-snowdon-font-size);line-height:var(--gds-snowdon-line-height);letter-spacing:var(--gds-letter-spacing-default);text-transform:uppercase}
.gds-simple-seatinfo>div{display:flex;gap:var(--gds-space-lounge)}
.gds-simple-seatinfo dt,.gds-simple-seatinfo dd{margin:0}

/* SelectableTicketCard */
.gds-stc{width:100%}
.gds-stc__main{border-top:var(--gds-space-club) solid var(--gds-base-primary);background:var(--gds-base-bg);box-shadow:var(--gds-elevation-level-2)}
.gds-stc__main--unavailable{border-top-color:var(--gds-base-border-dark);color:var(--gds-text-secondary)}
.gds-stc__area{display:flex;flex-direction:column;width:100%}
@media (min-width:512px){.gds-stc__area{flex-direction:row}}
.gds-stc__info{display:flex;flex:1;gap:var(--gds-space-amphitheatre);align-items:stretch;min-width:0;padding-inline:var(--gds-space-auditorium);padding-block:var(--gds-space-auditorium)}
@media (min-width:512px){.gds-stc__info{padding-inline:var(--gds-space-amphitheatre)}}
.gds-stc__selector{display:flex;align-items:center}
.gds-stc__body{display:flex;flex:1;flex-direction:column;justify-content:center;min-width:0}
.gds-stc__eyebrow{margin:0;color:var(--gds-text-secondary);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-snowdon-font-size);line-height:var(--gds-snowdon-line-height);text-transform:uppercase}
.gds-stc__title{margin:0;font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-boising-font-size);line-height:var(--gds-boising-line-height)}
.gds-stc__subtitle{max-width:100%;margin:0;overflow:hidden;color:var(--gds-text-secondary);font-size:var(--gds-rainier-font-size);white-space:nowrap;text-overflow:ellipsis}
.gds-stc__divider{width:100%;height:1px;margin-block:var(--gds-space-hall);background-color:var(--gds-base-border-light)}
.gds-stc__price{display:flex;align-items:center;gap:var(--gds-space-club);padding-block:var(--gds-space-auditorium);padding-inline:var(--gds-space-auditorium);background:var(--gds-base-bg-alt)}
@media (min-width:512px){.gds-stc__price{flex-direction:column;justify-content:center;padding-inline:var(--gds-space-stadium)}}
.gds-stc__price-label{color:var(--gds-text-secondary);font-size:var(--gds-rainier-font-size);text-transform:capitalize}
.gds-stc__price-value{font-weight:var(--gds-font-weight-bold);font-size:var(--gds-blanc-font-size);line-height:var(--gds-blanc-line-height);letter-spacing:var(--gds-letter-spacing-default);text-transform:uppercase}
.gds-stc__unavailable{display:flex;align-items:center;margin:0;padding-block:var(--gds-space-club);padding-inline-start:var(--gds-space-auditorium);color:var(--gds-text-primary);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-snowdon-font-size);text-transform:uppercase;background:var(--gds-base-border-light)}
.gds-stc__ticket-info{margin-block:var(--gds-space-club) 0;margin-inline:0;color:var(--gds-text-secondary);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-nevis-font-size);line-height:var(--gds-nevis-line-height)}
.gds-stc__action{display:grid;place-items:center;padding-inline:var(--gds-space-auditorium);padding-block-end:var(--gds-space-auditorium)}
@media (min-width:512px){.gds-stc__action{padding-inline:var(--gds-space-amphitheatre);padding-block:var(--gds-space-auditorium)}}

/* TicketInfo / TicketDescription / TicketQuantity */
.gds-ticket-info{display:flex;flex-wrap:wrap;gap:var(--gds-space-club) var(--gds-space-auditorium);align-items:center;color:var(--gds-text-secondary);font-size:var(--gds-etna-font-size);line-height:var(--gds-etna-line-height)}
.gds-ticket-info__item{display:flex;gap:var(--gds-space-lounge);align-items:center}
.gds-ticket-description{margin:0;color:var(--gds-text-secondary);font-size:var(--gds-etna-font-size);line-height:var(--gds-etna-line-height)}
.gds-ticket-quantity{display:flex;gap:var(--gds-space-lounge);align-items:center;color:var(--gds-text-secondary)}
.gds-ticket-top{display:flex;flex-direction:column;gap:var(--gds-space-club);padding:var(--gds-space-auditorium)}
.gds-ticket-top__title{margin:0;font-weight:var(--gds-font-weight-bold);font-size:var(--gds-vinson-font-size);line-height:var(--gds-vinson-line-height);letter-spacing:var(--gds-letter-spacing-default);text-transform:uppercase}
.gds-ticket-top__meta{margin:0;color:var(--gds-text-secondary);font-size:var(--gds-etna-font-size);line-height:var(--gds-etna-line-height)}

/* Countdown */
.gds-countdown{display:flex;flex-direction:row;align-items:center}
.gds-countdown--full{justify-content:space-between}
.gds-countdown__unit{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1/1;width:80px;min-width:64px;color:var(--gds-text-primary);background-color:var(--gds-base-border-light);font-weight:var(--gds-font-weight-bold);font-size:24px;line-height:24px;letter-spacing:var(--gds-letter-spacing-kilimanjaro);text-transform:uppercase}
.gds-countdown--medium .gds-countdown__unit{width:96px;min-width:80px;font-size:32px;line-height:32px}
.gds-countdown--large .gds-countdown__unit{width:144px;min-width:104px;font-size:44px;line-height:44px;letter-spacing:var(--gds-letter-spacing-display)}
.gds-countdown__unit--outline{border:2px solid var(--gds-base-border-midtone);background-color:transparent}
.gds-countdown__unit--ghost{aspect-ratio:auto;background-color:transparent}
.gds-countdown__unit--disabled{color:var(--gds-base-border-midtone);background-color:var(--gds-base-bg-alt)}
.gds-countdown__unit--inverse{color:var(--gds-text-inverse);background-color:rgba(255,255,255,.05)}
.gds-countdown__label{margin:0;color:var(--gds-text-secondary);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-snowdon-font-size);line-height:var(--gds-snowdon-line-height);letter-spacing:var(--gds-letter-spacing-default)}
.gds-countdown__colon{margin:0;padding:0 var(--gds-space-lounge);color:var(--gds-text-primary);font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-boising-font-size)}

/* CountdownTimer — ring + remaining time */
.gds-timer{display:flex;flex-direction:row-reverse;align-items:center;justify-content:center}
.gds-timer--bottom{flex-direction:column}
.gds-timer__text{display:flex;flex-direction:column;align-items:flex-end;margin-inline-end:var(--gds-space-hall);color:var(--gds-base-bg-inverse)}
.gds-timer--bottom .gds-timer__text{align-items:center;margin-inline-end:0;margin-top:var(--gds-space-club)}
.gds-timer--light .gds-timer__text{color:var(--gds-base-bg)}
.gds-timer__label{min-width:70px;text-align:start;font-weight:var(--gds-font-weight-semibold);font-size:var(--gds-boising-font-size);line-height:var(--gds-boising-line-height)}
.gds-timer__time{font-variant-numeric:tabular-nums;font-weight:var(--gds-font-weight-bold);font-size:var(--gds-matterhorn-font-size);line-height:var(--gds-matterhorn-line-height);letter-spacing:var(--gds-letter-spacing-default)}
.gds-timer__time--small{font-size:var(--gds-vinson-font-size);line-height:var(--gds-vinson-line-height);text-transform:uppercase}
.gds-timer__ring{transform:rotate(-90deg);fill:transparent;stroke:currentColor}

/* ShareCard */
.gds-sharecard{position:relative;display:grid;grid-template-rows:1fr;width:100%;max-width:390px;min-height:659px;padding:var(--gds-space-arena);border-radius:var(--gds-radius-share-card);overflow:hidden;color:var(--gds-text-inverse);text-align:center;background-color:var(--gds-base-bg-inverse)}
.gds-sharecard__bg{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.05);filter:blur(32px)}
.gds-sharecard__content{position:relative;display:grid;place-items:center;place-content:center;grid-area:1/1;gap:var(--gds-space-stadium)}
.gds-sharecard__mid{max-width:326px;overflow:hidden}
.gds-sharecard__image-wrap{display:grid}
.gds-sharecard__image{display:block;grid-area:1/1;width:100%;max-height:218px;object-fit:contain}
.gds-sharecard__date{grid-area:1/1;align-self:end;justify-self:start;max-width:302px;margin:0 24px 0 0;padding:var(--gds-space-hall) var(--gds-space-auditorium) 0;text-align:start;font-size:var(--gds-etna-font-size);line-height:var(--gds-etna-line-height);background:var(--gds-base-bg-inverse)}
.gds-sharecard__text{width:100%;padding-bottom:var(--gds-space-hall);text-align:start;background:var(--gds-base-bg-inverse)}
.gds-sharecard__event{margin:0;padding:var(--gds-space-hall) var(--gds-space-auditorium) 0;font-weight:var(--gds-font-weight-bold);font-size:var(--gds-vinson-font-size);line-height:var(--gds-vinson-line-height);letter-spacing:var(--gds-letter-spacing-default);text-transform:uppercase}
.gds-sharecard__venue{margin:0;padding:var(--gds-space-hall) var(--gds-space-auditorium) 0;font-size:var(--gds-etna-font-size);line-height:var(--gds-etna-line-height)}
.gds-sharecard__brand{width:100px;height:18px;margin:auto}
