/* Lightboxes are always above the accessibility panel and every theme layer. */
html body :where(a, button, input, select, textarea, summary, [tabindex]):focus {
  outline: 0 !important;
}
html body :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 0 !important;
  box-shadow: 0 0 0 2px rgb(229 43 47 / 68%) !important;
}
html.saf-a11y-modern body :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  box-shadow: 0 0 0 2px rgb(43 127 179 / 58%) !important;
}

body :where(.pswp.mwl.pswp--open, .pswp.pswp--open, .saf-lightbox.is-open, .saf-lightbox.open, .mfp-wrap, .fancybox-container) {
  z-index: 2147483647 !important;
}
body.saf-global-lightbox-open #saf-a11y-toggle,
body.saf-global-lightbox-open #saf-a11y-panel {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Contact calendar and navigation drawer: only date, time, title and place. */
body.page-id-181 main .retro-calendar-wrapper .eventdesc,
.jamnik-next-meeting-box-subtle .eventdesc,
body.page-id-181 main .retro-calendar-wrapper .ics-calendar-description,
.jamnik-next-meeting-box-subtle .ics-calendar-description { display: none !important; }

body.page-id-181 main .retro-calendar-wrapper .ics-calendar-date-wrapper,
.jamnik-next-meeting-box-subtle .ics-calendar-date-wrapper {
  display: grid !important;
  grid-template-columns: minmax(145px, .55fr) minmax(0, 1.45fr) !important;
  gap: 10px 20px !important;
  align-items: start !important;
  margin: 0 !important;
  padding: 14px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgb(127 141 153 / 30%) !important;
}
body.page-id-181 main .retro-calendar-wrapper .ics-calendar-date,
.jamnik-next-meeting-box-subtle .ics-calendar-date { display: block !important; margin: 0 !important; padding: 0 !important; font-weight: 800 !important; }
body.page-id-181 main .retro-calendar-wrapper dl.events,
.jamnik-next-meeting-box-subtle dl.events {
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  gap: 8px 14px !important;
  margin: 0 !important;
}
body.page-id-181 main .retro-calendar-wrapper :where(dt.time, dt.all-day-indicator),
.jamnik-next-meeting-box-subtle :where(dt.time, dt.all-day-indicator) { display: block !important; margin: 0 !important; padding: 0 !important; font-weight: 750 !important; white-space: nowrap !important; }
body.page-id-181 main .retro-calendar-wrapper dd.event,
.jamnik-next-meeting-box-subtle dd.event { min-width: 0 !important; margin: 0 !important; padding: 0 !important; }
body.page-id-181 main .retro-calendar-wrapper .title,
.jamnik-next-meeting-box-subtle .title { display: block !important; font-weight: 800 !important; }
body.page-id-181 main .retro-calendar-wrapper .location,
.jamnik-next-meeting-box-subtle .location { display: block !important; margin-top: 3px !important; font-size: .92em !important; line-height: 1.35 !important; opacity: .82 !important; }

/* The navigation widget is a compact teaser, not a second full calendar. */
.jamnik-next-meeting-box-subtle .ics-calendar-date-wrapper ~ .ics-calendar-date-wrapper,
.jamnik-next-meeting-box-subtle dl.events > dt:nth-of-type(n + 2),
.jamnik-next-meeting-box-subtle dl.events > dd:nth-of-type(n + 2) { display: none !important; }
.jamnik-next-meeting-box-subtle .ics-calendar-date-wrapper {
  grid-template-columns: 1fr !important;
  gap: 7px !important;
  padding: 8px 0 0 !important;
  border-bottom: 0 !important;
}
.jamnik-next-meeting-box-subtle dl.events { grid-template-columns: 1fr !important; gap: 4px !important; }
.jamnik-next-meeting-box-subtle .meeting-location-subtle { display: block !important; margin-top: 7px !important; }

/* Events calendar: readable all-day labels in every presentation. */
body.page-id-1291 #jamnik-events-container .all-day-indicator { color: #f5f7fa !important; opacity: 1 !important; }
html:is(.saf-a11y-light, .saf-a11y-modern) body.page-id-1291 #jamnik-events-container .all-day-indicator {
  color: var(--saf-ui-action-dark, #064f87) !important;
  background: transparent !important;
}
html:is(.saf-a11y-light, .saf-a11y-modern) body.page-id-1291 #jamnik-events-container :where(.ics-calendar-label,.ics-calendar-date,.title,.location,.time,.end_time,.all-day-indicator) { opacity: 1 !important; }

/* Statistics in the metadata line below each article title. */
body.single-post main article .entry-meta { display: flex !important; width: 100% !important; flex-wrap: wrap !important; align-items: center !important; }
body.single-post main article .entry-meta .saf-post-stats {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-inline-start: auto !important;
  padding-inline-start: 18px !important;
  color: currentColor !important;
  white-space: nowrap !important;
}
body.single-post main article .entry-meta .saf-post-stats::before,
body.single-post main article .entry-meta .saf-post-stats::after { display: none !important; content: none !important; }
.saf-post-stat { display: inline-flex !important; align-items: center !important; gap: 5px !important; color: inherit !important; opacity: .78 !important; text-decoration: none !important; }
.saf-post-stat:hover,.saf-post-stat:focus-visible { color: var(--saf-a11y-accent, #e52b2f) !important; opacity: 1 !important; }
.saf-post-stat svg { width: 17px !important; height: 17px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.8 !important; stroke-linecap: round !important; stroke-linejoin: round !important; }
html.saf-a11y-modern .saf-post-stat:hover,html.saf-a11y-modern .saf-post-stat:focus-visible { color: var(--saf-modern-accent, #0b67a3) !important; }

/* Consent-first Google Analytics controls. */
.saf-analytics-consent {
  position: fixed;
  z-index: 2147483000;
  bottom: 14px;
  left: 50%;
  width: min(1080px, calc(100vw - 28px));
  max-height: min(68dvh, 520px);
  overflow: auto;
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 18px 22px;
  color: #f5f5f5;
  background: linear-gradient(135deg, #211617 0%, #121213 58%, #101011 100%);
  border: 1px solid #704043;
  border-top: 4px solid #e52b2f;
  border-radius: 10px;
  box-shadow: 0 -12px 42px rgb(0 0 0 / 68%), 0 0 0 1px rgb(229 43 47 / 18%);
  font: 500 15px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.saf-analytics-consent[hidden] { display: none !important; }
.saf-analytics-consent strong { display: block; margin-bottom: 4px; color: #ff777a; font-size: 18px; }
.saf-analytics-consent p { margin: 0; color: #e5e5e5; }
.saf-analytics-consent__privacy { display: inline-block; margin-top: 7px; color: #ff777a; text-decoration: underline; text-underline-offset: 3px; }
.saf-analytics-consent__details { margin-top: 7px; color: #f4f4f4; }
.saf-analytics-consent__details summary {
  display: inline-block;
  color: #ff8b8e;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.saf-analytics-consent__details summary::marker { color: #e52b2f; }
.saf-analytics-consent__details > div {
  max-width: 780px;
  margin-top: 10px;
  padding: 11px 13px;
  color: #ededed;
  background: #1b1b1d;
  border-left: 3px solid #e52b2f;
  border-radius: 4px;
}
.saf-analytics-consent__details > div p + p { margin-top: 8px; }
.saf-analytics-consent__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.saf-analytics-consent button {
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid #777;
  border-radius: 6px;
  color: #fff;
  background: #242426;
  font: 700 14px/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  cursor: pointer;
}
.saf-analytics-consent button.is-primary { color: #fff; background: #c9252a; border-color: #ee4d51; }
.saf-analytics-consent button:hover,
.saf-analytics-consent button:focus-visible {
  outline: 0;
  border-color: #ff777a;
  box-shadow: 0 0 0 2px rgb(229 43 47 / 68%) !important;
}
.saf-analytics-consent button.is-primary:hover { background: #e52b2f; }

html.saf-a11y-modern .saf-analytics-consent {
  color: #f5f9fc;
  background: linear-gradient(135deg, #12324a 0%, #092033 62%, #071927 100%);
  border-color: #214864;
  border-top-color: #2b9ec2;
}
html.saf-a11y-modern .saf-analytics-consent strong { color: #8ed8ed; }
html.saf-a11y-modern .saf-analytics-consent p { color: #e4eef5; }
html.saf-a11y-modern .saf-analytics-consent__privacy,
html.saf-a11y-modern .saf-analytics-consent__details summary { color: #8ed8ed; }
html.saf-a11y-modern .saf-analytics-consent__details > div { background: #102d43; border-left-color: #2b9ec2; }
html.saf-a11y-modern .saf-analytics-consent button { border-color: #4e7790; background: #183c55; }
html.saf-a11y-modern .saf-analytics-consent button.is-primary { background: #0b67a3; border-color: #55b8d5; }
html.saf-a11y-modern .saf-analytics-consent button:hover,
html.saf-a11y-modern .saf-analytics-consent button:focus-visible {
  border-color: #8ed8ed;
  box-shadow: 0 0 0 2px rgb(43 127 179 / 58%) !important;
}
html.saf-a11y-modern .saf-analytics-consent button.is-primary:hover { background: #1481b8; }
.saf-analytics-settings {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 5px auto 0;
  padding: 4px 8px;
  border: 0;
  color: #aeb7c0 !important;
  background: transparent !important;
  font-size: 12px;
  line-height: 1.3;
  text-decoration: underline;
  opacity: .72;
  cursor: pointer;
}
.jf-footer .saf-analytics-settings,
#footer .saf-analytics-settings,
footer .saf-analytics-settings {
  color: #aeb7c0 !important;
}
html.saf-a11y-modern .saf-analytics-settings {
  color: #9bcddd !important;
}

/* Responsive masonry in all galleries inside posts; no image cropping. */
body.single-post .entry-content .wp-block-gallery.has-nested-images {
  --saf-masonry-columns: 2;
  display: block !important;
  column-count: var(--saf-masonry-columns) !important;
  column-gap: 14px !important;
}
body.single-post .entry-content .wp-block-gallery.columns-3 { --saf-masonry-columns: 3; }
body.single-post .entry-content .wp-block-gallery.columns-4,
body.single-post .entry-content .wp-block-gallery.columns-5,
body.single-post .entry-content .wp-block-gallery.columns-6,
body.single-post .entry-content .wp-block-gallery.columns-7,
body.single-post .entry-content .wp-block-gallery.columns-8 { --saf-masonry-columns: 4; }
body.single-post .entry-content .wp-block-gallery.has-nested-images > figure.wp-block-image {
  display: inline-block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 14px !important;
  break-inside: avoid !important;
  page-break-inside: avoid !important;
  vertical-align: top !important;
}
body.single-post .entry-content .wp-block-gallery.has-nested-images > figure.wp-block-image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

@media (max-width: 900px) {
  body.single-post .entry-content .wp-block-gallery.has-nested-images { --saf-masonry-columns: 2; }
}
@media (max-width: 640px) {
  body.page-id-181 main .retro-calendar-wrapper .ics-calendar-date-wrapper,
  .jamnik-next-meeting-box-subtle .ics-calendar-date-wrapper { grid-template-columns: 1fr !important; }
  body.single-post main article .entry-meta .saf-post-stats {
    flex: 0 0 100% !important;
    justify-content: flex-end !important;
    margin: 8px 0 0 !important;
    padding: 8px 0 0 !important;
    border-top: 1px solid rgb(127 141 153 / 24%) !important;
  }
  body.single-post .entry-content .wp-block-gallery.has-nested-images { --saf-masonry-columns: 1; column-gap: 0 !important; }
  .saf-analytics-consent {
    bottom: 8px;
    width: calc(100vw - 16px);
    max-height: min(76dvh, 560px);
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 15px;
    box-sizing: border-box;
  }
  .saf-analytics-consent__copy { min-height: 0; overflow: auto; }
  .saf-analytics-consent__actions { justify-content: stretch; }
  .saf-analytics-consent__actions button { flex: 1 1 135px; }

  /* On phones keep the entry point docked midway along the right edge. This
     avoids header/search and back-to-top controls while remaining available
     during scrolling. Its layer stays below consent dialogs and lightboxes. */
  body #saf-a11y-toggle {
    position: fixed !important;
    top: 50% !important;
    right: max(0px, env(safe-area-inset-right)) !important;
    bottom: auto !important;
    left: auto !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    transform: translateY(-50%) !important;
    opacity: .58 !important;
    z-index: 90 !important;
  }
  body #saf-a11y-toggle:hover,
  body #saf-a11y-toggle:focus-visible,
  body #saf-a11y-toggle[aria-expanded="true"] { opacity: 1 !important; }
}
