/* NRG Exercise Studio. Existing training, account and offline flows are retained. */
:root { --studio-ink:#10243a; --studio-muted:#617386; --studio-lime:#c8ed67; --studio-dark:#081522; }
.exercise-studio-page { color:var(--studio-ink); padding-bottom:2rem; }
.studio-topbar { display:flex; align-items:center; justify-content:space-between; padding:.25rem 0 1.7rem; border-bottom:1px solid #d9e1e6; gap:1rem; }
.studio-topbar>a { color:#405569; font-size:.82rem; font-weight:700; text-decoration:none; }
.studio-topbar>span { letter-spacing:.17em; font-size:1rem; font-weight:900; }
.studio-topbar b { border-left:1px solid #abb8c4; margin-left:.45rem; padding-left:.6rem; font-size:.65rem; letter-spacing:.15em; }
.studio-intro { display:flex; justify-content:space-between; align-items:center; padding:2.8rem 0 2.3rem; gap:2rem; }
.studio-intro .eyebrow,.studio-library-heading .eyebrow { color:#526b7b; font-size:.65rem; letter-spacing:.18em; margin:0 0 1rem; }
.studio-intro h1 { font-size:clamp(2.7rem,5.2vw,4.2rem); letter-spacing:-.055em; font-weight:800; line-height:1.04; margin:0 0 1rem; }
.studio-intro h1 em { color:#448079; font-style:normal; }
.studio-intro p:last-child { color:var(--studio-muted); font-size:.95rem; max-width:29rem; margin:0; line-height:1.65; }
.studio-count { display:flex; align-items:center; gap:1rem; border-left:1px solid #cdd7df; padding-left:2rem; }
.studio-count strong { font-weight:800; font-size:4.8rem; line-height:1; letter-spacing:-.075em; }
.studio-count span { font-size:.6rem; letter-spacing:.15em; line-height:1.8; color:var(--studio-muted); }
.studio-feature { scroll-margin-top:1.5rem; display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); border-radius:22px; overflow:hidden; background:var(--studio-dark); color:#fff; box-shadow:0 16px 35px #10243a14; }
.studio-player { min-width:0; background:var(--studio-dark); color:#fff; border-radius:16px; overflow:hidden; }
.studio-video-stage { position:relative; background:#030a10; }
.studio-player .studio-video-stage video { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; border-radius:0; margin:0; }
.studio-video-error { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.4rem; padding:2rem; background:#0b1a2de8; text-align:center; font-size:.85rem; }
.studio-video-error button { border:0; border-bottom:1px solid; background:none; color:var(--studio-lime); }
.studio-player-bar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.85rem 1rem; }
.studio-player-caption { font-size:.56rem; color:#9db2c5; letter-spacing:.14em; font-weight:700; }
.studio-angles { display:flex; flex-wrap:wrap; gap:.3rem; }
.studio-angles button { padding:.55rem .85rem; border:1px solid #334557; background:transparent; color:#bdccd8; border-radius:8px; font-size:.75rem; font-weight:600; min-height:40px; }
.studio-angles button.selected { background:var(--studio-lime); color:#182c25; border-color:var(--studio-lime); }
.studio-demo-note { color:#9db2c5; padding:0 1rem .9rem; margin:0; font-size:.72rem; }
.studio-feature>.studio-player { border-radius:0; align-self:start; }
.studio-feature-copy { padding:1.75rem; display:flex; flex-direction:column; border-left:1px solid #22313f; }
.studio-kicker { display:flex; align-items:center; gap:.4rem; font-size:.55rem; letter-spacing:.1em; color:#adc0ce; margin-bottom:1.4rem; }
.studio-kicker>span:last-child { margin-left:auto; color:#8296a9; }
.studio-live-dot { height:6px; width:6px; background:var(--studio-lime); border-radius:50%; }
.studio-pattern { color:var(--studio-lime); font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; }
.studio-feature-copy h2 { color:#f3f8fc; font-size:clamp(1.5rem,2.7vw,2.15rem); line-height:1.12; letter-spacing:-.035em; font-weight:750; margin:.6rem 0 1rem; }
.studio-feature-copy>p { font-size:.82rem; color:#aabcca; line-height:1.7; margin:0 0 1.3rem; }
.studio-feature-copy dl { display:flex; flex-wrap:wrap; gap:1rem; padding-top:1rem; border-top:1px solid #253646; margin-top:auto; margin-bottom:1rem; }
.studio-feature-copy dt { font-size:.5rem; letter-spacing:.1em; color:#91a6b9; font-weight:500; }
.studio-feature-copy dd { font-size:.8rem; font-weight:650; margin:.35rem 0 0; }
.studio-feature-copy>a { color:var(--studio-lime); font-size:.7rem; line-height:1.6; text-decoration:none; }
.studio-feature-copy>a span { float:right; }
.studio-library { margin-top:3rem; }
.studio-library-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; }
.studio-library-heading .eyebrow { margin-bottom:.55rem; }
.studio-library-heading h2 { font-size:1.7rem; font-weight:750; letter-spacing:-.04em; margin:0; }
.studio-library-heading h2 span { color:#648b27; }
.studio-search { display:block; margin:0; min-width:240px; }
.studio-search>span { display:block; font-size:.65rem; margin-bottom:.3rem; color:var(--studio-muted); }
.studio-search input { width:100%; border:1px solid #cdd7df; background:#fff; padding:.7rem .9rem; border-radius:10px; font-size:.8rem; color:var(--studio-ink); }
.studio-filter-row { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:space-between; margin:1.4rem 0; }
.studio-filters { display:flex; flex-wrap:wrap; gap:.4rem; }
.studio-filters button { color:#516579; background:#e6ecf0; border:1px solid transparent; padding:.6rem .85rem; border-radius:8px; font-size:.7rem; font-weight:600; min-height:40px; }
.studio-filters button.active { background:#152b3d; color:#fff; }
.studio-filter-row>p { font-size:.7rem; color:var(--studio-muted); margin:0; }
.studio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }
.studio-card { appearance:none; display:block; padding:0; border:1px solid #dce4e9; background:#fff; border-radius:14px; overflow:hidden; text-align:left; color:var(--studio-ink); transition:transform .18s,box-shadow .18s,border-color .18s; }
.studio-card:hover { transform:translateY(-3px); border-color:#90aab6; box-shadow:0 10px 22px #183b5010; }
.studio-card.is-selected { border-color:#4d7a6d; box-shadow:0 0 0 2px #94b9a84a; }
.studio-card-image { position:relative; background:#081522; aspect-ratio:16/9; overflow:hidden; }
.studio-card-image img { display:block; width:100%; height:100%; object-fit:cover; }
.studio-card-number { position:absolute; left:.8rem; top:.75rem; font-size:.7rem; font-weight:700; color:#b9ccdb; }
.studio-card-play { position:absolute; right:.8rem; top:.7rem; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#f0f6fa20; color:white; font-size:.65rem; border:1px solid #d2e4f040; }
.is-selected .studio-card-play { color:#182c25; background:var(--studio-lime); }
.studio-card-views { position:absolute; right:.75rem; bottom:.65rem; padding:.2rem .45rem; border-radius:4px; background:#091927b8; color:#d7e5ef; font-size:.6rem; }
.studio-card-copy { padding:1rem; }
.studio-card-copy>span { color:#4b786e; font-size:.55rem; letter-spacing:.12em; text-transform:uppercase; font-weight:750; }
.studio-card h3 { font-size:1rem; font-weight:750; margin:.4rem 0; letter-spacing:-.015em; }
.studio-card p { color:var(--studio-muted); font-size:.67rem; min-height:2.7em; line-height:1.5; margin:0 0 .75rem; }
.studio-card-copy>div { border-top:1px solid #edf0f3; padding-top:.65rem; font-size:.65rem; font-weight:650; }
.studio-card-copy b { float:right; font-size:.85rem; }
.studio-footnote { font-size:.65rem; color:var(--studio-muted); text-align:center; padding:1.75rem .5rem 0; line-height:1.6; }
.studio-loading { min-height:260px; display:grid; place-items:center; background:#e8eef2; border-radius:20px; color:var(--studio-muted); }
.studio-offline { padding:.7rem 1rem; border-radius:8px; background:#fff1cc; color:#6c521d; font-size:.8rem; }
.studio-no-video { min-height:180px; display:grid; place-content:center; justify-items:center; color:#aabcca; padding:1rem; }
.studio-no-video>span { font-size:2.2rem; }
.studio-no-video>p { font-size:.8rem; margin:.5rem 0; }
.studio-home-banner { display:flex; position:relative; overflow:hidden; align-items:center; gap:1.5rem; text-decoration:none; color:white; background:linear-gradient(120deg,#0b1724,#193b4c); padding:1.7rem 2rem; border-radius:20px; margin:1.6rem 0; border:1px solid #294656; }
.studio-home-banner:hover { color:white; background:linear-gradient(120deg,#102332,#214c5b); }
.swiss-ball-home-banner { background:linear-gradient(120deg,#102a32,#24636a); border-color:#39787b; }
.swiss-ball-home-banner:hover { background:linear-gradient(120deg,#163841,#2b7478); }
.studio-home-mark { display:grid; place-items:center; width:62px; height:62px; flex-shrink:0; border:1px solid #718b8a; border-radius:50%; font-size:1.4rem; color:var(--studio-lime); }
.studio-home-banner small { color:var(--studio-lime); font-size:.6rem; letter-spacing:.15em; }
.studio-home-banner h2 { color:#f3f8fc; font-size:1.9rem; letter-spacing:-.045em; font-weight:750; margin:.3rem 0; }
.studio-home-banner p { color:#b5cbd6; font-size:.85rem; margin:0; }
.studio-home-banner>b { margin-left:auto; font-size:1.8rem; color:var(--studio-lime); }
.studio-program-link { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.2rem; background:#e2eee8; border:1px solid #cbded2; color:#214938; border-radius:12px; margin-bottom:1.5rem; text-decoration:none; font-size:.9rem; }
.studio-session.session-carousel-form { height:auto; min-height:0; padding-bottom:1rem; }
.studio-session .session-carousel { height:auto; min-height:0; }
.studio-session .carousel-viewport { overflow:visible; }
.studio-session .carousel-exercise { height:auto; grid-template-columns:minmax(0,1.4fr) minmax(290px,1fr); }
.studio-session .carousel-exercise-info,.studio-session .carousel-results { overflow:visible; padding:1.25rem; }
.studio-session .studio-player { grid-column:1/-1; margin-top:.75rem; }
.studio-session .carousel-exercise-info .studio-player video { width:100%; height:auto; aspect-ratio:16/9; border-radius:0; }
.studio-session .carousel-results { background:#f8fafb; justify-content:start; border-radius:0 18px 18px 0; }
.studio-session .carousel-results h3 { display:block; }
.studio-session .carousel-exercise-info .trainer-note { display:block; margin-top:1rem; }
.studio-session .carousel-controls { position:sticky; bottom:0; z-index:2; padding:.9rem 0; background:#f3f6f8f5; backdrop-filter:blur(8px); }
.studio-session .carousel-rest,.studio-session .carousel-finish { min-height:420px; }
.exercise-studio-page button:focus-visible,.exercise-studio-page a:focus-visible,.studio-player button:focus-visible,.studio-home-banner:focus-visible { outline:3px solid #008fc7; outline-offset:4px; }
@media (max-width:900px) { .studio-feature { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); } .studio-feature-copy { padding:1.2rem; } .studio-count { padding-left:1.2rem; } .studio-count strong { font-size:3.8rem; } .studio-player-bar { flex-wrap:wrap; } .studio-grid { gap:.8rem; } }
@media (max-width:720px) { .studio-feature { grid-template-columns:1fr; } .studio-feature-copy { border-left:0; border-top:1px solid #253646; padding:1.3rem; } .studio-feature-copy h2 { font-size:1.8rem; } .studio-feature-copy dl { gap:2.2rem; } .studio-kicker { margin-bottom:1rem; } .studio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .studio-count { display:none; } .studio-intro { padding:2rem 0; } .studio-library-heading { align-items:start; flex-direction:column; gap:1rem; } .studio-search { width:100%; } .studio-session .carousel-exercise { grid-template-columns:1fr; grid-template-rows:auto auto; } .studio-session .carousel-results { border-radius:0 0 18px 18px; } .studio-session .carousel-exercise-info .exercise-title h2 { font-size:1.3rem; } .studio-session .carousel-results label { font-size:.85rem; } .studio-session .carousel-results .form-control { padding:.65rem; } .studio-session .carousel-results textarea { height:auto; min-height:5rem; } .studio-session .carousel-exercise-info .set-plan { flex-wrap:wrap; } }
@media (max-width:430px) { .studio-topbar { gap:.4rem; } .studio-topbar>a { font-size:.7rem; } .studio-topbar>span { font-size:.8rem; } .studio-topbar b { font-size:.5rem; } .studio-intro h1 { font-size:2.7rem; } .studio-grid { grid-template-columns:1fr; } .studio-card-image { aspect-ratio:16/8; } .studio-card p { min-height:0; } .studio-player-caption { display:none; } .studio-angles { width:100%; } .studio-angles button { flex:1; } .studio-home-banner { padding:1.3rem; gap:1rem; } .studio-home-mark { width:42px; height:42px; font-size:1rem; } .studio-home-banner h2 { font-size:1.5rem; } .studio-home-banner p { font-size:.75rem; } }
@media (prefers-reduced-motion:reduce) { .studio-card { transition:none; } .studio-card:hover { transform:none; } }

.trx-band-home-banner { border-color:#bca648; }
.trx-band-poster-placeholder { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:160px; background:linear-gradient(135deg,#142330,#344a53); color:#e8d66e; font-weight:800; letter-spacing:.14em; }
