/* Batch 34 (2026-10-03): Tickets level up. Tickets route only, loads after the site-wide batch 33 reveal and button system.
   C1 reveal hooks live in the template (data-reveal on the hero well, each card, the Know before you buy well, the newsletter card).
   C2 ticket cards: the badge art is a lid on the card, cards share row heights, Get Tickets bottom-aligned across a row, hover lift.
   C3 Know before you buy well: heading, definition list, three buttons.   C4 hero photo box takes the standard 2px red frame.
   C5 under 900px: one column, lid at card width plus 16px, definition list stacks, buttons full width.
   No ticket, price, time or policy sentence is written here; every string comes from the sales facts through the template. */

/* ---------- C2. Ticket cards ---------- */
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers{--t34-pad:22px;--t34-lid-h:200px;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-auto-rows:auto;column-gap:56px!important;row-gap:40px!important;align-items:stretch}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer],
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice.ticket-choice-og[data-offer]{
  display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-auto-rows:auto;grid-column:auto!important;row-gap:0!important;
  position:relative;padding:0 var(--t34-pad) var(--t34-pad)!important;overflow:visible!important;min-width:0;
  border:3px solid #ef2435!important;border-radius:12px!important;background:#080808!important;background-image:none!important;
  box-shadow:var(--om17-well)!important;transition:transform 180ms ease,box-shadow 180ms ease}
/* The copy block stops being a box: its children become rows of the card grid, so rows can be shared across a card row. */
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy{display:contents!important}
/* Lid: wider than the card by 16px (8px each side), plaid base ring, sits on the card top edge, overlaps the body so there is no gap and no seam. */
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-art{
  position:relative;z-index:2;box-sizing:border-box;display:grid;place-items:center;
  width:auto!important;height:var(--t34-lid-h)!important;min-height:0!important;aspect-ratio:auto!important;
  margin:-3px calc(-1 * (var(--t34-pad) + 11px)) -14px!important;padding:8px!important;
  border:3px solid #ef2435!important;border-radius:12px!important;overflow:hidden;
  background-color:#c4101f!important;background-repeat:no-repeat,no-repeat,repeat!important;
  background-image:linear-gradient(#0006,#000d),url('./tree-window-third-lit-20260923-600-launch.webp'),url('./journey-weave-tile.jpg')!important;
  background-size:auto,cover,94px 93px!important;background-position:0 0,center 28%,0 0!important;
  background-clip:content-box,content-box,padding-box!important;background-origin:content-box,content-box,padding-box!important;
  box-shadow:0 9px 14px -4px rgba(0,0,0,.65)!important}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers #ticket-og .ticket-choice-art{background-image:linear-gradient(#0009,#000d),url('./ticket-og-tree-wide-20260923-600-launch.webp'),url('./journey-weave-tile.jpg')!important;background-position:0 0,center,0 0!important}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers #ticket-early .ticket-choice-art{background-position:0 0,center 55%,0 0!important}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers #ticket-general .ticket-choice-art{background-position:0 0,center 85%,0 0!important}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-art{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-art img{width:100%!important;max-width:100%!important;height:100%!important;max-height:none!important;min-height:0;object-fit:contain}
/* Rows inside a card, in order: lid, date line, arrival kicker, name, price, bullets, button. */
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy>*{min-width:0}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy .ticket-date{margin:0 0 4px!important;padding-top:28px;align-self:end}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy .ticket-arrival{margin:0 0 14px!important;align-self:start}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy h3{margin:0 0 10px!important;align-self:start}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy .ticket-price{margin:0 0 12px!important;align-self:start}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy .ticket-perks{margin:0 0 20px!important;align-self:start}
body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-copy .ticket-action{align-self:end;justify-self:stretch;width:100%;margin:0!important}
/* Two columns from 900px. Cards of a row share one set of row tracks (subgrid), so date, kicker, name, price, bullets and the button line up across the row. */
@media(min-width:900px){
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers{grid-template-columns:repeat(2,minmax(0,1fr))!important;row-gap:0!important}
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer]{grid-row:span 7;grid-template-rows:subgrid;margin-bottom:40px}
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer]:nth-last-child(-n+2){margin-bottom:0}
  /* Stagger by position in the row, not in the grid, so the second row does not wait on the first. */
  .ticket-preview .ticket-offers[data-reveal-stagger]>.ticket-choice:nth-child(odd){--rv33-i:0}
  .ticket-preview .ticket-offers[data-reveal-stagger]>.ticket-choice:nth-child(even){--rv33-i:1}
}
@supports not (grid-template-rows:subgrid){
  @media(min-width:900px){
    body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer]{grid-row:auto;grid-template-rows:auto auto auto minmax(2.4em,auto) auto 1fr auto}
  }
}
/* One column under 900px: every card stands alone, stagger resets. */
@media(max-width:899px){
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer]{grid-row:auto;grid-template-rows:none}
  .ticket-preview .ticket-offers[data-reveal-stagger]>.ticket-choice{--rv33-i:0}
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers{--t34-pad:18px;--t34-lid-h:180px}
}
@media(max-width:760px){
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers{--t34-pad:16px;--t34-lid-h:170px}
  /* The lid is card width plus 16px on a phone (8px each side). */
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer] .ticket-choice-art{margin-inline:calc(-1 * (var(--t34-pad) + 11px))}
}
/* Hover: a 2px lift and the frame glow one step brighter, 180ms. Pointer devices only; none on touch. The reveal transition list keeps its 650ms opacity, translate and blur and takes the same 180ms for transform and shadow. */
html.rv33-js body.om-mvp .ticket-preview .ticket-offers .ticket-choice[data-reveal].is-in:not([data-reveal="group"]){
  transition:opacity 650ms var(--rv33-ease) var(--rv33-d,0ms),translate 650ms var(--rv33-ease) var(--rv33-d,0ms),filter 650ms var(--rv33-ease) var(--rv33-d,0ms),transform 180ms ease,box-shadow 180ms ease}
@media(hover:hover) and (pointer:fine){
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer]:hover{
    transform:translateY(-2px);
    box-shadow:0 0 0 1px rgba(255,64,80,.95),inset 0 1px 0 rgba(255,255,255,.14),0 0 28px rgba(239,36,53,.5)!important}
}
@media(prefers-reduced-motion:reduce){
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer]{transition:none!important}
  body.om-mvp .omhm26-root.omhm26-journey .ticket-preview .ticket-offers .ticket-choice[data-offer]:hover{transform:none}
}

/* ---------- C3. Know before you buy ---------- */
body.om-mvp .ticket-preview .ticket-notes.ticket-know{
  box-sizing:border-box;display:flex!important;flex-wrap:wrap;align-items:center;gap:14px 14px;justify-content:flex-start!important;
  margin:var(--om17-gap,80px) 0 0!important;padding:clamp(22px,3vw,36px)!important;text-align:left;
  background:rgba(10,10,10,.92)!important;border:3px solid #ef2435!important;border-radius:12px!important;box-shadow:var(--om17-well)!important;color:#fff}
body.om-mvp .ticket-preview .ticket-know .ticket-know-title{flex:1 1 100%;margin:0 0 6px!important;font-size:clamp(28px,3.4vw,44px)!important;line-height:1.05!important;text-align:left}
body.om-mvp .ticket-preview .ticket-know .ticket-know-list{flex:1 1 100%;margin:0 0 10px;padding:0;display:block}
body.om-mvp .ticket-preview .ticket-know .ticket-know-row{display:grid;grid-template-columns:minmax(0,1fr);gap:6px 28px;padding:16px 0;border-top:1px solid rgba(255,255,255,.2)}
body.om-mvp .ticket-preview .ticket-know .ticket-know-row:last-child{border-bottom:1px solid rgba(255,255,255,.2)}
body.om-mvp .ticket-preview .ticket-know dt{margin:0;font:700 12px/1.6 "OMHM Tomorrow",system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#68f8b3}
body.om-mvp .ticket-preview .ticket-know dd{margin:0;min-width:0}
body.om-mvp .ticket-preview .ticket-know dd p,body.om-mvp .ticket-preview .ticket-know .ticket-know-row .ticket-children{max-width:72ch!important;margin:0!important;padding:0!important;font-size:16px!important;line-height:1.6!important;text-align:left!important;color:#f2f2f2;background:none!important;border:0!important}
body.om-mvp .ticket-preview .ticket-know dd p strong{color:#fff}
body.om-mvp .ticket-preview .ticket-know dd a{color:#fff;text-decoration:underline;text-underline-offset:3px;display:inline}
@media(min-width:900px){
  body.om-mvp .ticket-preview .ticket-know .ticket-know-row{grid-template-columns:minmax(190px,24%) minmax(0,1fr);align-items:baseline}
}
/* Buttons: the two planning links are secondary buttons, the Eventbrite link (added by the checkout script, class-free) is styled as the primary button. */
body.om-mvp .ticket-preview .ticket-know .ticket-know-actions{display:contents}
body.om-mvp .ticket-preview .ticket-know .ticket-know-actions a{text-decoration:none}
body.om-mvp .ticket-preview .ticket-know .review-checkout-native{flex:0 0 auto;margin:0!important;padding:0!important;max-width:none!important;border:0!important;background:none!important;font-size:0!important;line-height:0!important;text-align:left!important}
body.om-mvp .ticket-preview .ticket-know .review-checkout-native a{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:14px 24px;border:3px solid #fff;border-radius:10px;
  background:var(--om17-red,#ef2435);color:#fff;font:700 18.72px/1.2 "OMHM Tomorrow",system-ui,sans-serif;letter-spacing:.03em;text-transform:uppercase;text-align:center!important;text-decoration:none!important;text-shadow:none;cursor:pointer;
  transition:transform 160ms ease,box-shadow 160ms ease}
body.om-mvp .ticket-preview .ticket-know .review-checkout-native a:hover{background:#c91a2a;transform:translateY(-1px);box-shadow:0 0 0 3px rgba(239,36,53,.28)}
body.om-mvp .ticket-preview .ticket-know .review-checkout-native a:active{transform:scale(.98)}
body.om-mvp .ticket-preview .ticket-know .review-checkout-native a:focus-visible{outline:3px solid #68f8b3;outline-offset:2px}
@media(prefers-reduced-motion:reduce){body.om-mvp .ticket-preview .ticket-know .review-checkout-native a{transition:none}}
@media(max-width:640px){
  body.om-mvp .ticket-preview .ticket-know .ticket-know-actions a{flex:1 1 100%;width:100%}
  body.om-mvp .ticket-preview .ticket-know .review-checkout-native{flex:1 1 100%}
  body.om-mvp .ticket-preview .ticket-know .review-checkout-native a{width:100%}
}

/* ---------- C4. Hero photo box: the standard 2px red frame (the mint outline is retired). Keyboard focus keeps the mint ring. ---------- */
/* Batch 59a: the 2 px red edge on the hero photo retires; the shared photo frame (assets/photo-frame-20261006.css) carries it. */
body.om-mvp .ticket-preview .ticket-intro .ticket-intro-photo{border:0!important}

/* Standard section gap between the well and the newsletter card: 80px on desktop (already), 56px on a phone. */
@media(max-width:767px){body.om-mvp main .ticket-preview{margin-bottom:56px}}
