/* Gym Skills Events — front-end styles */
.gse{
  --gse-navy:#05458F;--gse-amber:#FFAF00;--gse-green:#7BC64D;--gse-teal:#1CBBB4;--gse-sky:#5790CC;
  --gse-text:#333333;--gse-muted:#5B6B7F;--gse-rule:#E4E9F0;--gse-tint:#EEF3F9;--gse-white:#FFFFFF;
  --gse-radius:20px;
  font-family:'Poppins',Montserrat,system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--gse-text);line-height:1.6;
  padding:48px 0;box-sizing:border-box;
}
.gse *,.gse *::before,.gse *::after{box-sizing:border-box}
.gse img{max-width:100%;display:block}
.gse a{text-decoration:none;color:inherit}
.gse-wrap{max-width:1180px;margin:0 auto;padding:0 20px}

/* ---- section header ---- */
.gse-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 32px;margin-bottom:34px}
.gse-eyebrow{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gse-teal)}
.gse h2.gse-title{margin:0;font-family:inherit;font-size:clamp(30px,4vw,44px);font-weight:800;line-height:1.1;color:var(--gse-navy);letter-spacing:-.01em;text-wrap:balance}
.gse-bar{display:flex;height:6px;width:150px;border-radius:3px;overflow:hidden;margin:16px 0 14px}
.gse-bar span{flex:1}
.gse-bar span:nth-child(1){background:var(--gse-amber)}
.gse-bar span:nth-child(2){background:var(--gse-green)}
.gse-bar span:nth-child(3){background:var(--gse-teal)}
.gse-bar span:nth-child(4){background:var(--gse-sky)}
.gse-bar span:nth-child(5){background:var(--gse-navy)}
.gse-intro{margin:0;max-width:560px;font-size:16px;color:var(--gse-muted)}
.gse-head-right{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
@media(min-width:760px){.gse-head-right{align-items:flex-end}}

/* ---- buttons ---- */
.gse-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;font-family:inherit;font-size:14px;font-weight:700;line-height:1;white-space:nowrap;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease}
.gse-btn:hover{transform:translateY(-2px)}
.gse-btn:focus-visible{outline:3px solid var(--gse-amber);outline-offset:2px}
.gse .gse-btn-primary{background:var(--gse-navy);color:#fff}
.gse .gse-btn-primary:hover{background:var(--gse-teal);color:var(--gse-navy)}
.gse .gse-btn-secondary{background:transparent;color:var(--gse-navy);border-color:var(--gse-navy)}
.gse .gse-btn-secondary:hover{background:var(--gse-navy);color:#fff}
.gse .gse-btn-calendar{background:var(--gse-tint);color:var(--gse-navy)}
.gse .gse-btn-calendar:hover{background:var(--gse-amber);color:var(--gse-navy)}
.gse-btn svg{width:16px;height:16px;flex:none}
.gse-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:18px}

/* ---- layout switcher ---- */
.gse-switch{display:inline-flex;background:var(--gse-tint);border-radius:999px;padding:4px;gap:2px}
.gse .gse-switch button{font-family:inherit;font-size:13px;font-weight:700;color:var(--gse-navy);background:transparent;border:0;border-radius:999px;padding:8px 16px;cursor:pointer;transition:background .15s ease,color .15s ease}
.gse .gse-switch button[aria-pressed="true"]{background:var(--gse-navy);color:#fff}
.gse-switch button:focus-visible{outline:3px solid var(--gse-amber);outline-offset:1px}

/* ---- kind-of-event filter buttons ---- */
.gse-filters{display:flex;flex-wrap:wrap;gap:8px;margin:-10px 0 26px}
.gse .gse-filters button{font-family:inherit;font-size:13px;font-weight:700;color:var(--gse-navy);background:#fff;border:2px solid var(--gse-rule);border-radius:999px;padding:8px 16px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
.gse .gse-filters button:hover{border-color:var(--gse-teal)}
.gse .gse-filters button[aria-pressed="true"]{background:var(--gse-teal);border-color:var(--gse-teal);color:var(--gse-navy)}
.gse .gse-filters button:focus-visible{outline:3px solid var(--gse-amber);outline-offset:2px}

/* ---- shared pieces ---- */
.gse-photo{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--gse-navy) 0%,var(--gse-sky) 55%,var(--gse-teal) 100%)}
.gse-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gse-photo-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:64px;color:rgba(255,255,255,.92);letter-spacing:.2em;font-weight:800}
.gse-photo-fallback::before{content:"★";font-size:72px;opacity:.9;color:var(--gse-amber)}
.gse-tag{position:absolute;top:14px;right:14px;max-width:calc(100% - 28px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(255,255,255,.94);color:var(--gse-navy);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 11px;border-radius:999px}
.gse-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;min-height:64px;padding:7px 4px;border-radius:16px;line-height:1;text-align:center;box-shadow:0 6px 18px rgba(5,69,143,.18);flex:none}
.gse-badge .gse-mon{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.gse-badge .gse-day{font-size:28px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums}
.gse-badge .gse-range{font-size:10px;font-weight:700;margin-top:3px;opacity:.85}
.gse-c-amber{background:var(--gse-amber);color:var(--gse-navy)}
.gse-c-green{background:var(--gse-green);color:var(--gse-navy)}
.gse-c-teal{background:var(--gse-teal);color:var(--gse-navy)}
.gse-c-sky{background:var(--gse-sky);color:#fff}
.gse-c-navy{background:var(--gse-navy);color:#fff}
.gse-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;font-weight:500;color:var(--gse-muted)}
.gse-meta span{display:inline-flex;align-items:center;gap:6px}
.gse-meta svg{width:15px;height:15px;color:var(--gse-teal);flex:none}
.gse h3.gse-name{margin:0;font-family:inherit;font-size:22px;font-weight:700;line-height:1.2;color:var(--gse-navy);text-wrap:balance}
.gse-desc{margin:0;font-size:15px;color:var(--gse-text)}
.gse-desc p{margin:0 0 7px;font-size:inherit;color:inherit;line-height:1.55}
.gse-desc p:last-child{margin-bottom:0}
.gse-admin-note{margin-top:14px;padding:12px 14px;border-radius:12px;background:#FFF4D6;color:#5A4200;font-size:13px;font-weight:500;text-align:left;line-height:1.5}
.gse-empty{background:var(--gse-tint);border-radius:var(--gse-radius);padding:36px 24px;text-align:center;font-weight:500;color:var(--gse-navy)}

/* ================= LAYOUT 1 · CARDS ================= */
.gse-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.gse-card{display:flex;flex-direction:column;background:var(--gse-white);border-radius:var(--gse-radius);overflow:hidden;box-shadow:0 10px 30px rgba(5,69,143,.10);transition:transform .25s ease,box-shadow .25s ease}
.gse-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(5,69,143,.16)}
.gse-card:hover .gse-photo img{transform:scale(1.05)}
.gse-card-media{position:relative}
.gse-card .gse-photo{aspect-ratio:16/10}
.gse-card .gse-badge{position:absolute;left:16px;bottom:-22px;z-index:1}
.gse-card-body{display:flex;flex-direction:column;gap:10px;padding:34px 22px 22px}
@media(max-width:1000px){.gse-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
  .gse-cards{grid-template-columns:1fr;gap:18px}
  .gse-tag{white-space:normal;text-align:right;max-width:72%;line-height:1.3;padding:6px 12px;border-radius:14px}
}

/* ================= LAYOUT 2 · FEATURED + LIST ================= */
.gse-featured{display:grid;grid-template-columns:1.15fr 1fr;background:var(--gse-navy);color:#fff;border-radius:var(--gse-radius);overflow:hidden;box-shadow:0 18px 44px rgba(5,69,143,.22);margin-bottom:22px}
.gse-featured .gse-photo{min-height:340px}
.gse-featured .gse-tag{background:var(--gse-amber)}
.gse-featured-body{display:flex;flex-direction:column;gap:12px;padding:34px 36px}
.gse-featured-label{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gse-amber)}
.gse-featured .gse-badge{box-shadow:none}
.gse-featured-top{display:flex;align-items:center;gap:16px}
.gse-featured .gse h3.gse-name,.gse-featured h3.gse-name{color:#fff;font-size:30px}
.gse-featured .gse-meta{color:#D3E2F5}
.gse-featured .gse-meta svg{color:var(--gse-teal)}
.gse-featured .gse-desc{color:#E6EEF9;font-size:16px}
.gse .gse-featured .gse-btn-primary{background:var(--gse-amber);color:var(--gse-navy)}
.gse .gse-featured .gse-btn-primary:hover{background:#fff}
.gse .gse-featured .gse-btn-secondary{color:#fff;border-color:rgba(255,255,255,.7)}
.gse .gse-featured .gse-btn-secondary:hover{background:#fff;color:var(--gse-navy)}
.gse .gse-featured .gse-btn-calendar{background:rgba(255,255,255,.12);color:#fff}
.gse .gse-featured .gse-btn-calendar:hover{background:var(--gse-teal);color:var(--gse-navy)}
.gse-list{display:flex;flex-direction:column;gap:12px}
.gse-row{display:grid;grid-template-columns:64px 96px 1fr auto;align-items:center;gap:20px;background:var(--gse-white);border:1px solid var(--gse-rule);border-radius:18px;padding:14px 18px 14px 14px;transition:border-color .2s ease,box-shadow .2s ease}
.gse-row:hover{border-color:var(--gse-teal);box-shadow:0 8px 24px rgba(5,69,143,.08)}
.gse-row .gse-photo{width:96px;height:72px;border-radius:12px}
.gse-row .gse-photo-fallback::before{font-size:30px}
.gse-row .gse-tag{display:none}
.gse-row-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.gse-row h3.gse-name{font-size:18px}
.gse-row .gse-desc{font-size:14px;color:var(--gse-muted)}
.gse-row .gse-actions{padding-top:0;margin:0;justify-content:flex-end}
.gse-row .gse-btn{padding:9px 16px;font-size:13px}
@media(max-width:900px){
  .gse-featured{grid-template-columns:1fr}
  .gse-featured .gse-photo{min-height:220px;aspect-ratio:16/9}
  .gse-featured-body{padding:26px 22px}
  .gse-row{grid-template-columns:64px 1fr;gap:12px 16px}
  .gse-row .gse-photo{display:none}
  .gse-row .gse-actions{grid-column:1/-1;justify-content:flex-start}
}

/* ================= LAYOUT 3 · TIMELINE ================= */
.gse-timeline{position:relative;display:flex;flex-direction:column;gap:28px;padding-left:0}
.gse-tl{display:grid;grid-template-columns:150px 40px 1fr;gap:0 18px;position:relative}
.gse-tl-date{text-align:right;padding-top:6px}
.gse-tl-date .gse-tl-mon{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gse-teal)}
.gse-tl-date .gse-tl-day{font-size:34px;font-weight:800;line-height:1;color:var(--gse-navy);font-variant-numeric:tabular-nums}
.gse-tl-date .gse-tl-wk{font-size:13px;font-weight:500;color:var(--gse-muted)}
.gse-tl-spine{position:relative}
.gse-tl-spine::before{content:"";position:absolute;left:50%;top:0;bottom:-28px;width:4px;margin-left:-2px;background:var(--gse-rule);border-radius:2px}
.gse-tl:last-child .gse-tl-spine::before{bottom:auto;height:100%}
.gse-tl-dot{position:relative;z-index:1;width:22px;height:22px;margin:10px auto 0;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 3px currentColor}
.gse-tl-dot.gse-c-amber{color:var(--gse-amber)}.gse-tl-dot.gse-c-green{color:var(--gse-green)}.gse-tl-dot.gse-c-teal{color:var(--gse-teal)}.gse-tl-dot.gse-c-sky{color:var(--gse-sky)}.gse-tl-dot.gse-c-navy{color:var(--gse-navy)}
.gse-tl-card{display:grid;grid-template-columns:150px 1fr;gap:20px;background:var(--gse-white);border:1px solid var(--gse-rule);border-radius:18px;padding:16px;transition:border-color .2s ease,box-shadow .2s ease}
.gse-tl-card:hover{border-color:var(--gse-teal);box-shadow:0 10px 28px rgba(5,69,143,.10)}
.gse-tl-card .gse-photo{border-radius:12px;aspect-ratio:4/3}
.gse-tl-card .gse-photo-fallback::before{font-size:40px}
.gse-tl-card .gse-tag{top:8px;right:8px;font-size:10px;padding:4px 8px;max-width:calc(100% - 16px)}
.gse-tl-body{display:flex;flex-direction:column;gap:8px;min-width:0}
.gse-tl-body .gse-actions{padding-top:10px}
.gse-tl-body .gse-btn{padding:9px 16px;font-size:13px}
.gse-tl-inline{display:none}
@media(max-width:760px){
  .gse-tl{grid-template-columns:28px 1fr;gap:0 14px}
  .gse-tl-date{display:none}
  .gse-tl-inline{display:flex}
  .gse-tl-card{grid-template-columns:1fr}
  .gse-tl-card .gse-photo{aspect-ratio:16/9}
}

@media(prefers-reduced-motion:reduce){.gse *{transition:none!important}}
