/* =========================================================================
   Outsell Enhancer — events theme (v3.0.0)

   Scoped to body.osb-events (the /events/ list/month/day "Views v2"
   templates The Events Calendar ships by default) and body.osb-event-single
   (the single event page — a custom Elementor template built from TEC's
   own Elementor widgets: back-link, title, datetime, cost, add-to-calendar,
   prev/next nav). Same design tokens as blog.css so /events and /event/:slug
   read as part of the same site as /blog, not stock plugin output.

   Class names throughout are The Events Calendar / Event Tickets' own
   (tribe-events-*, tec-events-elementor-event-widget__*,
   tribe-block__rsvp__*) — verified against the live site and the
   event-tickets plugin source, not guessed.
   ========================================================================= */

body.osb-events,
body.osb-event-single {
  --osb-ink: #12263a;
  --osb-body: #3c4d5e;
  --osb-muted: #7c8a99;
  --osb-line: #e4e9ef;
  --osb-line-2: #d4dde6;
  --osb-bg: #ffffff;
  --osb-surface: #f1f5f9;
  --osb-accent: #0a6ba8;
  --osb-accent-2: #08557f;
  --osb-accent-w: rgba(10, 107, 168, 0.12);

  --osb-sans: Arial, 'Helvetica Neue', Helvetica, sans-serif;

  --osb-radius: 14px;
  --osb-radius-s: 10px;
  --osb-ctrl-h: 46px;
  --osb-shadow:
    0 1px 2px rgba(18, 38, 58, 0.06), 0 1px 1px rgba(18, 38, 58, 0.04);
  --osb-shadow-md: 0 10px 24px -14px rgba(18, 38, 58, 0.22);
  --osb-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ------------------------------------------------------------------ */
/* /events/ — header: title, search, view selector, top bar            */
/* ------------------------------------------------------------------ */
body.osb-events .tribe-events-header,
body.osb-events .tribe-events-c-top-bar,
body.osb-events .tribe-events-calendar-list,
body.osb-events .tribe-events-calendar-list-nav {
  font-family: var(--osb-sans) !important;
}
body.osb-events .tribe-events-header {
  border-color: var(--osb-line) !important;
}

body.osb-events .tribe-events-c-search__input-control {
  height: var(--osb-ctrl-h);
  background: var(--osb-bg) !important;
  border: 1px solid var(--osb-line) !important;
  border-radius: 999px !important;
  box-shadow: var(--osb-shadow);
  transition:
    border-color 0.2s var(--osb-ease),
    box-shadow 0.2s var(--osb-ease);
}
body.osb-events .tribe-events-c-search__input-control:focus-within {
  border-color: var(--osb-accent) !important;
  box-shadow: 0 0 0 4px var(--osb-accent-w);
}
body.osb-events .tribe-events-c-search__input {
  font-family: var(--osb-sans) !important;
  color: var(--osb-ink) !important;
  font-size: 1rem;
}
body.osb-events .tribe-events-c-search__input-control-icon-svg {
  fill: var(--osb-muted) !important;
}
body.osb-events .tribe-events-c-search__button {
  font-family: var(--osb-sans) !important;
  font-weight: 600 !important;
  background: var(--osb-accent) !important;
  border-color: var(--osb-accent) !important;
  border-radius: 999px !important;
  color: #fff !important;
  transition: background 0.18s var(--osb-ease);
}
body.osb-events .tribe-events-c-search__button:hover {
  background: var(--osb-accent-2) !important;
}

body.osb-events .tribe-events-c-view-selector__button {
  font-family: var(--osb-sans) !important;
  color: var(--osb-ink) !important;
  border: 1px solid var(--osb-line) !important;
  border-radius: 999px !important;
  background: var(--osb-bg) !important;
}
body.osb-events .tribe-events-c-view-selector__content {
  border: 1px solid var(--osb-line) !important;
  border-radius: var(--osb-radius-s) !important;
  box-shadow: var(--osb-shadow-md) !important;
}
body.osb-events .tribe-events-c-view-selector__list-item-link {
  font-family: var(--osb-sans) !important;
  color: var(--osb-ink) !important;
}
body.osb-events
  .tribe-events-c-view-selector__list-item--active
  .tribe-events-c-view-selector__list-item-link,
body.osb-events .tribe-events-c-view-selector__list-item-link:hover {
  color: var(--osb-accent) !important;
}

body.osb-events .tribe-events-c-top-bar__datepicker-button,
body.osb-events .tribe-events-c-top-bar__today-button {
  font-family: var(--osb-sans) !important;
  color: var(--osb-ink) !important;
  border-color: var(--osb-line) !important;
  border-radius: 999px !important;
}
body.osb-events .tribe-events-c-top-bar__nav-link {
  border: 1px solid var(--osb-line) !important;
  border-radius: 999px !important;
  color: var(--osb-body) !important;
}
body.osb-events .tribe-events-c-top-bar__nav-link:hover {
  border-color: var(--osb-accent) !important;
  color: var(--osb-accent) !important;
}

/* ------------------------------------------------------------------ */
/* /events/ — list rows, same card rhythm as the blog grid             */
/* ------------------------------------------------------------------ */
body.osb-events .tribe-events-calendar-list__month-separator-text {
  color: var(--osb-accent) !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
body.osb-events .tribe-events-calendar-list__event-row {
  background: var(--osb-bg) !important;
  border: 1px solid var(--osb-line) !important;
  border-radius: var(--osb-radius) !important;
  box-shadow: var(--osb-shadow);
  padding: 18px 20px !important;
  margin-bottom: 16px !important;
  transition:
    transform 0.3s var(--osb-ease),
    box-shadow 0.3s var(--osb-ease),
    border-color 0.3s var(--osb-ease);
}
body.osb-events .tribe-events-calendar-list__event-row:hover {
  transform: translateY(-3px);
  box-shadow: var(--osb-shadow-md);
  border-color: var(--osb-line-2) !important;
}
body.osb-events .tribe-events-calendar-list__event-date-tag-weekday {
  color: var(--osb-muted) !important;
  text-transform: uppercase;
  font-size: 0.72rem;
}
body.osb-events .tribe-events-calendar-list__event-date-tag-daynum {
  color: var(--osb-ink) !important;
  font-weight: 700 !important;
}
body.osb-events .tribe-events-calendar-list__event-title-link {
  font-weight: 500 !important;
  color: var(--osb-ink) !important;
  text-decoration: none !important;
  letter-spacing: -0.01em;
  transition: color 0.2s var(--osb-ease);
}
body.osb-events .tribe-events-calendar-list__event-title-link:hover {
  color: var(--osb-accent) !important;
}
body.osb-events .tribe-events-calendar-list__event-datetime-wrapper {
  color: var(--osb-body) !important;
  font-size: 0.86rem;
}
body.osb-events .tribe-events-c-small-cta__price {
  font-weight: 700 !important;
  color: var(--osb-accent) !important;
  background: var(--osb-accent-w) !important;
  border-radius: 999px !important;
  padding: 4px 12px !important;
  display: inline-block;
}

body.osb-events .tribe-events-c-nav__prev,
body.osb-events .tribe-events-c-nav__next {
  color: var(--osb-body) !important;
}
body.osb-events .tribe-events-c-nav__prev:hover,
body.osb-events .tribe-events-c-nav__next:hover {
  color: var(--osb-accent) !important;
}

/* ------------------------------------------------------------------ */
/* /event/:slug — Elementor "Single Event" widgets                     */
/* ------------------------------------------------------------------ */
body.osb-event-single,
body.osb-event-single * {
  font-family: var(--osb-sans) !important;
}
body.osb-event-single .tec-events-back a {
  color: var(--osb-muted) !important;
  text-decoration: none !important;
  font-size: 0.86rem;
}
body.osb-event-single .tec-events-back a:hover {
  color: var(--osb-accent) !important;
}
body.osb-event-single .tec-events-elementor-event-widget__title {
  color: var(--osb-ink) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
}
body.osb-event-single .tec-events-elementor-event-widget__datetime,
body.osb-event-single .tec-events-elementor-event-widget__datetime-date,
body.osb-event-single .tec-events-elementor-event-widget__datetime-time {
  color: var(--osb-body) !important;
}
body.osb-event-single .tec-events-elementor-event-widget__cost {
  display: inline-block;
  color: var(--osb-accent) !important;
  font-weight: 700 !important;
  background: var(--osb-accent-w) !important;
  border-radius: 999px !important;
  padding: 4px 14px !important;
}
body.osb-event-single .tec-events-elementor-event-widget__export-dropdown-button {
  border: 1px solid var(--osb-line) !important;
  border-radius: 999px !important;
  color: var(--osb-ink) !important;
}
body.osb-event-single .tec-events-elementor-event-widget__export-dropdown-button:hover {
  border-color: var(--osb-accent) !important;
  color: var(--osb-accent) !important;
}
body.osb-event-single .tec-events-elementor-event-widget__export-dropdown-content {
  border: 1px solid var(--osb-line) !important;
  border-radius: var(--osb-radius-s) !important;
  box-shadow: var(--osb-shadow-md) !important;
}
body.osb-event-single .tec-events-elementor-event-widget__export-dropdown-link:hover {
  color: var(--osb-accent) !important;
}
body.osb-event-single .tec-events-elementor-event-widget__navigation a {
  color: var(--osb-body) !important;
  text-decoration: none !important;
}
body.osb-event-single .tec-events-elementor-event-widget__navigation a:hover {
  color: var(--osb-accent) !important;
}

/* ------------------------------------------------------------------ */
/* RSVP block — injected by osb_inject_rsvp_form (PHP) + events.js,     */
/* since the Elementor template has no widget slot of its own for it.  */
/* Class names below are Event Tickets' own BEM markup                 */
/* (tribe-block__rsvp__*), read from the plugin's own template source. */
/* ------------------------------------------------------------------ */
body.osb-event-single .osb-rsvp {
  margin: 24px 0;
  padding: 22px 24px;
  background: var(--osb-surface);
  border: 1px solid var(--osb-line);
  border-radius: var(--osb-radius);
}
body.osb-event-single .tribe-block__rsvp__title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--osb-ink);
  margin: 0 0 6px;
}
body.osb-event-single .tribe-block__rsvp__description {
  color: var(--osb-body);
  font-size: 0.92rem;
  margin: 0 0 10px;
}
body.osb-event-single .tribe-block__rsvp__availability {
  font-size: 0.82rem;
  color: var(--osb-muted);
  margin-bottom: 14px;
}
body.osb-event-single .tribe-block__rsvp__details__status {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
body.osb-event-single .tribe-block__rsvp__status {
  display: flex;
  gap: 10px;
}
body.osb-event-single .tribe-block__rsvp__status-button {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--osb-ink);
  background: var(--osb-bg);
  border: 1px solid var(--osb-line);
  border-radius: 999px;
  padding: 10px 18px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition:
    border-color 0.18s var(--osb-ease),
    color 0.18s var(--osb-ease),
    background 0.18s var(--osb-ease);
}
body.osb-event-single .tribe-block__rsvp__status-button:hover {
  border-color: var(--osb-accent);
  color: var(--osb-accent);
}
body.osb-event-single .tribe-block__rsvp__status-button--going.tribe-active {
  background: var(--osb-accent);
  border-color: var(--osb-accent);
  color: #fff;
}
body.osb-event-single .tribe-block__rsvp__status-button--not-going.tribe-active {
  background: var(--osb-ink);
  border-color: var(--osb-ink);
  color: #fff;
}
body.osb-event-single .tribe-block__rsvp__status-button[disabled] {
  cursor: default;
}

body.osb-event-single .tribe-block__rsvp__form {
  margin-top: 16px;
}
body.osb-event-single .tribe-block__rsvp__form form {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}
body.osb-event-single .tribe-block__rsvp__form .tribe-left,
body.osb-event-single .tribe-block__rsvp__form .tribe-right {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body.osb-event-single .tribe-block__rsvp__form .tribe-right {
  flex: 1 1 260px;
}
body.osb-event-single .tribe-block__rsvp__number-input-inner {
  display: flex;
  align-items: center;
  gap: 8px;
}
body.osb-event-single .tribe-block__rsvp__number-input-inner input,
body.osb-event-single .tribe-block__rsvp__number-input-inner button {
  height: 38px;
  min-width: 38px;
  border: 1px solid var(--osb-line);
  border-radius: 8px;
  background: var(--osb-bg);
  color: var(--osb-ink);
  text-align: center;
}
body.osb-event-single .tribe-block__rsvp__number-input-label {
  font-size: 0.78rem;
  color: var(--osb-muted);
}
body.osb-event-single .tribe-tickets-full-name,
body.osb-event-single .tribe-tickets-email {
  height: var(--osb-ctrl-h);
  padding: 0 16px;
  border: 1px solid var(--osb-line);
  border-radius: 10px;
  background: var(--osb-bg);
  color: var(--osb-ink);
  font-size: 0.94rem;
}
body.osb-event-single .tribe-tickets-full-name:focus,
body.osb-event-single .tribe-tickets-email:focus {
  outline: none;
  border-color: var(--osb-accent);
  box-shadow: 0 0 0 4px var(--osb-accent-w);
}
body.osb-event-single .tribe-tickets-attendees-list-optout--wrapper {
  font-size: 0.82rem;
  color: var(--osb-muted);
}
body.osb-event-single .tribe-block__rsvp__submit-button {
  font-weight: 600;
  color: #fff;
  background: var(--osb-accent);
  border: 0;
  border-radius: 999px;
  padding: 12px 26px;
  cursor: pointer;
  align-self: flex-start;
  transition: background 0.18s var(--osb-ease);
}
body.osb-event-single .tribe-block__rsvp__submit-button:hover {
  background: var(--osb-accent-2);
}
body.osb-event-single .tribe-block__rsvp__content--inactive {
  color: var(--osb-muted);
  font-size: 0.92rem;
}

@media (max-width: 640px) {
  body.osb-event-single .tribe-block__rsvp__details__status {
    flex-direction: column;
  }
  body.osb-event-single .tribe-block__rsvp__form form {
    flex-direction: column;
  }
}
