.wpes-ec{ --wpes-ec-gap:10px; font-family: inherit; }
.wpes-ec-toolbar{ display:flex; justify-content:flex-start; margin:20px 0 0 0; }
.wpes-ec-viewselect{color: #000 !important; padding:10px 20px !important; border:1px solid rgba(0,0,0,.15); border-radius:10px; background:#fff;}

.wpes-ec-month{ border:1px solid rgba(0,0,0,.10); border-radius:14px; overflow:hidden; }
.wpes-ec-monthhead{ display:flex; align-items:center; justify-content:space-between; padding:12px 12px; background:rgba(0,0,0,.03); }
.wpes-ec-title{ font-weight:800; font-size:18px; text-transform:capitalize; }
.wpes-ec-nav{ display:inline-flex; width:40px; height:36px; align-items:center; justify-content:center; border:1px solid rgba(0,0,0,.12); border-radius:10px; text-decoration:none; background:#fff; }

.wpes-ec-weekdays{ display:grid; grid-template-columns:repeat(7,1fr); background:rgba(0,0,0,.03); border-top:1px solid rgba(0,0,0,.08); }
.wpes-ec-wd{ padding:10px 10px; font-weight:700; font-size:13px; opacity:.85; }

.wpes-ec-grid{ display:grid; grid-template-columns:repeat(7,1fr); }
.wpes-ec-cell{ min-height:140px; padding:10px; border-top:1px solid rgba(0,0,0,.06); border-right:1px solid rgba(0,0,0,.06); position:relative; background:#fff; }
.wpes-ec-cell:nth-child(7n){ border-right:none; }
.wpes-ec-cell.is-out{ background:rgba(0,0,0,.02); opacity:.65; }
.wpes-ec-cell.is-today{ outline:2px solid rgba(0,0,0,.25); outline-offset:-2px; }
.wpes-ec-daynum{ font-weight:800; font-size:14px; margin-bottom:6px; }

.wpes-ec-items{ display:flex; flex-direction:column; gap:6px; }
.wpes-ec-item{ display:block; text-decoration:none; font-size:13px; line-height:1.25; padding:6px 8px; border-radius:10px; background:rgba(0,0,0,.04); }
.wpes-ec-item:hover{ background:rgba(0,0,0,.07); }
.wpes-ec-time{ font-weight:800; }
.wpes-ec-more{ margin-top:4px; font-size:12px; opacity:.8; text-decoration:none; }

.wpes-ec-empty{ padding:14px; border:1px dashed rgba(0,0,0,.20); border-radius:12px; }

.wpes-ec-list .wpes-ec-row{ display:flex; gap:12px; padding:12px; border:1px solid rgba(0,0,0,.08); border-radius:12px; margin:0 0 10px; }
.wpes-ec-rowdate{ min-width:110px; font-weight:800; }
.wpes-ec-rowtitle{ font-weight:800; text-decoration:none; display:inline-block; margin-bottom:4px; }
.wpes-ec-rowmeta{ font-size:13px; opacity:.85; }

.wpes-ec-card{ padding:12px; border:1px solid rgba(0,0,0,.08); border-radius:12px; margin:0 0 10px; }
.wpes-ec-cardtitle{ font-weight:800; text-decoration:none; display:inline-block; margin-bottom:6px; }
.wpes-ec-cardmeta{ font-size:13px; opacity:.85; margin-top:2px; }

.wpes-ec-weekgrid{ display:grid; grid-template-columns:repeat(7,1fr); gap:10px; }
.wpes-ec-weekday{ border:1px solid rgba(0,0,0,.08); border-radius:12px; padding:10px; background:#fff; min-height:160px; }
.wpes-ec-weekdayhead{ font-weight:800; margin-bottom:8px; }
.wpes-ec-weekitem{ display:block; text-decoration:none; font-size:13px; padding:6px 8px; border-radius:10px; background:rgba(0,0,0,.04); margin-bottom:6px; }
.wpes-ec-weekempty{ font-size:13px; opacity:.7; }

.wpes-ec-photo{ display:grid; grid-template-columns:repeat(var(--wpes-ec-cols,3),1fr); gap:12px; }
.wpes-ec-phocard{ border:1px solid rgba(0,0,0,.08); border-radius:14px; overflow:hidden; text-decoration:none; background:#fff; display:flex; flex-direction:column; }
.wpes-ec-phothumb{ position:relative; height:0; padding-top:56.25%; background-size:cover; background-position:center; background-color:rgba(0,0,0,.03); }
.wpes-ec-phothumb.is-empty{ background-image:linear-gradient(135deg, rgba(0,0,0,.04), rgba(0,0,0,.02)); }
.wpes-ec-phobody{ padding:10px 12px; }
.wpes-ec-photitle{ font-weight:800; margin-bottom:4px; }
.wpes-ec-phometa{ font-size:13px; opacity:.8; }

.wpes-ec-mapwrap{ display:grid; grid-template-columns: 1.4fr 1fr; gap:12px; align-items:start; }
.wpes-ec-map{ height:420px; border:1px solid rgba(0,0,0,.10); border-radius:14px; overflow:hidden; background:rgba(0,0,0,.03); }
.wpes-ec-maplist{ display:flex; flex-direction:column; gap:10px; }
.wpes-ec-mapitem{ display:block; padding:10px 12px; border:1px solid rgba(0,0,0,.08); border-radius:12px; text-decoration:none; background:#fff; }
.wpes-ec-mapmeta{ font-size:13px; opacity:.8; margin-top:3px; }

@media (max-width: 900px){
  .wpes-ec-grid{ grid-template-columns:repeat(2,1fr); }
  .wpes-ec-weekdays{ display:none; }
  .wpes-ec-cell:nth-child(7n){ border-right:1px solid rgba(0,0,0,.06); }
  .wpes-ec-mapwrap{ grid-template-columns:1fr; }
  .wpes-ec-photo{ grid-template-columns:repeat(2,1fr); }
}


/* Multi-day event UI (month view)
   - subtle bar feel inside each day cell
   - start/end get rounded corners, middle stays squared
*/
.wpes-ec-item.is-multi{
  position:relative;
  padding-left:10px;
  border-left:3px solid rgba(0,0,0,.18);
  background:rgba(0,0,0,.03);
}
.wpes-ec-item.is-multi.is-start{
  border-top-left-radius:10px;
  border-bottom-left-radius:10px;
}
.wpes-ec-item.is-multi.is-end{
  border-top-right-radius:10px;
  border-bottom-right-radius:10px;
}
.wpes-ec-item.is-multi .wpes-ec-span{
  position:absolute;
  left:4px;
  top:50%;
  transform:translateY(-50%);
  width:6px;
  height:6px;
  border-radius:50%;
  background:rgba(0,0,0,.35);
  opacity:.9;
}
.wpes-ec-item.is-multi.is-start .wpes-ec-span{
  box-shadow: 8px 0 0 rgba(0,0,0,.0);
}
.wpes-ec-item.is-multi:not(.is-start):not(.is-end) .wpes-ec-span{
  background:rgba(0,0,0,.25);
}

/* Multi-day badge (photo + map list) */
.wpes-ec-badge{
  display:inline-block;
  padding:2px 10px;
  border-radius:999px;
  font-size:12px;
  line-height:18px;
  background:rgba(0,0,0,.08);
  color:inherit;
  white-space:nowrap;
}

.wpes-ec-phothumb{position:relative}
.wpes-ec-phothumb .wpes-ec-badge{
  position:absolute;
  top:10px;
  right:10px;
  background:rgba(255,255,255,.85);
}



.wpes-ec-countdown{
  display:inline-flex;
  align-items:center;
  gap: var(--cd-gap,10px);
  color: var(--cd-text,#111);
  font-size: var(--cd-text-size,14px);
  line-height:1.2;
}
.wpes-ec-countdown-label{
  font-weight:600;
  margin-right:4px;
}
.wpes-ec-countdown-val{
  font-variant-numeric: tabular-nums;
}
.wpes-ec-cd-units{
  display:flex;
  gap: var(--cd-gap,10px);
  align-items:stretch;
}
.wpes-ec-cd-unit{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding: var(--cd-pad,10px);
  border: var(--cd-bw,1px) solid var(--cd-border,rgba(0,0,0,.12));
  border-radius: var(--cd-radius,12px);
  background: var(--cd-bg,rgba(0,0,0,.03));
  min-width: 62px;
}
.wpes-ec-cd-num{
  font-weight:700;
  font-size: var(--cd-num-size,26px);
  color: var(--cd-num,#111);
  font-variant-numeric: tabular-nums;
  display:block;
}
.wpes-ec-cd-lab{
  font-size: var(--cd-label-size,12px);
  color: var(--cd-label,#555);
  margin-top:4px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.wpes-ec-countdown.design-inline .wpes-ec-cd-units{ display:none; }
.wpes-ec-countdown.design-inline .wpes-ec-countdown-val{ display:inline-block; }
.wpes-ec-countdown.design-blocks .wpes-ec-countdown-val{ display:none; }
.wpes-ec-countdown.design-flipcard .wpes-ec-countdown-val{ display:none; }
.wpes-ec-countdown.design-splitflap .wpes-ec-countdown-val{ display:none; }
.wpes-ec-countdown.design-ticker .wpes-ec-countdown-val{ display:none; }

.wpes-ec-countdown.is-urgent{
  box-shadow: 0 0 0 3px var(--cd-accent, rgba(255,0,0,.25));
  border-radius: var(--cd-radius,12px);
  padding: 6px;
}

.wpes-ec-countdown.shadow .wpes-ec-cd-unit{
  box-shadow: 0 8px 22px rgba(0,0,0,.08);
}

.wpes-ec-countdown .wpes-cd-chg{
  will-change: transform;
}
.wpes-ec-countdown.anim-flip .wpes-cd-chg{
  animation: wpesCdFlip .45s ease;
}
.wpes-ec-countdown.anim-slide .wpes-cd-chg{
  animation: wpesCdSlide .45s ease;
}

@keyframes wpesCdFlip{
  0%{ transform: perspective(600px) rotateX(0deg); }
  100%{ transform: perspective(600px) rotateX(-80deg); }
}
@keyframes wpesCdSlide{
  0%{ transform: translateY(-10px); opacity:.2; }
  100%{ transform: translateY(0); opacity:1; }
}

@media (prefers-reduced-motion: reduce){
  .wpes-ec-countdown.anim-flip .wpes-cd-chg,
  .wpes-ec-countdown.anim-slide .wpes-cd-chg{
    animation:none !important;
  }
  .wpes-ec-countdown.is-urgent{
    box-shadow:none;
  }
}

/* === Countdown panel flip clock variants === */

.wpes-ec-countdown.design-flip .wpes-ec-countdown-val{ display:none; } /* backward compat */
.wpes-ec-countdown.design-flip .wpes-ec-cd-num{ display:none; }
.wpes-ec-countdown.design-flipcard .wpes-ec-cd-num,
.wpes-ec-countdown.design-splitflap .wpes-ec-cd-num,
.wpes-ec-countdown.design-ticker .wpes-ec-cd-num{ display:none; }

.wpes-ec-cd-digits{
  display:flex;
  gap: 6px;
}
.wpes-ec-digit{
  position:relative;
  width: var(--cd-digit-w, 32px);
  height: var(--cd-digit-h, 44px);
  perspective: 600px;
  font-variant-numeric: tabular-nums;
}
.wpes-ec-digit-top,
.wpes-ec-digit-bottom,
.wpes-ec-digit-flip-top,
.wpes-ec-digit-flip-bottom{
  position:absolute;
  left:0; right:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size: var(--cd-num-size,26px);
  color: var(--cd-num,#111);
  background: var(--cd-bg,rgba(0,0,0,.03));
  border: var(--cd-bw,1px) solid var(--cd-border,rgba(0,0,0,.12));
}

.wpes-ec-digit-top,
.wpes-ec-digit-flip-top{
  top:0;
  height:50%;
  border-bottom:0;
  border-radius: var(--cd-radius,12px) var(--cd-radius,12px) 0 0;
  overflow:hidden;
}
.wpes-ec-digit-bottom,
.wpes-ec-digit-flip-bottom{
  bottom:0;
  height:50%;
  border-top:0;
  border-radius: 0 0 var(--cd-radius,12px) var(--cd-radius,12px);
  overflow:hidden;
}

.wpes-ec-digit-top{ z-index:3; }
.wpes-ec-digit-bottom{ z-index:1; }

.wpes-ec-digit-flip-top{
  z-index:4;
  transform-origin: bottom;
  transform: rotateX(0deg);
  backface-visibility:hidden;
  display:none;
}
.wpes-ec-digit-flip-bottom{
  z-index:2;
  transform-origin: top;
  transform: rotateX(90deg);
  backface-visibility:hidden;
  display:none;
}

.wpes-ec-digit.is-flipping .wpes-ec-digit-flip-top,
.wpes-ec-digit.is-flipping .wpes-ec-digit-flip-bottom{
  display:flex;
}

.wpes-ec-countdown.design-flipcard .wpes-ec-digit.is-flipping .wpes-ec-digit-flip-top{
  animation: wpesFlipTop .55s ease-in forwards;
}
.wpes-ec-countdown.design-flipcard .wpes-ec-digit.is-flipping .wpes-ec-digit-flip-bottom{
  animation: wpesFlipBottom .55s ease-out forwards;
}

@keyframes wpesFlipTop{
  0%{ transform: rotateX(0deg); }
  100%{ transform: rotateX(-90deg); }
}
@keyframes wpesFlipBottom{
  0%{ transform: rotateX(90deg); }
  100%{ transform: rotateX(0deg); }
}

/* Split-flap: harder split line */
.wpes-ec-countdown.design-splitflap .wpes-ec-digit-top,
.wpes-ec-countdown.design-splitflap .wpes-ec-digit-bottom{
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.20);
}
.wpes-ec-countdown.design-splitflap .wpes-ec-digit.is-flipping .wpes-ec-digit-flip-top{
  animation: wpesFlipTop .5s linear forwards;
}
.wpes-ec-countdown.design-splitflap .wpes-ec-digit.is-flipping .wpes-ec-digit-flip-bottom{
  animation: wpesFlipBottom .5s linear forwards;
}

/* Ticker: slide digits */
.wpes-ec-countdown.design-ticker .wpes-ec-digit-flip-top,
.wpes-ec-countdown.design-ticker .wpes-ec-digit-flip-bottom{
  display:none !important;
}
.wpes-ec-countdown.design-ticker .wpes-ec-digit-top,
.wpes-ec-countdown.design-ticker .wpes-ec-digit-bottom{
  transition: transform .35s ease, opacity .35s ease;
}
.wpes-ec-countdown.design-ticker .wpes-ec-digit.is-flipping .wpes-ec-digit-top{
  transform: translateY(-6px);
  opacity:.15;
}
.wpes-ec-countdown.design-ticker .wpes-ec-digit.is-flipping .wpes-ec-digit-bottom{
  transform: translateY(0);
  opacity:1;
}

@media (prefers-reduced-motion: reduce){
  .wpes-ec-digit.is-flipping .wpes-ec-digit-flip-top,
  .wpes-ec-digit.is-flipping .wpes-ec-digit-flip-bottom{
    animation:none !important;
  }
  .wpes-ec-countdown.design-ticker .wpes-ec-digit-top,
  .wpes-ec-countdown.design-ticker .wpes-ec-digit-bottom{
    transition:none !important;
  }
}
