/* Andy Events for WooCommerce – public styles */

:root{
  /* Fallbacks (the shortcode injects real values inline from Customizer settings). */
  --andy-surface: #FFFFFF;
  --andy-text: #0B1B1C;
  --andy-muted: rgba(11,27,28,.62);
  --andy-accent: #17C3CE;
  --andy-accent2: #7C4DFF;
  --andy-ink: #103532;
  --andy-accent-rgb: 23,195,206;
  --andy-accent2-rgb: 124,77,255;
  --andy-ink-rgb: 16,53,50;
  --andy-shadow: 0 18px 50px rgba(10,20,30,.12);
}

/* -------------------------------------------------------------------------
   Calendar (Desktop month grid + Mobile cards)
   ------------------------------------------------------------------------- */

.andy-calendar{
  margin: 10px auto;
  width: 100%;
  max-width: 100%;
  min-width: 0; /* prevents right-edge clipping inside flex */
  color: var(--andy-ink);
}

/* Harmony with the theme presets */
body.ze-mode-afterdark .andy-calendar{ color: var(--andy-text); }
body.ze-mode-beach .andy-calendar{ color: var(--andy-ink); }

.andy-calendar *{ box-sizing: border-box; }

.andy-cal-top{
  position: relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.andy-cal-title__month{
  font-size: 30px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.andy-cal-title__nav{
  display:flex;
  gap: 10px;
  margin-top: 12px;
}

.andy-cal-nav{
  width: 40px;
  height: 40px;
  display:grid;
  place-items:center;
  border-radius: 14px;
  text-decoration:none;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 12px 26px rgba(10,20,30,.10);
  color: inherit;
  transition: transform .15s ease, filter .15s ease, background .15s ease;
}
body.ze-mode-afterdark .andy-cal-nav{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
.andy-cal-nav:hover{ transform: translateY(-1px); filter: brightness(1.02); }
.andy-cal-nav.is-disabled{ opacity:.35; pointer-events:none; }

.andy-cal-tabs-wrap{
  display:flex;
  flex-direction:column;
  gap: 10px;
  justify-content:flex-end;
  align-items:flex-end;
  max-width: 62%;
}

.andy-cal-years{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  justify-content:flex-end;
}

.andy-cal-tabs{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  justify-content:flex-end;
}

.andy-cal-tab{
  display:inline-flex;
  align-items:center;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 13px;
  text-decoration:none;
  color: inherit;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.72);
  box-shadow: 0 12px 26px rgba(10,20,30,.08);
  transition: transform .15s ease, filter .15s ease;
}
body.ze-mode-afterdark .andy-cal-tab{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.14);
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
.andy-cal-tab:hover{ transform: translateY(-1px); filter: brightness(1.02); }
.andy-cal-tab.is-active{
  background: linear-gradient(135deg, rgba(var(--andy-accent-rgb), .18), rgba(var(--andy-accent2-rgb), .14));
  border-color: rgba(var(--andy-accent-rgb), .45);
}

/* Tabs style variants (mapped from theme control) */
.andy-tabs-b .andy-cal-tab{ border-radius: 16px; padding: 10px 18px; }
.andy-tabs-c .andy-cal-tab{ background: transparent; box-shadow: none; border-color: rgba(0,0,0,.10); }
body.ze-mode-afterdark .andy-tabs-c .andy-cal-tab{ border-color: rgba(255,255,255,.18); }
.andy-tabs-c .andy-cal-tab.is-active{ background: rgba(var(--andy-accent-rgb), .10); }

/* Desktop month grid */
.andy-cal-desktop{ display:block; }
.andy-cal-grid{
  display:grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.andy-cal-cell{
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.54);
  min-height: 140px;
  padding: 12px;
  position:relative;
  overflow:hidden !important;
  min-width: 0;
}
body.ze-mode-afterdark .andy-cal-cell{
  border-color: rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
}

.andy-cal-dowhead{
  min-height: auto;
  padding: 10px 12px;
  border-radius: 18px;
  text-align:center;
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  background: rgba(255,255,255,.42);
}
body.ze-mode-afterdark .andy-cal-dowhead{ background: rgba(255,255,255,.04); }

.andy-cal-cell.is-out{ opacity: .40; }

.andy-cal-daynum{
  position:absolute;
  top: 10px;
  right: 10px;
  font-weight: 900;
  font-size: 12px;
  opacity: .82;
  width: 28px;
  height: 28px;
  display:grid;
  place-items:center;
  border-radius: 999px;
  background: var(--andy-daynum-bg, rgba(var(--andy-ink-rgb), .10));
  border: 1px solid rgba(0,0,0,.06);
  color: var(--andy-daynum-color, inherit);
}
body.ze-mode-afterdark .andy-cal-daynum{
  background: var(--andy-daynum-bg, rgba(0,0,0,.22));
  border-color: rgba(255,255,255,.10);
}

.andy-cal-events{
  display:flex;
  flex-direction:column;
  gap: 10px;
  margin-top: 40px;
  min-width: 0;
}

.andy-ev{
  display:flex;
  align-items:center;
  gap: 10px;
  text-decoration:none;
  color: inherit;
  border-radius: 18px;
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.72);
  box-shadow: 0 12px 28px rgba(10,20,30,.10);
  transition: transform .15s ease, filter .15s ease, border-color .15s ease;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
body.ze-mode-afterdark .andy-ev{
  border-color: rgba(255,255,255,.12);
  background: rgba(0,0,0,.22);
  box-shadow: 0 18px 45px rgba(0,0,0,.25);
}
.andy-ev:hover{ transform: translateY(-1px); filter: brightness(1.01); border-color: rgba(var(--andy-accent-rgb), .55); }

.andy-ev-thumb{
  width: 38px;
  height: 38px;
  border-radius: 14px;
  background-size: contain !important;
  background-repeat: no-repeat;
  background-position: center;
  background-color: rgba(0,0,0,.04);
  flex: 0 0 auto;
  border: 1px solid rgba(0,0,0,.06);
}
body.ze-mode-afterdark .andy-ev-thumb{ background-color: rgba(255,255,255,.08); border-color: rgba(255,255,255,.14); }

.andy-ev-title{
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 900;
  font-size: 13px;
  line-height: 1.12;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:hidden;
  overflow-wrap:anywhere;
}

.andy-ev-cta{
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
  font-weight: 900;
  font-size: 12px;
  padding: 9px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--andy-accent2), var(--andy-accent));
  color: #FFFFFF;
  box-shadow: 0 12px 30px rgba(10,20,30,.16);
}
body.ze-mode-afterdark .andy-ev-cta{ box-shadow: 0 12px 30px rgba(0,0,0,.28); }

/* Style B = poster mini-card (image strip + title + button) */
.andy-cal-style-b .andy-ev{ flex-direction: column; align-items: stretch; gap: 10px; padding: 12px; }
.andy-cal-style-b .andy-ev-thumb{ display:none; }
.andy-cal-style-b .andy-ev[data-has-img="1"]:before{
  content:"";
  display:block;
  width:100%;
  height: 62px;
  border-radius: 16px;
  background-image: var(--andy-ev-bg);
  background-size: contain !important;
  background-repeat: no-repeat;
  background-position: center;
  background-color: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.06);
}
body.ze-mode-afterdark .andy-cal-style-b .andy-ev[data-has-img="1"]:before{ background-color: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); }
.andy-cal-style-b .andy-ev-cta{ margin-left: 0; align-self: flex-end; border-radius: 16px; padding: 10px 14px; }

/* Style C (kept simple) */
.andy-cal-style-c .andy-cal-events{ display:none; }
.andy-cal-style-c .andy-cal-details{ margin-top: 40px; position: relative; }
.andy-cal-style-c .andy-cal-dots{ display:flex; align-items:center; gap:6px; padding: 8px 10px; border-radius: 999px; border: 1px solid rgba(0,0,0,.10); background: rgba(255,255,255,.55); width: fit-content; cursor:pointer; }
body.ze-mode-afterdark .andy-cal-style-c .andy-cal-dots{ border-color: rgba(255,255,255,.14); background: rgba(0,0,0,.22); }
.andy-cal-style-c .andy-dot{ width: 8px; height: 8px; border-radius: 999px; background: var(--andy-accent); }

/* Weekday accents (buttons + dots) */
.andy-calendar .dow-1 .andy-ev-cta, .andy-calendar .dow-1.andy-mcard .andy-mcard-btn{ background: linear-gradient(135deg, var(--andy-dow-1), var(--andy-accent2)); }
.andy-calendar .dow-2 .andy-ev-cta, .andy-calendar .dow-2.andy-mcard .andy-mcard-btn{ background: linear-gradient(135deg, var(--andy-dow-2), var(--andy-accent2)); }
.andy-calendar .dow-3 .andy-ev-cta, .andy-calendar .dow-3.andy-mcard .andy-mcard-btn{ background: linear-gradient(135deg, var(--andy-dow-3), var(--andy-accent2)); }
.andy-calendar .dow-4 .andy-ev-cta, .andy-calendar .dow-4.andy-mcard .andy-mcard-btn{ background: linear-gradient(135deg, var(--andy-dow-4), var(--andy-accent2)); }
.andy-calendar .dow-5 .andy-ev-cta, .andy-calendar .dow-5.andy-mcard .andy-mcard-btn{ background: linear-gradient(135deg, var(--andy-dow-5), var(--andy-accent2)); }
.andy-calendar .dow-6 .andy-ev-cta, .andy-calendar .dow-6.andy-mcard .andy-mcard-btn{ background: linear-gradient(135deg, var(--andy-dow-6), var(--andy-accent2)); }
.andy-calendar .dow-7 .andy-ev-cta, .andy-calendar .dow-7.andy-mcard .andy-mcard-btn{ background: linear-gradient(135deg, var(--andy-dow-7), var(--andy-accent2)); }

.andy-calendar .dow-1 .andy-dot{ background: var(--andy-dow-1); }
.andy-calendar .dow-2 .andy-dot{ background: var(--andy-dow-2); }
.andy-calendar .dow-3 .andy-dot{ background: var(--andy-dow-3); }
.andy-calendar .dow-4 .andy-dot{ background: var(--andy-dow-4); }
.andy-calendar .dow-5 .andy-dot{ background: var(--andy-dow-5); }
.andy-calendar .dow-6 .andy-dot{ background: var(--andy-dow-6); }
.andy-calendar .dow-7 .andy-dot{ background: var(--andy-dow-7); }

/* Mobile cards */
.andy-cal-mobile{ display:none; }
.andy-mcards{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.andy-mobile-1col .andy-mcards{ grid-template-columns: 1fr; }

.andy-mcard{
  display:flex;
  flex-direction:column;
  gap: 0;
  padding: 0;
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.72);
  text-decoration:none;
  color: inherit;
  box-shadow: 0 18px 45px rgba(10,20,30,.12);
  overflow:hidden;
  text-align: var(--andy-title-align, center);
}
body.ze-mode-afterdark .andy-mcard{ border-color: rgba(255,255,255,.12); background: rgba(0,0,0,.22); box-shadow: 0 18px 45px rgba(0,0,0,.26); }

.andy-mcard-img{
  width: 100%;
  /* Wider ratio = slightly shorter cards and a more premium "poster" look */
  aspect-ratio: 16 / 9;
  border-radius: 0;
  /* Mobile: fill the box (no letterboxing / wasted space) */
  background-size: cover !important;
  background-repeat: no-repeat;
  background-position: center;
  /* Remove the extra "box" around the image */
  background-color: transparent;
  border: 0;
}
body.ze-mode-afterdark .andy-mcard-img{ background-color: transparent; border-color: transparent; }

.andy-mcard-meta{ padding: 12px 14px 0; font-weight: 900; font-size: 12px; opacity: .78; color: var(--andy-title-color, inherit); }
.andy-mcard-title{ padding: 6px 14px 12px; font-weight: 900; font-size: 14px; line-height: 1.15; color: var(--andy-title-color, inherit); }
.andy-mcard-btn{ margin: 0 14px 14px; display:inline-flex; justify-content:center; align-items:center; padding: 12px 12px; border-radius: 18px; font-weight: 900; background: linear-gradient(135deg, var(--andy-accent2), var(--andy-accent)); color: #FFFFFF; box-shadow: 0 12px 30px rgba(10,20,30,.16); }
body.ze-mode-afterdark .andy-mcard-btn{ box-shadow: 0 12px 30px rgba(0,0,0,.28); }

/* When CTA is hidden, avoid leaving a "dead" bottom area */
.andy-calendar.andy-no-cta .andy-mcard-title{ padding-bottom: 16px; }

.andy-empty{ padding: 18px; border-radius: 22px; border: 1px dashed rgba(0,0,0,.18); background: rgba(255,255,255,.40); opacity: .90; }
body.ze-mode-afterdark .andy-empty{ border-color: rgba(255,255,255,.20); background: rgba(255,255,255,.04); }

/* Responsive */
@media (min-width: 880px){
  /* Center the year+month tabs like the mockups */
  .andy-cal-tabs-wrap{ position:absolute; left:50%; transform:translateX(-50%); align-items:center; max-width: 78%; }
  .andy-cal-tabs, .andy-cal-years{ justify-content:center; }
}

@media (max-width: 900px){
  .andy-cal-top{ flex-direction:column; }
  .andy-cal-tabs-wrap{ position:static; transform:none; max-width: 100%; align-items:flex-start; }
  .andy-cal-tabs, .andy-cal-years{ justify-content:flex-start; }
}

@media (max-width: 860px){
  .andy-cal-desktop{ display:none; }
  .andy-cal-mobile{ display:block; }
}

@media (max-width: 440px){
  .andy-mcards{ grid-template-columns: 1fr; }
}


/* -------------------------------------------------------------------------
   Misc (used on thank-you page etc.)
   ------------------------------------------------------------------------- */

.andy-upgrade-links{
  margin: 12px 0 0;
  padding-left: 18px;
}

.andy-upgrade-links li{ margin: 6px 0; }



/* ------------------------------------------------------------------
   v0.4.5 – Premium calendar polish (matches approved mockup)
   ------------------------------------------------------------------ */

/* Tabs: center + premium pill sizing */
.andy-calendar .andy-cal-tabs{
  justify-content: center !important;
  gap: 10px !important;
}

.andy-calendar .andy-cal-tab{
  padding: 10px 16px !important;
  border-radius: 999px !important;
  font-weight: 900 !important;
}

/* Header cells must NOT inherit day-cell min-height */
.andy-calendar .andy-cal-cell.andy-cal-dowhead{
  min-height: 0 !important;
  height: auto !important;
  padding: 12px 10px !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.38) !important;
  border: 1px solid rgba(255,255,255,.46) !important;
  box-shadow: none !important;
}

/* Day cells: glassy + tidy spacing */
.andy-calendar .andy-cal-cell.andy-cal-day{
  min-height: 175px !important;
  padding: 12px !important;
  border-radius: 26px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,.18)) !important;
  border: 1px solid rgba(255,255,255,.40) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55) !important;
}

/* Out-of-month cells should feel lighter */
.andy-calendar .andy-cal-cell.is-out{
  opacity: .34 !important;
}

/* Today: subtle accent outline */
.andy-calendar .andy-cal-cell.is-today{
  border-color: rgba(var(--andy-accent-rgb), .45) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 10px 26px rgba(var(--andy-accent-rgb), .12) !important;
}

/* Day number pill */
.andy-calendar .andy-cal-daynum{
  width: 26px !important;
  height: 26px !important;
  font-size: 12px !important;
  background: var(--andy-daynum-bg, rgba(var(--andy-ink-rgb), .09)) !important;
  border: 1px solid rgba(0,0,0,.05) !important;
}

/* Events stack closer to the top (less empty space) */
.andy-calendar .andy-cal-events{
  margin-top: 18px !important;
  gap: 12px !important;
}

/* -------------------------------------------------------------
   Style A: mini poster cards (image + title + pill button)
   ------------------------------------------------------------- */
.andy-cal-style-a .andy-ev{
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 10px !important;
  padding: 14px !important;
  border-radius: 26px !important;
  background: rgba(255,255,255,.84) !important;
  border: 1px solid rgba(255,255,255,.60) !important;
  box-shadow: 0 18px 40px rgba(10,20,30,.12) !important;
}

.andy-cal-style-a .andy-ev-thumb{
  order: 0 !important;
  width: 100% !important;
  height: 82px !important;
  border-radius: 18px !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-color: rgba(0,0,0,.03) !important;
  border: 1px solid rgba(0,0,0,.06) !important;
}

.andy-cal-style-a .andy-ev-title{
  order: 1 !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.01em !important;
  color: var(--andy-ink) !important;
}

.andy-cal-style-a .andy-ev-cta{
  order: 2 !important;
  margin-left: 0 !important;
  align-self: center !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  padding: 11px 18px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--andy-accent2), var(--andy-accent)) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(10,20,30,.14) !important;
}

/* -------------------------------------------------------------
   Style B: same card, but uses background strip (no thumb span)
   ------------------------------------------------------------- */
.andy-cal-style-b .andy-ev{
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 10px !important;
  padding: 14px !important;
  border-radius: 26px !important;
  background: rgba(255,255,255,.84) !important;
  border: 1px solid rgba(255,255,255,.60) !important;
  box-shadow: 0 18px 40px rgba(10,20,30,.12) !important;
}

.andy-cal-style-b .andy-ev[data-has-img="1"]:before{
  height: 82px !important;
  border-radius: 18px !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-color: rgba(0,0,0,.03) !important;
  border: 1px solid rgba(0,0,0,.06) !important;
}

.andy-cal-style-b .andy-ev-title{
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.01em !important;
}

.andy-cal-style-b .andy-ev-cta{
  margin-left: 0 !important;
  align-self: center !important;
  font-size: 13px !important;
  padding: 11px 18px !important;
  border-radius: 999px !important;
}

/* Smaller screens: keep cards neat */
@media (max-width: 1100px){
  .andy-calendar .andy-cal-grid{ gap: 10px !important; }
  .andy-calendar .andy-cal-cell.andy-cal-day{ min-height: 160px !important; }
  .andy-cal-style-a .andy-ev-thumb{ height: 74px !important; }
  .andy-cal-style-b .andy-ev[data-has-img="1"]:before{ height: 74px !important; }
}


/* ------------------------------------------------------------------
   v0.4.6 – Poster cards like approved mockup
   - Blur-fill background (no wasted space)
   - Contained foreground image (no crop)
   - Remove the inner "white box" feel by making the outer card the poster
   ------------------------------------------------------------------ */

/* Give event cards more "poster" presence without making cells bigger */
.andy-calendar .andy-cal-events{ margin-top: 26px !important; }

.andy-cal-style-a .andy-ev,
.andy-cal-style-b .andy-ev{
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  padding: 0 !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.60) !important;
  background: rgba(255,255,255,.18) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 18px 42px rgba(10,20,30,.10) !important;
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev{
  border-color: rgba(255,255,255,.14) !important;
  background: rgba(0,0,0,.22) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.26) !important;
}

/* Blurred background from the same image */
.andy-cal-style-a .andy-ev::before,
.andy-cal-style-b .andy-ev::before{
  content: "";
  position: absolute;
  inset: -22px;
  background-image: var(--andy-ev-img);
  background-size: cover;
  background-position: center;
  filter: blur(18px);
  transform: scale(1.12);
  opacity: .55;
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev::before,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev::before{ opacity: .42; }

/* Soft glass overlay to keep text readable */
.andy-cal-style-a .andy-ev::after,
.andy-cal-style-b .andy-ev::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(255,255,255,.00) 0%,
    rgba(255,255,255,.38) 48%,
    rgba(255,255,255,.70) 100%
  );
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev::after,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev::after{
  background: linear-gradient(180deg,
    rgba(0,0,0,.00) 0%,
    rgba(0,0,0,.28) 48%,
    rgba(0,0,0,.62) 100%
  );
}

.andy-cal-style-a .andy-ev-media,
.andy-cal-style-b .andy-ev-media{
  position: relative;
  z-index: 1;
  padding: 14px 14px 10px;
}

.andy-cal-style-a .andy-ev-media-img,
.andy-cal-style-b .andy-ev-media-img{
  display: block;
  width: 100%;
  height: 76px;
  border-radius: 18px;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-color: rgba(255,255,255,.58);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev-media-img,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev-media-img{
  background-color: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}

.andy-cal-style-a .andy-ev-foot,
.andy-cal-style-b .andy-ev-foot{
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 14px 14px;
}

.andy-cal-style-a .andy-ev-title,
.andy-cal-style-b .andy-ev-title{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.10 !important;
  letter-spacing: -0.01em !important;
  color: var(--andy-ink) !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev-title,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev-title{ color: #fff !important; }

.andy-cal-style-a .andy-ev-cta,
.andy-cal-style-b .andy-ev-cta{
  flex: 0 0 auto;
  margin: 0 !important;
  white-space: nowrap;
  font-size: 13px !important;
  font-weight: 900 !important;
  padding: 11px 18px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--andy-accent2), var(--andy-accent)) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(10,20,30,.14) !important;
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev-cta,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev-cta{ box-shadow: 0 12px 28px rgba(0,0,0,.30) !important; }

/* Responsive tuning */
@media (max-width: 1100px){
  .andy-cal-style-a .andy-ev-media-img,
  .andy-cal-style-b .andy-ev-media-img{ height: 70px; }
  .andy-cal-style-a .andy-ev-title,
  .andy-cal-style-b .andy-ev-title{ font-size: 14px !important; }
  .andy-cal-style-a .andy-ev-cta,
  .andy-cal-style-b .andy-ev-cta{ padding: 10px 16px !important; }
}

/* ------------------------------------------------------------------
   v0.4.7 – Poster cards (match approved mockup)
   Fixes:
   - Title was being squeezed into a tiny column on narrow day cells
   - Inner white box removed (use blur-fill background + subtle glass only)
   - Image area becomes a wide banner (16:9 slot) so posters read properly
   ------------------------------------------------------------------ */

/* Keep the poster card container, but make it feel cleaner */
.andy-cal-style-a .andy-ev,
.andy-cal-style-b .andy-ev{
  border-radius: 30px !important;
}

/* Slightly lighter overlay so artwork shows through */
.andy-cal-style-a .andy-ev::after,
.andy-cal-style-b .andy-ev::after{
  background: linear-gradient(180deg,
    rgba(255,255,255,.00) 0%,
    rgba(255,255,255,.20) 44%,
    rgba(255,255,255,.58) 100%
  ) !important;
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev::after,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev::after{
  background: linear-gradient(180deg,
    rgba(0,0,0,.00) 0%,
    rgba(0,0,0,.22) 44%,
    rgba(0,0,0,.58) 100%
  ) !important;
}

/* Bigger media area, less padding = more poster */
.andy-cal-style-a .andy-ev-media,
.andy-cal-style-b .andy-ev-media{
  padding: 12px 12px 8px !important;
}

/* The poster slot: wide banner, no solid white box */
.andy-cal-style-a .andy-ev-media-img,
.andy-cal-style-b .andy-ev-media-img{
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 20px !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-color: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  box-shadow: none !important;
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev-media-img,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev-media-img{
  background-color: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.14) !important;
}

/* Stack title + button so nothing gets squeezed */
.andy-cal-style-a .andy-ev-foot,
.andy-cal-style-b .andy-ev-foot{
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  padding: 0 12px 12px !important;
  gap: 10px !important;
}

.andy-cal-style-a .andy-ev-title,
.andy-cal-style-b .andy-ev-title{
  font-size: 14px !important;
  line-height: 1.12 !important;
  text-align: left !important;
  color: var(--andy-ink) !important;
}
body.ze-mode-afterdark .andy-cal-style-a .andy-ev-title,
body.ze-mode-afterdark .andy-cal-style-b .andy-ev-title{ color: #fff !important; }

.andy-cal-style-a .andy-ev-cta,
.andy-cal-style-b .andy-ev-cta{
  width: 100% !important;
  display: inline-flex !important;
  justify-content: center !important;
  padding: 12px 16px !important;
}

/* Slightly taller day cells so the poster card breathes (without making the calendar huge) */
.andy-calendar .andy-cal-cell.andy-cal-day{
  min-height: 168px !important;
}

@media (max-width: 1100px){
  .andy-calendar .andy-cal-cell.andy-cal-day{ min-height: 154px !important; }
  .andy-cal-style-a .andy-ev-title,
  .andy-cal-style-b .andy-ev-title{ font-size: 13px !important; }
  .andy-cal-style-a .andy-ev-media-img,
  .andy-cal-style-b .andy-ev-media-img{ border-radius: 18px !important; }
}


/* ------------------------------------------------------------------
   v0.4.8 – Full-cell poster (remove inner box, maximize imagery)
   - Make the event card fill the entire day cell
   - Use blur-fill behind + contained image on top (no crop, no dead space)
   - Keep day number pill visible above the card
   ------------------------------------------------------------------ */

/* When a day has an event, remove the extra padding so we can use the full cell */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event{
  padding: 0 !important;
}

/* Keep the day number on top */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-cal-daynum{
  top: 12px !important;
  right: 12px !important;
  z-index: 6 !important;
}

/* The event wrapper becomes a full-cell layer */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-cal-events--fill{
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* The anchor becomes the full poster card (no inner "box") */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill{
  position: absolute !important;
  inset: 0 !important;
  height: 100% !important;
  width: 100% !important;
  border-radius: inherit !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

/* Blur-fill background uses the same image */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill::before{
  inset: -26px !important;
  opacity: .52 !important;
  filter: blur(20px) !important;
}

/* Keep overlay gentle so the artwork still shows */
/* Bottom readability fade (no boxed footer) */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill::after{
  background: linear-gradient(180deg,
    rgba(255,255,255,.00) 0%,
    rgba(255,255,255,.10) 50%,
    rgba(255,255,255,.74) 100%
  ) !important;
}
body.ze-mode-afterdark .andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill::after{
  background: linear-gradient(180deg,
    rgba(0,0,0,.00) 0%,
    rgba(0,0,0,.18) 50%,
    rgba(0,0,0,.62) 100%
  ) !important;
}

/* Contained image sits on top and can use the full cell */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill .andy-ev-media{
  position: absolute !important;
  inset: 0 !important;
  padding: 0 !important;
  z-index: 1 !important;
}

.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill .andy-ev-media-img{
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Title + CTA float directly over the image (no boxed container) */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill .andy-ev-foot{
  position: absolute !important;
  left: 14px !important;
  right: 14px !important;
  bottom: 14px !important;
  z-index: 3 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: var(--andy-title-align-items, center) !important;
  gap: 10px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  border: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill .andy-ev-title{
  font-size: 15px !important;
  line-height: 1.12 !important;
  text-align: var(--andy-title-align, center) !important;
  color: var(--andy-title-color, inherit) !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.18);
}

/* When CTA is hidden, reduce the bottom fade so it doesn't look like a blank "gap" */
.andy-calendar.andy-no-cta .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill::after{
  inset: auto 0 0 0 !important;
  height: 22% !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,.00) 0%,
    rgba(255,255,255,.42) 100%
  ) !important;
}
body.ze-mode-afterdark .andy-calendar.andy-no-cta .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill::after{
  background: linear-gradient(180deg,
    rgba(0,0,0,.00) 0%,
    rgba(0,0,0,.46) 100%
  ) !important;
}

.andy-calendar.andy-no-cta .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill .andy-ev-foot{
  bottom: 12px !important;
}

.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev--fill .andy-ev-cta{
  width: auto !important;
  min-width: 92px;
  display: inline-flex !important;
  justify-content: center !important;
  padding: 10px 18px !important;
  border-radius: 999px !important;
}

/* Optional: hide CTA button via Customizer (card remains clickable) */
.andy-calendar.andy-no-cta .andy-ev-cta,
.andy-calendar.andy-no-cta .andy-mcard-btn{
  display: none !important;
}
.andy-calendar.andy-no-cta .andy-ev-foot{ gap: 0 !important; }

/* +N badge for multiple events on a day */
.andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev-more{
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 7;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .02em;
  background: rgba(255,255,255,.52);
  border: 1px solid rgba(255,255,255,.58);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
body.ze-mode-afterdark .andy-calendar .andy-cal-cell.andy-cal-day.has-event .andy-ev-more{
  background: rgba(0,0,0,.34);
  border-color: rgba(255,255,255,.12);
  color: #fff;
}


/* Two-stage add-to-cart: quantity input polish */
form.cart.andy-two-stage .qty-wrap .quantity,
form.cart.andy-two-stage .qty-wrap{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

form.cart.andy-two-stage .qty-wrap .quantity input.qty,
form.cart.andy-two-stage #andy_upgrade_qty{
  width: 92px;
  min-width: 92px;
  height: 44px;
  padding: 10px 12px;
  border-radius: 16px;
  background: var(--andy-qty-bg, rgba(255,255,255,.70));
  color: var(--andy-qty-text, #0B1B1C);
  border: 1px solid rgba(0,0,0,.14);
  text-align: center;
  font-weight: 700;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

form.cart.andy-two-stage .qty-wrap .quantity input.qty:focus,
form.cart.andy-two-stage #andy_upgrade_qty:focus{
  outline: none;
  border-color: rgba(255,153,0,.55);
  box-shadow: 0 0 0 4px rgba(255,153,0,.18), inset 0 1px 0 rgba(255,255,255,.7);
}

/* Remove browser number spinners */
form.cart.andy-two-stage input[type=number]::-webkit-outer-spin-button,
form.cart.andy-two-stage input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance: none;
  margin: 0;
}
form.cart.andy-two-stage input[type=number]{
  -moz-appearance: textfield;
  appearance: textfield;
}

