/**
 * Event registration fields on an event product page (event-registration.php).
 * Sits inside the add-to-cart form above "Register & continue"; reuses the theme
 * tokens (tokens.css loads on Woo pages) with hard fallbacks.
 */
.uforea-event-reg { max-width: 460px; margin: 0 0 18px; }
.uforea-event-when {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  margin: 0 0 16px; padding: 10px 14px; border-radius: 12px;
  background: var(--yellow-soft, #FFF1C7); color: var(--ink-strong, #4A4542);
}
.uforea-event-when span { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--mute, #6E6560); }
.uforea-event-when strong { font-size: 17px; }
.uforea-event-kid {
  position: relative; margin: 0 0 14px; padding: 12px 14px 2px;
  border: 1px solid var(--yellow-soft, #FFF1C7); border-radius: 12px; background: var(--cream, #FFFBF3);
}
.uforea-event-kid legend { padding: 0 6px; margin-left: -6px; font-weight: 700; font-size: 14px; color: var(--ink-strong, #4A4542); }
.uforea-event-reg:not(.has-many) .uforea-event-kid { padding: 0; border: 0; background: none; }
.uforea-event-reg:not(.has-many) .uforea-event-kid legend { display: none; }
.uforea-event-kid-remove {
  position: absolute; top: 6px; right: 10px; padding: 4px 8px; border: 0; background: none;
  font-size: 13px; text-decoration: underline; color: var(--passion-text, #B82530); cursor: pointer;
}
.uforea-event-add {
  display: block; width: 100%; margin: 0 0 16px; padding: 10px 14px; border-radius: 12px; cursor: pointer;
  border: 1.5px dashed var(--uforea-yellow, #FFBA01); background: #fff; font-weight: 600; font-size: 15px;
  color: var(--ink-strong, #4A4542);
}
.uforea-event-add[hidden], .uforea-event-kid-remove[hidden] { display: none; }
.uforea-event-consent em { font-style: normal; font-size: 13px; color: var(--mute, #6E6560); }
/* Ordinary entry vs prepaid VIP member: two tappable option cards. */
.uforea-event-entry { margin: 0 0 16px; padding: 0; border: 0; }
.uforea-event-entry legend { padding: 0; margin: 0 0 8px; font-size: inherit; font-weight: 600; color: var(--ink-strong, #4A4542); } /* undo Blocksy's legend padding/-15px offset */
.uforea-event-entry-opt {
  display: flex; gap: 10px; align-items: flex-start; margin: 0 0 8px; padding: 10px 14px; cursor: pointer;
  border: 1px solid #cfcfcf; border-radius: 12px; background: #fff; font-size: 15px; line-height: 1.45;
}
.uforea-event-entry-opt:has(input:checked) { border-color: var(--uforea-yellow, #FFBA01); background: var(--cream, #FFFBF3); }
.uforea-event-entry-opt input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; }
.uforea-event-entry-opt small { display: block; font-size: 13px; color: var(--mute, #6E6560); }
.uforea-event-vip { margin: 14px 0 0; }
.uforea-event-hint { display: block; margin-top: 6px; font-size: 13px; line-height: 1.5; color: var(--mute, #6E6560); }
.uforea-event-reg.has-entry-js:not(.is-vip) .uforea-event-vip,
.uforea-event-reg.is-vip .uforea-event-note-std { display: none; }
.uforea-event-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.uforea-event-row { margin: 0 0 14px; }
.uforea-event-row label { display: block; font-weight: 600; margin-bottom: 6px; }
.uforea-event-reg .required { color: var(--passion-text, #B82530); text-decoration: none; border: 0; }
.uforea-event-row input[type="text"],
.uforea-event-row input[type="tel"],
.uforea-event-row input[type="email"],
.uforea-event-row select {
  width: 100%; padding: 10px 12px; font-size: 16px; /* 16px stops iOS zooming on focus */
  border: 1px solid #cfcfcf; border-radius: 10px; background: #fff;
}
.uforea-event-consent { margin: 4px 0 14px; font-size: 14.5px; line-height: 1.55; }
.uforea-event-consent label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.uforea-event-consent input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 3px; }
.uforea-event-note { margin: 0; }
.uforea-event-free { font-weight: 600; }
/* Event posters carry text edge to edge (title, date, "register at…"): on
   phones show the whole poster rather than woo.css's centre-crop of photos. */
@media (max-width: 720px) {
  body.uforea-event-product div.product .woocommerce-product-gallery__image img,
  body.uforea-event-product div.product .ct-media-container img { object-fit: contain; max-height: 60vh; }
}
/* Sold individually: WC prints a hidden qty input — keep the button full-width
   under the fields instead of beside an empty gap. */
.single-product div.product form.cart:has(.uforea-event-reg) { display: block; }
.single-product div.product form.cart:has(.uforea-event-reg) .single_add_to_cart_button { width: 100%; max-width: 460px; }

/* Day-pass page while the cart holds contest registrations: the date is the
   event day, so the calendar gives way to a fixed-date card. */
.uforea-date-locked > label,
.uforea-date-locked .uforea-cal,
.uforea-date-locked #uforea_visit_help { display: none !important; }
.uforea-date-locked > input[type="date"] {
  position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; margin: -1px;
}
.uforea-date-fixed {
  padding: 18px 20px; border-radius: 14px;
  border: 1px solid var(--uforea-yellow, #FFBA01); background: var(--yellow-soft, #FFF1C7);
  color: var(--ink-strong, #4A4542);
}
.uforea-date-fixed span { display: block; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--mute, #6E6560); }
.uforea-date-fixed strong { display: block; margin: 2px 0 8px; font-size: 24px; }
.uforea-date-fixed p { margin: 0; font-size: 14px; line-height: 1.55; }
.uforea-date-fixed a { text-decoration: underline; font-weight: 600; }
