/* GTGF v13.37 — photographic discipline cards, athlete dashboard and Strava module */
.gtgf-discipline-card-v1337{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  min-height:430px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#0b0b0b!important;
  border-color:rgba(255,255,255,.13)!important;
  color:#fff!important;
  isolation:isolate;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease!important;
}
.gtgf-discipline-card-v1337:hover{
  transform:translateY(-5px)!important;
  border-color:rgba(255,91,0,.72)!important;
  box-shadow:0 24px 55px rgba(0,0,0,.23)!important;
}
.gtgf-discipline-card-v1337 .gtgf-discipline-photo{
  position:relative;
  flex:0 0 210px;
  overflow:hidden;
  background:#151515;
}
.gtgf-discipline-card-v1337 .gtgf-discipline-photo:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.03) 0%,rgba(0,0,0,.12) 45%,rgba(0,0,0,.78) 100%);
}
.gtgf-discipline-card-v1337 .gtgf-discipline-photo img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  transform:scale(1.01);
  transition:transform .55s ease,filter .4s ease;
}
.gtgf-discipline-card-v1337:hover .gtgf-discipline-photo img{transform:scale(1.065);filter:saturate(1.08)}
.gtgf-discipline-card-v1337 .gtgf-discipline-index{
  position:absolute;
  left:22px;
  top:20px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.45);
  color:#fff;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.gtgf-discipline-card-v1337 .gtgf-discipline-content{
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  padding:25px 24px 24px;
}
.gtgf-discipline-card-v1337 .gtgf-old-discipline-icon,
.gtgf-discipline-card-v1337 > svg,
.gtgf-discipline-card-v1337 > .icon,
.gtgf-discipline-card-v1337 .sport-icon{display:none!important}
.gtgf-discipline-card-v1337 h2,
.gtgf-discipline-card-v1337 h3,
.gtgf-discipline-card-v1337 h4,
.gtgf-discipline-card-v1337 strong{
  margin:0 0 12px!important;
  color:#fff!important;
  font-size:clamp(1.55rem,2.3vw,2.15rem)!important;
  line-height:.96!important;
  letter-spacing:-.035em!important;
}
.gtgf-discipline-card-v1337 p{
  max-width:29ch;
  margin:0 0 24px!important;
  color:rgba(255,255,255,.67)!important;
  font-size:.94rem!important;
  line-height:1.6!important;
}
.gtgf-discipline-card-v1337 a{
  margin-top:auto!important;
  color:#fff!important;
  font-size:.7rem!important;
  font-weight:900!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
}
.gtgf-discipline-card-v1337 a:after{content:"";display:block;width:42px;height:2px;margin-top:10px;background:#ff5900;transition:width .25s ease}
.gtgf-discipline-card-v1337:hover a:after{width:100%}

/* Athlete dashboard */
.gtgf-athlete-dashboard-v1337{
  --dash-orange:#ff5900;
  width:min(1420px,calc(100% - 40px));
  margin:36px auto 58px;
  border:1px solid rgba(255,255,255,.14);
  background:#090909;
  color:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.26);
}
.gtgf-athlete-dashboard-v1337 *{box-sizing:border-box}
.gtgf-dashboard-head{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(250px,.5fr);
  gap:32px;
  padding:clamp(28px,4vw,54px);
  border-bottom:1px solid rgba(255,255,255,.12);
  background:radial-gradient(circle at 86% 10%,rgba(255,89,0,.19),transparent 34%),#090909;
}
.gtgf-dashboard-kicker{display:block;margin-bottom:14px;color:var(--dash-orange);font-size:.68rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.gtgf-dashboard-head h1,.gtgf-dashboard-head h2{max-width:13ch;margin:0;color:#fff;font-size:clamp(2.4rem,5vw,5.2rem);line-height:.91;letter-spacing:-.055em;text-transform:uppercase}
.gtgf-dashboard-head p{max-width:62ch;margin:20px 0 0;color:rgba(255,255,255,.66);font-size:1rem;line-height:1.7}
.gtgf-dashboard-status{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:28px}
.gtgf-dashboard-status strong{font-size:clamp(3.2rem,6vw,6.5rem);line-height:.85;color:var(--dash-orange)}
.gtgf-dashboard-status span{color:rgba(255,255,255,.48);font-size:.64rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.gtgf-dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.gtgf-dash-card{position:relative;min-height:220px;padding:28px;border-right:1px solid rgba(255,255,255,.11);border-bottom:1px solid rgba(255,255,255,.11);overflow:hidden}
.gtgf-dash-card:nth-child(3n){border-right:0}
.gtgf-dash-card--training{grid-column:span 5}
.gtgf-dash-card--volume{grid-column:span 4}
.gtgf-dash-card--event{grid-column:span 3}
.gtgf-dash-card--nutrition{grid-column:span 4}
.gtgf-dash-card--knowledge{grid-column:span 5}
.gtgf-dash-card--streak{grid-column:span 3}
.gtgf-dash-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;color:rgba(255,255,255,.48);font-size:.63rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.gtgf-dash-label b{color:var(--dash-orange);font-weight:900}
.gtgf-dash-card h3{max-width:18ch;margin:0 0 14px;color:#fff;font-size:clamp(1.4rem,2.25vw,2.25rem);line-height:1.02;letter-spacing:-.035em}
.gtgf-dash-card p{margin:0;color:rgba(255,255,255,.58);line-height:1.55}
.gtgf-dash-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.gtgf-dash-pill{padding:8px 10px;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.72);font-size:.64rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.gtgf-dash-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin-top:22px;padding:0 15px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font-size:.67rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:.2s ease}
.gtgf-dash-action:hover{border-color:var(--dash-orange);background:var(--dash-orange);color:#080808}
.gtgf-dash-action[disabled]{opacity:.55;cursor:default}
.gtgf-volume-row{display:flex;align-items:flex-end;gap:10px;margin-top:18px}
.gtgf-volume-row strong{font-size:clamp(2.6rem,4vw,4.8rem);line-height:.85;color:#fff;letter-spacing:-.06em}
.gtgf-volume-row span{padding-bottom:7px;color:rgba(255,255,255,.43);font-size:.68rem;font-weight:900;text-transform:uppercase}
.gtgf-progress{height:5px;margin-top:24px;background:rgba(255,255,255,.1);overflow:hidden}
.gtgf-progress span{display:block;height:100%;background:var(--dash-orange)}
.gtgf-event-countdown{display:block;margin-top:18px;color:var(--dash-orange);font-size:clamp(2.8rem,4vw,4.8rem);font-weight:950;line-height:.85;letter-spacing:-.06em}
.gtgf-knowledge-list{display:grid;gap:0;margin-top:4px}
.gtgf-knowledge-list a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 0;border-top:1px solid rgba(255,255,255,.1);color:#fff;text-decoration:none}
.gtgf-knowledge-list a:first-child{border-top:0}
.gtgf-knowledge-list span{color:rgba(255,255,255,.58);font-size:.72rem}
.gtgf-streak-number{display:block;color:var(--dash-orange);font-size:clamp(4.4rem,7vw,7.5rem);font-weight:950;line-height:.8;letter-spacing:-.075em}
.gtgf-badges{display:flex;gap:10px;margin-top:22px}
.gtgf-badge{display:grid;place-items:center;width:76px;aspect-ratio:1;border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.35);font-size:.58rem;font-weight:900;letter-spacing:.05em;text-align:center;text-transform:uppercase}
.gtgf-badge.is-earned{border-color:var(--dash-orange);background:rgba(255,89,0,.12);color:#fff}

/* Ruben / Strava */
.gtgf-ruben-strava-v1337{width:min(1420px,calc(100% - 40px));margin:48px auto;border:1px solid rgba(255,255,255,.14);background:#090909;color:#fff}
.gtgf-strava-shell{display:grid;grid-template-columns:minmax(290px,.7fr) minmax(0,1.3fr)}
.gtgf-strava-copy{padding:clamp(30px,4vw,58px);border-right:1px solid rgba(255,255,255,.12);background:linear-gradient(145deg,rgba(252,76,2,.18),transparent 56%)}
.gtgf-strava-mark{display:inline-flex;align-items:center;gap:9px;margin-bottom:24px;color:#fc4c02;font-size:.72rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.gtgf-strava-mark:before{content:"";width:12px;height:18px;background:#fc4c02;clip-path:polygon(50% 0,100% 55%,72% 55%,100% 100%,49% 63%,0 100%,28% 55%,0 55%)}
.gtgf-strava-copy h2{margin:0;color:#fff;font-size:clamp(2.3rem,4.5vw,4.8rem);line-height:.9;letter-spacing:-.055em;text-transform:uppercase}
.gtgf-strava-copy p{max-width:47ch;margin:22px 0 0;color:rgba(255,255,255,.64);line-height:1.7}
.gtgf-strava-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.gtgf-strava-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;background:#fc4c02;color:#fff!important;font-size:.69rem;font-weight:950;letter-spacing:.11em;text-decoration:none;text-transform:uppercase}
.gtgf-strava-button--ghost{border:1px solid rgba(255,255,255,.25);background:transparent}
.gtgf-strava-embed{min-width:0;padding:24px;background:#111}
.gtgf-strava-empty{display:grid;min-height:340px;place-items:center;padding:35px;border:1px dashed rgba(255,255,255,.17);text-align:center}
.gtgf-strava-empty strong{display:block;margin-bottom:10px;font-size:1.25rem}
.gtgf-strava-empty p{max-width:48ch;margin:0;color:rgba(255,255,255,.54);line-height:1.6}
.gtgf-strava-admin-note{margin-top:18px;padding:12px 14px;border-left:3px solid #fc4c02;background:rgba(252,76,2,.09);color:rgba(255,255,255,.65);font-size:.76rem;line-height:1.5}

@media(max-width:1000px){
 .gtgf-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gtgf-dash-card,.gtgf-dash-card--training,.gtgf-dash-card--volume,.gtgf-dash-card--event,.gtgf-dash-card--nutrition,.gtgf-dash-card--knowledge,.gtgf-dash-card--streak{grid-column:span 1}
 .gtgf-dash-card:nth-child(3n){border-right:1px solid rgba(255,255,255,.11)}
 .gtgf-dash-card:nth-child(2n){border-right:0}
 .gtgf-strava-shell{grid-template-columns:1fr}
 .gtgf-strava-copy{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
}
@media(max-width:700px){
 .gtgf-athlete-dashboard-v1337,.gtgf-ruben-strava-v1337{width:calc(100% - 20px);margin-top:20px}
 .gtgf-dashboard-head{grid-template-columns:1fr;padding:27px 22px}
 .gtgf-dashboard-status{align-items:flex-start}
 .gtgf-dashboard-grid{grid-template-columns:1fr}
 .gtgf-dash-card{grid-column:1!important;min-height:0;padding:24px 21px;border-right:0!important}
 .gtgf-discipline-card-v1337{min-height:390px!important}
 .gtgf-discipline-card-v1337 .gtgf-discipline-photo{flex-basis:190px}
 .gtgf-strava-copy,.gtgf-strava-embed{padding:24px 20px}
}
