/* Strive Widgets — Class Timetable v1.7.0 */
.elementor-widget-strive_class_timetable{width:100%;min-width:0}
.strive-tt{
  /* layout switches (set per device by the Layout control) */
  --tt-grid:grid;--tt-tabs:none;--tt-day:grid;--tt-day-on:grid;--tt-dname:block;--tt-dname-align:center;--tt-div:block;--tt-slot:flex;--tt-fill:flex;--tt-time-mt:0px;
  --tt-cg:3.125vw;--tt-div-c:#333;--tt-div-w:.5px;--tt-line-c:#333;--tt-line-w:.5px;--tt-row-pad:25px;--tt-name-gap:5px;--tt-time-col:110px;--tt-head-gap:130px;
  --tt-accent:var(--e-global-color-accent,#F15423);
  width:100%;min-width:0;color:var(--e-global-color-text,#fff)}

/* ---------- header ---------- */
.strive-tt__head{display:flex;align-items:center;justify-content:space-between;gap:24px 32px;flex-wrap:wrap;margin-bottom:var(--tt-head-gap)}
.strive-tt .strive-tt__title{margin:0;display:flex;align-items:baseline;flex-wrap:wrap;column-gap:20px;row-gap:4px;color:inherit;font-size:inherit;line-height:1.2;letter-spacing:0;text-transform:none}
.strive-tt__month{font-size:clamp(28px,2.08vw,40px);font-weight:100;line-height:1.2;text-transform:uppercase}
.strive-tt__label{font-size:clamp(15px,1.04vw,20px);font-weight:700;text-transform:uppercase}
.strive-tt .strive-tt__note{margin:8px 0 0 3px;padding:0;font-size:clamp(12px,.78vw,15px);font-weight:200;letter-spacing:.1em;text-transform:uppercase}
.strive-tt .strive-tt__btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;width:450px;max-width:100%;min-height:60px;padding:8px 20px;box-sizing:border-box;
  border:.5px solid #aaa;color:inherit;text-decoration:none;font-size:clamp(13px,.94vw,18px);font-weight:200;letter-spacing:.2em;text-transform:uppercase;line-height:1.2;text-align:center;
  transition:background-color .35s ease,color .35s ease,border-color .35s ease}
.strive-tt .strive-tt__btn:hover,.strive-tt .strive-tt__btn:focus-visible{background-color:#fff;color:#000;border-color:#fff}
.strive-tt__btn-icon{display:inline-flex;flex:none;font-size:28px;line-height:1}
.strive-tt__btn-icon svg{width:1.04em;height:1em;fill:currentColor}
.strive-tt__btn-icon i{font-size:inherit}

/* ---------- tabs ---------- */
.strive-tt__tabs{display:var(--tt-tabs);gap:6px;margin-bottom:8px;overflow-x:auto;scrollbar-width:none}
.strive-tt__tabs::-webkit-scrollbar{display:none}
.strive-tt .strive-tt__tab{-webkit-appearance:none;appearance:none;flex:1 1 0;min-width:0;height:44px;margin:0;padding:0 6px;border:1px solid #333;border-radius:0;background:transparent;box-shadow:none;
  color:inherit;font:inherit;font-size:12px;font-weight:300;letter-spacing:.12em;line-height:1;text-transform:uppercase;cursor:pointer;white-space:nowrap;
  transition:border-color .25s ease,color .25s ease,background-color .25s ease}
.strive-tt .strive-tt__tab:hover{background:transparent;color:var(--tt-accent)}
.strive-tt .strive-tt__tab[aria-selected="true"]{border-color:var(--tt-accent);color:var(--tt-accent);background:transparent}
.strive-tt .strive-tt__tab:focus-visible{outline:1px solid var(--tt-accent);outline-offset:2px}

/* ---------- grid / days ---------- */
.strive-tt__grid{display:var(--tt-grid);grid-template-columns:repeat(var(--tt-cols,6),minmax(0,1fr));grid-template-rows:auto repeat(var(--tt-rows,7),auto);column-gap:var(--tt-cg)}
.strive-tt__day{display:var(--tt-day);grid-row:1 / -1;grid-template-rows:subgrid;position:relative;min-width:0}
.strive-tt__day.is-active{display:var(--tt-day-on)}
.strive-tt__day+.strive-tt__day{margin-top:var(--tt-day-mt,0px)}
.strive-tt__day+.strive-tt__day::before{content:"";display:var(--tt-div);position:absolute;top:0;bottom:0;left:calc(var(--tt-cg) / -2);border-left:var(--tt-div-w) solid var(--tt-div-c);pointer-events:none}
.strive-tt .strive-tt__dname{display:var(--tt-dname);margin:0 0 20px;padding:0;color:inherit;text-align:var(--tt-dname-align);font-size:clamp(14px,.94vw,18px);line-height:1.25;font-weight:200;letter-spacing:.1em;text-transform:uppercase}
.strive-tt--hl .is-today .strive-tt__dname{color:var(--tt-accent)}
.strive-tt__slot{display:var(--tt-slot);flex-direction:column;align-items:flex-start;padding:var(--tt-row-pad) 0;border-bottom:var(--tt-line-w) solid var(--tt-line-c);min-width:0;
  grid-template-columns:var(--tt-time-col) minmax(0,1fr);grid-template-areas:"time name" "time coach";column-gap:16px}
.strive-tt__day>.strive-tt__slot:last-child,.strive-tt__slot--fill{border-bottom-color:transparent}
.strive-tt__slot--fill{display:var(--tt-fill)}
.strive-tt__time{grid-area:time;font-size:12px;line-height:1.2;font-weight:200;letter-spacing:.2em;text-transform:uppercase;color:var(--tt-accent);padding-top:0}
.strive-tt__name{grid-area:name;margin-top:var(--tt-name-gap);font-size:clamp(14px,1.04vw,20px);line-height:1.2;font-weight:200;letter-spacing:.1em;text-transform:uppercase;overflow-wrap:break-word;hyphens:manual}
.strive-tt__coach{grid-area:coach;margin-top:5px;font-size:12px;line-height:1.2;font-weight:200;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
/* grid: time above the class; tabs / list: time beside it, lined up with the class name */
.strive-tt .strive-tt__time{align-self:start;margin-top:var(--tt-time-mt,0)}
.strive-tt__empty{margin:0;padding:40px 0;text-align:center;opacity:.8}

/* tablet / mobile defaults (any size set in the widget's Style tab wins) */
@media (max-width:1024px){.strive-tt__name{font-size:18px}.strive-tt__dname{font-size:16px}}
@media (max-width:767px){.strive-tt__name{font-size:16px}.strive-tt__month{font-size:30px}}
