/* WCAG skip link */
.tbgz-skip-link{position:absolute;left:0;top:0;transform:translateY(-130%);padding:10px 14px;z-index:9999;background:#fff;color:#000;border:2px solid currentColor;border-radius:8px;text-decoration:none;}
.tbgz-skip-link:focus{transform:translateY(0);}

/* 0.1.78 Theme Override Guard: all styles are scoped and loaded after theme */
.tbgz {
  /* derived tones from accent */
  --tbgz-accent-soft: rgba(0,0,0,.15);
  --tbgz-accent-faint: rgba(0,0,0,.07);
  color: var(--tbgz-accent, #000);
  /*max-width:1000px;*/
  /*margin:20px auto;*/
  border:0px solid var(--tbgz-accent, #000);
  border-radius:0px!important;
  background:#fff;
  padding: 6px 22px 22px 22px;
  box-sizing:border-box
}

/* Ensure native [hidden] always hides inside the widget.
   Some themes/plugins override [hidden] globally which would otherwise
   make step 2/3 visible and block clicks on step 1. */
.tbgz [hidden]{
  display:none !important;
}
.tbgz * {
  box-sizing:border-box
}
.tbgz-step1,.tbgz-step2,.tbgz-step3{
  padding-top: 6px;
}

/* Topbar (Back button left, progress centered) */
.tbgz-topbar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding: 10px 0 18px 0;
  /* keep height stable between screens (step 1 has no back button) */
  min-height: 72px;
}
.tbgz-topbar-left{
  flex:0 0 44px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.tbgz-topbar-center{
  flex:1;
  min-width:0;
  display:flex;
  justify-content:center;
  /* padding-top: 20px; */
}
.tbgz-topbar-right{
  flex:0 0 44px;
}
/* Modern browsers: derive softer tones from the accent */
@supports (color: color-mix(in srgb, #000 50%, #fff)){
  .tbgz{
    --tbgz-accent-soft: color-mix(in srgb, var(--tbgz-accent, #000) 20%, #fff);
    --tbgz-accent-faint: color-mix(in srgb, var(--tbgz-accent, #000) 10%, #fff);
  }
}

/* Accent as default text color (do NOT force on all children, otherwise hover states can't turn text white) */
.tbgz{color:var(--tbgz-accent, #000)}
.tbgz svg{fill:currentColor;stroke:currentColor}
.tbgz-muted {
  color:var(--tbgz-accent, #000);
  font-size:13px
}
.tbgz-btn {
  display:inline-block;
  text-decoration:none;

  padding:6px 16px;
  border-radius:10px;
  border:1px solid var(--tbgz-accent, #000);
  background:var(--tbgz-accent, #000);
  color:#fff;
  font-weight:600;
  cursor:pointer;
  transition:background .15s ease,color .15s ease
}

/* Primary button (e.g., modal OK) */
.tbgz-btn-primary{
  background:var(--tbgz-accent, #000) !important;
  color:#fff !important;
}
.tbgz-btn-primary:hover,
.tbgz-btn-primary:focus{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
}

/* Ghost button (outlined, accent text) – used for navigation + inactive tabs */
.tbgz-btn.tbgz-btn--ghost{
  background:#fff;
  color:var(--tbgz-accent, #000);
}
.tbgz-btn.tbgz-btn--ghost:hover{
  background:var(--tbgz-accent, #000);
  color:#fff;
}

/* Icon-only buttons should not rely on text glyphs */
.tbgz-btn.tbgz-btn--icon{padding:10px 12px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
.tbgz-btn:hover {
  background:#fff;
  color:var(--tbgz-accent, #000)
}
.tbgz-btn:disabled {
  background:#fff;
  color:var(--tbgz-accent, #000);
  border-style:dashed;
  cursor:not-allowed
}
.tbgz-actions {
  margin-top:18px
}
.tbgz-alert {
  margin-top:14px;
  padding:12px;
  border:1px solid var(--tbgz-accent, #000);
  border-radius:12px;
  background:#fff;
  color:var(--tbgz-accent, #000)
}

/* Alert should feel like a form field (similar height as inputs) */
.tbgz-alert{min-height:44px;display:block;align-items:center}


#tbgzCalendarLogin form input{
  border: 1px solid var(--tbgz-accent, #000);
}



.tbgz-table{
  width:100%;
  border-collapse:collapse;
  margin-top:10px
}
.tbgz-table th,.tbgz-table td{
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid rgba(0,0,0,.1)
}
.tbgz-table th{
  font-weight:700
}
.tbgz-step1 {
  /* margin-top:18px; */
}
.tbgz-cards {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap: 24px;
  /* max-width:1060px;*/
  margin:0 auto;
  grid-auto-rows:1fr
}
.tbgz-card {
  grid-column:span 6
}
@media (max-width: 720px) {
  .tbgz-card {
    grid-column:span 12
  }

}
.tbgz-card {
  display:grid;
  grid-template-columns:72px 1fr 18px;
  gap:30px;
  align-items:center;
  width:100%;
  height:100%;
  text-align:left;
  border: 1px solid var(--tbgz-accent, #000);
  background:#fff;
  border-radius:12px;
  padding:30px;
  cursor:pointer;
  transition:background .15s ease,color .15s ease
}
.tbgz-card.tbgz-card--noimg {
  grid-template-columns:1fr 18px
}
.tbgz-card:hover {
  background:var(--tbgz-accent, #000);
  color:#fff
}
.tbgz-card:hover *{color:inherit}
/* Some themes set explicit text colors inside cards – enforce white on hover */
.tbgz-card:hover,
.tbgz-card:hover .tbgz-card-title,
.tbgz-card:hover .tbgz-card-desc,
.tbgz-card:hover .tbgz-card-arrow{
  color:#fff !important;
}
.tbgz-card:hover svg{fill:currentColor;stroke:currentColor}
.tbgz-card-thumb {
/*  width:72px;
  height:72px;*/
  border-radius:10px;
  overflow:hidden;
  /*border:1px solid var(--tbgz-accent, #000);*/
 /* background:#fff;*/
      display: flex;
    justify-content: center;
    flex-direction: column;
}
.tbgz-card-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  height: 72px;
}
.tbgz-card-title {
  font-weight:800;
  font-size:19px;
  line-height:1.25;
  /* Some themes set headings to black with strong specificity */
  color:var(--tbgz-accent, #000) !important;
  text-transform: uppercase;
}
.tbgz-card-desc {
  margin-top:8px;
  color:var(--tbgz-accent, #000) !important;
  font-size:15px;
  line-height:1.55
}
.tbgz-card-arrow {
  color:var(--tbgz-accent, #000) !important;
  text-align:right;
  display:flex;
 justify-content: center;
  flex-direction: column;
}
.tbgz-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:28px;
  align-items:start
}
@media (max-width: 980px) {
  .tbgz-grid {
    grid-template-columns:1fr
  }

}
.tbgz-left {
  grid-column:span 3;
  min-width:0
}
.tbgz-divider {
  grid-column:span 1;
  min-width:0;
  position:relative;
  align-self:stretch
}
.tbgz-right {
  grid-column:span 8;
  min-width:0
}
@media (max-width: 980px) {
  .tbgz-left,.tbgz-right {
    grid-column:auto
  }

}
@media (max-width: 980px) {
  .tbgz-divider {
    grid-column:span 1;
    min-width:0;
    position:relative;
    align-self:stretch
  }

}
.tbgz-back,.tbgz-back3 {
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid var(--tbgz-accent, #000);
  background:#fff;
  color:var(--tbgz-accent, #000);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background .15s ease,color .15s ease
}
.tbgz-back:hover,.tbgz-back3:hover {
  background:var(--tbgz-accent, #000);
  color:#fff
}
.tbgz-nav-ico {
  width:18px;
  height:18px;
  display:inline-block;
  background:currentColor;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain
}
.tbgz-nav-ico-left {
  mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22feather%20feather-chevron-left%22%3E%3Cpolyline%20points%3D%2215%2018%209%2012%2015%206%22%3E%3C/polyline%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20class=%22feather%20feather-chevron-left%22%3E%3Cpolyline%20points=%2215%2018%209%2012%2015%206%22%3E%3C/polyline%3E%3C/svg%3E")
}
.tbgz-nav-ico-right {
  mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22feather%20feather-chevron-right%22%3E%3Cpolyline%20points%3D%229%2018%2015%2012%209%206%22%3E%3C/polyline%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20class=%22feather%20feather-chevron-right%22%3E%3Cpolyline%20points=%229%2018%2015%2012%209%206%22%3E%3C/polyline%3E%3C/svg%3E")
}

.tbgz-nav-ico--left {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M15.3 4.3a1 1 0 0 1 0 1.4L10.99 10H20a1 1 0 1 1 0 2h-9.01l4.31 4.3a1 1 0 1 1-1.42 1.4l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 0 1 1.43 0z'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M15.3 4.3a1 1 0 0 1 0 1.4L10.99 10H20a1 1 0 1 1 0 2h-9.01l4.31 4.3a1 1 0 1 1-1.42 1.4l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 0 1 1.43 0z'/%3E%3C/svg%3E")
}
.tbgz-nav-ico--right {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8.7 19.7a1 1 0 0 1 0-1.4L13.01 14H4a1 1 0 1 1 0-2h9.01L8.7 7.7a1 1 0 1 1 1.42-1.4l6 6a1 1 0 0 1 0 1.4l-6 6a1 1 0 0 1-1.42 0z'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8.7 19.7a1 1 0 0 1 0-1.4L13.01 14H4a1 1 0 1 1 0-2h9.01L8.7 7.7a1 1 0 1 1 1.42-1.4l6 6a1 1 0 0 1 0 1.4l-6 6a1 1 0 0 1-1.42 0z'/%3E%3C/svg%3E")
}
.tbgz-sel-img img {
  width:120px;
  height:120px;
  border-radius:14px;
  object-fit:cover;
  margin:18px 0 8px;
  border:1px solid var(--tbgz-accent, #000)
}
.tbgz-sel-title {
  font-size: 31px;
  line-height:1.15;
  font-weight:650;
  margin: 42px 0 10px;
  color:var(--tbgz-accent, #000);
  text-transform: uppercase;
}
.tbgz-sel-desc {
  margin-top:14px;
  color:var(--tbgz-accent, #000);
  font-size:16px;
  line-height:1.5
}

/* More spacing between description and address/time/date */
.tbgz-sel-desc{margin-bottom:35px}
.tbgz-iconlist {
  list-style:none;
  padding:0;
  margin:10px 0 0;
  display:flex;
  flex-direction:column;
  gap:20px
}
.tbgz-left-meta {
  padding-top:8px
}
Hpx 0 0;
  display:flex;
  flex-direction:column;
  gap:10px
}
.tbgz-iconrow {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.tbgz-dot {
  width:10px;
  height:10px;
  min-width:10px;
  border-radius:999px;
  background:var(--tbgz-accent, #000);
  margin-top:2px
}
.tbgz-ico {
  width:16px;
  height:16px;
  min-width:16px;
  display:inline-block;
  background:currentColor;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain
}
/* hourglass / sandglass */ .tbgz-ico-hourglass {
  -webkit-mask-image: url('hourglass.svg');
  mask-image: url('hourglass.svg');
  margin-top: 2px !important;
}
/* heart */ .tbgz-ico-hourglass {
  -webkit-mask-image: url('hourglass.svg');
  mask-image: url('hourglass.svg');
}

.tbgz-ico-clock {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 0 20a10 10 0 0 0 0-20Zm1 10.4V6h-2v7l5.2 3.1l1-1.7L13 12.4Z'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 0 20a10 10 0 0 0 0-20Zm1 10.4V6h-2v7l5.2 3.1l1-1.7L13 12.4Z'/%3E%3C/svg%3E")
}
.tbgz-ico-pin {
  -webkit-mask-image: url('map-pin.svg');
  mask-image: url('map-pin.svg');
}
.tbgz-ico-cal {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h2v2h6V2h2v2h3v18H4V4h3V2Zm13 8H6v10h14V10Z'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h2v2h6V2h2v2h3v18H4V4h3V2Zm13 8H6v10h14V10Z'/%3E%3C/svg%3E")
}
.tbgz-ico-time {
  -webkit-mask-image: url('clock.svg');
  mask-image: url('clock.svg');
}
.tbgz-ico-hourglass {
  -webkit-mask-image: url('hourglass.svg');
  mask-image: url('hourglass.svg');
}
.tbgz-ico-hourglass {
  -webkit-mask-image: url('hourglass.svg');
  mask-image: url('hourglass.svg');
}
.tbgz-right-title {
  font-size:22px;
  font-weight:700;
  margin:0 0 14px;
  color:var(--tbgz-accent, #000)
}
.tbgz-picker {
  display:block;

}
.tbgz-cal-header {
  display:grid;
  grid-template-columns:44px 1fr 44px;
  align-items:center;
  margin-bottom:10px
}
.tbgz-cal-title {
  text-align:center;
  font-weight:700;
  color:var(--tbgz-accent, #000)
}
.tbgz-cal-nav {
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid var(--tbgz-accent, #000);
  background:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--tbgz-accent, #000);
  font-size:24px;
  line-height:1;
  font-weight:700
}
.tbgz-cal-dow {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:clamp(4px,0.8vw,10px);
  font-size:12px;
  color:var(--tbgz-accent, #000);
  text-align:center;
  margin-bottom:6px
}
.tbgz-cal-grid {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:clamp(4px,0.8vw,10px)
}
.tbgz-cal-empty {
  aspect-ratio:1/1
}
.tbgz-cal-day {
  width:100%;
  aspect-ratio:1/1;
  border-radius:999px;
  border:1px solid transparent;
  background:#fff;
  cursor:pointer;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  padding:0;
  font-size:12px;
  color:var(--tbgz-accent, #000) !important
}
.tbgz-cal-day:disabled {
  opacity:1
}
.tbgz-cal-day:hover {
  border-color:var(--tbgz-accent, #000)
}
.tbgz-cal-day.is-selected {
  background:var(--tbgz-accent, #000);
  /* base rule uses !important – selected must win */
  color:#fff !important;
  font-weight:700
}
.tbgz-cal-day.is-disabled,.tbgz-cal-day.is-unavailable {
  cursor:not-allowed;
  color:var(--tbgz-accent-soft) !important;
  background:transparent !important;
  border-color:transparent !important;
  opacity:1
}
.tbgz-cal-day.is-holiday{
  cursor:not-allowed;
  color:var(--tbgz-accent-soft) !important;
  background:transparent !important;
  border-color:transparent !important;
  opacity:1;
  position:relative
}
.tbgz-cal-day.is-holiday::after{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:var(--tbgz-accent-soft);
  position:absolute;
  bottom:6px;
  left:50%;
  transform:translateX(-50%);
  /* opacity: 0; */
}
.tbgz-cal-day.is-disabled:hover,.tbgz-cal-day.is-unavailable:hover{border-color:transparent !important}
.tbgz-cal-day.is-available::after {
  content:none
}
.tbgz-slotscol {
  min-height:320px
}
.tbgz-day-label {
  font-weight:700;
  color:var(--tbgz-accent, #000);
  margin:6px 0 10px
}
.tbgz-slots {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:10px;
  max-height:320px;
  overflow:auto;
  padding-right:6px
}
.tbgz-slot {
  grid-column:span 3
}
@media (max-width: 980px) {
  .tbgz-slot {
    grid-column:span 4
  }

}
@media (max-width: 560px) {
  .tbgz-slot {
    grid-column:span 6
  }

}
.tbgz-slot {
  border:1px solid var(--tbgz-accent, #000);
  background:#fff;
  padding:8px 10px;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
  color:var(--tbgz-accent, #000);
  text-align:center;
  font-size:13px;
  transition:background .15s ease,color .15s ease
}
.tbgz-slot:hover {
  background:#fff
}
.tbgz-slot.is-selected {
  background:var(--tbgz-accent, #000);
  color:#fff;
  border-color:var(--tbgz-accent, #000)
}
.tbgz-timezone {
  display:none
}
.tbgz-right {
  min-width:0
}
.tbgz-form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
@media (max-width: 560px) {
  .tbgz-form-grid {
    grid-template-columns:1fr
  }

}
.tbgz-field {
  margin:0 0 14px
}
.tbgz-field label {
  display:block;
  font-weight:700;
  margin-bottom:6px;
  color:var(--tbgz-accent, #000)
}
.tbgz-field input,.tbgz-field textarea {
  width:100%;
  border:1px solid var(--tbgz-accent, #000);
  border-radius:12px;
  padding:12px 12px;
  font-size:15px;
  min-width:0;
  outline:none;
  box-shadow:none;
  background:#fff;
  color:var(--tbgz-accent, #000);
  transition:background .15s ease,color .15s ease,border-color .15s ease
}
.tbgz-field input:focus,.tbgz-field textarea:focus {
  background:var(--tbgz-accent, #000);
  color:#fff;
  border-color:var(--tbgz-accent, #000)
}
.tbgz-field input:focus::placeholder,.tbgz-field textarea:focus::placeholder {
  color:#fff
}
.tbgz-field textarea {
  resize:vertical;
  min-height:110px
}

/* Honeypot spam field – visually hidden */
.tbgz-hp{position:absolute !important;left:-9999px !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important;opacity:0 !important}
.tbgz-fieldset-lite {
  border:none;
  padding:0;
  margin:10px 0 0
}
.tbgz-fieldset-lite legend {
  font-weight:700;
  color:var(--tbgz-accent, #000);
  margin-bottom:8px
}
.tbgz-radio {
  display:flex;
  gap:10px;
  align-items:center;
  margin:10px 0;
  color:var(--tbgz-accent, #000)
}
.tbgz-radio input {
  margin-top:0
}
.tbgz-privacy {
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:16px 0 0;
  color:var(--tbgz-accent, #000);
  font-size:14px;
  line-height:1.4
}
.tbgz-privacy input {
  margin-top:3px;
  appearance:none;
  -webkit-appearance:none;
  width:22px;
  height:22px;
  border:1px solid var(--tbgz-accent, #000);
  border-radius:4px;
  background:#fff;
  display:inline-block;
  position:relative;
  cursor:pointer;
  flex:0 0 auto;
  box-shadow:none;
  outline:none
}
.tbgz-privacy input:checked {
  background:var(--tbgz-accent, #000)
}
.tbgz-privacy input:checked::after {
  content:'';
  position:absolute;
  left: 24%;
  top:50%;
  width:6px;
  height:12px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:translate(-50%,-60%) rotate(45deg)
}
/* Simple arrow glyphs used in cards/back/calendar */ .tbgz-arrow {
  font-size:24px;
  line-height:1;
  font-weight:400;
  display:inline-block
}
/* Mobile calendar sizing to avoid overflow */ @media (max-width: 420px) {
  .tbgz {
    padding:16px
  }
  .tbgz-cal-nav {
    width:40px;
    height:40px;
    font-size:22px
  }
  .tbgz-cal-day {
    font-size:12px
  }

}
/* --- 0.1.16 refinements --- */ .tbgz-back,.tbgz-back3 {
  color:var(--tbgz-accent, #000);
  transition:background .15s ease,color .15s ease;
  border-radius:999px
}
.tbgz-back:hover,.tbgz-back3:hover {
  background:var(--tbgz-accent, #000);
  color:#fff
}
.tbgz-back-ico {
  width:20px;
  height:20px;
  display:inline-block;
  background:currentColor;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14.7 5.3a1 1 0 0 1 0 1.4L10.41 11H20a1 1 0 1 1 0 2h-9.59l4.3 4.3a1 1 0 1 1-1.42 1.4l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 0 1 1.41 0z'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14.7 5.3a1 1 0 0 1 0 1.4L10.41 11H20a1 1 0 1 1 0 2h-9.59l4.3 4.3a1 1 0 1 1-1.42 1.4l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 0 1 1.41 0z'/%3E%3C/svg%3E");

}
.tbgz-ico-hourglass {
  -webkit-mask-image: url('hourglass.svg');
  mask-image: url('hourglass.svg');
}
/* Rounded UI again */ .tbgz-alert,.tbgz-field input,.tbgz-field textarea {
  border-radius:14px
}
.tbgz-sel-img img {
  border-radius:14px
}
/* Smaller form labels */ .tbgz-field label {
  font-size: 15px;
  font-weight:600
}
/* Calendar: allow grey for unavailable;
remove availability dot */ .tbgz-cal-day.is-disabled,.tbgz-cal-day.is-unavailable {
  color:#999
}
.tbgz-cal-day.is-available::after {
  content:none !important
}
/* Time slots smaller and inline */ .tbgz-slots {
  grid-template-columns:repeat(auto-fill,minmax(92px,1fr));
  gap:8px;
  max-height:260px
}
.tbgz-slot {
  font-size: 12px;
  padding:8px 10px;
  border-radius:12px;
  transition:background .15s ease,color .15s ease
}
.tbgz-slot:hover {
  background:var(--tbgz-accent, #000);
  color:#fff
}
/* Negative hover for key interactives */ .tbgz-cal-nav {
  transition:background .15s ease,color .15s ease
}
.tbgz-cal-nav:hover {
  background:var(--tbgz-accent, #000);
  color:#fff
}
/* --- 0.1.17 layout grid + mobile fixes --- */ :root {
  --tbgz-radius:20px;
  --tbgz-gap:28px;

}
/* Slightly less rounding everywhere */ .tbgz-card,.tbgz-btn,.tbgz-alert,.tbgz-field input,.tbgz-field textarea,.tbgz-slot {
  border-radius:var(--tbgz-radius) !important
}
.tbgz-card-thumb {
  border-radius:calc(var(--tbgz-radius) - 2px) !important
}
.tbgz-sel-img img {
  border-radius:var(--tbgz-radius) !important
}
/* 12-col grid: 3/12 + 1/12 + 8/12 */ .tbgz-grid {
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  gap:var(--tbgz-gap) !important
}
.tbgz-left {
  grid-column:span 3 !important
}
.tbgz-divider {
  grid-column:span 1;
  min-width:0;
  position:relative;
  align-self:stretch
}
.tbgz-right {
  grid-column:span 8 !important
}
@media (max-width: 980px) {
  .tbgz-grid {
    grid-template-columns:1fr !important
  }
  .tbgz-left,.tbgz-right {
    grid-column:auto !important
  }
  .tbgz-divider {
    grid-column:span 1;
    min-width:0;
    position:relative;
    align-self:stretch
  }

}
/* Screen 1: use 12-col grid;
2 cards per row */ .tbgz-cards {
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  grid-auto-rows:1fr;
  padding-top: 40px;
}
.tbgz-card {
  grid-column:span 6
}
@media (max-width: 720px) {
  .tbgz-card {
    grid-column:span 12
  }

}
/* Arrow glyphs (‹ ›) */ .tbgz-arrow {
  font-size:22px;
  line-height:1;
  font-weight:400;
  display:inline-block
}
.tbgz-back,.tbgz-back3 {
  font-size:22px
}
/* Calendar navigation uses text arrows */ .tbgz-cal-nav {
  font-size:22px;
  font-weight: 400;

}
/* Calendar grid should never overflow (mobile fix) */ .tbgz-cal-dow,.tbgz-cal-grid {
  gap:clamp(4px,1.2vw,10px) !important
}
.tbgz-cal-day {
  width:100% !important;
  height:auto !important;
  aspect-ratio:1/1;
  max-width:none;
  margin:0;
  border-radius:999px
}
.tbgz-cal-empty {
  height:auto !important;
  aspect-ratio:1/1
}
@media (max-width: 420px) {
  .tbgz {
    padding:16px
  }
  .tbgz-cal-day {
    font-size:12px
  }

}
/* Slots follow a 12-col raster under the calendar */ .tbgz-slots {
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  max-height:260px
}
.tbgz-slot {
  grid-column:span 3
}
@media (max-width: 860px) {
  .tbgz-slot {
    grid-column:span 4
  }

}
@media (max-width: 560px) {
  .tbgz-slot {
    grid-column:span 6
  }

}
/* Negative effect on focus (no blue outline) */ .tbgz-field input:focus,.tbgz-field textarea:focus {
  outline:none;
  box-shadow:none;
  border-color:var(--tbgz-accent, #000);
  background:var(--tbgz-accent, #000);
  color:#fff;
  caret-color:#fff
}
.tbgz-field input::placeholder,.tbgz-field textarea::placeholder {
  color:#fff
}
/* Black/white checkbox */ .tbgz-privacy input[type="checkbox"] {
  appearance:none;
  -webkit-appearance:none;
  inline-size:18px;
  block-size:18px;
  border:1px solid var(--tbgz-accent, #000);
  border-radius:4px;
  background:#fff;
  display:inline-grid;
  place-items:center;
  margin-top:4px
}
.tbgz-privacy input[type="checkbox"]:checked {
  background:var(--tbgz-accent, #000)
}
.tbgz-privacy input[type="checkbox"]:checked::after {
  content:"";
  width: 14px;
  height: 4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg);
  margin-top: -7px;

}
/* --- 0.1.18 tweaks --- */ :root {
  --tbgz-radius: 15px;
  --tbgz-day:42px
}
/* Split: 4/12 + 1/12 + 7/12 */ .tbgz-left {
  grid-column:span 4 !important
}
.tbgz-right {
  grid-column:span 7 !important
}
/* Divider line shorter (top/bottom) */ .tbgz-divider {
  grid-column:span 1;
  min-width:0;
  position:relative;
  align-self:stretch
}
/* Make calendar sit a bit lower for better baseline alignment */ .tbgz-picker {
  padding-top: 22px;

}
/* Smaller nav/back arrows like reference (use ‹ › glyphs) */ .tbgz-cal-nav {
  width:38px;
  height:38px;
  font-size:18px
}
.tbgz-back,.tbgz-back3 {
  width:38px;
  height:38px;
  font-size:18px
}
.tbgz-arrow {
  font-size:18px
}
/* Calendar day circles smaller, still centered in the 7-col grid */ .tbgz-cal-grid,.tbgz-cal-dow {
  justify-items:center
}
.tbgz-cal-day {
  width:var(--tbgz-day) !important;
  height:var(--tbgz-day) !important;
  aspect-ratio:auto !important;
  margin:0 !important
}
.tbgz-cal-empty {
  width:var(--tbgz-day) !important;
  height:var(--tbgz-day) !important;
  aspect-ratio:auto !important
}
@media (max-width: 420px) {
  :root {
    --tbgz-day:36px
  }
  .tbgz-picker {
    padding-top:6px
  }

}
/* Remove blue focus ring (Chrome) on calendar day buttons */ .tbgz-cal-day:focus,.tbgz-cal-day:focus-visible {
  outline:none;
  box-shadow:none
}
/* Time slots: no rounding */ .tbgz-slot {
  border-radius:0 !important
}
/* Smaller arrows like screenshot (calendar + back + card arrows) */ .tbgz-cal-nav {
  width:38px;
  height:38px;
  font-size:18px
}
.tbgz-back,.tbgz-back3 {
  width:38px;
  height:38px;
  font-size:18px
}
.tbgz-arrow {
  font-size:18px
}
/* Calendar day circles smaller (but still centered in the 7-col grid) */ .tbgz-cal-dow,.tbgz-cal-grid {
  justify-items:center
}
.tbgz-cal-day {
  width:var(--tbgz-day) !important;
  height:var(--tbgz-day) !important;
  aspect-ratio:auto !important;
  margin:0 !important;
  padding:0 !important
}
.tbgz-cal-empty {
  width:var(--tbgz-day) !important;
  height:var(--tbgz-day) !important;
  aspect-ratio:auto !important
}
@media (max-width: 420px) {
  :root {
    --tbgz-day:36px
  }

}
/* Remove blue focus ring on calendar buttons */ .tbgz-cal-day:focus,.tbgz-cal-day:focus-visible {
  outline:none;
  box-shadow:none
}
.tbgz-cal-nav:focus,.tbgz-cal-nav:focus-visible {
  outline:none;
  box-shadow:none
}
/* Slots: no rounding */ .tbgz-slot {
  border-radius:0 !important
}
/* --- 0.1.19 tweaks --- */ /* Center divider inside the 1/12 column and keep it ~200px tall */ .tbgz-divider {
  grid-column:span 1;
  min-width:0;
  position:relative;
  align-self:stretch
}
.tbgz-divider::before {
  content:"";
  width: 1px;
  height:200px;
  background:var(--tbgz-accent, #000);
  display:block;
  top: 119px;
  left: calc(50% - 5px);
  position: relative;
  opacity: 0.2;
}
/* Push calendar + form content down to align with left title baseline */ .tbgz-step2 .tbgz-right {
  padding-top:34px
}
.tbgz-step3 .tbgz-right {
  padding-top: 61px;
}
@media (max-width: 980px) {
  .tbgz-step2 .tbgz-right,.tbgz-step3 .tbgz-right {
    padding-top:10px
  }

}
/* Smaller nav arrows like reference */ .tbgz-cal-nav {
  width:34px;
  height:34px;
  font-size:16px
}
.tbgz-back,.tbgz-back3 {
  width:34px;
  height:34px
}
.tbgz-arrow {
  font-size:16px
}
/* Calendar circles slightly smaller */ :root {
  --tbgz-day:38px
}
@media (max-width: 420px) {
  :root {
    --tbgz-day:34px
  }

}
/* Slots should be rounded again */ .tbgz-slot {
  border-radius: 20px !important;
}
/* Checkbox alignment + black/white */ .tbgz-privacy {
  align-items:flex-start
}
.tbgz-privacy input[type="checkbox"] {
  margin-top:2px !important
}
.tbgz-privacy label {
  line-height:1.35
}
/* Loading state: no text, only reserve space */ .tbgz-slots.tbgz-is-loading {
  min-height:44px
}


.tbgz-iconrow > span:last-child {
  display:block;
  flex:1;
  min-width:0;
  font-size:14px;
  line-height:1.3;
}

.tbgz-iconrow .tbgz-ico {
    flex: 0 0 40px;
    margin-top: 7px;
}


.tbgz-iconrow > :not(.tbgz-ico) { flex: 1 1 auto; min-width: 0; }


/* Modal (used for cancel/reschedule feedback) */
.tbgz-modal-scope{color:var(--tbgz-accent, #000)}
.tbgz-modal-scope .tbgz-modal__body,
.tbgz-modal-scope .tbgz-modal__headline,
.tbgz-modal-scope .tbgz-modal__details{list-style:none;padding-left:0;margin:0 0 12px 0}
.tbgz-modal__details li{margin:0 0 6px 0}
.tbgz-modal__details,
.tbgz-modal-scope .tbgz-modal__details li,
.tbgz-modal-scope .tbgz-modal__note{color:inherit}
.tbgz-modal-scope .tbgz-btn{color:#fff}
.tbgz-modal-scope svg{fill:currentColor;stroke:currentColor}
.tbgz-modal-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index: 99999;
  padding: 24px;
}
.tbgz-modal{
  background:#fff;
  border-radius: 12px;
  max-width: 860px;
  width: 100%;
  box-shadow: 0 12px 40px rgba(0,0,0,.25);
  overflow:hidden;
  border:1px solid var(--tbgz-accent, #000);
}
.tbgz-modal__body{
  /* Some themes apply aggressive resets to modal content; keep padding deterministic */
  padding: 32px 32px 18px 32px !important;
  font-size: 18px;
  line-height: 1.5;
}
.tbgz-modal-overlay .tbgz-modal__body{padding:32px 32px 18px 32px !important;}
.tbgz-modal-overlay .tbgz-modal__actions{padding:10px 18px 18px 18px !important;display:flex !important;justify-content:flex-end !important;align-items:center;gap:12px;flex-wrap:wrap;}

/* Ensure action buttons in modal have visible spacing even if the theme resets flex-gap */
.tbgz-modal-overlay .tbgz-modal__actions > *{margin:0 !important;}
.tbgz-modal-overlay .tbgz-modal__actions > * + *{margin-left:12px !important;}

/* Calendar/action button hover should invert to white (as requested) */
.tbgz-modal-overlay .tbgz-btn.tbgz-btn-secondary:hover,
.tbgz-modal-overlay .tbgz-btn.tbgz-btn-secondary:focus{
  background:#fff !important;
  color:#000 !important;
  border:1px solid #000 !important;
}

.tbgz-modal__headline{
  font-weight: 700;
  font-size: 20px;
  margin-bottom: 10px;
  color:var(--tbgz-accent, #000);
}
.tbgz-modal__details{
  margin: 0;
  padding-left: 0;
  list-style: none;
}
.tbgz-modal-scope .tbgz-modal__details{
  /* Some themes reset lists or turn them into flex rows; force a vertical stack */
  display:flex !important;
  flex-direction:column !important;
  gap:6px;
}
.tbgz-modal-scope .tbgz-modal__details li{
  display:block !important;
  margin:0 !important;
  width:100%;
}
.tbgz-modal__note{
  margin-top: 12px;
  font-weight: 600;
}
.tbgz-modal__actions{
  padding: 10px 18px 18px 18px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

/* ------------------------------------------------------------
   Invert Accent ("negative" colors): swap white <-> accent
   ------------------------------------------------------------ */
.tbgz.tbgz--invert{
  background:var(--tbgz-accent, #000);
  color:#fff;
  border-color:#fff;
  /* derived tones become white-ish */
  --tbgz-accent-soft: rgba(255,255,255,.25);
  --tbgz-accent-faint: rgba(255,255,255,.12);
}
.tbgz.tbgz--invert .tbgz-muted{color:#fff;opacity:.9}
.tbgz.tbgz--invert .tbgz-btn,
.tbgz.tbgz--invert .tbgz-btn-primary{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
  border-color:#fff !important;
}
.tbgz.tbgz--invert .tbgz-btn:hover,
.tbgz.tbgz--invert .tbgz-btn:focus,
.tbgz.tbgz--invert .tbgz-btn-primary:hover,
.tbgz.tbgz--invert .tbgz-btn-primary:focus{
  background:var(--tbgz-accent, #000) !important;
  color:#fff !important;
  border-color:#fff !important;
}

.tbgz.tbgz--invert .tbgz-card,
.tbgz.tbgz--invert .tbgz-card-thumb,
.tbgz.tbgz--invert .tbgz-slot,
.tbgz.tbgz--invert .tbgz-cal-nav,
.tbgz.tbgz--invert .tbgz-cal-day,
.tbgz.tbgz--invert .tbgz-field input,
.tbgz.tbgz--invert .tbgz-field textarea,
.tbgz.tbgz--invert .tbgz-alert{
  background:var(--tbgz-accent, #000);
  color:#fff !important;
  border-color:#fff !important;
}

.tbgz.tbgz--invert .tbgz-field input::placeholder,
.tbgz.tbgz--invert .tbgz-field textarea::placeholder{color:rgba(255,255,255,.8)}

/* Focus becomes white (swapped) */
.tbgz.tbgz--invert .tbgz-field input:focus,
.tbgz.tbgz--invert .tbgz-field textarea:focus{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
  border-color:var(--tbgz-accent, #000) !important;
}
.tbgz.tbgz--invert .tbgz-field input:focus::placeholder,
.tbgz.tbgz--invert .tbgz-field textarea:focus::placeholder{color:var(--tbgz-accent, #000)}

/* Headings/labels */
.tbgz.tbgz--invert .tbgz-field label,
.tbgz.tbgz--invert .tbgz-right-title,
.tbgz.tbgz--invert .tbgz-sel-title,
.tbgz.tbgz--invert .tbgz-sel-desc,
.tbgz.tbgz--invert .tbgz-cal-title,
.tbgz.tbgz--invert .tbgz-day-label{color:#fff !important}

.tbgz.tbgz--invert .tbgz-dot{background:#fff}

/* Calendar: mirror all states (1:1 negative) */
.tbgz.tbgz--invert .tbgz-cal-dow{color:rgba(255,255,255,.85)}
.tbgz.tbgz--invert .tbgz-cal-day{
  background:var(--tbgz-accent, #000);
  color:#fff !important;
  border-color:transparent;
}
.tbgz.tbgz--invert .tbgz-cal-day:hover{border-color:#fff}
.tbgz.tbgz--invert .tbgz-cal-day.is-selected{
  background:#fff;
  color:var(--tbgz-accent, #000) !important;
  border-color:#fff;
}
.tbgz.tbgz--invert .tbgz-cal-day.is-disabled,
.tbgz.tbgz--invert .tbgz-cal-day.is-unavailable{
  color:rgba(255,255,255,.45) !important;
  background:transparent !important;
  border-color:transparent !important;
}
.tbgz.tbgz--invert .tbgz-cal-day.is-disabled:hover,
.tbgz.tbgz--invert .tbgz-cal-day.is-unavailable:hover{border-color:transparent !important}

/* Slots: mirror hover + selected */
.tbgz.tbgz--invert .tbgz-slot{
  background:var(--tbgz-accent, #000);
  color:#fff;
  border-color:#fff;
}
.tbgz.tbgz--invert .tbgz-slot,
.tbgz.tbgz--invert .tbgz-slot *{color:inherit !important;}
.tbgz.tbgz--invert .tbgz-slot:hover{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
  border-color:var(--tbgz-accent, #000) !important;
  box-shadow:none;
}
.tbgz.tbgz--invert .tbgz-slot.is-selected{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
  border-color:var(--tbgz-accent, #000) !important;
}

/* Buttons: mirror default/hover/disabled incl. ghost */
.tbgz.tbgz--invert .tbgz-btn:disabled{
  background:var(--tbgz-accent, #000) !important;
  color:rgba(255,255,255,.55) !important;
  border-color:rgba(255,255,255,.55) !important;
  border-style:dashed;
}
.tbgz.tbgz--invert .tbgz-btn.tbgz-btn--ghost{
  background:var(--tbgz-accent, #000);
  color:#fff;
  border-color:#fff;
}
.tbgz.tbgz--invert .tbgz-btn.tbgz-btn--ghost:hover{
  background:#fff;
  color:var(--tbgz-accent, #000);
}

/* Divider and faint lines */
.tbgz.tbgz--invert .tbgz-divider::before{background:rgba(255,255,255,.7)}

/* Modal in invert mode */
.tbgz-modal-scope.tbgz--invert,
.tbgz-modal-overlay.tbgz--invert{color:#fff}
.tbgz--invert .tbgz-modal{background:var(--tbgz-accent, #000);border-color:#fff}
.tbgz--invert .tbgz-modal__headline{color:#fff}


/* --- Invert refinements (perfect 1:1 negative incl. hover) --- */
.tbgz.tbgz--invert .tbgz-card:hover{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
}
.tbgz.tbgz--invert .tbgz-card:hover *{color:inherit !important;}
.tbgz.tbgz--invert .tbgz-card:hover svg{fill:currentColor;stroke:currentColor}

/* Card text inside cards was forced to accent via !important in base styles.
   In invert mode we must force it back to white (and then accent on hover). */
.tbgz.tbgz--invert .tbgz-card-title,
.tbgz.tbgz--invert .tbgz-card-desc,
.tbgz.tbgz--invert .tbgz-card-arrow{color:#fff !important;}
.tbgz.tbgz--invert .tbgz-card:hover .tbgz-card-title,
.tbgz.tbgz--invert .tbgz-card:hover .tbgz-card-desc,
.tbgz.tbgz--invert .tbgz-card:hover .tbgz-card-arrow{color:var(--tbgz-accent, #000) !important;}

/* Calendar month navigation: default is outlined/white on accent; hover swaps like original */
.tbgz.tbgz--invert .tbgz-cal-nav{
  background:var(--tbgz-accent, #000) !important;
  color:#fff !important;
  border-color:#fff !important;
}
.tbgz.tbgz--invert .tbgz-cal-nav:hover{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
  border-color:#fff !important;
}

/* Back button (step 2/3) should match month nav arrows in invert mode */
.tbgz.tbgz--invert .tbgz-back,
.tbgz.tbgz--invert .tbgz-back3{
  background:var(--tbgz-accent, #000) !important;
  color:#fff !important;
  border-color:#fff !important;
}
.tbgz.tbgz--invert .tbgz-back:hover,
.tbgz.tbgz--invert .tbgz-back3:hover{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
  border-color:#fff !important;
}

/* Calendar selected day hover should keep selected look (no unexpected flip) */
.tbgz.tbgz--invert .tbgz-cal-day.is-selected:hover{
  background:#fff !important;
  color:var(--tbgz-accent, #000) !important;
  border-color:#fff !important;
}

/* Privacy note must be readable in invert */
.tbgz.tbgz--invert .tbgz-privacy{color:#fff !important;}
.tbgz.tbgz--invert .tbgz-privacy a{color:#fff !important;text-decoration:underline;}
.tbgz.tbgz--invert .tbgz-privacy input[type="checkbox"]{
  border-color:#fff !important;
}
.tbgz.tbgz--invert .tbgz-privacy input[type="checkbox"]:checked{
  background:#fff !important;
}
.tbgz.tbgz--invert .tbgz-privacy input[type="checkbox"]:checked::after{
  border-left-color:var(--tbgz-accent, #000) !important;
  border-bottom-color:var(--tbgz-accent, #000) !important;
}

/* Left meta (address/time/date) back to larger size */
.tbgz-iconrow > span:last-child{font-size:15px;line-height:1.35;font-weight: 400;}


/* === 0.1.71 Accent/White Hover Adjustment === */
/* Kreis um buchbaren Tag nur bei Hover wenn White <-> Accent aktiv */
/* Gewählter Tag bleibt weiterhin markiert */

.tbgz-accent-swap .tbgz-cal-day.bookable {
    border: none !important;
}

.tbgz-accent-swap .tbgz-cal-day.bookable:hover {
    border: 2px solid var(--tbgz-accent-color) !important;
    border-radius: 50% !important;
}

.tbgz-accent-swap .tbgz-cal-day.bookable.selected {
    border: 2px solid var(--tbgz-accent-color) !important;
    border-radius: 50% !important;
}


/* === 0.1.72 Fix: Invert (Weiß <-> Accent) - Kreis nur bei Hover, selected bleibt ===
   Problem: In invert mode, a grouped rule sets border-color:#fff !important on .tbgz-cal-day,
   so the circle was always visible. We override explicitly here.
*/
.tbgz.tbgz--invert .tbgz-cal-day{ border-color: transparent !important; }
.tbgz.tbgz--invert .tbgz-cal-day:hover{ border-color: #fff !important; }
.tbgz.tbgz--invert .tbgz-cal-day.is-selected{ border-color: #fff !important; }


/* === 0.1.73 Feiertage: Invert ohne Kreis + Tooltip === */

/* Invert (Weiß <-> Accent): Feiertag NICHT umranden, nur Datum abschwächen */
.tbgz.tbgz--invert .tbgz-cal-day.is-holiday{
  border-color: transparent !important;
  opacity: 0.45 !important;
}

/* Optional: auch im normalen Modus Feiertag etwas abschwächen (ohne Rahmen) */
.tbgz .tbgz-cal-day.is-holiday{
  opacity: 1;
}

/* Tooltip (Mouse Over) für Feiertage – in beiden Modi */
.tbgz .tbgz-cal-day.is-holiday{
  position: relative;
}

/* Tooltip Box */
.tbgz .tbgz-cal-day.is-holiday:hover::after{
  content: attr(title);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
  background: rgba(0,0,0,0.85);
  color: #fff;
  z-index: 9999;
  pointer-events: none;
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
}

/* Tooltip Pfeil */
.tbgz .tbgz-cal-day.is-holiday:hover::before{
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 2px);
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: rgba(0,0,0,0.85);
  z-index: 9999;
  pointer-events: none;
}


/* === 0.1.75 Tooltip Anpassung nach Wunsch === */

.tbgz .tbgz-cal-day.is-holiday:hover::after {
    content: attr(data-holiday);
    position: absolute;
    left: 50%;
    top: 2px;
    transform: translate(-50%, calc(-100% - 10px));
    padding: 12px 12px 17px  12px;
    border-radius: 8px;
    font-size: 12px !important;
    font-weight: 500;
    line-height: 0.5;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    max-width: 220px;
    background: var(--tbgz-accent, #000);
    color: #fff !important;
    z-index: 99999;
    pointer-events: none;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    width: fit-content;
}

/* === Progress-Navigation (Booking Steps) === */
.tbgz-progress{
  position:relative;
  width:min(640px, 100%);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding-top:0;
  /* clickable steps are controlled via .is-clickable/.is-disabled */
  pointer-events:auto;
  z-index:2;
  top: 15px;
}

/* Focus indicators only after first TAB (prevents outlines on initial mouse click) */
body:not(.tbgz-user-is-tabbing) .tbgz button:focus-visible,
body:not(.tbgz-user-is-tabbing) .tbgz [role="button"]:focus-visible,
body:not(.tbgz-user-is-tabbing) .tbgz a:focus-visible,
body:not(.tbgz-user-is-tabbing) .tbgz input:focus-visible,
body:not(.tbgz-user-is-tabbing) .tbgz select:focus-visible,
body:not(.tbgz-user-is-tabbing) .tbgz textarea:focus-visible{
  outline: none !important;
}

body.tbgz-user-is-tabbing .tbgz button:focus-visible,
body.tbgz-user-is-tabbing .tbgz [role="button"]:focus-visible,
body.tbgz-user-is-tabbing .tbgz a:focus-visible,
body.tbgz-user-is-tabbing .tbgz input:focus-visible,
body.tbgz-user-is-tabbing .tbgz select:focus-visible,
body.tbgz-user-is-tabbing .tbgz textarea:focus-visible{
  outline: 3px solid var(--tbgz-accent);
  outline-offset: 3px;
}


.tbgz-progress:before{
  content:"";
  position:absolute;
  left: 9%;
  right: 9%;
  top: 18px;
  height: 1px;
  background:rgba(0,0,0,.16);
  z-index:0;
  /* gap: 30px; */
}

.tbgz-progress-step{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  width: 64px;
  cursor:default;
  user-select:none;
  z-index:1;

  /* reset button styles (progress steps are <button>) */
  background: white;
  border:0;
  padding:0;
  font:inherit;
  color:inherit;
}

.tbgz-progress-step.is-clickable{
  cursor:pointer;
}

.tbgz-progress-step.is-disabled{
  /* opacity:.45; */
}

.tbgz-progress-step:focus-visible{
  outline:2px solid var(--tbgz-accent, #000);
  outline-offset:6px;
  border-radius:16px;
}

/* Calendar: ensure date cells always show a visible focus indicator */
.tbgz .tbgz-cal-day:focus-visible{
  outline: 3px solid var(--tbgz-accent, #000) !important;
  outline-offset: 3px !important;
}

.tbgz-progress-circle{
  position:relative;
  z-index: 3;
  width: 35px;
  height: 35px;
  border-radius:999px;
  border: 1px solid rgba(0,0,0,.22);
  background: #ffffff;
  color:rgba(0,0,0,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  line-height:1;
}

/* Screenreader helpers */
.tbgz-sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

.tbgz-progress-label{
  font-size:14px;
  color:rgba(0,0,0,.55);
  white-space:nowrap;
}

.tbgz-progress-step.is-done .tbgz-progress-circle,
.tbgz-progress-step.is-active .tbgz-progress-circle{
  border-color:var(--tbgz-accent, #000);
  background:var(--tbgz-accent, #000);
  color:#fff;
}

.tbgz-progress-step.is-active .tbgz-progress-label{
  color:#111;
  font-weight:600;
}

.tbgz-progress-step.is-done .tbgz-progress-label{
  color:rgba(0,0,0,.75);
  /* opacity: 0; */
}

@media (max-width: 980px) {
  .tbgz-progress{
    width:100%;
  }
  .tbgz-progress-step{
    min-width:auto;
  }
  .tbgz-progress-label{
    font-size:12px;
  }
.tbgz-progress-step.is-done .tbgz-progress-label {
    color: rgba(0, 0, 0, .75);
    opacity: 0;
}
.tbgz-progress-step.is-disabled .tbgz-progress-label {
    color: rgba(0, 0, 0, .75);
    opacity: 0;
}

  
}

.tbgz.tbgz--invert .tbgz-progress:before{
  background:rgba(255,255,255,.22);
}
.tbgz.tbgz--invert .tbgz-progress-circle{
  border-color:rgba(255,255,255,.35);
  background:transparent;
  color:rgba(255,255,255,.75);
}
.tbgz.tbgz--invert .tbgz-progress-label{
  color:rgba(255,255,255,.75);
}
.tbgz.tbgz--invert .tbgz-progress-step.is-active .tbgz-progress-label{
  color:#fff;
}
.tbgz-privacy a{
  text-decoration: underline!important;
}
/* --- 0.2.36 frontend calendar styles moved from shortcode output --- */
.tbgz-staff-cal{
  --tbgz-hour-count: 15;
}
.tbgz-calbar{position:sticky;top:16px;z-index:50;background:#fff;border:1px solid var(--tbgz-accent,#000);border-radius:14px;padding:10px;margin-top:12px}
.tbgz-calbar .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tbgz-calbar .spacer{flex:1 1 auto}
.tbgz-mini-btn{padding: 10px 10px;border:1px solid var(--tbgz-accent,#000);border-radius:10px;text-decoration:none;background:#fff;color:var(--tbgz-accent,#000);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1;box-sizing:border-box;vertical-align:middle}
.tbgz-mini-btn.is-active{background:var(--tbgz-accent,#000);color:#fff}
.tbgz-mini-btn--block{display:block;padding:14px}
.tbgz-fs-ico{width: 15px;height: 15px;display:block;flex:0 0 18px;background:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 14a1 1 0 0 1 1 1v2h2a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1zm10 0a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-3a1 1 0 1 1 0-2h2v-2a1 1 0 0 1 1-1zM7 5h3a1 1 0 1 1 0 2H8v2a1 1 0 1 1-2 0V6a1 1 0 0 1 1-1zm11 1v3a1 1 0 1 1-2 0V7h-2a1 1 0 1 1 0-2h3a1 1 0 0 1 1 1z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 14a1 1 0 0 1 1 1v2h2a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1zm10 0a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-3a1 1 0 1 1 0-2h2v-2a1 1 0 0 1 1-1zM7 5h3a1 1 0 1 1 0 2H8v2a1 1 0 1 1-2 0V6a1 1 0 0 1 1-1zm11 1v3a1 1 0 1 1-2 0V7h-2a1 1 0 1 1 0-2h3a1 1 0 0 1 1 1z'/%3E%3C/svg%3E")}
body.tbgz-no-scroll{overflow:hidden}
#tbgzStaffCal.tbgz-is-fs{position:fixed;inset:0;z-index:2147483646;background:#fff;width:100vw;height:100vh;overflow:auto;padding:12px;box-sizing:border-box;margin:0;max-width:none;border-radius:0}
#tbgzStaffCal.tbgz-is-fs .tbgz-calbar{top:0;margin-top:0}
.tbgz-table--mt{margin-top:14px}
.tbgz-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:14px}
.tbgz-month-head{font-weight:800;padding:4px 6px;font-size:13px}
.tbgz-month-cell{border:1px solid var(--tbgz-accent,#000);border-radius:12px;background:#fff;padding:8px;min-height:132px;display:flex;flex-direction:column}
.tbgz-month-cell.is-outside{opacity:.35}
.tbgz-month-cell-head{font-weight:800;display:flex;justify-content:space-between}
.tbgz-month-cell .events{margin-top:6px;overflow:auto;scrollbar-width:none}
.tbgz-month-cell .events::-webkit-scrollbar{display:none}
.tbgz-evt-chip{border-left:3px solid var(--tbgz-accent,#000);padding:5px 7px;margin:0 0 6px;background:rgba(0,0,0,.04);border-radius:10px;font-size:12px;cursor:pointer}
.tbgz-evt-chip strong,.tbgz-event-block strong{display:block;font-size:12px}
.tbgz-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.tbgz-time-layout{display:grid;grid-template-columns:72px 1fr;margin-top:14px;border:1px solid var(--tbgz-accent,#000);border-radius:14px;overflow:hidden;background:#fff}
.tbgz-time-axis{background:#fff;border-right:1px solid rgba(0,0,0,.12)}
.tbgz-time-axis .spacer{height: 45px;border-bottom:1px solid rgba(0,0,0,.08)}
.tbgz-time-axis .lab{height:var(--tbgz-hour-h,56px);padding:4px 8px 0 8px;font-size:12px;color:#666;border-bottom:1px solid rgba(0,0,0,.08)}
.tbgz-time-grid{display:grid;background:#fff}
.tbgz-time-grid.week{grid-template-columns:repeat(7,minmax(0,1fr))}
.tbgz-time-grid.day{grid-template-columns:minmax(0,1fr)}
.tbgz-day-col{position:relative;border-right:1px solid rgba(0,0,0,.08)}
.tbgz-day-col:last-child{border-right:0}
.tbgz-day-head{height:44px;padding:8px 10px;border-bottom: 0px solid rgba(0,0,0,.08);font-weight:700;background:#fff;position:sticky;top:0;z-index:2;font-size: 14px;}
.tbgz-day-body{position:relative;height:calc(var(--tbgz-hour-h,56px) * var(--tbgz-hour-count,15))}
.tbgz-hour-line{position:absolute;left:0;right:0;height:0;border-top:1px solid rgba(0,0,0,.08)}
.tbgz-slot-cell{position:absolute;left:0;right:0;height:var(--tbgz-hour-h,56px);cursor:default}
.tbgz-slot-cell:hover{background:rgba(0,0,0,.03)}
.tbgz-event-block{position:absolute;left:6px;right:6px;padding:6px 8px;border-radius:10px;background:rgba(0,0,0,.06);border-left:3px solid var(--tbgz-accent,#000);overflow:hidden;cursor:pointer;z-index:1}
#tbgzCalModal,
#tbgzCalCreateModal{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  max-width:none !important;
  min-width:0 !important;
  height:100vh !important;
  height:100dvh !important;
  max-height:none !important;
  margin:0 !important;
  padding:clamp(12px,3vw,32px) !important;
  background:rgba(0,0,0,.35) !important;
  display:none;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  z-index:2147483647 !important;
  isolation:isolate !important;
  transform:none !important;
  contain:none !important;
}
#tbgzCalModal,
#tbgzCalModal *,
#tbgzCalCreateModal,
#tbgzCalCreateModal *{box-sizing:border-box !important}
.tbgz-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);display:none;align-items:center;justify-content:center;padding:clamp(12px,3vw,32px);z-index:2147483647;overflow:hidden}
#tbgzCalModal > .tbgz-modal,
#tbgzCalCreateModal > .tbgz-modal{
  position:relative !important;
  display:block !important;
  width:min(960px,100%) !important;
  max-width:960px !important;
  min-width:0 !important;
  max-height:calc(100dvh - 64px) !important;
  margin:0 auto !important;
  padding:clamp(18px,2.4vw,30px) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  background:#fff !important;
  color:var(--tbgz-accent,#000) !important;
  border:1px solid var(--tbgz-accent,#000) !important;
  border-radius:16px !important;
}
.tbgz-modal-head{display:flex;gap:10px;align-items:center}
.tbgz-modal-title{flex:1 1 auto}
#tbgzCalModal .tbgz-modal-head,
#tbgzCalCreateModal .tbgz-modal-head{display:flex !important;align-items:center !important;gap:14px !important;margin:0 0 18px 0 !important}
#tbgzCalModal .tbgz-modal-title,
#tbgzCalCreateModal .tbgz-modal-title{flex:1 1 auto !important;margin:0 !important;font-size:clamp(22px,2vw,30px) !important;line-height:1.2 !important;color:var(--tbgz-accent,#000) !important}
#tbgzCalCreateForm.tbgz-form-grid{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:14px 18px !important;width:100% !important;min-width:0 !important;max-width:none !important;margin:0 !important}
#tbgzCalCreateForm.tbgz-form-grid > *{min-width:0 !important;max-width:100% !important;margin:0 !important}
.tbgz-form-grid .full{grid-column:1/-1}
#tbgzCalCreateForm .full{grid-column:1/-1 !important}
.tbgz-form-grid input,.tbgz-form-grid textarea{width:100%;max-width:100%;min-width:0;padding:10px;border:1px solid #c7c7c7;border-radius:10px}
#tbgzCalCreateForm label{display:block !important;margin:0 !important;font-weight:700 !important;line-height:1.35 !important;color:var(--tbgz-accent,#000) !important}
#tbgzCalCreateForm input,
#tbgzCalCreateForm textarea{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:6px 0 0 0 !important;
  padding:10px 12px !important;
  border:1px solid #c7c7c7 !important;
  border-radius:10px !important;
  background:#fff !important;
  color:#111 !important;
  font:inherit !important;
  line-height:1.4 !important;
}
.tbgz-form-actions{display:flex;gap:10px;justify-content:flex-end}
#tbgzCalCreateForm .tbgz-form-actions{display:flex !important;justify-content:flex-end !important;align-items:center !important;gap:10px !important;margin-top:10px !important}
.tbgz-alert--compact{margin:10px 0}
.tbgz-detail-time{font-weight:800}
.tbgz-detail-title,.tbgz-detail-name,.tbgz-detail-notes,.tbgz-detail-ref{margin-top:6px}
.tbgz-detail-ref{opacity:.75}
@media (max-width:900px){.tbgz-time-layout{grid-template-columns:58px 1fr}.tbgz-form-grid{grid-template-columns:1fr}#tbgzCalCreateForm.tbgz-form-grid{grid-template-columns:1fr !important}.tbgz-month{grid-template-columns:repeat(2,minmax(0,1fr))}.tbgz-time-grid.week{grid-template-columns:1fr}}


/* --- 0.2.37 modal close + create form cleanup --- */
.tbgz-modal-close{width:40px;min-width:40px;height:40px;padding:0;border:1px solid var(--tbgz-accent,#000);border-radius:10px;background:#fff;color:var(--tbgz-accent,#000);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:22px;line-height:1;font-weight:400;text-align:center;box-sizing:border-box}
.tbgz-modal-close:hover,.tbgz-modal-close:focus{background:var(--tbgz-accent,#000);color:#fff}
.tbgz-modal-close span{display:block;line-height:1}

.tbgz-detail-actions{margin-top:12px}.tbgz-delete-entry{min-height:auto;padding:10px 14px}
