/*
 * Canonical public calendar UI
 * Calendar page is fully scoped under .sgg-calendar-page.
 * Embedded profile/taxonomy calendar keeps its own isolated presentation below.
 */

/* 01. Calendar tokens / shared ------------------------------------------------ */
.sgg-calendar-page {
  --calendar-ink:#171717;
  --calendar-muted:#6f6f69;
  --calendar-soft:#92918b;
  --calendar-border:#e3e2dd;
  --calendar-border-strong:#d4d3cd;
  --calendar-surface:#fff;
  --calendar-surface-soft:#f7f7f4;
  --calendar-page:#faf9f5;
  --calendar-success:#155c3c;
  --calendar-success-bg:#f1f7f3;
  --calendar-radius:18px;
  --calendar-section-gap:22px;
  --calendar-area-gap:18px;
  --sgg-calendar-context-sticky-top:178px;
  color:var(--calendar-ink);
  background:transparent;
  font-family:'Figtree',sans-serif;
}
.sgg-calendar-page *,
.sgg-calendar-page *::before,
.sgg-calendar-page *::after { box-sizing:border-box; }
.sgg-calendar-page * { min-width:0; }
.sgg-calendar-page [hidden] { display:none!important; }
.sgg-calendar-page .sgg-calendar-shell { padding-top:112px; padding-bottom:72px; }
.sgg-calendar-page .sgg-calendar-hero {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:36px;
  max-width:1380px;
  margin:0 auto;
  padding:22px 0 0;
}
.sgg-calendar-page .sgg-calendar-hero .fsg-facility-hero-copy { width:100%; max-width:none; }
.sgg-calendar-page .fsg-eyebrow {
  margin:0 0 9px!important;
  color:#6d7178!important;
  font-size:.76rem!important;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sgg-calendar-page .sgg-calendar-hero h1 { margin:8px 0 12px; color:#000; letter-spacing:-.045em; line-height:1.02; }
.sgg-calendar-page .fsg-landing-lead { max-width:790px; margin:0; color:#5d6168; font-size:clamp(1rem,1.35vw,1.15rem); line-height:1.65; }
.sgg-calendar-page .sgg-calendar-summary { margin:14px 0 0; color:#777772; font-size:13px; font-weight:700; }

.sgg-calendar-page .sgg-directory-shortcut {
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:40px;
  padding:9px 14px;
  border:1px solid var(--calendar-border);
  border-radius:999px;
  background:#fff;
  color:#20201e;
  font:700 13px/1 'Figtree',sans-serif;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,color .15s ease;
}
.sgg-calendar-page .sgg-directory-shortcut:hover,
.sgg-calendar-page .sgg-directory-shortcut.is-active,
.sgg-calendar-page .sgg-directory-shortcut.active { border-color:var(--calendar-ink); background:var(--calendar-ink); color:#fff; }
.sgg-calendar-page .sgg-directory-shortcut span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  background:var(--calendar-ink);
  color:#fff;
  font-size:10px;
}
.sgg-calendar-page .sgg-directory-shortcut:hover span,
.sgg-calendar-page .sgg-directory-shortcut.is-active span,
.sgg-calendar-page .sgg-directory-shortcut.active span { background:#fff; color:var(--calendar-ink); }

/* 02. Date navigation --------------------------------------------------------- */
.sgg-calendar-page .sgg-calendar-date-sticky {
  --sgg-calendar-sticky-top:78px;
  position:sticky;
  top:var(--sgg-calendar-sticky-top);
  z-index:1028;
  max-width:1380px;
  margin:12px auto 0;
  padding:8px 0 10px;
  background:var(--calendar-page);
  box-shadow:0 1px 0 rgba(23,23,23,.07);
}
.sgg-calendar-page .ks-cal-strip {
  display:flex;
  align-items:stretch;
  gap:9px;
  margin:0;
  padding:0;
  overflow-x:auto;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:smooth;
}
.sgg-calendar-page .ks-cal-strip::-webkit-scrollbar { display:none; }
.sgg-calendar-page .ks-cal-day {
  appearance:none;
  position:relative;
  flex:1 1 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  min-width:0;
  min-height:80px;
  padding:6px 4px;
  border:1px solid #dddcd7;
  border-radius:15px;
  background:var(--calendar-surface-soft);
  box-shadow:none;
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,color .15s ease;
}
.sgg-calendar-page .ks-cal-day:hover { border-color:#bcbab3; background:#f1f1ee; }
.sgg-calendar-page .ks-cal-day.active,
.sgg-calendar-page .ks-cal-day.is-active { border-color:var(--calendar-ink); background:var(--calendar-ink); }
.sgg-calendar-page .ks-cal-day:disabled { opacity:1; background:#fff; cursor:default; pointer-events:none; }
.sgg-calendar-page .ks-cal-day:disabled .ks-cal-wd,
.sgg-calendar-page .ks-cal-day:disabled .ks-cal-num,
.sgg-calendar-page .ks-cal-day:disabled .ks-cal-mo,
.sgg-calendar-page .ks-cal-day:disabled .ks-cal-ct { opacity:.32; }
.sgg-calendar-page .ks-cal-wd { color:#8e9197; font-size:11px; font-weight:750; line-height:1; letter-spacing:.05em; text-transform:uppercase; }
.sgg-calendar-page .ks-cal-num { color:#111; font-size:23px; font-weight:800; line-height:1.12; }
.sgg-calendar-page .ks-cal-mo { color:#9b9b96; font-size:10px; font-weight:650; line-height:1; letter-spacing:.03em; text-transform:uppercase; }
.sgg-calendar-page .ks-cal-ct {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:21px;
  height:17px;
  margin-top:3px;
  padding:0 6px;
  border-radius:999px;
  background:#e5e5e1;
  color:#676761;
  font-size:10px;
  font-weight:800;
}
.sgg-calendar-page .ks-cal-day.active .ks-cal-wd,
.sgg-calendar-page .ks-cal-day.is-active .ks-cal-wd { color:rgba(255,255,255,.6); }
.sgg-calendar-page .ks-cal-day.active .ks-cal-num,
.sgg-calendar-page .ks-cal-day.is-active .ks-cal-num { color:#fff; }
.sgg-calendar-page .ks-cal-day.active .ks-cal-mo,
.sgg-calendar-page .ks-cal-day.is-active .ks-cal-mo { color:rgba(255,255,255,.5); }
.sgg-calendar-page .ks-cal-day.active .ks-cal-ct,
.sgg-calendar-page .ks-cal-day.is-active .ks-cal-ct { background:rgba(255,255,255,.16); color:#fff; }
.sgg-calendar-page .ks-cal-day--today .ks-cal-wd { color:#1e7a52; }
.sgg-calendar-page .ks-cal-day--today::after { content:""; position:absolute; top:6px; right:6px; width:6px; height:6px; border-radius:50%; background:#1e7a52; }
.sgg-calendar-page .ks-cal-day--today.active::after,
.sgg-calendar-page .ks-cal-day--today.is-active::after { background:#fff; }

/* 03. Filters / view switch --------------------------------------------------- */
.sgg-calendar-page .sgg-calendar-filter-bar {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  max-width:1380px;
  margin:12px auto 0;
  padding:0;
  border:0;
}
.sgg-calendar-page .sgg-calendar-filter-drawer .sgg-filter-apply span { display:inline; min-width:0; height:auto; margin:0; padding:0; border-radius:0; background:transparent; color:inherit; font-size:inherit; }
.sgg-calendar-page .sgg-filter-option span small { display:block; margin-top:3px; color:#8a8a84; font-size:11px; font-weight:650; line-height:1.15; }

.sgg-calendar-page .sgg-calendar-viewbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  max-width:1380px;
  margin:16px auto 0;
  padding:16px 0 0;
  border-top:1px solid #ecebe7;
}
.sgg-calendar-page .sgg-calendar-viewbar-copy { display:flex; align-items:baseline; gap:9px; min-width:0; color:#777772; font-size:12px; }
.sgg-calendar-page .sgg-calendar-viewbar-copy strong { color:var(--calendar-ink); font-size:13px; font-weight:800; }
.sgg-calendar-page .sgg-calendar-view-switch { display:inline-flex; align-items:center; flex:0 0 auto; padding:3px; border:1px solid #deddd8; border-radius:999px; background:#f3f3f0; }
.sgg-calendar-page .sgg-calendar-view-option {
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  padding:8px 13px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#686862;
  font:750 12px/1 'Figtree',sans-serif;
  cursor:pointer;
  transition:background .15s ease,color .15s ease,box-shadow .15s ease;
}
.sgg-calendar-page .sgg-calendar-view-option i { font-size:13px; line-height:1; }
.sgg-calendar-page .sgg-calendar-view-option:hover { color:var(--calendar-ink); }
.sgg-calendar-page .sgg-calendar-view-option.is-active { background:var(--calendar-ink); color:#fff; box-shadow:0 1px 2px rgba(0,0,0,.08); }

/* 04. Day + group hierarchy --------------------------------------------------- */
.sgg-calendar-page .sgg-calendar-results { max-width:1380px; margin:32px auto 0; }
.sgg-calendar-page .sgg-calendar-day { margin:0; scroll-margin-top:190px; }
.sgg-calendar-page .sgg-calendar-day-header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin:0 0 20px;
  padding:0 2px 13px;
  border-bottom:1px solid #deddd8;
}
.sgg-calendar-page .sgg-calendar-day-header > div:first-child { display:flex; align-items:baseline; gap:9px; }
.sgg-calendar-page .sgg-calendar-day-header h2 { margin:0; color:var(--calendar-ink); font-size:22px; font-weight:800; letter-spacing:-.03em; }
.sgg-calendar-page .sgg-calendar-day-header .ks-day-date { color:#777772; font-size:13px; font-weight:650; }
.sgg-calendar-page .sgg-calendar-day-meta { display:flex; align-items:center; gap:8px; color:#777772; font-size:12px; font-weight:700; white-space:nowrap; }
.sgg-calendar-page .sgg-calendar-mini-pill { display:inline-flex; align-items:center; min-height:27px; padding:5px 9px; border:1px solid #deded9; border-radius:999px; background:#fff; color:var(--calendar-ink); font-size:11px; font-weight:800; }
.sgg-calendar-page .sgg-calendar-groups { display:block; }
.sgg-calendar-page .sgg-calendar-time-group { position:relative; margin-top:var(--calendar-section-gap); }
.sgg-calendar-page .sgg-calendar-time-group:first-child { margin-top:0; }
.sgg-calendar-page .sgg-calendar-area-group { position:relative; margin-top:var(--calendar-area-gap); scroll-margin-top:var(--sgg-calendar-context-sticky-top); }
.sgg-calendar-page .sgg-calendar-area-group:first-child { margin-top:0; }
.sgg-calendar-page .sgg-calendar-area-header {
  position:sticky;
  top:var(--sgg-calendar-context-sticky-top);
  z-index:24;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:40px;
  margin:0 0 10px;
  padding:8px 12px;
  border:1px solid #deddd8;
  border-radius:10px;
  background:#f1f1ee;
  box-shadow:0 1px 0 rgba(23,23,23,.025);
}
.sgg-calendar-page .sgg-calendar-area-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:0; min-width:0; }
.sgg-calendar-page .sgg-calendar-area-header h3 { margin:0; color:#252522; font-size:14.5px; font-weight:800; line-height:1.2; letter-spacing:-.01em; overflow-wrap:anywhere; }
.sgg-calendar-page .sgg-calendar-area-time { display:inline-flex; align-items:center; color:#73736d; font-size:12px; font-weight:650; line-height:1.2; white-space:nowrap; }
.sgg-calendar-page .sgg-calendar-area-time::before { content:"·"; margin:0 7px; color:#aaa9a3; font-weight:800; }
.sgg-calendar-page .sgg-calendar-area-count { flex:0 0 auto; color:#777772; font-size:11px; font-weight:720; white-space:nowrap; }

/* 05. Shared session content -------------------------------------------------- */
.sgg-calendar-page .sgg-calendar-card { min-width:0; background:#fff; color:var(--calendar-ink); }
.sgg-calendar-page .sgg-calendar-card[data-calendar-place-url] { cursor:pointer; }
.sgg-calendar-page .sgg-calendar-card-body { min-width:0; }
.sgg-calendar-page .ks-card-time {
  display:inline-flex;
  width:fit-content;
  min-height:34px;
  align-items:center;
  justify-content:flex-start;
  padding:6px 9px;
  border:1px solid #dddcd7;
  border-radius:9px;
  background:#f8f8f6;
  color:var(--calendar-ink);
  text-align:left;
  white-space:nowrap;
}
.sgg-calendar-page .sgg-calendar-time-range {
  color:var(--calendar-ink);
  font-size:15.5px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em;
}
.sgg-calendar-page .sgg-calendar-status {
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#6b6b65;
  font-size:11.5px;
  font-weight:720;
  line-height:1.25;
  white-space:normal;
  animation:none;
}
.sgg-calendar-page .sgg-calendar-status::before { content:""; width:6px; height:6px; flex:0 0 6px; border-radius:50%; background:#96958f; }
.sgg-calendar-page .sgg-calendar-status.ks-spots--available { border:0; background:transparent; color:#3e5f4e; }
.sgg-calendar-page .sgg-calendar-status.ks-spots--available::before { background:#347653; }
.sgg-calendar-page .sgg-calendar-status.ks-spots--unknown { border:0; background:transparent; color:#6b6b65; }
.sgg-calendar-page .sgg-calendar-status .bi-check-lg { display:none!important; }

.sgg-calendar-page .sgg-calendar-venue-block,
.sgg-calendar-page .sgg-calendar-session-block { min-width:0; }
.sgg-calendar-page .sgg-calendar-venue-block { display:flex; flex-direction:column; justify-content:center; gap:6px; }
.sgg-calendar-page .sgg-calendar-session-block { display:flex; flex-direction:column; justify-content:center; gap:5px; }
.sgg-calendar-page .sgg-calendar-venue-row { display:flex; align-items:center; gap:10px; min-height:40px; max-width:100%; margin:0; color:var(--calendar-ink); }
.sgg-calendar-page .sgg-calendar-venue-link { text-decoration:none; }
.sgg-calendar-page .sgg-calendar-venue-link:hover .sgg-calendar-venue { text-decoration:underline; text-underline-offset:3px; }
.sgg-calendar-page .sgg-calendar-venue-logo {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  flex:0 0 40px;
  overflow:hidden;
  border:1px solid #e2e1dc;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 2px rgba(255,255,255,.7);
}
.sgg-calendar-page .sgg-calendar-venue-logo img { display:block; width:100%; height:100%; max-width:none; max-height:none; border-radius:50%; object-fit:cover; object-position:center; opacity:1; filter:none; }
.sgg-calendar-page .sgg-calendar-venue-logo.is-fallback { border-color:#deddd8; background:#f0f0ec; color:#4d4d48; }
.sgg-calendar-page .sgg-calendar-venue-initials { font-size:11px; font-weight:850; line-height:1; letter-spacing:.015em; }
.sgg-calendar-page .sgg-calendar-venue { margin:0; color:#111; font-size:14.5px; font-weight:800; line-height:1.22; letter-spacing:-.012em; overflow-wrap:anywhere; }
.sgg-calendar-page .sgg-calendar-rating { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:1px 0 0; color:#171717; font-size:12px; line-height:1.2; }
.sgg-calendar-page .sgg-calendar-rating .pill-label { padding:4px 9px; font-size:11px; line-height:1; }
.sgg-calendar-page .sgg-calendar-rating .pill-rating { border:1px solid #227950!important; border-radius:4px!important; background:#227950!important; color:#fff!important; }
.sgg-calendar-page .sgg-calendar-rating strong { font-size:12px; font-weight:800; }
.sgg-calendar-page .sgg-calendar-rating .text-muted { color:#777772!important; font-size:11px!important; }
.sgg-calendar-page .ks-card-title { margin:0; color:var(--calendar-ink); font-size:16px; font-weight:800; line-height:1.28; letter-spacing:-.015em; overflow-wrap:anywhere; }
.sgg-calendar-page .sgg-calendar-location { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:0; color:#676761; font-size:12.5px; font-weight:650; line-height:1.35; }
.sgg-calendar-page .sgg-calendar-location > span { display:inline-flex; align-items:center; gap:5px; min-width:0; overflow-wrap:anywhere; }
.sgg-calendar-page .sgg-calendar-location i { flex:0 0 auto; color:#8a8a84; font-size:12px; }
.sgg-calendar-page .sgg-calendar-distance { color:#8b8b85; font-weight:700; white-space:nowrap; }
.sgg-calendar-page .sgg-calendar-distance::before { content:"·"; margin-right:4px; color:#aaa9a3; }
.sgg-calendar-page .sgg-calendar-card-meta { display:flex; flex-wrap:wrap; gap:5px; margin:1px 0 0; }
.sgg-calendar-page .sgg-calendar-card .ks-pill { display:inline-flex; align-items:center; min-height:24px; padding:4px 7px; border:1px solid #e8e7e2; border-radius:7px; background:#f5f5f2; color:#5a5a55; font-size:10.8px; font-weight:680; line-height:1.15; }
.sgg-calendar-page .sgg-calendar-card .ks-pill--price { border-color:#deddd8; background:#fff; color:#252522; font-weight:780; }
.sgg-calendar-page .sgg-calendar-card .ks-pill--hot { border-color:#eedbd2; background:#fbf3ef; color:#93482d; font-weight:760; }
.sgg-calendar-page .sgg-calendar-card .ks-pill--teacher { color:#464641; }
.sgg-calendar-page .sgg-calendar-primary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:41px;
  padding:9px 14px;
  border:1px solid var(--calendar-ink);
  border-radius:999px;
  background:var(--calendar-ink);
  color:#fff;
  font:760 13px/1 'Figtree',sans-serif;
  text-decoration:none;
  white-space:nowrap;
  transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.sgg-calendar-page .sgg-calendar-primary:hover { border-color:#000; background:#000; color:#fff; transform:translateY(-1px); }
.sgg-calendar-page .sgg-calendar-primary i,
.sgg-calendar-page .sgg-calendar-primary i::before { line-height:1; }

/* 06. Desktop list ------------------------------------------------------------ */
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-list-head {
  display:grid;
  grid-template-columns:148px minmax(220px,300px) minmax(300px,1fr) 116px;
  gap:16px;
  align-items:center;
  padding:0 14px 9px;
  color:#8a8a84;
  font-size:10px;
  font-weight:800;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-time-group:first-child { margin-top:22px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-grid {
  display:flex;
  flex-direction:column;
  gap:0;
  overflow:clip;
  border:1px solid #dfded9;
  border-radius:14px;
  background:#fff;
}
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:stretch;
  border:0;
  border-top:1px solid #ecebe7;
  border-radius:0;
  background:#fff;
  box-shadow:none;
  overflow:visible;
  transition:background .15s ease;
}
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card.has-booking { grid-template-columns:minmax(0,1fr) 116px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card:first-child { border-top:0; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card:hover { background:#fafaf7; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-body {
  display:grid;
  grid-template-columns:148px minmax(220px,300px) minmax(300px,1fr);
  column-gap:16px;
  align-items:center;
  min-width:0;
  min-height:84px;
  padding:13px 14px;
}
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .ks-card-time-row {
  grid-column:1;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:7px;
  min-width:0;
}
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .ks-card-time { align-self:flex-start; justify-self:start; min-width:72px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-status { align-self:flex-start; min-width:0; max-width:132px; margin:0; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-venue-block { grid-column:2; align-self:center; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-session-block { grid-column:3; align-self:center; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-footer { display:flex; align-items:center; justify-content:flex-end; margin:0; padding:14px 14px 14px 0; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-primary { width:102px; min-height:41px; padding:9px 11px; font-size:12.5px; }

/* 07. Desktop cards ----------------------------------------------------------- */
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-list-head { display:none; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; border:0; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card {
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #dfded9;
  border-radius:var(--calendar-radius);
  background:#fff;
  box-shadow:0 1px 0 rgba(17,17,17,.02);
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card:hover { border-color:#c9c7c0; box-shadow:0 10px 26px rgba(17,17,17,.055); transform:translateY(-1px); }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card-body { display:flex; flex:1; flex-direction:column; padding:17px 17px 11px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .ks-card-time-row { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:7px; margin-bottom:13px; padding-bottom:11px; border-bottom:1px solid #efeee9; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .ks-card-time { min-height:34px; padding:6px 9px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-venue-block { margin-bottom:12px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-venue-logo { width:42px; height:42px; flex-basis:42px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-venue { font-size:14.5px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-rating { margin:1px 0 0; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-session-block { gap:6px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .ks-card-title { font-size:17px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card-footer { margin-top:auto; padding:2px 17px 17px; }
.sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-primary { width:100%; min-height:44px; }

/* 08. Empty states / accessibility ------------------------------------------- */
.sgg-calendar-page .sgg-calendar-empty,
.sgg-calendar-page .sgg-calendar-filter-empty { max-width:620px; padding:42px 0 24px; }
.sgg-calendar-page .sgg-calendar-empty-icon,
.sgg-calendar-page .sgg-calendar-filter-empty > i { display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin-bottom:14px; border:1px solid var(--calendar-border); border-radius:50%; background:#fff; color:var(--calendar-ink); font-size:17px; }
.sgg-calendar-page .sgg-calendar-empty h2,
.sgg-calendar-page .sgg-calendar-filter-empty h2 { margin:0 0 8px; font-size:23px; font-weight:800; letter-spacing:-.03em; }
.sgg-calendar-page .sgg-calendar-empty p,
.sgg-calendar-page .sgg-calendar-filter-empty p { margin:0 0 17px; color:var(--calendar-muted); font-size:14px; line-height:1.55; }
.sgg-calendar-page button:focus-visible,
.sgg-calendar-page a:focus-visible { outline:2px solid var(--calendar-ink); outline-offset:3px; }

/* 09. Tablet ------------------------------------------------------------------ */
@media (max-width:1199.98px) {
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-list-head { grid-template-columns:140px minmax(190px,260px) minmax(250px,1fr) 106px; gap:14px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card.has-booking { grid-template-columns:minmax(0,1fr) 106px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-body { grid-template-columns:140px minmax(190px,260px) minmax(250px,1fr); column-gap:14px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-footer { padding-right:11px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-primary { width:94px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:991.98px) {
  .sgg-calendar-page .sgg-calendar-shell { padding-top:88px; padding-right:18px!important; padding-left:18px!important; }
  .sgg-calendar-page .sgg-calendar-hero { display:block; padding-top:14px; }
  .sgg-calendar-page .sgg-calendar-list-head { display:none!important; }
  .sgg-calendar-page .sgg-calendar-results { margin-top:28px; }

  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card.has-booking { grid-template-columns:minmax(0,1fr) 104px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-body {
    grid-template-columns:132px minmax(180px,.9fr) minmax(220px,1.1fr);
    column-gap:14px;
    min-height:92px;
    padding:14px;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .ks-card-time-row { grid-column:1; align-self:start; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-venue-block { grid-column:2; align-self:start; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-session-block { grid-column:3; align-self:start; }
}

/* 10. Mobile ------------------------------------------------------------------ */
@media (max-width:767.98px) {
  .sgg-calendar-page { --calendar-section-gap:18px; --calendar-area-gap:13px; }
  .sgg-calendar-page .sgg-calendar-shell { padding-right:14px!important; padding-bottom:48px; padding-left:14px!important; }
  .sgg-calendar-page .sgg-calendar-hero h1 { font-size:clamp(2rem,9vw,3rem); }

  /* Date strip stays compact and horizontal. */
  .sgg-calendar-page .sgg-calendar-date-sticky { margin-top:8px; padding:6px 0 8px; }
  .sgg-calendar-page .ks-cal-strip { gap:6px; scroll-padding-inline:2px; scroll-snap-type:x proximity; touch-action:pan-x; }
  .sgg-calendar-page .ks-cal-day { flex:0 0 auto; width:54px; min-height:70px; border-radius:12px; scroll-snap-align:start; }
  .sgg-calendar-page .ks-cal-wd { font-size:10px; }
  .sgg-calendar-page .ks-cal-num { font-size:20px; }
  .sgg-calendar-page .ks-cal-mo { font-size:9.5px; }
  .sgg-calendar-page .ks-cal-ct { min-width:20px; height:16px; font-size:10px; }

  .sgg-calendar-page .sgg-calendar-filter-bar { flex-wrap:nowrap; width:100%; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
  .sgg-calendar-page .sgg-calendar-filter-bar::-webkit-scrollbar { display:none; }
  .sgg-calendar-page .sgg-calendar-viewbar { align-items:center; flex-direction:row; gap:10px; margin-top:12px; padding-top:13px; }
  .sgg-calendar-page .sgg-calendar-viewbar-copy { flex:1 1 auto; }
  .sgg-calendar-page .sgg-calendar-viewbar-copy span { display:none; }
  .sgg-calendar-page .sgg-calendar-view-switch { width:auto; }
  .sgg-calendar-page .sgg-calendar-view-option { min-height:40px; padding:8px 12px; }

  .sgg-calendar-page .sgg-calendar-results { margin-top:20px; }
  .sgg-calendar-page .sgg-calendar-day-header { align-items:flex-start; margin-bottom:12px; padding:0 0 10px; }
  .sgg-calendar-page .sgg-calendar-day-header > div:first-child { display:block; }
  .sgg-calendar-page .sgg-calendar-day-header .ks-day-date { display:block; margin-top:2px; font-size:12.5px; }
  .sgg-calendar-page .sgg-calendar-day-header h2 { font-size:20px; }
  .sgg-calendar-page .sgg-calendar-day-meta { align-self:flex-start; gap:6px; font-size:11.5px; }

  /* One sticky context bar. Fill the tiny sticky gap so rows never peek through. */
  .sgg-calendar-page .sgg-calendar-area-header {
    position:sticky;
    top:var(--sgg-calendar-context-sticky-top);
    z-index:24;
    min-height:38px;
    margin:0 0 7px;
    padding:7px 10px;
    border:1px solid #deddd8;
    border-radius:9px;
    background:#f1f1ee;
    box-shadow:0 -6px 0 var(--calendar-page);
  }
  .sgg-calendar-page .sgg-calendar-area-heading { gap:6px; flex-wrap:nowrap; overflow:hidden; }
  .sgg-calendar-page .sgg-calendar-area-header h3 { min-width:0; overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
  .sgg-calendar-page .sgg-calendar-area-time { flex:0 0 auto; font-size:11.5px; }
  .sgg-calendar-page .sgg-calendar-area-count { font-size:10.5px; }

  /* Mobile LIST: one calm vertical reading path, no squeezed desktop columns. */
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-grid {
    display:block;
    overflow:hidden;
    border:1px solid #deddd8;
    border-radius:14px;
    background:#fff;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card.has-booking {
    display:block;
    border:0;
    border-top:1px solid #ecebe7;
    border-radius:0;
    background:#fff;
    box-shadow:none;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card:first-child { border-top:0; }

  /* Mobile CARDS: same hierarchy, separate cards. */
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    border:0;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card.has-booking {
    display:block;
    overflow:hidden;
    border:1px solid #deddd8;
    border-radius:14px;
    background:#fff;
    box-shadow:none;
  }

  /* Shared mobile row/card body. */
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-body,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card-body {
    display:block;
    min-width:0;
    min-height:0;
    padding:12px 12px 9px;
    text-align:left;
  }

  /* Time and availability are one decision block. Availability sits UNDER time. */
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .ks-card-time-row,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .ks-card-time-row {
    display:block;
    width:100%;
    min-width:0;
    margin:0;
    padding:0;
    border:0;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .ks-card-time,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .ks-card-time {
    display:block;
    width:auto;
    min-width:0;
    min-height:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-time-range,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-time-range {
    display:block;
    color:#171717;
    font-size:17px;
    font-weight:800;
    line-height:1.15;
    letter-spacing:-.025em;
    white-space:nowrap;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-status,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-status {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    width:fit-content;
    max-width:100%;
    margin:4px 0 0;
    padding:0;
    border:0;
    background:transparent;
    font-size:12px;
    font-weight:720;
    line-height:1.22;
    text-align:left;
    white-space:normal;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-status::before,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-status::before {
    width:6px;
    height:6px;
    flex:0 0 6px;
  }

  /* Venue gets the full row. No time/venue split. */
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-venue-block,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-venue-block {
    display:block;
    min-width:0;
    margin:10px 0 0;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-venue-row,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-venue-row {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    min-height:36px;
    max-width:100%;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-venue-logo,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-venue-logo {
    width:36px;
    height:36px;
    flex:0 0 36px;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-venue,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-venue {
    min-width:0;
    font-size:14.5px;
    font-weight:800;
    line-height:1.2;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-rating,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-rating {
    justify-content:flex-start;
    gap:5px;
    margin:4px 0 0 45px;
    font-size:11.5px;
    line-height:1.2;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-rating .pill-label,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-rating .pill-label { padding:4px 7px; font-size:10.5px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-rating strong,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-rating strong { font-size:11.5px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-rating .text-muted,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-rating .text-muted { font-size:10.75px!important; }

  /* Session is compact and directly connected to venue. */
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-session-block,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-session-block {
    gap:4px;
    min-width:0;
    margin-top:10px;
    padding-top:9px;
    border-top:1px solid #efeee9;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .ks-card-title,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .ks-card-title {
    font-size:16.5px;
    line-height:1.22;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-location,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-location {
    justify-content:flex-start;
    gap:5px;
    font-size:12.5px;
    line-height:1.3;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-meta,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card-meta {
    justify-content:flex-start;
    gap:4px;
    margin-top:1px;
    text-align:left;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card .ks-pill,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card .ks-pill {
    min-height:24px;
    padding:4px 7px;
    border-radius:7px;
    font-size:10.8px;
  }

  /* Booking remains unmistakable but no taller than it needs to be. */
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-footer,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card-footer {
    display:block;
    margin:0;
    padding:0 12px 12px;
  }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-primary,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-primary {
    width:100%;
    min-height:44px;
    padding:10px 13px;
    font-size:13.5px;
  }
}

@media (max-width:390px) {
  .sgg-calendar-page .sgg-calendar-shell { padding-right:12px!important; padding-left:12px!important; }
  .sgg-calendar-page .ks-cal-day { width:52px; }
  .sgg-calendar-page .sgg-calendar-area-header { padding-right:9px; padding-left:9px; }
  .sgg-calendar-page .sgg-calendar-area-header h3 { font-size:13.75px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-body,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card-body { padding-right:11px; padding-left:11px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-time-range,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-time-range { font-size:16.5px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-status,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-status { font-size:11.75px; }
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="list"] .sgg-calendar-card-footer,
  .sgg-calendar-page .sgg-calendar-results[data-calendar-view="cards"] .sgg-calendar-card-footer { padding-right:11px; padding-left:11px; }
}

@media (prefers-reduced-motion:reduce) {
  .sgg-calendar-page .ks-cal-strip,
  .sgg-calendar-page .sgg-calendar-card,
  .sgg-calendar-page .sgg-calendar-primary,
  .sgg-calendar-page .sgg-directory-shortcut { scroll-behavior:auto!important; transition:none!important; }
}

/* 11. Embedded profile / taxonomy calendar ----------------------------------- */
.sgg-calendar-embedded { margin-top:52px; padding-top:34px; border-top:1px solid #e8e7e2; color:#171717; background:transparent!important; font-family:'Figtree',sans-serif; }
.sgg-calendar-embedded .sgg-top,
.sgg-calendar-embedded .sgg-top-inner { margin:0; padding:0; border:0; border-radius:0; background:transparent; }
.sgg-calendar-embedded-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:0; }
.sgg-calendar-embedded-head .fsg-eyebrow { margin:0 0 7px!important; color:#6d7178!important; font-size:.76rem!important; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.sgg-calendar-embedded-head h2 { margin:0; color:#171717; font-size:clamp(1.75rem,3vw,2.2rem); font-weight:800; line-height:1.05; letter-spacing:-.035em; }
.sgg-calendar-embedded .sgg-title-sub { margin:8px 0 0; color:#777772; font-size:12px; font-weight:650; }
.sgg-calendar-embedded .sgg-days { margin-top:24px; }
.sgg-calendar-embedded .sgg-calendar-day { margin-top:36px; }
.sgg-calendar-embedded .sgg-calendar-day:first-child { margin-top:0; }
.sgg-calendar-embedded .sgg-calendar-day-header { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid #e8e7e2; }
.sgg-calendar-embedded .sgg-calendar-day-header > div:first-child { display:flex; align-items:baseline; gap:9px; }
.sgg-calendar-embedded .sgg-calendar-day-header h2,
.sgg-calendar-embedded .sgg-calendar-day-header h3 { margin:0; color:#171717; font-size:20px; font-weight:800; letter-spacing:-.025em; }
.sgg-calendar-embedded .sgg-calendar-day-header .ks-day-date,
.sgg-calendar-embedded .sgg-calendar-day-header .sgg-day-date { color:#777772; font-size:13px; font-weight:650; }
.sgg-calendar-embedded .sgg-calendar-day-meta { display:flex; align-items:center; gap:8px; color:#777772; font-size:12px; font-weight:700; white-space:nowrap; }
.sgg-calendar-embedded .sgg-calendar-mini-pill { display:inline-flex; align-items:center; min-height:28px; padding:5px 10px; border:1px solid #deded9; border-radius:999px; background:#fff; color:#171717; font-size:11px; font-weight:800; }
.sgg-calendar-embedded .sgg-calendar-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.sgg-calendar-embedded .sgg-calendar-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid #e5e4df!important; border-radius:20px!important; background:#fff!important; box-shadow:none!important; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.sgg-calendar-embedded .sgg-calendar-card:hover { border-color:#d3d2cc!important; box-shadow:0 10px 28px rgba(17,17,17,.055)!important; transform:translateY(-1px); }
.sgg-calendar-embedded .sgg-calendar-card-body { display:flex; flex:1; flex-direction:column; padding:18px 18px 10px!important; }
.sgg-calendar-embedded .ks-card-time-row,
.sgg-calendar-embedded .sgg-card-time-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
.sgg-calendar-embedded .ks-card-time,
.sgg-calendar-embedded .sgg-card-time { color:#171717; font-size:18px; font-weight:800; line-height:1.1; letter-spacing:-.025em; }
.sgg-calendar-embedded .sgg-calendar-venue { margin:0 0 4px; color:#777772; font-size:12px; font-weight:750; }
.sgg-calendar-embedded .ks-card-title,
.sgg-calendar-embedded .sgg-card-title { margin:0 0 9px; color:#171717; font-size:15px; font-weight:800; line-height:1.35; }
.sgg-calendar-embedded .sgg-calendar-rating { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:1px 0 10px; color:#171717; font-size:12px; line-height:1.2; }
.sgg-calendar-embedded .sgg-calendar-rating .pill-label { padding:4px 9px; font-size:11px; line-height:1; }
.sgg-calendar-embedded .sgg-calendar-rating .pill-rating { border-color:#227950!important; border-radius:4px!important; background:#227950!important; color:#fff!important; }
.sgg-calendar-embedded .sgg-calendar-rating strong { font-size:12px; font-weight:800; }
.sgg-calendar-embedded .sgg-calendar-rating .text-muted { color:#777772!important; font-size:11px!important; }
.sgg-calendar-embedded .sgg-calendar-location { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:0 0 10px; color:#666660; font-size:12px; font-weight:650; line-height:1.35; }
.sgg-calendar-embedded .sgg-calendar-location > span { display:inline-flex; align-items:center; gap:5px; min-width:0; }
.sgg-calendar-embedded .sgg-calendar-location i { flex:0 0 auto; color:#777772; font-size:12px; -webkit-text-stroke:0!important; }
.sgg-calendar-embedded .sgg-calendar-distance { color:#8b8b85; font-weight:700; white-space:nowrap; }
.sgg-calendar-embedded .sgg-calendar-card-meta { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 8px; }
.sgg-calendar-embedded .sgg-calendar-card .ks-pill,
.sgg-calendar-embedded .sgg-calendar-card .sgg-pill { display:inline-flex; align-items:center; min-height:28px; padding:5px 9px; border:1px solid #ebeae5; border-radius:999px; background:#f7f7f4; color:#555550; font-size:11px; font-weight:650; line-height:1.1; }
.sgg-calendar-embedded .sgg-calendar-status { display:inline-flex!important; align-items:center!important; min-height:28px!important; padding:5px 9px!important; border:1px solid #e3e2dd!important; border-radius:999px!important; background:#fff!important; color:#555550!important; font-size:11px!important; font-weight:750!important; line-height:1!important; white-space:nowrap; animation:none!important; }
.sgg-calendar-embedded .sgg-calendar-card-footer { margin-top:auto; padding:4px 18px 18px!important; }
.sgg-calendar-embedded .sgg-calendar-primary { display:inline-flex!important; width:auto!important; min-height:42px!important; align-items:center!important; justify-content:center!important; gap:7px!important; padding:10px 16px!important; border:1px solid #171717!important; border-radius:999px!important; background:#171717!important; color:#fff!important; text-decoration:none!important; font:750 13px/1 'Figtree',sans-serif!important; transition:.15s ease!important; }
.sgg-calendar-embedded .sgg-calendar-primary:hover { border-color:#000!important; background:#000!important; color:#fff!important; }
.sgg-calendar-embedded .sgg-calendar-primary i,
.sgg-calendar-embedded .sgg-calendar-primary i::before { line-height:1; }
.sgg-calendar-embedded .sgg-calendar-empty { max-width:620px; padding:48px 0 24px; }
.sgg-calendar-embedded .sgg-calendar-empty-icon { display:flex; width:46px; height:46px; align-items:center; justify-content:center; margin-bottom:16px; border:1px solid #e3e2dd; border-radius:50%; background:#fff; font-size:18px; }
.sgg-calendar-embedded .sgg-calendar-empty h2 { margin:0 0 8px; font-size:24px; font-weight:800; letter-spacing:-.03em; }
.sgg-calendar-embedded .sgg-calendar-empty p { margin:0 0 18px; color:#6f6f69; font-size:15px; line-height:1.55; }
.sgg-calendar-embedded .sgg-calendar-status.ks-spots--available { border-color:#d9e9df!important; background:#f1f7f3!important; color:#155c3c!important; }
.sgg-calendar-embedded .sgg-calendar-status.ks-spots--unknown { border-color:#e3e2dd!important; background:#f7f7f5!important; color:#6a6a65!important; }
.sgg-calendar-embedded .sgg-calendar-status .bi-check-lg { display:none!important; }
.sgg-calendar-embedded .sgg-cal-strip { display:flex; gap:6px; margin-top:24px; padding:0 0 16px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; }
.sgg-calendar-embedded .sgg-cal-strip::-webkit-scrollbar { display:none; }
.sgg-calendar-embedded .sgg-cal-day { appearance:none; position:relative; flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; min-width:0; min-height:80px; padding:5px 0; border:1.5px solid #e5e7eb; border-radius:12px; background:#fff; cursor:pointer; transition:border-color .15s ease,background .15s ease; }
.sgg-calendar-embedded .sgg-cal-day:hover { border-color:#999; background:#f0f0f0; }
.sgg-calendar-embedded .sgg-cal-day.active { border-color:#111; background:#111; }
.sgg-calendar-embedded .sgg-cal-wd { color:#9ca3af; font-size:.65rem; font-weight:700; line-height:1; letter-spacing:.05em; text-transform:uppercase; }
.sgg-calendar-embedded .sgg-cal-num { color:#111; font-size:1.25rem; font-weight:800; line-height:1.2; }
.sgg-calendar-embedded .sgg-cal-mo { color:#b0b0b0; font-size:.58rem; font-weight:600; line-height:1; letter-spacing:.03em; text-transform:uppercase; }
.sgg-calendar-embedded .sgg-cal-ct { display:inline-flex; align-items:center; justify-content:center; min-width:16px; height:14px; margin-top:2px; padding:0 4px; border-radius:7px; background:#e5e7eb; color:#6b7280; font-size:.58rem; font-weight:700; }
.sgg-calendar-embedded .sgg-cal-day.active .sgg-cal-wd { color:rgba(255,255,255,.55); }
.sgg-calendar-embedded .sgg-cal-day.active .sgg-cal-num { color:#fff; }
.sgg-calendar-embedded .sgg-cal-day.active .sgg-cal-mo { color:rgba(255,255,255,.4); }
.sgg-calendar-embedded .sgg-cal-day.active .sgg-cal-ct { background:rgba(255,255,255,.18); color:#fff; }
.sgg-calendar-embedded .sgg-cal-day--today .sgg-cal-wd { color:#16a34a; }
.sgg-calendar-embedded .sgg-cal-day--today::after { content:""; position:absolute; top:4px; right:4px; width:5px; height:5px; border-radius:50%; background:#16a34a; }
.sgg-calendar-embedded .sgg-cal-day--today.active::after { background:#4ade80; }

@media (max-width:767.98px) {
  .sgg-calendar-embedded { margin-top:42px; padding-top:28px; }
  .sgg-calendar-embedded .sgg-calendar-grid { grid-template-columns:1fr; }
  .sgg-calendar-embedded .sgg-calendar-day { margin-top:30px; }
  .sgg-calendar-embedded .sgg-calendar-day-header { align-items:flex-start; }
  .sgg-calendar-embedded .sgg-calendar-day-header > div:first-child { display:block; }
  .sgg-calendar-embedded .sgg-calendar-day-header .ks-day-date,
  .sgg-calendar-embedded .sgg-calendar-day-header .sgg-day-date { display:block; margin-top:2px; }
  .sgg-calendar-embedded .sgg-calendar-card-body { padding:16px 16px 8px!important; }
  .sgg-calendar-embedded .sgg-calendar-card-footer { padding:4px 16px 16px!important; }
  .sgg-calendar-embedded .sgg-calendar-primary { width:100%!important; }
  .sgg-calendar-embedded .sgg-cal-day { flex:0 0 auto; width:56px; min-height:70px; }
  .sgg-calendar-embedded .sgg-cal-num { font-size:1.1rem; }
}
