/*
|--------------------------------------------------------------------------
| Dynaweb Framework — Events
|--------------------------------------------------------------------------
|
| Frontend presentation for the Events feature.
|
| Shared structure comes from core.css.
| Destination personality comes from the active theme.
|
*/

body.single-dw_event {
  overflow-x: clip;

  background: var(--dw-color-paper);

  color: var(--dw-color-text);
}

.dw-event {
  width: 100%;
}

.dw-event-hero {
  position: relative;

  min-height: min(68vh, 760px);

  display: flex;
  align-items: flex-end;

  overflow: hidden;

  background: var(--dw-color-ink);
}

.dw-event-hero__media {
  position: absolute;
  inset: 0;

  z-index: var(--dw-z-base);
}

.dw-event-hero__image {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
  object-position: center center;

  filter: var(--dw-theme-hero-image-filter);
}

.dw-event-hero__overlay {
  position: absolute;
  inset: 0;

  z-index: var(--dw-z-overlay);

  pointer-events: none;

  background:
    var(--dw-theme-hero-overlay-side), var(--dw-theme-hero-overlay-bottom);
}

.dw-event-hero__content {
  position: relative;

  z-index: calc(var(--dw-z-overlay) + 1);

  width: min(var(--dw-width-wide), calc(100% - (var(--dw-gutter) * 2)));

  margin-inline: auto;

  padding: clamp(6rem, 10vw, 9rem) var(--dw-space-md) 4.5rem;
}

.dw-event-hero__types {
  display: flex;

  margin-bottom: 1rem;

  color: var(--dw-theme-on-image-soft);

  font-family: var(--dw-font-ui);
  font-size: 0.76rem;
  font-weight: var(--dw-theme-eyebrow-weight);
  letter-spacing: var(--dw-theme-eyebrow-tracking);
  line-height: 1.2;
  text-transform: uppercase;
}

.dw-event-hero h1 {
  max-width: 980px;

  margin: 0;

  color: var(--dw-theme-on-image);

  font-family: var(--dw-font-display);
  font-size: clamp(3rem, 6vw, 5.6rem);
  font-weight: var(--dw-theme-heading-weight);
  line-height: 1;

  letter-spacing: var(--dw-theme-heading-tracking);

  text-wrap: balance;
}

.dw-event__inner {
  width: min(var(--dw-width-wide), calc(100% - (var(--dw-gutter) * 2)));

  margin-inline: auto;

  padding: var(--dw-space-lg) var(--dw-space-md) var(--dw-space-xl);
}

.dw-event-details {
  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));

  gap: 0;

  margin-bottom: var(--dw-space-xl);

  border-top: 1px solid var(--dw-color-border);

  border-bottom: 1px solid var(--dw-color-border);
}

.dw-event-details__item {
  padding: var(--dw-space-md) var(--dw-space-md) var(--dw-space-md) 0;

  font-family: var(--dw-font-ui);
}

.dw-event-details__label {
  display: block;

  margin-bottom: 0.5rem;

  color: var(--dw-color-muted);

  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.dw-event-details time,
.dw-event-details a,
.dw-event-details__item > span:not(.dw-event-details__label) {
  color: var(--dw-color-ink);

  font-size: 1rem;
  line-height: 1.5;
}

.dw-event-details time span {
  display: block;

  color: var(--dw-color-muted);
}

.dw-event-details a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.dw-event-details a:hover {
  color: var(--dw-theme-accent);
}

.dw-event-introduction {
  max-width: var(--dw-width-content);

  margin: 0 auto var(--dw-space-lg);

  color: var(--dw-color-text);

  font-family: var(--dw-font-body);

  font-size: clamp(1.2rem, 2vw, 1.45rem);

  line-height: 1.7;
}

.dw-event-introduction p {
  margin: 0;
}

.dw-event-content {
  max-width: var(--dw-width-content);

  margin-inline: auto;

  font-family: var(--dw-font-body);
  font-size: 1.08rem;
  line-height: 1.8;
}

.dw-event-content > :first-child {
  margin-top: 0;
}

.dw-event-content > :last-child {
  margin-bottom: 0;
}

.dw-event-ticket {
  max-width: var(--dw-width-content);

  margin: var(--dw-space-lg) auto 0;
}

.dw-event-ticket__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 48px;

  padding: 0.85rem 1.4rem;

  border: 1px solid var(--dw-theme-accent);

  background: var(--dw-theme-accent);

  color: var(--dw-color-surface);

  font-family: var(--dw-font-ui);

  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1;

  text-decoration: none;

  transition: opacity var(--dw-duration-fast) var(--dw-ease-standard);
}

.dw-event-ticket__button:hover {
  opacity: 0.86;
}

.dw-event-ticket__button:focus-visible {
  outline: 2px solid var(--dw-theme-accent);

  outline-offset: 4px;
}

@media (max-width: 700px) {
  .dw-event-hero {
    min-height: 62vh;
  }

  .dw-event-hero__content {
    padding: 6rem var(--dw-space-sm) 3rem;
  }

  .dw-event__inner {
    padding: var(--dw-space-md) var(--dw-space-sm) var(--dw-space-lg);
  }

  .dw-event-details {
    grid-template-columns: 1fr;
  }

  .dw-event-details__item {
    padding: var(--dw-space-sm) 0;

    border-bottom: 1px solid var(--dw-color-border);
  }

  .dw-event-details__item:last-child {
    border-bottom: 0;
  }
}
/*
 * --------------------------------------------------------------------------
 * Event Archive
 * --------------------------------------------------------------------------
 */

body.post-type-archive-dw_event,
body.tax-dw_event_type {
  overflow-x: clip;

  background: var(--dw-color-paper);

  color: var(--dw-color-text);
}

.dw-event-archive {
  padding: var(--dw-space-xl) 0 var(--dw-space-2xl);
}

.dw-event-archive__header {
  margin-bottom: var(--dw-space-xl);
}

.dw-event-archive__section {
  margin-top: var(--dw-space-xl);
}

.dw-event-archive__section:first-of-type {
  margin-top: 0;
}

.dw-event-archive__section-title {
  margin: 0 0 var(--dw-space-md);

  padding-bottom: var(--dw-space-sm);

  border-bottom: 1px solid var(--dw-color-border);

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: var(--dw-theme-heading-weight);
  line-height: 1.1;
  letter-spacing: var(--dw-theme-heading-tracking);
}

.dw-event-archive__grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));

  gap: var(--dw-space-lg) var(--dw-space-md);
}

.dw-event-archive__media {
  display: block;

  overflow: hidden;
}

.dw-event-archive__image {
  width: 100%;
  aspect-ratio: 4 / 3;

  display: block;

  object-fit: cover;

  filter: var(--dw-theme-card-image-filter);

  transform: scale(var(--dw-theme-card-image-scale));

  transition: transform var(--dw-duration-normal) var(--dw-ease-emphasized);
}

.dw-event-archive__item:hover .dw-event-archive__image {
  transform: scale(var(--dw-theme-card-image-scale-hover));
}

.dw-event-archive__content {
  padding-top: var(--dw-space-sm);
}

.dw-event-archive__type {
  display: inline-block;

  margin-bottom: 0.65rem;

  color: var(--dw-theme-accent);

  font-family: var(--dw-font-ui);
  font-size: 0.72rem;
  font-weight: var(--dw-theme-eyebrow-weight);
  letter-spacing: var(--dw-theme-eyebrow-tracking);
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}

.dw-event-archive__title {
  margin: 0 0 0.75rem;
}

.dw-event-archive__title a {
  color: var(--dw-color-ink);

  text-decoration: none;
}

.dw-event-archive__meta {
  display: flex;
  flex-wrap: wrap;

  gap: 0.35rem 0.8rem;

  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.88rem;
}

.dw-event-archive__venue {
  margin-top: 0.55rem;

  color: var(--dw-color-text);

  font-family: var(--dw-font-ui);
  font-size: 0.9rem;
}

.dw-event-archive__section--past {
  padding-top: var(--dw-space-md);
}

.dw-event-archive__section--past .dw-event-archive__item {
  opacity: 0.86;
}

.dw-event-archive__empty {
  padding: var(--dw-space-lg) 0;

  color: var(--dw-color-muted);
}

@media (max-width: 700px) {
  .dw-event-archive {
    padding: var(--dw-space-lg) 0 var(--dw-space-xl);
  }

  .dw-event-archive__grid {
    grid-template-columns: 1fr;
  }
}
/*
 * --------------------------------------------------------------------------
 * Events on Place pages
 * --------------------------------------------------------------------------
 */

.dw-place-events {
  margin-block: var(--dw-space-xl);
}

.dw-place-events__header {
  margin-bottom: var(--dw-space-lg);
}

.dw-place-events__items {
  --dw-grid-columns: 3;

  --dw-grid-gap: clamp(1.5rem, 3vw, 2.5rem);
}

.dw-place-events__link {
  display: block;

  color: inherit;

  text-decoration: none;
}

.dw-place-events__media {
  overflow: hidden;

  margin-bottom: var(--dw-space-sm);
}

.dw-place-events__image {
  width: 100%;

  aspect-ratio: 4 / 3;

  display: block;

  object-fit: cover;

  filter: var(--dw-theme-card-image-filter);

  transition: transform var(--dw-duration-normal) var(--dw-ease-emphasized);
}

.dw-place-events__link:hover .dw-place-events__image {
  transform: scale(var(--dw-theme-card-image-scale-hover));
}

.dw-place-events__type {
  display: inline-block;

  margin-bottom: 0.65rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);

  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.dw-place-events__name {
  margin: 0 0 0.7rem;

  color: var(--dw-color-ink);
}

.dw-place-events__meta {
  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);

  font-size: 0.82rem;
}

.dw-place-events__link:hover .dw-place-events__name {
  color: var(--dw-theme-accent);
}

.dw-place-events__link:focus-visible {
  outline: 2px solid var(--dw-theme-accent);

  outline-offset: 5px;
}

@media (max-width: 782px) {
  .dw-place-events__items {
    --dw-grid-columns: 1;

    --dw-grid-gap: 3rem;
  }
}
/*
 * --------------------------------------------------------------------------
 * Nearby Events
 * --------------------------------------------------------------------------
 */

.dw-nearby-events {
  margin-block: var(--dw-space-xl);
}

.dw-nearby-events__header {
  margin-bottom: var(--dw-space-lg);
}

.dw-nearby-events__items {
  --dw-grid-columns: 3;

  --dw-grid-gap: clamp(1.5rem, 3vw, 2.5rem);
}

.dw-nearby-events__link {
  display: block;

  color: inherit;

  text-decoration: none;
}

.dw-nearby-events__media {
  overflow: hidden;

  margin-bottom: var(--dw-space-sm);
}

.dw-nearby-events__image {
  width: 100%;

  aspect-ratio: 4 / 3;

  display: block;

  object-fit: cover;

  filter: var(--dw-theme-card-image-filter);

  transition: transform var(--dw-duration-normal) var(--dw-ease-emphasized);
}

.dw-nearby-events__link:hover .dw-nearby-events__image {
  transform: scale(var(--dw-theme-card-image-scale-hover));
}

.dw-nearby-events__type {
  display: inline-block;

  margin-bottom: 0.65rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);

  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.dw-nearby-events__name {
  margin: 0 0 0.7rem;

  color: var(--dw-color-ink);
}

.dw-nearby-events__meta {
  display: flex;
  flex-wrap: wrap;

  gap: 0.35rem 0.8rem;

  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);

  font-size: 0.82rem;
}

.dw-nearby-events__link:hover .dw-nearby-events__name {
  color: var(--dw-theme-accent);
}

.dw-nearby-events__link:focus-visible {
  outline: 2px solid var(--dw-theme-accent);

  outline-offset: 5px;
}

@media (max-width: 782px) {
  .dw-nearby-events__items {
    --dw-grid-columns: 1;

    --dw-grid-gap: 3rem;
  }
}
