.ces-events{
  --ces-deep: #1b1b55;
  --ces-light-bg: #efefef;
  --ces-month-gap: 4px;
  background: var(--ces-wrapper-bg, var(--ces-light-bg));
  padding: 32px 18px 20px;
  font-family: inherit;
}

.ces-events__inner{
  max-width: 1120px;
  margin: 0 auto;
}

.ces-events__topbar{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  margin-bottom: 54px;
}

.ces-events__title{
  margin: 0;
  text-align: center;
  font-size: clamp(28px, 3vw, 36px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: var(--ces-deep);
  font-weight: 800;
}

.ces-events__nav{
  display: inline-flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  color: var(--ces-deep);
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 700;
}

.ces-events__nav--next{
  justify-self: end;
}

.ces-events__arrow{
  font-size: 1.55em;
  line-height: 1;
}

.ces-events__grid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px 4px;
}

.ces-month{
  position: relative;
  background: transparent;
}

.ces-month__header{
  min-height: 74px;
  padding: 16px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ces-month-header-bg, #f6f6f6);
  text-align: center;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: 500;
  color: var(--ces-deep);
}

.ces-month__body{
  position: relative;
  min-height: 190px;
  padding: 0;
  background: #ececec;
  overflow: hidden;
}

.ces-month__body--stacked{
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 2px;
}

.ces-month__empty{
  width: 100%;
  height: 100%;
}

.ces-event-tile{
  position: relative;
  display: flex;
  min-height: 190px;
  width: 100%;
  color: var(--ces-tile-text-color, #fff);
  text-decoration: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  z-index: 1;
}

.ces-event-tile:hover,
.ces-event-tile:focus,
.ces-event-tile:focus-visible{
  z-index: 3;
}

.ces-month__body--stacked .ces-event-tile{
  min-height: 94px;
}

.ces-event-tile__overlay,
.ces-event-tile__hover,
.ces-event-tile__multi-hint{
  position: absolute;
  inset: 0;
}

.ces-event-tile__overlay{
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.28)), var(--ces-accent, #8fb100);
  mix-blend-mode: multiply;
  opacity: 0.92;
}

.ces-event-tile__normal,
.ces-event-tile__hover{
  z-index: 1;
  display: flex;
  width: 100%;
}

.ces-event-tile__normal{
  position: relative;
}

.ces-event-tile__hover{
  position: absolute;
  inset: 0;
  color: #fff;
}

.ces-event-tile__hover,
.ces-event-tile__hover *{
  color: #fff;
}

.ces-event-tile__content{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  padding: 14px 10px 10px;
}

.ces-event-tile__day{
  display: block;
  font-size: 64px;
  line-height: 0.88;
  font-weight: 300;
  letter-spacing: -0.05em;
}

.ces-month__body--stacked .ces-event-tile__day{
  font-size: 44px;
}

.ces-event-tile__title{
  display: block;
  max-width: 92%;
  font-size: 17px;
  line-height: 1.05;
  font-weight: 500;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.18);
}

.ces-month__body--stacked .ces-event-tile__title{
  max-width: 88%;
  font-size: 13px;
}

.ces-event-tile__tag{
  display: block;
  font-size: 18px;
  line-height: 1.05;
  font-weight: 700;
  text-transform: uppercase;
}

.ces-month__body--stacked .ces-event-tile__tag{
  font-size: 13px;
}

.ces-event-tile__normal{
  transition: opacity 0.2s ease;
}

.ces-event-tile__hover{
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  background: #93126e;
  padding: 14px 12px;
  flex-direction: column;
  justify-content: space-between;
}

.ces-event-tile--has-hover:hover .ces-event-tile__hover,
.ces-event-tile--has-hover:focus .ces-event-tile__hover,
.ces-event-tile--has-hover:focus-visible .ces-event-tile__hover{
  opacity: 1;
}

.ces-event-tile--has-hover:hover .ces-event-tile__normal,
.ces-event-tile--has-hover:focus .ces-event-tile__normal,
.ces-event-tile--has-hover:focus-visible .ces-event-tile__normal{
  opacity: 0;
}

.ces-event-tile__hover-header{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.ces-event-tile__hover-branding{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.ces-event-tile__hover-badge-wrap{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  overflow: hidden;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  flex-shrink: 0;
}

.ces-event-tile__hover-badge{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  mix-blend-mode: normal !important;
  isolation: auto !important;
  filter: none !important;
  opacity: 1 !important;
}

.ces-event-tile__hover-titles{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.ces-event-tile__hover-title-line{
  display: block;
  line-height: 1;
}

.ces-event-tile__hover-title-line--primary{
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
}

.ces-event-tile__hover-title-line--secondary{
  font-size: 13px;
  opacity: 0.95;
  text-transform: uppercase;
}

.ces-event-tile__hover-year{
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  padding-top: 3px;
}


.ces-event-tile__hover-header,
.ces-event-tile__hover-branding,
.ces-event-tile__hover-titles,
.ces-event-tile__hover-metrics,
.ces-event-tile__metric{
  width: 100%;
}

.ces-event-tile__hover-header{
  align-items: flex-start;
}

.ces-event-tile__hover-year{
  text-align: right;
  flex: 0 0 auto;
}

.ces-event-tile__hover-metrics{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 10px 4px 4px;
}

.ces-event-tile__metric{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}

.ces-event-tile__metric-label{
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ces-event-tile__metric-value{
  font-size: 20px;
  font-weight: 700;
  line-height: 1.1;
}

.ces-event-tile__multi-hint{
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 15, 48, 0.68);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  text-align: center;
  padding: 10px;
}

.ces-event-tile--multi-month:hover .ces-event-tile__multi-hint,
.ces-event-tile--multi-month:focus .ces-event-tile__multi-hint,
.ces-event-tile--multi-month:focus-visible .ces-event-tile__multi-hint{
  opacity: 1;
}

.ces-events--loading{
  opacity: 0.6;
  pointer-events: none;
}

.ces-events__loading{
  text-align: center;
  padding: 30px 0;
  font-weight: 700;
}

@media (max-width: 1200px) {
  .ces-events__inner{
    max-width: 100%;
  }

  .ces-events__grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (max-width: 767px) {
  .ces-events{
    padding: 20px 12px;
  }

  .ces-events__topbar{
    grid-template-columns: 1fr;
    justify-items: center;
    margin-bottom: 24px;
  }

  .ces-events__nav,
  .ces-events__nav--next,
  .ces-events__nav--prev{
    justify-self: center;
  }

  .ces-events__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .ces-month__header{
    min-height: 60px;
    font-size: 18px;
  }

  .ces-month__body,
  .ces-event-tile{
    min-height: 170px;
  }

  .ces-month__body--stacked .ces-event-tile{
    min-height: 84px;
  }

  .ces-event-tile__day{
    font-size: 54px;
  }

  .ces-month__body--stacked .ces-event-tile__day{
    font-size: 36px;
  }

  .ces-event-tile__title{
    font-size: 15px;
  }

  .ces-event-tile__tag,
  .ces-month__body--stacked .ces-event-tile__tag{
    font-size: 12px;
  }
}

@media (max-width: 520px) {
  .ces-events__grid{
    grid-template-columns: 1fr;
  }
}

.ces-event-tile__hover-badge-wrap img,
.ces-event-tile__hover-badge-wrap picture,
.ces-event-tile__hover-badge-wrap source{
  background: transparent !important;
}


.ces-event-tile__hover-badge,
.ces-event-tile__hover-badge[src$=".png"],
.ces-event-tile__hover-badge[src*='.png?']{
  background-color: transparent !important;
  background-image: none !important;
}

/* Event category gallery cards */
.ces-category-gallery{
  --ces-category-deep: #0d0b42;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  font-family: inherit;
}

.ces-category-gallery__inner{
  max-width: none;
  width: 100%;
  margin: 0;
}

.ces-category-gallery__title{
  margin: 0 0 22px;
  text-align: center;
  color: var(--ces-category-deep);
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.ces-category-gallery__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.ces-category-gallery--cols-1 .ces-category-gallery__grid{ grid-template-columns: minmax(0, 1fr); }
.ces-category-gallery--cols-2 .ces-category-gallery__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ces-category-gallery--cols-4 .ces-category-gallery__grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ces-category-card{
  appearance: none;
  position: relative;
  border: 0;
  background: var(--ces-category-accent, #294894) !important;
  background-image: none;
  padding: 0 !important;
  min-height: 330px;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  overflow: hidden;
  text-align: center;
  color: #fff !important;
  cursor: pointer;
  box-shadow: none;
  border-radius: 0;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.ces-category-card:hover,
.ces-category-card:focus,
.ces-category-card:focus-visible,
.ces-category-card:active{
  transform: translateY(-3px) scale(1.006);
  box-shadow: 0 12px 26px rgba(13, 11, 66, 0.12);
  outline: none;
  background: var(--ces-category-accent, #294894) !important;
}

.ces-category-card::before,
.ces-category-card::after{
  display: none !important;
  content: none !important;
}

.ces-category-card--no-gallery{
  cursor: default;
}

.ces-category-card--no-gallery:hover,
.ces-category-card--no-gallery:focus-visible{
  transform: none;
  box-shadow: none;
}

/* Gallery cards intentionally do not render a cover image. The category
   accent/gradient fills the full card and the brand lockup stays centered. */
.ces-category-card__media{
  display: none !important;
}

.ces-category-card__brand{
  width: 100%;
  min-height: 330px;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 34px 30px;
  color: #fff;
  background: transparent !important;
}

.ces-category-card__see-more{
  flex: 0 0 auto;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 9px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92) !important;
  color: var(--ces-category-deep, #0d0b42) !important;
  font-size: 13px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.01em;
  white-space: nowrap;
  pointer-events: none;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.16);
  transition: transform 0.22s ease, background 0.22s ease;
}

.ces-category-card:hover .ces-category-card__see-more,
.ces-category-card:focus-visible .ces-category-card__see-more{
  transform: translateY(-2px);
  background: #ffffff !important;
}

.ces-category-card__mark{
  position: relative;
  width: 92px;
  height: 82px;
  flex: 0 0 auto;
  opacity: 0.98;
}

.ces-category-card__mark span{
  position: absolute;
  width: 49px;
  height: 49px;
  border: 4px solid currentColor;
  border-radius: 50%;
}

.ces-category-card__mark span:nth-child(1){ left: 0; top: 0; }
.ces-category-card__mark span:nth-child(2){ right: 0; top: 0; }
.ces-category-card__mark span:nth-child(3){ left: 0; bottom: 0; }
.ces-category-card__mark span:nth-child(4){ right: 0; bottom: 0; }

.ces-category-card__text{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.ces-category-card__line{
  display: block;
  color: #fff;
  line-height: 1.02;
  white-space: nowrap;
}

.ces-category-card__line--main{
  font-size: clamp(28px, 2.3vw, 40px);
  font-weight: 500;
}

.ces-category-card__line--sub{
  margin-top: 5px;
  font-size: clamp(21px, 1.75vw, 31px);
  font-weight: 300;
  opacity: 0.62;
}

.ces-category-lightbox[hidden]{
  display: none !important;
}

.ces-category-lightbox{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px 18px;
}

.ces-category-lightbox__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(6, 5, 34, 0.78);
}

.ces-category-lightbox__dialog{
  position: relative;
  z-index: 1;
  width: min(1040px, 100%);
  max-height: 92vh;
  overflow: auto;
  background: #fff;
  border-radius: 12px;
  padding: 22px;
  box-shadow: 0 24px 90px rgba(0,0,0,0.32);
}

.ces-category-lightbox__close{
  position: absolute;
  top: 12px;
  right: 14px;
  border: 0;
  background: transparent;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  color: var(--ces-category-deep, #0d0b42);
}

.ces-category-lightbox__title{
  margin: 0 42px 18px 0;
  color: var(--ces-category-deep, #0d0b42);
  font-size: clamp(24px, 2.5vw, 36px);
  line-height: 1.1;
  font-weight: 800;
}

.ces-category-lightbox__stage{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f2f2f2;
  min-height: 360px;
  overflow: hidden;
  border-radius: 8px;
}

.ces-category-lightbox__image{
  display: block;
  max-width: 100%;
  max-height: 68vh;
  width: auto;
  height: auto;
  object-fit: contain;
}

.ces-category-lightbox__nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 0;
  background: rgba(255,255,255,0.88);
  color: var(--ces-category-deep, #0d0b42);
  font-size: 38px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,0.18);
}

.ces-category-lightbox__nav--prev{ left: 16px; }
.ces-category-lightbox__nav--next{ right: 16px; }

.ces-category-lightbox__thumbs{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.ces-category-lightbox__thumb{
  width: 76px;
  height: 58px;
  border: 2px solid transparent;
  border-radius: 6px;
  overflow: hidden;
  padding: 0;
  background: #f2f2f2;
  cursor: pointer;
}

.ces-category-lightbox__thumb.is-active{
  border-color: var(--ces-category-deep, #0d0b42);
}

.ces-category-lightbox__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ces-category-lightbox-is-open{
  overflow: hidden;
}

@media (max-width: 1024px){
  .ces-category-gallery__grid,
  .ces-category-gallery--cols-4 .ces-category-gallery__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px){
  .ces-category-gallery{
    padding: 0 !important;
  }

  .ces-category-gallery__grid,
  .ces-category-gallery--cols-2 .ces-category-gallery__grid,
  .ces-category-gallery--cols-4 .ces-category-gallery__grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ces-category-card{
    min-height: 250px;
  }

  .ces-category-card__brand{
    min-height: 250px;
    padding: 26px 20px;
    gap: 16px;
  }

  .ces-category-card__see-more{
    min-height: 32px;
    padding: 8px 14px;
    font-size: 12px;
  }

  .ces-category-card__mark{
    width: 70px;
    height: 64px;
  }

  .ces-category-card__mark span{
    width: 38px;
    height: 38px;
    border-width: 3px;
  }

  .ces-category-lightbox__dialog{
    padding: 18px;
  }

  .ces-category-lightbox__stage{
    min-height: 260px;
  }

  .ces-category-lightbox__nav{
    width: 40px;
    height: 40px;
    font-size: 32px;
  }
}

/* Event category thumbnail shortcode */
.ces-category-thumbnails{
  --ces-category-deep: #0d0b42;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  font-family: inherit;
}

.ces-category-thumbnails__inner{
  max-width: none;
  width: 100%;
  margin: 0;
}

.ces-category-thumbnails__title{
  margin: 0 0 22px;
  text-align: center;
  color: var(--ces-category-deep, #0d0b42);
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.ces-category-thumbnails__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ces-category-thumbnail-gap, 14px);
}

.ces-category-thumbnails--cols-1 .ces-category-thumbnails__grid{ grid-template-columns: minmax(0, 1fr); }
.ces-category-thumbnails--cols-2 .ces-category-thumbnails__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ces-category-thumbnails--cols-4 .ces-category-thumbnails__grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ces-category-thumbnails--cols-5 .ces-category-thumbnails__grid{ grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ces-category-thumbnails--cols-6 .ces-category-thumbnails__grid{ grid-template-columns: repeat(6, minmax(0, 1fr)); }

.ces-category-thumbnail-card{
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  display: block;
  width: 100%;
  height: var(--ces-category-thumbnail-height, 260px);
  border: 0 !important;
  border-radius: var(--ces-category-thumbnail-radius, 0px);
  padding: 0 !important;
  overflow: hidden;
  background: #ffffff !important;
  background-image: none !important;
  color: inherit !important;
  cursor: pointer;
  box-shadow: none !important;
  transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
}

.ces-category-thumbnail-card:hover,
.ces-category-thumbnail-card:focus,
.ces-category-thumbnail-card:focus-visible,
.ces-category-thumbnail-card:active{
  transform: translateY(-3px) scale(1.008);
  box-shadow: 0 12px 28px rgba(13, 11, 66, 0.14) !important;
  outline: none;
  color: inherit !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
  border-color: transparent !important;
}

.ces-category-thumbnail-card::before,
.ces-category-thumbnail-card::after{
  display: none !important;
  content: none !important;
}

.ces-category-thumbnail-card--no-gallery{
  cursor: default;
}

.ces-category-thumbnail-card--no-gallery:hover,
.ces-category-thumbnail-card--no-gallery:focus-visible{
  transform: none;
  box-shadow: none !important;
}

.ces-category-thumbnail-card--no-gallery:hover .ces-category-thumbnail-card__image,
.ces-category-thumbnail-card--no-gallery:focus-visible .ces-category-thumbnail-card__image{
  transform: none;
}

.ces-category-thumbnail-card__image{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.28s ease;
}

.ces-category-thumbnail-card:hover .ces-category-thumbnail-card__image,
.ces-category-thumbnail-card:focus-visible .ces-category-thumbnail-card__image{
  transform: scale(1.025);
}

.ces-category-thumbnail-card__see-more{
  position: absolute;
  left: 50%;
  bottom: 16px;
  z-index: 2;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 22px;
  border-radius: 999px;
  background: rgba(13, 11, 66, 0.88) !important;
  color: #ffffff !important;
  font-size: 14px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
  pointer-events: none;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
  transition: transform 0.22s ease, background 0.22s ease;
}

.ces-category-thumbnail-card:hover .ces-category-thumbnail-card__see-more,
.ces-category-thumbnail-card:focus-visible .ces-category-thumbnail-card__see-more{
  transform: translateX(-50%) translateY(-2px);
  background: rgba(13, 11, 66, 0.95) !important;
}

.ces-category-thumbnail-card__placeholder{
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: var(--ces-category-deep, #0d0b42);
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  background: #ffffff;
}

.ces-category-thumbnails--with-names .ces-category-thumbnail-card__see-more{
  bottom: 58px;
}

.ces-category-thumbnail-card__name{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: block;
  padding: 14px 18px;
  color: #ffffff;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
  text-align: left;
  background: linear-gradient(180deg, rgba(6, 5, 34, 0) 0%, rgba(6, 5, 34, 0.74) 100%);
}

@media (max-width: 1024px){
  .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-4 .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-5 .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-6 .ces-category-thumbnails__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px){
  .ces-category-thumbnails{
    padding: 0 !important;
  }

  .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-2 .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-3 .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-4 .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-5 .ces-category-thumbnails__grid,
  .ces-category-thumbnails--cols-6 .ces-category-thumbnails__grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ces-category-thumbnail-card{
    height: min(var(--ces-category-thumbnail-height, 260px), 260px);
  }

  .ces-category-thumbnail-card__see-more{
    min-height: 34px;
    padding: 8px 18px;
    font-size: 13px;
  }
}

/* Category gallery popup CTA update */
.ces-category-card__see-more,
.ces-category-thumbnail-card__see-more{
  display: none !important;
}

.ces-category-lightbox__dialog{
  font-family: inherit;
  color: var(--ces-category-deep, #14103a);
}

.ces-category-lightbox__title{
  color: var(--ces-category-deep, #14103a) !important;
  font-family: inherit;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.ces-category-lightbox__footer{
  display: flex;
  justify-content: center;
  margin-top: 18px;
}

.ces-category-lightbox__see-more,
.ces-category-lightbox__see-more:visited{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 13px 28px;
  border: 0 !important;
  border-radius: 999px;
  background: #14103a !important;
  color: #ffffff !important;
  font-family: inherit;
  font-size: 15px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(20, 16, 58, 0.22);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.ces-category-lightbox__see-more:hover,
.ces-category-lightbox__see-more:focus,
.ces-category-lightbox__see-more:focus-visible{
  transform: translateY(-2px);
  background: #14103a !important;
  color: #ffffff !important;
  outline: none;
  box-shadow: 0 14px 30px rgba(20, 16, 58, 0.28);
}

.ces-category-lightbox__see-more[hidden]{
  display: none !important;
}

/* Category popup grid update: show 4 images first, then reveal all on See More */
.ces-category-lightbox__dialog{
  width: min(1120px, 100%);
}

.ces-category-lightbox__stage{
  display: block !important;
  min-height: 0 !important;
  background: transparent !important;
  overflow: visible !important;
  border-radius: 0 !important;
}

.ces-category-lightbox__image,
.ces-category-lightbox__nav,
.ces-category-lightbox__thumbs{
  display: none !important;
}

.ces-category-lightbox__grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  width: 100%;
}

.ces-category-lightbox__grid-item{
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  background: #f2f2f2;
}

.ces-category-lightbox__grid-item img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ces-category-lightbox__see-more{
  cursor: pointer;
}

@media (max-width: 1024px){
  .ces-category-lightbox__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px){
  .ces-category-lightbox__grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .ces-category-lightbox__grid-item{
    aspect-ratio: 16 / 10;
  }
}


/* Category popup aesthetic polish - u47 */
.ces-category-lightbox{
  padding: clamp(16px, 3vw, 42px) !important;
}

.ces-category-lightbox__backdrop{
  background: rgba(13, 11, 66, 0.68) !important;
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}

.ces-category-lightbox__dialog{
  width: min(1080px, calc(100vw - 34px)) !important;
  max-height: min(88vh, 760px) !important;
  padding: clamp(22px, 2.5vw, 34px) !important;
  border-radius: 24px !important;
  background: linear-gradient(180deg, #ffffff 0%, #fbfbff 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.72) !important;
  box-shadow: 0 26px 80px rgba(5, 4, 28, 0.32), 0 8px 24px rgba(20, 16, 58, 0.12) !important;
  overflow: auto !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(20, 16, 58, 0.28) transparent;
}

.ces-category-lightbox__dialog::-webkit-scrollbar{
  width: 8px;
}

.ces-category-lightbox__dialog::-webkit-scrollbar-track{
  background: transparent;
}

.ces-category-lightbox__dialog::-webkit-scrollbar-thumb{
  background: rgba(20, 16, 58, 0.22);
  border-radius: 999px;
}

.ces-category-lightbox:not([hidden]) .ces-category-lightbox__dialog{
  animation: cesCategoryPopupIn 0.26s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.ces-category-lightbox__title{
  margin: 0 58px 22px 0 !important;
  color: #14103a !important;
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.02 !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
}

.ces-category-lightbox__close{
  top: clamp(16px, 2vw, 24px) !important;
  right: clamp(16px, 2vw, 24px) !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(20, 16, 58, 0.08) !important;
  background: rgba(20, 16, 58, 0.055) !important;
  color: #14103a !important;
  font-size: 30px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease !important;
}

.ces-category-lightbox__close:hover,
.ces-category-lightbox__close:focus,
.ces-category-lightbox__close:focus-visible{
  background: #14103a !important;
  color: #ffffff !important;
  outline: none !important;
  transform: rotate(90deg) scale(1.02);
  box-shadow: 0 12px 28px rgba(20, 16, 58, 0.22) !important;
}

.ces-category-lightbox__stage{
  padding: 0 !important;
}

.ces-category-lightbox__grid{
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(12px, 1.45vw, 18px) !important;
}

.ces-category-lightbox__grid-item{
  aspect-ratio: 4 / 3 !important;
  border-radius: 14px !important;
  background: #f6f5fb !important;
  box-shadow: inset 0 0 0 1px rgba(20, 16, 58, 0.07), 0 8px 24px rgba(20, 16, 58, 0.06) !important;
  transition: transform 0.24s ease, box-shadow 0.24s ease !important;
}

.ces-category-lightbox__grid-item:hover{
  transform: translateY(-2px);
  box-shadow: inset 0 0 0 1px rgba(20, 16, 58, 0.08), 0 14px 32px rgba(20, 16, 58, 0.12) !important;
}

.ces-category-lightbox__grid-item img{
  transition: transform 0.38s ease, filter 0.38s ease !important;
}

.ces-category-lightbox__grid-item:hover img{
  transform: scale(1.045);
  filter: saturate(1.04) contrast(1.03);
}

.ces-category-lightbox__footer{
  margin-top: clamp(18px, 2.2vw, 26px) !important;
}

.ces-category-lightbox__see-more,
.ces-category-lightbox__see-more:visited{
  min-height: 48px !important;
  padding: 14px 34px !important;
  border-radius: 999px !important;
  background: #14103a !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  box-shadow: 0 14px 34px rgba(20, 16, 58, 0.22) !important;
}

.ces-category-lightbox__see-more:hover,
.ces-category-lightbox__see-more:focus,
.ces-category-lightbox__see-more:focus-visible{
  transform: translateY(-2px) !important;
  background: #14103a !important;
  color: #ffffff !important;
  box-shadow: 0 18px 42px rgba(20, 16, 58, 0.3) !important;
}

@keyframes cesCategoryPopupIn{
  from{
    opacity: 0;
    transform: translateY(12px) scale(0.985);
  }
  to{
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 1024px){
  .ces-category-lightbox__dialog{
    width: min(860px, calc(100vw - 28px)) !important;
    border-radius: 20px !important;
  }

  .ces-category-lightbox__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px){
  .ces-category-lightbox{
    align-items: flex-start !important;
    padding: 14px !important;
  }

  .ces-category-lightbox__dialog{
    width: 100% !important;
    max-height: calc(100vh - 28px) !important;
    padding: 18px !important;
    border-radius: 18px !important;
  }

  .ces-category-lightbox__title{
    margin: 2px 50px 16px 0 !important;
    font-size: clamp(25px, 8vw, 34px) !important;
  }

  .ces-category-lightbox__close{
    top: 14px !important;
    right: 14px !important;
    width: 40px !important;
    height: 40px !important;
    font-size: 28px !important;
  }

  .ces-category-lightbox__grid{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .ces-category-lightbox__grid-item{
    aspect-ratio: 16 / 10 !important;
    border-radius: 12px !important;
  }

  .ces-category-lightbox__see-more{
    width: 100%;
    max-width: 260px;
  }
}

@media (prefers-reduced-motion: reduce){
  .ces-category-lightbox:not([hidden]) .ces-category-lightbox__dialog,
  .ces-category-lightbox__close,
  .ces-category-lightbox__grid-item,
  .ces-category-lightbox__grid-item img,
  .ces-category-lightbox__see-more{
    animation: none !important;
    transition: none !important;
  }
}

/* Event Category single gallery page */
.ces-category-single{
  background:#f7f7fb;
  padding:clamp(54px,7vw,96px) 18px;
  color:#11103b;
  font-family:Inter, Arial, sans-serif;
}
.ces-category-single__inner{
  width:min(1180px,100%);
  margin:0 auto;
}
.ces-category-single__header{
  text-align:center;
  margin:0 auto clamp(26px,4vw,44px);
  max-width:820px;
}
.ces-category-single__back,
.ces-category-single__back:visited{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 18px;
  margin-bottom:18px;
  border-radius:999px;
  background:#14103a;
  color:#fff !important;
  text-decoration:none !important;
  font-size:14px;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:0 14px 30px rgba(20,16,58,.16);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.ces-category-single__back:hover,
.ces-category-single__back:focus,
.ces-category-single__back:focus-visible{
  color:#fff !important;
  background:#1c174d;
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(20,16,58,.22);
  outline:none;
}
.ces-category-single__title{
  margin:0;
  color:#11103b;
  font-family:Inter, Arial, sans-serif;
  font-size:clamp(38px,5.2vw,72px);
  line-height:.98;
  font-weight:900;
  letter-spacing:-.045em;
}
.ces-category-single__description{
  margin:18px auto 0;
  color:rgba(17,16,59,.72);
  font-size:17px;
  line-height:1.7;
  max-width:720px;
}
.ces-category-single__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.ces-category-single__item{
  display:block;
  position:relative;
  overflow:hidden;
  min-height:230px;
  aspect-ratio:1.28 / 1;
  border-radius:18px;
  background:#ececf4;
  box-shadow:0 16px 36px rgba(20,16,58,.1);
  text-decoration:none !important;
  transition:transform .2s ease, box-shadow .2s ease;
}
.ces-category-single__item:hover,
.ces-category-single__item:focus,
.ces-category-single__item:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(20,16,58,.16);
  outline:none;
}
.ces-category-single__item img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .28s ease, filter .28s ease;
}
.ces-category-single__item:hover img,
.ces-category-single__item:focus img,
.ces-category-single__item:focus-visible img{
  transform:scale(1.04);
  filter:saturate(1.04) contrast(1.02);
}
.ces-category-single__empty{
  width:min(760px,100%);
  margin:0 auto;
  padding:34px 24px;
  border-radius:20px;
  background:#fff;
  color:#11103b;
  text-align:center;
  font-weight:700;
  box-shadow:0 20px 50px rgba(20,16,58,.1);
}
@media (max-width:1024px){
  .ces-category-single__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:767px){
  .ces-category-single{ padding:42px 14px; }
  .ces-category-single__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .ces-category-single__item{ min-height:160px; border-radius:14px; }
}
@media (max-width:480px){
  .ces-category-single__grid{ grid-template-columns:1fr; }
  .ces-category-single__item{ min-height:220px; }
}

/* Category single page desktop alignment - u52 */
@media (min-width:1025px){
  main.ces-category-single{
    margin-top:-52px;
  }
}

/* Category popup visual refinement - u49 */
.ces-category-lightbox__dialog{
  border-radius: 14px !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.16) 0, rgba(255, 255, 255, 0) 34%),
    linear-gradient(135deg, #17124a 0%, #0f0b37 52%, #15104a 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  box-shadow: 0 30px 85px rgba(5, 4, 28, 0.45), 0 10px 28px rgba(10, 8, 45, 0.24) !important;
}

.ces-category-lightbox__title{
  color: #ffffff !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.16);
}

.ces-category-lightbox__close{
  border-color: rgba(255, 255, 255, 0.18) !important;
  background: rgba(255, 255, 255, 0.10) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.ces-category-lightbox__close:hover,
.ces-category-lightbox__close:focus,
.ces-category-lightbox__close:focus-visible{
  background: #e9792c !important;
  color: #ffffff !important;
  box-shadow: 0 12px 28px rgba(233, 121, 44, 0.28) !important;
}

.ces-category-lightbox__grid-item{
  border-radius: 10px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12), 0 12px 30px rgba(0, 0, 0, 0.16) !important;
}

.ces-category-lightbox__grid-item:hover{
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18), 0 18px 38px rgba(0, 0, 0, 0.24) !important;
}

.ces-category-lightbox__see-more,
.ces-category-lightbox__see-more:visited{
  background: #e9792c !important;
  color: #ffffff !important;
  box-shadow: 0 16px 34px rgba(233, 121, 44, 0.28) !important;
}

.ces-category-lightbox__see-more:hover,
.ces-category-lightbox__see-more:focus,
.ces-category-lightbox__see-more:focus-visible{
  background: #d9671f !important;
  color: #ffffff !important;
  box-shadow: 0 20px 44px rgba(233, 121, 44, 0.38) !important;
}

@media (max-width: 1024px){
  .ces-category-lightbox__dialog{
    border-radius: 12px !important;
  }
}

@media (max-width: 767px){
  .ces-category-lightbox__dialog{
    border-radius: 10px !important;
  }
}

/* Category popup sizing and alignment refinement - u50 */
.ces-category-lightbox__dialog{
  width: min(1280px, calc(100vw - 28px)) !important;
  min-height: min(74vh, 680px) !important;
  max-height: min(92vh, 820px) !important;
  padding: clamp(32px, 3vw, 48px) !important;
  border-radius: 10px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.ces-category-lightbox__title{
  width: 100% !important;
  margin: 0 0 clamp(24px, 3vw, 36px) 0 !important;
  padding: 0 clamp(56px, 5vw, 76px) !important;
  text-align: center !important;
  font-size: clamp(38px, 4vw, 58px) !important;
  line-height: 1.05 !important;
}

.ces-category-lightbox__grid{
  gap: clamp(16px, 1.7vw, 24px) !important;
}

.ces-category-lightbox__grid-item{
  border-radius: 8px !important;
}

.ces-category-lightbox__footer{
  margin-top: clamp(24px, 3vw, 38px) !important;
}

.ces-category-lightbox__see-more,
.ces-category-lightbox__see-more:visited{
  border-radius: 0 !important;
  min-height: 52px !important;
  min-width: 170px !important;
  padding: 15px 38px !important;
}

@media (max-width: 1024px){
  .ces-category-lightbox__dialog{
    width: min(940px, calc(100vw - 24px)) !important;
    min-height: auto !important;
    padding: 28px !important;
    border-radius: 9px !important;
    justify-content: flex-start !important;
  }

  .ces-category-lightbox__title{
    padding: 0 54px !important;
    margin-bottom: 22px !important;
    font-size: clamp(32px, 5vw, 46px) !important;
  }
}

@media (max-width: 767px){
  .ces-category-lightbox__dialog{
    width: 100% !important;
    padding: 22px 16px !important;
    border-radius: 8px !important;
  }

  .ces-category-lightbox__title{
    padding: 0 46px 0 0 !important;
    text-align: left !important;
    font-size: clamp(28px, 8vw, 38px) !important;
  }

  .ces-category-lightbox__see-more{
    border-radius: 0 !important;
  }
}


/* Category popup typography refinement - u51 */
.ces-category-lightbox__dialog{
  font-family: "Open Sans", Arial, sans-serif !important;
}

.ces-category-lightbox__title{
  font-family: "Open Sans", Arial, sans-serif !important;
  font-size: 32px !important;
  line-height: 1.18 !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
}

.ces-category-lightbox__see-more,
.ces-category-lightbox__see-more:visited{
  font-family: "Open Sans", Arial, sans-serif !important;
  font-weight: 600 !important;
}

@media (max-width: 767px){
  .ces-category-lightbox__title{
    padding: 0 46px !important;
    text-align: center !important;
    font-size: 32px !important;
  }
}

/* Category intermediate flow pages - u53 */
.ces-category-single__eyebrow{
  margin:0 0 10px;
  color:#e9792c;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.ces-category-single__intermediate-intro{
  width:min(760px,100%);
  margin:0 auto clamp(24px,4vw,42px);
  text-align:center;
}

.ces-category-single__intermediate-intro h2{
  margin:0 0 8px;
  color:#11103b;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:clamp(26px,3vw,38px);
  line-height:1.12;
  font-weight:600;
}

.ces-category-single__intermediate-intro p{
  margin:0;
  color:rgba(17,16,59,.68);
  font-size:16px;
  line-height:1.65;
}

.ces-category-single__groups{
  display:grid;
  gap:clamp(28px,4vw,54px);
}

.ces-category-single__group{
  padding:clamp(22px,3vw,32px);
  border-radius:12px;
  background:#ffffff;
  box-shadow:0 18px 46px rgba(20,16,58,.08);
}

.ces-category-single__group-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding-bottom:18px;
  margin-bottom:20px;
  border-bottom:1px solid rgba(17,16,59,.1);
}

.ces-category-single__group-head h2{
  margin:0;
  color:#11103b;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:clamp(24px,2.7vw,34px);
  line-height:1.15;
  font-weight:600;
}

.ces-category-single__group-head span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 12px;
  background:#f3f1ff;
  color:#14103a;
  font-size:12px;
  font-weight:800;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ces-category-single__edition-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.ces-category-single__edition-grid--plain{
  width:min(1180px,100%);
  margin:0 auto;
}

.ces-category-single__edition-card,
.ces-category-single__edition-card:visited{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  min-height:100%;
  border-radius:10px;
  background:#14103a;
  color:#ffffff !important;
  text-decoration:none !important;
  box-shadow:0 16px 36px rgba(20,16,58,.13);
  transition:transform .22s ease, box-shadow .22s ease;
}

.ces-category-single__edition-card:hover,
.ces-category-single__edition-card:focus,
.ces-category-single__edition-card:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 26px 56px rgba(20,16,58,.2);
  outline:none;
}

.ces-category-single__edition-media{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:16 / 10;
  background:linear-gradient(135deg,#211a63 0%,#0f0b37 100%);
}

.ces-category-single__edition-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .32s ease, filter .32s ease;
}

.ces-category-single__edition-card:hover .ces-category-single__edition-media img,
.ces-category-single__edition-card:focus .ces-category-single__edition-media img,
.ces-category-single__edition-card:focus-visible .ces-category-single__edition-media img{
  transform:scale(1.045);
  filter:saturate(1.04) contrast(1.03);
}

.ces-category-single__edition-placeholder{
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  padding:24px;
  color:#ffffff;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:22px;
  font-weight:600;
  text-align:center;
}

.ces-category-single__edition-content{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:18px 18px 20px;
}

.ces-category-single__edition-label{
  color:#e9792c;
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ces-category-single__edition-title{
  color:#ffffff;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:22px;
  line-height:1.18;
  font-weight:600;
}

.ces-category-single__edition-meta{
  color:rgba(255,255,255,.72);
  font-size:14px;
  line-height:1.35;
  font-weight:600;
}

@media (max-width:1024px){
  .ces-category-single__edition-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:767px){
  .ces-category-single__group{
    padding:18px;
    border-radius:10px;
  }

  .ces-category-single__group-head{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }

  .ces-category-single__edition-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .ces-category-single__edition-title{
    font-size:20px;
  }
}

/* Completed events list level - u54 */
.ces-category-single__completed-intro{
  width:min(760px,100%);
  margin:0 auto clamp(24px,4vw,42px);
  text-align:center;
}

.ces-category-single__completed-intro h2{
  margin:0 0 8px;
  color:#11103b;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:clamp(26px,3vw,38px);
  line-height:1.12;
  font-weight:600;
}

.ces-category-single__completed-intro p{
  margin:0;
  color:rgba(17,16,59,.68);
  font-size:16px;
  line-height:1.65;
}

.ces-category-single__events-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}

.ces-category-single__event-card,
.ces-category-single__event-card:visited{
  display:flex;
  flex-direction:column;
  min-height:100%;
  overflow:hidden;
  border-radius:10px;
  background:#ffffff;
  color:#11103b !important;
  text-decoration:none !important;
  box-shadow:0 18px 46px rgba(20,16,58,.09);
  transition:transform .22s ease, box-shadow .22s ease;
}

.ces-category-single__event-card:hover,
.ces-category-single__event-card:focus,
.ces-category-single__event-card:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 28px 62px rgba(20,16,58,.16);
  outline:none;
}

.ces-category-single__event-media{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:16 / 10;
  background:linear-gradient(135deg,#211a63 0%,#0f0b37 100%);
}

.ces-category-single__event-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .32s ease, filter .32s ease;
}

.ces-category-single__event-card:hover .ces-category-single__event-media img,
.ces-category-single__event-card:focus .ces-category-single__event-media img,
.ces-category-single__event-card:focus-visible .ces-category-single__event-media img{
  transform:scale(1.045);
  filter:saturate(1.04) contrast(1.03);
}

.ces-category-single__event-placeholder{
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  padding:24px;
  color:#ffffff;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:22px;
  font-weight:600;
  text-align:center;
}

.ces-category-single__event-content{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:20px 20px 22px;
}

.ces-category-single__event-status{
  color:#e9792c;
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ces-category-single__event-title{
  color:#11103b;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:22px;
  line-height:1.18;
  font-weight:600;
}

.ces-category-single__event-meta{
  color:rgba(17,16,59,.68);
  font-size:14px;
  line-height:1.45;
  font-weight:600;
}

.ces-category-single__event-link{
  display:inline-flex;
  align-self:flex-start;
  margin-top:8px;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:11px 20px;
  background:#e9792c;
  color:#ffffff;
  font-family:"Open Sans", Arial, sans-serif;
  font-size:14px;
  line-height:1;
  font-weight:700;
  text-decoration:none;
}

.ces-category-single__event-card:hover .ces-category-single__event-link,
.ces-category-single__event-card:focus .ces-category-single__event-link,
.ces-category-single__event-card:focus-visible .ces-category-single__event-link{
  background:#d9671f;
}

@media (max-width:1024px){
  .ces-category-single__events-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:767px){
  .ces-category-single__events-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .ces-category-single__event-title{
    font-size:20px;
  }
}

/* ==============================================================
   v2.4.8 - Event Category client layout
   No cover image. The existing lower brand colour/gradient fills
   the whole card, with the logo lockup centered in the card.
   ============================================================== */
.ces-category-gallery .ces-category-card{
  position: relative !important;
  min-height: 330px !important;
  border: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  color: #fff !important;
}
.ces-category-gallery .ces-category-card__media,
.ces-category-gallery .ces-category-card__media img{
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
}
.ces-category-gallery .ces-category-card__brand{
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 22px !important;
  padding: 34px 30px !important;
  margin: 0 !important;
  background: var(--ces-category-accent, #294894) !important;
  color: #fff !important;
}
.ces-category-thumbnails .ces-category-thumbnail-card{
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  color: #fff !important;
  background: var(--ces-category-accent, #294894) !important;
}
.ces-category-thumbnails .ces-category-thumbnail-card__image,
.ces-category-thumbnails .ces-category-thumbnail-card__placeholder,
.ces-category-thumbnails .ces-category-thumbnail-card__name{
  display: none !important;
}
.ces-category-thumbnails .ces-category-thumbnail-card .ces-category-card__brand{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 22px !important;
  box-sizing: border-box !important;
  padding: 30px !important;
  background: var(--ces-category-accent, #294894) !important;
  color: #fff !important;
}
@media (max-width: 767px){
  .ces-category-gallery .ces-category-card{ min-height: 250px !important; }
}


/* v2.4.8 - Use the supplied Cycling / Pop Up logo artwork in the centered cards. */
.ces-category-gallery .ces-category-card__brand-logo,
.ces-category-thumbnails .ces-category-card__brand-logo{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:min(72%, 330px) !important;
  max-height:132px !important;
  object-fit:contain !important;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
@media (max-width:767px){
  .ces-category-gallery .ces-category-card__brand-logo,
  .ces-category-thumbnails .ces-category-card__brand-logo{
    max-width:82% !important;
    max-height:108px !important;
  }
}


/* ==============================================================
   v2.4.9 - Shared supplied icon + editable category text
   The icon is artwork only. Category wording stays dynamic from WP.
   ============================================================== */
.ces-category-gallery .ces-category-card__brand,
.ces-category-thumbnails .ces-category-thumbnail-card .ces-category-card__brand{
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:20px !important;
  text-align:left !important;
}
.ces-category-gallery .ces-category-card__brand-logo,
.ces-category-thumbnails .ces-category-card__brand-logo{
  display:block !important;
  flex:0 0 auto !important;
  width:88px !important;
  height:88px !important;
  max-width:88px !important;
  max-height:88px !important;
  object-fit:contain !important;
  margin:0 !important;
}
.ces-category-gallery .ces-category-card__text,
.ces-category-thumbnails .ces-category-card__text{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  min-width:0 !important;
  text-align:left !important;
  text-transform:uppercase !important;
}
.ces-category-gallery .ces-category-card__line--main,
.ces-category-thumbnails .ces-category-card__line--main{
  font-size:clamp(28px, 2.2vw, 40px) !important;
  font-weight:500 !important;
  line-height:1.02 !important;
}
.ces-category-gallery .ces-category-card__line--sub,
.ces-category-thumbnails .ces-category-card__line--sub{
  margin-top:5px !important;
  font-size:clamp(20px, 1.65vw, 30px) !important;
  font-weight:300 !important;
  line-height:1.04 !important;
  opacity:.62 !important;
}
@media (max-width:767px){
  .ces-category-gallery .ces-category-card__brand,
  .ces-category-thumbnails .ces-category-thumbnail-card .ces-category-card__brand{
    gap:14px !important;
  }
  .ces-category-gallery .ces-category-card__brand-logo,
  .ces-category-thumbnails .ces-category-card__brand-logo{
    width:68px !important;
    height:68px !important;
    max-width:68px !important;
    max-height:68px !important;
  }
  .ces-category-gallery .ces-category-card__line--main,
  .ces-category-thumbnails .ces-category-card__line--main{
    font-size:clamp(22px, 7vw, 31px) !important;
  }
  .ces-category-gallery .ces-category-card__line--sub,
  .ces-category-thumbnails .ces-category-card__line--sub{
    font-size:clamp(17px, 5.5vw, 24px) !important;
  }
}


/* ==============================================================
   v2.4.13 - Keep calendar event text readable on hover/focus
   Some themes apply a dark link-hover colour to event-card text.
   Preserve the tile text colour and keep the custom hover panel white.
   ============================================================== */
.ces-events .ces-event-tile:hover,
.ces-events .ces-event-tile:focus,
.ces-events .ces-event-tile:focus-visible,
.ces-events a.ces-event-tile:hover,
.ces-events a.ces-event-tile:focus,
.ces-events a.ces-event-tile:focus-visible{
  color:var(--ces-tile-text-color, #fff) !important;
}

.ces-events .ces-event-tile:hover .ces-event-tile__normal,
.ces-events .ces-event-tile:hover .ces-event-tile__normal *,
.ces-events .ces-event-tile:focus .ces-event-tile__normal,
.ces-events .ces-event-tile:focus .ces-event-tile__normal *,
.ces-events .ces-event-tile:focus-visible .ces-event-tile__normal,
.ces-events .ces-event-tile:focus-visible .ces-event-tile__normal *{
  color:var(--ces-tile-text-color, #fff) !important;
  -webkit-text-fill-color:var(--ces-tile-text-color, #fff) !important;
}

.ces-events .ces-event-tile--has-hover:hover .ces-event-tile__hover,
.ces-events .ces-event-tile--has-hover:hover .ces-event-tile__hover *,
.ces-events .ces-event-tile--has-hover:focus .ces-event-tile__hover,
.ces-events .ces-event-tile--has-hover:focus .ces-event-tile__hover *,
.ces-events .ces-event-tile--has-hover:focus-visible .ces-event-tile__hover,
.ces-events .ces-event-tile--has-hover:focus-visible .ces-event-tile__hover *{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

/* ==============================================================
   v2.4.14 / u75 - Gentle calendar-card hover feedback
   Keep the interaction noticeable without making the cards jump.
   ============================================================== */
.ces-events .ces-event-tile::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  opacity:0;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.34), inset 0 0 26px rgba(255,255,255,.06);
  transition:opacity .22s ease;
}

.ces-events .ces-event-tile,
.ces-events .ces-event-tile__overlay,
.ces-events .ces-event-tile__content{
  transition-duration:.22s;
  transition-timing-function:ease;
}

.ces-events .ces-event-tile{
  transition-property:filter;
}

.ces-events .ces-event-tile__overlay{
  transition-property:opacity;
}

.ces-events .ces-event-tile__content{
  transition-property:transform;
}

.ces-events .ces-event-tile:hover::after,
.ces-events .ces-event-tile:focus::after,
.ces-events .ces-event-tile:focus-visible::after{
  opacity:1;
}

.ces-events .ces-event-tile:hover,
.ces-events .ces-event-tile:focus,
.ces-events .ces-event-tile:focus-visible{
  filter:brightness(1.035) saturate(1.035);
}

.ces-events .ces-event-tile:hover .ces-event-tile__overlay,
.ces-events .ces-event-tile:focus .ces-event-tile__overlay,
.ces-events .ces-event-tile:focus-visible .ces-event-tile__overlay{
  opacity:.84;
}

.ces-events .ces-event-tile:not(.ces-event-tile--has-hover):hover .ces-event-tile__content,
.ces-events .ces-event-tile:not(.ces-event-tile--has-hover):focus .ces-event-tile__content,
.ces-events .ces-event-tile:not(.ces-event-tile--has-hover):focus-visible .ces-event-tile__content{
  transform:translateY(-2px);
}

@media (prefers-reduced-motion: reduce){
  .ces-events .ces-event-tile::after,
  .ces-events .ces-event-tile,
  .ces-events .ces-event-tile__overlay,
  .ces-events .ces-event-tile__content{
    transition:none !important;
  }
}

