.elementor-1037 .elementor-element.elementor-element-691142a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1037 .elementor-element.elementor-element-691142a.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-1037 .elementor-element.elementor-element-e9e08ae{width:100%;max-width:100%;}.elementor-1037 .elementor-element.elementor-element-e9e08ae.elementor-element{--align-self:flex-start;--flex-grow:0;--flex-shrink:0;}:root{--page-title-display:none;}@media(max-width:767px){.elementor-1037 .elementor-element.elementor-element-691142a{--min-height:67vh;}.elementor-1037 .elementor-element.elementor-element-e9e08ae{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}}@media(min-width:768px){.elementor-1037 .elementor-element.elementor-element-691142a{--width:100%;}}/* Start custom CSS for shortcode, class: .elementor-element-e9e08ae *//* ====== Heading (centered) ====== */
.elementor-shortcode .spiffy-minical-block{ --arrowW: clamp(36px,7vw,52px); }

/* Reset plugin heading positioning */
.elementor-shortcode .spiffy-minical-block .calendar-heading,
.elementor-shortcode .spiffy-minical-block .calendar-heading *{
  position:static !important; float:none !important;
}

/* Use flex for the inner heading table */
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl{
  display:flex !important; align-items:center !important; justify-content:space-between !important;
  width:100% !important; border-collapse:separate; border-spacing:0;
}
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl > tbody{ display:contents !important; }
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl > tbody > tr{ display:contents !important; }

/* Equal arrow widths so center truly centers */
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl td.calendar-prev,
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl td.calendar-next{
  flex:0 0 var(--arrowW) !important; max-width:var(--arrowW); min-width:var(--arrowW);
  text-align:center !important; white-space:nowrap;
}
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl td.calendar-month{
  flex:1 1 auto !important; text-align:center !important; padding:0 clamp(8px,2vw,18px);
}

/* Arrows (SVG icons) */
.elementor-shortcode .spiffy-minical-block .spiffy-calendar-arrow{
  display:inline-flex!important; align-items:center; justify-content:center;
  width:var(--arrowW); height:var(--arrowW);
  border-radius:50%; background:rgba(255,255,255,.20);
  color:transparent !important; font-size:0 !important; line-height:0 !important;
  position:relative; overflow:hidden; text-decoration:none!important;
}
.elementor-shortcode .spiffy-minical-block .spiffy-calendar-arrow::before{
  content:""; display:block; width:58%; height:58%;
  background-repeat:no-repeat; background-position:center; background-size:contain;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23FFFFFF'><path d='m12.718 4.707-1.413-1.415L2.585 12l8.72 8.707 1.413-1.415L6.417 13H20v-2H6.416l6.302-6.293z'/></svg>");
}
/* Flip for next (right) arrow */
.elementor-shortcode .spiffy-minical-block .calendar-next .spiffy-calendar-arrow::before{ transform:scaleX(-1); }

/* Month + Year centered together */
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl .calendar-month{
  color:#fff; display:flex; align-items:baseline; justify-content:center;
  gap:clamp(14px,3.5vw,26px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl .calendar-month .month-label{
  font-weight:900; font-size:clamp(22px,5.2vw,44px); line-height:1.1;
}
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl .calendar-month .year-label{
  font-weight:900; font-size:clamp(12px,3.2vw,22px);
}

/* Unified background */
.elementor-shortcode .spiffy-minical-block tr.calendar-heading,
.elementor-shortcode .spiffy-minical-block tr.calendar-heading td,
.elementor-shortcode .spiffy-minical-block .calendar-date-switcher,
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl,
.elementor-shortcode .spiffy-minical-block .calendar-heading-tbl td{
  background:#1FD4C8!important; border:0; box-shadow:none;
}

/* ====== Container & grid ====== */
.elementor-shortcode .spiffy-minical-block{
  background:#1FD4C8;
  color:#FFFFFF;
  border-radius:0 !important;
  padding:16px 18px 12px;
  box-shadow:0 6px 20px rgba(0,0,0,.08);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial;
  width:100% !important;
  max-width:1400px !important;
  margin-left:auto !important; margin-right:auto !important;
  position:relative; overflow:visible;
  min-height:100vh; min-height:100dvh; min-height:100svh;
  padding-bottom:clamp(40px,12vw,120px);
}

/* Grid under heading, legend will sit below */
.elementor-shortcode .spiffy-minical-block .calendar-table.minical{
  width:100%!important; max-width:100%!important;
  border-collapse:separate; border-spacing:0; table-layout:fixed; display:block;
  margin-top:clamp(4px,1.5vw,12px);
}
.elementor-shortcode .spiffy-minical-block .calendar-table.minical tbody{display:block;width:100%;}
.elementor-shortcode .spiffy-minical-block .calendar-table.minical tr{display:flow-root;width:100%;clear:both;}
.elementor-shortcode .spiffy-minical-block .calendar-table.minical tr::after{content:"";display:block;clear:both;}
.elementor-shortcode .spiffy-minical-block .calendar-table.minical tr td{float:left;width:14.2857%;min-width:14.2857%;box-sizing:border-box;text-align:center;}

/* Weekday labels */
.elementor-shortcode .spiffy-minical-block .weekday-titles{background:#1FD4C8!important;}
.elementor-shortcode .spiffy-minical-block .weekday-titles td{
  height:auto!important; padding:clamp(10px,1.6vw,18px) 0 clamp(12px,1.8vw,20px)!important;
  border:0; text-transform:uppercase; font-size:clamp(14px,2.2vw,22px);
  letter-spacing:.06em; font-weight:900; color:#08364A; background:#1FD4C8; white-space:nowrap;
}
.elementor-shortcode .spiffy-minical-block .weekday-titles td:nth-child(1){ color:#0E8F86!important; opacity:.75; }
.elementor-shortcode .spiffy-minical-block .weekday-titles td:nth-child(7){ color:#0E8F86!important; opacity:.75; }

/* Day cells */
.elementor-shortcode .spiffy-minical-block td.day-with-date,
.elementor-shortcode .spiffy-minical-block td.day-without-date{
  border:0; height:auto!important; padding:clamp(8px,1.2vw,14px) 0 clamp(16px,2vw,22px)!important;
  background:transparent; position:relative;
}
.elementor-shortcode .spiffy-minical-block td.day-without-date{opacity:.25;}

/* Weekends default — semibold & dimmer (events will override via injected rules) */
.elementor-shortcode .spiffy-minical-block td.weekend .day-number{
  background:transparent!important; color:rgba(255,255,255,.45)!important; font-weight:600 !important;
}

/* Day numbers */
.elementor-shortcode .spiffy-minical-block .day-number{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; line-height:48px; border-radius:50%;
  font-weight:600; font-size:clamp(16px,2.2vw,22px); color:#FFFFFF;
  transition:background-color .15s ease, transform .15s ease, color .15s ease;
  user-select:none; cursor:pointer;
}
.elementor-shortcode .spiffy-minical-block td.day-with-date:hover .day-number{background:rgba(255,255,255,.16); transform:translateY(-1px);}
.elementor-shortcode .spiffy-minical-block td.current-day .day-number{background:none!important; box-shadow:none!important; color:inherit;}

/* Remove plugin highlight rectangles; keep popup bg */
.elementor-shortcode .spiffy-minical-block .calnk .mini-link,
.elementor-shortcode .spiffy-minical-block .calnk .mini-link *:not(.spiffy-popup),
.elementor-shortcode .spiffy-minical-block td.day-with-date a,
.elementor-shortcode .spiffy-minical-block td.day-with-date a *:not(.spiffy-popup){
  background:none !important; box-shadow:none !important; border:0 !important; outline:0 !important; padding:0 !important;
}
.elementor-shortcode .spiffy-minical-block .calnk .mini-link{ color:inherit !important; }

/* Event days: bold; actual color is injected per label by JS */
.elementor-shortcode .spiffy-minical-block td.has-event .day-number{ font-weight:900 !important; }

/* Legend (under grid, all screens) */
.elementor-shortcode .spiffy-minical-block .calendar-legend{
  position:static !important; margin-top:clamp(18px,3vw,28px);
  width:100%; display:flex !important; flex-wrap:wrap;
  justify-content:center; align-items:center;
  gap:clamp(10px,2vw,18px) clamp(16px,3vw,28px);
  font-size:clamp(13px,1.5vw,18px);
  font-weight:800; text-transform:uppercase; text-align:center; color:#FFFFFF;
}
.elementor-shortcode .spiffy-minical-block .calendar-legend .legend-item{display:inline-flex; align-items:center; gap:10px;}
/* Blob-style legend dots (not perfect circles), color provided inline by JS */
.elementor-shortcode .spiffy-minical-block .calendar-legend .legend-dot{
  display:inline-block; position:relative;
  width:18px; height:14px;
  border-radius:48% 52% 60% 40% / 55% 45% 52% 48%;
  transform:rotate(-12deg);
  box-shadow:inset 0 -2px 4px rgba(0,0,0,.15), 0 1px 0 rgba(0,0,0,.08);
}
.elementor-shortcode .spiffy-minical-block .calendar-legend .legend-dot::after{
  content:""; position:absolute; left:20%; top:18%;
  width:46%; height:46%; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.35) 0%, rgba(255,255,255,0) 60%);
  pointer-events:none;
}

/* Popup */
.elementor-shortcode .spiffy-minical-block .spiffy-popup{
  color:#0E0E0E; background:#FFFFFF; border:0; border-radius:10px; box-shadow:0 6px 16px rgba(0,0,0,.18);
  padding:6px 8px; text-align:left; position:absolute!important; z-index:9999!important;
  font-size:clamp(12px,1.6vw,15px); line-height:1.15; max-width:200px; white-space:normal; word-break:break-word;
  transform:translate(10px,-10px) scale(.9); transform-origin:top left;
}

/* Utilities */
.elementor-shortcode .spiffy-minical-block a{color:inherit;}
.elementor-shortcode .spiffy-minical-block,
.elementor-shortcode .spiffy-minical-block .calendar-table.minical,
.elementor-shortcode .spiffy-minical-block tr,
.elementor-shortcode .spiffy-minical-block td{overflow:visible!important;}
.elementor-shortcode .spiffy-minical-block .day-number{position:relative; z-index:1;}
.elementor-shortcode .spiffy-minical-block .spiffy-popup::before,
.elementor-shortcode .spiffy-minical-block .spiffy-popup::after{z-index:9999!important;}
.elementor-shortcode .spiffy-minical-block .is-loading{opacity:.6; filter:saturate(.9); pointer-events:none; transition:opacity .18s ease;}

/* Mobile tweaks (smaller legend) */
@media (max-width:760px){
  .elementor-shortcode .spiffy-minical-block{ --arrowW: clamp(32px,8vw,42px); }
  .elementor-shortcode .spiffy-minical-block .calendar-heading-tbl .calendar-month{ gap:clamp(10px,4vw,16px); }
  .elementor-shortcode .spiffy-minical-block .calendar-legend{ font-size:clamp(11px,3.3vw,13px); gap:8px 14px; }
  .elementor-shortcode .spiffy-minical-block .calendar-legend .legend-dot{ width:14px; height:11px; }
  .elementor-shortcode .spiffy-minical-block .spiffy-popup{ max-width:180px; transform:translate(6px,-6px) scale(.85); }
}/* End custom CSS */