/* Only loaded by the dedicated catalogue and its new stage pages. */
.catalogue-page { --tc-muted: #acb9b4; }
.tc-intro { padding-bottom:20px; }
.tc-goal-picker { margin:0 0 24px; }
.tc-goal-picker h2 { font-size:clamp(1.3rem,2.4vw,1.8rem); }
.tc-goals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.tc-goals button { position:relative; text-align:left; border:1px solid #425348; border-radius:10px; padding:20px; background:linear-gradient(125deg,#1a271f,#101713); color:#edf4ee; font:inherit; cursor:pointer; display:grid; gap:9px; transition:border-color .18s,background .18s; }
.tc-goals button>span { color:#a5b4ab; font-size:.875rem; letter-spacing:.1em; }
.tc-goals strong { font-size:1.125rem; line-height:1.3; }
.tc-goals small { font-size:.875rem; line-height:1.5; color:#bfccc3; }
.tc-goals button:hover,.tc-goals button[aria-pressed=true] { border-color:var(--green); background:linear-gradient(125deg,#25381d,#111c14); }
.tc-goals button[aria-pressed=true] strong { color:var(--green); }
.tc-all-goals { margin:14px 0 0; padding:10px 16px; border:1px solid #506050; border-radius:6px; color:#d6e3d9; background:transparent; font:inherit; cursor:pointer; }
.tc-all-goals[aria-pressed=true] { color:var(--green); border-color:var(--green); }
.tc-group-heading { grid-column:1/-1; padding:30px 0 4px; border-top:1px solid #38483d; }
.tc-group-heading h2 { margin:5px 0 10px; font:400 clamp(2rem,4vw,3.3rem)/1.1 Impact,Haettenschweiler,sans-serif; text-transform:uppercase; }
.tc-group-heading>p:last-child { color:#bdc9c1; max-width:65ch; margin-bottom:0; }
.tc-grid.is-deck .tc-group-heading { display:none; }
.tc-stage-nav { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:12px 0 0; }
.tc-stage-nav button { min-height:44px; padding:8px 12px; color:var(--metal); border:1px solid var(--metal); background:#111813; border-radius:5px; font:inherit; font-size:.875rem; cursor:pointer; }
.tc-stage-nav button:disabled { opacity:.35; cursor:default; }
.tc-stage-nav span,.tc-swipe-hint { font-size:.875rem; color:#bbc9c1; }
.tc-swipe-hint { margin:10px 0 14px; text-align:center; }
.tc-swipe-cover { touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.tc-card[class*="tier-"] .program-cover { border:2px solid var(--metal); }
.tc-card.tier-bronze,.tc-card.tier-silver,.tc-card.tier-gold { background:linear-gradient(145deg,color-mix(in srgb,var(--metal) 15%,#111713),#111713 45%); box-shadow:0 18px 40px #0008,inset 0 0 0 3px color-mix(in srgb,var(--metal) 20%,transparent); }
.tc-card.tier-bronze .program-cover::before,.tc-card.tier-silver .program-cover::before,.tc-card.tier-gold .program-cover::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:1; background:linear-gradient(125deg,color-mix(in srgb,var(--metal) 32%,transparent),transparent 45%,color-mix(in srgb,var(--metal) 22%,transparent)); mix-blend-mode:screen; }
.tc-card .program-cover-copy,.tc-card .program-cover-brand { z-index:2; }
.tc-card.tier-bronze .program-cover::before,.tc-card.tier-silver .program-cover::before,.tc-card.tier-gold .program-cover::before { width:auto; box-shadow:none; }
.tc-card .program-cover-copy [data-cover-stage] { display:block; font-size:.875rem!important; line-height:1.4; color:#fff; margin-top:12px; }
.tc-card.program-milestone { --metal:#a6ff00; border-width:2px; }
.tc-card.program-milestone .tc-edition { background:#a6ff00; color:#101908; font-size:.875rem; letter-spacing:.015em; }
.tc-card.program-milestone .tc-edition>span:first-child { display:none; }
.tc-card.program-milestone .program-cover { border-color:#a6ff00; }
.tc-card.program-milestone .tc-focus { background:linear-gradient(105deg,#a6ff00,#defcaf); }
@media(max-width:760px) { .tc-goals { grid-template-columns:repeat(2,minmax(0,1fr)); } .tc-goals button { padding:15px; } }
@media(max-width:380px) { .tc-goals { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .tc-goals button { transition:none; } }
.catalogue-page [hidden] { display: none !important; }
.tc-breadcrumbs { margin: 28px 0; }
.tc-intro { max-width: 880px; padding: 24px 0 48px; }
.tc-intro h1, .tc-detail-heading h1 { margin: 0; font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-size: clamp(3.2rem, 6.5vw, 6rem); line-height: .96; font-weight: 400; text-transform: uppercase; }
.tc-intro > p:last-child, .tc-detail-heading > p:last-child { color: #c5d1cb; font-size: 1.125rem; max-width: 64ch; }
.tc-start { padding: 32px; border: 1px solid var(--line); background: var(--panel); border-radius: 16px; }
.tc-start .section-head { margin: 0; }
.tc-start .section-head h2 { color: white; font-size: clamp(2rem, 3.3vw, 3.2rem); }
.tc-start .section-head > p { color: #c5d1cb; }
.tc-start .eyebrow.dark { color: var(--green); }
.tc-legend { margin: 22px 0 32px; border-bottom: 1px solid var(--line); }
.tc-legend summary { cursor: pointer; display: flex; justify-content: space-between; gap: 20px; padding: 16px 0; font-weight: 800; }
.tc-legend > div { max-width: 85ch; padding-bottom: 16px; color: #c5d1cb; }
.tc-legend strong { color: white; }
.tc-tools { display: flex; flex-wrap: wrap; gap: 20px; align-items: end; }
.tc-tools label { display: grid; gap: 8px; font-size: .875rem; font-weight: 700; }
.tc-search { flex: 1 1 260px; }
.tc-tools input, .tc-tools select, .tc-variant-label select { font: inherit; font-size: 1rem; color: #f1f6f3; border: 1px solid #52605a; background: #151d19; border-radius: 8px; min-height: 48px; padding: 10px 12px; max-width: 100%; width: 100%; }
.tc-days { flex: 0 1 190px; }
.tc-view-switch { display: flex; border: 1px solid #52605a; border-radius: 8px; padding: 4px; }
.tc-view-switch button, .tc-filters button, .tc-deck-controls button { cursor: pointer; border: 0; color: #e3ece6; background: transparent; font: inherit; font-weight: 750; min-height: 42px; padding: 9px 14px; border-radius: 5px; }
.tc-view-switch button[aria-pressed=true] { background: var(--green); color: #0b1207; }
.tc-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 22px 0; }
.tc-filters button { border: 1px solid #3e4d44; border-radius: 99px; font-size: .875rem; }
.tc-filters button[aria-pressed=true] { color: var(--green); border-color: var(--green); background: #1b2a12; }
.tc-results-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.tc-results-bar > p { margin: 0; color: var(--tc-muted); font-size: .875rem; }
.tc-deck-controls { display: flex; align-items: center; gap: 12px; }
.tc-deck-controls span { font-size: .875rem; color: var(--tc-muted); }
.tc-deck-controls button { border: 1px solid var(--line); }
.tc-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; align-items: start; }
.tc-grid.is-deck { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 26px; padding: 10px max(18px, calc((100% - 420px) / 2)) 28px; scrollbar-color: var(--green) #19211c; }
.tc-grid.is-deck .tc-card { flex: 0 0 min(420px, 84vw); scroll-snap-align: center; }
.tc-card { --focus: #a6ff00; --metal: #7e9587; --accent: var(--focus); min-width: 0; overflow: hidden; border: 1px solid var(--metal); border-radius: 18px; background: #111713; box-shadow: 0 18px 35px #0005, inset 0 0 0 4px #ffffff07; transition: box-shadow 200ms ease, border-color 200ms ease; }
.tc-card.goal-muscle { --focus: #c0a0ff; }
.tc-card.goal-strength { --focus: #ffbf5b; }
.tc-card.goal-definition { --focus: #ff8556; }
.tc-card.goal-sport { --focus: #30d1f5; }
.tc-card.goal-rebuild { --focus: #5cdebd; }
.tc-card.goal-reset { --focus: #d0f94c; }
.tc-card.tier-bronze { --metal: #ce9568; }
.tc-card.tier-silver { --metal: #cadbe7; }
.tc-card.tier-gold { --metal: #f5d575; }
.tc-card:hover { border-color: var(--focus); box-shadow: 0 20px 40px #0009, 0 0 22px color-mix(in srgb,var(--focus) 10%,transparent); }
.tc-edition { display: flex; justify-content: space-between; gap: 12px; padding: 12px 18px; color: var(--metal); background: linear-gradient(115deg,#ffffff0b,transparent 45%,#ffffff09); font-size: .8rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.tc-edition > span:first-child { color: #b8c6bd; }
.tc-cover-link { display: block; padding: 0 10px; }
.tc-cover-link .program-cover { margin: 0; aspect-ratio: 4/4.65; box-shadow: none; border-radius: 10px 10px 0 0; border-color: #ffffff20; }
.tc-card .program-cover-brand { font-size: .65rem; }
.tc-card .program-cover-copy { left: 25px; bottom: 24px; }
.tc-card .program-cover-copy > p { font-size: .75rem; }
.tc-card .program-cover-copy .tc-cover-title { display: block; color: #fff; font-family: Impact, Haettenschweiler, sans-serif; font-size: clamp(2.6rem,3.8vw,4.2rem); font-weight: 400; line-height: .92; margin: 0; letter-spacing: .02em; text-transform: uppercase; text-shadow: 0 4px 18px #000b; }
.tc-card .program-cover-copy > span:last-child:not(.tc-cover-title) { font-size: .75rem; }
.tc-focus { display: block; padding: 9px 14px; background: var(--focus); color: #0a140e; font-size: .875rem; font-weight: 850; text-transform: uppercase; letter-spacing: .02em; }
.tc-body { padding: 20px; }
.tc-body h3 { font-size: 1.25rem; line-height: 1.35; margin: 6px 0 18px; min-height: 3.4em; }
.tc-level { margin: 12px 0 0; color: var(--focus); text-transform: uppercase; font-size: .8rem; letter-spacing: .04em; font-weight: 800; }
.tc-stages { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.tc-stage { font: inherit; font-size: .8rem; font-weight: 800; padding: 10px 3px; border: 1px solid #526057; border-radius: 5px; color: #d0ddd4; background: transparent; cursor: pointer; min-height: 44px; }
.tc-stage.bronze[aria-pressed=true] { background: #ce9568; color: #1b1007; }
.tc-stage.silver[aria-pressed=true] { background: #cadbe7; color: #101821; }
.tc-stage.gold[aria-pressed=true] { background: #f5d575; color: #191609; }
.tc-variant-label { display: grid; gap: 8px; font-size: .875rem; color: #c5d1cb; }
.tc-variant-label select { font-size: .875rem; }
.tc-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; border: 1px solid #35463b; border-radius: 8px; overflow: hidden; }
.tc-stats > div { padding: 12px; border-bottom: 1px solid #35463b; background: #1c282022; min-width: 0; }
.tc-stats > div:nth-child(odd) { border-right: 1px solid #35463b; }
.tc-stats > div:nth-last-child(-n+2) { border-bottom: 0; }
.tc-stats dt { font-size: .8rem; color: #aebeb3; margin-bottom: 5px; }
.tc-stats dd { margin: 0; font-size: .95rem; line-height: 1.35; font-weight: 800; overflow-wrap: anywhere; }
.tc-extras { display: grid; gap: 4px; padding: 14px 0; margin: 0; font-size: .875rem; color: #bdcfc2; }
.tc-extras strong { color: white; }
.tc-coaching { font-size: .8rem; margin: 0; color: var(--focus); }
.tc-purchase { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin: 22px 0 12px; }
.tc-purchase strong { font-size: 1.5rem; }
.tc-purchase > span { color: #b9c8bf; font-size: .8rem; }
.tc-primary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 15px; min-height: 48px; border-radius: 6px; background: var(--focus); color: #09120d; font-weight: 850; }
.tc-secondary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin-top: 10px; }
.tc-secondary a, .tc-secondary button { font: inherit; font-size: .875rem; padding: 10px 0; min-height: 44px; color: #e0ece3; }
.tc-secondary button { cursor: pointer; border: none; background: transparent; font-weight: 800; color: var(--focus); }
.tc-secondary button[aria-pressed=true] { color: white; text-decoration: underline; text-underline-offset: 5px; }
.tc-empty { padding: 40px; background: #151e19; border: 1px solid var(--line); border-radius: 12px; }
.tc-empty button { color: var(--green); font: inherit; border: 0; background: none; text-decoration: underline; cursor: pointer; }
.tc-access { margin: 64px 0; }
.tc-access .training-options { margin: 0; }
.tc-compare-section { margin: 64px 0; padding-bottom: 90px; }
.tc-compare-heading { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; align-items: center; }
.tc-compare-heading button, .tc-compare-tray button { color: #c9d7ce; background: none; border: 0; font: inherit; text-decoration: underline; padding: 10px; cursor: pointer; }
.tc-table-scroll { overflow-x: auto; border: 1px solid #405346; border-radius: 12px; }
.tc-table-scroll table { width: 100%; border-collapse: collapse; min-width: 560px; text-align: left; }
.tc-table-scroll th, .tc-table-scroll td { padding: 16px; border: 1px solid #334438; vertical-align: top; min-width: 160px; }
.tc-table-scroll thead th { background: #1c2e20; color: var(--green); }
.tc-table-scroll th[scope=row] { color: #bed0c3; min-width: 140px; font-size: .9rem; }
.tc-table-scroll a { color: var(--green); text-decoration: underline; }
.tc-remove { display: block; color: #b4c7bb; border: 0; background: none; font: inherit; font-size: .8rem; padding: 12px 0 0; cursor: pointer; text-decoration: underline; }
.tc-compare-tray { position: fixed; z-index: 100; bottom: 18px; left: 50%; transform: translateX(-50%); width: min(600px,calc(100% - 24px)); display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 12px 16px; border-radius: 12px; background: #101e15f5; border: 1px solid var(--green); box-shadow: 0 10px 40px #000a; }
.tc-compare-tray > span { font-size: .875rem; }
.tc-compare-tray > a { padding: 12px 16px; background: var(--green); color: #0a1408; border-radius: 6px; font-weight: 850; }
.tc-detail-heading { padding: 24px 0; max-width: 920px; }
.tc-detail-heading h1 { font-size: clamp(2.8rem,5vw,4.7rem); }
.tc-sibling-nav { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0 36px; }
.tc-sibling-nav a { padding: 12px; border: 1px solid #55665a; border-radius: 6px; font-size: .875rem; }
.tc-sibling-nav a[aria-current=page] { color: var(--green); border-color: var(--green); }
.tc-detail-layout { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 48px; margin-bottom: 64px; align-items: start; }
.tc-detail-layout .tc-stats dd { color: white; }
.catalogue-page button:focus-visible, .catalogue-page input:focus-visible, .catalogue-page select:focus-visible, .catalogue-page a:focus-visible, .tc-legend summary:focus-visible, .tc-table-scroll:focus-visible { outline: 3px solid var(--cyan); outline-offset: 4px; }
@media (max-width: 1050px) { .tc-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) {
 .tc-start { padding: 24px; }
 .tc-start .section-head-split { display: block; }
 .tc-start .section-head > p { margin-top: 20px; }
 .tc-grid { grid-template-columns: 1fr; gap: 30px; }
 .tc-grid.is-deck { padding-inline: 5%; margin-inline: -10px; }
 .tc-grid.is-deck .tc-card { flex-basis: 92%; }
 .tc-cover-link .program-cover { aspect-ratio: 4/4; }
 .tc-card .program-cover-copy .tc-cover-title { font-size: clamp(2.8rem,12vw,4.8rem); }
 .tc-body h3 { min-height: 0; }
 .tc-view-switch { flex: 1; }
 .tc-view-switch button { flex: 1; }
 .tc-detail-layout { grid-template-columns: 1fr; }
 .tc-detail-layout aside { max-width: 520px; }
 .tc-compare-tray { gap: 6px; padding: 10px; bottom: 10px; }
 .tc-compare-tray > a { font-size: .875rem; padding: 12px; }
}
@media (prefers-reduced-motion: reduce) { .tc-card { transition: none; } .catalogue-page { scroll-behavior: auto; } }

/* Legion specifications and phase progression */
.legion-split{list-style:none;padding:0;display:grid;gap:10px}.legion-split li{display:flex;flex-direction:column;gap:5px;border-left:3px solid var(--accent,#b8ff00);background:#111a18;padding:16px}.legion-split span{font-size:.8rem;color:#afbbb6;text-transform:uppercase;letter-spacing:.08em}.legion-phase{border:1px solid #35413b;border-left:3px solid #cda35f;padding:22px;margin:18px 0;background:linear-gradient(120deg,#19201b,#0d1412)}.legion-phase h3{font-size:1.4rem;line-height:1.2;margin:8px 0}.legion-methods{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}.legion-methods li{padding:8px 12px;border:1px solid #455044;border-radius:4px;font-size:.9rem}.legion-phase p:last-child{margin-bottom:0}

/* Milestone: a seven-stage pathway within the established catalogue. */
.ms-hero{margin-bottom:28px}.ms-hero h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.1;color:var(--green)}.ms-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.ms-access-note{color:#c2cec8}.ms-stage-nav{position:sticky;top:92px;z-index:30;background:#0d1512f5;border:1px solid #526347;display:flex;align-items:center;gap:6px;padding:10px;border-radius:10px;backdrop-filter:blur(12px)}.ms-stage-nav>span{margin-right:auto;font-size:.875rem;font-weight:800}.ms-stage-nav a{display:grid;place-items:center;min-width:40px;min-height:44px;border:1px solid #526347;border-radius:5px;font-weight:850}.ms-stage-nav a:hover,.ms-stage-nav a:focus-visible{background:var(--green);color:#091008}.ms-evolution{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:30px 0}.ms-evolution a{display:flex;flex-direction:column;gap:8px;background:#142119;border:1px solid #425744;padding:14px 10px;border-radius:8px}.ms-evolution span{font-size:1.6rem;font-weight:850}.ms-evolution strong{font-size:.875rem;color:#f2f4ef;overflow-wrap:anywhere}.ms-evolution small{color:#bac9bf;font-size:.8rem}.ms-stage{scroll-margin-top:180px;display:grid;grid-template-columns:90px 1fr;gap:24px;border:1px solid #40523e;border-left:4px solid var(--green);padding:28px;margin:20px 0;border-radius:12px;background:linear-gradient(120deg,#172219,#0e1411)}.ms-number{font-family:Impact,sans-serif;font-size:3.5rem;color:var(--green);line-height:1.1}.ms-stage h3{font-size:clamp(1.4rem,3vw,2rem);margin:10px 0;line-height:1.2}.ms-stage details{border-top:1px solid #425344;margin-top:18px}.ms-stage summary{display:flex;justify-content:space-between;gap:20px;padding:16px 0;cursor:pointer;color:var(--green);font-weight:800}.ms-stage summary:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}.ms-stage details[open] summary span{transform:rotate(45deg)}.ms-stage:target{border-color:var(--cyan);background:#142823}.ms-pair,.ms-cardio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.ms-cardio article,.ms-pair article{padding:24px;background:#131e18;border:1px solid #40523e;border-radius:12px}.ms-cardio article:first-child{border-top:4px solid var(--cyan)}.ms-cardio article:last-child{border-top:4px solid var(--orange)}.ms-cardio h3{font-size:1.5rem}.ms-cardio dt{color:var(--cyan);font-weight:850;margin-top:16px}.ms-cardio dd{margin:4px 0;color:#d7dedd}.ms-layer{font-size:1.2rem;font-weight:800}.ms-habits{padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}.ms-habits li{display:flex;align-items:center;gap:10px;border:1px solid #40523e;border-radius:6px;padding:12px 15px}.ms-habits span{color:var(--green);font-weight:850}.ms-finale{margin:30px 0 60px;padding:30px;background:#182414;border:1px solid #749149;border-radius:12px}
@media(max-width:760px){.ms-stage-nav{top:82px;gap:4px;padding:8px}.ms-stage-nav>span{display:none}.ms-stage-nav a{flex:1;min-width:0}.ms-evolution{grid-template-columns:repeat(2,minmax(0,1fr))}.ms-evolution a:last-child{grid-column:1/-1}.ms-stage{grid-template-columns:1fr;padding:22px;gap:6px}.ms-number{font-size:2.4rem}.ms-pair,.ms-cardio{grid-template-columns:1fr}.ms-actions .button{max-width:100%;text-align:center}}

/* Preserve the full ankle exercise image when this pathway is selected. */
.program-rebuild[data-variant-id="rebuild-2"] .program-cover img { object-fit: contain; background: #0c1713; }

.tc-card.program-armageddon .program-cover-copy .tc-cover-title { font-size: clamp(1.65rem, 2.4vw, 2.25rem); letter-spacing: .01em; overflow-wrap: anywhere; }
.program-armageddon .program-cover img { object-position: 54% center; }
