.ray-event-shell,.ray-events-grid,.ray-events-intro{--ray-primary:var(--ara-blue,#173344);--ray-accent:var(--ara-orange,#c9a642);--ray-ink:var(--ara-ink,#263744);--ray-paper:#fff;--ray-soft:#f4f6f7;--ray-border:#dfe6e9;--ray-danger:#a62d32;--ray-success:#27734a;--ray-radius:var(--ara-box-radius,16px)}
.ray-events-intro{margin:12px 0 30px;padding:clamp(24px,4vw,44px);background:linear-gradient(135deg,#fff,var(--ray-soft));border:1px solid var(--ray-border);border-radius:var(--ray-radius);box-shadow:0 14px 36px rgba(19,48,66,.07)}
.ray-events-kicker,.ray-event-topline{font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:var(--ray-accent)}
.ray-events-intro h2{margin:8px 0 10px;color:var(--ray-primary);font-size:clamp(2.2rem,5vw,4.5rem);line-height:.98;letter-spacing:-.045em}.ray-events-intro p{margin:0;max-width:720px;color:#61717a;font-size:1.04rem}
.ray-events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:26px 0 38px}.ray-event-card{display:flex;flex-direction:column;background:#fff;color:var(--ray-ink);border:1px solid var(--ray-border);border-radius:var(--ray-radius);overflow:hidden;box-shadow:0 14px 36px rgba(19,48,66,.07);transition:transform .25s ease,box-shadow .25s ease}.ray-event-card:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(19,48,66,.12)}.ray-event-card-image{display:block;aspect-ratio:4/3;background:linear-gradient(135deg,var(--ray-primary),#31586e);overflow:hidden}.ray-event-card-image img{width:100%;height:100%;object-fit:cover}.ray-event-image-placeholder{height:100%;display:grid;place-items:center;color:#fff;text-transform:uppercase;letter-spacing:.18em;font-weight:900;padding:20px;text-align:center}.ray-event-card-body{display:flex;flex-direction:column;flex:1;padding:20px}.ray-event-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.ray-event-card-meta span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:var(--ray-accent)}.ray-event-card h3{margin:0 0 8px;font-size:1.25rem;line-height:1.15}.ray-event-card h3 a{color:var(--ray-primary);text-decoration:none}.ray-event-venue{margin:0 0 8px;font-weight:750}.ray-event-excerpt{margin:0 0 12px;color:#64747c;font-size:.94rem}.ray-event-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:auto 0 16px;padding-top:16px}.ray-event-card-bottom strong{color:var(--ray-primary);font-size:1.05rem}.ray-event-mini-status{font-size:.72rem;color:#6c7c84}.ray-event-mini-status.closed{color:var(--ray-danger)}
.ray-event-button,.ray-event-directions,.ray-event-calendar{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border:1px solid var(--ray-primary);border-radius:var(--ara-btn-radius,5px);background:var(--ray-primary);color:#fff!important;text-decoration:none!important;font-weight:850;cursor:pointer;transition:.2s ease}.ray-event-button:hover,.ray-event-directions:hover,.ray-event-calendar:hover{background:var(--ray-accent);border-color:var(--ray-accent);transform:translateY(-1px)}.ray-event-button[disabled]{opacity:.48;cursor:not-allowed;transform:none}
.ray-event-shell{margin:18px 0 28px;padding:18px;background:#fff;color:var(--ray-ink);border:1px solid var(--ray-border);border-radius:var(--ray-radius);box-shadow:0 14px 34px rgba(19,48,66,.08)}.ray-event-topline{margin-bottom:12px}.ray-event-hero{margin:0 0 16px;border-radius:calc(var(--ray-radius)*.7);overflow:hidden;background:var(--ray-soft)}.ray-event-hero img{display:block;width:100%;height:auto;max-height:720px;object-fit:contain;background:var(--ray-soft)}.ray-event-flyer-link{display:block}.ray-event-flyer-actions{display:flex;justify-content:flex-end;margin:-7px 0 10px}.ray-event-flyer-actions a{font-size:.76rem;font-weight:800;color:var(--ray-primary)!important;text-decoration:none;border:1px solid var(--ray-border);border-radius:999px;padding:5px 9px;background:#fff}.ray-event-flyer-actions a:hover{text-decoration:underline}.ray-event-compact{display:grid;grid-template-columns:1fr;gap:12px}.ray-event-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.ray-event-fact{padding:9px 0;border-bottom:1px solid var(--ray-border)}.ray-event-fact span{display:block;font-size:.63rem;text-transform:uppercase;letter-spacing:.12em;color:#7a8990;font-weight:800;margin-bottom:3px}.ray-event-fact strong{display:block;color:var(--ray-primary);font-size:.94rem;line-height:1.3}.ray-event-ticket-card{background:linear-gradient(145deg,var(--ray-primary),color-mix(in srgb,var(--ray-primary) 86%,#000));color:#fff;border-radius:calc(var(--ray-radius)*.75);padding:15px 16px;box-shadow:0 10px 24px rgba(7,63,96,.14)}.ray-event-ticket-row{display:flex;justify-content:space-between;gap:14px;align-items:end}.ray-event-status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;background:#e9f5ed;color:var(--ray-success);margin-bottom:8px}.ray-event-status.closed{background:#f7e9ea;color:var(--ray-danger)}.ray-event-status.soon{background:#fff3c8;color:#725d0e}.ray-event-price{font-size:1.55rem;font-weight:900;line-height:1.05}.ray-event-remaining{font-size:.82rem;color:rgba(255,255,255,.78);margin-top:3px}.ray-event-ticket-card .ray-event-button{background:var(--ray-accent);border-color:var(--ray-accent);color:#172f3e!important}.ray-event-buy{display:flex;gap:8px;align-items:end}.ray-event-buy label{font-size:.64rem;text-transform:uppercase;font-weight:850;letter-spacing:.06em}.ray-event-buy input{display:block;width:62px;min-height:40px;margin-top:4px;padding:6px;border-radius:var(--ara-input-radius,4px);border:1px solid rgba(255,255,255,.3)}.ray-event-actions{display:flex;justify-content:flex-end;margin-top:10px}.ray-event-calendar{background:#fff;color:var(--ray-primary)!important;min-height:36px;padding:7px 11px;font-size:.82rem}.ray-event-map-wrap{margin-top:20px}.ray-event-map-wrap h3{margin:0 0 6px;color:var(--ray-primary);font-size:1rem}.ray-event-map{height:260px;border-radius:calc(var(--ray-radius)*.7);overflow:hidden;margin:8px 0 10px;border:1px solid var(--ray-border)}.ray-event-directions{min-height:36px;padding:7px 12px;font-size:.82rem}.ray-event-entry-note{margin-top:16px;padding:14px 16px;background:var(--ray-soft);border-left:4px solid var(--ray-accent);border-radius:var(--ara-box-radius,8px)}.ray-event-entry-note strong{font-size:.88rem}.ray-event-entry-note p{margin:4px 0 0;font-size:.88rem}.ray-event-description{margin:0 0 28px}.ray-event-description>*:first-child{margin-top:0}.ray-event-warning{color:var(--ray-danger)}.ray-events-empty{grid-column:1/-1;padding:36px 28px;text-align:center;background:#fff;color:var(--ray-ink);border:1px solid var(--ray-border);border-radius:var(--ray-radius)}
@media(max-width:900px){.ray-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.ray-events-grid{grid-template-columns:1fr}.ray-event-facts{grid-template-columns:1fr}.ray-event-ticket-row{align-items:stretch;flex-direction:column}.ray-event-buy{align-items:stretch}.ray-event-buy input{width:64px}.ray-event-map{height:230px}.ray-event-shell{padding:14px}.ray-event-actions{justify-content:stretch}.ray-event-calendar{width:100%}}

/* Ticket-only checkout polish */
.woocommerce-checkout textarea#order_comments,.woocommerce-checkout .woocommerce-additional-fields textarea{box-sizing:border-box!important;padding:12px 14px!important;line-height:1.45!important;min-height:90px!important;resize:vertical!important}
.woocommerce-checkout input#billing_phone{padding-left:12px!important;padding-right:12px!important}


/* v0.3.8 Eventbrite-style registration before payment */
.ray-event-registration{display:block}.ray-event-reg-heading{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin:0 0 8px;color:#fff}.ray-event-reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.ray-event-reg-grid label{font-size:.62rem!important}.ray-event-reg-grid input{width:100%!important;box-sizing:border-box;min-height:38px!important;background:#fff;color:#172f3e}.ray-event-reg-wide{grid-column:1/-1}.ray-event-registration>.ray-event-button{width:100%;margin-top:2px}.ray-event-reg-note{display:block;margin-top:7px;color:rgba(255,255,255,.76);font-size:.68rem;line-height:1.35;text-transform:none;letter-spacing:0}
/* Event tickets collect attendee details before checkout, so do not offer wallet bypasses from the cart. */
body.woocommerce-cart #wc-stripe-express-checkout-element,body.woocommerce-cart #wc-stripe-express-checkout-button-separator,body.woocommerce-cart .wc-stripe-cart-checkout-container,body.woocommerce-cart .wc-stripe-cart-checkout-spacer,body.woocommerce-cart .wcpay-express-checkout-wrapper,body.woocommerce-cart .wc-block-components-express-payment,body.woocommerce-cart .ppc-button-wrapper{display:none!important}
@media(max-width:620px){.ray-event-reg-grid{grid-template-columns:1fr}.ray-event-reg-wide{grid-column:auto}}

/* v0.3.9 two-step ticket flow */
.ray-event-ticket-card{position:relative}
.ray-event-get-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:150px}
.ray-event-get-tickets{min-width:132px}
.ray-event-reg-note-compact{max-width:190px;text-align:right}
.ray-event-reg-headrow{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.ray-event-reg-subheading{font-size:.72rem;color:rgba(255,255,255,.76);line-height:1.35;margin-top:2px}
.ray-event-reg-back{font-size:.7rem;color:#fff!important;text-decoration:underline!important;white-space:nowrap}
.ray-event-registration{width:min(100%,430px)}
@media(max-width:620px){.ray-event-get-wrap{align-items:stretch;width:100%}.ray-event-get-tickets{width:100%}.ray-event-reg-note-compact{text-align:left;max-width:none}.ray-event-reg-headrow{align-items:flex-start}.ray-event-registration{width:100%}}

/* v0.4.3 checkout ticket quantity control */
.ray-checkout-ticket-qty{margin:0 0 20px;padding:16px;border:1px solid #dfe6e9;border-radius:12px;background:#fff;box-sizing:border-box}
.ray-checkout-ticket-qty h3{margin:0 0 4px;color:var(--ara-blue,#0b5d88)}
.ray-checkout-ticket-help{margin:0 0 12px;font-size:.88rem;color:#66757d}
.ray-checkout-ticket-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid #edf0f2}
.ray-checkout-ticket-name{min-width:0}.ray-checkout-ticket-name strong,.ray-checkout-ticket-name small{display:block}.ray-checkout-ticket-name small{margin-top:2px;color:#76858c;font-size:.78rem}
.ray-checkout-ticket-control{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ray-checkout-ticket-input{width:62px!important;min-height:40px!important;text-align:center!important;padding:5px!important;box-sizing:border-box!important}
.ray-ticket-qty-step{width:40px;height:40px;border:1px solid #ccd6da;background:#fff;border-radius:6px;font-size:1.25rem;line-height:1;cursor:pointer}
.ray-update-ticket-qty{display:inline-flex!important;visibility:visible!important;opacity:1!important;align-items:center!important;justify-content:center!important;min-height:40px!important;margin:8px 0 0!important;padding:9px 18px!important;border:1px solid var(--ara-blue,#0b5d88)!important;border-radius:6px!important;background:var(--ara-blue,#0b5d88)!important;color:#fff!important;font-weight:800!important;line-height:1.2!important;cursor:pointer!important;appearance:none!important;-webkit-appearance:none!important}.ray-update-ticket-qty:hover{filter:brightness(.92)}.ray-update-ticket-qty:disabled{opacity:.6!important;cursor:wait!important}
.ray-checkout-ticket-status{margin-top:8px;font-size:.84rem;font-weight:700;color:#27734a;min-height:1.2em}
.ray-checkout-ticket-status.is-error{color:#a62d32}
@media(max-width:620px){.ray-checkout-ticket-row{align-items:flex-start;flex-direction:column}.ray-checkout-ticket-control{justify-content:flex-start;width:100%}.ray-update-ticket-qty{width:100%!important}}


/* v0.4.4 events listing + closed-state polish */
.ray-events-filter{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.ray-events-filter-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 13px;border:1px solid var(--ray-border);border-radius:999px;background:#fff;color:var(--ray-primary)!important;text-decoration:none!important;font-size:.8rem;font-weight:850}.ray-events-filter-link:hover,.ray-events-filter-link.is-active{background:var(--ray-primary);border-color:var(--ray-primary);color:#fff!important}.ray-event-mini-status.open{color:var(--ray-success);font-weight:800}.ray-event-mini-status.soldout,.ray-event-mini-status.ended,.ray-event-mini-status.closed{color:var(--ray-danger);font-weight:800}.ray-event-mini-status.soon{color:#8a6f10;font-weight:800}.ray-event-card.is-ended .ray-event-card-image img{filter:saturate(.7);opacity:.9}.ray-event-card.is-ended .ray-event-button,.ray-event-card.is-closed .ray-event-button,.ray-event-card.is-soldout .ray-event-button{background:#fff;color:var(--ray-primary)!important}.ray-event-status.soldout,.ray-event-status.ended,.ray-event-status.closed{background:#fff0f0;color:#8b272b}.ray-events-empty{display:flex;flex-direction:column;gap:5px}.ray-events-empty span{color:#64747c;font-size:.9rem}@media(max-width:620px){.ray-events-filter-link{flex:1;min-width:84px}}

/* v0.5.1 — keep single event pages inside the Ray Creates Art site container */
.ray-event-single-page{
  width:min(var(--rca-page-width,980px),calc(100% - 44px));
  max-width:100%;
  margin:0 auto;
  box-sizing:border-box;
}
.ray-event-single-page .ray-event-shell{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
@media(max-width:620px){
  .ray-event-single-page{width:calc(100% - 20px)}
}


/* v0.5.9 — clean Events listing. Theme owns page width; plugin owns only event presentation. */
.ray-events-listing{
  width:100%;
  max-width:none;
}
.ray-events-listing .ray-events-intro{
  width:100%;
  margin:0 0 22px;
  box-sizing:border-box;
}
.ray-events-list{
  display:flex;
  flex-direction:column;
  gap:18px;
  width:100%;
}
.ray-event-row{
  display:grid;
  grid-template-columns:minmax(220px,32%) minmax(0,1fr);
  width:100%;
  min-width:0;
  background:#fff;
  border:1px solid var(--ray-border);
  border-radius:var(--ray-radius);
  overflow:hidden;
  box-shadow:0 12px 30px rgba(19,48,66,.07);
}
.ray-event-row-image{
  display:block;
  min-height:210px;
  background:linear-gradient(135deg,var(--ray-primary),#31586e);
  overflow:hidden;
}
.ray-event-row-image img{
  width:100%;
  height:100%;
  min-height:210px;
  object-fit:cover;
  object-position:center;
  display:block;
}
.ray-event-row-body{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:24px;
  box-sizing:border-box;
}
.ray-event-row-body h3{
  margin:0 0 8px;
  color:var(--ray-primary);
  font-size:clamp(1.5rem,2.4vw,2.35rem);
  line-height:1.05;
}
.ray-event-row-body h3 a{
  color:inherit;
  text-decoration:none;
}
.ray-event-row-bottom{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-top:auto;
  padding-top:18px;
}
.ray-event-row-price{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.ray-event-row-price strong{
  color:var(--ray-primary);
  font-size:1.1rem;
}
.ray-event-row .ray-event-button{
  flex:0 0 auto;
  margin:0;
}
@media(max-width:760px){
  .ray-event-row{
    grid-template-columns:1fr;
  }
  .ray-event-row-image,
  .ray-event-row-image img{
    min-height:190px;
    max-height:260px;
  }
}
@media(max-width:520px){
  .ray-event-row-body{
    padding:18px;
  }
  .ray-event-row-bottom{
    align-items:stretch;
    flex-direction:column;
  }
  .ray-event-row .ray-event-button{
    width:100%;
    text-align:center;
  }
}


/* v0.6.0 — polish only: preserve the working v0.5.9 Events structure. */
.ray-events-listing .ray-events-intro{
  margin-bottom:24px;
}
.ray-events-list{
  gap:22px;
}
.ray-event-row{
  grid-template-columns:minmax(210px,29%) minmax(0,1fr);
  min-height:250px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.ray-event-row:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(19,48,66,.11);
}
.ray-event-row-image{
  min-height:250px;
}
.ray-event-row-image img{
  min-height:250px;
  object-fit:cover;
  object-position:center;
}
.ray-event-row-body{
  justify-content:center;
  padding:28px 30px;
}
.ray-event-row-body .ray-event-card-meta{
  margin-bottom:11px;
}
.ray-event-row-body h3{
  margin-bottom:9px;
}
.ray-event-row-body .ray-event-venue{
  margin-bottom:10px;
}
.ray-event-row-body .ray-event-excerpt{
  max-width:720px;
  margin-bottom:0;
}
.ray-event-row-bottom{
  align-items:center;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--ray-border);
}
.ray-event-row .ray-event-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 18px;
  border-radius:7px;
  font-weight:900;
  letter-spacing:.02em;
}
.ray-event-row-price .ray-event-mini-status{
  margin-top:1px;
}
@media(max-width:760px){
  .ray-event-row{min-height:0}
  .ray-event-row-image,
  .ray-event-row-image img{min-height:210px;max-height:300px}
  .ray-event-row-body{padding:22px}
}


/* v0.6.1 — make the listing purchase action unmistakable and theme-proof. */
.ray-event-row-bottom .ray-event-list-ticket-button{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  align-items:center;
  justify-content:center;
  min-width:150px;
  min-height:44px;
  padding:10px 18px;
  margin:0;
  border:2px solid var(--ray-primary,#17384a) !important;
  border-radius:7px;
  background:var(--ray-primary,#17384a) !important;
  color:#fff !important;
  text-decoration:none !important;
  font-weight:900;
  line-height:1.15;
  text-align:center;
  box-sizing:border-box;
  position:relative !important;
  inset:auto !important;
  transform:none;
  z-index:2;
}
.ray-event-row-bottom .ray-event-list-ticket-button:hover{
  background:var(--ray-accent,#d8aa12) !important;
  border-color:var(--ray-accent,#d8aa12) !important;
  color:#172f3e !important;
}
@media(max-width:520px){
  .ray-event-row-bottom .ray-event-list-ticket-button{width:100%;}
}


/* v0.6.3 — ArtRayArt / RayCreatesArt shared listing compatibility.
   Keep the exact full-width horizontal event-row presentation used on RayCreatesArt,
   while inheriting either site's theme color variables. */
.ray-events-listing,
.ray-events-listing .ray-events-intro,
.ray-events-list,
.ray-event-row{
  --ray-primary:var(--ara-blue,var(--rca-blue,#0b5d88));
  --ray-accent:var(--ara-gold,var(--ara-orange,var(--rca-gold,#c9a642)));
  --ray-ink:var(--ara-ink,var(--rca-ink,#263744));
  --ray-border:var(--ara-border,var(--rca-border,#dfe6e9));
  --ray-radius:var(--ara-box-radius,var(--rca-box-radius,16px));
}
.ray-events-listing{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
.ray-events-listing .ray-events-intro{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.ray-events-list{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  max-width:none!important;
  gap:22px!important;
}
.ray-events-list > .ray-event-row{
  display:grid!important;
  grid-template-columns:minmax(210px,29%) minmax(0,1fr)!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  min-height:250px!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.ray-events-list > .ray-event-row .ray-event-row-image{
  width:100%!important;
  min-width:0!important;
  min-height:250px!important;
  max-height:none!important;
  overflow:hidden!important;
}
.ray-events-list > .ray-event-row .ray-event-row-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:250px!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
}
.ray-events-list > .ray-event-row .ray-event-row-body{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  padding:28px 30px!important;
  box-sizing:border-box!important;
}
.ray-events-list > .ray-event-row .ray-event-row-bottom{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  width:100%!important;
  margin-top:20px!important;
  padding-top:18px!important;
  border-top:1px solid var(--ray-border)!important;
}
.ray-events-list > .ray-event-row .ray-event-list-ticket-button{
  display:inline-flex!important;
  flex:0 0 auto!important;
  visibility:visible!important;
  opacity:1!important;
}
/* Single-event width: work cleanly on either custom theme. */
.ray-event-single-page{
  width:min(var(--ara-page-width,var(--rca-page-width,980px)),calc(100% - 44px));
}
@media(max-width:760px){
  .ray-events-list > .ray-event-row{
    grid-template-columns:1fr!important;
    min-height:0!important;
  }
  .ray-events-list > .ray-event-row .ray-event-row-image,
  .ray-events-list > .ray-event-row .ray-event-row-image img{
    min-height:210px!important;
    max-height:320px!important;
  }
  .ray-events-list > .ray-event-row .ray-event-row-body{
    padding:22px!important;
  }
}
@media(max-width:520px){
  .ray-events-list > .ray-event-row .ray-event-row-bottom{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  .ray-events-list > .ray-event-row .ray-event-list-ticket-button{
    width:100%!important;
  }
  .ray-event-single-page{width:calc(100% - 20px)}
}
