.gec-filters{ margin: 0 0 16px 0; padding: 12px; border: 1px solid #e5e5e5; border-radius: 10px; }
.gec-filter-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; }
.gec-filter span{ display:block; font-weight:600; margin-bottom:6px; }
.gec-filter select{ min-width: 220px; }
.gec-btn{ padding: 10px 14px; border-radius: 10px; border: 1px solid #222; background: transparent; cursor:pointer; }
.gec-events{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.gec-event{ padding:16px; border:1px solid #e5e5e5; border-radius: 12px; }
.gec-event-title{ margin:0 0 8px 0; }
.gec-event-meta{ display:flex; flex-wrap:wrap; gap:10px; font-size: 0.95em; opacity:0.9; margin-bottom:10px; }
.gec-badge{ padding: 4px 8px; border:1px solid #222; border-radius: 999px; }
.gec-pagination{ margin-top:16px; display:flex; justify-content:center; }
.gec-page-list{ display:flex; gap:8px; list-style:none; padding:10px 12px; margin:0; flex-wrap:wrap; border:1px solid #e5e5e5; border-radius:12px; background:#fafafa; }
.gec-page-item a, .gec-page-item span{ display:inline-block; padding:8px 12px; border:1px solid #e5e5e5; border-radius: 10px; text-decoration:none; background:#fff; }
.gec-page-item a:hover{ border-color:#222; background:#222; color:#fff; }
.gec-page-item .current{ border-color:#222; font-weight:700; }
.gec-none{ padding: 12px; border: 1px dashed #bbb; border-radius: 10px; }

/* List cards */
.gec-title{ margin:0 0 8px 0; font-size:1.45em !important; line-height:1.25; }
.gec-title a{ text-decoration:none; }
.gec-when{ font-weight:600; margin-bottom:10px; }
.gec-time{ font-weight:500; opacity:0.85; }
.gec-recur{ display:inline-block; margin-left:6px; opacity:0.8; }

.gec-meta-row{ font-size:0.95em; display:flex; flex-wrap:wrap; gap:10px; padding:10px; border:1px solid #e5e5e5; border-radius:12px; background:#fafafa; }
.gec-pill{ display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid #ddd; border-radius:999px; background:#fff; text-decoration:none; }
.gec-pill-label{ font-weight:700; opacity:0.8; }
.gec-pill-value{ font-weight:600; }
.gec-pill:hover{ border-color:#222; }
.gec-meta-row-static .gec-pill{ cursor:default; }

.gec-btn-secondary{ border-color:#e5e5e5; }

/* Single */
.gec-single-wrap{ max-width: 1160px; margin: 0 auto; padding: 18px 16px; box-sizing: border-box; }
.gec-single-header{ display:flex; flex-direction:column; gap:10px; margin-bottom: 14px; }
.gec-back{ display:inline-block; width:max-content; padding:8px 12px; border-radius:10px; border:1px solid #e5e5e5; text-decoration:none; }
.gec-single-title{ margin:0; font-size:1.45em !important; line-height:1.25; }
.gec-single-title{ margin:0; font-size:1.45em !important; line-height:1.25; }
.gec-single-when{ margin-bottom: 12px; }
.gec-single-location{ margin-top: 12px; margin-bottom: 12px; padding: 12px; border: 1px solid #e5e5e5; border-radius: 12px; }

/* Calendar */
.gec-calendar{ border:1px solid #e5e5e5; border-radius:12px; padding:14px; }
.gec-cal-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.gec-cal-title{ font-weight:700; font-size:1.1em; }
.gec-cal-prev, .gec-cal-next{ padding:8px 12px; border-radius:10px; border:1px solid #222; background:transparent; cursor:pointer; }
.gec-cal-dow{ display:grid; grid-template-columns:repeat(7, 1fr); gap:8px; margin-bottom:8px; }
.gec-cal-dow-cell{ font-weight:700; font-size:0.95em; opacity:0.8; text-align:center; }
.gec-cal-grid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:8px; }
.gec-cal-cell{ border:1px solid #e5e5e5; border-radius:12px; padding:8px; min-height:90px; }
.gec-cal-other{ opacity:0.45; }
.gec-cal-date{ font-weight:800; margin-bottom:6px; font-size:0.95em; opacity:0.9; }
.gec-cal-ev{ font-size:0.7em; line-height:1.2; margin-bottom:3px; }
.gec-cal-ev a{ text-decoration:none; }
.gec-cal-ev a:hover{ text-decoration:underline; }

/* Status labels */
.gec-cancelled-label{
  color:#b00020;
  font-weight:800;
  letter-spacing:0.6px;
  text-transform:uppercase;
  margin:0 0 4px 0;
}

.gec-featured-label{
  display:inline-block;
  font-weight:900;
  letter-spacing:1px;
  text-transform:uppercase;
  margin:0 0 6px 0;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid #222;
  background:#fff7d6;
}

.gec-pill-cancelled{
  border-color:#b00020;
}
.gec-pill-cancelled .gec-pill-value{
  color:#b00020;
}

.gec-pill-featured{
  border-color:#222;
}

/* Prominent Featured badge (single view pill) */
.gec-pill-featured-prominent{
  font-weight:900;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:7px 12px;
  background:#fff7d6;
  border:2px solid #222;
  box-shadow:none;
}
.gec-pill-featured-prominent::before{
  content:"★";
  display:inline-block;
  margin-right:6px;
}

/* Embedded video */
.gec-video-wrap{
  margin: 12px 0;
  padding: 12px;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
}
.gec-video-embed iframe{
  width: 100% !important;
  max-width: 100% !important;
}

/* Multi-day indicator */
.gec-cal-ev-multi a { font-style: italic; }


/* Phase 3 UI tweaks */
.gec-events-wrap,
.gec-calendar-wrap,
.gec-single-wrap,
.gec-wrap {
  margin-top: 25px;
}
/* Layout container width */
.gec-events-wrap,
.gec-calendar-wrap,
.gec-single-wrap{
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
  box-sizing: border-box;
}


.gec-events-wrap h2,
.gec-calendar-wrap h2,
.gec-single-wrap h2 {
  font-size: 1.35rem;
  line-height: 1.35;
  margin: 0 0 10px 0;
}

.gec-events-wrap h3,
.gec-calendar-wrap h3,
.gec-single-wrap h3 {
  font-size: 1.1rem;
  line-height: 1.25;
  margin: 0 0 8px 0;
}

.gec-filters-toggle {
  display: inline-block;
  padding: 8px 12px;
  border: 1px solid rgba(0,0,0,0.15);
  border-radius: 8px;
  cursor: pointer;
  background: rgba(0,0,0,0.03);
  margin-bottom: 10px;
}

.gec-filters-panel {
  display: none;
  padding: 10px;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 10px;
  margin-bottom: 12px;
  background: rgba(0,0,0,0.02);
}

.gec-filters-panel.is-open {
  display: block;
}

.gec-date-label{ font-weight:700; margin-right:6px; }
.gec-date-sep{ margin:0 8px; opacity:0.6; }
.gec-recur-text{ display:inline-block; margin-left:10px; opacity:0.85; font-weight:600; }

.gec-location .gec-lbl{ font-weight:700; margin-right:6px; }
.gec-location .gec-val{ }
.gec-maplink{ margin-left:10px; font-weight:600; text-decoration:none; border:1px solid #e5e5e5; padding:3px 8px; border-radius:999px; }
.gec-maplink:hover{ text-decoration:underline; }

/* OpenStreetMap applet (Leaflet) */
.gec-osm-map{
  margin-top: 12px;
  height: 260px;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  overflow: hidden;
}

.gec-event h3.gec-title{ margin:0 0 8px 0; font-size:1.45em !important; line-height:1.25; }
.gec-event h3.gec-title a{ font-size:inherit; }

/* Widget view (minimal list + desktop tooltip) */
.gec-widget-wrap{ max-width: 1160px; margin-left:auto; margin-right:auto; padding-left:16px; padding-right:16px; box-sizing:border-box; }
.gec-widget-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.gec-widget-item{ position:relative; padding:12px; border:1px solid #e5e5e5; border-radius:12px; background:#fff; }
.gec-widget-card{ display:block; color:inherit; text-decoration:none; }
.gec-widget-card:focus{ outline:2px solid rgba(0,0,0,0.2); outline-offset:2px; border-radius:10px; }
.gec-widget-date{ font-size:0.9em; font-weight:700; opacity:0.75; margin-bottom:4px; }
.gec-widget-title{ font-size:1.15em; font-weight:800; line-height:1.25; }

/* Widget view: Featured star icon (uses the same featured yellow as other badges) */
.gec-widget-featured-star{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:8px;
  width:22px;
  height:22px;
  border-radius:999px;
  border:1px solid #222;
  background:#fff7d6;
  font-size:14px;
  line-height:1;
}

/* Toolbar (view toggle + optional sorting) */
.gec-toolbar{ display:flex; align-items:center; justify-content:flex-end; gap:10px; margin: 0 0 12px 0; flex-wrap:wrap; }
.gec-toolbar-left, .gec-toolbar-right{ display:flex; gap:10px; align-items:center; }
.gec-toolbar-center{ display:flex; gap:10px; align-items:center; margin-right:12px; }
.gec-quick-filter-btn{ display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; border-radius:10px; border:1px solid #1e73be; background:#1e73be; color:#fff; text-decoration:none; font-weight:800; line-height:1.2; }
.gec-quick-filter-btn:hover, .gec-quick-filter-btn:focus, .gec-quick-filter-btn.is-active{ background:#155a96; border-color:#155a96; color:#fff; text-decoration:none; }
@media (max-width: 640px){ .gec-toolbar{ justify-content:flex-start; } .gec-toolbar-center{ width:100%; margin-right:0; } .gec-quick-filter-btn{ flex:1 1 auto; } }
.gec-toolbar-btn{ display:inline-flex; align-items:center; justify-content:center; padding:10px 12px; border-radius:10px; border:1px solid #e5e5e5; background:#fff; color:#1e73be; text-decoration:none; font-weight:800; }
.gec-toolbar-btn svg{ width:18px; height:18px; display:block; }
.gec-toolbar-btn:hover{ border-color:#1e73be; }
.gec-toolbar-btn.is-active{ border-color:#1e73be; background:#1e73be; color:#fff; }

/* Calendar hover card (desktop) */
.gec-cal-ev{ position:relative; }
.gec-cal-ico{ display:inline-flex; align-items:center; justify-content:center; margin-right:4px; vertical-align:middle; color:inherit; }
.gec-cal-ico svg{ width:14px; height:14px; display:block; }
.gec-cal-tooltip{ display:none; position:absolute; left:0; top:100%; margin-top:8px; width:min(560px, calc(100vw - 32px)); z-index:999; pointer-events:none; }
.gec-cal-tooltip-inner{ padding:14px; border:1px solid #e5e5e5; border-radius:12px; background:#fff; box-shadow:none; }
@media (min-width: 900px){
  .gec-cal-ev:hover .gec-cal-tooltip{ display:block; }
}

/* Small recurring icon (used in list + widget) */
.gec-ico{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:999px; border:1px solid #e5e5e5; line-height:1; opacity:0.9; vertical-align:middle; }
.gec-ico svg{ width:14px; height:14px; display:block; }

/* Tooltip behavior: enabled only for viewports >= 900px */
.gec-widget-tooltip{ display:none; position:absolute; left:0; top:100%; margin-top:10px; width:min(560px, calc(100vw - 32px)); z-index:999;  pointer-events:none }
.gec-widget-tooltip-link{ display:block; text-decoration:none; }
.gec-widget-tooltip-inner{ padding:14px; border:1px solid #e5e5e5; border-radius:12px; background:#fff; box-shadow:none; }
.gec-widget-tip-title{ font-weight:900; font-size:1.05em; margin:0 0 8px 0; }
.gec-widget-tip-status{
  display:flex;
  gap:8px;
  margin:-2px 0 8px 0;
  align-items:center;
  flex-wrap:wrap;
}
.gec-widget-tip-status .gec-featured-label,
.gec-widget-tip-status .gec-cancelled-label{
  display:inline-flex;
  align-items:center;
}

.gec-widget-tip-cta{ margin-top:10px; font-weight:800; opacity:0.85; text-decoration:underline; }

@media (min-width: 900px){
  .gec-widget-item:hover .gec-widget-tooltip{ display:block; }
}

@media (max-width: 899px){
  .gec-widget-tooltip{ display:none !important; }
}


/* Calendar: featured icon and one-time/recurring markers */
.gec-cal-ev a .gec-ico-featured{
  margin-right:6px;
  transform: translateY(1px);
}
.gec-ico-cancelled{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  margin-right:6px;
  border-radius:50%;
  background: var(--gec-blue, #1f6feb);
  color:#ffffff;
  font-weight:800;
  font-size:12px;
  line-height:1;
  transform: translateY(-1px);
}

.gec-cal-ev a .gec-ico-featured svg{
  width:14px;
  height:14px;
}

/* Orientation hint for small portrait viewports */
.gec-orientation-notice{
  margin:10px 0 12px;
  border:1px solid rgba(0,0,0,0.12);
  border-radius:12px;
  background:rgba(0,0,0,0.03);
  color:inherit;
}
.gec-orientation-inner{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 12px;
}
.gec-orientation-title{
  font-weight:700;
  color:var(--gec-accent, #1e5aa8);
  flex:0 0 auto;
}
.gec-orientation-text{
  flex:1 1 auto;
  line-height:1.35;
  font-size:14px;
}
.gec-orientation-dismiss{
  flex:0 0 auto;
  border:0;
  background:transparent;
  color:inherit;
  font-size:20px;
  line-height:1;
  padding:2px 6px;
  border-radius:10px;
  cursor:pointer;
}
.gec-orientation-dismiss:hover{
  background:rgba(0,0,0,0.06);
}


/* Maintenance mode */
.gec-maintenance-wrap{
  margin: 18px 0;
}
.gec-maintenance-inner{
  background: #f5f9fd;
  border: 1px solid #d8e7f5;
  border-radius: 18px;
  padding: 45px;
  box-sizing: border-box;
  box-shadow:none;
}
.gec-maintenance-title{
  margin: 0 0 12px 0;
  font-size: 1.55em !important;
  line-height: 1.25;
}
.gec-maintenance-message{
  font-size: 1.05em;
  line-height: 1.65;
}
.gec-maintenance-message p:first-child{ margin-top:0; }
.gec-maintenance-message p:last-child{ margin-bottom:0; }

/* v1.4.34: keep calendar hover cards inside the viewport on right-side calendar cells */
.gec-cal-cell:nth-child(7n) .gec-cal-tooltip,
.gec-cal-cell:nth-child(7n-1) .gec-cal-tooltip{
  left:auto;
  right:0;
}
.gec-cal-cell:nth-child(7n) .gec-cal-tooltip-inner,
.gec-cal-cell:nth-child(7n-1) .gec-cal-tooltip-inner{
  text-align:left;
}

/* v1.4.34: full event details area now sits below the title/description with a clear gap */
.gec-single-location{
  margin-top:45px;
}

/* v1.4.34: custom URL buttons */
.gec-custom-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:12px 0;
}
.gec-custom-link-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:999px;
  background:#1e73be;
  border:1px solid #1e73be;
  color:#fff;
  font-weight:800;
  line-height:1.2;
  text-decoration:none;
}
.gec-custom-link-btn:hover,
.gec-custom-link-btn:focus{
  background:#155a96;
  border-color:#155a96;
  color:#fff;
  text-decoration:none;
}

/* v1.4.35: highlighted single-event notice */
.gec-event-highlight-notice{
  margin: 0 0 16px 0;
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid rgba(30,115,190,0.22);
  background: rgba(30,115,190,0.08);
  font-weight: 800;
  line-height: 1.45;
  color: #163f63;
}

/* v1.4.36: spacing between date/time/meta area and event body */
.gec-single-content{
  margin-top:45px;
}

/* v1.4.36: custom URL buttons sit below event body only when present */
.gec-single-custom-links{
  margin-top:45px;
  margin-bottom:0;
}

/* AJAX widget paging / mobile swipe */
.gec-widget-wrap[data-gec-widget="1"]{ position:relative; touch-action:pan-y; }
.gec-widget-wrap.is-loading{ opacity:.55; pointer-events:none; transition:opacity .18s ease; }
.gec-widget-list{ transition:transform .22s ease, opacity .22s ease; }
.gec-widget-wrap.is-loading[data-gec-slide="next"] .gec-widget-list{ transform:translateX(-18px); opacity:.55; }
.gec-widget-wrap.is-loading[data-gec-slide="prev"] .gec-widget-list{ transform:translateX(18px); opacity:.55; }


/* v1.4.44: date/time/recurring line breaks */
.gec-when .gec-time-line,
.gec-single-when .gec-time-line{
  display:block;
  margin-top:4px;
}
.gec-when .gec-recur-text,
.gec-single-when .gec-recur-text{
  display:block;
  margin-top:4px;
  font-size:12px;
  font-style:italic;
  opacity:.85;
}


/* List view category sidebar */
.gec-list-layout{
  display:grid;
  grid-template-columns:minmax(0, 2fr) minmax(260px, 1fr);
  gap:24px;
  align-items:start;
}
.gec-list-main{ min-width:0; }
.gec-list-sidebar{ min-width:0; }
.gec-list-sidebar-inner{
  border:1px solid #e5e5e5;
  border-radius:12px;
  padding:16px;
  background:#fafafa;
  position:sticky;
  top:24px;
}
.gec-list-sidebar-title{
  margin:0 0 12px 0 !important;
  font-size:1.15rem !important;
  line-height:1.25;
}
.gec-list-sidebar-buttons{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.gec-sidebar-cat-btn{
  width:100%;
  box-sizing:border-box;
  text-align:center;
}
.gec-list-sidebar-feed{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #e5e5e5;
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:0.92em;
}
.gec-sidebar-feed-link{
  color:#1e73be;
  text-decoration:none;
  font-weight:700;
}
.gec-sidebar-feed-link:hover{ text-decoration:underline; }

@media (max-width: 1024px) and (orientation: portrait), (max-width: 899px){
  .gec-list-layout{ display:block; }
  .gec-list-sidebar{ display:none; }
}

/* v1.4.55: single event details always uses two-column layout */
.gec-single-detail-layout{
  margin-top:45px;
  display:grid;
  grid-template-columns:minmax(0, 2fr) minmax(260px, 1fr);
  gap:28px;
  align-items:start;
}
.gec-single-detail-main{ min-width:0; }
.gec-single-detail-sidebar{ min-width:0; }
.gec-single-featured-image{
  margin:0 0 18px 0;
}
.gec-single-featured-image img{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
  border:1px solid #e5e5e5;
  box-shadow:none;
  padding:5px;
  box-sizing:border-box;
}
.gec-map-icon-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-left:8px;
  border-radius:999px;
  text-decoration:none;
  font-size:18px;
  line-height:1;
}
.gec-single-detail-sidebar .gec-single-location{
  margin-top:0;
}
.gec-single-detail-layout .gec-single-content{
  margin-top:0;
}
.gec-single-detail-layout .gec-video-wrap{
  margin-top:0;
}
@media (max-width: 899px){
  .gec-single-detail-layout{
    display:block;
  }
  .gec-single-detail-sidebar{
    margin-top:24px;
  }
}

/* v1.4.58 event detail accordion and sponsor output. */
.gec-event-detail-accordion { margin: 1.25rem 0; }
.gec-event-detail-tab { border: 1px solid rgba(0,0,0,.12); margin-bottom: .5rem; background: #fff; }
.gec-event-detail-tab summary { cursor: pointer; padding: .85rem 1rem; font-weight: 700; text-align: left; text-transform: uppercase; }
.gec-event-detail-tab-content { padding: 0 1rem 1rem; }
.gec-sponsors-public { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin: 1.25rem 0; }
.gec-sponsor-public { max-width: 180px; }
.gec-sponsor-logo { max-width: 100%; height: auto; }
.gec-sponsor-label { font-weight: 700; font-size: .85rem; text-transform: uppercase; margin-bottom: .35rem; }
.gec-service-dogs-note { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid rgba(0,0,0,.12); background: #fff; }

/* v1.4.59: Pre-registration and sidebar panels. */
.gec-pre-registration-box{padding:18px 20px;margin:0 0 20px;border-radius:8px;box-sizing:border-box}
.gec-pre-registration-box p:last-child{margin-bottom:0}
.gec-sidebar-panel{margin-top:12px;padding:16px;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:rgba(255,255,255,.92)}
.gec-sidebar-panel h3{margin:0 0 10px;font-size:1.05rem;line-height:1.25}
.gec-sidebar-button-list{display:flex;flex-wrap:wrap;gap:8px}
.gec-sidebar-button-list .gec-custom-link-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.gec-sidebar-panel-content p:last-child{margin-bottom:0}

/* v1.4.60: Featured event grouping and homepage carousel. */
.gec-featured-events-box{
  border:1px solid rgba(30,115,190,.22);
  background:rgba(30,115,190,.055);
  border-radius:12px;
  padding:16px;
  margin:0 0 22px;
}
.gec-regular-events-box{
  margin-top:18px;
}
.gec-section-title{
  margin:0 0 14px !important;
  font-size:1.35rem !important;
  line-height:1.25;
  text-align:left;
}
.gec-featured-events-box .gec-events,
.gec-regular-events-box .gec-events{
  margin-bottom:0;
}
.gec-featured-carousel-wrap{
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  padding:0;
  box-sizing:border-box;
}
.gec-featured-carousel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.gec-featured-carousel-title{
  margin:0 !important;
  font-size:1.45rem !important;
  line-height:1.25;
}
.gec-featured-carousel-nav{
  display:flex;
  gap:8px;
}
.gec-featured-carousel-nav button{
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  cursor:pointer;
  font-size:24px;
  line-height:1;
}
.gec-featured-carousel-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:2px 2px 12px;
  -webkit-overflow-scrolling:touch;
}
.gec-featured-carousel-card{
  flex:0 0 min(340px, 86vw);
  scroll-snap-align:start;
  border:1px solid rgba(0,0,0,.12);
  border-radius:12px;
  padding:16px;
  background:rgba(250,250,250,.95);
  box-sizing:border-box;
}
.gec-featured-carousel-card h3{
  margin:0 0 10px !important;
  font-size:1.15rem !important;
  line-height:1.25;
}
.gec-featured-carousel-card h3 a{
  text-decoration:none;
}
.gec-featured-carousel-meta{
  margin:7px 0;
  font-size:.95em;
}
.gec-featured-carousel-meta .gec-time-line{
  display:inline;
}
.gec-featured-full-details{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:10px;
  padding:8px 12px;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
  border:1px solid currentColor;
}
@media (max-width: 640px){
  .gec-featured-carousel-head{align-items:flex-start;}
  .gec-featured-carousel-nav button{width:34px;height:34px;}
}

/* Featured events carousel refinements */
.gec-featured-carousel-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:0;
  min-height:100%;
}
.gec-featured-carousel-image-link{
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:rgba(0,0,0,.04);
  border-radius:12px 12px 0 0;
}
.gec-featured-carousel-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.gec-featured-carousel-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  padding:16px;
}
.gec-featured-carousel-date{
  margin:7px 0 0;
  font-size:.98rem;
  line-height:1.35;
}
.gec-featured-carousel-time{
  margin:2px 0 0;
  font-size:.82rem;
  line-height:1.35;
  opacity:.78;
}
.gec-featured-carousel-summary{
  margin:12px 0 0;
  font-size:.92rem;
  line-height:1.35;
}
.gec-featured-full-details{
  align-self:flex-start;
  margin-top:auto;
  padding:6px 11px;
  border-radius:7px;
  border:1px solid #1e73be;
  background:#1e73be;
  color:#fff !important;
  font-size:.82rem;
  line-height:1.15;
  font-weight:700;
  text-decoration:none !important;
}
.gec-featured-full-details:hover,
.gec-featured-full-details:focus{
  background:#155a96;
  border-color:#155a96;
  color:#fff !important;
}


/* Featured carousel: full-card link and integrated corner button */
.gec-featured-carousel-card{
  position:relative;
  color:inherit;
  text-decoration:none !important;
  cursor:pointer;
  transition:box-shadow .18s ease, transform .18s ease;
}
.gec-featured-carousel-card:hover,
.gec-featured-carousel-card:focus{
  color:inherit;
  text-decoration:none !important;
  box-shadow:none;
  transform:translateY(-1px);
}
.gec-featured-carousel-card h3{
  color:inherit;
}
.gec-featured-carousel-body{
  padding-bottom:56px;
}
.gec-featured-full-details{
  position:absolute;
  right:14px;
  bottom:14px;
  margin-top:0;
  pointer-events:none;
}
.gec-featured-carousel-card:hover .gec-featured-full-details,
.gec-featured-carousel-card:focus .gec-featured-full-details{
  background:#155a96;
  border-color:#155a96;
}


/* Featured carousel: no heading and angled corner CTA */
.gec-featured-carousel-head{
  justify-content:flex-end;
  margin-bottom:10px;
}
.gec-featured-carousel-title{
  display:none !important;
}
.gec-featured-carousel-card{
  overflow:hidden;
}
.gec-featured-carousel-body{
  padding-bottom:58px;
}
.gec-featured-full-details{
  right:0;
  bottom:0;
  padding:10px 16px 10px 24px;
  border:0;
  border-radius:0;
  background:#0b4f8a;
  color:#fff !important;
  line-height:1;
  letter-spacing:.01em;
  clip-path:polygon(14px 0, 100% 0, 100% 100%, 0 100%);
  box-shadow:none;
}
.gec-featured-carousel-card:hover .gec-featured-full-details,
.gec-featured-carousel-card:focus .gec-featured-full-details{
  background:#083f6e;
  border-color:transparent;
}

/* Featured carousel: compact centered controls under card */
.gec-featured-carousel-head{
  display:none !important;
}
.gec-featured-carousel-track{
  padding:2px 2px 6px;
}
.gec-featured-carousel-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:6px 0 0;
  padding:0;
  line-height:1;
}
.gec-featured-carousel-controls .gec-featured-prev,
.gec-featured-carousel-controls .gec-featured-next{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  min-width:18px;
  min-height:18px;
  padding:0;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#0b4f8a;
  font-size:20px;
  font-weight:800;
  line-height:18px;
  cursor:pointer;
  box-shadow:none;
}
.gec-featured-carousel-controls .gec-featured-prev:hover,
.gec-featured-carousel-controls .gec-featured-next:hover,
.gec-featured-carousel-controls .gec-featured-prev:focus,
.gec-featured-carousel-controls .gec-featured-next:focus{
  color:#083f6e;
  background:transparent;
  outline:1px solid rgba(11,79,138,.25);
  outline-offset:2px;
}
.gec-featured-carousel-dots{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  line-height:1;
}
.gec-featured-dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:9px;
  height:9px;
  padding:0;
  margin:0;
  border:0;
  border-radius:999px;
  background:transparent;
  cursor:default;
  box-shadow:none;
}
.gec-featured-dot span{
  display:block;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#0b4f8a;
  opacity:.35;
}
.gec-featured-dot.is-active span{
  opacity:1;
}

/* v1.4.63: tighter commercial card/panel curve system */
.gec-event,
.gec-filters,
.gec-page-list,
.gec-page-item a,
.gec-page-item span,
.gec-none,
.gec-meta-row,
.gec-single-location,
.gec-calendar,
.gec-cal-cell,
.gec-list-sidebar-inner,
.gec-cal-tooltip-inner,
.gec-widget-tooltip-inner,
.gec-event-detail-tab,
.gec-service-dogs-note,
.gec-pre-registration-box,
.gec-sidebar-panel,
.gec-featured-events-box,
.gec-featured-carousel-card,
.gec-maintenance-inner{
  border-radius:6px;
}
.gec-single-featured-image img,
.gec-featured-carousel-image-link{
  border-radius:6px 6px 0 0;
}
.gec-list-sidebar-inner,
.gec-single-location,
.gec-event-detail-tab,
.gec-service-dogs-note,
.gec-sidebar-panel,
.gec-featured-events-box,
.gec-featured-carousel-card,
.gec-cal-tooltip-inner,
.gec-widget-tooltip-inner{
  border:1px solid #dddddd;
  box-shadow:none;
}
.gec-event-detail-tab,
.gec-sidebar-panel,
.gec-featured-carousel-card{
  background:#ffffff;
}
.gec-sidebar-panel,
.gec-event-detail-tab-content,
.gec-service-dogs-note,
.gec-list-sidebar-inner{
  padding:18px 20px;
}
.gec-event-detail-tab summary{
  margin:-18px -20px 0;
  padding:14px 20px;
}
.gec-event-detail-tab-content{
  padding-top:0;
}
.gec-sponsors-public{
  gap:18px;
}
.gec-sponsor-logo{
  border-radius:4px;
}
.gec-btn,
.gec-cal-prev,
.gec-cal-next,
.gec-quick-filter-btn,
.gec-toolbar-btn,
.gec-custom-link-btn,
.gec-back,
.gec-maplink,
.gec-sidebar-cat-btn{
  border-radius:0;
}
.gec-featured-full-details{
  border-radius:0 !important;
  right:0;
  bottom:0;
  padding:10px 16px 10px 26px;
  clip-path:polygon(18px 0, 100% 0, 100% 100%, 0 100%);
}


/* v1.4.64: map/phone/sidebar spacing and reliable mobile tel links */
.gec-single-location .gec-phone{
  margin-top:20px;
}
.gec-single-detail-sidebar .gec-sidebar-panel{
  margin-top:16px;
}
.gec-single-detail-sidebar .gec-single-location + .gec-sidebar-panel{
  margin-top:16px;
}

/* v1.4.65: restore accordion title spacing and dark tab title bars */
.gec-event-detail-tab{
  overflow:hidden;
}
.gec-event-detail-tab summary{
  margin:0;
  padding:14px 20px;
  background:#0b3f75;
  color:#ffffff;
  font-weight:700;
  text-align:left;
  text-transform:uppercase;
  cursor:pointer;
  transition:background-color .18s ease,color .18s ease;
}
.gec-event-detail-tab summary:hover,
.gec-event-detail-tab summary:focus{
  background:#000000;
  color:#ffffff;
  font-weight:700;
}
.gec-event-detail-tab-content{
  padding:18px 20px;
}
.gec-event-detail-tab-content > :first-child{
  margin-top:0;
}
.gec-event-detail-tab-content > :last-child{
  margin-bottom:0;
}


/* v1.4.66: featured carousel corner CTA text treatment */
.gec-featured-full-details{
  font-size:12px !important;
  font-weight:600 !important;
  text-transform:capitalize;
  background:#0b4f8a;
  color:#ffffff !important;
  transition:background-color .2s ease,color .2s ease;
}
.gec-featured-carousel-card:hover .gec-featured-full-details,
.gec-featured-carousel-card:focus .gec-featured-full-details{
  background:#000000 !important;
  color:#ffffff !important;
  border-color:transparent;
}
.gec-featured-carousel-controls .gec-featured-prev:hover,
.gec-featured-carousel-controls .gec-featured-next:hover,
.gec-featured-carousel-controls .gec-featured-prev:focus,
.gec-featured-carousel-controls .gec-featured-next:focus{
  color:#000000;
}
.gec-featured-dot span{
  transition:background-color .2s ease, opacity .2s ease;
}
.gec-featured-dot.is-active span{
  background:#0b4f8a;
}

/* v1.4.67: Match announcement blue and fix mobile/tablet carousel sizing */
.gec-featured-full-details,
.gec-featured-carousel-card:hover .gec-featured-full-details,
.gec-featured-carousel-card:focus .gec-featured-full-details{
  background:#002F55 !important;
  border-color:#002F55 !important;
  color:#ffffff !important;
  box-shadow:none !important;
}
.gec-featured-carousel-card{
  box-shadow:none !important;
  transition:border-color .18s ease, background-color .18s ease !important;
}
.gec-featured-carousel-card:hover,
.gec-featured-carousel-card:focus,
.gec-featured-carousel-card:focus-within{
  border-color:#002F55 !important;
  box-shadow:none !important;
  transform:none !important;
}
.gec-featured-carousel-track{
  box-sizing:border-box;
}
@media (max-width:1024px), (orientation:portrait){
  .gec-featured-carousel-track{
    width:100%;
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .gec-featured-carousel-card{
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }
}


/* v1.4.68: event detail View Calendar button and corrected blue/black button states */
.gec-featured-full-details{
  background:#002F55 !important;
  border-color:#002F55 !important;
  color:#ffffff !important;
  box-shadow:none !important;
}
.gec-featured-carousel-card:hover .gec-featured-full-details,
.gec-featured-carousel-card:focus .gec-featured-full-details,
.gec-featured-carousel-card:focus-within .gec-featured-full-details,
.gec-featured-full-details:hover,
.gec-featured-full-details:focus{
  background:#000000 !important;
  border-color:#000000 !important;
  color:#ffffff !important;
  box-shadow:none !important;
}
.gec-single-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.gec-view-calendar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  padding:8px 12px;
  border:1px solid #002F55 !important;
  background:#002F55 !important;
  color:#ffffff !important;
  text-decoration:none !important;
  border-radius:0;
  font-weight:700;
  line-height:1.2;
  text-transform:uppercase;
  box-shadow:none !important;
  transition:background-color .25s ease, border-color .25s ease, color .25s ease;
}
.gec-view-calendar:hover,
.gec-view-calendar:focus{
  background:#000000 !important;
  border-color:#000000 !important;
  color:#ffffff !important;
  box-shadow:none !important;
  text-decoration:none !important;
}
.gec-back{
  box-shadow:none !important;
}
@media (max-width:1024px), (orientation:portrait){
  .gec-single-actions{
    width:100%;
  }
  .gec-back,
  .gec-view-calendar{
    box-sizing:border-box;
  }
}
